将音频信号转化为 MFCC 图像: 使用 Python 处理 CASIA 汉语情感语料库

本文介绍如何使用 Python 将 CASIA 汉语情感语料库中的音频信号转化为格式为 PNG 的 MFCC 图像,并进行分帧加窗等处理。代码使用了 Librosa 和 Matplotlib 库,实现将 MFCC 图像保存到与数据集子目录相同的目录中,并与音频文件名保持一致。

步骤:

  1. 导入库:
import os
import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as plt
  1. 定义 MFCC 参数:
n_mfcc = 13
hop_length = 256
n_fft = 512
  1. 设置数据集路径和 MFCC 保存路径:
data_path = 'D:/论文代码/casia汉语情感语料库/'

mfcc_path = 'D:/论文代码/MFCC/'
  1. 遍历数据集并处理音频文件:
# 遍历数据集中的子目录
for root, dirs, files in os.walk(data_path):
    # 遍历子目录中的音频文件
    for file in files:
        # 如果是音频文件
        if file.endswith('.wav'):
            # 读取音频文件
            y, sr = librosa.load(os.path.join(root, file))
            # 计算 MFCC
            mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=n_mfcc, hop_length=hop_length, n_fft=n_fft)
            # 绘制 MFCC 图
            plt.figure(figsize=(2.56, 2.56))
            librosa.display.specshow(mfcc, x_axis='time')
            plt.axis('off')
            # 获取保存 MFCC 图的路径
            mfcc_file = os.path.join(mfcc_path, root.replace(data_path, ''), file[:-4] + '.png')
            # 如果保存 MFCC 图的目录不存在,则创建目录
            mfcc_dir = os.path.dirname(mfcc_file)
            if not os.path.exists(mfcc_dir):
                os.makedirs(mfcc_dir)
            # 保存 MFCC 图
            plt.savefig(mfcc_file, dpi=100, bbox_inches='tight', pad_inches=0)
            # 关闭绘图窗口
            plt.close()

代码解释:

  • 使用 os.walk 函数遍历数据集目录,并处理每个音频文件。
  • 使用 librosa.load 读取音频文件。
  • 使用 librosa.feature.mfcc 计算 MFCC 特征。
  • 使用 librosa.display.specshow 绘制 MFCC 图像。
  • 使用 plt.savefig 保存 MFCC 图像,并设置 dpi, bbox_inchespad_inches 参数以控制图像质量和尺寸。
  • 使用 os.makedirs 创建保存 MFCC 图像的目录。

MFCC 图像大小:

每个 MFCC 图像的大小为 256x256 像素,保存格式为 PNG。

MFCC 图像保存路径:

MFCC 图像存储在与数据集子目录相同的子目录中,文件名与对应的音频文件相同。

总结:

该代码实现了将 CASIA 汉语情感语料库中的音频信号转化为 MFCC 图像,并将其保存到指定路径。该代码可以用于音频特征提取、情感识别等任务。

音频信号转化为 MFCC 图像: 使用 Python 将 CASIA 汉语情感语料库音频转换为 PNG 图像

原文地址: https://www.cveoy.top/t/topic/nJbH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录