基于LD3320的非特定人识别声控灯系统设计
2015-07-28姜杰文
姜杰文
摘 要: 计算机技术的飞速发展带动语音识别技术不断取得突破,功能日渐强大的语音控制系统正逐渐应用于实际生活中。LD3320是一款语音识别专用芯片,响应快,识别率高,系统结合STC11L08XE单片机及外围电路和nRF24L01无线传输芯片进行了声控灯系统总体结构及各个模块的硬件选型和程序编写,并基于非特定人完成了对声控灯系统功能的静态测试,识别率接近95%,实验效果理想。该嵌入式系统体积小、功耗低、性能稳定、实时性好,在生产和生活中具有较高实用价值。
关键词: 语音识别; 声控灯; 非特定人; LD3320
中图分类号: TN912.34?34 文献标识码: A 文章编号: 1004?373X(2015)11?0027?04
Design of LD3320?based voice?controlled light system for person?independent recognition
JIANG Jie?wen, JIANG Yan?ji, BING Xiao?huan, WANG Yang
(School of Software, Liaoning Technical University, Huludao 125105, China)
Abstract: Since the break?though of voice recognition technology is droved by rapid development of computer technology, the powerful voice control system is gradually applied in real life. LD3320 is a dedicated chip for voice recognition, with fast response and high recognition rate characteristics. The overall structure design of voice?controlled light system combines STC11L08XE, peripheral circuit and wireless transmission chip nRF24L01, in which hardware selection and software programming of each module are proceeded. The static test of the functions for voice? controlled light system based on person?independent was implemented, the recognition rate is approach to 95% and the experimental effect is satisfying. The proposed embedded system has the characteristics of small size, low power dissipation, stable performance and good real?time performance. It has high practical value in manufacture and living.
Keywords: voice recognition; voice?controlled light; person?independent; LD3320
0 引 言
语音处理和识别技术始于20世纪50年代,经过几十年探索和研究已较为成熟,从特定人、孤立词的识别到非特定人、大词汇量连续语音的识别,一系列的突破使得语音成为人与计算机系统之间新的通讯手段。近年来,作为直接有效的人机交互方式,语音识别在工业生产控制、智能家居生活和医疗卫生系统等方面应用日益广泛,在嵌入式系统领域中,具有很高的研究及实用价值[1?2]。
本文设计开发了一种基于LD3320语音识别芯片的非特定人识别的声控灯系统,采用两级语音指令,分别控制两盏不同颜色的LED小灯,实现用户发出语音指令后精确控制小灯开关的功能,为人们的生产生活带来便利[3?4]。
1 语音识别概述
语音识别过程主要包括语音信号的预处理、特征提取、训练、模式匹配、识别结果几个部分[5]。训练通常离线完成,对预先收集好的海量语音、语言数据库进行信号处理和特征提取,获取语音识别系统所需要的“声学模型”和“语言模型”,保存为模板库。识别阶段通常在线完成,用户实时语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将相似度最高的参考模板作为识别结果[6]。语音识别流程基本框图如图1所示。
按照识别对象即对说话人的依赖程度可分为特定人和非特定人的语音识别系统[7]。特定人指训练和识别对象为专门的人,其他人的语音不能识别;非特定人的训练和识别对象面向大众,不区分个人,后者的实现难度要大得多。
2 声控系统结构设计
考虑到嵌入式系统组件对成本、体积和集成度的要求,本系统采用的处理单元是宏晶科技生产的STC11L08XE单片机及其外围电路,整个系统由语音输入模块(咪头),语音识别模块,无线传输模块,控制模块(继电器),电源模块和显示模块(红色和绿色LED小灯各1)构成,系统总体框架图如图2所示。
系统启动后,当语音输入模块即咪头开始收集语音信号,每接收到一个语音信号后通过单片机和语音识别模块进行识别并判断,得到正确的语音指令后,执行单片机程序,通过其TXD串口对外进行数据输出,无线模块A的RXD接收口接收数据并保持数据原样,再通过无线信号发送至无线模块B,无线模块B根据接收的信号改变引脚电平来控制继电器,进而控制LED等回路的闭合。
3 硬件选型
3.1 处理器
处理器是整个系统的核心,不同的应用领域、不同的用户需求,对处理器的选择是多样化的。本文针对嵌入式语音识别系统设计,采用宏晶科技生产的主要用于语音识别的处理器STC11L08XE。其核心开发板结构具备嵌入式系统功能及所需外围设备。规格为43 mm×29.7 mm,供电电压为5 V。I/O口输出高电平3.3 V,拥有8 KB的FLASH,512 B的SRAM,串口通信(TTL电平)方式。是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8~12倍。内部集成高可靠复位电路,适应高速通信,智能控制,强干扰场合。
在选择此处理器时主要是出于体积小易开发角度来考虑。单片机原理图如图3所示。
3.2 语音识别模块
LD3320是一款“语音识别”专用芯片,采用并行方式直接与STC11L08XE单片机相接。该芯片集成了语音识别处理器和外部电路,包括A/D、D/A转换器、麦克风接口、声音输出接口等。其内部集成了快速稳定的优化算法,无需事先训练录音即可完成非特定人语音识别,不需要外接任何辅助芯片,直接集成在现有产品中就可以实现声控及人机对话功能[8]。内部原理图如图4所示。
3.3 无线传输模块
nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst?模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率频道选择和协议的设置可以通过SPI接口进行设置[9]。当工作在发射模式下发射功率为-6 dBm时电流消耗为9 mA,接收模式时为12.3 mA,掉电模式和待机模式下电流消耗更低。
3.4 控制模块
控制模块主要指继电器,这里选用1路继电器,本模块兼容3.3 V和5 V单片机信号控制使用,触发电平为高电平(3~5 V都可以)。设计方式以3.3 V向上兼容5 V,采用光耦隔离信号更稳定。
4 系统程序设计
系统程序在Keil μVision4软件开发环境下采用C语言进行模块化编程。工作流程包括系统初始化、指令设置、识别判断、中断处理等。
4.1 系统初始化
当单片机通电后系统软件先从主函数开始执行,在对系统进行初始化的过程中包括调用函数将单片机初始化,通过测试开发板小灯指示单片机是否工作。执行相应函数复位LD3320芯片,再对串口进行初始化,还要通过设置LD模块寄存器对其命令初始化以及ASR功能初始化。
4.2 指令设置
为降低其他音源影响,提高识别率,本系统采用两级指令完成对系统的控制。向LD模块添加关键词时,通过编辑程序定义二维数组设定一级语音指令为“管家”,二级语音指令为“开红灯”、“开绿灯”,设定指令时,添加拼音的输入方式作为关键词数组,例如添加“管家”命令,则写入“guan jia”,汉字间的拼音用空格隔开。实现功能为接收语音指令“管家”时,开发板指示灯点亮,继而接收语音指令“开绿灯”,LED绿灯点亮,接收语音指令“开红灯”,LED红灯点亮。
4.3 中断处理
当LD模块接收到音频信号时,进入到中断处理函数进行识别,读取内部寄存器返回识别码,若每次读取到的识别结果在寄存器中可以找到对应数值,则判断指令正确,将数据通过TXD串口对外进行输出,此时无线传输芯片A的RXD接收口再把接收到的数据保持不变发送到另一个无线模块B,B针对信号对于引脚进行高低电平控制,进而控制继电器。芯片B的引脚置为高电平3.3 V的时候继电器打开即为通路,连接在继电器上面的小灯成功通电打开。当引脚置为低电平的时候小灯关闭。程序执行流程图如图5所示。
4.4 部分代码
向LD模块添加关键词的代码如下,添加拼音关键词,同时注意修改sRecog 和pCode 数组的长度,拼音串和识别码一一对应。
uint8 LD_AsrAddFixed()
{
uint8 k, flag;
uint8 nAsrAddLength;
#define DATE_A 8 /*数组二维数值*/
#define DATE_B 25 /*数组一维数值*/
uint8 code sRecog[DATE_A][DATE_B] = { "guan jia",\
"kai hong deng",\ "guan hong deng",\
"kai lv deng",\
"guan lv deng",\ };
uint8 code pCode[DATE_A] = {
CODE_CMD,\
CODE_KCFD,\
CODE_GCFD,\
CODE_KWSD,\
CODE_GWSD,\
CODE_KKTD,\
CODE_GKTD,\
CODE_FSG
flag = 1;
for (k=0; k { if(LD_Check_ASRBusyFlag_b2() == 0) { flag = 0; break; } LD_WriteReg(0xc1, pCode[k] ); LD_WriteReg(0xc3, 0 ); LD_WriteReg(0x08, 0x04);
delay(1);
LD_WriteReg(0x08, 0x00);
delay(1);
for (nAsrAddLength=0; nAsrAddLength { if (sRecog[k][nAsrAddLength] == 0) break; LD_WriteReg(0x5, sRecog[k][nAsrAddLength]); } LD_WriteReg(0xb9, nAsrAddLength); LD_WriteReg(0xb2, 0xff); LD_WriteReg(0x37, 0x04); } return flag; } 5 测试结论与分析 为了更好地检测语音指令识别效果和系统功能的实现,测试过程中选择多个不同音色的人进行试验,观察非特定人群对系统的控制效果,每个语音指令测试100遍。部分非特定人语音指令识别结果见表1。表中数据表示试验100次的成功次数。 由表1可见,该系统对于非特定人语音指令的识别准确率接近95%。误识别率大约在5%,响应快,准确度高,实用性强。 6 结 论 随着语音识别技术的成熟发展,嵌入式功能的日渐强大,嵌入式语音控制系统的需求和应用也越来越广泛。本文设计的基于LD3320的非特定人识别声控灯系统,硬件模块选型合理,程序功能设计完善,系统识别率高,稳定性好,方便集成,较理想地实现了非特定人通过语音指令控制小灯系统开关的功能,在工业自动控制、医疗系统以及智能家居等很多领域具有广阔的市场前景。 参考文献 [1] 胡航.现代语音信号处理[M].北京:电子工业出版社,2014. [2] [美]拉比纳,[美]谢弗.数字语音处理理论与应用(英文版)[M].北京:电子工业出版社,2011. [3] 陈喜春.基于LD3320语音识别专用芯片实现的语音控制[J].电子技术,2011(11):20?21. [4] OH Y R, YOON J S, PARK J H, et al. A name recognition based call?and?come service for home robots [J]. IEEE Transactions on Consumer Electronics, 2008, 54(2):247?251. [5] 周慧芳.基于HMM的嵌入式语音识别系统的研究[D].广州:广东工业大学,2011. [6] RABINER L, JUANG B H. Fundamentals of speech recognition [M]. Englewood: Prentice?Hall, 1993. [7] 顾亚强.非特定人语音识别关键技术研究[D].长沙:国防科技大学,2009. [8] 金鑫,田犇,阙大顺.基于LD3320的语音控制系统设计实现[J].电脑与信息技术,2011,19(6):22?25. [9] 刘志平,赵良国.基于nRF24L01的近距离无线数据传输[J].应用科技,2008,35(3):55?58.