语音识别之特征提取

语音识别之特征提取_第1张图片

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

采样时频率分辨率概念:采样时要使采出来的频谱信息能恢复原信号,每个频率至少采两次,这是采样定理。  采样时如果采样率是16K,则最多只能还原出8k带宽的信号。如果采集了400个数点,则相当于将原信号的频率采集了200遍。采样后做离散傅立叶变换,如果输出的值是512位(这个是可以自己定义的,和采样点数没关系),则512位等分16k频率,每位占32HZ,也即频率分辨率为32Hz。可见频率分辨率只和采样率及fft输出位数有关。

频率泄漏的概念:分帧时是信号和窗函数相乘,频率上是信号频谱与窗频谱卷积,如果窗函数旁瓣比较大,则会出现卷积后的频谱在旁瓣处也会比较大,恢复原信号时越完整的频率信息越能恢复原来信号。但我们做采样时采样率已经限制了我们信号的频率带宽,fft时也不能用少量数点输出很高精度超过原始信号带宽的频率信息。所以造成旁瓣处的频率不能参与表示原信号,与原信号失真,旁瓣越大失真越大。

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变换有关)。

 

 

你可能感兴趣的:(ml,语音)