机器人语音识别实验设计与实现
2013-12-23宋亚男林锡海徐荣华宋子寅
宋亚男,林锡海,徐荣华,宋子寅
(广东工业大学自动化学院,广东广州 510006)
课题组结合学生毕业设计工作建设实验室,提供了进一步研究的平台和实验基础。此项工作让参与的学生在完成自己的毕业设计的同时,也为实验室建设作了贡献。设计和开发的结果可以提供给后届学生学习和参考,后届学生更容易在以前学生基础上进行进一步的工作和研究。本文中阐述了机器人语音识别系统的实验设计目标、实现过程以及结果。
1 实验设计目标
为了便于学习者理解语音识别的基本原理和算法,更好地应用凌阳SPCE061A 开发符合要求的应用程序,先基于Matlab设计了以动态时间规整(dynamic time warping,DTW)算法和Mel频率倒谱系数(Mel frequency cepstrum coefficients,MFCC)参数提取算法为基础的孤立词自动语音识别系统;然后结合机器人语音识别的需求,基于凌阳SPCE061A 设计了和实现了语音识别应用系统,基于该研究结果构建了相应的实验方案,并提供本科生学习使用。具体说来,包括下面2个实验设计目标:
(1)基于Matlab实现以DTW 算法和MFCC 参数提取算法为基础的孤立词自动语音识别演示实验,展示给学生语音识别原理,增强学生结合应用思考和解决实际问题的能力;
(2)基于凌阳SPCE061A 完成机器人语音识别系统的半开放实验(为了便于学习语音识别算法在实际中的应用,开放语音识别算法设计部分,固化硬件电路部分),提供给学生对机器人语音识别算法应用研究和改进的平台。
2 实验设计与实现
2.1 语音识别原理
对于孤立词来讲,使用模板匹配方法进行语音识别,一般就是把整个单词作为识别单元。在训练阶段,将词汇表中的每个词语依次说一遍,然后将其特征矢量时间序列作为模板存入模板库。在识别阶段,将输入语音的特征矢量时间序列依次与模板库中的每个模板进行相似度比较,选择相似度最高的作为识别结果[1-4]。一个完整的孤立词语音识别系统通常包括语音的输入、语音信号的预处理、特征提取和训练与识别等环节,基本构成如图1所示[5-9]。
图1 典型的语音识别系统
(1)预处理:包括对语音数据进行去噪、预加重、分帧、加窗等处理。
(2)特征提取:语音识别很重要的一环就是特征参数提取,提取的特征参数能有效地代表语音特征,具有很好的区分性,各阶参数之间有良好的独立性。
(3)训练:在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。
(4)识别:在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模版,并与参考模版进行匹配,将匹配分数最高的参考模版作为识别结果。
(5)专家知识:对于不同的语言有不同的语言学专家知识库,可以在很多先验知识的帮助下,提高识别的准确率[10-14]。
2.2 系统结构和硬件电路
(1)在基于Matlab实现以DTW 算法和MFCC参数提取算法为基础的孤立词自动语音识别演示实验中,基于PC 机的语音识别系统的语音采集过程见图2。语音声波通过话筒输入到声卡后直接获得的是经过滤波、A/D 变换、量化处理的离散的数字信号。获得语音信号后,在Matlab环境中实现如图1的语音训练和识别[15]。
图2 基于PC机的语音录制过程框图
(2)在基于凌阳SPCE061A 完成机器人语音识别系统的半开放实验中,系统结构图见图3。获得语音信号后,在凌阳SPCE061A 中实现如图1的语音训练和识别。
图3 SPCE061A语音识别系统结构框图
2.3 机器人语音识别算法设计
这里主要采用基于DTW 算法和MFCC 参数提取算法实现语音识别,因为实验设计不同,控制器开放程度不一样,所以具体设计见2.4和2.5节。
2.4 机器人语音识别演示实验设计与实现
2.4.1 实验目的
实验目的:帮助学生理解语音识别原理;基于Matlab实现孤立词语音识别,培养学生语音识别算法设计和应用的兴趣。
2.4.2 实验内容和实验步骤
(1)利用Windows自带的录音机录制语音文件,由声卡(见图2)完成语音波形的A/D 转换,获得Wave文件,提供后续处理语音文件。
(2)用wavread函数读入录制的Wave文件,用Soundview 函数可以将录制语音信号的波形图显示出来,用vad函数对其进行端点检测。
(3)对语音信号进行预处理和端点检测后,用MFCC函数提取语音信号的特征参数,用DTW 函数实现语音识别,在Matlab命令窗口中输入‘testdtw’,可以得到语音识别结果。
2.5 机器人语音识别半开放实验
2.5.1 实验目的
基于凌阳SPCE061A 完成机器人语音识别系统的半开放实验。为了便于学习语音识别算法在实际中的应用,开放语音识别算法设计部分,固化硬件电路部分,提供给学生对机器人语音识别算法应用研究和改进的平台。
2.5.2 实验内容和实验步骤
(1)按图3连接系统。
(2)在集成开发环境unSP IDE2.0.0 中编写程序,编译、链接、调试好程序后,根据SPCE061A 的开发方法,把程序下载到SPCE061A 开发板上进行软硬件联调。
(3)现有语音识别人机交互系统实例:通过3条语句的训练演示特定人连续音识别,其中第1条语句为触发命令,在程序一开始为训练名称,即触发命令,然后提示训练2条命令(根据机器人的设计要求,自定义触发名称为“小车”,2条命令为“过来”和“捡球”),训练完毕开始辨识,当识别出触发名称后,发布命令则会听到应答,相关I/O 口的输出变为低电平。人机交互系统语音训练阶段和识别阶段的具体命令分别如表1和表2所示[15]:
表1 人机交互语音训练阶段命令
表2 人机交互语音识别阶段
即根据提示音进行连续语音训练,将“小车”、“过来”、“捡球”3条语句存入存储器中,提取特征参数作为参考模板;然后进行语音识别测试,对“小车”、“过来”、“捡球”中的每条语句分别进行测试。每次正确识别出语音后,用万用表测试IOB口的端口电平,以端口电平的高低来判断每次IOB口输出是否为正确信号。
可在上述2个实验中添加代码,实现更高识别率的算法或者研究更复杂语音(连续语音、噪声环境下的语音)的识别,算法学生自行设计。
3 结束语
机器人语音识别系统实验设计与实现是由学生林锡海的本科毕业设计工作完成的,特此表示感谢。在相关基金项目的资助下正准备将机器人语音识别系统实验引入本科实验教学中,已经经过部分学生和教师的试运行,受到好评。实践表明:这种将本科学生的毕业设计与实验室建设相结合,在实验设备紧张的情况下,既能让学生有机会参与具体实践,同时学生的优秀设计可以服务于实验室建设,为后届学生提供参考和开设新的实验项目,也使实验资源得到了充分利用。
(
)
[1]邢铭生,朱浩,王宏斌.语音识别技术综述[J].科协论坛,2010(3):62-63.
[2]Lawrence Rabiner,Biing-Hwang Juang.Fundamentals of Speech Recognition[J].New Jersey:Prentice Hall,1993:210-241.
[3]刘么和,宋庭新.语音识别与控制应用技术[M].北京:科学出版社,2008.
[4]Sakoe H,Chiba S.Dynamic programming optimization for spoken word recognition[J].IEEE Trans Acoustics,Speech,Signal Proc,1978,26(1):43-49.
[5]韩纪庆,张磊.语音信号处理[M].北京:清华大学出版社,2004.
[6]曾靓.小语音库的语音识别及实现[D].广州:中山大学,2009.
[7]Shariah M A M,Ainon R N,Zainuddin R,et al.Human Computer Interaction Using Isolated-Words Speech Recognition Technology[C]//International Conference on Intelligent and Advanced Systems,2007:1173-1178.
[8]何强,何英.MATLAB扩展编程[M].北京:清华大学出版社,2002.
[9]马莉,党幼云.特定人孤立词语音识别系统的仿真与分析[J].西安工程科技学院学报,2007,21(3):371-373.
[10]杨雪松.面向智能服务机器人的非特定人交互口令语音识别系统研究[D].北京:北京大学,2009.
[11]李守轩.轮椅机器人语音识别控制系统的研究与实现[D].南昌:南昌大学,2007.
[12]罗亚非.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社,2005.
[13]张震宇,王华,于爱华.基于SPCE061A 语音单片机的智能小车的控制[J].浙江科技学院学报,2007,19(1):27-30.
[14]汪敏,周鹏.凌阳16位单片机实验与实践[M].北京:北京航空航天大学出版社,2007.
[15]林锡海.召唤式捡球机器人的语音识别系统设计与实现[D].广州:广东工业大学,2011.