基于HMM的语音识别技术在嵌入式系统中的应用
摘要:介绍语音识别技术在嵌入式系统中的应用状况与发展,以及在嵌入式系统中使用HMM语音识别算法的优点,并对基于HMM语音识别技术的系统进行介绍。
关键词:SoC芯片 HMM 语音识别 嵌入式系统
语音识别ASR(Automatic Speech Recognition)系统的实用化研究是近十年语音识别研究的一个主要方向。近年来,消费类电子产品对低成本、高稳健性的语音识别片上系统的需求快速增加,语音识别系统大量地从实验室的PC平台转移到嵌入式设备中。
语音识别技术目前在嵌入式系统中的应用主要为语音命令控制,它使得原本需要手工操作的工作用语音就可以方便地完成。语音命令控制可广泛用于家电语音遥控、玩具、智能仪器及移动电话等便携设备中。使用语音作为人机交互的途径对于使用者来说是最自然的一种方式,同时设备的小型化也要求省略键盘以节省体积。
嵌入式设备通常针对特定应用而设计,只需要对几十个词的命令进行识别,属于小词汇量语音识别系统。因此在语音识别技术的要求不在于大词汇量和连续语音识别,而在于识别的准确性与稳健性。
对于嵌入式系统而言,还有许多其它因素需要考虑。首先是成本,由于成本的限制,一般使用定点DSP,有时甚至只能考虑使用MPU,这意味着算法的复杂度受到限制;其次,嵌入式系统对体积有严格的限制,这就需要一个高度集成的硬件平台,因此,SoC(System on Chip)开始在语音识别领域崭露头角。SoC结构的嵌入式系统大大减少了芯片数量,能够提供高集成度和相对低成本的解决方案,同时也使得系统的可靠性大为提高。
语音识别片上系统是系统级的集成芯片。它不只是把功能复杂的若干个数字逻辑电路放入同一个芯片,做成一个完整的单片数字系统,而且在芯片中还应包括其它类型的电子功能器件,如模拟器件(如ADC/DAC)和存储器。
笔者使用SoC芯片实现了一个稳定、可靠、高性能的嵌入式语音识别系统。包括一套全定点的DHMM和CHMM嵌入式语音识别算法和硬件系统。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 硬件平台
本识别系统是在与Infineon公司合作开发的芯片UniSpeech上实现的。UniSpeech芯片是为语音信号处理开发的专用芯片,采用0.18μm工艺生产。它将双核(DSP+MCU)、存储器、模拟处理单元(ADC与DAC)集成在一个芯片中,构成了一种语音处理SoC芯片。这种芯片的设计思想主要是为语音识别和语音压缩编码领域提供一个低成本、高可靠性的硬件平台。
该芯片为语音识别算法提供了相应的存储量和运算能力。包括一个内存控制单元MMU(Memory Management Unit)和104KB的片上RAM。其DSP核为16位定点DSP,运算速度可达到约100MIPS.MCU核是8位增强型8051,每两个时钟周期为一个指令周期,其时钟频率可达到50MHz。
UniSpeech芯片集成了2路8kHz采样12bit精度的ADC和2路8kHz采样11bit的DAC,采样后的数据在芯片内部均按16bit格式保存和处理。对于语音识别领域,这样精度的ADC/DAC已经可以满足应用。ADC/DAC既可以由MCU核控制,也可以由DSP核控制。
2 嵌入式语音识别系统比较
以下就目前基于整词模型的语音识别的主要技术作一比较。
(1)基于DTW(Dynamic Time Warping)和模拟匹配技术的语音识别系统。目前,许多移动电话可以提供简单的语音识别功能,几乎都是甚至DTM和模板匹配技术。
DTW和模板匹配技术直接利用提取的语音特征作为模板,能较好地实现孤立词识别。由于DTW模版匹配的运算量不大,并且限于小词表,一般的应用领域孤立数码、简单命令集、地名或人名集的语音识别。为减少运算量大多数使用的特征是LPCC(Linear Predictive Cepstrum Coefficient)运算。
DTW和模板匹配技术的缺点是只对特定人语音识别有较好的识别性能,并且在使用前需要对所有词条进行训练。这一应用从20世纪90年代就进入成熟期。目前的努力方向是进一步降低成本、提高稳健性(采用双模板)和抗噪性能。
(2)基于隐含马尔科夫模型HMM(Hidden Markov Model)的识别算法。这是Rabiner等人在20世纪80年代引入语音识别领域的一种语音识别算法。该算法通过对大量语音数据进行数据统计,建立识别条的统计模型,然后从待识别语音中提取特征,与这些模型匹配,通过比较匹配分数以获得识别结果。通过大量的语音,就能够获得一个稳健的统计模型,能够适应实际语音中的各种突发情况。因此,HMM算法具有良好的识别性能和抗噪性能。
基于HMM技术的识别系统可用于非特定人,不需要用户事先训练。它的缺点在于统计模型的建立需要依赖一个较大的语音库。这在实际工作中占有很大的工作量。且模型所需要的存储量和匹配计算(包括特征矢量的输出概率计算)的运算量相对较大,通常需要具有一定容量SRAM的DSP才能完成。
在嵌入式语音识别系统中,由于成本和算法复杂度的限制,HMM算法特别CHMM(Continuous density HMM)算法尚未得到广泛的应用。
(3)人工神经网络ANN(Artificial Neural Network)。ANN在语音识别领域的应用是在20世纪80年代中后期发展起来的。其思想是用大量简单的处理单元并行连接构成一种信息处理系统。这种系统可以进行自我更新,且有高度的并行处理及容错能