核心要点
原始波形 → 分帧加窗 → STFT 得到频谱(线性频率刻度)
梅尔频谱:用梅尔滤波器组把频谱映射到符合人耳感知的梅尔刻度,再取对数得对数梅尔谱
MFCC:对对数梅尔谱做 DCT,取前若干阶系数(常 13),得到紧凑、去相关的倒谱特征
深度学习时代多直接喂对数梅尔谱给 CNN/Transformer;MFCC 更常见于传统/轻量模型
标准回答
从波形到频谱
音频先分帧、加窗,再做短时傅里叶变换(STFT)得到随时间变化的频谱图,横轴时间、纵轴频率(线性刻度)、值为能量。
梅尔频谱
人耳对低频敏感、对高频分辨率下降,且感知近似对数。梅尔刻度就是这种感知刻度。把线性频谱通过一组梅尔三角滤波器加权汇聚到梅尔频带,再取对数(更贴近响度感知),即得对数梅尔频谱(log-Mel spectrogram)。它压缩了高频细节、突出语音相关频带。
MFCC
MFCC(梅尔倒谱系数)在对数梅尔谱基础上再做离散余弦变换(DCT),并只保留前若干阶(常 13 维)。DCT 起到去相关与降维作用,得到紧凑、各维近似独立的特征,传统上很适合 GMM-HMM 等模型。
如何选择
深度模型(Whisper、声学 CNN/Transformer)通常直接用对数梅尔谱,保留更多信息让网络自学;MFCC 维度低、计算省,适合资源受限或传统流水线。
常见误区
⚠️ 常见踩坑
MFCC 不是「另一种频谱」,而是对梅尔谱再做 DCT 的倒谱系数。现代深度模型多用梅尔谱而非 MFCC,因为 DCT 会丢信息且网络能自行去相关。
追问
追问 1:为什么用梅尔刻度而不是线性频率?
因为人耳对频率的感知是非线性的:低频处分辨率高、高频处分辨率低,近似对数关系。梅尔刻度模拟这一感知,使每个梅尔频带在感知上等距。这样特征更贴合人对语音/声音的辨别方式,在相同维度下保留对语音更有用的信息,提升下游识别效果。
追问 2:为什么深度学习更倾向直接用梅尔谱而非 MFCC?
MFCC 的 DCT 去相关是为 GMM 等假设特征独立的传统模型服务的,但会丢弃部分信息。神经网络(尤其 CNN/Transformer)能自行从相关特征中学表示,不需要人工去相关。保留信息更丰富的对数梅尔谱通常带来更高精度,因此成为现代声学模型的默认输入。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。