基于LD332O語(yǔ)音識(shí)別專用芯片實(shí)現(xiàn)的語(yǔ)音控制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:語(yǔ)音控制機(jī)器已經(jīng)成為人機(jī)界面設(shè)計(jì)的一種重要手段。LD3320作為一款語(yǔ)音識(shí)別專用芯片,集成了語(yǔ)音識(shí)別處理器和一些外部電路,實(shí)現(xiàn)了有限詞匯的非特定人語(yǔ)音識(shí)別。文章介紹了LD3320芯片的基本功能、電路設(shè)計(jì)以及控制軟件的編寫。
關(guān)鍵詞:語(yǔ)音識(shí)別;集成電路;LD3320
0 引言
語(yǔ)音不僅是人與人之間進(jìn)行信息交流最直接、最方便和最有效的工具,也是人與機(jī)器之間進(jìn)行通信的重要工具。過(guò)去的二三十年中,圖形用戶界面(Graphical User Interface,GUI)作為人與機(jī)器的通信接口取得了很大的進(jìn)展,但使用GUI仍然擺脫不了手的操作,某些場(chǎng)合仍有不便。因此,語(yǔ)音用戶界面(Voice User Interface,VUI)成為人們的下一個(gè)目標(biāo),人們希望通過(guò)聲音可以對(duì)機(jī)器發(fā)出指令。
語(yǔ)音識(shí)別有著非常廣泛的應(yīng)用領(lǐng)域,例如智能家電、智能家居、智能導(dǎo)航、智能玩具等等,這些領(lǐng)域下,語(yǔ)音識(shí)別提高了設(shè)備的易用性。另外,在某些場(chǎng)合,操作者需要用手控制其它設(shè)備,比如駕駛員駕駛過(guò)程中,或者非常強(qiáng)調(diào)響應(yīng)時(shí)間,比如軍事訓(xùn)練種情況的緊急處置,這些場(chǎng)合不允許操作者進(jìn)行復(fù)雜的操作,語(yǔ)音控制就成為一項(xiàng)必要的選擇。
語(yǔ)音識(shí)別屬于數(shù)字信號(hào)處理的研究領(lǐng)域,其算法初期是依靠計(jì)算機(jī)、數(shù)字信號(hào)處理器等來(lái)實(shí)現(xiàn)的,但隨著微電子學(xué)和集成電路技術(shù)的新進(jìn)展,近年來(lái)不斷有語(yǔ)音識(shí)別集成電路投放市場(chǎng)。其中,ICRoute的LD3320就是一款性價(jià)比較高的芯片。
1 LD3320芯片介紹
LD3320是一顆基于非特定人語(yǔ)音識(shí)別(SI-ASR,Speaker Independent Automatic Speech Recognition)技術(shù)的語(yǔ)音識(shí)別/聲控芯片。該芯片集成了語(yǔ)音識(shí)別處理器和一些外部電路,包括ADC、DAC、麥克風(fēng)接口、聲音輸出接口等。該芯片不需要外接任何的輔助芯片如Flash、RAM等,直接集成在現(xiàn)有的產(chǎn)品中,即可以實(shí)現(xiàn)語(yǔ)音識(shí)別/聲控/人機(jī)對(duì)話功能。
LD3320完成非特定人語(yǔ)音識(shí)別,每次識(shí)別最多可以設(shè)置50項(xiàng)候選識(shí)別句,每個(gè)識(shí)別句可以是單字、詞組或短句,長(zhǎng)度為不超過(guò)10個(gè)漢字或者79個(gè)字節(jié)的拼音串。另一方面,識(shí)別句內(nèi)容可以動(dòng)態(tài)編輯修改,因此可由一個(gè)系統(tǒng)支持多種場(chǎng)景。
芯片采用48腳QFN塑料封裝,工作供電為3.3V。芯片內(nèi)部電路的簡(jiǎn)要邏輯圖如圖1所示。其核心是語(yǔ)音以別運(yùn)算器,配合輸入、輸出、AD/DA轉(zhuǎn)換等模塊,完成語(yǔ)音識(shí)別的功能。LD3320還支持并行和串行接口,串行方式可以簡(jiǎn)化與其他模塊的連接。
2 LD3320的應(yīng)用電路設(shè)計(jì)
LD3320的基本應(yīng)用電路由一個(gè)微控制器(MCU)和LD3320組成。電路中的主控MCU芯片,是為了完成對(duì)LD3320芯片寄存器的操作。
對(duì)LD3320芯片的各種操作,都必須通過(guò)寄存器的操作來(lái)完成。比如設(shè)置標(biāo)志位:讀取狀態(tài);向FIFO寫入數(shù)據(jù);識(shí)別完成后獲得識(shí)別結(jié)果等。例如在編輯關(guān)鍵詞語(yǔ)時(shí),主控MCU通過(guò)把關(guān)鍵詞語(yǔ)的拼音串設(shè)置進(jìn)LD3320相關(guān)寄存器來(lái)完成編輯。
其寄存器大體可以分為以下幾類,F(xiàn)IFO數(shù)據(jù)緩存器、語(yǔ)音識(shí)別控制寄存器、音量調(diào)節(jié)、模擬電路和其它的輔助寄存器。寄存器讀寫操作有2種方式,即標(biāo)準(zhǔn)并行方式和串行SPI方式。LD3320寄存器的地址空間為8位,編號(hào)從00H到FFH,可參考文獻(xiàn)。
本文選用的主控MCU是51內(nèi)核的單片機(jī)STC10L08XE。演示的軟件程序全部燒錄在MCU的內(nèi)置Flash中。主控MCU直接控制LD33203完成所有和語(yǔ)音識(shí)別相關(guān)的工作。
電源設(shè)計(jì)可以使用NS公司的LM1117-3.3芯片,為L(zhǎng)D3320提供3.3V的電壓:音頻輸入和輸出,可以使用柱極體MIC和0.5W的小喇叭;語(yǔ)音識(shí)別完成后,為了實(shí)現(xiàn)對(duì)后續(xù)電路的驅(qū)動(dòng),可以利用MCU的串行口與其它模塊進(jìn)行連接。
主控MCU與LD3320的連接關(guān)系如圖2所示,MCU的P0端口的8根線和LD3320并行方式連接,控制線也分別連接。此外還連接了復(fù)位信號(hào)和中斷信號(hào)。對(duì)LD3320來(lái)說(shuō),復(fù)位信號(hào)(RSTB)由MCU發(fā)出,而中斷信號(hào)由LD3320發(fā)出,MCU負(fù)責(zé)接收。
另外,還有一些輔助電路,比如麥克風(fēng)的偏置、喇叭音量的控制,以及電源的去耦等,這里不作詳細(xì)介紹。
3 LD3320的軟件編程
3.1 編程模式
主控MCU通過(guò)讀/寫LD3320的寄存器完成操作。用戶有兩種編程模式:“中斷模式”和“輪詢模式”。
所謂中斷模式,就是系統(tǒng)的主控MCU在接收到外界一個(gè)觸發(fā)后(比如用戶按動(dòng)某個(gè)按鍵),啟動(dòng)LD3320芯片的一個(gè)定時(shí)識(shí)別過(guò)程(比如5s),要求用戶在這個(gè)定時(shí)過(guò)程中說(shuō)出要識(shí)別的語(yǔ)音關(guān)鍵詞語(yǔ)。過(guò)了這個(gè)過(guò)程后,需要用戶再次觸發(fā)才能再次啟動(dòng)一個(gè)識(shí)別過(guò)程。
所謂輪詢模式,就是系統(tǒng)的主控MCU反復(fù)啟動(dòng)識(shí)別過(guò)程。如果沒(méi)有人說(shuō)話沒(méi)有識(shí)別結(jié)果,則每次識(shí)別過(guò)程的定時(shí)到時(shí)后再啟動(dòng)一個(gè)識(shí)別過(guò)程;如果有識(shí)別結(jié)果,則根據(jù)識(shí)別作相應(yīng)處理后(比如播放某個(gè)聲音作為回答)再啟動(dòng)一個(gè)識(shí)別過(guò)程。
3.2 程序流程
語(yǔ)音識(shí)別的操作流程是:
(1)語(yǔ)音識(shí)別用初始化(包括通用初始化)。在此步驟中,對(duì)各寄存器進(jìn)行初始化設(shè)置。
(2)寫入識(shí)別列表。LD3320是一個(gè)基于詞庫(kù)的語(yǔ)音識(shí)別芯片,在此步驟中,應(yīng)將待識(shí)別的短語(yǔ)寫入識(shí)別列表。列表的規(guī)則是,每個(gè)識(shí)別條目對(duì)應(yīng)一個(gè)特定的編號(hào)(1個(gè)字節(jié)),不同的識(shí)別條目的編號(hào)可以相同,而且不用連續(xù),但是數(shù)值要小于256(00H~FFH)。
(3)開(kāi)始識(shí)別,并準(zhǔn)備好中斷響應(yīng)函數(shù),打開(kāi)中斷允許位。
(4)響應(yīng)中斷。如果麥克風(fēng)采集到聲音,不管是否以別出正常結(jié)果,都會(huì)產(chǎn)生一個(gè)中斷信號(hào)。而中斷程序要根據(jù)寄存器的值分析結(jié)果。讀取BA寄存器的值,可以知道有幾個(gè)候選答案,而C5寄存器里的答案是得分最高、最可能正確的答案。
如果不用中斷方式,也可以通過(guò)查詢方式工作。在“開(kāi)始識(shí)別”后,讀取寄存器B2H的值,如果為21H就表示有識(shí)別結(jié)果產(chǎn)生。在此之后讀取候選項(xiàng)等操作與中斷方式相同。
LD3320芯片還具有MP3播放的功能,在這里不再進(jìn)行介紹。
4 結(jié)論
LD3320的功能是完成有限詞組的非特定人語(yǔ)音識(shí)別,我們將其應(yīng)用在一個(gè)虛擬環(huán)境下戰(zhàn)術(shù)訓(xùn)練課題中。戰(zhàn)術(shù)訓(xùn)練中,常常需要下達(dá)一些短口令,而在我們所設(shè)計(jì)的訓(xùn)練環(huán)境中,如果口令采用鍵盤或鼠標(biāo)的方式進(jìn)行輸入,顯然有違設(shè)計(jì)的初衷。所以,我們使用LD3320設(shè)計(jì)VUI控制電路,用語(yǔ)音識(shí)別的方式,將獲得的識(shí)別結(jié)果再轉(zhuǎn)換成串口信號(hào),輸入計(jì)算機(jī),達(dá)到語(yǔ)音控制的目的。
實(shí)踐證明,這種方式可以滿足語(yǔ)音控制的要求,但是語(yǔ)音識(shí)別的速度,即實(shí)時(shí)性還有待改進(jìn)。