语音识别无线开关控制装置的设计

傅大梅+盛彬



摘 要:为了利用语音识别技术来操控无线控制设备的运转,设计一种用语音无线控制开、关设备(白炽灯等)的装置。该装置利用LD3320作为语音数据采集和处理芯片,STC12C5A60S2单片机作为语音采样对比模块的微控制器,STC15F104E单片机作为接收、控制微控制器,利用无线通信模块HC?12实现数据信号发射和接收。结果表明,该装置在语音识别和无线传输上表现出良好的性能,识别率达到97%左右,且实现了语音控制灯的开关动作。
关键词: 语音识别; STC15F104E; 开关控制装置; LD3320
中图分类号: TN915?34; TN802 文献标识码: A 文章编号: 1004?373X(2017)14?0033?03
Abstract: In order to realize the operation of the wireless control device based on speech recognition technology, a device for controlling the on/off unit (such as an incandescent lamp) was designed. The chip LD3320 is used in the device as the data acquisition and processing module, the single chip microcomputer STC12C5A60S2 as the microcontroller of voice sampling comparison module, and the single chip microcomputer SCM STC15F104E as receiving and controlling microcontroller. The wireless communication module HC?12 is adopted to realize data signal transmission and reception. The device shows its perfect performances in speech recognition and wireless transmission. Its recognition rate is about 97%. The switch action of voice control lamp was realized by the device in the experiment.
Keywords: speech recognition; STC15F104E; switch control device; LD3320
语言是人们生活中最自然、有效、便捷的交流方式[1],因此语音控制装置的研究与设计,会给生产、医疗、生活带来很多便捷。本文设计了一种基于语音识别的控制装置,该装置可以在20 m内控制既定电器设备(灯等)的开与关,误差不大于2%;在接收普通话指令的过程中,男女老少语音均可识别,误差不大于3%。
1 总体方案
本系统建立在 2.4 GHz射频技术、语音采样对比的理论基础之上,实现一种语音识别无线控制的软、硬件设计。以控制一支白炽灯为例,整体系统结构框图如图1所示。利用专用芯片LD3320作为语音数据采集和处理芯片,选择STC12C5A60S2单片机作为语音采样对比模块的微控制器,该单片机的内核为ARM 32位的Coertex?M3 CPU,带有串行单线调试(SWD)接口和JTAG接口。接收端的微控制器选用了STC公司的STC15F104E单片机,该单片机只有8个引脚,可以进行串口通信。HC?12无线串口通信模块在本系统中承担了数据信号发射和接收的工作。
2 硬件设计
2.1 语音采样对比模块
LD3320语音识别芯片在集成语音识别处理器和外部电路的同时,还包括A/D和D/A转换器、麦克风接口、声音输出接口等[2],该芯片在工作时最多可以每次识别50项候选句,在实际使用中用户只需要把识别的关键词语以字符串的形式存储在芯片中,在重启芯片后,即可在识别中立即生效。
在电路中,单片机P0端口的8根数据线作为数据总线与LD3320并口方式连接,控制线分别与P2端口连接。除此外还将两个芯片的复位信号和中断信号连接,在LD3320中,复位信号(RSTB) 由单片机发出,中断信号由LD3320芯片发出。
在本设计中还使用了单片机的串口通信功能,语音识别部分核心电路设计如图2所示。语音模块与STC12C5A60S2单片机的串口2通信,无线通信模块HC?12与串口1通信,在数据传输上,当STC12C5A60S2接收到串口2发来的信息时立刻将信息通过串口1发送给无线通信模块HC?12,最终由HC?12将处理后的语音信号在空中发送。
2.2 无线通信模块
无线通信选用HC?12无线单片机串口模块作为本次设计的无线通信模块。HC?12无线串口模块在实际使用中類似于将普通的有线串口通信方式断开,再通过两块HC?12无线串口模块在空中搭建无线连接,从而实现物理上的连接,达到两块单片机即使在物理上没有线路的连接也能进行一定距离内的串口通信。其工作原理和模块与单片机的连线方式如图3所示。
2.3 接收控制模块
接收控制模块电路图如图3所示,STC15F104E单片机通过串口与HC?12信号通信,并发出信号控制继电器驱动电路。
3 关键部分软件分析与设计
本系统关键软件的设计是语音识别程序设计,它由初始化程序、拼音表烧录程序、中断判断程序、识别程序组成,语音识别程序流程图如图4所示。
3.1 拼音表写入程序
拼音表写入程序设计时,LD3320芯片对于所要设置的拼音表有个规定,就是每个拼音对应惟一一个代码字符。对应的拼音串的编号可以不一样,但是不能够有重复的编号出现。就是说编号1可以存在两个字符串对应,但是占用了2的编号的位置,就不能再有编号2的存在。LD3320A芯片支持的最大拼音串为50个拼音字符[3]。应用案例如表1所示。
识别列表中的编号可以相同,可以不连续,但数值[3]必须要小于256,例如“guan deng”和“xi deng”对应同一编号,说这两个词都会有相同的结果返回,拼音表写入程序流程图如图5所示。
3.2 识别程序
在实际使用中只要设置几个寄存器,就可以使用LD3320语音芯片进行语音识别。
LD3320的代码大多都是使用全局变量来控制和指示寄存器的状态,在代码编写的过程中,LD3320芯片开始工作之前必须设置识别拼音的句子写在设置好的寄存器中[4]。关键程序如下:
4 调试、分析与电路改进
调试包括软件、电源、各种人的语音和通信距离的性能调试与测试。
4.1 语音采样对比模块软件调试
语音模块的关键词对应的指令代码,如表2所示。
指令代码由单片机通过无线发送模块HC?12发出,由接收模块HC?12接收指令代码后通过内部设定的指令唤醒和控制相应装置(比如:灯),系统调试窗口如图6、图7所示。
4.2 接收控制模块软件调试硬件电路改进
在接收模块的调试中,将HC?12的发射端的通过串口转USB线连接到电脑端,通过串口助手发送数据来调试接收控制模块,在接收控制模块的继电器端接入一个白炽灯,例如通过串口助手发送A1,使白炽灯点亮,用串口助手发送A2,使白炽灯熄灭。调试时出现了一个问题,其现象是通过串口发送A1时,白炽灯点亮,但是马上自动熄灭。分析产生的可能原因是继电器闭合瞬间通过电流过大导致继电器损坏或继电器的电磁干扰。为了防止电路误动作或系统崩溃等情况的发生,采用滤波、隔离措施,且PCB布局设计时将继电器驱动电路跟控制电路分开。
4.3 结果测试
在整体调试中,通过不同音色的人说出指令:开灯,关灯,每个指令测试50次,根据接收控制模块的响应(白炽燈的亮灭),得到表3中的数据。
本设计的实物在性能上很稳定,在语音识别和无线传输上也表现出良好的性能,在非特定人语音识别测试中,识别率达到97%左右。产生误差的主要原因是发送指令人的普通话不标准。当然无线传输时,在隔了几堵墙或者距离过远时,误差也会增大。
5 结 语
通过对非特定人语音识别技术和相关软硬件知识的研究,设计了无线语音控制装置,实现了语音控制灯的开关动作。从目前的使用状况来看,控制装置的性能和功能都相对稳定,今后可以进一步扩展对多种用电设备的控制。
参考文献
[1] 赵奎兵,段富海.基于ZigBee节点的智能家居系统语音控制设计[J].现代电子技术,2012,35(20):5?8.
[2] 苏建.非特定语音识别技术在现代家居控制系统中的应用[J].科技创新导报,2014(27):38?39.
[3] 陈喜春.基于LD3320语音识别专用芯片实现的语音控制[J].电子技术,2011(11):20?21.
[4] 付蔚,唐鹏光,李倩.智能家居语音控制系统的设计[J].自动化仪表,2014(1):46?50.
[5] 张晓丹,黄丽霞,张雪英.关于在噪声环境下语音识别优化研究[J].计算机仿真,2016,33(8):172?176.
[6] 潘丽杰,徐本亮,朱琪,等.基于双麦克风降噪技术的语音识别系统[J].现代电子技术,2016,39(2):137?139.
[7] 棠丽亚,赵国栋,张鹏.关于连续语音识别率优化仿真研究[J].计算机仿真,2016,33(3):395?400.