1 基本概念

1.1 定义与作用

梅尔频率倒谱系数是一类从语音或音频信号中提取的低维特征,通常用于概括声音的主要频谱形态。其基本目标不是完整还原原始波形,而是保留对识别任务最有帮助的声学信息,使机器能够更高效地处理输入信号

在实际应用中,MFCC 常被用来表示一个时间片段内的音色共振峰走向及整体频谱包络,因此在语音识别、说话人识别、情感分析和音频分类中都很常见。由于它压缩了大量原始数据,计算负担相对较小,也便于后续建模。

1.2 名称来源

“Mel-frequency”指其频率分析过程采用了梅尔尺度,这是一种近似人耳感知频率变化的非线性刻度;“cepstral coefficients”则表示通过倒谱分析得到的一组系数。名称整体反映了该方法既考虑了听觉感知,又使用了频谱到倒谱的数学变换。

这一命名方式体现了 MFCC 的方法论特点:先把物理频率映射到感知频率,再通过对数与变换提取更稳定的表征。与单纯的频谱特征相比,它更强调“听起来像什么”,而不只是“物理上有什么”。

1.3 在信息处理中的地位

MFCC 是传统语音信号处理中的经典特征之一,长期以来被视为声学建模的标准输入形式。无论是在统计方法还是早期机器学习系统中,它都占据了基础位置,影响了后续大量特征设计思路。

尽管近年来深度学习模型开始直接从波形或谱图中学习表示,MFCC 仍然因其简洁、稳定和可解释性较强而被广泛保留,尤其适合资源受限场景、基线实验以及小规模任务。

2 数学基础

2.1 语音信号的时频特性

语音并非完全平稳信号,但在很短的时间范围内通常可以近似看作短时平稳。也就是说,几十毫秒内信号的统计特性变化不大,这为分帧分析提供了基础。

从时域看,语音波形变化快速且复杂;从频域看,不同发音对应的能量分布会在若干频带上形成相对稳定的结构。因此,分析语音时常把“时间局部化”和“频率分布”结合起来处理。

2.2 频谱与倒谱的关系

频谱描述的是信号各个频率成分的能量分布,而倒谱则是在对数频谱基础上进一步变换得到的表示。它在一定程度上可以把频谱中的周期性结构与包络结构分离出来,因此常用于揭示语音中的共振峰和整体谱形。

MFCC 的“倒谱”部分并不是直接追求精确的物理反演,而是借助倒谱域的低阶系数,近似保留频谱包络信息。低阶系数一般对应较平滑的谱形,高阶系数则更多反映细节和快速起伏。

2.3 人耳听觉感知基础

人耳对不同频率的分辨并不均匀。一般来说,低频区域更容易区分细小变化,而高频区域的频率分辨能力相对较弱。MFCC 正是利用这种差异,将线性频率轴压缩到更接近听觉体验的刻度上。

此外,人耳对响度的感知也不是线性的,同样大小的物理能量变化在主观上并不一定等价。基于这种特点,对数压缩和非线性滤波成为 MFCC 设计中的关键环节。

2.3.1 梅尔尺度

梅尔尺度是一种将线性频率映射为感知频率的经验刻度。它在低频区变化较细,在高频区变化较缓,更贴近人类对音高变化的主观判断

在具体实现中,梅尔尺度常用于构造滤波器组,使相邻滤波器在感知层面上具有较合理的覆盖关系。这样得到的频带分布比等间隔赫兹划分更适合语音分析。

2.3.2 等响度感知与频率分辨率

等响度感知描述的是人耳对不同频率声音强度的非一致响应。某些频率在较低能量下就显得明显,而另一些频段则需要更强的物理幅度才能产生相近的主观响度。

频率分辨率方面,人耳在低频处通常能够区分更细的间隔,而在高频处容忍度更大。MFCC 通过梅尔滤波器组和对数运算,借助这种感知特性突出更重要的声学变化。

3 计算流程

3.1 预加重

预加重是对原始语音信号进行的一种高通式处理,常用于提升高频成分的相对能量。由于语音在传播和采集过程中常表现出低频偏强的特征,这一步有助于缓和频谱倾斜现象。

这一过程通常通过简单差分实现,形式上较为直接,但其效果会影响后续频谱估计的平衡性。实际应用中,并非所有场景都必须采用,但它是经典流程中的常见步骤。

3.2 分帧

分帧是把连续语音切分为若干短时片段,以便在短时间尺度上近似平稳地分析。一般来说,每一帧都承载一个局部时刻的声学特征,便于后续逐帧提取。

帧与帧之间通常会有重叠,这样可以避免重要瞬态信息因切分过粗而丢失。重叠比例较高时,时间连续性更好,但计算量也会相应增加。

3.3 加窗

加窗的目的是减少分帧后边界处的突变带来的频谱泄漏。由于截断操作会在频域引入额外波动,因此需要用平滑窗口来弱化边缘效应。

常见窗函数包括汉明窗和汉宁窗等。它们都能在一定程度上平衡主瓣宽度与旁瓣抑制能力,从而改善频谱估计的稳定性

3.4 快速傅里叶变换

快速傅里叶变换用于将每一帧信号从时域转换到频域,以便观察不同频率上的能量分布。相比直接计算离散傅里叶变换,FFT 具有更高的运算效率,适合批量处理

在 MFCC 流程中,FFT 结果通常作为后续滤波器组输入。它提供的是较细粒度的线性频谱,是进一步感知化处理的基础。

3.5 梅尔滤波器组

梅尔滤波器组会在频域上设置一系列三角形滤波器,每个滤波器覆盖一段感知频带。不同滤波器的中心频率按梅尔尺度分布,从而在低频区更密集、高频区更稀疏。

每个滤波器输出的是其覆盖频带内的能量汇总。这个步骤把原始频谱压缩为更粗的、符合听觉规律的频带能量表示。

3.6 对数能量压缩

对滤波器组输出取对数,可以模拟人耳对响度的近似对数感知,同时减弱大能量与小能量之间的绝对差异。这样做还可使乘性变化转化为加性变化,便于后续分析。

对数压缩还有助于突出较弱的谱特征,使一些原本不明显的频带变化得到保留。对于语音中包含的共振峰结构,这一步尤其重要。

3.7 离散余弦变换

离散余弦变换用于把对数滤波器组能量进一步转换为倒谱系数。其作用之一是实现能量的集中表达,减少相邻系数之间的相关性。

通过 DCT,原本分布在多个滤波器上的信息会被压缩到较少的低阶系数中。实践中,通常保留前若干项即可作为最终特征。

3.8 系数截取与拼接

DCT 之后,往往只选取低阶的若干倒谱系数,因为它们最能代表频谱包络。过高阶的系数往往对应较细碎的波动,对很多任务帮助有限。

在时序建模中,单帧 MFCC 也常与差分系数拼接,形成更丰富的特征向量。这样既保留静态谱形,也补充动态变化信息。

4 详细步骤

4.1 预处理阶段

4.1.1 去直流分量

去直流分量是消除信号整体偏置的一步,避免采样设备或录音链路造成的基线偏移影响后续分析。若不处理,直流成分可能干扰低频统计和能量计算。

通常可通过减去信号均值实现。对于长时间录音,这一处理相对简单,但能提升特征稳定性。

4.1.2 预加重系数设置

预加重常使用固定系数,目的在于增强高频部分。系数过低时效果不明显,过高时则可能过度放大高频噪声,因此需要在增强与保真之间折中。

在不同采样率和任务中,该参数并非完全一致。实际中通常结合数据特性和实验表现进行选择。

4.2 频域分析阶段

4.2.1 帧长与帧移选择

帧长决定了每次分析的时间窗口大小,帧移则决定相邻帧之间的步进。帧长过短会导致频率分辨率不足,帧长过长则可能破坏短时平稳近似。

语音处理中常在短时尺度上权衡二者,使其既能捕捉音素变化,又不会丢失局部结构。帧移较小可获得更密集的时间采样,但计算成本更高。

4.2.2 窗函数类型比较

不同窗函数在频谱泄漏抑制与分辨率之间存在差异。汉明窗常因综合性能较平衡而被广泛采用;矩形窗虽然简单,但边界突变明显,通常不适合精细频谱分析。

选择何种窗函数,往往取决于任务对频域平滑性和计算简洁性的要求。多数工程实现会优先使用常见的平滑窗。

4.2.3 频谱估计方法

频谱估计通常基于每帧信号的傅里叶变换结果,再计算其幅度或功率谱。功率谱更关注能量分布,适合与滤波器组结合使用。

在某些场景中,还会对频谱进行进一步平滑或平均,以降低随机波动带来的影响。这样得到的输入更加稳定,便于后续特征提取。

4.3 特征提取阶段

4.3.1 梅尔滤波器设计

滤波器设计需要确定中心频率、带宽和覆盖范围。一般会根据人耳感知特性,令滤波器在低频区域更密集,以便保留更细的频率变化。

滤波器的形状多采用三角形,便于计算和解释。每个滤波器对邻近频带呈连续过渡,避免硬切分造成的突兀感。

4.3.2 滤波器数量与频带分布

滤波器数量直接影响特征分辨率。数量较少时,表示更粗糙,但计算更快;数量较多时,信息更丰富,不过也可能引入冗余。

频带分布通常从低频到高频逐渐拉开间隔,符合感知规律。对于不同采样率的音频,滤波器覆盖上限也需要相应调整。

4.3.3 对数能量计算

滤波器输出经对数变换后,可以更清楚地体现不同频带间的相对差异。对数运算也会压缩动态范围,使强弱能量之间不至于过分悬殊。

在实现中,需要注意零值或极小值带来的数值问题,因此常会加入很小的偏移量以保证稳定性。这个细节在工程中十分常见。

4.3.4 DCT 变换与去相关

DCT 的一项重要作用是去相关,即降低相邻系数之间的依赖程度。这样处理后,特征更适合传统统计模型使用,也更便于维度压缩。

低阶倒谱系数通常反映整体谱包络,高阶系数则更多体现局部纹理。许多系统只取前 12 或 13 维左右的静态系数作为主干特征。

4.4 后处理阶段

4.4.1 一阶差分系数

一阶差分用于描述特征随时间的变化趋势,也称动态特征的一种。它能反映语音从当前帧到相邻帧的变化方向与速度。

在很多任务中,单独使用静态 MFCC 不够完整,加入一阶差分后可以明显增强时序信息表达。它常与静态系数拼接使用。

4.4.2 二阶差分系数

二阶差分进一步刻画变化的变化,即加速度性质。它对短时动态模式、语音起伏和某些情绪变化有补充作用。

不过,二阶差分对噪声也较敏感,因此是否加入通常需要结合任务需求。若数据较少或环境较复杂,使用时要更谨慎。

4.4.3 特征标准化

标准化是将特征按均值和方差进行调整,使不同样本或不同维度处于更一致的数值范围。这样做可减轻说话人差异、录音设备差异带来的影响。

在批量训练中,标准化还能提升模型收敛速度。常见做法包括按说话人、按录音段或按全局统计量进行归一化处理。

5 参数设置

5.1 帧长与帧移

帧长与帧移是 MFCC 中最基础也最敏感的参数之一。它们决定了时间分辨率、频率分辨率以及整体计算量。

经验上,语音任务常采用几十毫秒左右的帧长,并设置较小帧移以保证时间连续性。对于节奏更慢或更复杂的音频,参数可能需要适当调整。

5.2 梅尔滤波器个数

滤波器个数直接影响频带采样密度。若个数过少,特征容易过于粗略;若过多,则可能增加冗余并放大噪声影响。

常见设置会在中等数量范围内折中,既能保留足够细节,又不会使特征维度膨胀过快。不同采样率下常需重新评估这一参数。

5.3 倒谱系数维数

倒谱系数维数通常决定最终输出的主干表示长度。维度过低会损失信息,维度过高则可能引入无关细节。

在语音识别中,较常见的做法是保留前十余个低阶系数。若再叠加差分特征,整体维度会成倍增加,需要结合模型容量权衡。

5.4 预加重与窗函数参数

预加重系数和窗函数类型会影响频谱形态的平滑程度与高频增强效果。不同参数组合可能导致特征分布出现明显变化。

一般来说,这些参数并不需要极端精细地逐帧调整,但在不同语料或设备条件下,合理选择仍然很重要。工程上常优先采用稳定、成熟的默认配置。

5.5 常见经验取值

常见经验做法包括:采用中等长度帧、较小帧移、若干十个左右的梅尔滤波器,以及十余维倒谱系数。对于大多数标准语音任务,这样的配置足以提供可靠基线。

不过,经验值并非固定公式。对于噪声较强、采样率较低或信号类型特殊的场景,通常需要通过实验微调。

6 特征变体

6.1 传统 MFCC

传统 MFCC 指按照经典流程提取得到的静态倒谱系数,通常不额外加入复杂修正。它结构清晰、实现成熟,是最基础的形式。

这种版本适合作为比较标准,也常用作其他改进方法的参照基线。许多文献中的“MFCC”若未特别说明,往往指的就是这一类。

6.2 加入动态特征的 MFCC

这类方法在静态 MFCC 基础上拼接一阶差分和二阶差分,以增强时间变化表达。对于语音这种天然动态信号,这种扩展往往能带来更好的识别效果。

由于动态特征反映的是局部变化,它们对发音过渡、语速差异和连读现象较敏感。很多传统声学系统都会采用这一组合。

6.3 归一化 MFCC

归一化 MFCC 是对原始系数做尺度统一或统计校正后的版本。通过消除均值偏移、幅度差异或通道效应,它可提升跨样本的一致性。

归一化尤其适合录音条件不稳定的场景。若不同设备、距离或环境下采集的数据差异较大,这类处理通常很有价值。

6.4 鲁棒性增强型 MFCC

鲁棒性增强型 MFCC 通常指在噪声环境下经过额外处理的特征形式,例如在提取前后加入降噪、滤波、掩蔽或补偿步骤。其目的在于减轻环境干扰对频谱包络的破坏。

这类方法常用于远场语音、车载语音或背景噪声较强的音频场景。其效果取决于噪声类型、补偿策略和应用任务。

6.5 与其他声学特征的组合

MFCC 也常与其他声学表示组合使用,例如能量、基频、谱相关特征或时频图统计量。组合后的特征更全面,能从多个角度描述音频内容。

在一些系统中,不同特征承担互补角色:MFCC 负责主体频谱包络,其他特征补充节奏、音高或瞬态信息。这样的融合有助于提升模型表现。

7 应用领域

7.1 语音识别

语音识别是 MFCC 最经典的应用场景之一。它能够把语音波形转化为稳定的声学输入,为后续词级或音素级建模提供基础。

在传统识别系统中,MFCC 常作为隐藏马尔可夫模型或统计分类器的输入特征。即使在部分现代流程中,它仍可作为标准基线。

7.2 说话人识别

说话人识别关注的是“谁在说话”,而不仅是“说了什么”。MFCC 能反映个体发声习惯、声道特征和部分音色差异,因此适合用来区分说话人。

在这类任务中,模型往往结合 MFCC 的时间序列模式来捕捉个体特征。若再配合归一化和动态特征,效果通常更稳定。

7.3 说话情感分析

说话情感分析通过声音判断说话者的情绪状态,例如平静、愉快、紧张或激动。MFCC 作为频谱包络特征,可为情感识别提供基础声学线索。

不过,情感往往不仅体现在频谱上,还涉及语速、音高、能量起伏等因素。因此,MFCC 常与其他特征协同使用,而不是单独承担全部任务。

7.4 环境声分类

环境声分类用于识别风声、雨声、脚步声、机械声等非语音音频。MFCC 虽源于语音研究,但由于其对音频频谱形态的概括能力,也被广泛迁移到这一领域。

对于某些结构较明显的环境声音,MFCC 能较好地体现整体音色和频率分布特征。配合机器学习模型时,常能取得不错的基础效果。

7.5 音乐与音频检索

在音乐检索和音频检索中,MFCC 可用于描述音色相似度、片段相似性或风格特征。它在区分不同音频材料时,提供了一种较简洁的声学摘要。

尽管音乐分析任务往往更复杂,MFCC 仍常出现在相似度检索、片段匹配和素材分类等环节中,作为易于计算的通用特征。

8 优点与局限

8.1 优点

8.1.1 计算效率高

MFCC 的计算流程相对明确,主要由分帧、FFT、滤波器组和变换构成,适合高效实现。对大规模数据处理而言,它的成本通常低于更复杂的端到端表示学习方法。

因此,MFCC 非常适合作为快速基线或资源有限场景中的首选特征。其工程实现成熟,也便于移植到不同平台。

8.1.2 与听觉感知较一致

MFCC 的设计考虑了人耳对频率和响度的非线性感知,因此得到的特征往往更符合主观听感。相较于单纯线性频谱,它更容易突出与感知相关的信息。

这种一致性使得 MFCC 在语音类任务中特别有效,因为语音本身就是以人类听觉交流为中心的信号类型。

8.1.3 适用于多种任务

MFCC 不仅适合语音识别,也适用于说话人识别、情感分析、环境声分类等多种任务。其通用性较强,能在不同任务中作为稳定起点。

由于它所描述的是较普适的频谱包络结构,因此在很多音频建模问题中都具有可迁移性。

8.2 局限

8.2.1 对噪声敏感

MFCC 对背景噪声和信道变化比较敏感。若原始音频含有较强干扰,提取出的频谱包络可能被污染,从而影响后续识别效果。

这也是许多鲁棒特征研究持续关注的问题。实际应用中常需要配合降噪或补偿方法使用。

8.2.2 丢失部分细粒度信息

由于 MFCC 经过压缩和截断,许多细节信息会被舍弃。对于需要保留精细谱结构、瞬态特征或高频细节的任务,这种压缩可能带来信息损失。

换言之,MFCC 更擅长提供概括性描述,而不是完整保真地保存音频内容。

8.2.3 对非平稳信号的表达能力有限

MFCC 建立在短时平稳近似之上,因此对强非平稳、结构快速变化的信号表达能力有限。若音频在很短时间内发生剧烈变化,单帧特征可能不足以充分刻画其动态。

这类情况下,通常需要更丰富的时序建模方法或与其他特征联合使用。

9 与其他特征的比较

9.1 与线性预测倒谱系数的比较

线性预测倒谱系数主要基于线性预测模型,强调通过声道模型近似信号谱包络。与之相比,MFCC 更侧重感知频率刻度和滤波器组能量分布。

两者都能描述语音的谱形,但 MFCC 在感知一致性上更突出,而 LPCC 在某些线性建模框架中也有独特优势。实际选择往往取决于任务和历史系统习惯。

9.2 与谱质心、谱通量等特征的比较

谱质心、谱通量等特征通常更直接地描述音频的某个局部统计量,例如“亮度”或“变化速度”。它们表达简洁,但信息维度较窄。

MFCC 则更像一种综合性摘要,能在有限维度内保留较完整的频谱包络形态。因此,在复杂任务中,MFCC 往往比单一谱统计量更有表达力。

9.3 与滤波器组能量特征的比较

滤波器组能量特征保留了经过滤波器组后的能量分布,但未必再进一步做 DCT 压缩。相比之下,MFCC 在此基础上又进行倒谱化处理,通常更紧凑。

如果任务更依赖局部频带细节,滤波器组能量可能更有优势;若更重视压缩后表示,MFCC 往往更合适。

9.4 与深度学习声学表示的比较

深度学习声学表示通常由模型从大量数据中自动学习,可能比手工特征更灵活,能够适应复杂任务。MFCC 则是人工设计的经典特征,结构明确、可解释性较强。

在数据充足时,深度表示常能超越传统手工特征;但在数据有限、模型较小或需要快速部署的情况下,MFCC 仍然非常实用。

10 典型实现

10.1 经典处理流程

典型实现通常遵循“预处理—分帧—加窗—FFT—梅尔滤波器组—对数压缩—DCT—截取系数”的顺序。这个流程已成为行业和学术界广泛认可的标准模板。

在许多工程系统中,静态 MFCC、差分系数和标准化会一起组成最终特征向量。其整体结构稳定,易于复现。

10.2 软件工具与库

MFCC 已被众多软件环境原生或通过工具包支持,适合快速调用。不同平台的核心思路基本一致,差异主要在默认参数与接口设计。

10.2.1 MATLAB 实现

MATLAB 在信号处理和原型验证方面使用较多,常凭借现成函数或脚本完成 MFCC 提取。其优势在于开发方便、可视化能力强,适合教学和实验。

在该环境中,用户通常可以较直观地检查每一步处理结果,从而便于调参和排错。

10.2.2 Python 实现

Python 生态中有大量音频处理库可用于计算 MFCC,适合科研和工程部署。其优势在于与机器学习框架衔接方便,便于构建端到端实验流程。

常见用法是先读取音频,再调用特征函数生成矩阵,随后送入分类器或神经网络模型。

10.2.3 开源语音工具包

许多开源语音工具包都提供了 MFCC 的标准实现,并附带一系列预处理与后处理功能。它们往往适合批处理、大规模实验和统一评测。

这些工具包的价值不仅在于实现特征提取,还在于提供可复用的参数配置与数据管线支持。

10.3 工程应用中的常见做法

工程上常见的做法是将 MFCC 作为基础输入,并结合归一化、差分特征和噪声抑制措施。这样可以在保持计算简洁的同时,提升实际效果。

此外,很多系统会针对不同采样率、说话环境和设备条件预先制定参数模板,以减少部署时的反复调试。

11 研究与扩展

11.1 鲁棒 MFCC 研究

鲁棒 MFCC 研究重点在于增强其在噪声和信道失真条件下的稳定性。常见思路包括特征级补偿、频带加权、动态范围控制等。

这类研究的目标并不是改变 MFCC 的基本框架,而是在经典流程上增加对干扰的抵抗能力,使其更适用于真实环境。

11.2 噪声抑制与特征增强

噪声抑制可在特征提取前进行,也可在特征域中完成。前者通过改善输入质量来减少污染,后者则通过对特征进行补偿或修正来恢复可用信息。

特征增强方法常与去噪、归一化、谱减法等策略结合使用。对于复杂环境录音,这些手段往往比单纯提取原始 MFCC 更有效。

11.3 端到端系统中的替代方案

在端到端系统中,模型有时不再显式依赖 MFCC,而是直接从波形或梅尔谱图学习表示。这样可以让模型自行发现更适合任务的特征结构。

不过,即便在端到端框架下,MFCC 仍然常用于辅助实验、特征对照或轻量级系统。它在方法演化中并未完全退出,而是更多转向基线与补充角色。

11.4 面向特定场景的改进

针对不同应用场景,MFCC 可做定制化调整,例如面向远场语音、儿童语音、低采样率音频或短时事件检测。改进方向通常围绕滤波器分布、时域分辨率和鲁棒性补偿展开。

这类定制化处理说明,MFCC 并非固定不变的单一模板,而是可以根据任务需求灵活变形的特征框架。

12 相关概念

12.1 倒谱分析

倒谱分析是从对数频谱中提取周期结构和包络信息的一种方法。它在语音处理中具有重要地位,也是 MFCC 的数学基础之一。

12.2 梅尔尺度

梅尔尺度是一种模拟人耳频率感知的非线性刻度。它用于构建滤波器组,使频率分析更贴近听觉特性。

12.3 短时傅里叶变换

短时傅里叶变换是分析非平稳信号的常用工具,通过对信号分段并分别做频域变换来观察局部频谱变化。MFCC 的前端处理与其思想密切相关。

12.4 语音特征提取

语音特征提取是将原始语音转换为适合机器学习或识别系统输入的表示的过程。MFCC 是其中最具代表性的经典方法之一。