基于LD332O語(yǔ)音識別專(zhuān)用芯片實(shí)現的語(yǔ)音控制
主控MCU與LD3320的連接關(guān)系如圖2所示,MCU的P0端口的8根線(xiàn)和LD3320并行方式連接,控制線(xiàn)也分別連接。此外還連接了復位信號和中斷信號。對LD3320來(lái)說(shuō),復位信號(RSTB)由MCU發(fā)出,而中斷信號由LD3320發(fā)出,MCU負責接收。
另外,還有一些輔助電路,比如麥克風(fēng)的偏置、喇叭音量的控制,以及電源的去耦等,這里不作詳細介紹。
3 LD3320的軟件編程
3.1 編程模式
主控MCU通過(guò)讀/寫(xiě)LD3320的寄存器完成操作。用戶(hù)有兩種編程模式:“中斷模式”和“輪詢(xún)模式”。
所謂中斷模式,就是系統的主控MCU在接收到外界一個(gè)觸發(fā)后(比如用戶(hù)按動(dòng)某個(gè)按鍵),啟動(dòng)LD3320芯片的一個(gè)定時(shí)識別過(guò)程(比如5s),要求用戶(hù)在這個(gè)定時(shí)過(guò)程中說(shuō)出要識別的語(yǔ)音關(guān)鍵詞語(yǔ)。過(guò)了這個(gè)過(guò)程后,需要用戶(hù)再次觸發(fā)才能再次啟動(dòng)一個(gè)識別過(guò)程。
所謂輪詢(xún)模式,就是系統的主控MCU反復啟動(dòng)識別過(guò)程。如果沒(méi)有人說(shuō)話(huà)沒(méi)有識別結果,則每次識別過(guò)程的定時(shí)到時(shí)后再啟動(dòng)一個(gè)識別過(guò)程;如果有識別結果,則根據識別作相應處理后(比如播放某個(gè)聲音作為回答)再啟動(dòng)一個(gè)識別過(guò)程。
3.2 程序流程
語(yǔ)音識別的操作流程是:
(1)語(yǔ)音識別用初始化(包括通用初始化)。在此步驟中,對各寄存器進(jìn)行初始化設置。
(2)寫(xiě)入識別列表。LD3320是一個(gè)基于詞庫的語(yǔ)音識別芯片,在此步驟中,應將待識別的短語(yǔ)寫(xiě)入識別列表。列表的規則是,每個(gè)識別條目對應一個(gè)特定的編號(1個(gè)字節),不同的識別條目的編號可以相同,而且不用連續,但是數值要小于256(00H~FFH)。
(3)開(kāi)始識別,并準備好中斷響應函數,打開(kāi)中斷允許位。
(4)響應中斷。如果麥克風(fēng)采集到聲音,不管是否以別出正常結果,都會(huì )產(chǎn)生一個(gè)中斷信號。而中斷程序要根據寄存器的值分析結果。讀取BA寄存器的值,可以知道有幾個(gè)候選答案,而C5寄存器里的答案是得分最高、最可能正確的答案。
如果不用中斷方式,也可以通過(guò)查詢(xún)方式工作。在“開(kāi)始識別”后,讀取寄存器B2H的值,如果為21H就表示有識別結果產(chǎn)生。在此之后讀取候選項等操作與中斷方式相同。
LD3320芯片還具有MP3播放的功能,在這里不再進(jìn)行介紹。
4 結論
LD3320的功能是完成有限詞組的非特定人語(yǔ)音識別,我們將其應用在一個(gè)虛擬環(huán)境下戰術(shù)訓練課題中。戰術(shù)訓練中,常常需要下達一些短口令,而在我們所設計的訓練環(huán)境中,如果口令采用鍵盤(pán)或鼠標的方式進(jìn)行輸入,顯然有違設計的初衷。所以,我們使用LD3320設計VUI控制電路,用語(yǔ)音識別的方式,將獲得的識別結果再轉換成串口信號,輸入計算機,達到語(yǔ)音控制的目的。
實(shí)踐證明,這種方式可以滿(mǎn)足語(yǔ)音控制的要求,但是語(yǔ)音識別的速度,即實(shí)時(shí)性還有待改進(jìn)。
評論