梅尔谱图和 MFCC 之间的区别

Posted

技术标签:

【中文标题】梅尔谱图和 MFCC 之间的区别【英文标题】:Difference between mel-spectrogram and an MFCC 【发布时间】:2019-05-24 07:45:53 【问题描述】:

我正在使用 librosa 库将音乐片段转换为 mel 谱图,以用作我的神经网络的输入,如文档 here 中所示。

这与MFCCs 有什么不同,如果有的话?使用它们有什么优点或缺点吗?

【问题讨论】:

【参考方案1】:

要获得 MFCC,请计算 mel 谱图上的 DCT。梅尔谱图之前通常是对数缩放的。

MFCC 是一种非常可压缩的表示,通常只使用 20 或 13 个系数,而不是梅尔频谱图中的 32-64 个波段。 MFCC 的去相关性更高,这对于高斯混合模型等线性模型可能是有益的。凭借大量数据和卷积神经网络等强大的分类器,梅尔谱图通常可以表现得更好。

【讨论】:

【参考方案2】:

我想,乔纳的回答并不完全正确。有两个步骤: 1.获取梅尔谱图的日志。 2. 在日志上计算 DCT。 此外,获取日志似乎是训练 NN 的“主要部分”:https://qr.ae/TWtPLD

【讨论】:

【参考方案3】:

一个关键的区别是 mel-spectrogram 具有频谱的语义,而 MFCC 在某种意义上是“频谱的频谱”。真正的问题是:将 DCT 应用于 mel 谱图的目的是什么,这有很好的答案 here 和 there。


请注意,同时 librosa 也有一个 mfcc 函数。而且看its implementation基本确认是

    打电话给melspectrogram, 将其输出转换为日志(通过power_to_db), 对频率进行 DCT,就好像它们是一个信号一样, 在第一个 n_mfcc 系数之后截断新的“频谱”。

【讨论】:

以上是关于梅尔谱图和 MFCC 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

浅谈MFCC

语音识别基于MFCC的GMM语音识别matlab源码

声音处理之-梅尔频率倒谱系数(MFCC)

语音识别基于MFCC和SVM的特定人性别识别matlab源码

C/C++ 中的梅尔频率倒谱系数 (MFCC)

音频处理梅尔频率倒谱系数(MFCC)