识别芯片在正式进入识别流程前,必须先进行初始化工作,包括完成软复位、时钟频率设定、模式设定和激活内部数据处理模块,同时还须将关键字列表写入LD3320芯片的内部寄存器。这些工作均在监控程序完成。
若芯片启动失败达到一定的次数,提示启动失败并无法进行后续操作;若启动成功,系统将开始循环等待,期间如有用户下达语音命令,则进入中断并执行中断服务程序。监控程序依据中断服务程序的执行结果判断是否调度功能实现程序。
2.3.2 中断服务程序
中断服务程序在麦克风采集信号产生低电平中断后执行,主要实现一次ASR识别流,可调用LD3320库文件实现相关寄存器操作。最后将该统计学意义上最优的关键字作为最终识别结果输出,中断程序执行完后,回到中断点,继续执行监控程序[15]。
2.3.3 功能实现程序
功能实现程序用于完成一些实质性的功能,即在语音识别成功后控制舵机转动和语音播报。在中断服务程序得到正确的识别结果后,监控程序将会调用功能实现程序。功能实现程序的主体是基于switch选择语句,程序依据语音识别结果,执行不同的程序段,如发送PWM信号控制舵机转向以实现机械手左右转、张开、夹持动作,或向SYN6288发送带合成文字的GB2312编码。若识别的是垃圾关键词,系统将执行程序预设的default缺省操作。 3 实验结果及分析
搭建硬件平台并将编写的声控程序编译、烧写至开发板。对系统进行声控测试:进入系统前,若对系统的麦克风正确说出预先设置的登录口令,如“芝麻开门”,系统识别并确认了口令后播报“欢迎使用智能声控系统”的提示音,并等待识别用户后续的操作命令;如果给出错误的登录口令,系统将继续等待口令而不被触发。进入系统后,对系统分别使用“左转”、“右转”、“张开”、“夹持”、“复位”等语音命令进行多次测试,系统的识别率接近90%,各硬件模块在Arduino程序的控制下协同工作,其中机械手和语音合成模块作为系统的输出模块,也做出了预期的响应,实现了对机械手的控制以及语音播报的功能。
测试表明,该系统在无噪或低噪环境下运行良好,识别精度较高,能实现智能声控的要求。 4 结论
本文主要对基于Arduino的智能语音控制系统的设计与实现进行阐述。系统的设计工作主要包括系统硬件平台搭建以及依据功能对程序结构进行制定,编写了监控程序、中断服务程序、功能实现程序。最后经过测试,该系统运行状况良好。
在本次设计中,除了实现基本的智能声控功能外,还从安全、效率、器材选型三个方面做出创新,提高了系统的性能:(1)考虑到安全因素增设了触发口令;(2)设计垃圾关键词语达到降低误识别率的目的;(3)设计选用了当前热门的Arduino开放源代码平台作为系统的核心,Arduino以其开放性、易用性、丰富的第三方资源等优势得到了广泛注目。同时,本声控系统不需要用户事先训练和录音,属于可被任何人使用的非特定人语音识别系统,更加符合实际需要。
本智能声控系统具有体积小、功耗低和通用性好的特点,可应用于智能家居系统的设计,引入声控作为人机交互界面方便了用户的使用,实现了真正意义上的智能,具有一定的实用价值。 参考文献
[1] 刘露.智能语音时代来临[J].课外语文,2014(5):11-12,17.
[2] 詹新明,黄南山,杨灿.语音识别技术研究进展[J].现代计算机(专业版),2008(9):43-45.
[3] 王敏妲.语音识别技术的研究与发展[J].微型机与应用,2009,28(23):1-2,6.
[4] 马志欣,王宏,李鑫.语音识别技术综述[J].昌吉学院学报,2006(3):93-97.
[5] 洪家平.LD3320的嵌入式语音识别系统的应用[J].单片机与嵌入式系统应用,2012,12(2):47-53.
[6] 杨继志,郭敬.Arduino的互动产品平台创新设计[J].单片机与嵌入式系统应用,2012,12(4):39-41.
[7] 程晨.Arduino开发实战指南[M].北京:机械工业出版社,2012.
[8] 孙俊荣,吴明展,卢聪勇.Arduino一试就上手[M].北京:科学出版社,2012.
[9] ICRouter.LD332x数据手册[EB/OL].(2010-10-11)[2015-04-02]http://www.icroute.com/web_cn/DownLoad.html#LD332X-DataSheet.
[10] 语音天下.SYN6288中文语音合成芯片数据手册[EB/OL].(2011-09-06)[2015-04-27]http://www.tts168.com.cn/bao/SYN6288--Manual.pdf.
[11] 蔡睿妍.基于Arduino的舵机控制系统设计[J].电脑知识与技术,2012,8(15):3719-3721.
[12] 孙兵.基于单片机的机械手声控系统设计[J].机械工程与自动化,2007(6):113-114,117.
[13] ADRIANSYAH A, DANI A W. Design of small smart home system based on Arduino[J]. Electrical Power, Electronics, Communications, Controls and Informatics Seminar (EECCIS), 2014(10):121-125.
[14] KANG B, LIU F, YUN Z, et al. Design of an Internet of Things-based smart home system[C]. Harbin: Lligent Control and Information Processing(ICICIP), 2011:921-924.
[15] 金鑫,田犇,阙大顺.基于LD3320的语音控制系统设计实现[J].电脑与信息技术,2011,19(6):22-25.