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