基于SPCE061A智能小車機(jī)器人語音辨識系統(tǒng)的研究
智能小車的語音辨識系統(tǒng)在SPCE061A上的實現(xiàn)過程可分為以下五個階段,如圖6所示。
(1)初始化RAM
語音命令的特征模型被保存在SPCE061A的內(nèi)部
RAM中,如果所需的RAM空間被舊的特征模型數(shù)據(jù)占滿,新特征模型則無法保存到RAM中,利用BSR_DeleteS-DGroup(0)函數(shù)可以把 RAM空間中所有的特征模型刪除,釋放出所需的空間。當(dāng)RAM擦除成功BSR_DeleteS-DGroup(0)函數(shù)返回0,否則返回-1。
(2)調(diào)用訓(xùn)練模塊
語音訓(xùn)練過程通過調(diào)用函數(shù)im BSR_Train(int Corn-mandID,int TraindMode)來完成,CommandID為命令序號,范圍從0x100到0x105,并且對于每組訓(xùn)練語句都是唯一的。TraindMode為訓(xùn)練次數(shù),為1表示使用者訓(xùn)練一次,為2表示訓(xùn)練者訓(xùn)練兩次。為了增強(qiáng)可靠性,最好訓(xùn)練兩次,否則辨識的命令就會傾向于噪音,訓(xùn)練次數(shù)是2時,兩次一定會有一些差異,所以一定要保證兩次訓(xùn)練結(jié)果盡量接近。當(dāng)int BSR_Train返回0時表明語音訓(xùn)練成功。
(3)初始化辨識器
用來定義語音輸入來源,可以通過調(diào)用函數(shù)void BSR_InitRecognizer(int AudioSource)完成,其中參數(shù)Audio-Source為0時表示MIC語音輸入,為1時表示LINE_IN模擬電壓輸入。當(dāng)主程序調(diào)用該函數(shù)時,語音辨識器便打開8kHz采用頻率的FIQ_TMA中斷,并將采樣得到的語音數(shù)據(jù)填入語音辨識器的數(shù)據(jù)隊列中。
(4)啟動實時監(jiān)控
實時監(jiān)控是用來觀察語音辨識是否正常工作,如果辨識正常則會產(chǎn)生脈寬為16ms連續(xù)穩(wěn)定方波,否則會產(chǎn)生不穩(wěn)定的波形,此時需要刪除命令或優(yōu)化程序,否則將會丟失語音數(shù)據(jù),產(chǎn)生辨識出錯信息。完成此功能可以通過調(diào)用BSR_EnableCPUIndicator()函數(shù)來完成。
(5)辨識處理
由函數(shù)int BSR_GetResult()完成語音辨識處理,當(dāng)無命令辨識出來時,函數(shù)返回0;辨識器停止未初始化或辨識未激活返回-1;當(dāng)辨識不合格時返回-2;當(dāng)辨識出來時返回命令的序號。
4 實驗與結(jié)論
實驗中智能小車的正確辨識率在90%以上,實驗過程中發(fā)現(xiàn)影響小車正常辨識的因素主要包括周圍環(huán)境的噪音、人與小車的距離等,這些需要在今后的工作改正。需要說明的是在訓(xùn)練過程中中,每條語音命令的長度不要超過13 s,訓(xùn)練后得到的語音模型保存在RAM中,每條命令占用96Word。由于RAM空間有限,同時可辨識的語音命令為5條,為了運行復(fù)雜的辨識程序,必須通過擴(kuò)展必要的存儲芯片完成系統(tǒng)的功能。
這種語音控制的智能小車機(jī)器人不僅可以將來為人服務(wù),稍加擴(kuò)展,就可以在多種不適合人作業(yè)的場合替代人執(zhí)行任務(wù),因此這種語音控制小車機(jī)器人具有重要的學(xué)術(shù)研究價值。
評論