Q博士語音識別機器人制作_第1頁
Q博士語音識別機器人制作_第2頁
Q博士語音識別機器人制作_第3頁
Q博士語音識別機器人制作_第4頁
Q博士語音識別機器人制作_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、語音識別機器人制作編輯:robotain 來源:網(wǎng)絡(luò) 2009-12-06 發(fā)表評論 方案簡介說明書1 方案概述語音識別機器人可以充分發(fā)揮學生的創(chuàng)新能力,增加學生的動手實踐能力,增加學生學習單片機的興趣愛好。本方案以SPCE061A 單片機為核心,改裝市場上的玩具機器人,使改裝后的機器人具有語音識別能力,根據(jù)識別的語音完成跳舞等動作,這也是智能機器人的一個方面。1.1 設(shè)計要求利用SPCE061A 單片機、機器人機體(包括2 個用于走路的電機、1 個用于頭部旋轉(zhuǎn)的電機、1 個用于加速1 個用于彈射的電機等),要求語音識別機器人具有下述功能:1. 通過語音命令對其進行控制。2. 兩種跳舞模式。3

2、. 走步功能、轉(zhuǎn)向功能、轉(zhuǎn)頭功能。4. 發(fā)射飛盤功能。1.2 技術(shù)要求1. 要求語音識別機器人可以識別15 條命令。2. 要求語音識別機器人具有2 種跳舞模式。2 方案設(shè)計簡介2.1 硬件框圖系統(tǒng)以SPCE061A 為核心,結(jié)合機器人機體,如下圖所示。 2.2 功能框圖SPCE061A 應用方案SPCE061A 在語音識別機器人中的應用在現(xiàn)代社會機器人這個詞語已經(jīng)不再新鮮,而且形形色色的機器人出現(xiàn)在我們的日常生活中。為了提高廣大單片機愛好者學習單片機的興趣與愛好,凌陽科技 大學計劃教育推廣中心推出了應用SPCE061A 控制的興趣產(chǎn)品語音識別機器人,本文對語音識別機器人的軟硬件制作進

3、行介紹。1 引言為了提高廣大單片機愛好者學習單片機的興趣,凌陽科技大學計劃教育推廣中心推出了應用SPCE061A 作為主控制器,外加電機驅(qū)動電路制作的語音識別機器人。該機器人采用特定人語音識別對機器人進行控制,可以完成向前走、倒退、左轉(zhuǎn)、右轉(zhuǎn)、跳兩首舞曲、向 左瞄準、向右瞄準、發(fā)射、連續(xù)發(fā)射等功能。該語音識別機器人可以大大提高在校學生學習單片機的興趣。2 設(shè)計要求2.1 設(shè)計要求利用SPCE061A 單片機、機器人機體(包括2 個用于走路的電機、1 個用于頭部旋轉(zhuǎn)的電機、1個用于加速1 個用于彈射的電機等),要求語音識別機器人具有下述功能:通過語音命令對其進行控制。兩種跳舞模式。走步功能、轉(zhuǎn)向

4、功能、轉(zhuǎn)頭功能。發(fā)射飛盤功能。2.2 技術(shù)要求要求智能機器人可以識別15 條命令。要求智能機器人具有2 種跳舞模式。模組特性簡介3.1 SPCE061A 特性簡介SPCE061A 是凌陽科技研發(fā)生產(chǎn)的性價比很高的一款十六位單片機,使用它可以非常方便靈活的實現(xiàn)語音的錄放系統(tǒng),該芯片擁有8 路10 位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,并且內(nèi)置有自動增益電路。這為實現(xiàn)語音錄入提供了方便的硬件條件。兩路10 精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外凌陽十六位單片機具有易學易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此 環(huán)境中,支持標準C 語言,可以實現(xiàn)C 語言與凌

5、陽匯編語言的互相調(diào)用,并且,提供了語音錄放的庫函數(shù),只要了解庫函數(shù)的使用,就會很容易完成語音錄放,這些都為軟件開發(fā)提供了方便的條 件:SPCE061A 片內(nèi)還集成了一個ICE(在線仿真電路)接口,使得對該芯片的編程、仿真都變得非常方便,而ICE 接口不占用芯片上的硬件資源,結(jié)合凌陽科技提供的集成開發(fā)環(huán)境(unSP IDE)用戶可以利用它對芯片進行真實的仿真;而程序的下載(燒寫)也是通過該接口進行下載。下圖為SPCE061A 單片機的內(nèi)部結(jié)構(gòu)框圖:3.2 芯片特性簡介SPCE061A 性能簡介:z 16 位unSP 微處理器z 工作電壓(CPU)VDD 為3.03.6V,(I/O)VDDH 為3

6、.05.5Vz CPU 時鐘:0.3249.152MHzz 內(nèi)置2K 字SRAMz 內(nèi)置32K 字FLASHz 可編程音頻處理z 晶體振蕩器z 系統(tǒng)處于備用狀態(tài)下(時鐘處于停止狀態(tài)),耗電僅為2uA/3.6Vz 2 個16 位可編程定時器/計數(shù)器(可自動預置初始計數(shù)值)z 2 個10 位DAC(數(shù)/模轉(zhuǎn)換)輸出通道z 32 位通用可編程輸入/輸出通道z 14 個中斷源可來自定時器A/B、時基、2 個外部時鐘源輸入和鍵喚醒z 具備觸鍵喚醒的功能z 使用凌陽音頻編碼SACM_S480 可以播放壓縮的語音資源z 鎖相環(huán)PLL 振蕩器提供系統(tǒng)時鐘信號z 32768Hz 實時時鐘z 7 通道10 位電壓

7、模/數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模/數(shù)轉(zhuǎn)換器z 聲音模/數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風放大器,并具有自動增益控制(AGC)功能z 具備串行設(shè)備接口z 具備低電壓復位功能和低電壓檢測功能z 內(nèi)置在線仿真電路接口z 具有WatchDog 功能3.3 SPCE061A 精簡開發(fā)板SPCE061A 精簡開發(fā)板(簡稱61 板),是以凌陽16 位單片機SPCE061A 為核心的精簡開發(fā)仿真實驗板,大小相當于一張撲克牌,是“凌陽科技大學計劃”專為大學生、電子愛好者等進行電子實習、課程設(shè)計、畢業(yè)設(shè)計、電子制作及 電子競賽所設(shè)計的,也可作為單片機項目初期研發(fā)使用。61 板除了具備單片機最小系統(tǒng)電路外,還包括有電源

8、電路、音頻電路(含MIC 輸入部分和DAC 音頻輸出部分)、復位電路等,采用電池供電,方便學生隨身攜帶!使學生在掌握軟件的同時,熟悉單片機硬件的設(shè)計制作,鍛煉學生的動手能力,也為單片機 學習者和開發(fā)者創(chuàng)造了一個良好的學習條件和開發(fā)新產(chǎn)品的機會!61 板上有調(diào)試器接口(Probe 接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調(diào)試。61 板上的主要功能模塊如下:SPCE061A 單片機最小系統(tǒng)外圍電路模塊; 電源輸入模塊;音頻電路(包含MIC 輸入、DAC 音頻功放輸出)模塊; 

9、按鍵模塊; I/O 端口接口模塊;調(diào)試、下載接口模塊;下圖為61 板的實物圖:3.4 機器人模組簡介3.4.1 機器人驅(qū)動電路圖機器人驅(qū)動電路圖如所示:機器人驅(qū)動電路采用功率較大的三極管搭成H 橋來驅(qū)動電機,可以實現(xiàn)電機的正向旋轉(zhuǎn)與電機的反向旋轉(zhuǎn)。這些電機包括2 個用于走路的電機與一個頭部轉(zhuǎn)向的電機。另外用了一個三極管驅(qū)動單向旋轉(zhuǎn)的電機,包括加速電機與發(fā)射電機,驅(qū)動電路比較簡單。3.4.2 主要功能通過語音命令對其進行控制;可以跳兩首舞曲;走步功能、轉(zhuǎn)向功能、轉(zhuǎn)頭功能;發(fā)射飛盤功能;3.4.3 機器人實物圖3.4.4 注意事項 機器人在發(fā)射飛盤時不要面向人,避免受傷機器人要

10、輕拿輕放應該避免摔打在安裝電池時注意正負極,否則容易燒壞機器人電機或主控制板4 系統(tǒng)總體方案介紹用61 板來控制機器人,使用了IOB7-IOB15 資源,另外使用了揚聲器。如圖 4-1 所示:61 板與機器人連線圖,如圖 4-2 所示:系統(tǒng)主要由61 板與機器人驅(qū)動電路構(gòu)成。61 板作為整個系統(tǒng)的主控板,驅(qū)動電路驅(qū)動電機。在主控板61 板的控制下完成各個動作。另外增加了特定人語音識別的功能,通過命令來控制機器人,使機器人智能化。5 系統(tǒng)的硬件設(shè)計5.1 SPCE061A 周邊模塊5.1.1 SPCE061A 最小系統(tǒng)SPCE061A 最小系統(tǒng)當中,包括SPCE061A 芯片外圍的基本模塊,有:

11、晶振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復位電路(RESET)、指示燈(LED)等,如下圖所示。本系統(tǒng),有關(guān)SPCE061A 單片機的最小系統(tǒng)的各個模塊都做在61 板當中,讀者可以查閱61 板的電路原理圖。5.1.2 電源模塊SPCE061A 的內(nèi)核供電為3.3V,而I/O 端口可接3.3V 也可以接5V,所以在電源模塊(61 板上)中有一個端口電平選擇跳線,如圖中的J5,下圖為61 板上的電源模塊圖。由于本系統(tǒng)需要的端口高電平為5V,所以圖圖 5-2 當中的J5 跳線需要跳到1 和2 上。5.1.3 放音模塊交通燈換向時有語音提示。放音利用的是SPCE061A 內(nèi)部的DAC,電路如

12、圖 5-3 所示。圖中的SPY0030是凌陽公司的產(chǎn)品。和LM386 相比,SPY0030 還是比較有優(yōu)勢的,比如LM386 工作電壓需在4V 以上,而SPY0030 僅需2.4V (兩顆電池)即可工作;LM386 輸出功率100mW 以下,SPY0030 約700mW。其他特性請參考SPY0030 的數(shù)據(jù)手冊。5.1.4 機器人硬件驅(qū)動電路機器人硬件原理圖如圖 5-4 所示:機器人驅(qū)動電路采用功率較大的三極管搭成H 橋來驅(qū)動電機,可以實現(xiàn)電機的正向旋轉(zhuǎn)與電機的反向旋轉(zhuǎn)。這些電機包括2 個用于走路的電機與一個頭部轉(zhuǎn)向的電機。另外用了一個三極管驅(qū)動單向旋轉(zhuǎn)的電機,包括加速電機與發(fā)射電機,驅(qū)動電路

13、比較簡單。6 所用語音算法介紹6.1 語音識別算法簡介6.1.1 語音識別概述:根據(jù)對說話人的依賴程度,分為:z 特定人語音識別(SD):只能辨認特定使用者的語音,訓練->使用z 非特定人語音識別(SI):可辨認任何人的語音,無須訓練根據(jù)對說話方式的要求,分為:z 孤立詞識別:每次只能識別單個詞匯z 連續(xù)語音識別:用者以正常語速說話,即可識別其中的語句6.1.2 語音識別原理語音識別原理參看下圖:6.1.3 SPCE061A 實現(xiàn)語音識別的步驟SPCE061A 實現(xiàn)語音識別的步驟,分為訓練部分與識別部分,以及在訓練、識別過程中中斷的情況,參考下圖:6.1.4 語音識別API 介紹BSR_

14、InitRecognizer(int AudioSource);初始化識別器BSR_Train(int WordID,int TrainMode);語音訓練BSR_DeleteSDGroup(int SDGroupNo);清除內(nèi)存BSR_PauseRecognizer()暫停識別,但不釋放中斷等資源BSR_ResumeRecognizer()恢復被暫停的識別BSR_GetRecognizerScore()獲得識別結(jié)果的可信度,返回值從-4096 到4096,數(shù)值越大表示輸入語音與特征模型的匹配度越高。BSR_EnableCPUIndicator()開啟CPU 狀態(tài)監(jiān)測功能。開啟該功能后,IOA

15、0 和IOA1 將發(fā)出每16ms 電平變化一次的方波。BSR_DisableCPUIndicator()關(guān)閉CPU 狀態(tài)監(jiān)測功能。BSR_ExportSDWord(int CommandID)使用函數(shù)庫時,會自動創(chuàng)建一個100 Word 的數(shù)組BSR_SDModel100,可以把某條訓練命令的特征模型數(shù)據(jù)導出到這個數(shù)組中。BSR_ImportSDWord(int CommandID)可以把BSR_SDModel 數(shù)組中的數(shù)據(jù)導入為某條語音命的特征模型。unsigned int BSR_SDModel;配合BSR_ExportSDWord(int CommandID)與BSR_ImportSDW

16、ord(int CommandID)函數(shù)使用,此數(shù)組的作用相當于一個暫時的存儲區(qū)。6.2 凌陽音頻概述語音處理大致可以分為A/D 采樣輸入、編碼處理、存儲、解碼處理以及D/A 等;SPCE061 解決方案:將A/D、編碼算法、解碼算法、存儲及D/A 作成相應的模塊,對于每個模塊都有其應用程序接口API,用戶只需了解每個模塊所要實現(xiàn)的功能及其參數(shù)的內(nèi)容,然后調(diào)用該API 函數(shù)即可實現(xiàn)語音處理功能。6.2.1 凌陽音頻壓縮算法的編碼標準表 6-1 是不同音頻質(zhì)量等級的編碼技術(shù)標準(頻響):凌陽音頻壓縮算法處理的語音信號的范圍是200Hz3.4KHz 的電話話音。6.2.2 壓縮分類壓縮分無損壓縮和

17、有損壓縮。無損壓縮一般指:磁盤文件,壓縮比低:2:14:1。而有損壓縮則是指:音視頻文件,壓縮比可高達100:1。凌陽音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種(具體可參見語音壓縮工具一節(jié)內(nèi)容):SACM-A2000:壓縮比為8:,8:1.25,8:1.5SACM-S480: 壓縮比為80:3,80:4.5SACM-S240: 壓縮比為80:1.5按音質(zhì)排序:A2000>S480>S2406.2.3 凌陽常用的音頻形式和壓縮算法1) 波形編碼:sub-band 即SACM-A2000特點:高質(zhì)量、高碼率,適于高保真語音音樂。2) 參數(shù)編碼:聲碼器(vocoder)模型表達,抽取參數(shù)與

18、激勵信號進行編碼。如:SACM-S240。特點:壓縮比大,計算量大,音質(zhì)不高,廉價!3) 混合編碼:CELP 即SACM-S480特點:綜合參數(shù)和波形編碼之優(yōu)點。 本方案采用該編碼方式。除此之外,還具有FM 音樂合成方式即SACM-MS01。6.2.4 凌陽語音的播放、錄制、合成和辨識凌陽的SPCE061A 是16 位單片機,具有DSP 功能,有很強的信息處理能力,最高時鐘頻率可達到49MHz,具備運算速度高的優(yōu)勢等等,這些都無疑為語音的播放、錄放、合成及辨識提供了條件。凌陽壓縮 算法中SACM_A2000、SACM_S480、SACM_S240 主要是用來放音,可用于語音提示,而DVR 則用

19、來錄放音。對于音樂合成MS01,該算法較繁瑣,而且需要具備音樂理論、配器法及和聲學知識,所以對于特別愛好者可以到我們的網(wǎng)站去了解相關(guān)內(nèi)容,這 里只給出它的API 函數(shù)介紹及程序代碼的范例,僅供參考。6.2.5 常用的應用程序接口API 的功能介紹及應用表 6-2 所列出的是凌陽音頻的幾種算法。語音和音樂與我們的生活有著非常密切的關(guān)系,而單片機對語音的控制如錄放音、合成及辨識也廣泛應用在現(xiàn)實生活中。我們知道對于語音處理大致可以分為 A/D、編碼處理、存儲、解碼處理以及D/A 等。然而,通過麥克風輸入所生成的WAVE 文件,其占用的存儲空間很大,對于單片機來說想要存儲大量的信息顯然是不可能的,而凌

20、陽的SPCE061A 提出了解決的方法,即SACM-LIB,該庫將A/D、編碼、解碼、存儲及D/A 作成相應的模塊,對于每個模塊都有其應用程序接口API,所以您只需了解每個模塊所要實現(xiàn)的功能及其參數(shù)的內(nèi)容,然后調(diào)用該API 函數(shù)即可實現(xiàn)該功能,例如在程序中插入語音提示,或連續(xù)播放一段語音或音樂,也可以根據(jù)自己需要的空間或使用范圍選擇適合自己的算法。以下就SACM- S480 算法具體介紹其API 函數(shù)的格式、功能、參數(shù)、返回值、備注。(其它算法可以見附錄)該壓縮算法壓縮比較大80:3, 存儲容量大,音質(zhì)介于A2000 和S240 之間,適用于語音播放, 如“文曲星”詞庫等,所以我們這個方案就采

21、用了該算法。(只介紹程序中用到的函數(shù),其他API 函數(shù)參考凌陽科技大學計劃網(wǎng)站)其相關(guān)API 函數(shù)如下所示:1)【API 格式】C:int SACM_S480_Initial(int Init_Index)ASM:R1= Init_IndexCall F_ SACM_ S480_Initial【功能說明】 SACM_S480 語音播放之前的初始化?!緟?shù)】 Init_Index=0 表示手動方式;Init_Index=1 則表示自動方式?!痉祷刂怠?0:代表語音模塊初始化失敗1:代表初始化成功。【備注】 該函數(shù)用于對定時器、中斷和DAC 等的初始化。2) 【API 格式】 C:void SAC

22、M_S480_ServiceLoop(void)ASM:Call F_ SACM_S480_ServiceLoop【功能說明】 從資源中獲取SACM_S480 語音資料,并將其填入解碼隊列中。【參數(shù)】 無。【返回值】 無。【備注】 播放語音文件中數(shù)據(jù),當出現(xiàn)FF FF FFH 數(shù)據(jù)時便停止播放。3) 【API 格式】C:int SACM_S480_Play(int Speech_Index, int Channel, int Ramp_Set);ASM:R1= Speech _IndexR2= ChannelR3= Ramp_SetCall SACM_S480_Play【功能說明】 播放資源中

23、SACM_S480 語音?!緟?shù)】 Speech _Index 表示語音索引號。Channel:1.通過DAC1 通道播放;2.通過DAC2 通道播放;3.通過DAC1 和DAC2 雙通道播放。Ramp_Set:0.禁止音量增/減調(diào)節(jié);1.僅允許音量增調(diào)節(jié);2.僅允許音量減調(diào)節(jié);3.允許音量增/減調(diào)節(jié)。【返回值】 無。【備注】 SACM_S480 的數(shù)據(jù)率有4.8Kbps7.2Kbps 三種,可在同一模塊的幾種算法中自動選擇一種。Speech_Index 是定義在resource.inc 文件中資源表(T_SACM_S480_SpeechTable)的偏移地址。中斷服務(wù)子程序中F_FIQ_Se

24、rvice_ SACM_S480 必須放在TMA_FIQ 中斷向量上(參見SPCE 的中斷系統(tǒng))。函數(shù)允許TimerA 以所選的的數(shù)據(jù)采樣率(計數(shù)溢出)中斷。4)【API 格式】ASM:Call F_FIQ_Service_ SACM_S480【功能說明】用作SACM_S480 語音背景程序的中斷服務(wù)子程序。通過前臺子程序(自動方式的SACM_S480_ServiceLoop 及手動方式的SACM_S480_Decode)對語音資料進行解碼,然后將其送入DAC通道播放。【參數(shù)】 無。【返回值】 無?!緜渥ⅰ縎ACM_S480 語音背景子程序只有匯編指令形式,且應將此子程序安置在TMA_FIQ

25、中斷源上。7 系統(tǒng)軟件設(shè)計在主函數(shù)中調(diào)用相關(guān)函數(shù)完成特定人語音的訓練,然后再訓練成功后進行語音識別,根據(jù)識別的命令執(zhí)行相關(guān)的操作。程序流程圖如圖 7-1 所示: 判斷是否為第一次下載根據(jù)FLASH 中的標志位來進行判斷。將訓練好的語音模型導出存儲到FLASH中使用庫函數(shù)BSR_ExportSDWord(uiCommandID);進行操作,然后再調(diào)用讀寫FLASH 中的函數(shù)進行。在進行語音識別時,首先讀取FLASH 將語音模型取得,然后調(diào)用BSR_ImportSDWord(uiCommandID);函數(shù)將語音資源載入內(nèi)存。在識別出命令后,執(zhí)行相關(guān)動作,相關(guān)動 作操作就是操作電機的正向或

26、反向旋轉(zhuǎn)同時配合延時與播放聲音組合起來形成不同的動作。7.1 擦除Flash 模塊在程序中按照操作SPCE061A 的flash 的步驟擦寫flash,在程序中寫成3 個函數(shù)用于操作flash,如下:F_FlashWrite1Word()語法:void F_FlashWrite1Word(int addr,int Value)描述:寫一個字到FLASH 中參數(shù):1、被寫數(shù)據(jù)的存儲地址2、被寫數(shù)據(jù)返回:無F_FlashWrite()語法:F_FlashWrite(int sector,int &num,int size)描述:順序?qū)懚鄠€字參數(shù):1、被寫數(shù)據(jù)的起始地址2、被寫數(shù)據(jù)3、寫數(shù)據(jù)的數(shù)量返回:無F_FlashErase()語法:void F_FlashErase(sector)描述:擦除256

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論