1. 语音特征提取基础:从信号到特征的转换
1.1 传统语音特征提取方法解析
在语音处理领域,特征提取是将原始语音信号转换为机器可理解的特征表示的关键步骤。传统方法主要基于语音的声学特性,这些技术虽然已有数十年历史,但在特定场景下仍展现出不可替代的价值。
1.1.1 梅尔频率倒谱系数(MFCC)
MFCC是最经典的语音特征表示方法,其设计灵感来自人类听觉系统的生理特性。人耳对低频声音的敏感度远高于高频,MFCC通过梅尔尺度模拟了这一非线性感知特性。
完整提取流程详解:
-
预加重处理
使用一阶高通滤波器(通常取系数0.97)提升高频分量。这是因为语音信号的能量通常随频率升高而衰减,预加重可以平衡频谱,使后续处理更加均衡。实际公式为:
y(t) = x(t) - αx(t-1)
其中α通常取0.95-0.97。 -
分帧加窗
语音信号具有短时平稳性,通常以20-40ms为一帧(对应160-320个采样点@8kHz),帧移10-20ms。汉明窗的应用公式为:
w(n) = 0.54 - 0.46*cos(2πn/(N-1))
这能有效减少频谱泄漏,我在实际项目中测试发现,相比矩形窗可降低旁瓣幅度约15dB。 -
傅里叶变换
将时域信号转换为频域表示,通常采用512或1024点FFT。在Python中,np.fft.rfft比完整FFT节省近一半计算量,因为语音信号是实信号。 -
梅尔滤波器组
设计20-40个三角形滤波器,在梅尔尺度上均匀分布。梅尔频率与赫兹的转换公式为:
mel(f) = 2595*log10(1+f/700)
我建议滤波器数量根据采样率调整:8kHz用26个,16kHz用40个,能更好平衡分辨率和计算量。 -
离散余弦变换(DCT)
取前12-13个系数作为MFCC特征,高阶系数通常包含更多细节信息但易受噪声影响。DCT还能去除特征间的相关性,有利于后续建模。
实战技巧:
- 对于实时系统,可采用滑动窗方式避免重复计算
- 动态范围压缩(如对数运算)能提升噪声鲁棒性
- 差分MFCC(一阶、二阶)可有效捕捉动态特征
