中,MFCC图在MFCC子目录下的相应子目录中。

以下是Python代码实现:

import os
import librosa
import librosa.display
import numpy as np
import matplotlib.pyplot as plt

# 定义MFCC参数
n_mfcc = 13
hop_length = 256
n_fft = 512

# 数据集路径
data_path = 'D:/论文代码/casia汉语情感语料库/'

# MFCC保存路径
mfcc_path = 'D:/论文代码/MFCC/'

# 遍历数据集中的子目录
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()

MFCC图的大小为256x256像素,保存格式为png,存储在与数据集子目录相同的子目录中,文件名与对应的音频文件相同。在代码中,使用了Librosa库来计算MFCC和绘制MFCC图,使用了Matplotlib库来保存MFCC图。遍历数据集中的子目录时,使用了os.walk函数,支持遍历多级目录。MFCC图保存在与数据集子目录相同的子目录中,使用了os.path.join函数来构造MFCC保存路径,使用了os.makedirs函数来创建保存MFCC图的目录。在保存MFCC图时,使用了plt.savefig函数,指定了dpi参数为100,bbox_inches参数为'tight',pad_inches参数为0,以保证保存的MFCC图不会被压缩或留有空白。保存MFCC图后,使用plt.close函数关闭绘图窗口,以避免内存泄漏

将数据集中的音频信号转化为格式为png的MFCC图并进行分帧加窗等处理数据集路径D论文代码casia汉语情感语料库并保存到D论文代码MFCC中要求MFCC图与数据集的子目录相同音频文件在数据集下的子目录

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

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