【正文】
能識別主人的看門狗:在本系統(tǒng)的基礎(chǔ)上擴(kuò)充對說話者的識別功能,并將軟件硬件化,集成在芯片上。聲音識別器將飛行員的講話聲音與貯存的聲音相比較,只要聲音一致,飛機(jī)就能自動地完成各種動作,從而化險為夷。然而隨著微電子技術(shù)、計算機(jī)技術(shù)、及傳感器技術(shù)的迅速發(fā)展,現(xiàn)今聲控技術(shù)應(yīng)用廣泛,這種嶄露頭角的聲控技術(shù),給嚴(yán)重傷殘人的生活帶來了極大的方便。 借助于SPCE061A的語音特色,我們設(shè)計出了這款語音控制小車。它不僅運算能力強(qiáng),而且處理速度快,單周期最高可以達(dá)到49MHz。專門的語音處理芯片也比較多,像ISD系列、PM50系列等,但是專門的語音處理芯片功能比較單一,想在語音之外的其他方面應(yīng)用基本是不可能的。s daily life. At present, the voiceactivated technology has been used in many fields. For example, voiceactivated phone. Only if you called out the names you want and it automatically called the telephone. There are also voiceactivated washing machines, televisions, puters and other equipments.This article gives a detail to the voiceactivated car. In hardware design, the paper use Sunplus SPCE061A as the control of core. On the software, we use C language programming for voice training and recognition. It has the following features: According to recorded the voice mand to control the car to start, stop,turn right , and turn left.First of all ,papers confirm the system of program, and then describe the unit39。在軟件方面,利用C語言進(jìn)行編程,進(jìn)行語音的“訓(xùn)練”和“識別”。目前,聲控技術(shù)已在很多領(lǐng)域得到使用。比如聲控手機(jī)、聲控洗衣機(jī)、電視機(jī)、電腦等設(shè)備。設(shè)計出具有如下功能的語音聲控小車:能夠根據(jù)錄制的語音命令來控制小車的前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn)的功能。s software, hardware as well as introduce the main ponents of the situation.Key words: SPCE061A,Speech Recognition,F(xiàn)ullbridge ,driver,Trolley目錄 摘要 IAbstract II目錄 III前言 11 緒論 2 2 2 3 32語音控制原理 5 5 7 起止點識別 7 特征提取 8. 3識別判斷 83方案論證及硬件選擇 10 方案論證 10 采用DSP+FPGA方案 10 采用凌陽61方案 10 系統(tǒng)的硬件方案 11 系統(tǒng)控制方案 12 12 SPCE061A芯片特性簡介 12——61 板 142 61 板輸入/輸出(I/O)接口 163 音頻輸入/輸出接口 164 在線調(diào)試器(PROBE)和EZPROBE 接口. 16 174 系統(tǒng)硬件設(shè)計 18 SPCE061A 最小系統(tǒng) 18 19 音頻電路 19 數(shù)摸轉(zhuǎn)換電路 21 按鍵、LED和復(fù)位電路 22 下載線接口電路和在線調(diào)制電路 22 MCU連接電路 23 24 24 25 26 動力電機(jī)驅(qū)動電路 27 295 系統(tǒng)軟件設(shè)計 30 系統(tǒng)的總體程序流程 30: 31: 31: 33: 34: 34 程序中需要說明的幾個問題 35 366系統(tǒng)調(diào)試 37 硬件連接 37 硬件模塊連線圖 37 功能說明 38 代碼下載 38 39 聲控小車 40 重新訓(xùn)練 417結(jié)論 428致謝 439參考文獻(xiàn) 44附件 45IV前言語音處理技術(shù)是一門新興的技術(shù),它不僅包括語音的錄制和播放,還涉及語音的壓縮編碼和解碼,語音的識別等各種處理技術(shù)。 SPCE061A是一種16位μ39。SPCE061A內(nèi)嵌32K字的FLASH程序存儲器以及2K的SRAM。小車不僅具有前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本功能;同時配合SPCE061A的語音特色,實現(xiàn)語音控制功能。傷殘病人用聲音就可以打開門窗、窗簾、電視機(jī)、電燈等。那么能不能做到“君子動口不動手” 呢?本文介紹用凌陽單片機(jī)61A設(shè)計并制作的一套基于語音識別技術(shù)的聲控小車。將芯片置于防盜門上,使之可以完成主人叫門即開門的功能。聲控技術(shù)雖然是一項比較先進(jìn)的技術(shù)。2.、對環(huán)境的適應(yīng)。各人的發(fā)音不盡相同,因此該系統(tǒng)還限于單人識別。使用了“前、后、左、右、?!蔽鍌€字作為小車行駛的指令。語音控制小車的主要功能: 1. 可以通過簡單的I/O操作實現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)功能; 2. 配合SPCE061A的語音特色,利用系統(tǒng)的語音播放和語音識別資源,實現(xiàn)語音控制的功能; 3. 可以在行走過程中聲控改變小車運動狀態(tài); 4. 在超出語音控制范圍時能夠自動停車。從圖中我們可以看出語音識別一般分為2個步驟:第一步是系統(tǒng)“學(xué)習(xí)”或“訓(xùn)練”階段,這一個階段的任務(wù)是建立識別基本單元的聲學(xué)模型以及進(jìn)行文法分析的語言模型,即構(gòu)建參考模式庫;第二步是“識別”或“測試”階段,根據(jù)識別系統(tǒng)的類型選擇能夠滿足要求的識別方法,采用語音分析方法分析出這種識別方法所要求的語音特征參數(shù),按照一定的準(zhǔn)則和測度與參考模式庫中的模型進(jìn)行比較,通過判決得出結(jié)果。假設(shè):(1)參考模板特征矢量序列為;(2)輸入語音特征矢量序列為m≠ n ,那么動態(tài)時間規(guī)整是要尋找時間規(guī)整函數(shù),它把輸入模板的時間軸17.非線性地映射到參考模板的時間軸m ,并且該滿足: (1)式中:是第n幀輸入矢量和第m幀參考矢量的距離,D是相應(yīng)于最優(yōu)時間規(guī)整下二模板的距離測度。調(diào)整窗口函數(shù)r的引入使它的使用范圍更加廣泛。 起止點識別語音信號處理基于語音短時穩(wěn)定性, 當(dāng)采樣頻率為8 kH z時, 可取128個樣點為一幀(短時段) , 幀長16 ms。取連續(xù)10幀背景噪聲數(shù)據(jù), 計算出IZCT (過零率閾)記為)及ITL(能量閾) 記為 :式中:、’為過零率的均值和標(biāo)準(zhǔn)差。 a ( k )為LPC特征; 。這樣盡管發(fā)音速度不同, 但音韻特征的相對累計特征差基本不變。然后, 從后向前依次檢查t( j ),凡大于平均特征差的剔除, 直到小于平均特征差為止,以去除語意少的結(jié)束段。再分段線性化, 將兩個關(guān)鍵幀之間的特征值差取平均, 作為最后的語音特征向量。語音識別追求的主要指標(biāo)為高識別率、實時性和大詞匯量;而對于一個語音識別系統(tǒng),還應(yīng)考慮軟硬件設(shè)計簡單、價格低廉、外圍控制靈活、人機(jī)交互便捷等特點。 常需要外接A /D 轉(zhuǎn)換芯片;引腳為3. 3 V,與單片機(jī)、FPGA、F lash 存儲器等連接時,要考慮電平匹配。它是數(shù)字語音識別應(yīng)用領(lǐng)域產(chǎn)品中的一種比較經(jīng)濟(jì)的選擇。在電機(jī)的驅(qū)動方面,采用全橋驅(qū)動技術(shù),利用四個I/O端口分為兩組分別實現(xiàn)兩個電機(jī)的正傳、反轉(zhuǎn)和停三態(tài)運行。 SPCE061A芯片特性簡介SPCE061A是一種十六位單片機(jī),使用它可以非常方便靈活的實現(xiàn)語音的錄放,該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動增益電路。另外還提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就可以很容易的完成語音的錄放、識別等功能,這些都為軟件開發(fā)提供了方便的條件。micro。micro?!痭SP?為核心的SPCE061A微控制器是適用于數(shù)字語音識別應(yīng)用領(lǐng)域產(chǎn)品的一種最經(jīng)濟(jì)的選擇。61板”除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、復(fù)位電路、ICE 電路、音頻電路(含 MIC 輸入部分和 DAC 音頻輸出部分)等。3V 供電電路PLL鎖向環(huán)外部電路Power-電源指示燈Sleep-睡眠指示燈RESET復(fù)位電路K4復(fù)位按鍵PROBE在線調(diào)試器串行5 針接口S5EZPROBE 和PROBE 切換的撥斷開關(guān)J1J3耳機(jī)插孔和兩針喇叭插針DAC一路音頻輸出電路,采用SPY0030 集成音頻放大器MIC麥克風(fēng)輸入電路OSC32768 晶振電路VREFA/D 轉(zhuǎn)換外部參考電壓輸入接口R/C芯片其他外圍電阻、電容電路非懸浮輸入又可以設(shè)置為上拉輸入或是下拉輸入。SPY0030 是凌陽的芯片,相當(dāng)于LM386,但是比386 音質(zhì)好。這樣,就不需要再用仿真器和編程器了,只要按圖 3 所示將其連接好,就可以通過它在PC 機(jī)上調(diào)試程序、在線仿真、最后將程序下載到芯片中,完成程序的燒寫。語音控制:通過語音觸發(fā)小車動作。SPY0029 是凌陽公司設(shè)計的電壓調(diào)整 IC,采用 CMOS 工藝,具有靜態(tài)電流低、驅(qū)動能力強(qiáng)、線性調(diào)整出色等特點, VDDH3 為 SPCE061A的 I/O電平參考,如果該點接 SPCE061A(PLCC84 封裝,下面的介紹中當(dāng)出現(xiàn) SPCE061A的引腳描述時,均指此封裝的芯片)的 51 腳,可使 I/O輸出高電平為 ;VDDP為PLL鎖相環(huán)電源, 接SPCE061A的7腳; VDD和VDDA分別為數(shù)字電源與模擬電源, 分別接SPCE061A的15腳和36腳; AVSS1是模擬地, 接SPCE061A的24腳; VSS是數(shù)字地, 接SPCE061A的38腳; AVSS2接音頻輸出電路的 AVSS2。 圖 音頻電路音頻電路由音頻輸出和音頻輸入兩部分組成。 音頻電路音頻輸入部分如圖 ,MICP和MICN將隨著MIC產(chǎn)生的波形變化,并在兩個端口處形成兩路反相的波形,再經(jīng)過兩級運放放大,把放大的語音信號交給ADC轉(zhuǎn)換為數(shù)字量,這個時候就可以通過單片機(jī)編程對這些數(shù)據(jù)進(jìn)行處理,比如說進(jìn)行語音數(shù)據(jù)壓縮、語音識別等。 數(shù)模轉(zhuǎn)換電路 按鍵、LED和復(fù)位電路此電路主要是對電源和睡眠指示作用以及復(fù)位重新訓(xùn)練小車等作用如圖示。其中前面兩個車輪由前輪電機(jī)控制,在連桿和支點作用下控制前輪左右擺動,來調(diào)節(jié)小車的前進(jìn)方向。直走:由小車的結(jié)構(gòu)分析,在自然狀態(tài)下,前輪在彈簧作用下保持中間狀態(tài),這是只要后輪電機(jī)正轉(zhuǎn)小車就會前進(jìn)。右轉(zhuǎn):前輪電機(jī)反轉(zhuǎn),后輪電機(jī)正轉(zhuǎn),這時小車就會在前后輪共同作用下朝右側(cè)前進(jìn)。系統(tǒng)供電由電池提供,控制板直接采用電池供電(VCC),然后經(jīng)二極管D1后產(chǎn)生61板電源(VCC_61),通過61板的Vio跳線產(chǎn)生61板的端口電源(V1)。如果讓 2 導(dǎo)通 4 關(guān)斷,如圖 ,此時電流將會流經(jīng) Q負(fù)載、Q2 組成的回路,電機(jī)正轉(zhuǎn) 如果讓 2 關(guān)斷 4 導(dǎo)通,此時電流將會流經(jīng) Q負(fù)載、Q4 組成的回路,電機(jī)反轉(zhuǎn)。在實際應(yīng)用時注意避免出現(xiàn)橋臂短路的情況,這會給電路帶來很大的危害,嚴(yán)重的會燒毀電路。前輪電機(jī)控制前輪的方向,后輪電機(jī)控制后輪的驅(qū)動。必要時還要有對應(yīng)的輸入端設(shè)置和PWM 端口設(shè)置等。如果辨識結(jié)果為動作指令小車會語音告知相應(yīng)動作并執(zhí)行該動作,在運動過程中可以通過呼叫小車的名字使小車停下來。::當(dāng)程序檢測到訓(xùn)練標(biāo)志位BS_Flag內(nèi)容為0xffff,就會要求操作者對它進(jìn)行訓(xùn)練操作,訓(xùn)練操作的過程如圖 :訓(xùn)練采用兩次訓(xùn)練獲取結(jié)果的方式,以訓(xùn)練名字為例:小車首先會提示:給我取個名字吧, 這時你可以告訴它一個名字 (比如Jack) ; 然后它會提示: 請再說一遍, 這時再次告訴它名字 (Jack) ,如果兩次的聲音差別不大,小車就能夠成功的建立模型,名稱訓(xùn)練成功;如果沒能夠成功的建立模型,小車會告知失敗的原因并要求重新訓(xùn)練。 //訓(xùn)練名稱 while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) 。 //訓(xùn)練第4個動作}: 語音識別流程如圖 :首先獲取辨識器的辨識結(jié)果,判斷是否有語音觸發(fā),如果有語音觸發(fā)則會返回識別結(jié)果的ID號,ID號對應(yīng)名稱或者對應(yīng)不同的動作。 //辨識結(jié)果寄存 Result = BSR_GetResult()。 case COMMAND_GO_ID: //識別出第一條命令 GoAhead()。 case COMMAND_LEFT_ID: //識別出第三條命令 TurnLeft()。 default: break。 倒車:由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:只要IOB9 為高電平,IOB8,IOB10,IOB11全部為低電平即可實現(xiàn)小車的倒退。 右轉(zhuǎn):由小車的結(jié)構(gòu)原理分析和驅(qū)動電路分析知:小車右轉(zhuǎn)需要兩個條件:,這時對應(yīng)的 I/O 狀態(tài)為:IOBIOB11 為高電平,IOBIOB10 為低電平。 //提示 *P_IOB_Data=0x0100。}//=============================================================// 語法格式: void BackUp()。 //以下為中斷定時操作 __asm(int fiq,irq)。 *P_IOB_Data=0x0900。 //以