版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、機(jī)器人的語音識別技術(shù)摘要1897年,mg馬可尼所完成的無線通信試驗就是在固定站與一艘拖船之間進(jìn)行的,距離為18海里。標(biāo)志著通信進(jìn)入了一個新的時代,隨著社會的進(jìn)步,科技發(fā)展也日益興盛起來。電子技術(shù)和智能自動化的發(fā)展更是為人們的日常生活和工業(yè)生產(chǎn)提供了極大的方便。人們可以通過一系列的信息傳遞來直接或間接的控制機(jī)械的運(yùn)轉(zhuǎn)。讓機(jī)器能夠聽懂人類的語言并且能夠按照人的口頭命令行動,從而實現(xiàn)人際交流一直以來都是人類的一個夢想。本文所研究的機(jī)器人語音識別和控制,對于服務(wù)于機(jī)器人的應(yīng)用領(lǐng)域具有重要的現(xiàn)實意義。通過單片機(jī)可以很方便的實現(xiàn)語音控制技術(shù),本次設(shè)計是利用凌陽單片機(jī)spce061a的語音識別控制特性, 根
2、據(jù)語音識別的基本原理,對智能機(jī)器人進(jìn)行語音控制,使其根據(jù)人的指令做出左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、后退、跳舞、發(fā)射飛碟等相應(yīng)的動作。由于材料等各方面的限制,只能以理論的形式出現(xiàn)。關(guān)鍵詞:語音識別,語音控制(嵌入式語音的識別技術(shù)),智能機(jī)器人,語音壓縮算法目錄1 緒論.31.1 本次課題的由來1.2 設(shè)計目的及任務(wù)及設(shè)計理念1.3 聲控機(jī)器人的發(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 機(jī)器人預(yù)想功能的總體實現(xiàn)5 設(shè)計
3、總結(jié).301 緒論1.1 設(shè)計課題由來單片機(jī)在現(xiàn)實生活中越來越多的被應(yīng)用于工業(yè)生產(chǎn)和生活娛樂當(dāng)中。自從人類能夠使用機(jī)器以來,就有一個夢想,那就是能夠與機(jī)器人進(jìn)行語言交流,讓機(jī)器人按照人的指令去完成相應(yīng)的操作。語音識別技術(shù)就是讓機(jī)器人通過語音識別把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高新技術(shù)。語音識別技術(shù)所涉及的領(lǐng)域包括:信號處理、模式識別、概率論和信息論、發(fā)聲機(jī)理和人工智能等等。都屬于電子信息專業(yè)的基本課程。隨著社會的進(jìn)步和日益發(fā)展,智能自動化系統(tǒng)逐漸被應(yīng)用到服務(wù)行業(yè)。于是“機(jī)器人”也就應(yīng)運(yùn)而生了,但是現(xiàn)在機(jī)器人的發(fā)展還處在一個不成熟的階段,它還不能象人們想象的那樣做出各種各樣的動作來服務(wù)于人類。
4、隨著社會的發(fā)展,人們的物質(zhì)文化生活水平也有了較大的提高,為了滿足人們愈來愈高的要求,機(jī)器人的深入和普及也越來越受到人們的關(guān)注。人有五官,機(jī)器人的視覺電子攝象已經(jīng)隨著安全防護(hù)的發(fā)展有了一定的發(fā)展,平常我們在樓宇監(jiān)控系統(tǒng)可以看到簡單的機(jī)器人視覺系統(tǒng)(電子攝象及處理),數(shù)碼相機(jī)等。聲音的控制除了我們平常所遇到的聲控?zé)簦覀兒茈y再找到別的。語音這種人類最簡單、最自然、最方便和最有效的交換信息的方式,在機(jī)器人上的應(yīng)用還較少?;趩纹瑱C(jī)和外圍接口技術(shù),我們可以大致畫出語音控制的基本框圖。中央處理系統(tǒng)機(jī)器人控制顯示器語音處理系統(tǒng)圖1.1 最原始的機(jī)器人語音控制用語音控制來操作機(jī)器人代替煩瑣的鍵盤輸入。和機(jī)器
5、通話實現(xiàn)人機(jī)對話是十分誘人的,具有廣闊的發(fā)展前景,是機(jī)器人人工智能的重要標(biāo)志。圖1.2 改進(jìn)的機(jī)器人語音識別框圖1.2 設(shè)計的目的及任務(wù)我們想象中的理想機(jī)器人應(yīng)該是能夠象人類一樣聽懂自然語言,可以在燥聲情況下,一定的頻率范圍內(nèi)。語言是由不同的人的聲帶所發(fā)出的,人們辨別它主要是通過聲波的變換來判斷的,這就是我們平常所說的音變。這樣就使基本模型的音界變的不甚明確,于是在明確的電腦語言處理下就變的比較困難。在人們普通的對話中,有時候人類自己也很難辨別對方模糊的語音,不同的詞語聽起來會非常相似,這就是我們平常所說的語音的模糊性。在語音的控制方面,首先要對燥聲環(huán)境,非特定人,語音模糊和音變等一系列事實的
6、困難進(jìn)行過濾和處理,這就需要大量的數(shù)據(jù)處理,這樣分配給聽覺的時間就非常有限。于是普通的單片機(jī)就不能很好的滿足這樣一系列復(fù)雜的要求,這就需要在已有語音識別技術(shù)的研究基礎(chǔ)上,配合功能強(qiáng)大的凌陽16位單片機(jī)spce061a,對機(jī)器人的語音識別和特定命令對應(yīng)行為能力的結(jié)合進(jìn)行實現(xiàn),是一個實踐性和操作性要求較強(qiáng)的實用性課題。機(jī)器人語音識別是語音識別在機(jī)器人領(lǐng)域的應(yīng)用,它的最終目的是讓機(jī)器人聽懂人們口述的語言,進(jìn)而對口述語言中包含的要求或詢問做出正確的動作反應(yīng)或語言反應(yīng),從而形成一個良好的,自然的“人機(jī)通信系統(tǒng)”。以進(jìn)一步推動服務(wù)機(jī)器人的發(fā)展和應(yīng)用。因此,研究機(jī)器人的語音識別,對于服務(wù)機(jī)器人的普及與應(yīng)用意
7、義重大。未來科技的發(fā)展趨勢是在以人為本的前提下,更多地實現(xiàn)機(jī)器設(shè)備的自動化和智能化,讓機(jī)器為人服務(wù),代替人們進(jìn)行繁重的體力勞動和高危險工程。借助機(jī)器之力進(jìn)行社會建設(shè)已經(jīng)成為了一個必然的選擇。隨之而來的發(fā)展與和諧生活的命題必然會將人機(jī)交流的重要性提到一個新的高度,成為服務(wù)型機(jī)器人投入社會的關(guān)鍵所在。設(shè)計理念:在整個設(shè)計過程中,我們本著一切向能實現(xiàn)理想機(jī)器人的方向靠攏。但是本次設(shè)計還缺乏一定的實踐。1.3 聲控機(jī)器人的發(fā)展前景機(jī)器人是多學(xué)科交叉的產(chǎn)物,集成了運(yùn)動學(xué)與動力學(xué)、機(jī)械設(shè)計與制造、計算機(jī)硬件與軟件、控制與傳感器、模式識別與人工智能等學(xué)科領(lǐng)域的先進(jìn)理論與技術(shù)。同時,它又是一類典型的自動化機(jī)器
8、,是專用自動機(jī)器、數(shù)控機(jī)器的延伸與發(fā)展。當(dāng)前,社會需求和技術(shù)進(jìn)步都對機(jī)器人向智能化發(fā)展提出了新的要求。語音信號處理技術(shù)就是使用數(shù)字信號處理技術(shù)對于因信號進(jìn)行處理,處理的目的使用得到的某些參數(shù)進(jìn)行高效傳輸、存儲、語音增強(qiáng)、語音合成和語音識別。我國的語音識別系統(tǒng)的研究起步比較晚,但是也取得了很好的成績,研究水平也從實驗室逐步走向?qū)嵱?,?987年開始執(zhí)行國家863計劃后,國家863智能計算機(jī)專家組為語音識別技術(shù)研究專門理想,每兩年滾動一次。我國pc機(jī)語音識別技術(shù)的研究水平已經(jīng)基本上與國外同步,在漢語語音識別技術(shù)上還有自己的特點(diǎn)和優(yōu)勢,但是獨(dú)立開發(fā)的專用漢語語音識別芯片還是較少,多數(shù)都是與國外研究機(jī)
9、構(gòu)合作開發(fā)研制的。可以說,語音識別的研究已經(jīng)得到了全世界范圍的重視,是引領(lǐng)未來科學(xué)發(fā)展方向的關(guān)鍵技術(shù)之一。因此,研究機(jī)器人的語音識別,開發(fā)實用的機(jī)器人語音識別系統(tǒng),對于服務(wù)機(jī)器人的普及與應(yīng)用意義重大。1.4 整體方案的規(guī)劃本課題是基于spce061a的智能機(jī)器人語音識別的實現(xiàn),最終目的是形成一個較好的人機(jī)交流環(huán)境,使機(jī)器人能夠聽懂經(jīng)過訓(xùn)練的人的口頭命令,并能夠按照命令進(jìn)行相應(yīng)的動作。由多帶通濾波器及現(xiàn)行匹配電路構(gòu)成的專用ic。專用ic是以8位或16位單片機(jī)為計算核心,外加a/d轉(zhuǎn)換,d/a轉(zhuǎn)換及存儲器。由dsp組成的語音識別系統(tǒng),一般由定點(diǎn)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是一種集成度很高的單片機(jī),它將mcu、a/d、d/a、ram、rom集成在一塊芯片上,同時具有16*16位的乘法運(yùn)算和內(nèi)積運(yùn)算功能,cpu最高時鐘頻率可達(dá)到49mhz。本課題的主要實現(xiàn)過程是:外部語音命令通過轉(zhuǎn)換裝置輸入到系統(tǒng)內(nèi)部,經(jīng)過語音識別程序的處理轉(zhuǎn)化為機(jī)器人可識別的觸發(fā)命令然后觸發(fā)相應(yīng)子程序進(jìn)行相關(guān)動作。動作的實現(xiàn)方法是:凌陽61
11、板向控制不同端口送高低電平以控制置于機(jī)器人內(nèi)部不同位置的電機(jī)的運(yùn)轉(zhuǎn),調(diào)用延時,根據(jù)需要使各個部分電機(jī)相互配合,完成要求的動作,從而實現(xiàn)機(jī)器人的語音控制。本設(shè)計綜合考慮spce061a單片機(jī)的特性以及機(jī)器人行動模式來進(jìn)行設(shè)計,具體模塊如圖2.1所示。整個設(shè)計分為主控模塊、語音模塊、電機(jī)模塊等,各個模塊分別完成,然后進(jìn)行結(jié)合,實現(xiàn)機(jī)器人的語音識別。具體過程是:首先進(jìn)行機(jī)器人的語音訓(xùn)練,我們這次設(shè)計采用的是特定人語音識別,每一個命令發(fā)布者都必須在發(fā)布命令之前對機(jī)器人進(jìn)行命令的語音訓(xùn)練。這樣做有一個好處,非特定人不能命令機(jī)器人進(jìn)行動作。整個硬件設(shè)計部分以保持機(jī)器人外部靈活性為前提,在機(jī)器人各個部分內(nèi)置
12、電機(jī),利用三極管的通斷特性來設(shè)計電路,完成硬件電路的設(shè)計和組裝。具體電路如下:左右腿、脖子電機(jī)驅(qū)動模塊(摘抄)加速及發(fā)射電機(jī)輸入/輸出接口嵌入式語音的識別技術(shù)2.1 模式匹配原理的引入嵌入式語音識別系統(tǒng)都采用了模式匹配的原理,語音識別一般分為兩個步驟。第一步是系統(tǒng)“學(xué)習(xí)”或“訓(xùn)練”階段。這一階段的任務(wù)是建立識別基本單元的聲學(xué)模型以及進(jìn)行文法分析的語言模型,即構(gòu)建參考模式庫。第二是“識別”或“測試”階段。根據(jù)識別系統(tǒng)的類型選擇能夠滿足要求的一種識別方法,采用語音分析方法分析出這種識別方法所需求的語音特征參數(shù),按照一定的準(zhǔn)則和測度與參考模式的模型進(jìn)行比較,通過判決得出結(jié)果。 特征提取經(jīng)過預(yù)處理后的
13、語音信號,要對其進(jìn)行特征提取,即特征參數(shù)分析。該過程就是從原始語音信號中抽取能夠反映語音本質(zhì)的特征參數(shù),形成特征矢量序列。目前語音識別所用的特征參數(shù)主要有兩種類型:線性預(yù)測倒譜系數(shù)(lpcc)和美爾頻標(biāo)倒譜系數(shù)(mfcc)。lpcc系數(shù)主要模擬人的發(fā)聲模型,為考慮人耳的聽覺特性。它對元音有較好的描述能力,而對輔音描述能力差。其優(yōu)點(diǎn)是計算量小,比較徹底地去掉了語音產(chǎn)生過程中的激勵信息,易于實現(xiàn)。mfcc系數(shù)考慮到了人聽覺特性,并具有很高的抗噪聲能力,但因為提取mfcc參數(shù)要在頻域處理,計算傅立葉變換將耗費(fèi)大量寶貴的計算資源。因此,嵌入式語音識別系統(tǒng)中一般都選用lpcc系數(shù)。語音特征提取是分幀提取
14、的,每幀特征參數(shù)一般構(gòu)成一個矢量,因此,語音特征是一個矢量序列。該序列的數(shù)據(jù)率一般可能過高,不便于其后的進(jìn)一步處理,為此,有必要采用很有效的數(shù)據(jù)壓縮技術(shù)方法對數(shù)據(jù)進(jìn)行壓縮。矢量量化就是一種很好的數(shù)據(jù)壓縮技術(shù)。參考模式庫參考模式庫是將一個或多個說話者的多次重復(fù)的語音參數(shù)經(jīng)過訓(xùn)練得到的。它是聲學(xué)參數(shù)模板。建立參考模式庫是在系統(tǒng)使用前獲得并存儲起來的。參考模式庫的建立過程稱為訓(xùn)練過程。模式匹配模式匹配是將輸入的待識別的語音特征參數(shù)同訓(xùn)練得到的參考語音模式進(jìn)行逐一比較分析,獲得最優(yōu)匹配的參考模式便是識別結(jié)果。目前常用的語音識別算法主要有:動態(tài)時間規(guī)整(dtw)、隱馬爾可夫(hmm)理論、矢量量化(vq
15、)技術(shù)。2.2 語音信號識別技術(shù)語音識別的過程就是將用麥克風(fēng)或電話捕捉到的聲波信號轉(zhuǎn)化成一組詞語的過程。被準(zhǔn)確識別的詞語可以得出最后的結(jié)果,進(jìn)入響應(yīng),如指揮與控制系統(tǒng),數(shù)據(jù)輸入和文件的準(zhǔn)備工作。they can also serve as the input to further linguistic processing in order to achieve speech understanding, a subject covered in section也可以作為輸入,為進(jìn)一步的語言加工服務(wù),以達(dá)到講話被理解的目的。矢量量化的基本原理將若干個標(biāo)量數(shù)據(jù)組成一個矢量(或者是從一幀語音數(shù)據(jù)中
16、提取的特征矢量)在多維空間給與整體量化,從而可以在信息量損失較小的情況下壓縮數(shù)據(jù)量。矢量量化有效地應(yīng)用了矢量中各元素之間的相關(guān)性,因此可以比標(biāo)量量化有更好的壓縮效果。當(dāng)給矢量量化器輸入一個任意矢量進(jìn)行矢量量化時,矢量量化器首先判斷它屬于哪個子空間的代表矢量。也就是說,矢量量化過程就是用代表的過程,或者說把量化成了y。 式中,量化器函數(shù)。矢量量化器和碼書的設(shè)計矢量量化器和碼書設(shè)計方法是采用遞推算法,這個算法就是lbg算法。整個算法實際上就是最佳設(shè)計和最佳碼書兩個條件的反復(fù)迭代過程,即由初始碼書尋找最佳碼書的迭代過程。它從對初始碼書進(jìn)行迭代優(yōu)化開始,一直到系統(tǒng)性能滿足要求或不再有明顯的改進(jìn)為止。隱
17、馬爾可夫模型隱馬爾可夫模型(hidden markov models,簡稱為 hmm),作為語音信號的一種統(tǒng)計模型,今天正在語音處理的各個領(lǐng)域中獲得廣泛的應(yīng)用。大約 100 年前,數(shù)學(xué)家和工程師們就已經(jīng)知道馬爾可夫鏈了。但是,只是在近三十幾年里,它才被用到語音信號處理中來,其主要原因在于當(dāng)時缺乏一種能使該模型參數(shù)與語音信號處理達(dá)到最佳匹配的有效方法。直到 20 世紀(jì) 60 年代后期,才有人提出了這種匹配方法,而有關(guān)它的理論基礎(chǔ),是在 1970 年前后由 baum 等人建立起來的,隨后由 cmu 的 baker 和 ibm 的 jelinek 等人將其應(yīng)用到語音識別之中。由于 bell實驗室 r
18、abiner 等人在 20 世紀(jì) 80 年代中期對 hmm 的深入淺出的介紹,才逐漸使hmm 為世界各國從事語音信號處理的研究人員所了解和熟悉,進(jìn)而成為公認(rèn)的一個研究熱點(diǎn)。近幾十年來,隱馬爾可夫模型技術(shù)無論是在理論上或是實踐上都有許多進(jìn)展。其基本理論和各種實用算法是現(xiàn)代語音識別等的重要基礎(chǔ)之一。hmm的基本參數(shù) 對于語音識別,hmm 可以用下面六個模型參數(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ù)目。記
19、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 分為連續(xù)型hmm和離散型 hmm 等。(離散型 hmm)(連續(xù)型 hmm):系統(tǒng)初始狀態(tài)概率的集合,表示初始狀態(tài)是的概率,即: f:系統(tǒng)終了狀態(tài)的集合。這里需要說明的是,嚴(yán)格地說 markov 模型是沒有終了狀態(tài)的,只是在語音識別里用的 markov 模型要設(shè)定終了狀態(tài)。這
20、樣,可以記一個 hmm 為 m=s,o,a,b,f,為了便于表示,常用下面的形式表示一個 hmm,即簡寫為 m=a,b,。所以形象地說,hmm 可以分為兩部分,一個是 markov 鏈,由、a 描述,產(chǎn)生的輸出為狀態(tài)序列。另一個是一個隨機(jī)過程,由 b 描述,產(chǎn)生的輸出為觀察值序列,t 為觀察值時間長度。隱馬爾可夫模型的基本算法欲使所建立的 hmm 對于實際應(yīng)用有效,下面三個問題必須加以解決:(1) 識別問題:給定觀察符號序列 0=o1,o2, ,ot和模型 m=a,b,如何快速有效地計算觀察符號序列的輸出概率 p(o|m);(2) 尋找與給定觀察字符序列對應(yīng)的最佳的狀態(tài)序列:給定觀察字符號序列
21、和輸出該符號序列的模型 m= a,b,如何有效地確定與之對應(yīng)的最佳的狀態(tài)序列。即估計出模型產(chǎn)生觀察字符號序列時最有可能經(jīng)過的路徑。它可以被認(rèn)為是所有可能的路徑中,概率最大的路徑。這種算法的指導(dǎo)思想就是概率最大的路徑是最有可能經(jīng)過的路徑,即最佳的狀態(tài)序列路徑;(3) 模型訓(xùn)練問題:實際上是一個模型參數(shù)估計問題,即對于初始模型和給定用于訓(xùn)練的觀察符號序列 0=o1,o2, ,ot 如何調(diào)整模型 m= a,b,的參數(shù),使得輸出概率 p (o m)最大18。下面結(jié)合討論這三個問題的解法,介紹 hmm 的基本算法。前向-后向算法前向-后向算法(forward-backward,簡稱為 f-b 算法)是用
22、來計算給定一個觀察值序列 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輸出的觀察符號序列p(o|m)給定模型 m 時,輸出符號序列 o 的概率從狀態(tài)到狀態(tài)的轉(zhuǎn)移概率從狀態(tài)到狀態(tài)發(fā)生轉(zhuǎn)移時輸出的概率輸出部分符號序列 o1,o2, ,ot并且到達(dá)狀態(tài) 的概率,即前向概率 由上面符號的定義,則可由下面的遞推公式計算得到:(1)初始化 (2)遞推公式 (
23、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)的前向概率都更新了一次,然后進(jìn)入 t+1 時刻的遞推過程。2.后向算法與前向算法類似,后向算法即按輸出觀察值序列的時間,從后向前遞推計算出概率的方法。首先說明下列符號的定義: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é)束輸出部分符號
24、序列ot+1,ot+2,ot 的概率,即后向概率??捎上旅娴倪f推公式計算得到:(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 的基本算法 viterbi算法來解決。viterbi 算法解決了給定一個觀察值序列和一個模型 m=a,b,時,在最佳意義上確定一個狀態(tài)序列的問題。這里討論的最佳意義上的狀態(tài)序列,是指使 p(s,o/m)最大時確定的狀態(tài)序列。即 hmm 輸出一個觀察值序列 時,可能通過的狀態(tài)序列路
25、徑有多種,這里面使輸出概率最大的狀態(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)序列的步驟如下: (1) 給每個狀態(tài)準(zhǔn)備一個數(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)序列寄存器把
26、每一次使最大的狀態(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語言和匯編語言共同完成的主程序流程圖。在主程序中開始是對ram存儲器進(jìn)行清除,這為存放提取的語音信號的特征矢量和模板庫做準(zhǔn)備。播放第一條提示音是為了提醒用戶系統(tǒng)的語音訓(xùn)練己啟動,現(xiàn)在可以進(jìn)行訓(xùn)練。訓(xùn)練首先是此系統(tǒng)的觸發(fā)名稱,即系統(tǒng)的名字。接下來就是依次對各條命令進(jìn)行訓(xùn)練。在訓(xùn)練過程中
27、,如訓(xùn)練成功,則有語音提示進(jìn)行下一條的訓(xùn)練:如出現(xiàn)訓(xùn)練失敗也會提示用戶繼續(xù)訓(xùn)練此條語音。直到全部命令訓(xùn)練完畢后,系統(tǒng)將準(zhǔn)備進(jìn)行語音識別。識別初始化是確定語音輸入來源于a/d轉(zhuǎn)換器的mic通道。播放開始識別的提示音是為了讓用戶明確現(xiàn)在可以向系統(tǒng)下達(dá)命令了。系統(tǒng)接到命令后就開始進(jìn)行識別,如識別成功,則系統(tǒng)會按命令執(zhí)行,如識別失敗,系統(tǒng)也會通過語音提示用戶。系統(tǒng)的主程序是依靠調(diào)用各子程序來完成的,而系統(tǒng)的子程序主要有語音訓(xùn)練程序、語音識別程序、語音播放程序及機(jī)器人運(yùn)動程序。其中語音部分主要依靠語音壓縮程序來完成。3.2 語音壓縮算法的研究壓縮編碼的目的是通過對資料的壓縮,達(dá)到高效率存儲和轉(zhuǎn)換資料的結(jié)
28、果,即在保證一定聲音質(zhì)量的條件下,以最小的資料率來表達(dá)和傳送聲音信息。壓縮編碼是必要的,實際應(yīng)用中,未經(jīng)壓縮編碼的音頻資料量很大,直接進(jìn)行傳播或存儲是不現(xiàn)實的,所以要通過對信號趨勢的預(yù)測和冗余信息處理,進(jìn)行資料的壓縮,這樣就可以使用較少的資源建立更多的信息。常用的壓縮編碼有波形編碼、參數(shù)編碼和混合編碼 。 用于spce系列芯片語音功能的語音壓縮與解壓縮算法有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_a20
29、00和sacm_s480。sacm_a2000算法sacm_a2000屬于波形編碼,該壓縮算法壓縮比較?。?:1),所以具有高質(zhì)量、高碼率的特點(diǎn),適用于高保真音樂和語音。sacm_s480算法sacm_s480屬于混合編碼,該壓縮算法壓縮比較大,為80:3,其存儲容量大,音質(zhì)介于a2000和s240之間,適用于語音播放。此算法具體實現(xiàn)過程如下:在pc 機(jī)上錄好提示語音,經(jīng)壓縮工具壓縮處理后存儲到單片機(jī)rom里, spce061a 將提示語音解壓縮后送d/a 還原語音,提示操作結(jié)果。采用sacm(sunplus audio coding method ,音頻編碼算法) 將pc 機(jī)上已錄制的8 k
30、,16 位音頻文件壓縮為二進(jìn)制文件,再加入用戶程序,存儲在程序存儲器中,播放時將其解壓縮,并以8 k的頻率送d/a 還原出聲音。語音播放程序包括播放程序和中斷服務(wù)程序。播放程序初始化a/d ,定時器timera 和音量,從rom 里取出預(yù)先壓縮好的語音數(shù)據(jù),解壓縮后存在播放隊列里。中斷服務(wù)程序定時地從播放序列中讀數(shù)據(jù),送d/a 轉(zhuǎn)換后驅(qū)動喇叭發(fā)音。播放程序如下:sacm_s480_initial (init_index); 初始化a/d ,timer,sacm_s480_volume (volumn_index); 初始化音量sacm_s480_play(speech_index,channe
31、l,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_set) 有3 個參數(shù): speech_index 表示播放索引號;channel 表示播放通道(1通過dac1 通道播放,2通過dac2 通道播放,3通過dac1和dac2通道播放);ramp set 表示消除開始放音時的“?!甭?。3.3 關(guān)鍵模塊的設(shè)計在進(jìn)行語音識
32、別之前,首先要進(jìn)行特定人的語音訓(xùn)練,讓機(jī)器人能夠聽懂人的命令,也就是語音模板的建立。子程序中重要的語句是訓(xùn)練函數(shù)bsr_teain(int commandid,int trainmode),其中commandid是命令序號, trainmode代表訓(xùn)練次數(shù)。訓(xùn)練結(jié)果出現(xiàn)不同情況就會出現(xiàn)不同的返回值,然后程序會針對相應(yīng)值進(jìn)行相應(yīng)的處理。整個程序的工作原理是這樣的:當(dāng)被調(diào)用的時候,首先通過語音播放程序播放一條提示音,提示用戶開始進(jìn)行語音訓(xùn)練。然后等待用戶說出命令,當(dāng)接收到語音的時候, 通過bsr_teain程序,系統(tǒng)會生成一個res值,不同的res的值代表不同的訓(xùn)練結(jié)果,當(dāng)訓(xùn)練不成功,系統(tǒng)提示用戶
33、繼續(xù)訓(xùn)練,成功則返回。主程序只用到了整個子程序的返回值以判斷是否繼續(xù)進(jìn)行。每條程序訓(xùn)練兩遍。語音識別程序語音訓(xùn)練完成后,要想使機(jī)器人能夠聽懂人發(fā)出的命令,還應(yīng)該對語音命令進(jìn)行語音識別,將語音信號轉(zhuǎn)化成單片機(jī)可識別的代碼,這一步也是整個設(shè)計的關(guān)鍵之所在。子程序中最重要的函數(shù)是bsr_getresult(),它的作用是從辨識器中獲取數(shù)據(jù)。根據(jù)識別情況返回不同數(shù)值。當(dāng)?shù)玫秸Z音數(shù)據(jù)的時候,經(jīng)過機(jī)器判斷會產(chǎn)生一個res值,當(dāng)沒有命令被識別出來的時候,res=0;識別器停止未初始化或識別未激活時,res=-1;識別不合格的時候,res=-2;識別出來時返回命令的序號。在進(jìn)入語音識別階段,首先要對辨識器進(jìn)行
34、初始化,并且啟動實時監(jiān)控,以隨時接收用戶指令。然后播放語音識別提示音提示用戶開始發(fā)布命令。若識別不出來,則經(jīng)過一個定時程序判斷是否超時。超時就直接退出子程序,否則繼續(xù)識別。若識別成功則將識別出來的命令序號返給主程序。語音播放程序 本次設(shè)計采用了sacm_a2000和sacm_s480兩種語音壓縮算法進(jìn)行語音壓縮和播放,但是由于兩種語音算法僅僅是語音質(zhì)量和壓縮大小等方面有所不同,基本思想還是相同的,所以它們可以“共享”一個流程圖(如圖4.5)。當(dāng)收到播放信號的時候,子程序首先停止主程序的辨識,并對語音播放系統(tǒng)進(jìn)行初始化。然后提取一個壓縮語音數(shù)據(jù)進(jìn)行播放。判斷是否播放結(jié)束,如果沒有,就繼續(xù)讀取壓縮數(shù)據(jù),解壓縮并添加到播放序列。整個語音播放結(jié)束后,開啟辨識器和實時監(jiān)控并退出子程序返回到調(diào)用點(diǎn)。機(jī)器人運(yùn)動程序機(jī)器人的運(yùn)動主要依靠內(nèi)置電機(jī)的正反運(yùn)轉(zhuǎn),所以機(jī)器人的運(yù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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年專用:煤倉租賃合同
- 2024互聯(lián)網(wǎng)游戲開發(fā)公司與運(yùn)營商分成協(xié)議
- 2024年度體育賽事LED計分屏采購合同
- 公益日活動小結(jié)(12篇)
- 2024年度EPS圍擋施工及拆除合同
- 2024天然氣運(yùn)輸環(huán)境影響評估協(xié)議
- 2024年度信息系統(tǒng)安全運(yùn)維合同-PKISSL基礎(chǔ)應(yīng)用
- 2024年度物流倉儲服務(wù)合作協(xié)議
- 2024年家禽養(yǎng)殖數(shù)字化管理系統(tǒng)建設(shè)合同
- 2024年幼兒園共建協(xié)議
- 教育信息化教學(xué)資源建設(shè)規(guī)劃
- 上海市交大附中附屬嘉定德富中學(xué)2024-2025學(xué)年九年級上學(xué)期期中考數(shù)學(xué)卷
- 屠宰場食品安全管理制度
- 部編版(2024秋)語文一年級上冊 6 .影子課件
- 2024秋期國家開放大學(xué)??啤缎淌略V訟法學(xué)》一平臺在線形考(形考任務(wù)一至五)試題及答案
- 基于SICAS模型的區(qū)域農(nóng)產(chǎn)品品牌直播營銷策略研究
- 病例討論英文
- 2024秋期國家開放大學(xué)專科《液壓與氣壓傳動》一平臺在線形考(形考任務(wù)+實驗報告)試題及答案
- 【課件】植物體的結(jié)構(gòu)層次課件-2024-2025學(xué)年人教版生物七年級上冊
- 24秋國家開放大學(xué)《0-3歲嬰幼兒的保育與教育》期末大作業(yè)參考答案
- 相對濕度計算公式
評論
0/150
提交評論