语音识别之特征提取

语音识别之特征提取

1.因为语音信号不是平稳信号(均值方差等统计特征随时间变化),所以需要将信号分切成很多短的小范围内平稳的信号段(到音素级别),也就是分帧,常用的帧长为 25ms,帧移是10ms,前后帧重叠会使前后帧的统计特征不至于变化太大。分帧是用窗口函数与原信号相乘,但时域相乘到了频域是卷积,窗口函数如果用矩形窗则会因为矩形信号频谱有比较大的旁花瓣而造成频率泄漏 ,所以一般用旁瓣小的汉明窗。

2.分帧之前有一个加重处理,主要是为了去除口唇辐射的影响,提高语音高频的分辨率,使高频共振峰更加明显,所以将信号过了一个高通滤波器(x[n]=x[n]-a*x[n-1]),以增加高频部分的能量。

3.取窗口内的信号作为一个周期,这个周期以外的数据全用这个周期来扩展,这样取出来的信号不管是不是周期信号,扩展后的信号在整个时间轴上就变成了周期信号,离散周期信号就可以用计算机进行离散傅立叶变换。

4.因为人耳对频率的感知不是等间隔的,所以需要将频率转化为感知上等间隔梅尔频率( mel=2595*log(1+f/700) ), 然后用一组三角滤器确定信号在各个梅尔频段上的能量。

5.将梅尔频段上的能量取log即得到fbank特征,fbank常作为为DNN特征。

6.频域信号可以成一个低频率包络和高频信号合成(包络*高频细节),其中低频包络的共振峰对识别音素效果特别显著。将包络与高频分离的方法为:将频域信号取模(这里主要是为做离散余弦变换DCT,离散余弦变换与离散傅立叶变换的差别在于他只在实数域进行变换,一个实偶函数的傅里叶变换仍然是一个实偶函数。DTC是一种压缩傅立叶变换,不同频段压宿密度不同,很多场合低频信息重要度高于高频信息),然后取对数(对数特征对输入信号扰动不敏感),再进行逆离散傅立叶变换(相当于对频域信号再进行一次傅立叶变换),得到的结果即为MFCC特征(12维),然后将得到的特征进行一阶差分(12维)、二阶差分(12维)、能量特征(一维:sum(x[n]*x[n])),一阶差分能量(一维),二阶差分能量(一维),共39维。MFCC特征与Fbank特征相比,各维度之间的相关性小(和DCT变换有关)。