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

信息处理 过滤器 mfcc 倒谱分析
2022-01-12 23:08:43

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

我最了解 MFCC 背后的数学原理:我了解滤波器组步骤和 Mel 频率缩放。

我没有得到的是 DCT(离散余弦变换)步骤:在这一步中我得到了什么样的信息?此步骤的良好视觉表示是什么?

2个回答

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

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

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

所以,让我们把它放在一起。一旦你计算了 Mel 频谱,你就会得到一个频谱表示,它以类似于人类听觉工作方式的方式敏感。这种形状的某些方面比其他方面更相关。通常,较大的总体光谱形状比光谱中嘈杂的精细细节更重要。您可以想象绘制一条平滑线以跟随光谱形状,并且您绘制的平滑线可能会告诉您关于信号的信息。

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

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

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

它们源自音频剪辑的一种倒谱表示......

MFCC 就像一个对频谱,倒谱

信号的倒谱x(t)只是:

C(z)=F1(log(|F(x(t))|2))

在哪里F是傅里叶变换和F1它的逆。

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

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

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

DCT 相对于傅里叶变换的优势在于得到的系数是实值的,这使得后续处理和存储更容易。