基于ATK的實(shí)時語音識別系統(tǒng)在家庭監(jiān)護(hù)機(jī)器人中的應(yīng)用實(shí)現(xiàn)
語音是人類最常用的交流方式,也是人類和計(jì)算機(jī)交流最渴望的方式。因此用語音同計(jì)算機(jī)交流也成為了最近研究的熱點(diǎn),計(jì)算機(jī)對語音的理解是計(jì)算機(jī)科學(xué)中的一個引人人勝的、富有挑戰(zhàn)性的課題。
進(jìn)入90年代,隨著多媒體時代的來臨,迫切要求語音識別系統(tǒng)從實(shí)驗(yàn)室走向?qū)嵱?。許多發(fā)達(dá)國家如美國、日本、韓國以及IBM、Apple、AT&T、NTT等著名公司都為語音識別系統(tǒng)的實(shí)用化開發(fā)研究投以巨資。IBM公司于1997年開發(fā)出漢語ViaVoice語音識別系統(tǒng),次年又開發(fā)出可以識別上海話、廣東話和四川話等地方口音的語音識別系統(tǒng)ViaVoice’98。目前市場上已經(jīng)出現(xiàn)了語音識別電話、語音識別記事本等產(chǎn)品,如美國VPTC公司的Voice Organizer和法國的Parrot等。
我國語音識別研究工作開始的較晚,但近年來發(fā)展得很快,一直緊跟國際水平,國家也很重視,并把大詞匯量語音識別的研究列入“8 63”計(jì)劃,由中科院聲學(xué)所、自動化所、清華大學(xué)電子工程系及北京大學(xué)等單位研究開發(fā),取得了高水平的科研成果,如中科院自動化所研制的非特定人、連續(xù)語音聽寫系統(tǒng)和漢語語音人機(jī)對話系統(tǒng),其字準(zhǔn)確率或系統(tǒng)響應(yīng)率可達(dá)90%以上。鑒于中國未來龐大的市場,國外也非常重視漢語語音識別的研究。美國、新加坡等地聚集了一批來自大陸、臺灣、香港等地的學(xué)者,研究成果已達(dá)到相當(dāng)高水平。
1 系統(tǒng)設(shè)計(jì)
文中是家庭監(jiān)護(hù)機(jī)器人項(xiàng)目中的語音識別系統(tǒng)設(shè)計(jì)部分,設(shè)計(jì)目的是設(shè)計(jì)出一種可以識別語音的、協(xié)助監(jiān)護(hù)家庭行動不方便人員的機(jī)器人。為實(shí)現(xiàn)該語音識別系統(tǒng),設(shè)計(jì)了語音識別系統(tǒng)總體結(jié)構(gòu)框圖,如圖1所示。
1.1 硬件設(shè)計(jì)
文中所研究和設(shè)計(jì)的功能,都是應(yīng)用在移動機(jī)器人上的。因而系統(tǒng)的研究設(shè)計(jì)需要考慮到體積小、省電、便于移動的特性,并需具有便于家庭用戶操作的友好顯示界面。對于語音識別部分,需要用到用于語音識別算法處理的處理器、語音采集電路和語音輸出電路,如圖2所示。其中語音識別算法運(yùn)算的處理器主要負(fù)責(zé)算法的運(yùn)算處理,相當(dāng)于機(jī)器人的大腦;語音采集電路負(fù)責(zé)采集外部的聲音信號,相當(dāng)于機(jī)器人的耳朵;語音輸出電路負(fù)責(zé)輸出話語聲音,相當(dāng)于機(jī)器人的嘴巴。
1)語音識別算法處理器選擇
根據(jù)系統(tǒng)設(shè)計(jì)功能的要求,目前常用的語音識別芯片種類一般有:單片機(jī)(MCU)、DSP和SoC(System on Circuit)??紤]到普通單片機(jī)(MCU)資源的緊缺及運(yùn)行速度較慢的缺點(diǎn),因而在本系統(tǒng)設(shè)計(jì)將不考慮使用單片機(jī)(MCU)作為語音識別的處理器。DSP包含用作數(shù)字信號處理的專用部件,運(yùn)算能力強(qiáng)、精度高,但目前DSP的價格比較高,同時考慮到本系統(tǒng)的特性,需要選擇一種既有較強(qiáng)的運(yùn)算能力,合適于語音識別的功能,并且能實(shí)現(xiàn)較好的用戶操作界面,并帶有文件系統(tǒng)(用于識別地圖)的功能,因而選擇DSP并不是明智之舉。目前Texas Instruments公司新推出的一款芯片OMAP3530,它具有雙內(nèi)核ARM CortexTM-A8的內(nèi)核和TMS320C64+TM DSP內(nèi)核,屬于高性能的OMAP35x架構(gòu)系列產(chǎn)品,滿足了系統(tǒng)設(shè)計(jì)的各種功能特性要求。
2)語音編解碼芯片選擇
機(jī)器人選擇一款合適的語音處理芯片是非常重要的??紤]到系統(tǒng)中用到了各種電源,并需要對電源進(jìn)行管理,因此選擇TI公司配套的TPS 65930芯片來作為系統(tǒng)語音識別部分的音頻編解碼處理功能的硬件平臺是非常合適的。該芯片是一個集成了電源管理、ADC、嵌入式電源控制(EPC)、全功能的音頻編解碼器于一體的芯片,滿足了系統(tǒng)所有電源管理和音頻編解碼的需要,為設(shè)計(jì)的PCB板節(jié)省了空間,同時減少了多電源硬件設(shè)計(jì)的負(fù)責(zé)布線煩惱。
3)電路設(shè)計(jì)
本文的設(shè)計(jì)是用在移動機(jī)器人上的,因而需要語音的輸入、識別處理及語音輸出的功能。對于語音的輸入采集,本文使用聲音傳感器麥克風(fēng)及外圍電路來實(shí)現(xiàn)。對于語音輸出部分,使用功率放大器結(jié)合喇叭來使用。設(shè)計(jì)語音部分原理圖如圖3所示。
1.2 軟件設(shè)計(jì)
HTK(Hidden Markov Model Toolkit)是一套專門的建立和處理隱馬可夫模型(HMMs)的實(shí)驗(yàn)工具包,由英國劍橋大學(xué)工程系(Cambridge University Engineering Department,CUED)開發(fā)的,主要應(yīng)用于語音識別領(lǐng)域,也可以應(yīng)用于語音合成、字符識別和DNA排序等研究領(lǐng)域。HTK經(jīng)過劍橋大學(xué)、Entropic公司及Microsoft公司的不斷增強(qiáng)和改進(jìn),使其在語音識別領(lǐng)域處于世界領(lǐng)先水平。
基于HTK的語言識別時,識別結(jié)果適用只能顯示在DOS或終端上,而且不利于將結(jié)果保存、移植或者二次開發(fā)利用。在本語音識別系統(tǒng)中使用了HTK接口工具ATK(AnApplication Toolkit for HTK)。ATK是由英國劍橋大學(xué)開發(fā)的開源語音識別工具,是對HTK的C++多線程封裝,跟HTK一樣,它支持Linux和Windows,它包括HTK(HTKLib)、AHTK、AGram、ANGram、ADict、AHMMs、AResource、ARMan、ARec、ACode、ASour ce、ATee、AComponent、ABuffer、APacket、Asyn、FLite(SYNLib)、ALog模塊部件。
基于ATK的語音識別軟件應(yīng)用系統(tǒng)的由語音信號采集模塊、基于DMA的雙向高速RAM存取模塊、ATK語音識別模塊、系統(tǒng)管理模塊、語音輸出模塊等模塊組成,如圖4所示。
在軟件設(shè)計(jì)中,系統(tǒng)管理模塊主要負(fù)責(zé)系統(tǒng)的總體管理調(diào)度,是應(yīng)用系統(tǒng)的調(diào)度中心;語音信號采集模塊主要負(fù)責(zé)控制數(shù)據(jù)采集芯片TPS 65930;基于DMA的雙向RAM存取模塊主要負(fù)責(zé)實(shí)現(xiàn)DMA驅(qū)動及雙向RAM的讀寫存取,使用了通道1來實(shí)現(xiàn)高速地把語音信號采集到的數(shù)據(jù)存儲到RAM上,并使用通道2實(shí)現(xiàn)高速地把RAM的數(shù)據(jù)取出來,用于語音的識別;語音輸出模塊主要負(fù)責(zé)把相應(yīng)的音頻數(shù)據(jù)送到TPS65930,并控制TPS6 5930對接收到的音頻解碼輸出到功放電路,實(shí)現(xiàn)語音輸出的功能。軟件的設(shè)計(jì)流程圖如圖5所示。
2 語音識別系統(tǒng)實(shí)驗(yàn)及結(jié)果
文中設(shè)計(jì)的語音識別系統(tǒng)如圖6所示。在實(shí)驗(yàn)中總共進(jìn)行了3輪話語測試,每輪300句話語測試,其中150句為家庭監(jiān)護(hù)機(jī)器人需要識別的話語,150句話語為機(jī)器人不予置理的無關(guān)話語。本系統(tǒng)只設(shè)置10個需要識別的話語,由15名學(xué)生分別讀音進(jìn)行測試。同時對無關(guān)話語也是由該15名學(xué)生,每人10句分別隨機(jī)讀音測試。從顯示結(jié)果可以看出,第1輪中,先測試的150句無關(guān)話語中,能正確識別出無關(guān)話語數(shù)為150句,識別出無關(guān)話語率為100%,但對需識別的話語中,正確識別出148句,2句識別出錯,識別率為98.67%;在第2輪中,同樣先測試的150句無關(guān)話語中,能正確識別出無關(guān)話語數(shù)為150句,識別出為無關(guān)話語率為100%,但對需識別的話語中,正確識別出142句,8句識別出錯,識別率為94.67%;在第3輪中,同樣先測試的150句無關(guān)話語中,能正確識別出無關(guān)話語數(shù)為150句,識別出無關(guān)話語率為100%,但對需識別的話語中,正確識別出146句,識別率為97.33%。在3輪測試中,系統(tǒng)都能實(shí)時響應(yīng)所有語句,未出現(xiàn)漏句現(xiàn)象。并且在實(shí)驗(yàn)測試的過程中,系統(tǒng)的響應(yīng)速度都非??欤杏^上沒有時間延遲,與真人交流速度相當(dāng)。
從實(shí)驗(yàn)測試結(jié)果可看出,對于識別10個需要識別的話語的識別率高達(dá)94.67%以上,具有較高的識別率,因而該語音識別系統(tǒng)較好達(dá)到了家庭監(jiān)護(hù)機(jī)器人使用的要求。
3 結(jié)論
文中通過DSP、DMA和ARM Cortex-A8的并行處理,利用雙緩沖的方法,在嵌入式Linux上實(shí)現(xiàn)了基于ATK的實(shí)時語音識別系統(tǒng)。該系統(tǒng)可以實(shí)時地實(shí)現(xiàn)語音識別,具有較高識別率,較快的響應(yīng)速度。可以應(yīng)用在家庭監(jiān)護(hù)機(jī)器人及其相關(guān)領(lǐng)域中。