摘 要:引入帧跳跃的概念,从而改进了传统的端点检测算法和DTW算法,实现了一个改进的实时语音识别系统,并在计算机上进行了模拟仿真。实验结果表明,改进后的算法能有效提高孤立词的识别速度和识别精度。
关键词:语音识别;动态时间规整;端点检测
通过语言进行交流是人类最基本也是最广泛使用的交流方式。语音识别是指让机器通过识别和理解过程把人类的语言信号转变为相应的文本或命令的技术[1],其本质上是一种模式识别的过程,主要包含特征提取技术、模型训练技术及模式匹配技术3个方面。其基本思路是提取语音信号中能代表语音内容的特征向量,训练过程通过特定算法建立模板库,识别过程按照一定的规则将提取出的特征与模板库中的参考模板相对比得出识别结果。
语音识别系统一般包含预处理模块、特征提取模块、训练模块和识别模块[2]。其中预处理模块实现读入语音信号并对信号进行滤波、预加重、分帧、加窗和端点检测等功能;特征提取模块则是对针对每一帧进行运算,提取出每一帧的时域参数或者频域参数;训练模块是将带识别语音模板通过计算得到模板向量并存入数据库;识别模块是将待识别语音序列同模板库进行比较并得出识别结果,识别算法多用的是动态时间规整DTW(Dynamic Time Warping)算法。DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,它尽管对大词汇量、连续语音和非特定人语音识别效果较差,但对孤立词语音识别和较为简洁,正确识别率也较高,因此,DTW算法在孤立词语音识别系统有较广泛的应用[3],因而对其进一步地研究以提高其正确识别速度具有很强的实用价值。一个典型的孤立词语音识别系统流程图如图1所示。
识别精度和识别速度是评价孤立词语音识别系统性能的两个最主要的参数,而端点检测和模板匹配算法是影响这两个参数的最主要的原因。端点检测的目的是从包含语音的一般信号中确定出语音的起点以及终点,有效的端点检测不仅能使处理时间最小,而且能排除无声段的噪声干扰,从而使识别系统具有良好的识别性能。模板匹配的目的是匹配输入向量和模板向量并得到结果,它是整个系统中最耗时、耗资源的一个环节,因此模板匹配算法的性能好坏将直接影响整个系统的性能优劣。
本文就提高孤立词语音识别系统的识别精度和识别速度展开讨论,提出了一种改进的端点检测方法和改进的DTW算法,通过实验证明将两种算法结合起来能提高整个系统的识别精度和识别速度,取得了预期的效果。
1 改进语音识别算法
1.1 端点检测
1.1.1 传统端点检测
传统端点检测算法采用短时时域分析方法,通过短时能量和短时过零率来判断端点位置。短时能量是基于帧进行计算的,如式(1)所示。短时过零率指一帧语音信号中语音波形通过零电平的次数,其定义如式(2)所示。对于连续的语音信号,过零是指时域波形穿过时间轴;对于离散信号,相邻的取样值改变符号则称为过零。
端点检测主要使用的方法有以下两种。
(1)双门限端点检测[4]:即分别为短时能量和短时过零率各设置一个高门限和一个低门限,低门限被超过基本值可以确定进入了过渡段;高门限用于确定语音真正的起始端点,仅高门限被成功检测未必就是语音的起始端点,也有可能是短时的噪音,但是噪声一般持续时间比较短,可以用持续时间来决定是噪声还是语音。
(2)动态窗长语音端点检测[5]:语音端点检测时,语音为静音段,采用较长的窗;语音和静音的过渡段采用较小的窗,可以确切判断语音的起始点;一旦确定语音的起始点就改用常规窗长,因为汉语音节末尾都是浊音,只用短时能量就可以较好地判断一个语音的末点。
1.1.2 改进端点检测
一般在一段语音信号中,无声段会占据相当一部分比例,这样进行端点检测时,会造成一部分计算资源浪费在检测无声段上。并且双门限检测方法窗口每滑动一次就要对两个参数进行计算和比较,因此所需要的计算资源比较大。语音段和过渡段相对于静音段的短时过零率和短视能量要高出许多,并且随着静音段结束和语音段开始,中间过渡段的短时过零率和短视能量呈单调递增趋势。基于这个特性,本文提出一种基于跳跃帧的端点检测方法,在动态窗长的基础上引入帧跳跃这一概念,形成一种新的端点检测方法。实验证明,该方法能有效地降低端点检测的时间以及提高端点检测的精确度。
端点检测算法流程如图2所示。进行端点检测时,对于刚开始检测的无声阶段,采用较长的窗长并且在计算和比较第一帧之后直接将窗口向前移动N帧,直到判断为进入了过渡段或者语音段。当检测到语音进入过渡段时,首先将窗口后退N帧并且改为使用较小的窗长,然后开始逐帧进行比较以精确确定语音的起始端点,之后进入语音段后就改为使用常规大小的窗长。语音末尾端点的检测与起始端点检测类似。这里关键的就是N的取值问题,N取得太大或者太小虽然不会影响算法的准确性,但是对算法的速度有比较明显的影响。根据实验结果比较可以得出,取N=10时算法的效率最高。图3为语音“零”的改进前后端点检测结果比较。
1.2 DTW算法
1.2.1 DTW原理
在语音识别中解决语音信号特征参数序列比较问题时,不能简单地将输入模板和相应的参考模板直接进行比较,因为语音信号具有较大的随机性,即使是同一个人在不同的时候说话,也不能具有完全相同的时间长度,因此时间归正处理是必不可少的[6]。为此,日本学者板仓将动态规划(DP)算法的概念用于解决语音识别中孤立词识别时说话速度不均匀的问题,提出了著名的DTW算法。DTW算法是一种将全局最优化问题转化为局部最优问题的算法,是把时间规整和距离测度计算结合起来的一种非线性规整技术。其具体实现原理如下。
将输入信号和参考信号经过特征提取和训练之后分别得到一组模板序列。这里假设输入信号模板序列用X={x1,tx1,x2,tx2,…,xm,txm}表示,参考信号模板序列用Y={y1,ty1,y2,ty2,…,yn,tyn}表示。其中xi、yi,为音高序列,txi、tyi为其对应的音长。它们之间的相似度用其之间的距离D(X,Y)来度量,距离越小表示相似度越高。为了度量这一距离,就要从X、Y中各个帧的对应点之间的距离算起。设m、n为分别从X、Y中任意选择的一帧信号,则D(Xm,Yn)就表示为这两帧特征矢量之间的距离。
如图4所示,横轴是输入信号模板X的各帧号m=1~M,纵轴上是参考信号模板Y的帧号n=1~N,其中N≠M,网格中的每一个交叉点表示两个模板中的样点匹配,匹配时从第一个点D(1,1)开始,一直计算到最后一个点D(M,N)结束。利用动态规划算法可以寻找到这样的一条路径,但是这条路径不是随意选择的。
DTW算法的目标是寻找这样一条路径:该路径从起始点出发依次通过各个交叉点并最终到达终止点结束,这条路径能使得该路径上所有交叉点的累计失真最小,即保证两个模板间存在最大的相似性,失真越小,相似度越高。为了避免盲目搜索,一般对于DTW的搜索路径会有如下限制。
(1)路径要通过起始点和终止点。
(2)为使路径不至于过分倾斜,一般对路径的最大和最小斜率会做适当的限制,一般取最大斜率为2,最小斜率为0.5。
(3)具有连续性。在动态伸缩路径中,下一点与当前点一定是相邻的,下一个点可以位于当前点的正上方、正右方或者是右上方对角线,但是不允许跨越一个点至下一个点。
(4)具有单调性。动态伸缩路径的延伸的方向一定是向右或者向上,反方向的延伸是不被允许的。
传统DTW算法主要有以下几个缺点。
(1)计算量过大。由于要找出最佳的匹配点,因此程序会考虑多种情况,从而使计算量加大。
(2)识别性能过分依赖于端点检测。端点检测会受到不同的环境因素影响,DTW算法的识别准确度也会受到影响。
(3)没有充分利用语音信号的时域特征信息。
1.2.2 改进DTW算法
由于DTW的计算量非常巨大,如果对于所有的参考模板进行全部完全匹配,则会耗费大量的计算资源。使用搜索宽度限制和放宽搜索宽度可以减低DTW的时间复杂度。本文在此基础上提出一种简单的改进策略,具体如下:由于输入信号模板与参考信号模板不可能完全相同,通过DTW算法所要寻找的是与输入信号最相似的参考信号,因此可以在比较之前先计算一下两个序列的长度,如果两个序列长度相差过多,那么基本可以确定两个序列不为相似序列,直接跳过此次匹配过程;接着可以设置一个相似度的阈值下限,在匹配过程中一旦这个相似度低于阈值,就表明输入模板基本不可能与参考模板匹配,则立即停止此次匹配进入下一轮匹配。实验证明,当参考信号模板数据库足够大时,使用这种策略能够节省大量的时间,并且检测的精确度几乎不受影响。
2 实验与结果
本系统采用改进的端点检测方法和改进的DTW匹配算法实现语音识别,并且采用MFCC(Mel Frequency Cepstral Coefficient)特征提取。语音采样频率为8 kHz,16 bit量化精度,窗函数采用Hamming窗。实验参考模板数据内容为数字语音“0”到“99”,输入模板为10组语音数据。
实验主要分为3组,第1组主要比较改进前后端点检测及生成模板库的时间,第2组主要比较输入的10组语音数据的识别速度,第3组主要比较输入的10组语音数据的识别正确率。具体实验结果如表1所示。
通过表1可以发现,改进后的算法在识别准确率上与原有算法相当,但是在模板库生成时间和识别速度上要比原有算法分别有接近10%和17%的提升,进一步验证了算法的可行性。
本文研究了一个孤立词语音识别系统,提出了一种新的端点检测改进策略和DTW算法匹配改进策略,并将两者结合运用于语音识别系统。实验表明,改进的语音识别系统在语音的识别速度和识别精度上都得到了较大程度的提高,达到了比较良好的性能。
参考文献
[1] 张亚歌,张太镒.一种基于双帧动态时间规整的语音识别新方法[J].微电子学与计算机,2010(11):17-19+24.
[2] RABINER L R, LEVINSON S E. Isolated and connected word recognition-theory and selected applications[J]. IEEE Transactions on Communications, 1981,COM-29(5):621-659.
[3] 胡金平,陈若珠,李战明.语音识别中DTW改进算法的研究[J].微型机与应用,2011(3):30-32.
[4] 李景川,董慧颖.一种改进的基于短时能量的端点检测算法[J].沈阳理工大学学报,2008(3):37-39.
[5] 陈立万.基于语音识别系统中DTW算法改进技术研究[J].微计算机信息,2006(5):267-269.
[6] 吴艳艳.孤立词语音识别的关键技术研究[D].青岛:青岛大学,2012.