我认为,jonnor的回答并不完全正确。需要分两步来操作:
1. 取Mel频谱图的对数。
2. 对对数值进行DCT计算。
此外,取对数似乎是训练神经网络的"主要部分":https://qr.ae/TWtPLD
一个关键区别是mel-spectrogram具有频谱的语义,而MFCC在某种程度上是“频谱的频谱”。因此,真正的问题是:对于具有良好答案的mel-spectrogram应用DCT的目的是什么,这些答案可以在这里和那里找到。
值得注意的是,librosa也有一个mfcc
函数。通过查看其实现,基本上可以确认它是:
melspectrogram
,power_to_db
将其输出转换为对数形式,n_mfcc
系数之后截断新的“频谱的频谱”。