梅尔倒谱系数 MFCC 是什么?语音识别里最经典的声音特征
梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,MFCC)是一种从声音中提取特征的经典方法,由 Davis 和 Mermelstein 在 1980 年提出,几十年来一直是语音识别、说话人识别等任务中最常用的声音特征。
为什么需要它
原始的声音信号是一长串随时间变化的振幅数值,一秒钟就有成千上万个采样点,直接拿来做识别,数据量大,而且包含了大量和识别无关的信息。我们需要把声音转换成一组更紧凑、更能反映“说了什么”或“是谁在说”的特征。MFCC 的设计借鉴了人耳的听觉特性,这是它效果好的关键。
梅尔刻度:模拟人耳
人耳对频率的感知不是线性的:在低频区域,我们能分辨出很细微的音高差别,比如 200 赫兹和 300 赫兹的区别很明显;而在高频区域,同样相差 100 赫兹,比如 8000 赫兹和 8100 赫兹,几乎听不出来。梅尔刻度就是一种模拟这种感知特性的频率刻度:在低频处划分得细,在高频处划分得粗。在梅尔刻度上等距划分的频带,比在正常线性频率上等距划分的频带,更接近人类的听觉系统。
怎么计算
MFCC 的计算大致有几步:先把声音信号切成很短的帧,每帧二三十毫秒,在这么短的时间里声音可以看作是稳定的;对每一帧做傅里叶变换,得到它的频谱;用一组按梅尔刻度排列的三角形滤波器对频谱进行过滤,得到每个梅尔频带的能量;对这些能量取对数,因为人耳对响度的感知也接近对数关系;最后做离散余弦变换,得到的前十几个系数就是 MFCC。最后这一步得到的是“倒谱”,它能把声道形状(决定发的是什么音)和声源(声带振动的音高)的影响分离开,前者正是识别语音内容最需要的信息。
今天的地位
在深度学习时代,很多端到端的语音模型改用更原始的梅尔频谱图作为输入,甚至直接处理原始波形,让神经网络自己学习特征。但 MFCC 仍然在资源有限的设备、传统的语音系统、声学分析和音乐信息检索等场景中被广泛使用,也是学习语音处理的入门必修内容。