基于SPCE061A智能小車機(jī)器人語(yǔ)音辨識(shí)系統(tǒng)的研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
隨著科技的發(fā)展,智能設(shè)備大量涌現(xiàn),其中智能汽車作為典型代表之一,對(duì)其進(jìn)行研究開發(fā)也相當(dāng)普遍,當(dāng)然人與這些智能化設(shè)備之間快捷可靠的交互方式很多,其中語(yǔ)音辨識(shí)技術(shù)以其獨(dú)特的趣味性成為了人與智能系統(tǒng)交互方式中的熱點(diǎn)。本文所設(shè)計(jì)的智能小車利用語(yǔ)音辨識(shí)技術(shù),實(shí)現(xiàn)自動(dòng)前進(jìn)、后退、左拐、右拐和停車。
1 智能車語(yǔ)音辨識(shí)系統(tǒng)的開發(fā)平臺(tái)SPCE061A
采用語(yǔ)音辨識(shí)技術(shù)構(gòu)建的智能小車的語(yǔ)音辨識(shí)系統(tǒng)實(shí)現(xiàn)了小車的自動(dòng)行駛,而SPCE061A控制器是構(gòu)建語(yǔ)音辨識(shí)系統(tǒng)的開發(fā)平臺(tái)。
SPCE061A是一款16位獨(dú)具語(yǔ)音特色的控制器,片內(nèi)采用的μ‘nSPTM(microcontroller and signal processor)核心處理器,具有較高的處理速度,能夠完成16位算術(shù)邏輯運(yùn)算、16×16位硬件乘法運(yùn)算和DSP內(nèi)積濾波運(yùn)算、能夠快速處理復(fù)雜的數(shù)字信號(hào),不需要額外的專用語(yǔ)音控制芯片,就能實(shí)現(xiàn)語(yǔ)音的編解碼等,既節(jié)省了設(shè)計(jì)成本,又能滿足一定的控制要求??刂破鞑捎媚K化架構(gòu),集成了ICE(在線仿真)、鎖相環(huán)振蕩器、時(shí)基控制器、7通道10位AD轉(zhuǎn)換器、單通道AD+AGC(自動(dòng)增益)轉(zhuǎn)換器、雙通道10位DA轉(zhuǎn)換器、通用異步通信接口、串行輸入輸出接口、電壓監(jiān)控等模塊,其結(jié)構(gòu)如圖1所示。
2 語(yǔ)音辨識(shí)的基本原理
語(yǔ)音辨識(shí)是建立在對(duì)人的語(yǔ)音交互過程的基礎(chǔ)上,它是一種多維模式辨識(shí)過程,分為訓(xùn)練和辨識(shí)兩個(gè)階段,其基本原理圖如圖2所示。辨識(shí)過程主要包括語(yǔ)音信號(hào)的預(yù)處理、特征提取、語(yǔ)音模型庫(kù)、模式匹配、后處理等幾個(gè)環(huán)節(jié)。預(yù)處理包括濾波、采樣和量化、加窗、端點(diǎn)檢測(cè)、預(yù)加重等過程,然后對(duì)預(yù)處理后的語(yǔ)音信號(hào)樣本進(jìn)行分析處理,從中提取出語(yǔ)音特征信息,建立特征模型;之后開始模式匹配,將輸入語(yǔ)音信號(hào)的特征與已有的特征模型進(jìn)行對(duì)比,如果兩者達(dá)到一定的匹配度,則輸入的語(yǔ)音被辨識(shí)。機(jī)器語(yǔ)音辨識(shí)處理的過程與人對(duì)語(yǔ)音辨識(shí)處理的過程基本上是一致的,目前主流的語(yǔ)音辨識(shí)技術(shù)是基于統(tǒng)計(jì)模式辨識(shí)的基本理論。
3 基于SPCE061A的語(yǔ)音辨識(shí)系統(tǒng)在智能小車上的實(shí)現(xiàn)
智能小車的語(yǔ)音控制系統(tǒng)以SPCE061A控制器和語(yǔ)音輸入電路、語(yǔ)音輸出電路為硬件基礎(chǔ),語(yǔ)音輸入電路如圖3所示,其中VMIC提供傳聲器的電源,VSS是系統(tǒng)的模擬地,VCM為參考電壓,1腳和2腳分別是傳聲器X1的正極、負(fù)極的輸入引腳,連接SPCE061A的MICP、NICN管腳上。當(dāng)對(duì)著傳聲器講話時(shí),1腳和2腳將隨著傳聲器輸入的聲音產(chǎn)生變化的波形,并在SPCE061A的兩個(gè)端口處形成兩路反相的波形,送到SPCE061A控制器內(nèi)部的運(yùn)算放大器進(jìn)行音頻放大,經(jīng)過放大的音頻信號(hào),通過 ADC轉(zhuǎn)化器轉(zhuǎn)化為數(shù)字量,保存到相應(yīng)的寄存器中。語(yǔ)音輸出電路如圖4所示,其中VDDH為參考電壓,VSS是系統(tǒng)的模擬地。音頻信號(hào)由SPCE061A 的DAC引腳輸出送到電路的9端,通過音量電位器R9的調(diào)節(jié)端送到集成音頻功率放大器SPY0030,經(jīng)音頻放大后,音頻信號(hào)從SPY0030輸出經(jīng)J2 端口外接揚(yáng)聲器播放聲音。
SPCE061A配有專用的麥克接口用于語(yǔ)音訓(xùn)練和辨識(shí)階段的語(yǔ)音輸入,16位的定時(shí)/計(jì)數(shù)器用于語(yǔ)音信號(hào)的控制采樣,內(nèi)置的硬件乘法器和內(nèi)積運(yùn)算保證了辨識(shí)算法的運(yùn)行。在軟件方面,凌陽(yáng)科技提供一個(gè)語(yǔ)音辨識(shí)函數(shù)庫(kù)bsrv222SDL.lib,它能夠完成特定人語(yǔ)音的連續(xù)辨識(shí),包括訓(xùn)練函數(shù)和辨識(shí)函數(shù),還可以將訓(xùn)練好的特征模型導(dǎo)入和導(dǎo)出等。
由于語(yǔ)音命令的特征模型要保存到RAM中,所以首先擦除SPCE061A中的RAM,與語(yǔ)音訓(xùn)練做準(zhǔn)備。訓(xùn)練模式啟動(dòng)后,系統(tǒng)播放語(yǔ)音提示,提示用戶語(yǔ)音訓(xùn)練已啟動(dòng),接下來用戶可按照系統(tǒng)提示依次對(duì)各條命令進(jìn)行訓(xùn)練,在訓(xùn)練過程中,如訓(xùn)練成功則由語(yǔ)音提示進(jìn)行下一條命令進(jìn)行訓(xùn)練,若失敗,也會(huì)提示用戶繼續(xù)訓(xùn)練此條語(yǔ)音,全部命令訓(xùn)練完畢后系統(tǒng)將準(zhǔn)備進(jìn)行語(yǔ)音辨識(shí);當(dāng)向控制器發(fā)出語(yǔ)音命令時(shí),聲波通過麥克端口輸入,將相應(yīng)的信號(hào)傳遞到SP-CEO61A處理芯片,經(jīng)編解碼電路和數(shù)字信號(hào)處理后,在芯片中通過相關(guān)程序與預(yù)先植入的語(yǔ)音庫(kù)中的命令進(jìn)行比較辨識(shí),根據(jù)辨識(shí)的結(jié)果進(jìn)行判斷,轉(zhuǎn)換為能被系統(tǒng)辨識(shí)的信號(hào),從而對(duì)被監(jiān)控系統(tǒng)進(jìn)行控制。語(yǔ)音辨識(shí)的過程如圖5所示。
智能小車的語(yǔ)音辨識(shí)系統(tǒng)在SPCE061A上的實(shí)現(xiàn)過程可分為以下五個(gè)階段,如圖6所示。
(1)初始化RAM
語(yǔ)音命令的特征模型被保存在SPCE061A的內(nèi)部
RAM中,如果所需的RAM空間被舊的特征模型數(shù)據(jù)占滿,新特征模型則無法保存到RAM中,利用BSR_DeleteS-DGroup(0)函數(shù)可以把 RAM空間中所有的特征模型刪除,釋放出所需的空間。當(dāng)RAM擦除成功BSR_DeleteS-DGroup(0)函數(shù)返回0,否則返回-1。
(2)調(diào)用訓(xùn)練模塊
語(yǔ)音訓(xùn)練過程通過調(diào)用函數(shù)im BSR_Train(int Corn-mandID,int TraindMode)來完成,CommandID為命令序號(hào),范圍從0x100到0x105,并且對(duì)于每組訓(xùn)練語(yǔ)句都是唯一的。TraindMode為訓(xùn)練次數(shù),為1表示使用者訓(xùn)練一次,為2表示訓(xùn)練者訓(xùn)練兩次。為了增強(qiáng)可靠性,最好訓(xùn)練兩次,否則辨識(shí)的命令就會(huì)傾向于噪音,訓(xùn)練次數(shù)是2時(shí),兩次一定會(huì)有一些差異,所以一定要保證兩次訓(xùn)練結(jié)果盡量接近。當(dāng)int BSR_Train返回0時(shí)表明語(yǔ)音訓(xùn)練成功。
(3)初始化辨識(shí)器
用來定義語(yǔ)音輸入來源,可以通過調(diào)用函數(shù)void BSR_InitRecognizer(int AudioSource)完成,其中參數(shù)Audio-Source為0時(shí)表示MIC語(yǔ)音輸入,為1時(shí)表示LINE_IN模擬電壓輸入。當(dāng)主程序調(diào)用該函數(shù)時(shí),語(yǔ)音辨識(shí)器便打開8kHz采用頻率的FIQ_TMA中斷,并將采樣得到的語(yǔ)音數(shù)據(jù)填入語(yǔ)音辨識(shí)器的數(shù)據(jù)隊(duì)列中。
(4)啟動(dòng)實(shí)時(shí)監(jiān)控
實(shí)時(shí)監(jiān)控是用來觀察語(yǔ)音辨識(shí)是否正常工作,如果辨識(shí)正常則會(huì)產(chǎn)生脈寬為16ms連續(xù)穩(wěn)定方波,否則會(huì)產(chǎn)生不穩(wěn)定的波形,此時(shí)需要?jiǎng)h除命令或優(yōu)化程序,否則將會(huì)丟失語(yǔ)音數(shù)據(jù),產(chǎn)生辨識(shí)出錯(cuò)信息。完成此功能可以通過調(diào)用BSR_EnableCPUIndicator()函數(shù)來完成。
(5)辨識(shí)處理
由函數(shù)int BSR_GetResult()完成語(yǔ)音辨識(shí)處理,當(dāng)無命令辨識(shí)出來時(shí),函數(shù)返回0;辨識(shí)器停止未初始化或辨識(shí)未激活返回-1;當(dāng)辨識(shí)不合格時(shí)返回-2;當(dāng)辨識(shí)出來時(shí)返回命令的序號(hào)。
4 實(shí)驗(yàn)與結(jié)論
實(shí)驗(yàn)中智能小車的正確辨識(shí)率在90%以上,實(shí)驗(yàn)過程中發(fā)現(xiàn)影響小車正常辨識(shí)的因素主要包括周圍環(huán)境的噪音、人與小車的距離等,這些需要在今后的工作改正。需要說明的是在訓(xùn)練過程中中,每條語(yǔ)音命令的長(zhǎng)度不要超過13 s,訓(xùn)練后得到的語(yǔ)音模型保存在RAM中,每條命令占用96Word。由于RAM空間有限,同時(shí)可辨識(shí)的語(yǔ)音命令為5條,為了運(yùn)行復(fù)雜的辨識(shí)程序,必須通過擴(kuò)展必要的存儲(chǔ)芯片完成系統(tǒng)的功能。
這種語(yǔ)音控制的智能小車機(jī)器人不僅可以將來為人服務(wù),稍加擴(kuò)展,就可以在多種不適合人作業(yè)的場(chǎng)合替代人執(zhí)行任務(wù),因此這種語(yǔ)音控制小車機(jī)器人具有重要的學(xué)術(shù)研究?jī)r(jià)值。