广东工业大学学报  2014, Vol. 31Issue (2): 49-53.  DOI: 10.3969/j.issn.1007-7162.2014.02.009.
0

引用本文 

刘荣辉, 彭世国, 刘国英. 基于智能家居控制的嵌入式语音识别系统[J]. 广东工业大学学报, 2014, 31(2): 49-53. DOI: 10.3969/j.issn.1007-7162.2014.02.009.
Liu Rong-hui, Peng Shi-guo, Liu Guo-ying. Embedded Speech Recognition System Based on Smart Home Control[J]. Journal of Guangdong University of Technology, 2014, 31(2): 49-53. DOI: 10.3969/j.issn.1007-7162.2014.02.009.

基金项目:

广东省自然科学基金资助项目(S2013010013034)

作者简介:

刘荣辉(1986-), 男, 硕士研究生, 主要研究方向为嵌入式语音识别。

文章历史

收稿日期:2013-03-07
基于智能家居控制的嵌入式语音识别系统
刘荣辉, 彭世国, 刘国英     
广东工业大学 自动化学院,广东 广州 510006
摘要: 通过分析嵌入式语音识别技术和智能家居控制的原理,设计了基于智能家居控制的一种非特定人孤立词的语音识别系统.该系统由ARM11处理器和WM9713语音处理等核心芯片组成,采用WinCE操作系统.测试表明,嵌入式语音识别系统具有较高的识别率、实时性和易于实现的特点.该识别系统为智能家居提供方便、准确的设计方案,有广泛的市场前景.
关键词: 语音识别    嵌入式系统    智能家居    WinCE    
Embedded Speech Recognition System Based on Smart Home Control
Liu Rong-hui, Peng Shi-guo, Liu Guo-ying     
School of Automation, Guangdong University of Technology, Guangzhou 510006, China
Abstract: It analyzed the embedded speech recognition technology and introduced the principles of smart home control. A speaker-independent isolated-word recognition system, based on smart home control, was designed. This speech recognition system, taking ARM11 processor and WM9713 audio processing chips as its core, was run on the WinCE operating system. The test results demonstrate that this system has better performance, real-time and implementation simplicity. This system provides a convenient and accurate design for smart home control, so it has broad marketplace prospects.
Key words: speech recognition    embedded system    smart home    WinCE    

随着社会的发展、生活水平不断提高,人们对家居环境的舒适、安全、高效、节能和便利等方面提出了更高的要求.智能家居以住宅为平台,利用各种通信、网络、控制技术,实现家居设备的集成,为用户提供更舒适的服务和更高效的管理[1-3].同时, 对语音识别技术的进一步深入研究,语音识别系统大量地从实验室的PC平台转移到嵌入式设备中.消费者对小而方便的嵌入式设备的需求也给嵌入式语音识别应用带来了更大的市场需求[4-5].

如何使语音识别更成熟地走向市场,服务人类是时代发展的需要[6].本文通过对嵌入式语音识别技术与智能家居控制的研究,将以往的智能家居都要通过遥控或者手动方式的控制,用语音命令系统来实现,方便人们的操作和提高工作效率.系统采用以ARM11处理芯片S3C6410为核心的嵌入式设备,以隐马尔科夫模型(Hidden Markov Model,HMM)算法,实现对非特定人语音命令的识别.另外,设计基于WinCE6.0嵌入式操作系统的语音识别,不要求大词汇量和连续语音识别.既保证了语音控制命令易于实现,又开发了针对特定应用领域的语音识别系统.在此特定的环境下,语音识别具有更好的效果.

1 语音识别与智能家居系统 1.1 语音识别的基本构成

语音识别技术(Automatic Speech Recognition,ASR)是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的高技术.语音识别本质上是一种模式匹配识别过程, 语音识别过程基本包括语音信号的预处理、语音的特征提取、训练和识别4个部分[7].通过对语音信号进行预处理、分析和计算,可取出所需的语音特征,并以此建立语音识别所需的模板.当对语音进行识别时,则需要将系统中存放的语音模板与输入的语音信号的特征进行比较.根据一定的判别规则,得出最佳匹配的参考模式被作为识别结果[8].图 1是基于模式匹配原理的语音识别原理框图.

图 1 语音识别系统原理框图 Figure 1 Principles of speech recognition
1.2 嵌入式语音识别算法

为了满足智能家居控制语音命令的识别,嵌入式系统要求语音识别算法在保证识别效果的前提下尽可能优化,以适应嵌入式平台存储资源少、实时性要求高的特点.隐马尔可夫模型HMM由于支持自动训练和较低的计算负载,具有良好的识别性能和抗噪性能,在实用中占据了主导地位, 已经被广泛应用到语音识别中[9-11].

在HMM模型中,首先定义一组有限状态S1, S2, …, Sn,在某一时刻n,系统只能是在这组状态的某一状态xn.在起点n=0时刻,初始概率矢量π

后面的各个离散时刻n的状态xn仅仅与它前一个时刻的状态xn-1有关,那么它的转移概率矩阵A ={ai, j},即

${a_{i, j}} = \mathit{\boldsymbol{P}}\left\{ {{x_n} = {\mathit{\boldsymbol{S}}_\mathit{j}}|{x_{n - 1}} = {S_i}} \right\}, n \ge 1, i, j = 1, 2 \cdots, n, 且满足\sum\limits_{j = 1}^N {{a_{i, j}}} = 1. $ (2)

由于任意时刻n的状态xn是隐藏的,外界看不到,仅仅得到的是该状态下Rq空间下的随机观察矢量On. On的分布B称之为输出概率矩阵,它仅与xn状态有关,即

${P_{{x_n}}} = {\mathit{\boldsymbol{S}}_\mathit{i}}\left\{ {{\mathit{\boldsymbol{O}}_\mathit{n}}} \right\} = P\left\{ {{\mathit{\boldsymbol{O}}_\mathit{n}}|{\mathit{\boldsymbol{S}}_\mathit{i}}} \right\}. $ (3)

对信号提取特征矢量,得到的是随机观察矢量.在随机观察矢量On的概率分布中,概率密度函数通常采用混合高斯分布拟合,即

$P\left\{ {{x_n} = {\mathit{\boldsymbol{S}}_\mathit{i}}, {\mathit{\boldsymbol{O}}_\mathit{n}} = \mathit{\boldsymbol{Y}}} \right\} = \sum\limits_{m = 1}^M {{C_m}N\left( {{\mu _m}, \sigma _m^2} \right)} . $ (4)

式(4)中,M是混合高斯分布的阶数,Cm是各阶高斯分布的加权系数,Y是随机观察矢量On的状态.这种HMM模型为连续HMM模型(Continuous density HMM), 简称CHMM.由于CHMM模型的复杂性,也可以假定随机观察矢量On的分布是离散的.通常采用K-Mean算法得到码本,根据码本再对特征矢量做矢量量化VQ(Vector Quantization).这样就将特征矢量的概率分布简化成离散的概率分布矩阵,这种HMM模型就是离散HMM模型(Discrete density HMM),简称DHMM模型.通过增加了矢量量化, DHMM简化了复杂度, 匹配计算量也大大减少了.

基于DHMM的嵌入式语音识别孤立词识别系统,设欲识别的词表有V个词,对每个孤立词v建立了各自相应的HMM模型λv,即用训练的数据集估计参数λv=(Av, Bv, πv).识别时,对于每个要识别的词,首先经过特征提取到观察矢量序列O={o1, o2, …, oT};然后对每个模型λv求概率P(O|λ), 1≤vV,最后选择模型的最大似然概率对应的词v*作为识别结果,即

${v^*} = \arg \mathop {\max }\limits_{1 \le \mathit{v} \le V} \left\{ {P\left( {\mathit{\boldsymbol{O|}}\mathit{\lambda }} \right)} \right\}. $ (5)
1.3 语音识别控制系统的工作原理

语音识别的应用可分为3大类:孤立词识别系统,小词汇量的命令控制应用和大词汇量连续语音系统[12].智能家居中的语音识别应用,选取小词汇量孤立语音命令的非特定人语音识别设计.通过对要识别的语音命令预定义和语法设置,实现控制功能.控制命令或短语,跟它的语义之间要有直接的映射关系,所以要求语法规定允许组合的单词和短语,列出所有可能的组合和它们的关联,这样语音命令就方便控制.

基于智能家居控制的语音识别系统初始化完成后,系统开始工作.首先系统通过嵌入式设备的默认语音输入设置(如麦克风)和声音采集装置(如声卡)输入语音.当有监听的语音输入,嵌入式操作系统产生消息和相应的处理,对输入的语音进行识别.如果识别不成功,继续监听;如果识别成功,判断语音是否是在命令集内有效的语音,这样才能产生正确的识别结果.根据识别出的语音和消息的映射,将命令消息传给相应的设备执行.语音识别控制系统的具体流程图如图 2所示.

图 2 语音识别控制系统流程图 Figure 2 Flow of speech recognition control system
2 嵌入式语音识别系统的硬件设计

目前智能家居系统中广泛采用ARM嵌入式技术,同时基于ARM嵌入式软硬件开发平台进行语音识别系统设计是最合适的选择.嵌入式语音识别系统的硬件平台[13]主要包括中央处理器、只读存储器、可读写存储器、外围控制电路及一些外围设备.系统以Samsung公司的ARM11 S3C6410 16/32位的高性能低功耗的RSIC通用处理器为核心,包括16KB指令和16KB数据Caches,16KB指令和16KB数据TCM,MMU以支持虚拟内存管理. S3C6410的最高主频达到667MHz,系统包含AC-97音频解码接口和PCM串行音频接口,能有效地接收音频信息.系统所需的外围硬件主要有:WOLFSON公司的立体声编解码芯片WM9713,网卡芯片DM9000,256M SDRAM,256M Nand Flash.同时还集成串口、麦克风(MIC)输入接口,音频输出接口,JTAG调试接口,VGA接口和IDE接口等.系统硬件结构如图 3所示.

图 3 系统硬件结构图 Figure 3 System hardware structure

WOLFSON公司的立体声编解码芯片WM9713,实现A/D转换和D/A转换,录音时把模拟信号转换成数字信号,播送时把数字信号转换成模拟信号.语音信号经WM9713音频数字信号编译码器进行采集和编码,得到数据进行处理提取出语音特征样本,并把特征样本按规定顺序存放到SRAM中,ARM11芯片上通过存储的语音算法最终对输入的语音信号进行识别.

3 嵌入式语音识别系统的软件设计

为了实现嵌入式语音识别和智能家居语音控制应用的设计,选用WinCE作为嵌入式操作系统和使用Visual Studio 2005作为开发环境. WinCE[14-15]是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的操作系统,并且可以让用户很方便地操作,有广泛的发展前景.

3.1 操作系统定制和开发工具

对于语音识别应用程序的开发,首先要对嵌入式系统进行相应的定制.在Visual Studio 2005所集成的Platform Builder实施WinCE6.0的定制,可用于OEM厂商开发BSP开发包、WinCE操作系统的定制以及软件开发包SDK的导出.应用程序开发人员安装相关的SDK,并利用SDK编写应用程序,最终将应用程序通过Microsoft ActiveSync同步软件下载到目标平台上运行和在线调试.

3.2 语音识别应用程序设计

由于嵌入式系统资源有限, 基于HMM技术的语音识别系统,先要在PC机上用C/C+ +语言进行语音识别算法编写,其中包含语音预处理、特征值提取和匹配识别部分.为了提高嵌入式应用程序的开发效率,本文将利用VS编程实现的语音算法的应用程序编程接口(Application Programming Interface,API)进行嵌入式语音识别应用的开发.通过对识别引擎ASR应用程序编程接口API的调用,在开发平台VS2005上用MFC的方法开发程序和系统调试.应用程序的设计流程如图 4所示.

图 4 语音识别程序流程图 Figure 4 Flow of speech recognition programs

语音识别应用程序主要工作流程分为:语音识别初始化写入识别关键词列表、设置引擎参数、调用识别模式进行识别、获取识别结果和推出结束.应用程序编程实现过程如下:

(1) 首先初始化ASR引擎,读入命令词表:ASR_API void* ASRInit(char* pWordList, void* pData);pWordList[ ]是词表文件缓冲,此表的个数不能超过1 000;pData[ ]是数据文件缓冲.

(2) 设置引擎参数:ASR_API int ASRSetParam(void* pInfo, ASRParam param, int iParam, long lParam);pInfo[ ]是引擎指针,需要设置的参与类别param[ ],设置参数的值iParam[ ]和lParam[ ],依据param有所不同.

(3) 设置识别模式:ASR_API void ASRSetRecogParam_FrameMode(void* pInfo, short* pWaveBuf);设置帧模式识别参数,每次打开设备或在各个不同环境下开始使用时先要调用此函数.

(4) 进行识别,给出识别结果:ASR_API void ASRRecognize(void* pInfo, short* pWaveBuf, int iWaveLen, char aPinYinResult[ ][ ][ ], int aWordNum[ ]);其中返回值0为继续等待语音数据,1为开始识别,2为正在监测起始点.

(5) 得出识别结果:ASR_API int ASRExit(void* pInfo);0为失败,1为成功.

4 语音识别系统测试和分析

将VS2005上开发的语音识别应用程序下载到嵌入式平台上运行,实时传入说话人的语音数据,便可获得语音识别的识别结果.麦克风输入是8K或16K采样、16Bit的线性PCM语音数据.嵌入式语音识别系统的调试平台如图 5所示,运行效果如图 6所示.

图 5 嵌入式语音识别系统的调试平台 Figure 5 Debug platform of the embedded speech recognition system
图 6 嵌入式语音识别系统运行图 Figure 6 Run effect diagram of the embedded speech recognition system

为了更好地检测语音识别效果,实验中选择两个不同音色的人在实验室安静和有较大噪声的环境下分别进行测试, 对命令词表的词随机测试,每组测试50遍,测试结果如表 1所示.

表 1 命令词测试结果 Table 1 Test results of command words

表 1可以看出,语音识别系统的识别率取决于若干要素,包括说话人的不同、语音采集时的外界环境以及说话人的语音轻重及方言等要素.实验表明在噪音环境下会引起语音识别率的下降,此时需要在噪声环境下重新训练语音样本,以提高系统识别时的抗噪性能.实验数据表明,无论是否针对非特定人还是在有噪音环境下,所设计的语音识别系统都可以平均达到89. 5%左右的识别效率,可以满足语音控制的目标.

5 结论与展望

本文通过将语音识别技术引入到智能家居控制中,基于WinCE嵌入式系统的软硬件平台,设计了一种非特定人孤立词语音识别系统,并在嵌入式平台上得到了实现,验证了设计的可行性和有效性.此项研究对于嵌入式语音识别控制模块的开发,以及在智能家居中的语音控制应用程序的设计,具有一定的参考意义.语音识别在算法和硬件方面都还需要进一步完善,提高语音识别系统的抗噪性和鲁棒性.通过不断地深入研究,提高语音的实用性,设计出用户使用更加方便的应用,从而推动语音识别市场的发展.

参考文献
[1]
俞文俊, 凌志浩. 一种物联网智能家居系统的研究[J]. 自动化仪表, 2011, 32(8): 56-59.
Yu W J, Ling Z H. Research on the smart home system based on internet of things[J]. Process Automation Instrumentation, 2011, 32(8): 56-59.
[2]
Ye X J, Huang J W. A framework for cloud-based smart home[C]//Proc of international conference on computer science and network technology. Harbin: [s. n. ], 2011: 894-897.
[3]
Liu Z G, Huang W. The design of smart home system based on Wi-Fi[C]//Proc of 2012 International Conference on Computational Problem-Solving. Leshan: [s. n. ], 2012: 454-456.
[4]
卫军峰, 张永德, 高安邦. 基于ARM嵌入式语音识别系统研究[J]. 机械工程师, 2007(9): 81-83.
Wei J F, Zhang Y D, Gao A B. Research of embedded sound identification system based on ARM[J]. Mechanical Engineer, 2007(9): 81-83.
[5]
Denkowski M, Hannon C, Sanchez A. Spoken commands in a smart home: An iterative approach to the Sphinx algorithm[C]//Proc of 6th Mexican International Conference on Artificial Intelligence. Aguascalientes: [s. n. ], 2007: 1025-1034.
[6]
杜晓伟. 嵌入式语音识别的研究与实现[D]. 北京: 北方工业大学信息工程学院, 2011.
[7]
李丹, 明勇, 卢涵宇. 基于CDHMM的语音识别程序行为检测方法的研究[J]. 武汉理工大学学报, 2012, 34(9): 1-5.
Li D, Ming Y, Lu H Y. Research of speech recognition for detection of program behavior Based on CDHMM[J]. Journal of Wuhan University of Technology, 2012, 34(9): 1-5.
[8]
彭辉, 魏玮, 陆建华. 特定人孤立词的语音识别系统研究[J]. 控制工程, 2011, 18(3): 297-400, 404.
Peng H, Wei W, Lu J H. Research on speaker-depended isolated-word speech recognition system[J]. Control Engineering of China, 2011, 18(3): 297-400, 404.
[9]
Rabiner L, Juang B H. Fundamentals of Speech Recognition[M]. New Jersey: Prentice-Hal Internation, Inc, 1993.
[10]
Li C J, Andersen S V. Efficient blind system identification of non-gaussian autoregressive models with HMM modeling of the excitation[J]. IEEE Transactions on Signal Processing, 2007, 55(6): 2432-2445. DOI: 10.1109/TSP.2007.893935.
[11]
张玉军, 杨巨龙, 孙大飞, 等. 小波MFCC和HMM在低空声目标识别中的应用[J]. 信息与电子工程, 2011, 9(6): 744-748.
Zhang Y J, Yang J L, Sun D F, et al. Application of wavelet MFCC and HMM in low altitude acoustic target recognition[J]. Information and Electronic Engineering, 2011, 9(6): 744-748.
[12]
McLoughlin I, Sharifzadeh H R. Speech recognition engine adaptions for smart homes dialogues[C]// Proc of 6th International Conference on Information, Communications and Signal Processing. Singapore: [s. n. ], 2007: 1-5.
[13]
胡珊珊, 刘加, 王国梁. 嵌入式实时英语语音识别系统的设计和实现[J]. 嵌入式技术, 2006, 32(9): 61-63.
Hu S S, Liu J, Wang G L. The design and realization of embedded real-time english speech recognition system[J]. Application of Electronic Technique, 2006, 32(9): 61-63.
[14]
张晶, 李心广, 王金矿. 基于WinCE的语音识别系统[J]. 微型电脑应用, 2008, 24(9): 56-58.
Zhang J, Li X G, Wang J K. Speech recognition system based on WinCE embedded OS[J]. Microcomputer Applications, 2008, 24(9): 56-58.
[15]
张敏捷. 基于WinCE的智能家居嵌入式WEB服务系统研究[D]. 浙江: 浙江工业大学信息工程学院, 2007.