2.2 预处理
预处理部分是语音识别的第一步,所以也是非常关键的一步,目的就是为了减少各种噪声的干扰。其中包括预滤波、采样量化、分帧加窗等。其中,预滤波是预处理的第一步,目的是滤除大部分噪声,预处理流程图如图3所示。
图3 预处理流程图
2.2.1 预加重
预加重是为了便于提取特征参数。首先,由于在语音信号的频谱中,不同的语音在各自高频部分差异较为明显,在低频部分差异相对不够突出,故在后续特征参数提取部分重点要提取出高频部分的频谱。其次又因为语音信号能量较小,属于小信号,必须将其进行放大,才能便于处理,而语音信号往往是频率越高,相应的幅值越低,然而高频部分却更为有用,故高频部分要进行预加重。具体做法是将信号通过高通滤波器抑制工频信号干扰,另外,在端点检测之前进行预加重还可以有效抑制直流漂移、抑制随机噪声并且还可以提升高清音。
2.2.2 分帧和加窗
短时特性是语音信号非常显著的一个特点,为了提取这个特点,预加重后就是分帧加窗,通常采用的窗函数有矩形窗和汉明窗。虽然矩形窗的主瓣宽度比较小,但其旁瓣高度却比较高,去噪效果不够好,汉明窗的主瓣较宽,而旁瓣宽度低。矩形窗的旁瓣较高,会产生过为严重的频谱泄漏现象,故而只在某些特定的场合中得到应用。汉明窗旁瓣则比较低,就可以有效的克服频谱泄漏的现象。所以,汉明窗比矩形窗更合适,本设计就采用汉明窗[10]。汉明窗表达式如式(1),其中N为帧长。本论文设计中,采用8kHz采样,帧长采用256,帧移用80。
(1)
进而还要将语音信号进行分帧,帧与帧之间的交叠部分成为帧移,帧移一般取为窗长的一半。分帧用函数f=enframe(X,(en,inc)),X为输入语音,len为制定帧长,inc为制定帧长。
在MATLAB中加窗分帧后乘上窗函数,汉明窗X=X hamming(N).
2.2.3 端点检测
研究表明,即使在安静的环境下,语音识别系统一半以上的识别错误来自于端点检测,故而端点检测的关键性不容忽视,特别是对端点检测比较敏感的算法,本设计的端点检测采用双重门限短时能量检测和短时过零率检测来提高准确率。为了准确的判定并标记出有效语音信号的开始位置和终止位置,将频谱分为四段,分别是:无声段、等待段、语音段和结束段,从语音信号中排除无声段。
具体而言,首先要在开始语音信号端点检测前,先分别为短时能量和过零率确定两个门限,即先利用短时平均幅值来确定语音的大致频段:确定一个髙阈值和一个低阈值。确定了两个端点值之后,就是确定个语音的起始点与终止点,从而将清音与无声段分开,并且清音的过零率通常会高于无声段的很多,两个阈值之间一定是语音段。在静音段,如果能量或过零率中有任何一个超越了低门限,就应该开始标记起始点,进入过渡段。
在过渡段中,由于设置的参数的数值比较小,不能确信是否进入语音段,所以只要两个参数的数值都回落到低门限以下,就将当前状态判定为恢复到静音状态。同时,如果在过渡段中两个参数中的任一个超过了高门限,就可以判定该段语音进入了语音段。如果语音段持续时间比较短,没有达到设定的时长则可以确定是噪音,不对该段语音进行标记,也不进行任何处理,继续扫描以后的语音数据,否则就可以对该段语音进行标记[11],然后继续扫描后面的语音数据,双门限端点检测流程图如图4所示。
图4 双门限端点检测流程图
2.3 特征参数的提取
特征参数的提取,负责计算语音信号特征和关键参数,用以降低文数。语音信号是随机信号,信号中具有很丰富的信息。特征参数的提取就是为了通过分析语音信号,去除一些非特有的信息,即信息量不高的冗余信息,提取对语音识别特别有用的信息。 MATLAB语音识别系统的设计+DTW算法+流程图(5):http://www.751com.cn/tongxin/lunwen_809.html