潘智刚,姚敏锋
(广东外语外贸大学思科信息学院,广州 510006)
基于语音识别的Android游戏应用
潘智刚,姚敏锋
(广东外语外贸大学思科信息学院,广州 510006)
在对语音信号的预处理过程、特征提取及识别算法研究、分析基础上,基于Android平台进行游戏的开发与设计,根据游戏控制指令多为孤立词的特点,游戏语音识别算法采用动态时间规整算法(DTW),为了提高游戏语音交互的识别率,提出多模板匹配的算法对DTW算法进行改进,实现利用语音识别技术控制游戏操作的方式。
语音识别;动态时间规整;Android平台;实时语音驱动;语音交互
目前,大多数语音识别系统都采用了模式分类的原理,即通过学习,系统把能够输入的语音按一定模式进行分类。目前主流的语音识别技术有基于时间规划和基于统计模式识别两种理论。对于不同的语音识别任务来说,尽管设计和实现的细节不同,但所采用的基本技术都是相似的,一个典型的语音识别过程如图1所示。
图1 语音识别系统流程图
本文基于Android平台设计和实现了语音识别游戏系统。在预处理这一模块中,端点检测采用将短时能量和过零率两种算法相结合的双门限检测方法,特征提取采用了梅尔倒谱系数MFCC特征提取算法。由于游戏中的人机交互指令多为孤立词指令,所以游戏语音识别算法采用最适合孤立词识别的动态时间规整算法(DTW),针对特定人发声可能产生的微小差异导致识别率降低,本文对DTW算法进行改进,提出一种多模板匹配语音识别算法。
在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。用于孤立词识别,DTW算法与HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。
2.1 高效的DTW算法
传统的DTW算法的缺点是模板匹配的运算量太大,求累积距离时,对测试模板的各帧给予了相等的权重,当两个模板数增加较快时,训练和识别算法的运算量也快速增大。根据给定匹配路径的限定规整斜率,在矩形内许多网络点是无法达到的,可以看作是平行四边行外的网格点不需计算的,如图2所示,需要运算的交点都在平行四边行内。这样减少了需要保存的匹配距离矩阵和累积距离矩阵,减少运算时间。改进型DTW算法大大提高了运算效率,它的方法实际是把路径分为三段,分别进行处理:三段路径为:(1,Xa),(Xa+ 1,Xb),(Xb+1,N)其中,根据坐标计算可得出式(1),(2)。
图2 配路径约束示意图
Xa和Xb都取最相近的整数。由此得出了对M和N长度的限制条件如式(3)。
当限制条件不满足时,不进行动态匹配,利用这一条件的判断,减少了对认为是相差条件太远的模板之间的匹配,减少了系统开销。
在X坐标轴上的每一帧与Y坐标轴上[ymin,ymax]间的帧做比较,ymin,ymax的计算公式如式(4)(5)。
同理,若出现Xa>Xb的情况,此时匹配的路径三段为(1,Xb),(Xb+1,Xa),(Xa+1,N)。对于X坐标轴每前进一帧,虽然所要比较的Y坐标轴的帧数不同,但规整特性是一致的,累积距离如式(6)所示:
其中D和d分别表示累积距离和帧匹配距离。
分别测试采用传统DTW算法和采用改进的DTW算法模板匹配,对两种算法的识别率进行分析,得出的实验结果如表1所示。
表1 实验数据
由表1可知改进后的算法同样提高了识别率。
此外,虽然DTW高效算法还减少了程序所需的存储空间,它没有保存所有的帧匹配距离矩阵和累计距离矩阵,因为每一列各格点上的匹配计算只用到了前一列的三个网格,路径每前进一帧,都对距离矩阵和累积距离矩阵进行更新,减少了存储空间。如表2所示。
表2 DTW算法和DTW高效算法的存储空间比较
由表2可知,对于DTW高效算法对矩阵d和D的都分配了一个m×1的存储空间,而DTW算法则是n×m,在这一点上面本系统算法依然采用n×m的存储空间,主要为了加快运算速度,减少运算时间,牺牲空间换取时间。
2.2 基于高效DTW算法的语音多模板匹配
由于说话人说话时发音不稳定,同一个单词的两次发音的细微差别可能会引起特征参数的很大变化,而且不同单词的发音有时候非常相像,为了增加模板匹配的准确度,降低这样的情况所引起的误识别,在训练模板时,采用三个模板,对说话人进行三次录音,在进行模板匹配时,每段语音的测试模板分别与多个参考模板进行匹配,从中选出与测试模板相似度最高的参考模板,此时它们之间的距离D[T,R]最小。实现流程如图3所示。
图3 三模板参与匹配的流程图
首先对每一个音都录3个版本,然后生成3个参考模板。做好模板之后就采用多模板参与匹配的识别算法进行语音识别。多模板匹配算法为:让三个模板都与测试语音用DTW高效算法进行匹配,得到三个不同参考模版与这一测试语音的匹配距离,然后比较所得三个距离,与测试语音距离较小的参考模版即为匹配结果。这样一来就相当于与输入信号相匹配的音采用了最佳模板来和输入信号计算距离,也就是选取了与测试语音最相近的发音状态模板来计算距离,从而提高了识别率。表3是经过实验得出的单模板和多模板在识别不同词汇量时的识别率。
表3 单模板和多模板的识别率对比
由表3可以看出,词汇量小时,单模板和多模板的识别率相差无几,但随着词汇量的增加多模板的优势就渐渐明显,可见增加模板个数确实提高了语音识别率。
游戏主题老鼠找芝士,游戏原本采用触屏移动老鼠去找芝士现在改用语音的人机交互,用声音驱动老鼠。其中,游戏使用MVC架构。实现的功能有“开始游戏”,“ID登录”(在录音Activity里一对一地关联ID和模板库),“录音”(用来创建玩家的语音模板库,简称语料库)。
由于篇幅所限,本文以“开始游戏”为例介绍开发方法,如图4所示。第一层GameActivity,包括两个关键的线程和两个方法,分别是获取语音信号的线程RecordTask,实时端点检测线程Signal和调用本地DTW语音识别功能的method:SignalCaculate()(主要求语音的MFCC特征参数)和SignalCompare()(主要调用DTW方法)。
其中用到Android SDK中的AudioRecord类来实现RecordTask的主要功能,该实例中,使用AudioRecord类来完成音频录制程序,可以使用三种不同的read方法来完成录制工作,每种方法都有其使用的场合。
实例化一个AudioRecord类我们需要传入几种参数:①AudioSource:这里可以是MediaRecorder.AudioSource.MIC;②SampleRateInHz:录制频率,可以为8000Hz或者11025Hz等,不同的硬件设备这个值不同;③ChannelConfig:录制通道,可以为AudioFormat. CHANNEL_CONFIGURATION_MONO和AudioFormat. CHANNEL_CONF IGURATION_STEREO;④AudioFormat:录制编码格式,可以为AudioFormat.ENCODING _16bit和8bit,其中16bit的仿真性比8bit好,但是需要消耗更多的电量和存储空间;⑤BufferSize:录制缓冲大小:可以通过getMinBufferSize来获取。
语音识别的游戏界面及主界面如图5、图6所示。录音界面和语音模板训练界面如图7和图8所示。
本文在基于Android平台用Java实现特定人孤立词小词汇量的语音识别游戏,采用改进的DTW模型,比较好地满足智能终端的游戏对实时性时性和识别率的要求。本文进一步需要完善的地方为:提高对突发噪声或非命令语音的抗扰力,降低识别错误率,改进游戏的界面和玩法。
图4 “开始游戏”关键线程和方法
图5 游戏界面
图6 游戏主界面
图7 录音界面
图8 语音模板训练界面
[1] 何强,何英.MATLAB扩展编程.北京:清华大学出版社[M],2006
[2] 赵彦平.孤立词小词汇量抗噪声语音识别方法的研究.吉林大学(硕士研究生学位论文).通信工程学院.信号与信息处理[D],2006
[3] 李邵梅,刘力雄,陈鸿昶.实时说话人识别系统中改进的DTW算法[J].计算机工程,2008(4):218~219
[4] 江官星,王建英.一种改进的检测语音端点的方法[J].微计算机信息期刊,2006,22,5-1
[5] 刘长明,任一峰.语音识别中DTW特征匹配的改进算法研究[J].中北大学学报,2006,1(27)
[6] 赵力.语音信号处理第2版.机械工业出版社[M],2011
[7] 杨丰盛.Android应用开发揭秘.机械工业出版社[M],2010
[8] Android在线API.http://developer.android.com/index.html
[9] Android论坛.www.eoeandroid.com
[10] 介绍Android的博客.http://www.cnblogs.com/over140/category/277077.html
Game Applications of Android Based on Speech Recognition
PAN Zhi-gang,YAO Min-feng
(Institute of Cisco Information,Guangdong University of Foreign Studies,Guangzhou 510006)
On the basis of the study of speech signal pretreatment process,feature extraction and recognition algorithm research,Development and design of mobile phone game on Android platform,according to the control instruction for game features is isolated word speech recognition algorithm,the game used the dynamic time warping algorithm(DTW),in order to improve the recognition rate of speech interaction game,proposed a multi-template matching algorithm to improve the DTW algorithm,Achieved using speech recognition technology to control the game operation.
Speech Recognition;Dynamic TimeWarping;Android Platform;Real-Time Speech Driven;Voice Interaction
1007-1423(2015)07-0036-05
10.3969/j.issn.1007-1423.2015.07.011
潘智刚(1968-),男,广东人,博士研究生,讲师,研究方向为算法设计与分析
姚敏锋(1977-),男,河南人,硕士研究生,讲师,研究方向为软件工程
2015-01-08
2015-02-01
广东省自然科学基金项目(No.S2011010003746)、广东省科学技术厅研究项目(N o.2012B031400014)