谷志伟 李汉峰
(广西电网公司钦州供电局,广西 钦州535000)
语音识别起始于20世纪50年代。随着研究的深入和相关学科的发展,语音识别技术逐步从实验室走向了现实应用。语言是人类交流的主要方式,而使机器能够听懂人类的语音,是当前的研究热点和难点。语音识别是通过一定的技术将语音信号转化为相应文本的技术[1-2]。语音识别主要包含3个主要部分:特征提取、算法匹配和模型训练。图1为语音识别的实现过程。
图1 语音识别过程
变电站巡检机器人目前已经在国内推广和应用,为维护变电站的安全稳定运行做出了卓越贡献。但是当前机器人的控制指令由主控室的后台程序下达,工作人员无法在设备区直接操作机器人或者查询状态信息,并且后台程序的专业性较强,操作人员需经严格的培训来熟悉后台程序,操作路径相对复杂。语言作为人类特有的功能,不但是相互传递信息的主要手段,也是人们最理想的人机交互方式之一[3]。使用语音控制巡检机器人进行常规操作、查询相关信息,相对于后台操作更加简便,操作人员只要掌握相关指令,就能进行常规操作,方便机器人的日常应用和维护。变电站巡检机器人平台上搭建语音识别功能后,利用语音识别技术还可以协助变电站的无人值守,实现变电站的智能化和自动化管理。
本文的变电站机器人语音识别是基于改进的DTW算法,主要应用语音识别算法来进行人机交流,使机器人能够听懂经过训练的口头命令,并能够按照命令进行相应的动作。主要实现过程是:外部语音命令通过巡检机器人携带的拾音器或无线话筒进行声音采集并传送到系统内部,采集到的语音信号经过语音识别算法得到特征参数,进而识别出语音命令。
人耳对不同频率的语音具有不同的感知能力,这是一种非线性的关系[4]。结合人耳的生理结构,运用对数关系来模拟人耳对不同频率语音的感知特性,Davies和Mermelstein于1980年提出了Mel频率(MFCC)的概念。Mel频率与实际频率的具体关系如式(1)所示。人耳的听觉特性与 Mel频率的增长一致。与实际频率在1000Hz以下呈现线性分布,1000Hz以上呈现对数增长[5]。
MFCC是利用上述这种关系,计算出Hz频率的频谱特征。目前,MFCC已经成为语音识别的主流算法,并且Mel频率与Hz频率之间存在着非线性的对应关系,使得在频率提高时MFCC计算精度下降。这就是现实中仅适用低频的MFCC而舍弃高频MFCC的原因。MFCC处理过程流程图如图2所示,计算MFCC参数主要有以下步骤:
(1)预加重:使信号的频谱变得平坦;
(2)分帧:根据语音的短时平稳特性,语音以帧为单位进行处理;
(3)加窗:窗函数处理后可以减小吉布斯效应的影响;
(4)快速傅立叶变换(Fast Fourier Transformation,FFT):将时域信号转化为频域的频谱;
(5)加三角窗滤波:滤波处理进而来模拟人耳的掩蔽效应;
(6)对数处理;
(7)离 散 余 弦 变 换 (Discrete Cosine Transformation,DCT):去除信号的相关性并进行降维处理;
(8)参数差分:提高系统识别性能。
图2 MFCC过程图(傅立叶变换)
采集到语音信号后,在进行分析时还需进行相关的预处理操作,目的是为了得到真实的语音信号。分析真实有效的语音信号才能使识别结果的可信度增强,否则识别结果的可信度会受到质疑。由于种种原因,采集到的待处理语音信号往往夹杂着噪声,这些噪声会扭曲语音的原本特征。因此,要进行语音信号的端点检测。
如今比较常见的端点检测有短时能量和短时过零率。单纯的短时能量或短时过零率不能够准确地检测出语音信号。因此,本文采用短时能量和短时过零率相结合的方法进行端点检测,来提取有效的语音信号,称为双门限端点检测。
1.2.1 短时能量
某一语音时域信号为x,分帧后,第n帧信号为xn(m),则xn(m)的短时能量用En表示,计算公式如式(2)所示:
式中,N为帧长。
由此可见,En可以衡量信号幅度值的变化。然而,对于高电平来说,En比较敏感。为了减少敏感度,采用短时平均幅度函数 Mn,如式(3)所示:
其中,Mn也能表示语音信号能量大小,并且不会由于En的二次方造成较大反差[6-7]。
1.2.2 短时过零率
短时过零率是每帧语音信号穿过横轴(零电平)的次数。对连续信号来说,“过零”即信号通过时间轴;而对于离散信号来说,若相邻的采样值符号改变则可认为信号穿过了横轴,即“过零”。短时过零率就是样本改变符号的次数。第n帧语音信号xn(m)(m∈[0,N-1],N 为帧长)的过零率如式(4)所示:
本文在使用短时过零率时,需要判断前后2个采样值的符号和2个采样值的差值,如果前后2个采样值符号不同并且差值大于设定的阈值,则认为短时过零率有意义。
判断信号是有效的语音段还是静音段时,首先要对数据的短时能量和过零率进行分析。首先为短时能量和过零率分别设定一个阈值,若当前数据的短时能量和过零率2个参数中,有一个超过相应阈值,则认为进入了语音段,并从这一段数据开始记录;在对之后的采样数据的检测过程中,当发现2个参数的数值都回落到阈值以下之后,则认为当前语音段结束,并停止记录数据。
动态时间规整(Dynamic Time Warping,DTW)是语音识别中经典的算法之一[8]。在小词汇表孤立词识别时与HMM算法性能相同[9]。由于HMM算法复杂、训练过程繁琐,而DTW算法简单又有效,使得DTW算法在特定场合下的应用范围超过了HMM算法。
端点检测即确定语音的起始点和终结点贯穿于DTW算法始终。模板库中的各个语音信号称为参考模板,表示为R={R(1),R(2),…,R(m),…,R(M)},其中,m为参考模板语音信号的第m帧,m=1时表示语音帧开始,m=M时表示语音帧结束,即M模板语音的帧数,并且R(m)为第m帧的特征向量。待识别的语音信号称为测试模板,表示为T={T(1),T(2),…,T(n),…,T(N)},n表示测试语音信号的第n帧,n=1时表示语音信号第一帧,n=N时表示语音最后一帧,即N为待识别语音的帧数,T(n)为第n帧的语音特征向量。为了比较它们之间的相似情况,可以计算它们之间的欧式距离,即D[T,R],距离越小代表2个信号的相似度越高。
传统的DTW算法对路径有一定的局限性,即在匹配过程中限定弯折率的变化区间为[0.5,2],因此很多点是达不到的。为了防止搜索范围的扩大,可以对搜索范围再加以限制[10]。在传统的DTW算法中,需将测试模板中的每一帧与参考模板中的每一帧做相似度比较。即使将搜索路径的弯折率进行了限定,运算量仍然很大,从而导致识别时间增加。
本文中,改进的算法搜索区域如图3所示。某个待识别的语音,在样本库中匹配成功时的最佳路径应该靠近图3中矩形MBNE的对角线BE。因此,可以在对角线附近做上下限的限制,即在多边形ABCDEF中计算测试帧与参考帧之间的相似度。其中,直线AF和直线CD方程如式(6)(7)所示,C为直线偏移对角线BE的程度,可以利用实验样本来确定C的取值。
图3 DTW算法搜索区域
为了验证算法的性能,本文设计了语音识别实验。在matlab7.0下对改进的算法进行测试,设计了仿真实验。在实验中,使用MFCC倒谱系数作为样本数据的特征,欧式距离作为相似度,距离越小相似度越高。
使用变电站巡检机器人录制了以下基本控制命令:前进、后退、向左转弯、向右转弯、温度查询、湿度查询、天气查询、一键返回。将这些机器人控制指令作为测试样本,来测试算法的性能。
针对采集的样本进行分析,训练和识别过程图如图4所示。其中,实线框中为训练部分,虚线框中为识别部分。
图4 语音处理过程图
实验过程中,本文算法步骤为:
Step1:样本采集,组建样本库;
Step2:样本预处理;
Step3:MFCC特征提取;
Step4:构建数学模型;
Step5:DTW算法识别,输出识别结果。
图5所示是语音“一键返回”的双门限端点检测结果,其中,图中第一行为原始信号,第二行为短时能量,第三行为短时过零率。从图中可以看出,语音段正确地提取出来了,这为后续特征提取提供了保障。表1是算法性能的对比情况。
图5 双门限端点检测
表1 算法性能对比
从实验结果看出,在非特定人语音识别系统中,与现有的DTW算法相比,本文的算法不论是在时间上还是系统识别率上都要优于现有算法。本文的算法由于提高了系统的运行速度和准确率,可以应用在变电站机器人上,并且能够很好地满足对变电站巡检机器人的实时控制。
本文使用改进的DTW算法,提取语音信号的MFCC特征,实现了语音识别。实验结果表明,该算法识别时间短,正确率高,算法性能稳定,鲁棒性强。将该算法应用在变电站巡检机器人上,能够做到实时控制巡检机器人的运动。通过人机交互方式,对机器人下发相关语音指令,让机器人完成对应指令的操作,这种人机交互方式简化了工作人员的工作流程,提高了工作人员的工作效率,真正做到了“说什么做什么”的效果。该算法的实现不但增加了变电站机器人的功能,还推进了变电站智能化管理的步伐,完全满足该智能变电站推进无人值守的自动检测识别要求。
[1]李书贞,施玉霞.基于语音指令的远程控制机器人系统的设计与实现[J].微电脑应用,2008(11)
[2]胡亚洲,王新民,曹江涛.基于改进DTW的机器人语音指令识别系统研究[J].计算机技术与发展,2013(7)
[3]李麟.家用机器人语音识别及人机交互系统的研究[D].哈尔滨工业大学,2007
[4]韩一,王国胤,杨勇.基于 MFCC的语音情感识别[J].重庆邮电大学学报:自然科学版,2008(5)
[5]张晶,范明,冯文全,等.基于MFCC参数的说话人特征提取算法的改进[J].电声技术,2009(9)
[6]赵力.语音信号处理[M].第2版.机械工业出版社,2009
[7]吕霄云,王宏霞.基于MFCC和短时能量混合的异常声音识别算法[J].计算机应用,2010(3)
[8]胡金平,陈若珠,李战明.语音识别中DTW改进算法的研究[J].微型机及应用,2011(3)
[9]朱淑琴.语音识别系统关键技术研究[D].西安电子科技大学,2004
[10]朱淑琴,赵瑛.DTW语音识别算法研究与分析[J].微计算机信息,2012(5)