音频文件梅尔谱图生成并调整图像大小为 (224, 224)
使用 Python 生成音频文件梅尔谱图并调整图像大小
本文档介绍如何使用 Python 代码生成音频文件的梅尔谱图,并将图像大小调整为 (224, 224),以便用于深度学习模型。
代码示例:
import os
import librosa
import librosa.display
import numpy as np
from PIL import Image
# 设置数据集路径
dataset_dir = 'D:/论文代码/casia汉语情感语料库/'
# 循环遍历所有子目录
for subdir, dir, files in os.walk(dataset_dir):
for file in files:
filepath = os.path.join(subdir, file)
# 如果是音频文件,则进行处理
if filepath.endswith('.wav'):
# 加载音频文件
y, sr = librosa.load(filepath, sr=None)
# 计算对数梅尔谱图
S = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128)
log_S = librosa.power_to_db(S, ref=np.max)
# 画图并保存
plt.figure(figsize=(12,4))
librosa.display.specshow(log_S, sr=sr, x_axis='time', y_axis='mel')
plt.title('Mel power spectrogram')
plt.colorbar(format='%+02.0f dB')
plt.tight_layout()
plt.savefig(os.path.join(subdir.replace(dataset_dir, 'D:/论文代码/spectrograms/'), file + '.png'))
plt.close()
# 调整图片大小为 (224, 224) 并保存
img = Image.open(os.path.join(subdir.replace(dataset_dir, 'D:/论文代码/spectrograms/'), file + '.png'))
img = img.resize((224, 224), Image.ANTIALIAS)
img.save(os.path.join(subdir.replace(dataset_dir, 'D:/论文代码/spectrograms/'), file + '.png'))
代码说明:
- 导入库: 导入所需的库,包括 librosa、numpy 和 PIL。
- 设置数据集路径: 设置音频数据集的路径。
- 循环遍历文件: 使用
os.walk()函数遍历所有子目录,找到所有音频文件。 - 加载音频文件: 使用 librosa.load() 函数加载音频文件。
- 计算梅尔谱图: 使用 librosa.feature.melspectrogram() 函数计算梅尔谱图。
- 绘制梅尔谱图: 使用 librosa.display.specshow() 函数绘制梅尔谱图。
- 保存图像: 使用 plt.savefig() 函数保存生成的梅尔谱图图像。
- 调整图像大小: 使用 PIL 库的 Image.resize() 函数调整图像大小为 (224, 224)。
- 保存调整后的图像: 使用 img.save() 函数保存调整后的图像。
注意:
- 代码示例中使用的是 CASIA 汉语情感语料库,请根据您的数据集路径进行修改。
- 您可以根据需要调整梅尔谱图的参数,例如 n_mels 的值。
- 如果您需要使用其他图像处理库,例如 OpenCV,请根据您的需求进行修改。
更多信息:
- librosa 库文档:https://librosa.org/doc/latest/
- PIL 库文档:https://pillow.readthedocs.io/en/stable/
原文地址: https://www.cveoy.top/t/topic/nLcC 著作权归作者所有。请勿转载和采集!