基于语音控制的智能门铃系统
2019-12-31赵人熳王奕璇
赵人熳,崔 巍,王奕璇
(1.延安大学 物理与电子信息学院;2.延安大学 化学与化工学院,陕西 延安 716000)
公共事务办公室的工作人员任务繁杂,必要的外出又造成了来访办事人员的等待,所以,常用的语音门铃已经不能满足办公场所的需求。因此,针对业务繁忙的个人办公室设计一种智能化电子门贴秘书是实际应用的需要。本设计不仅能够以语音控制指令设置模式以告知客人:主人的去向以及联系方式,而且可以在有急事的情况下给主人留言,主人回来后根据LED录音指示灯状态来判断是否有客人留言,如有留言则LED录音指示灯处于点亮状态,利用语音控制指令来听取留言。本装置可装贴在室门上以改变普遍门铃的单一提醒功能,为办公场所来访人员减少等待时间、提高工作和办事效率提供便利条件。
1 系统总体方案设计
本设计可由主人外出前通过语音控制设置模式,即人在(门铃)模式、暂时离开(提请等待)模式、短时离开(急事留言)模式、长时外出(联系方式告知)模式。通过这四种模式设置方便了客人与主人的对接与联系,使该装置起到办公秘书的简单作用,其有益效果是,可以在主人不在的情况下第一时间以语音和LCD文字显示的方式告诉客人:主人的去向或联系方式,避免了客人不必要的耗时等待,提高了办事效率。
本设计解决其技术问题所采用的技术方案是:以低功耗单片机MSP430F6638为控制芯片,结合LD3320语音控制芯片以及ISD1760语音存储芯片,以模块化原则设计一种语音门铃系统。为了解决录音和放音相互冲突的情况,使用两块ISD1760语音芯片,一块负责存储提示语音信息,另一块负责存储客人录音语音信息。系统主要构成有:单片机控制电路、语音控制电路、语音存储电路以及按键和一些外围电路组成的门贴式智能化电子秘书[1]。系统总体框图如下图1所示。
图1 系统总体框图
2 系统硬件设计
2.1 单片机控制模块、语音存储电路模块
系统使用MSP430F6638单片机来作为核心控制器,连接两块ISD1760语音存储芯片和LCD液晶显示器。第1块ISD1760通过FT直通操作模式使用上位机串口通信方式为ISD1760录制语音信息,然后利用ISD1760的SPI模式接口和F6638单片机的同步串行端口连接通信,实现语音芯片按照主控芯片发送的指令,让语音芯片有一定的逻辑播放语音提示信息。第2块ISD1760主要负责留言录音,同样使用SPI模式接口与F6638相连,可以录音60秒。经实验测试,如使用一块芯片,即存储提示音信息又存储客人留言信息,经客人录音次数、主人擦除次数过多以后,会导致芯片内部存储的全部语音信息地址混乱,系统将无法工作。
2.2 语音控制电路模块
由ICRoute公司生产的非特定人语音识别芯片LD3320提供单芯片语音识别技术方案,是基于“关键词语列表”的识别技术:ASR(Auto speech recognition)技术,芯片内部包含16-bitAD以及DA、麦克风(MIC)接口以及支持SPI通信模式[2]。本设计采用主人使用语音控制方式来设定门铃工作在哪一种模式并语音控制听取及擦除留言,通过单片机F6638设置“关键词语列表”,按照本设计要求,设置关键词语六个即可:“人在”、“暂时离开”、“短时离开”、“长时外出”、“听取留言”、“擦除留言”。为了使系统待机时处于低功耗状态,防止意外语音信息误被LD3320所识别,特设置一个语音指令按键,当主人需设置门铃工作模式及听取擦除留言的时候按下按键,LD3320才开始工作,原理图如图2所示。
图2 语音识别原理图
语音识别芯片完成的工作就是:主人通过MIC输入的声音进行频谱分析,提取语音特征并和关键词语列表中的关键词语进行对比匹配,进一步找出得分最高的关键词语作为识别结果输出[3]。通过外部MIC送入语音数据流,LD3320芯片内部的语音识别芯片通过端点检测VAD(voice activity detection)检测出用户停止说话,把用户开始说话到停止说话之间的语音数据进行运算分析后,给出识别结果[4]。将结果通过SPI传递给控制芯片单片机F6638,从而设定系统工作于哪一种模式。系统总体电路图如下图3所示。
图3 系统总体电路图
3 系统软件设计
3.1 语音提示音存储设计
通过PC机录音软件ISD1700Ver2.02.exe对第一块ISD1760(U1)进行录制语音提示信息,除了加入单片机与PC机串口通信的程序外,还加入ISD1760中的一些基本操作指令函数,来实现放音、录音、擦除、读取语音地址等功能,最终获取所得各段语音信息的起始地址(表1)。
表1 语音提示音地址表
3.2 关键词语列表写入程序
使用B-LD3320开发板以及ICR_DT1.exe软件进行关键词语列表写入到LD3320芯片内。在如图4所示拼音文字框中敲入正确的拼音,LD3320芯片对于每条命令的拼音字符串的长度限制为79字节,但是由于ICR_DT1.exe软件限制最多可以输入50组[5]。根据本设计需要,特输入六组即可:“ren zai”、“zan shi li kai”、“duan shi li kai”、“chang shi wai chu”、“ting qu liu yan”、“ca chu liu yan”,然后点击“生成数据并下载”,下载完毕后,点击“读出比较”,这个功能可以对芯片内已写入的关键词语列表进行核对。
图4 关键词语列表
3.3 总体程序设计
经过以上两步程序设计,可以得到一块存储语音提示音的ISD1760(U1),以及LD3320内部带有关键词列表的语音控制芯片,将为本系统的搭建做出铺垫。
系统默认处于“人在”模式,单片机F6638循环检测“门铃按键”及“语音指令按键”。
当主人按下语音指令按键以启动LD3320来识别语音信息,LD3320识别语音指令以后,将结果反馈给单片机F6638执行相应控制命令[6]。当客人按下“门铃按键”后,单片机F6638可以向语音芯片ISD1760(U1)发送7字节带有地址的指令,就可以实现提示音的播放。如:spi_set_opt(0x90,0x0010,0x0035),它会播放第一段语音信息即“您好,请开门”。当主人设置系统工作模式为“短时离开”时,客人如需留言,则客人需长按录音按键,F6638检测按键按下以后启动ISD1760(U2)进行录音。主人回来后,系统如有录音则指示灯常亮,主人按下语音指令按键后,启动LD3320开始输入语音指令,通过语音识别来控制ISD1760(U2)播放及擦除留言[7]。系统软件流程图如图5所示。
图5 系统软件流程图
4 结束语
本设计采用了MSP430F6638作为核心控制器,通过I/O口与语音控制芯片LD3320以及两块语音储存芯片ISD1760使用SPI通信模式进行控制连接。实现了通过语音控制灵活设置外出模式,从而根据设置的模式为客人提供最实用的处理办法,极大地方便了办公,提高了办事效率。实验样机测试结果表明,系统的性能与功能性相对稳定,但在嘈杂环境中使用,语音识别会出现无法识别的现象,在后续的工作中,需优化语音识别算法以及硬件电路中加入语音信号去噪等措施。