基于語(yǔ)音辨識(shí)的遙控小車(chē)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
.引言
隨著計(jì)算機(jī)技術(shù)的發(fā)展,單片機(jī)作為計(jì)算機(jī)的一個(gè)分支,廣泛用于工業(yè)控制、智能儀器、家用電氣、高科技玩具等領(lǐng)域。語(yǔ)音技術(shù)的發(fā)展,縮短了人機(jī)界面的距離,增強(qiáng)了互動(dòng)性和智能性。具有語(yǔ)音識(shí)別功能的智能遙控小車(chē),集語(yǔ)音識(shí)別、無(wú)線遙控、機(jī)械控制于一體。以單片機(jī)為主控元件,完成前進(jìn)、后退、轉(zhuǎn)彎等預(yù)定的工作,但是一般的單片機(jī)不具備語(yǔ)音處理功能,需外掛專(zhuān)門(mén)的語(yǔ)音識(shí)別芯片,如采用集成語(yǔ)音識(shí)別芯片RSC-364來(lái)完成語(yǔ)音識(shí)別 [1],RSC-364是Sensory公司的一款8位MCU,很方便與51單片機(jī)連接,但是需要外接編解碼電路,使得電路復(fù)雜化。采用凌陽(yáng)公司具有語(yǔ)音處理功能的SPCE061A作為控制核心可以方便的實(shí)現(xiàn)語(yǔ)音控制[2~3],但由于將SPCE061A單片機(jī)置于小車(chē)車(chē)體內(nèi), 在小車(chē)運(yùn)行時(shí),電機(jī)及周?chē)h(huán)境的噪音,會(huì)干擾對(duì)語(yǔ)音命令的識(shí)別,且距離稍遠(yuǎn)便會(huì)出現(xiàn)小車(chē)“聽(tīng)不到任何聲音”。本文采用凌陽(yáng)SPCE061A單片機(jī)結(jié)合紅外線發(fā)射芯片TX-2B組成遙控部分,克服了芯片處于小車(chē)車(chē)體內(nèi)會(huì)受到噪音影響的缺陷,對(duì)要實(shí)現(xiàn)遠(yuǎn)距離無(wú)線語(yǔ)音控制的設(shè)備具有一定的參考價(jià)值。
1.系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)主要包括語(yǔ)音識(shí)別模塊、紅外遙控模塊、電機(jī)驅(qū)動(dòng)模塊。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。凌陽(yáng)SPCE061A單片機(jī)負(fù)責(zé)語(yǔ)音識(shí)別,接收到有效語(yǔ)音信號(hào),將語(yǔ)音信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)傳送給紅外線發(fā)射芯片TX-2B,TX-2B發(fā)射的信號(hào)由紅外接收芯片RX-2B接收后,經(jīng)解碼控制電機(jī)驅(qū)動(dòng)電路,從而實(shí)現(xiàn)對(duì)小車(chē)的遠(yuǎn)距離語(yǔ)音遙控。 圖1系統(tǒng)總體結(jié)構(gòu)框圖
500)this.style.width=500;" border="0" />
1.1語(yǔ)音識(shí)別
凌陽(yáng)SPCE061A單片機(jī)是一個(gè)16位結(jié)構(gòu)的控制器,具有DSP運(yùn)算功能,內(nèi)置8通道10位A/D及2路D/A轉(zhuǎn)換器,較高的處理速度使其能夠具有數(shù)字語(yǔ)音識(shí)別的能力。軟件編程采用C語(yǔ)言和匯編語(yǔ)言混合編程,集兩種語(yǔ)言之優(yōu)點(diǎn)于一體,簡(jiǎn)化了編程過(guò)程[4~5]。SPCE061A將語(yǔ)音模擬信號(hào)直接轉(zhuǎn)換成電壓信號(hào),再經(jīng)內(nèi)置自動(dòng)增益控制,內(nèi)部ADC模塊將信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),經(jīng)編碼后存入存儲(chǔ)器,與存儲(chǔ)器中的原語(yǔ)音數(shù)字信號(hào)編碼匹配,進(jìn)行模式識(shí)別,若識(shí)別成功,則相應(yīng)的命令由61AIOA 0~I(xiàn)OA 3傳送給紅外發(fā)射芯片TX-2B的控制端。[!--empirenews.page--]
1.2 紅外遙控
TX-2B/ RX-2B是士蘭公司生產(chǎn)的配對(duì)使用的紅外線發(fā)射和接收芯片,是一款專(zhuān)用于玩具小車(chē)的成對(duì)遙控芯片,采用CMOS工藝制造,功耗小,工作電壓1.5-5V。TX-2B/RX-2B內(nèi)部己含有編碼電路和解碼電路,無(wú)需在后續(xù)的電路中對(duì)接收到的信號(hào)進(jìn)行軟件編程解碼,因此硬件電路簡(jiǎn)單。紅外發(fā)射電路如圖2所示,TX-2B中的1、4、5、14引腳分別為右轉(zhuǎn)(RIGHT)、后退(BACKWORD)、前進(jìn)(FORWORD)、左轉(zhuǎn)(LEFT)控制端,接收從061A的IOA 0~I(xiàn)OA 3 發(fā)送的信號(hào)。紅外接收電路如圖3所示,RX-2B包括內(nèi)置放大器、運(yùn)算器及鎖存器等。外接250 kΩ電阻形成RC振蕩器,與發(fā)射電路的頻率匹配。RX-2B接收信號(hào)后,經(jīng)解碼后將右轉(zhuǎn)、左傳、后退、前進(jìn)的控制信號(hào)由對(duì)應(yīng)的引腳6、7、10、11輸出,傳送給電機(jī)驅(qū)動(dòng)電路,控制小車(chē)產(chǎn)生相應(yīng)的動(dòng)作。
500)this.style.width=500;" border="0" />
1.3 電機(jī)驅(qū)動(dòng)電路
小車(chē)為四輪結(jié)構(gòu),兩個(gè)前輪為轉(zhuǎn)向機(jī)構(gòu),控制小車(chē)左轉(zhuǎn)、右轉(zhuǎn);兩個(gè)后輪為前進(jìn)、后退驅(qū)動(dòng)輪。兩個(gè)電機(jī)均采用直流小電機(jī),驅(qū)動(dòng)采用 H橋式功率驅(qū)動(dòng)電路,該電路可以很方便的實(shí)現(xiàn)電機(jī)的正、反轉(zhuǎn)的變化 [6],從而控制小車(chē)的左右轉(zhuǎn)、前進(jìn)、后退的狀態(tài)變化。由于電路簡(jiǎn)單,這里不再贅述。
2.系統(tǒng)軟件設(shè)計(jì)SPCE061A提供了很好的語(yǔ)音播放和錄制機(jī)制以及簡(jiǎn)單的API接口編程,大大簡(jiǎn)化了小車(chē)的軟件設(shè)計(jì)。在此主要闡述,語(yǔ)音辨識(shí)(包括:語(yǔ)音訓(xùn)練、語(yǔ)音識(shí)別)以及定時(shí)中斷控制部分的軟件設(shè)計(jì)。
2.1 語(yǔ)音辨識(shí)
凌陽(yáng)SPCE061A將語(yǔ)音識(shí)別功能做成模塊,通過(guò)API函數(shù)調(diào)用來(lái)實(shí)現(xiàn),內(nèi)帶的SACM-LIB解決了語(yǔ)音文件占用存儲(chǔ)空間大的問(wèn)題。本設(shè)計(jì)采用SD模式,小車(chē)只能識(shí)別特定使用者的語(yǔ)音命令,語(yǔ)音辨識(shí)的過(guò)程包括語(yǔ)音訓(xùn)練和語(yǔ)音識(shí)別 [7]。具體包括以下幾個(gè)步驟:
2.1.1 RAM初始化 調(diào)用int BSR_Delete SDGroup(0),用于SRAM初始化。當(dāng)返回值為0,代表擦除成功。否則返回-1。
2.1.2 語(yǔ)音訓(xùn)練調(diào)用int BSR_Train (int WordID, int TraindMode),用于上電后的語(yǔ)音命令訓(xùn)練。 BSR_TRAIN_TWICE 表示每條指令訓(xùn)練兩次。訓(xùn)練成功,返回值為0。
2.1.3 語(yǔ)音辨識(shí)
調(diào)用int BSR_InitRecognizer(int AudioSource),用于語(yǔ)音識(shí)別器初始化。語(yǔ)音識(shí)別器打開(kāi)8KH Z采樣頻率的FIQ_TMA中斷,開(kāi)始將采樣的語(yǔ)音數(shù)據(jù)填入語(yǔ)音識(shí)別器的數(shù)據(jù)隊(duì)列中。
2.1.4 啟動(dòng)實(shí)時(shí)監(jiān)控調(diào)用函數(shù)VoidBSR_EnableCPUIndicator(void) 啟動(dòng)實(shí)時(shí)監(jiān)控,保證辨識(shí)器正常執(zhí)行。[!--empirenews.page--]
2.1.5 獲取識(shí)別結(jié)果調(diào)用int BSR_GetResult(void),用于完成語(yǔ)音識(shí)別,并返回語(yǔ)音識(shí)別結(jié)果。返回值為0,無(wú)命令識(shí)別;返回值-1,識(shí)別器停止、未初始化;返回值-2,識(shí)別不合格;識(shí)別成功返回命令的序號(hào)。
2.1.6 停止識(shí)別調(diào)用void BSR_StopRecognizer(void),用于停止識(shí)別。調(diào)用此函數(shù)時(shí),F(xiàn)IQ_TMA中斷關(guān)閉。
小車(chē)語(yǔ)音訓(xùn)練流程圖如圖4所示。語(yǔ)音識(shí)別部分在main函數(shù)中,A口的設(shè)置即小車(chē)的邏輯控制部分放在InitIO.asm文件中。
500)this.style.width=500;" border="0" />
2.2 定時(shí)中斷 小車(chē)的運(yùn)動(dòng)控制采用語(yǔ)音控制和中斷定時(shí)控制相結(jié)合,通過(guò)語(yǔ)音觸發(fā)小車(chē)動(dòng)作,小車(chē)行駛中可通過(guò)語(yǔ)音指令改變小車(chē)的運(yùn)動(dòng)狀態(tài)。在每一次動(dòng)作觸發(fā)的同時(shí)啟動(dòng)定時(shí)器,如果小車(chē)由于某些原因不能正常的接收語(yǔ)音指令,則定時(shí)時(shí)間一到,中斷服務(wù)程序就會(huì)發(fā)出指令讓小車(chē)停下來(lái)。
3.結(jié)束語(yǔ)
設(shè)計(jì)完成的小車(chē)經(jīng)測(cè)試,遙控有效距離可達(dá) 5米,對(duì)特定使用者語(yǔ)音識(shí)別可達(dá)95%以上,在有效范圍內(nèi)小車(chē)能夠?qū)崟r(shí)響應(yīng)使用者的語(yǔ)音命令,實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)及右轉(zhuǎn),且在每一次狀態(tài)改變時(shí)會(huì)有語(yǔ)音應(yīng)答,增強(qiáng)了互動(dòng)性。在 10秒內(nèi)若沒(méi)有語(yǔ)音命令發(fā)布,小車(chē)會(huì)自動(dòng)停止。
本設(shè)計(jì)的創(chuàng)新點(diǎn)在于采用了具有語(yǔ)音處理功能的凌陽(yáng) SPCE061A單片機(jī)與專(zhuān)用的紅外遙控芯片TX-2B結(jié)合形成遙控電路,將聲控與紅外遙控相結(jié)合,增強(qiáng)了小車(chē)抗噪音能力,也增加了小車(chē)的可控距離,并且系統(tǒng)的實(shí)現(xiàn)方便簡(jiǎn)單。