基于Julius的機(jī)器人語音識別系統(tǒng)構(gòu)建
(4)HMM訓(xùn)練
本系統(tǒng)先使用HInit工具對HMM模型進(jìn)行初始化,再用HCompv工具來對模型進(jìn)行平坦初始化。HMM模型的每個狀態(tài)給定相同的平均向量和變化向量,在整個訓(xùn)練集上全局計算而得。最后用HRest的多次估計迭代,估計出HMM模型參數(shù)的最佳值,經(jīng)多次迭代,將訓(xùn)練得到的單個HMM模型整合到一個hmmsdef.mmf文件中。聲學(xué)模型HTK訓(xùn)練流程如圖5所示。
3.2 Julius應(yīng)用
3.2.1 Julius部署
在本系統(tǒng)中語音識別部分是部署在Atom Z510上,而Atom Z510上首先需要移植linux操作系統(tǒng)(本系統(tǒng)采用的是ubuntu8.10)以上步驟在此不詳細(xì)介紹,文獻(xiàn)中有詳細(xì)說明。語音識別的核心部分是Julius識別器,需要將Julius源碼編譯部署到Atom Z510平臺。其步驟如下:
①要確保linux系統(tǒng)中有以下支持庫:Zlib、flex、OSS音頻驅(qū)動接口、ESounD和libsndfile。
②從Julius官網(wǎng)下載源代碼Julius-4.1.5。
③解壓:tar-zxjf julius-4.1.5。
④編譯:%./configure,%make,%make install。
3.2.2 Julius配置
Julius全部采用C語言代碼實現(xiàn),采用模塊化設(shè)計方式,而且各功能模塊可配置。在使用前需要將配置參數(shù)寫入jconf文件,此文件作為運(yùn)行參數(shù)載入系統(tǒng),系統(tǒng)掃描參數(shù)配置并啟動各功能塊。其中重點介紹以下幾個配置參數(shù):
◆-dfa rtdog.dfa,指定語法文件rtdog.dfa;
◆-v rtdog.dict,指定字典文件;
◆-h rtdog.binhmm,指定HMM模型文件;
◆-lv 8000,設(shè)定音頻的閾值便于濾去噪音;
◆-rejectshort 600,設(shè)定最小的語音長度;
◆-input mic,設(shè)定語音的輸入方式為microphone。
3.3 語音識別系統(tǒng)軟件設(shè)計
3.3.1 GUI設(shè)計
本系統(tǒng)為了方便測試,采用QT4的圖形庫來開發(fā)人機(jī)界面(GUI),同時加入了手動控制的按鈕。其總體功能如圖6所示。通信線程是本系統(tǒng)的數(shù)據(jù)傳輸樞紐,十分重要。在QT中通過對線程類QThread繼承來實現(xiàn)新的線程設(shè)計。該類提供了創(chuàng)建一個新線程以及控制線程運(yùn)行的各種方法。線程是通過QThread::run()重載函數(shù)開始執(zhí)行的。在本系統(tǒng)中設(shè)計了1個數(shù)據(jù)通信線程,用它來不斷地讀取共享內(nèi)存中的語音命令,然后將其轉(zhuǎn)化為控制命令傳給機(jī)器人控制模塊。
評論