图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为帧长25ms、帧移10ms的分帧。
帧移的事情就不详细解释了,它是为了保证语音信息的完整性。感兴趣的同学可以查一下,加窗/窗函数。
那为什么需要平缓的分帧呢?因为我们需要做傅里叶变化,它适用于分析平稳的信号。
人类是根据振动频率判断声音的,而以时间为横轴(时域)的波形图没有振幅描述,我们需要做傅里叶变换,将它变成以频率为横轴(频域)的振幅描述。
2.3 特征提取
特征提取就是从语音波形中提取出能反映语音特征的重要信息,去掉相对无关的信息(如背景噪声),并把这些信息转换为一组离散的参数矢量 。
a)特征提取
如何提取呢?我们经过采样,预处理,将这些数字绘制为简单的折线图,如下所示,我们得到了 20 毫秒内原始声波的大致形状:
这样的波形图对机器来说没有任何描述信息。这个波形图背后是很多不同频率的波叠加产生的。(准确的讲,它在时域上没有描述能力)
我们希望一段声纹能够给出一个人的特性,比如什么时候高,什么时候低,什么时候频率比较密集,什么时候比较平缓等等。
就是我们上面所说的,用傅里叶变化来完成时域到频域的转换。
这就需要对每一帧做傅里叶变化,用特征参数MFCC得到每一帧的频谱(这个过程就是特征提取,结果用多维向量表示),最后可以总结为一个频谱图(语谱图)。
如下图所示,是“hello”的频谱图,很酷是吧~
横轴是时间,纵轴是频率。颜色越亮,表示强度越大。
b)常用的特性参数
特性提取时,我们有常用的特征参数作为提取模板,主要有两种:
线性预测系数(LPC)
LPC 的基本思想是,当前时刻的信号可以用若干个历史时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小,即可得到一组线性预测系数。
求解LPC系数可以采用自相关法 (德宾 durbin 法) 、协方差法、格型法等快速算法。
倒谱系数
利用同态处理方法,对语音信号求离散傅立叶变换后取对数,再求反变换就可得到倒谱系数。
其中,LPC倒谱(LPCCEP)是建立在LPC谱上的。而梅尔倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)则是基于MEL谱的。不同于LPC等通过对人的发声机理的研究而得到的声学特征,MFCC 是受人的听觉系统研究成果推动而导出的声学特征。
简单的说,经过梅尔倒谱分析,得到的参数更符合人耳的听觉特性。
c)短语音识别为单词
有了上面的特征提取,每一帧都可以表述为一个多维向量,接下来就是把向量识别为文本。
这里我们需要多介绍一个概念,叫【状态】。
你可以理解为,是比音素更细致的语音单位。通常把一个音素划分成3个状态。