语音识别就是把一段语音信号转换成对应的文本信息,这一过程包括四个大的模块,分别是:特征提取、声学模型、语言模型、字典与解码。
本篇就来梳理一下特征提取模块的实现思路和方法。
常用的语音特征有:
- 梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients, MFCC)
- 梅尔滤波器组系数(Mel Filter Bank, FBank,也叫log-Mel)
- 线性预测系数(Linear Prediction Coefficient, LPC)
基于深度学习网络的语音识别,目前多采用FBank特征。 获得FBank特征主要包括以下几个步骤:
- 预加重;
- 分帧、加窗;
- 快速傅里叶变换,计算功率谱;
- Mel滤波器组;
- 取对数,得到FBank。
1. 预加重(Pre-Emphasis)
在音频录制过程中,高频信号更容易衰减,高频成分的丢失,可能导致音素的共振峰不明显,使得声学模型对这些音素的建模能力不强。预加重是个一阶高通滤波器,可以提高信号高频部分的能量。
预加重的实现方法:给定时域输入信号x,预加重之后的信号y为:y(t)=x(t)−αx(t−1),其中0.9≤α≤1.0。经过预加重之后的频谱图和原始的频谱图的比较如下图所示,其中,左侧为原始频谱图,右侧为预加重处理之后的频谱图。