Answers:
让我从头开始。计算倒频谱的标准方法如下:
对于MFCC系数,情况有些不同,但仍然相似。
经过预加重和加窗后,您可以计算信号的DFT并应用以mel比例分开的重叠三角形滤波器的滤波器组(尽管在某些情况下,线性比例比mel更好):
关于倒频谱定义,现在您以mel频率标度表示频谱的包络(缩减频谱)。如果代表这一点,那么您会发现它有点像原始信号频谱。
下一步是计算上面获得的系数的对数。这是由于事实,倒频谱应该是同态变换,可以将信号与声道的冲激响应等分开。如何?
在频域中,卷积是频谱的乘积:
我们还期望脉冲响应不会随时间变化,因此可以通过减去平均值轻松地将其删除。现在您了解了为什么我们采用带能的对数。
ifft
因此,现在您看到,现在很难理解原始频谱的样子。此外,我们通常只采用前12个MFCC,因为较高的MFCC描述了对数能量的快速变化,这通常会使识别率变差。因此,进行DCT的原因如下:
最初,您必须执行IFFT,但是从DCT中获取实值系数会更容易。此外,我们不再拥有完整的频谱(所有频率段),而是在梅尔滤波器组中拥有能量系数,因此使用IFFT有点过分。
您可以在第一个图上看到,滤波器组是重叠的,因此彼此相邻的能量正在两个之间散布-DCT允许对其进行解相关。请记住,这是一个很好的属性,例如在高斯混合模型的情况下,您可以使用对角协方差矩阵(其他系数之间没有相关性),而不是完整的矩阵(所有系数都具有相关性),这大大简化了事情。
解耦梅尔频率系数的另一种方法是PCA(主成分分析),该技术仅用于此目的。幸运的是,事实证明,DCT在去相关信号方面非常接近PCA,因此使用离散余弦变换具有另一个优势。
一些文献:
Hyoung-Gook Kim,Nicolas Moreau,Thomas Sikora - MPEG-7 Audio and Beyond:音频内容索引和检索
不仅使DCT平滑,还减少了代表光谱所需的维数。DCT有助于降维,因为它倾向于在前几个系数中压缩大部分频谱能量。
其背后的原理是由于滤波器的重叠而将对数谱幅值的相关性(与滤波器组)分开。本质上,DCT平滑了由这些对数频谱幅度给出的频谱表示。
这是不正确的。对数谱幅值之间存在相关性,不仅因为它们重叠,而且还因为没有任何数字序列表示对数谱幅值的“有意义”(如在自然语音和声音中出现)序列。“有意义的”对数谱幅值趋于相当平滑,在较高频率下能量总体降低,等等。有人会说,所有“有意义的”对数谱幅值向量的空间尺寸都小于40或无论您使用哪个频段; DCT可以看作是降维,可以将40通道数据映射到这个较小的空间。
本质上,DCT平滑了由这些对数频谱幅度给出的频谱表示。
DCT不会进行任何平滑处理。从DCT数据重建时,您会看到平滑-平滑是由于DCT丢失信息以及随后的系数截断所致。
但是MFCC系数不存储平滑频谱-它存储一系列不相关的DCT系数。