如何解释MFCC提取过程中的DCT步骤?


20

在大多数音频处理任务中,最常用的转换之一是MFCC(梅尔频率倒谱系数)

我最了解MFCC背后的数学原理:我了解滤波器组步骤和梅尔频率定标。

我没有得到的是DCT(离散余弦变换)步骤:在此步骤中我可以获得什么信息?此步骤的视觉效果如何?


1
我将对MFCC或至少一个链接进行简要说明:en.wikipedia.org/wiki/Mel-frequency_cepstral_coefficient
某种机器人

Answers:


16

您可以将DCT视为压缩步骤。通常,对于MFCC,您将采用DCT,然后仅保留前几个系数。这与将DCT用于JPEG压缩基本上是相同的原因。选择DCT是因为它们的边界条件在这些类型的信号上效果更好。

让我们将DCT与傅立叶变换进行对比。傅里叶变换由具有整数个周期的正弦曲线组成。这意味着,所有傅立叶基函数都以相同的值开始和结束-它们不能很好地表示以不同值开始和结束的信号。请记住,傅立叶变换假定有一个周期性扩展:如果您想象一张纸上的信号,则傅立叶变换希望将那张纸卷成圆柱体,使左右两侧相交。

考虑一下一个频谱,它的形状大致像是一条具有负斜率的线(这很典型)。傅立叶变换将不得不使用许多不同的系数来适应这种形状。另一方面,DCT的余弦的周期数为半整数。例如,有一个DCT基函数,看起来像那条带有负斜率的线。它不假设周期延长(而是均匀延长),因此它将更好地拟合该形状。

所以,让我们放在一起。一旦计算出梅尔频谱,就可以以类似于人类听力工作方式的方式来表示敏感频谱。这种形状的某些方面比其他方面更相关。通常,更大的总体频谱形状比频谱中嘈杂的精细细节更重要。您可以想象画一条平滑的线来遵循频谱形状,而画出的平滑线可能告诉您有关信号的信息。

当您使用DCT并丢弃较高的系数时,您将采用此频谱形状,并且仅保留对于表示此平滑形状更重要的部分。如果您使用傅立叶变换,那么将重要信息保持在低系数中就做得不好。

如果您考虑将MFCC作为特征提供给机器学习算法,则这些低阶系数将成为很好的特征,因为它们代表了频谱形状的一些简单方面,而您丢弃的高阶系数则更像噪声而且继续训练并不重要。另外,对梅尔频谱幅值本身的训练可能不会那么好,因为在不同频率处的特定幅度不如频谱的一般形状重要。



8

理解MFCC的关键是链接到文章中句子的开头:

它们源自音频剪辑的倒谱表示形式。

个MFCC像频谱的A--一个日志 -spectrum的倒谱

XŤ

Cž=F-1个日志|FXŤ|2

FF-1个

倒频谱整齐的原因是插入的对数运算意味着原始信号的卷积在倒频谱中表现为简单的加法

尽管提升不如标准倒谱法那么直接,但这种优势可以延续到MFCC上。

MFCC的不同之处在于使用离散余弦变换(DCT)作为最终变换,而不是傅立叶逆变换。

与傅立叶变换相比,DCT的优势在于所得系数是实数值,这使得后续处理和存储更加容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.