我正在尝试使用librosa创建MFCC图,但该图似乎并不十分详细。目标是将该MFCC频谱图呈现给神经网络。我正在测试的音频文件长约1秒,来自Google Speech Commands数据集。我的代码是:
WINDOW_SIZE = 20
NFFT=int((WINDOW_SIZE/1000)*16000)
samples, _ = librosa.load(f, sr=16000)
mfccs = librosa.feature.mfcc(y=samples[:16000], sr=16000, n_fft=NFFT, n_mfcc=40)
plt.figure(figsize=(10, 4))
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar()
plt.title('MFCC')
plt.tight_layout()
plt.show()
这是正在产生的MFCC频谱图:
最佳答案
与其他系数相比,第0个系数具有更多的能量,因此其他频带中的差异在图中未显示得很好。
您可能需要对此进行归一化,以使所有系数都在同一范围内。您可以计算每个系数的平均值和std,然后通过减去平均值并除以标准偏差来进行标准化。可以针对每个剪辑或跨训练集进行此操作。