機器人的語音識別技術(shù)_第1頁
機器人的語音識別技術(shù)_第2頁
機器人的語音識別技術(shù)_第3頁
機器人的語音識別技術(shù)_第4頁
機器人的語音識別技術(shù)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、機器人的語音識別技術(shù)摘要1897年,MG馬可尼所完成的無線通信試驗就是在固定站與一艘拖船之間進行的,距離為18海里。標志著通信進入了一個新的時代,隨著社會的進步,科技發(fā)展也日益興盛起來。電子技術(shù)和智能自動化的發(fā)展更是為人們的日常生活和工業(yè)生產(chǎn)提供了極大的方便。人們可以通過一系列的信息傳遞來直接或間接的控制機械的運轉(zhuǎn)。讓機器能夠聽懂人類的語言并且能夠按照人的口頭命令行動,從而實現(xiàn)人際交流一直以來都是人類的一個夢想。本文所研究的機器人語音識別和控制,對于服務(wù)于機器人的應(yīng)用領(lǐng)域具有重要的現(xiàn)實意義。通過單片機可以很方便的實現(xiàn)語音控制技術(shù),本次設(shè)計是利用凌陽單片機SPCE061A的語音識別控制特性, 根

2、據(jù)語音識別的基本原理,對智能機器人進行語音控制,使其根據(jù)人的指令做出左轉(zhuǎn)、右轉(zhuǎn)、前進、后退、跳舞、發(fā)射飛碟等相應(yīng)的動作。由于材料等各方面的限制,只能以理論的形式出現(xiàn)。關(guān)鍵詞:語音識別,語音控制(嵌入式語音的識別技術(shù)),智能機器人,語音壓縮算法目錄1 緒論.31.1 本次課題的由來1.2 設(shè)計目的及任務(wù)及設(shè)計理念1.3 聲控機器人的發(fā)展前景 1.4 整體方案的規(guī)劃2 嵌入式語音的識別技術(shù)11 2.1 模式匹配原理的引入 2.2 語音識別技術(shù)總括3 軟件設(shè)計.20 3.1 主程序的設(shè)計 3.2 語音壓縮算法的研究 3.3 關(guān)鍵模塊的設(shè)計4 功能的實現(xiàn).29 4.1 機器人預(yù)想功能的總體實現(xiàn)5 設(shè)計

3、總結(jié).301 緒論1.1 設(shè)計課題由來單片機在現(xiàn)實生活中越來越多的被應(yīng)用于工業(yè)生產(chǎn)和生活娛樂當(dāng)中。自從人類能夠使用機器以來,就有一個夢想,那就是能夠與機器人進行語言交流,讓機器人按照人的指令去完成相應(yīng)的操作。語音識別技術(shù)就是讓機器人通過語音識別把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高新技術(shù)。語音識別技術(shù)所涉及的領(lǐng)域包括:信號處理、模式識別、概率論和信息論、發(fā)聲機理和人工智能等等。都屬于電子信息專業(yè)的基本課程。隨著社會的進步和日益發(fā)展,智能自動化系統(tǒng)逐漸被應(yīng)用到服務(wù)行業(yè)。于是“機器人”也就應(yīng)運而生了,但是現(xiàn)在機器人的發(fā)展還處在一個不成熟的階段,它還不能象人們想象的那樣做出各種各樣的動作來服務(wù)于人類。

4、隨著社會的發(fā)展,人們的物質(zhì)文化生活水平也有了較大的提高,為了滿足人們愈來愈高的要求,機器人的深入和普及也越來越受到人們的關(guān)注。人有五官,機器人的視覺電子攝象已經(jīng)隨著安全防護的發(fā)展有了一定的發(fā)展,平常我們在樓宇監(jiān)控系統(tǒng)可以看到簡單的機器人視覺系統(tǒng)(電子攝象及處理),數(shù)碼相機等。聲音的控制除了我們平常所遇到的聲控?zé)簦覀兒茈y再找到別的。語音這種人類最簡單、最自然、最方便和最有效的交換信息的方式,在機器人上的應(yīng)用還較少?;趩纹瑱C和外圍接口技術(shù),我們可以大致畫出語音控制的基本框圖。中央處理系統(tǒng)機器人控制顯示器語音處理系統(tǒng)圖1.1 最原始的機器人語音控制用語音控制來操作機器人代替煩瑣的鍵盤輸入。和機器

5、通話實現(xiàn)人機對話是十分誘人的,具有廣闊的發(fā)展前景,是機器人人工智能的重要標志。圖1.2 改進的機器人語音識別框圖1.2 設(shè)計的目的及任務(wù)我們想象中的理想機器人應(yīng)該是能夠象人類一樣聽懂自然語言,可以在燥聲情況下,一定的頻率范圍內(nèi)。語言是由不同的人的聲帶所發(fā)出的,人們辨別它主要是通過聲波的變換來判斷的,這就是我們平常所說的音變。這樣就使基本模型的音界變的不甚明確,于是在明確的電腦語言處理下就變的比較困難。在人們普通的對話中,有時候人類自己也很難辨別對方模糊的語音,不同的詞語聽起來會非常相似,這就是我們平常所說的語音的模糊性。在語音的控制方面,首先要對燥聲環(huán)境,非特定人,語音模糊和音變等一系列事實的

6、困難進行過濾和處理,這就需要大量的數(shù)據(jù)處理,這樣分配給聽覺的時間就非常有限。于是普通的單片機就不能很好的滿足這樣一系列復(fù)雜的要求,這就需要在已有語音識別技術(shù)的研究基礎(chǔ)上,配合功能強大的凌陽16位單片機SPCE061A,對機器人的語音識別和特定命令對應(yīng)行為能力的結(jié)合進行實現(xiàn),是一個實踐性和操作性要求較強的實用性課題。機器人語音識別是語音識別在機器人領(lǐng)域的應(yīng)用,它的最終目的是讓機器人聽懂人們口述的語言,進而對口述語言中包含的要求或詢問做出正確的動作反應(yīng)或語言反應(yīng),從而形成一個良好的,自然的“人機通信系統(tǒng)”。以進一步推動服務(wù)機器人的發(fā)展和應(yīng)用。因此,研究機器人的語音識別,對于服務(wù)機器人的普及與應(yīng)用意

7、義重大。未來科技的發(fā)展趨勢是在以人為本的前提下,更多地實現(xiàn)機器設(shè)備的自動化和智能化,讓機器為人服務(wù),代替人們進行繁重的體力勞動和高危險工程。借助機器之力進行社會建設(shè)已經(jīng)成為了一個必然的選擇。隨之而來的發(fā)展與和諧生活的命題必然會將人機交流的重要性提到一個新的高度,成為服務(wù)型機器人投入社會的關(guān)鍵所在。設(shè)計理念:在整個設(shè)計過程中,我們本著一切向能實現(xiàn)理想機器人的方向靠攏。但是本次設(shè)計還缺乏一定的實踐。1.3 聲控機器人的發(fā)展前景機器人是多學(xué)科交叉的產(chǎn)物,集成了運動學(xué)與動力學(xué)、機械設(shè)計與制造、計算機硬件與軟件、控制與傳感器、模式識別與人工智能等學(xué)科領(lǐng)域的先進理論與技術(shù)。同時,它又是一類典型的自動化機器

8、,是專用自動機器、數(shù)控機器的延伸與發(fā)展。當(dāng)前,社會需求和技術(shù)進步都對機器人向智能化發(fā)展提出了新的要求。語音信號處理技術(shù)就是使用數(shù)字信號處理技術(shù)對于因信號進行處理,處理的目的使用得到的某些參數(shù)進行高效傳輸、存儲、語音增強、語音合成和語音識別。我國的語音識別系統(tǒng)的研究起步比較晚,但是也取得了很好的成績,研究水平也從實驗室逐步走向?qū)嵱茫瑥?987年開始執(zhí)行國家863計劃后,國家863智能計算機專家組為語音識別技術(shù)研究專門理想,每兩年滾動一次。我國PC機語音識別技術(shù)的研究水平已經(jīng)基本上與國外同步,在漢語語音識別技術(shù)上還有自己的特點和優(yōu)勢,但是獨立開發(fā)的專用漢語語音識別芯片還是較少,多數(shù)都是與國外研究機

9、構(gòu)合作開發(fā)研制的??梢哉f,語音識別的研究已經(jīng)得到了全世界范圍的重視,是引領(lǐng)未來科學(xué)發(fā)展方向的關(guān)鍵技術(shù)之一。因此,研究機器人的語音識別,開發(fā)實用的機器人語音識別系統(tǒng),對于服務(wù)機器人的普及與應(yīng)用意義重大。1.4 整體方案的規(guī)劃本課題是基于SPCE061A的智能機器人語音識別的實現(xiàn),最終目的是形成一個較好的人機交流環(huán)境,使機器人能夠聽懂經(jīng)過訓(xùn)練的人的口頭命令,并能夠按照命令進行相應(yīng)的動作。由多帶通濾波器及現(xiàn)行匹配電路構(gòu)成的專用IC。專用IC是以8位或16位單片機為計算核心,外加A/D轉(zhuǎn)換,D/A轉(zhuǎn)換及存儲器。由DSP組成的語音識別系統(tǒng),一般由定點16位DSP,外加A/D轉(zhuǎn)換,D/A轉(zhuǎn)換,以及ROM、

10、RAM、FALSH等存儲器組成。由人工神經(jīng)網(wǎng)絡(luò)構(gòu)成的語音識別專用芯片。SOC是將MCU或DSP、A/D、D/A、RAM、ROM以及預(yù)放、功放等電路集成在一個芯片上,只要加上極少的電源供電等外圍電路,就可以實現(xiàn)語音識別、語音合成及語音回放等功能。SPCE061A是一種集成度很高的單片機,它將MCU、A/D、D/A、RAM、ROM集成在一塊芯片上,同時具有16*16位的乘法運算和內(nèi)積運算功能,CPU最高時鐘頻率可達到49MHz。本課題的主要實現(xiàn)過程是:外部語音命令通過轉(zhuǎn)換裝置輸入到系統(tǒng)內(nèi)部,經(jīng)過語音識別程序的處理轉(zhuǎn)化為機器人可識別的觸發(fā)命令然后觸發(fā)相應(yīng)子程序進行相關(guān)動作。動作的實現(xiàn)方法是:凌陽61

11、板向控制不同端口送高低電平以控制置于機器人內(nèi)部不同位置的電機的運轉(zhuǎn),調(diào)用延時,根據(jù)需要使各個部分電機相互配合,完成要求的動作,從而實現(xiàn)機器人的語音控制。本設(shè)計綜合考慮SPCE061A單片機的特性以及機器人行動模式來進行設(shè)計,具體模塊如圖2.1所示。整個設(shè)計分為主控模塊、語音模塊、電機模塊等,各個模塊分別完成,然后進行結(jié)合,實現(xiàn)機器人的語音識別。具體過程是:首先進行機器人的語音訓(xùn)練,我們這次設(shè)計采用的是特定人語音識別,每一個命令發(fā)布者都必須在發(fā)布命令之前對機器人進行命令的語音訓(xùn)練。這樣做有一個好處,非特定人不能命令機器人進行動作。整個硬件設(shè)計部分以保持機器人外部靈活性為前提,在機器人各個部分內(nèi)置

12、電機,利用三極管的通斷特性來設(shè)計電路,完成硬件電路的設(shè)計和組裝。具體電路如下:左右腿、脖子電機驅(qū)動模塊(摘抄)加速及發(fā)射電機輸入/輸出接口嵌入式語音的識別技術(shù)2.1 模式匹配原理的引入嵌入式語音識別系統(tǒng)都采用了模式匹配的原理,語音識別一般分為兩個步驟。第一步是系統(tǒng)“學(xué)習(xí)”或“訓(xùn)練”階段。這一階段的任務(wù)是建立識別基本單元的聲學(xué)模型以及進行文法分析的語言模型,即構(gòu)建參考模式庫。第二是“識別”或“測試”階段。根據(jù)識別系統(tǒng)的類型選擇能夠滿足要求的一種識別方法,采用語音分析方法分析出這種識別方法所需求的語音特征參數(shù),按照一定的準則和測度與參考模式的模型進行比較,通過判決得出結(jié)果。 特征提取經(jīng)過預(yù)處理后的

13、語音信號,要對其進行特征提取,即特征參數(shù)分析。該過程就是從原始語音信號中抽取能夠反映語音本質(zhì)的特征參數(shù),形成特征矢量序列。目前語音識別所用的特征參數(shù)主要有兩種類型:線性預(yù)測倒譜系數(shù)(LPCC)和美爾頻標倒譜系數(shù)(MFCC)。LPCC系數(shù)主要模擬人的發(fā)聲模型,為考慮人耳的聽覺特性。它對元音有較好的描述能力,而對輔音描述能力差。其優(yōu)點是計算量小,比較徹底地去掉了語音產(chǎn)生過程中的激勵信息,易于實現(xiàn)。MFCC系數(shù)考慮到了人聽覺特性,并具有很高的抗噪聲能力,但因為提取MFCC參數(shù)要在頻域處理,計算傅立葉變換將耗費大量寶貴的計算資源。因此,嵌入式語音識別系統(tǒng)中一般都選用LPCC系數(shù)。語音特征提取是分幀提取

14、的,每幀特征參數(shù)一般構(gòu)成一個矢量,因此,語音特征是一個矢量序列。該序列的數(shù)據(jù)率一般可能過高,不便于其后的進一步處理,為此,有必要采用很有效的數(shù)據(jù)壓縮技術(shù)方法對數(shù)據(jù)進行壓縮。矢量量化就是一種很好的數(shù)據(jù)壓縮技術(shù)。參考模式庫參考模式庫是將一個或多個說話者的多次重復(fù)的語音參數(shù)經(jīng)過訓(xùn)練得到的。它是聲學(xué)參數(shù)模板。建立參考模式庫是在系統(tǒng)使用前獲得并存儲起來的。參考模式庫的建立過程稱為訓(xùn)練過程。模式匹配模式匹配是將輸入的待識別的語音特征參數(shù)同訓(xùn)練得到的參考語音模式進行逐一比較分析,獲得最優(yōu)匹配的參考模式便是識別結(jié)果。目前常用的語音識別算法主要有:動態(tài)時間規(guī)整(DTW)、隱馬爾可夫(HMM)理論、矢量量化(VQ

15、)技術(shù)。2.2 語音信號識別技術(shù)語音識別的過程就是將用麥克風(fēng)或電話捕捉到的聲波信號轉(zhuǎn)化成一組詞語的過程。被準確識別的詞語The recognized words can be the final results, as for applications such as commands & control , data entry , and document preparation .可以得出最后的結(jié)果,進入響應(yīng),如指揮與控制系統(tǒng),數(shù)據(jù)輸入和文件的準備工作。They can also serve as the input to further linguistic processing in

16、 order to achieve speech understanding, a subject covered in section也可以作為輸入,為進一步的語言加工服務(wù),以達到講話被理解的目的。矢量量化的基本原理將若干個標量數(shù)據(jù)組成一個矢量(或者是從一幀語音數(shù)據(jù)中提取的特征矢量)在多維空間給與整體量化,從而可以在信息量損失較小的情況下壓縮數(shù)據(jù)量。矢量量化有效地應(yīng)用了矢量中各元素之間的相關(guān)性,因此可以比標量量化有更好的壓縮效果。當(dāng)給矢量量化器輸入一個任意矢量進行矢量量化時,矢量量化器首先判斷它屬于哪個子空間的代表矢量。也就是說,矢量量化過程就是用代表的過程,或者說把量化成了Y。 式中,量化

17、器函數(shù)。矢量量化器和碼書的設(shè)計矢量量化器和碼書設(shè)計方法是采用遞推算法,這個算法就是LBG算法。整個算法實際上就是最佳設(shè)計和最佳碼書兩個條件的反復(fù)迭代過程,即由初始碼書尋找最佳碼書的迭代過程。它從對初始碼書進行迭代優(yōu)化開始,一直到系統(tǒng)性能滿足要求或不再有明顯的改進為止。隱馬爾可夫模型隱馬爾可夫模型(Hidden Markov Models,簡稱為 HMM),作為語音信號的一種統(tǒng)計模型,今天正在語音處理的各個領(lǐng)域中獲得廣泛的應(yīng)用。大約 100 年前,數(shù)學(xué)家和工程師們就已經(jīng)知道馬爾可夫鏈了。但是,只是在近三十幾年里,它才被用到語音信號處理中來,其主要原因在于當(dāng)時缺乏一種能使該模型參數(shù)與語音信號處理達

18、到最佳匹配的有效方法。直到 20 世紀 60 年代后期,才有人提出了這種匹配方法,而有關(guān)它的理論基礎(chǔ),是在 1970 年前后由 Baum 等人建立起來的,隨后由 CMU 的 Baker 和 IBM 的 Jelinek 等人將其應(yīng)用到語音識別之中。由于 Bell實驗室 Rabiner 等人在 20 世紀 80 年代中期對 HMM 的深入淺出的介紹,才逐漸使HMM 為世界各國從事語音信號處理的研究人員所了解和熟悉,進而成為公認的一個研究熱點。近幾十年來,隱馬爾可夫模型技術(shù)無論是在理論上或是實踐上都有許多進展。其基本理論和各種實用算法是現(xiàn)代語音識別等的重要基礎(chǔ)之一。HMM的基本參數(shù) 對于語音識別,H

19、MM 可以用下面六個模型參數(shù)來定義,即:MS,O,A,B,FS:模型中狀態(tài)的有限集合,即模型由幾個狀態(tài)組成。設(shè)有 N 個狀態(tài),S |i = 1, 2,N。記 t 時刻模型所處狀態(tài)為 ,顯然 (, , )。O:輸出的觀測值符號的集合,即每個狀態(tài)對應(yīng)的可能的觀察值數(shù)目。記 M個觀察值為 ,,記 t 時刻觀察到的觀察值為 ,其中 (, )。A:狀態(tài)轉(zhuǎn)移概率的集合。所有轉(zhuǎn)移概率可以構(gòu)成一個轉(zhuǎn)移概率矩陣,即:A= 其中 是從狀態(tài) 到狀態(tài) 轉(zhuǎn)移時的轉(zhuǎn)移概率,1i,jN且有 01, 。B:輸出觀測值概率的集合。B(k),其中(k)是從狀態(tài) 到狀態(tài)轉(zhuǎn)移時觀測值符號 k 的輸出概率。根據(jù) B 可將 HMM 分為

20、連續(xù)型HMM和離散型 HMM 等。(離散型 HMM)(連續(xù)型 HMM):系統(tǒng)初始狀態(tài)概率的集合,表示初始狀態(tài)是的概率,即: F:系統(tǒng)終了狀態(tài)的集合。這里需要說明的是,嚴格地說 Markov 模型是沒有終了狀態(tài)的,只是在語音識別里用的 Markov 模型要設(shè)定終了狀態(tài)。這樣,可以記一個 HMM 為 M=S,O,A,B,F(xiàn),為了便于表示,常用下面的形式表示一個 HMM,即簡寫為 M=A,B,。所以形象地說,HMM 可以分為兩部分,一個是 Markov 鏈,由、A 描述,產(chǎn)生的輸出為狀態(tài)序列。另一個是一個隨機過程,由 B 描述,產(chǎn)生的輸出為觀察值序列,T 為觀察值時間長度。隱馬爾可夫模型的基本算法欲

21、使所建立的 HMM 對于實際應(yīng)用有效,下面三個問題必須加以解決:(1) 識別問題:給定觀察符號序列 0=o1,o2, ,oT和模型 M=A,B,如何快速有效地計算觀察符號序列的輸出概率 P(O|M);(2) 尋找與給定觀察字符序列對應(yīng)的最佳的狀態(tài)序列:給定觀察字符號序列和輸出該符號序列的模型 M= A,B,如何有效地確定與之對應(yīng)的最佳的狀態(tài)序列。即估計出模型產(chǎn)生觀察字符號序列時最有可能經(jīng)過的路徑。它可以被認為是所有可能的路徑中,概率最大的路徑。這種算法的指導(dǎo)思想就是概率最大的路徑是最有可能經(jīng)過的路徑,即最佳的狀態(tài)序列路徑;(3) 模型訓(xùn)練問題:實際上是一個模型參數(shù)估計問題,即對于初始模型和給定

22、用于訓(xùn)練的觀察符號序列 0=o1,o2, ,oT 如何調(diào)整模型 M= A,B,的參數(shù),使得輸出概率 P (O M)最大18。下面結(jié)合討論這三個問題的解法,介紹 HMM 的基本算法。前向-后向算法前向-后向算法(Forward-Backward,簡稱為 F-B 算法)是用來計算給定一個觀察值序列 0=o1,o2, ,oT 以及一個模型 M= A,B,時,由模型 M 產(chǎn)生出 O 的概率 P (O|M)的。設(shè) S1 是初始狀態(tài),SN 是終了狀態(tài),則前向-后向算法可以介紹如下:1前向算法前向算法即按輸出觀察值序列的時間,從前向后遞推計算輸出概率。首先說明下列符號的定義:0=o1,o2, ,oT輸出的觀

23、察符號序列P(O|M)給定模型 M 時,輸出符號序列 O 的概率從狀態(tài)到狀態(tài)的轉(zhuǎn)移概率從狀態(tài)到狀態(tài)發(fā)生轉(zhuǎn)移時輸出的概率輸出部分符號序列 o1,o2, ,ot并且到達狀態(tài) 的概率,即前向概率 由上面符號的定義,則可由下面的遞推公式計算得到:(1)初始化 (2)遞推公式 (t=1,2,T;i,j=1,2,N)(3)最后結(jié)果 P( O|M)= t 時刻的等于 t-1 時刻的所有狀態(tài)的之和,當(dāng)然如果當(dāng)狀態(tài) 到狀態(tài)沒有轉(zhuǎn)移時 =0。這樣在 t 時刻對所有狀態(tài) (j=1,2, N)的都計算一次,則每個狀態(tài)的前向概率都更新了一次,然后進入 t+1 時刻的遞推過程。2.后向算法與前向算法類似,后向算法即按輸出

24、觀察值序列的時間,從后向前遞推計算出概率的方法。首先說明下列符號的定義:0=o1,o2, ,oT輸出的觀察符號序列P(O|M)給定模型 M 時,輸出符號序列 O 的概率從狀態(tài) 到狀態(tài) 的轉(zhuǎn)移概率從狀態(tài) 到狀態(tài) 發(fā)生轉(zhuǎn)移時輸出ot的概率從狀態(tài) 開始到狀態(tài) 結(jié)束輸出部分符號序列ot+1,ot+2,oT 的概率,即后向概率。可由下面的遞推公式計算得到:(1)初始化 (2)遞推公式(t=T,T+1,,1;i,j=1,2, ,N)(3)最后結(jié)果 P(O|M)= 根據(jù)定義的前向和后向概率,有如下關(guān)系成立:維特比(Viterbi)算法如何有效地確定與之對應(yīng)的最佳的狀態(tài)序列。這可以由另一個 HMM 的基本算法

25、 Viterbi算法來解決。Viterbi 算法解決了給定一個觀察值序列和一個模型 M=A,B,時,在最佳意義上確定一個狀態(tài)序列的問題。這里討論的最佳意義上的狀態(tài)序列,是指使 P(S,O/M)最大時確定的狀態(tài)序列。即 HMM 輸出一個觀察值序列 時,可能通過的狀態(tài)序列路徑有多種,這里面使輸出概率最大的狀態(tài)序列就是我們的所求。Viterbi 算法可以敘述如下:(1)初始化 (j1) (2)遞推公式 (t=1,2,,T;i,j=1,2,,N) (3)最后結(jié)果 在這個遞推公式中,每一次使 最大的狀態(tài) i 組成的狀態(tài)就是所求的最佳狀態(tài)序列。所以利用 Viterbi 算法求取最佳狀態(tài)序列的步驟如下: (

26、1) 給每個狀態(tài)準備一個數(shù)組變量,初始化時令初始狀態(tài) S1 的數(shù)組變量為 1,其他狀態(tài)的數(shù)組為 0;(2)根據(jù) t 時刻輸出的觀察符號 ot 計算 (j=1,2,,N) 當(dāng)狀態(tài) 到狀態(tài)沒有轉(zhuǎn)移時;設(shè)計一個符號數(shù)組變量,稱為最佳狀態(tài)序列寄存器,利用這個最佳狀態(tài)序列寄存器把每一次使最大的狀態(tài) i 保存下來;(3)tT 時轉(zhuǎn)移到 (2),否則執(zhí)行(4);(4)把這時的終了狀態(tài)寄存器內(nèi)的值取出,則: 輸出最佳狀態(tài)序列寄存器的值,即為所求的最佳狀態(tài)序列。軟件設(shè)計3.1 主程序的設(shè)計語音識別系統(tǒng)功能的實現(xiàn)大部分是由軟件來完成的。因此,語音識別系統(tǒng)的軟件設(shè)計是十分復(fù)雜的。本次程序的設(shè)計是依靠C語言和匯編語言

27、共同完成的主程序流程圖。在主程序中開始是對RAM存儲器進行清除,這為存放提取的語音信號的特征矢量和模板庫做準備。播放第一條提示音是為了提醒用戶系統(tǒng)的語音訓(xùn)練己啟動,現(xiàn)在可以進行訓(xùn)練。訓(xùn)練首先是此系統(tǒng)的觸發(fā)名稱,即系統(tǒng)的名字。接下來就是依次對各條命令進行訓(xùn)練。在訓(xùn)練過程中,如訓(xùn)練成功,則有語音提示進行下一條的訓(xùn)練:如出現(xiàn)訓(xùn)練失敗也會提示用戶繼續(xù)訓(xùn)練此條語音。直到全部命令訓(xùn)練完畢后,系統(tǒng)將準備進行語音識別。識別初始化是確定語音輸入來源于A/D轉(zhuǎn)換器的MIC通道。播放開始識別的提示音是為了讓用戶明確現(xiàn)在可以向系統(tǒng)下達命令了。系統(tǒng)接到命令后就開始進行識別,如識別成功,則系統(tǒng)會按命令執(zhí)行,如識別失敗,系

28、統(tǒng)也會通過語音提示用戶。系統(tǒng)的主程序是依靠調(diào)用各子程序來完成的,而系統(tǒng)的子程序主要有語音訓(xùn)練程序、語音識別程序、語音播放程序及機器人運動程序。其中語音部分主要依靠語音壓縮程序來完成。3.2 語音壓縮算法的研究壓縮編碼的目的是通過對資料的壓縮,達到高效率存儲和轉(zhuǎn)換資料的結(jié)果,即在保證一定聲音質(zhì)量的條件下,以最小的資料率來表達和傳送聲音信息。壓縮編碼是必要的,實際應(yīng)用中,未經(jīng)壓縮編碼的音頻資料量很大,直接進行傳播或存儲是不現(xiàn)實的,所以要通過對信號趨勢的預(yù)測和冗余信息處理,進行資料的壓縮,這樣就可以使用較少的資源建立更多的信息。常用的壓縮編碼有波形編碼、參數(shù)編碼和混合編碼 。 用于SPCE系列芯片語

29、音功能的語音壓縮與解壓縮算法有SACM_A2000, SACM_S480, 和SACM_S240,其對應(yīng)的語音壓縮編碼率類型分別為16 Kb/s,20 Kb/s,24 Kb/s;418 Kb/s,712 Kb/s;214 Kb/s。本設(shè)計用到的壓縮算法有SACM_A2000和SACM_S480。SACM_A2000算法SACM_A2000屬于波形編碼,該壓縮算法壓縮比較?。?:1),所以具有高質(zhì)量、高碼率的特點,適用于高保真音樂和語音。SACM_S480算法SACM_S480屬于混合編碼,該壓縮算法壓縮比較大,為80:3,其存儲容量大,音質(zhì)介于A2000和S240之間,適用于語音播放。此算法具

30、體實現(xiàn)過程如下:在PC 機上錄好提示語音,經(jīng)壓縮工具壓縮處理后存儲到單片機ROM里, SPCE061A 將提示語音解壓縮后送D/A 還原語音,提示操作結(jié)果。采用SACM(Sunplus Audio Coding method ,音頻編碼算法) 將PC 機上已錄制的8 K,16 位音頻文件壓縮為二進制文件,再加入用戶程序,存儲在程序存儲器中,播放時將其解壓縮,并以8 K的頻率送D/A 還原出聲音。語音播放程序包括播放程序和中斷服務(wù)程序。播放程序初始化A/D ,定時器TimerA 和音量,從ROM 里取出預(yù)先壓縮好的語音數(shù)據(jù),解壓縮后存在播放隊列里。中斷服務(wù)程序定時地從播放序列中讀數(shù)據(jù),送D/A

31、轉(zhuǎn)換后驅(qū)動喇叭發(fā)音。播放程序如下:SACM_S480_Initial (Init_Index); 初始化A/D ,Timer,SACM_S480_Volume (Volumn_Index); 初始化音量SACM_S480_Play(Speech_Index,Channel,Ramp_Set);播放一條語音while(SACM_S480_Status()&0x0001)=1)SACM_S480_ServiceLoop(); 播放服務(wù)函數(shù)SACM_S480_Stop();停止播放主播放函數(shù)SACM_S480_Play( int Speech_Index ,int Channel ,int Ramp

32、_Set) 有3 個參數(shù): Speech_Index 表示播放索引號;Channel 表示播放通道(1通過DAC1 通道播放,2通過DAC2 通道播放,3通過DAC1和DAC2通道播放);Ramp Set 表示消除開始放音時的“?!甭?。3.3 關(guān)鍵模塊的設(shè)計在進行語音識別之前,首先要進行特定人的語音訓(xùn)練,讓機器人能夠聽懂人的命令,也就是語音模板的建立。子程序中重要的語句是訓(xùn)練函數(shù)BSR_Teain(int CommandID,int TrainMode),其中CommandID是命令序號, TrainMode代表訓(xùn)練次數(shù)。訓(xùn)練結(jié)果出現(xiàn)不同情況就會出現(xiàn)不同的返回值,然后程序會針對相應(yīng)值進行相應(yīng)的

33、處理。整個程序的工作原理是這樣的:當(dāng)被調(diào)用的時候,首先通過語音播放程序播放一條提示音,提示用戶開始進行語音訓(xùn)練。然后等待用戶說出命令,當(dāng)接收到語音的時候, 通過BSR_Teain程序,系統(tǒng)會生成一個res值,不同的res的值代表不同的訓(xùn)練結(jié)果,當(dāng)訓(xùn)練不成功,系統(tǒng)提示用戶繼續(xù)訓(xùn)練,成功則返回。主程序只用到了整個子程序的返回值以判斷是否繼續(xù)進行。每條程序訓(xùn)練兩遍。語音識別程序語音訓(xùn)練完成后,要想使機器人能夠聽懂人發(fā)出的命令,還應(yīng)該對語音命令進行語音識別,將語音信號轉(zhuǎn)化成單片機可識別的代碼,這一步也是整個設(shè)計的關(guān)鍵之所在。子程序中最重要的函數(shù)是BSR_GetResult(),它的作用是從辨識器中獲取

34、數(shù)據(jù)。根據(jù)識別情況返回不同數(shù)值。當(dāng)?shù)玫秸Z音數(shù)據(jù)的時候,經(jīng)過機器判斷會產(chǎn)生一個res值,當(dāng)沒有命令被識別出來的時候,res=0;識別器停止未初始化或識別未激活時,res=-1;識別不合格的時候,res=-2;識別出來時返回命令的序號。在進入語音識別階段,首先要對辨識器進行初始化,并且啟動實時監(jiān)控,以隨時接收用戶指令。然后播放語音識別提示音提示用戶開始發(fā)布命令。若識別不出來,則經(jīng)過一個定時程序判斷是否超時。超時就直接退出子程序,否則繼續(xù)識別。若識別成功則將識別出來的命令序號返給主程序。語音播放程序 本次設(shè)計采用了SACM_A2000和SACM_S480兩種語音壓縮算法進行語音壓縮和播放,但是由于兩種語音算法僅僅是語音質(zhì)量和壓縮大小等方面有所不同,基本思想還是相同的,所以它們可以“共享”一個流程圖(如圖4.5)。當(dāng)收到播放信號的時候,子程序首先停止主程序的辨識,并對語音播放系統(tǒng)進行初始化。然后提取一個壓縮語音數(shù)據(jù)進行播放。判斷是否播放結(jié)束,如果沒有,就繼續(xù)讀取壓縮數(shù)據(jù),解壓縮并添加到播放序列。整個語音播放結(jié)束后,開啟辨識器和實時監(jiān)控并退出子程序返回到調(diào)用點。機器人運動程序機器人的運動主要依靠內(nèi)置電機的正反運轉(zhuǎn),所以機器人的運動程序雖然

溫馨提示

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

評論

0/150

提交評論