在大多数音频处理任务中,最常用的变换之一是MFCC(梅尔频率倒谱系数)。
我最了解 MFCC 背后的数学原理:我了解滤波器组步骤和 Mel 频率缩放。
我没有得到的是 DCT(离散余弦变换)步骤:在这一步中我得到了什么样的信息?此步骤的良好视觉表示是什么?
在大多数音频处理任务中,最常用的变换之一是MFCC(梅尔频率倒谱系数)。
我最了解 MFCC 背后的数学原理:我了解滤波器组步骤和 Mel 频率缩放。
我没有得到的是 DCT(离散余弦变换)步骤:在这一步中我得到了什么样的信息?此步骤的良好视觉表示是什么?
您可以将 DCT 视为压缩步骤。通常使用 MFCC,您将采用 DCT,然后只保留前几个系数。这与在 JPEG 压缩中使用 DCT 的原因基本相同。选择 DCT 是因为它们的边界条件在这些类型的信号上效果更好。
让我们将 DCT 与傅里叶变换进行对比。傅里叶变换由具有整数个周期的正弦曲线组成。这意味着,所有傅里叶基函数都以相同的值开始和结束——它们不能很好地表示以不同值开始和结束的信号。请记住,傅立叶变换假设有一个周期性扩展:如果您将信号想象在一张纸上,傅立叶变换希望将这张纸卷成一个圆柱体,以便左右两侧相遇。
想想一个大致形状像一条带负斜率的线(这是非常典型的)的频谱。傅里叶变换将不得不使用许多不同的系数来适应这种形状。另一方面,DCT 具有半整数周期的余弦。例如,有一个 DCT 基函数,它看起来有点像那条具有负斜率的线。它不假定周期延长(而是均匀延长),因此它会更好地拟合该形状。
所以,让我们把它放在一起。一旦你计算了 Mel 频谱,你就会得到一个频谱表示,它以类似于人类听觉工作方式的方式敏感。这种形状的某些方面比其他方面更相关。通常,较大的总体光谱形状比光谱中嘈杂的精细细节更重要。您可以想象绘制一条平滑线以跟随光谱形状,并且您绘制的平滑线可能会告诉您关于信号的信息。
当您采用 DCT 并丢弃较高的系数时,您将采用这种光谱形状,并且只保留对表示这种平滑形状更重要的部分。如果您使用傅立叶变换,那么将重要信息保留在低系数中就不会做得很好。
如果您考虑将 MFCC 作为特征提供给机器学习算法,这些低阶系数将成为很好的特征,因为它们代表光谱形状的一些简单方面,而您丢弃的高阶系数更像噪声并且对训练并不重要。此外,对 Mel 频谱幅度本身的训练可能不会那么好,因为不同频率下的特定幅度不如频谱的一般形状重要。