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