# 设置数据集路径和语谱图保存路径dataset_path = D论文代码casia汉语情感语料库spectrogram_path = D论文代码语谱图# 遍历数据集中各个子目录对每个文件夹下的音频文件生成对应的语谱图for subfolder in oslistdirdataset_path subfolder_path = ospathjoindataset_path subfolder
可以在生成语谱图时,将plt.figure()函数中的figsize参数改为(224/80, 224/80),即可将图像的大小设置为(224, 224)。
修改后的代码如下所示:
设置数据集路径和语谱图保存路径
dataset_path = "D:/论文代码/casia汉语情感语料库/" spectrogram_path = "D:/论文代码/语谱图/"
遍历数据集中各个子目录,对每个文件夹下的音频文件生成对应的语谱图
for subfolder in os.listdir(dataset_path): subfolder_path = os.path.join(dataset_path, subfolder) # 确保当前为子目录而不是文件 if os.path.isdir(subfolder_path): for audio_file in os.listdir(subfolder_path): audio_path = os.path.join(subfolder_path, audio_file) # 判断是否为音频文件,目前仅支持.wav格式的音频 if audio_file.endswith(".wav"): # 读取音频文件并进行短时傅里叶变换计算得到语谱图 y, sr = librosa.load(audio_path, sr=None) D = librosa.amplitude_to_db(np.abs(librosa.stft(y)), ref=np.max) # 创建保存该语谱图的文件夹 spectrogram_folder = os.path.join(spectrogram_path, subfolder) os.makedirs(spectrogram_folder, exist_ok=True) # 保存语谱图到对应的文件夹中 spectrogram_path_full = os.path.join(spectrogram_folder, f"{os.path.splitext(audio_file)[0]}.png") plt.figure(figsize=(224/80, 224/80)) librosa.display.specshow(D, y_axis='linear') plt.colorbar(format='%+2.0f dB') plt.savefig(spectrogram_path_full, bbox_inches='tight', pad_inches=0) plt.clf() plt.close('all'
原文地址: https://www.cveoy.top/t/topic/dRbq 著作权归作者所有。请勿转载和采集!