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