基于ARM的實時語音識別系統(tǒng)在家庭監(jiān)護機器人的實現(xiàn)
2)語音編解碼芯片選擇
機器人選擇一款合適的語音處理芯片是非常重要的。考慮到系統(tǒng)中用到了各種電源,并需要對電源進行管理,因此選擇TI公司配套的TPS 65930芯片來作為系統(tǒng)語音識別部分的音頻編解碼處理功能的硬件平臺是非常合適的。該芯片是一個集成了電源管理、ADC、嵌入式電源控制(EPC)、全功能的音頻編解碼器于一體的芯片,滿足了系統(tǒng)所有電源管理和音頻編解碼的需要,為設(shè)計的PCB板節(jié)省了空間,同時減少了多電源硬件設(shè)計的負責布線煩惱。
3)電路設(shè)計
本文的設(shè)計是用在移動機器人上的,因而需要語音的輸入、識別處理及語音輸出的功能。對于語音的輸入采集,本文使用聲音傳感器麥克風及外圍電路來實現(xiàn)。對于語音輸出部分,使用功率放大器結(jié)合喇叭來使用。設(shè)計語音部分原理圖如圖3所示。
1.2 軟件設(shè)計
HTK(Hidden Markov Model Toolkit)是一套專門的建立和處理隱馬可夫模型(HMMs)的實驗工具包,由英國劍橋大學工程系(Cambridge University Engineering Department,CUED)開發(fā)的,主要應用于語音識別領(lǐng)域,也可以應用于語音合成、字符識別和DNA排序等研究領(lǐng)域。HTK經(jīng)過劍橋大學、Entropic公司及Microsoft公司的不斷增強和改進,使其在語音識別領(lǐng)域處于世界領(lǐng)先水平。
基于HTK的語言識別時,識別結(jié)果適用只能顯示在DOS或終端上,而且不利于將結(jié)果保存、移植或者二次開發(fā)利用。在本語音識別系統(tǒng)中使用了HTK接口工具ATK(AnApplication Toolkit for HTK)。ATK是由英國劍橋大學開發(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的語音識別軟件應用系統(tǒng)的由語音信號采集模塊、基于DMA的雙向高速RAM存取模塊、ATK語音識別模塊、系統(tǒng)管理模塊、語音輸出模塊等模塊組成,如圖4所示。
在軟件設(shè)計中,系統(tǒng)管理模塊主要負責系統(tǒng)的總體管理調(diào)度,是應用系統(tǒng)的調(diào)度中心;語音信號采集模塊主要負責控制數(shù)據(jù)采集芯片TPS 65930;基于DMA的雙向RAM存取模塊主要負責實現(xiàn)DMA驅(qū)動及雙向RAM的讀寫存取,使用了通道1來實現(xiàn)高速地把語音信號采集到的數(shù)據(jù)存儲到RAM上,并使用通道2實現(xiàn)高速地把RAM的數(shù)據(jù)取出來,用于語音的識別;語音輸出模塊主要負責把相應的音頻數(shù)據(jù)送到TPS65930,并控制TPS6 5930對接收到的音頻解碼輸出到功放電路,實現(xiàn)語音輸出的功能。軟件的設(shè)計流程圖如圖5所示。
c++相關(guān)文章:c++教程
評論