[論文]機(jī)器人的語音識(shí)別技術(shù).doc_第1頁
[論文]機(jī)器人的語音識(shí)別技術(shù).doc_第2頁
[論文]機(jī)器人的語音識(shí)別技術(shù).doc_第3頁
[論文]機(jī)器人的語音識(shí)別技術(shù).doc_第4頁
[論文]機(jī)器人的語音識(shí)別技術(shù).doc_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

機(jī)器人的語音識(shí)別技術(shù)摘要1897年,mg馬可尼所完成的無線通信試驗(yàn)就是在固定站與一艘拖船之間進(jìn)行的,距離為18海里。標(biāo)志著通信進(jìn)入了一個(gè)新的時(shí)代,隨著社會(huì)的進(jìn)步,科技發(fā)展也日益興盛起來。電子技術(shù)和智能自動(dòng)化的發(fā)展更是為人們的日常生活和工業(yè)生產(chǎn)提供了極大的方便。人們可以通過一系列的信息傳遞來直接或間接的控制機(jī)械的運(yùn)轉(zhuǎn)。讓機(jī)器能夠聽懂人類的語言并且能夠按照人的口頭命令行動(dòng),從而實(shí)現(xiàn)人際交流一直以來都是人類的一個(gè)夢(mèng)想。本文所研究的機(jī)器人語音識(shí)別和控制,對(duì)于服務(wù)于機(jī)器人的應(yīng)用領(lǐng)域具有重要的現(xiàn)實(shí)意義。通過單片機(jī)可以很方便的實(shí)現(xiàn)語音控制技術(shù),本次設(shè)計(jì)是利用凌陽單片機(jī)spce061a的語音識(shí)別控制特性, 根據(jù)語音識(shí)別的基本原理,對(duì)智能機(jī)器人進(jìn)行語音控制,使其根據(jù)人的指令做出左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)、后退、跳舞、發(fā)射飛碟等相應(yīng)的動(dòng)作。由于材料等各方面的限制,只能以理論的形式出現(xiàn)。關(guān)鍵詞:語音識(shí)別,語音控制(嵌入式語音的識(shí)別技術(shù)),智能機(jī)器人,語音壓縮算法目錄1 緒論.31.1 本次課題的由來1.2 設(shè)計(jì)目的及任務(wù)及設(shè)計(jì)理念1.3 聲控機(jī)器人的發(fā)展前景 1.4 整體方案的規(guī)劃2 嵌入式語音的識(shí)別技術(shù)11 2.1 模式匹配原理的引入 2.2 語音識(shí)別技術(shù)總括3 軟件設(shè)計(jì).20 3.1 主程序的設(shè)計(jì) 3.2 語音壓縮算法的研究 3.3 關(guān)鍵模塊的設(shè)計(jì)4 功能的實(shí)現(xiàn).29 4.1 機(jī)器人預(yù)想功能的總體實(shí)現(xiàn)5 設(shè)計(jì)總結(jié).301 緒論1.1 設(shè)計(jì)課題由來單片機(jī)在現(xiàn)實(shí)生活中越來越多的被應(yīng)用于工業(yè)生產(chǎn)和生活?yuàn)蕵樊?dāng)中。自從人類能夠使用機(jī)器以來,就有一個(gè)夢(mèng)想,那就是能夠與機(jī)器人進(jìn)行語言交流,讓機(jī)器人按照人的指令去完成相應(yīng)的操作。語音識(shí)別技術(shù)就是讓機(jī)器人通過語音識(shí)別把語音信號(hào)轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高新技術(shù)。語音識(shí)別技術(shù)所涉及的領(lǐng)域包括:信號(hào)處理、模式識(shí)別、概率論和信息論、發(fā)聲機(jī)理和人工智能等等。都屬于電子信息專業(yè)的基本課程。隨著社會(huì)的進(jìn)步和日益發(fā)展,智能自動(dòng)化系統(tǒng)逐漸被應(yīng)用到服務(wù)行業(yè)。于是“機(jī)器人”也就應(yīng)運(yùn)而生了,但是現(xiàn)在機(jī)器人的發(fā)展還處在一個(gè)不成熟的階段,它還不能象人們想象的那樣做出各種各樣的動(dòng)作來服務(wù)于人類。隨著社會(huì)的發(fā)展,人們的物質(zhì)文化生活水平也有了較大的提高,為了滿足人們愈來愈高的要求,機(jī)器人的深入和普及也越來越受到人們的關(guān)注。人有五官,機(jī)器人的視覺電子攝象已經(jīng)隨著安全防護(hù)的發(fā)展有了一定的發(fā)展,平常我們?cè)跇怯畋O(jiān)控系統(tǒng)可以看到簡(jiǎn)單的機(jī)器人視覺系統(tǒng)(電子攝象及處理),數(shù)碼相機(jī)等。聲音的控制除了我們平常所遇到的聲控?zé)?,我們很難再找到別的。語音這種人類最簡(jiǎn)單、最自然、最方便和最有效的交換信息的方式,在機(jī)器人上的應(yīng)用還較少?;趩纹瑱C(jī)和外圍接口技術(shù),我們可以大致畫出語音控制的基本框圖。中央處理系統(tǒng)機(jī)器人控制顯示器語音處理系統(tǒng)圖1.1 最原始的機(jī)器人語音控制用語音控制來操作機(jī)器人代替煩瑣的鍵盤輸入。和機(jī)器通話實(shí)現(xiàn)人機(jī)對(duì)話是十分誘人的,具有廣闊的發(fā)展前景,是機(jī)器人人工智能的重要標(biāo)志。圖1.2 改進(jìn)的機(jī)器人語音識(shí)別框圖1.2 設(shè)計(jì)的目的及任務(wù)我們想象中的理想機(jī)器人應(yīng)該是能夠象人類一樣聽懂自然語言,可以在燥聲情況下,一定的頻率范圍內(nèi)。語言是由不同的人的聲帶所發(fā)出的,人們辨別它主要是通過聲波的變換來判斷的,這就是我們平常所說的音變。這樣就使基本模型的音界變的不甚明確,于是在明確的電腦語言處理下就變的比較困難。在人們普通的對(duì)話中,有時(shí)候人類自己也很難辨別對(duì)方模糊的語音,不同的詞語聽起來會(huì)非常相似,這就是我們平常所說的語音的模糊性。在語音的控制方面,首先要對(duì)燥聲環(huán)境,非特定人,語音模糊和音變等一系列事實(shí)的困難進(jìn)行過濾和處理,這就需要大量的數(shù)據(jù)處理,這樣分配給聽覺的時(shí)間就非常有限。于是普通的單片機(jī)就不能很好的滿足這樣一系列復(fù)雜的要求,這就需要在已有語音識(shí)別技術(shù)的研究基礎(chǔ)上,配合功能強(qiáng)大的凌陽16位單片機(jī)spce061a,對(duì)機(jī)器人的語音識(shí)別和特定命令對(duì)應(yīng)行為能力的結(jié)合進(jìn)行實(shí)現(xiàn),是一個(gè)實(shí)踐性和操作性要求較強(qiáng)的實(shí)用性課題。機(jī)器人語音識(shí)別是語音識(shí)別在機(jī)器人領(lǐng)域的應(yīng)用,它的最終目的是讓機(jī)器人聽懂人們口述的語言,進(jìn)而對(duì)口述語言中包含的要求或詢問做出正確的動(dòng)作反應(yīng)或語言反應(yīng),從而形成一個(gè)良好的,自然的“人機(jī)通信系統(tǒng)”。以進(jìn)一步推動(dòng)服務(wù)機(jī)器人的發(fā)展和應(yīng)用。因此,研究機(jī)器人的語音識(shí)別,對(duì)于服務(wù)機(jī)器人的普及與應(yīng)用意義重大。未來科技的發(fā)展趨勢(shì)是在以人為本的前提下,更多地實(shí)現(xiàn)機(jī)器設(shè)備的自動(dòng)化和智能化,讓機(jī)器為人服務(wù),代替人們進(jìn)行繁重的體力勞動(dòng)和高危險(xiǎn)工程。借助機(jī)器之力進(jìn)行社會(huì)建設(shè)已經(jīng)成為了一個(gè)必然的選擇。隨之而來的發(fā)展與和諧生活的命題必然會(huì)將人機(jī)交流的重要性提到一個(gè)新的高度,成為服務(wù)型機(jī)器人投入社會(huì)的關(guān)鍵所在。設(shè)計(jì)理念:在整個(gè)設(shè)計(jì)過程中,我們本著一切向能實(shí)現(xiàn)理想機(jī)器人的方向靠攏。但是本次設(shè)計(jì)還缺乏一定的實(shí)踐。1.3 聲控機(jī)器人的發(fā)展前景機(jī)器人是多學(xué)科交叉的產(chǎn)物,集成了運(yùn)動(dòng)學(xué)與動(dòng)力學(xué)、機(jī)械設(shè)計(jì)與制造、計(jì)算機(jī)硬件與軟件、控制與傳感器、模式識(shí)別與人工智能等學(xué)科領(lǐng)域的先進(jìn)理論與技術(shù)。同時(shí),它又是一類典型的自動(dòng)化機(jī)器,是專用自動(dòng)機(jī)器、數(shù)控機(jī)器的延伸與發(fā)展。當(dāng)前,社會(huì)需求和技術(shù)進(jìn)步都對(duì)機(jī)器人向智能化發(fā)展提出了新的要求。語音信號(hào)處理技術(shù)就是使用數(shù)字信號(hào)處理技術(shù)對(duì)于因信號(hào)進(jìn)行處理,處理的目的使用得到的某些參數(shù)進(jìn)行高效傳輸、存儲(chǔ)、語音增強(qiáng)、語音合成和語音識(shí)別。我國(guó)的語音識(shí)別系統(tǒng)的研究起步比較晚,但是也取得了很好的成績(jī),研究水平也從實(shí)驗(yàn)室逐步走向?qū)嵱?,?987年開始執(zhí)行國(guó)家863計(jì)劃后,國(guó)家863智能計(jì)算機(jī)專家組為語音識(shí)別技術(shù)研究專門理想,每?jī)赡隄L動(dòng)一次。我國(guó)pc機(jī)語音識(shí)別技術(shù)的研究水平已經(jīng)基本上與國(guó)外同步,在漢語語音識(shí)別技術(shù)上還有自己的特點(diǎn)和優(yōu)勢(shì),但是獨(dú)立開發(fā)的專用漢語語音識(shí)別芯片還是較少,多數(shù)都是與國(guó)外研究機(jī)構(gòu)合作開發(fā)研制的。可以說,語音識(shí)別的研究已經(jīng)得到了全世界范圍的重視,是引領(lǐng)未來科學(xué)發(fā)展方向的關(guān)鍵技術(shù)之一。因此,研究機(jī)器人的語音識(shí)別,開發(fā)實(shí)用的機(jī)器人語音識(shí)別系統(tǒng),對(duì)于服務(wù)機(jī)器人的普及與應(yīng)用意義重大。1.4 整體方案的規(guī)劃本課題是基于spce061a的智能機(jī)器人語音識(shí)別的實(shí)現(xiàn),最終目的是形成一個(gè)較好的人機(jī)交流環(huán)境,使機(jī)器人能夠聽懂經(jīng)過訓(xùn)練的人的口頭命令,并能夠按照命令進(jìn)行相應(yīng)的動(dòng)作。由多帶通濾波器及現(xiàn)行匹配電路構(gòu)成的專用ic。專用ic是以8位或16位單片機(jī)為計(jì)算核心,外加a/d轉(zhuǎn)換,d/a轉(zhuǎn)換及存儲(chǔ)器。由dsp組成的語音識(shí)別系統(tǒng),一般由定點(diǎn)16位dsp,外加a/d轉(zhuǎn)換,d/a轉(zhuǎn)換,以及rom、ram、falsh等存儲(chǔ)器組成。由人工神經(jīng)網(wǎng)絡(luò)構(gòu)成的語音識(shí)別專用芯片。soc是將mcu或dsp、a/d、d/a、ram、rom以及預(yù)放、功放等電路集成在一個(gè)芯片上,只要加上極少的電源供電等外圍電路,就可以實(shí)現(xiàn)語音識(shí)別、語音合成及語音回放等功能。spce061a是一種集成度很高的單片機(jī),它將mcu、a/d、d/a、ram、rom集成在一塊芯片上,同時(shí)具有16*16位的乘法運(yùn)算和內(nèi)積運(yùn)算功能,cpu最高時(shí)鐘頻率可達(dá)到49mhz。本課題的主要實(shí)現(xiàn)過程是:外部語音命令通過轉(zhuǎn)換裝置輸入到系統(tǒng)內(nèi)部,經(jīng)過語音識(shí)別程序的處理轉(zhuǎn)化為機(jī)器人可識(shí)別的觸發(fā)命令然后觸發(fā)相應(yīng)子程序進(jìn)行相關(guān)動(dòng)作。動(dòng)作的實(shí)現(xiàn)方法是:凌陽61板向控制不同端口送高低電平以控制置于機(jī)器人內(nèi)部不同位置的電機(jī)的運(yùn)轉(zhuǎn),調(diào)用延時(shí),根據(jù)需要使各個(gè)部分電機(jī)相互配合,完成要求的動(dòng)作,從而實(shí)現(xiàn)機(jī)器人的語音控制。本設(shè)計(jì)綜合考慮spce061a單片機(jī)的特性以及機(jī)器人行動(dòng)模式來進(jìn)行設(shè)計(jì),具體模塊如圖2.1所示。整個(gè)設(shè)計(jì)分為主控模塊、語音模塊、電機(jī)模塊等,各個(gè)模塊分別完成,然后進(jìn)行結(jié)合,實(shí)現(xiàn)機(jī)器人的語音識(shí)別。具體過程是:首先進(jìn)行機(jī)器人的語音訓(xùn)練,我們這次設(shè)計(jì)采用的是特定人語音識(shí)別,每一個(gè)命令發(fā)布者都必須在發(fā)布命令之前對(duì)機(jī)器人進(jìn)行命令的語音訓(xùn)練。這樣做有一個(gè)好處,非特定人不能命令機(jī)器人進(jìn)行動(dòng)作。整個(gè)硬件設(shè)計(jì)部分以保持機(jī)器人外部靈活性為前提,在機(jī)器人各個(gè)部分內(nèi)置電機(jī),利用三極管的通斷特性來設(shè)計(jì)電路,完成硬件電路的設(shè)計(jì)和組裝。具體電路如下:左右腿、脖子電機(jī)驅(qū)動(dòng)模塊(摘抄)加速及發(fā)射電機(jī)輸入/輸出接口嵌入式語音的識(shí)別技術(shù)2.1 模式匹配原理的引入嵌入式語音識(shí)別系統(tǒng)都采用了模式匹配的原理,語音識(shí)別一般分為兩個(gè)步驟。第一步是系統(tǒng)“學(xué)習(xí)”或“訓(xùn)練”階段。這一階段的任務(wù)是建立識(shí)別基本單元的聲學(xué)模型以及進(jìn)行文法分析的語言模型,即構(gòu)建參考模式庫。第二是“識(shí)別”或“測(cè)試”階段。根據(jù)識(shí)別系統(tǒng)的類型選擇能夠滿足要求的一種識(shí)別方法,采用語音分析方法分析出這種識(shí)別方法所需求的語音特征參數(shù),按照一定的準(zhǔn)則和測(cè)度與參考模式的模型進(jìn)行比較,通過判決得出結(jié)果。 特征提取經(jīng)過預(yù)處理后的語音信號(hào),要對(duì)其進(jìn)行特征提取,即特征參數(shù)分析。該過程就是從原始語音信號(hào)中抽取能夠反映語音本質(zhì)的特征參數(shù),形成特征矢量序列。目前語音識(shí)別所用的特征參數(shù)主要有兩種類型:線性預(yù)測(cè)倒譜系數(shù)(lpcc)和美爾頻標(biāo)倒譜系數(shù)(mfcc)。lpcc系數(shù)主要模擬人的發(fā)聲模型,為考慮人耳的聽覺特性。它對(duì)元音有較好的描述能力,而對(duì)輔音描述能力差。其優(yōu)點(diǎn)是計(jì)算量小,比較徹底地去掉了語音產(chǎn)生過程中的激勵(lì)信息,易于實(shí)現(xiàn)。mfcc系數(shù)考慮到了人聽覺特性,并具有很高的抗噪聲能力,但因?yàn)樘崛fcc參數(shù)要在頻域處理,計(jì)算傅立葉變換將耗費(fèi)大量寶貴的計(jì)算資源。因此,嵌入式語音識(shí)別系統(tǒng)中一般都選用lpcc系數(shù)。語音特征提取是分幀提取的,每幀特征參數(shù)一般構(gòu)成一個(gè)矢量,因此,語音特征是一個(gè)矢量序列。該序列的數(shù)據(jù)率一般可能過高,不便于其后的進(jìn)一步處理,為此,有必要采用很有效的數(shù)據(jù)壓縮技術(shù)方法對(duì)數(shù)據(jù)進(jìn)行壓縮。矢量量化就是一種很好的數(shù)據(jù)壓縮技術(shù)。參考模式庫參考模式庫是將一個(gè)或多個(gè)說話者的多次重復(fù)的語音參數(shù)經(jīng)過訓(xùn)練得到的。它是聲學(xué)參數(shù)模板。建立參考模式庫是在系統(tǒng)使用前獲得并存儲(chǔ)起來的。參考模式庫的建立過程稱為訓(xùn)練過程。模式匹配模式匹配是將輸入的待識(shí)別的語音特征參數(shù)同訓(xùn)練得到的參考語音模式進(jìn)行逐一比較分析,獲得最優(yōu)匹配的參考模式便是識(shí)別結(jié)果。目前常用的語音識(shí)別算法主要有:動(dòng)態(tài)時(shí)間規(guī)整(dtw)、隱馬爾可夫(hmm)理論、矢量量化(vq)技術(shù)。2.2 語音信號(hào)識(shí)別技術(shù)語音識(shí)別的過程就是將用麥克風(fēng)或電話捕捉到的聲波信號(hào)轉(zhuǎn)化成一組詞語的過程。被準(zhǔn)確識(shí)別的詞語the recognized words can be the final results, as for applications such as commands & control , data entry , and document preparation .可以得出最后的結(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á)到講話被理解的目的。矢量量化的基本原理將若干個(gè)標(biāo)量數(shù)據(jù)組成一個(gè)矢量(或者是從一幀語音數(shù)據(jù)中提取的特征矢量)在多維空間給與整體量化,從而可以在信息量損失較小的情況下壓縮數(shù)據(jù)量。矢量量化有效地應(yīng)用了矢量中各元素之間的相關(guān)性,因此可以比標(biāo)量量化有更好的壓縮效果。當(dāng)給矢量量化器輸入一個(gè)任意矢量進(jìn)行矢量量化時(shí),矢量量化器首先判斷它屬于哪個(gè)子空間的代表矢量。也就是說,矢量量化過程就是用代表的過程,或者說把量化成了y。 式中,量化器函數(shù)。矢量量化器和碼書的設(shè)計(jì)矢量量化器和碼書設(shè)計(jì)方法是采用遞推算法,這個(gè)算法就是lbg算法。整個(gè)算法實(shí)際上就是最佳設(shè)計(jì)和最佳碼書兩個(gè)條件的反復(fù)迭代過程,即由初始碼書尋找最佳碼書的迭代過程。它從對(duì)初始碼書進(jìn)行迭代優(yōu)化開始,一直到系統(tǒng)性能滿足要求或不再有明顯的改進(jìn)為止。隱馬爾可夫模型隱馬爾可夫模型(hidden markov models,簡(jiǎn)稱為 hmm),作為語音信號(hào)的一種統(tǒng)計(jì)模型,今天正在語音處理的各個(gè)領(lǐng)域中獲得廣泛的應(yīng)用。大約 100 年前,數(shù)學(xué)家和工程師們就已經(jīng)知道馬爾可夫鏈了。但是,只是在近三十幾年里,它才被用到語音信號(hào)處理中來,其主要原因在于當(dāng)時(shí)缺乏一種能使該模型參數(shù)與語音信號(hào)處理達(dá)到最佳匹配的有效方法。直到 20 世紀(jì) 60 年代后期,才有人提出了這種匹配方法,而有關(guān)它的理論基礎(chǔ),是在 1970 年前后由 baum 等人建立起來的,隨后由 cmu 的 baker 和 ibm 的 jelinek 等人將其應(yīng)用到語音識(shí)別之中。由于 bell實(shí)驗(yàn)室 rabiner 等人在 20 世紀(jì) 80 年代中期對(duì) hmm 的深入淺出的介紹,才逐漸使hmm 為世界各國(guó)從事語音信號(hào)處理的研究人員所了解和熟悉,進(jìn)而成為公認(rèn)的一個(gè)研究熱點(diǎn)。近幾十年來,隱馬爾可夫模型技術(shù)無論是在理論上或是實(shí)踐上都有許多進(jìn)展。其基本理論和各種實(shí)用算法是現(xiàn)代語音識(shí)別等的重要基礎(chǔ)之一。hmm的基本參數(shù) 對(duì)于語音識(shí)別,hmm 可以用下面六個(gè)模型參數(shù)來定義,即:ms,o,a,b,fs:模型中狀態(tài)的有限集合,即模型由幾個(gè)狀態(tài)組成。設(shè)有 n 個(gè)狀態(tài),s |i = 1, 2,n。記 t 時(shí)刻模型所處狀態(tài)為 ,顯然 (, , )。o:輸出的觀測(cè)值符號(hào)的集合,即每個(gè)狀態(tài)對(duì)應(yīng)的可能的觀察值數(shù)目。記 m個(gè)觀察值為 ,,記 t 時(shí)刻觀察到的觀察值為 ,其中 (, )。a:狀態(tài)轉(zhuǎn)移概率的集合。所有轉(zhuǎn)移概率可以構(gòu)成一個(gè)轉(zhuǎn)移概率矩陣,即:a= 其中 是從狀態(tài) 到狀態(tài) 轉(zhuǎn)移時(shí)的轉(zhuǎn)移概率,1i,jn且有 01, 。b:輸出觀測(cè)值概率的集合。b(k),其中(k)是從狀態(tài) 到狀態(tài)轉(zhuǎn)移時(shí)觀測(cè)值符號(hào) 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)的,只是在語音識(shí)別里用的 markov 模型要設(shè)定終了狀態(tài)。這樣,可以記一個(gè) hmm 為 m=s,o,a,b,f,為了便于表示,常用下面的形式表示一個(gè) hmm,即簡(jiǎn)寫為 m=a,b,。所以形象地說,hmm 可以分為兩部分,一個(gè)是 markov 鏈,由、a 描述,產(chǎn)生的輸出為狀態(tài)序列。另一個(gè)是一個(gè)隨機(jī)過程,由 b 描述,產(chǎn)生的輸出為觀察值序列,t 為觀察值時(shí)間長(zhǎng)度。隱馬爾可夫模型的基本算法欲使所建立的 hmm 對(duì)于實(shí)際應(yīng)用有效,下面三個(gè)問題必須加以解決:(1) 識(shí)別問題:給定觀察符號(hào)序列 0=o1,o2, ,ot和模型 m=a,b,如何快速有效地計(jì)算觀察符號(hào)序列的輸出概率 p(o|m);(2) 尋找與給定觀察字符序列對(duì)應(yīng)的最佳的狀態(tài)序列:給定觀察字符號(hào)序列和輸出該符號(hào)序列的模型 m= a,b,如何有效地確定與之對(duì)應(yīng)的最佳的狀態(tài)序列。即估計(jì)出模型產(chǎn)生觀察字符號(hào)序列時(shí)最有可能經(jīng)過的路徑。它可以被認(rèn)為是所有可能的路徑中,概率最大的路徑。這種算法的指導(dǎo)思想就是概率最大的路徑是最有可能經(jīng)過的路徑,即最佳的狀態(tài)序列路徑;(3) 模型訓(xùn)練問題:實(shí)際上是一個(gè)模型參數(shù)估計(jì)問題,即對(duì)于初始模型和給定用于訓(xùn)練的觀察符號(hào)序列 0=o1,o2, ,ot 如何調(diào)整模型 m= a,b,的參數(shù),使得輸出概率 p (o m)最大18。下面結(jié)合討論這三個(gè)問題的解法,介紹 hmm 的基本算法。前向-后向算法前向-后向算法(forward-backward,簡(jiǎn)稱為 f-b 算法)是用來計(jì)算給定一個(gè)觀察值序列 0=o1,o2, ,ot 以及一個(gè)模型 m= a,b,時(shí),由模型 m 產(chǎn)生出 o 的概率 p (o|m)的。設(shè) s1 是初始狀態(tài),sn 是終了狀態(tài),則前向-后向算法可以介紹如下:1前向算法前向算法即按輸出觀察值序列的時(shí)間,從前向后遞推計(jì)算輸出概率。首先說明下列符號(hào)的定義:0=o1,o2, ,ot輸出的觀察符號(hào)序列p(o|m)給定模型 m 時(shí),輸出符號(hào)序列 o 的概率從狀態(tài)到狀態(tài)的轉(zhuǎn)移概率從狀態(tài)到狀態(tài)發(fā)生轉(zhuǎn)移時(shí)輸出的概率輸出部分符號(hào)序列 o1,o2, ,ot并且到達(dá)狀態(tài) 的概率,即前向概率 由上面符號(hào)的定義,則可由下面的遞推公式計(jì)算得到:(1)初始化 (2)遞推公式 (t=1,2,t;i,j=1,2,n)(3)最后結(jié)果 p( o|m)= t 時(shí)刻的等于 t-1 時(shí)刻的所有狀態(tài)的之和,當(dāng)然如果當(dāng)狀態(tài) 到狀態(tài)沒有轉(zhuǎn)移時(shí) =0。這樣在 t 時(shí)刻對(duì)所有狀態(tài) (j=1,2, n)的都計(jì)算一次,則每個(gè)狀態(tài)的前向概率都更新了一次,然后進(jìn)入 t+1 時(shí)刻的遞推過程。2.后向算法與前向算法類似,后向算法即按輸出觀察值序列的時(shí)間,從后向前遞推計(jì)算出概率的方法。首先說明下列符號(hào)的定義:0=o1,o2, ,ot輸出的觀察符號(hào)序列p(o|m)給定模型 m 時(shí),輸出符號(hào)序列 o 的概率從狀態(tài) 到狀態(tài) 的轉(zhuǎn)移概率從狀態(tài) 到狀態(tài) 發(fā)生轉(zhuǎn)移時(shí)輸出ot的概率從狀態(tài) 開始到狀態(tài) 結(jié)束輸出部分符號(hào)序列ot+1,ot+2,ot 的概率,即后向概率??捎上旅娴倪f推公式計(jì)算得到:(1)初始化 (2)遞推公式(t=t,t+1,,1;i,j=1,2, ,n)(3)最后結(jié)果 p(o|m)= 根據(jù)定義的前向和后向概率,有如下關(guān)系成立:維特比(viterbi)算法如何有效地確定與之對(duì)應(yīng)的最佳的狀態(tài)序列。這可以由另一個(gè) hmm 的基本算法 viterbi算法來解決。viterbi 算法解決了給定一個(gè)觀察值序列和一個(gè)模型 m=a,b,時(shí),在最佳意義上確定一個(gè)狀態(tài)序列的問題。這里討論的最佳意義上的狀態(tài)序列,是指使 p(s,o/m)最大時(shí)確定的狀態(tài)序列。即 hmm 輸出一個(gè)觀察值序列 時(shí),可能通過的狀態(tài)序列路徑有多種,這里面使輸出概率最大的狀態(tài)序列就是我們的所求。viterbi 算法可以敘述如下:(1)初始化 (j1) (2)遞推公式 (t=1,2,,t;i,j=1,2,,n) (3)最后結(jié)果 在這個(gè)遞推公式中,每一次使 最大的狀態(tài) i 組成的狀態(tài)就是所求的最佳狀態(tài)序列。所以利用 viterbi 算法求取最佳狀態(tài)序列的步驟如下: (1) 給每個(gè)狀態(tài)準(zhǔn)備一個(gè)數(shù)組變量,初始化時(shí)令初始狀態(tài) s1 的數(shù)組變量為 1,其他狀態(tài)的數(shù)組為 0;(2)根據(jù) t 時(shí)刻輸出的觀察符號(hào) ot 計(jì)算 (j=1,2,,n) 當(dāng)狀態(tài) 到狀態(tài)沒有轉(zhuǎn)移時(shí);設(shè)計(jì)一個(gè)符號(hào)數(shù)組變量,稱為最佳狀態(tài)序列寄存器,利用這個(gè)最佳狀態(tài)序列寄存器把每一次使最大的狀態(tài) i 保存下來;(3)tt 時(shí)轉(zhuǎn)移到 (2),否則執(zhí)行(4);(4)把這時(shí)的終了狀態(tài)寄存器內(nèi)的值取出,則: 輸出最佳狀態(tài)序列寄存器的值,即為所求的最佳狀態(tài)序列。軟件設(shè)計(jì)3.1 主程序的設(shè)計(jì)語音識(shí)別系統(tǒng)功能的實(shí)現(xiàn)大部分是由軟件來完成的。因此,語音識(shí)別系統(tǒng)的軟件設(shè)計(jì)是十分復(fù)雜的。本次程序的設(shè)計(jì)是依靠c語言和匯編語言共同完成的主程序流程圖。在主程序中開始是對(duì)ram存儲(chǔ)器進(jìn)行清除,這為存放提取的語音信號(hào)的特征矢量和模板庫做準(zhǔn)備。播放第一條提示音是為了提醒用戶系統(tǒng)的語音訓(xùn)練己?jiǎn)?dòng),現(xiàn)在可以進(jìn)行訓(xùn)練。訓(xùn)練首先是此系統(tǒng)的觸發(fā)名稱,即系統(tǒng)的名字。接下來就是依次對(duì)各條命令進(jìn)行訓(xùn)練。在訓(xùn)練過程中,如訓(xùn)練成功,則有語音提示進(jìn)行下一條的訓(xùn)練:如出現(xiàn)訓(xùn)練失敗也會(huì)提示用戶繼續(xù)訓(xùn)練此條語音。直到全部命令訓(xùn)練完畢后,系統(tǒng)將準(zhǔn)備進(jìn)行語音識(shí)別。識(shí)別初始化是確定語音輸入來源于a/d轉(zhuǎn)換器的mic通道。播放開始識(shí)別的提示音是為了讓用戶明確現(xiàn)在可以向系統(tǒng)下達(dá)命令了。系統(tǒng)接到命令后就開始進(jìn)行識(shí)別,如識(shí)別成功,則系統(tǒng)會(huì)按命令執(zhí)行,如識(shí)別失敗,系統(tǒng)也會(huì)通過語音提示用戶。系統(tǒng)的主程序是依靠調(diào)用各子程序來完成的,而系統(tǒng)的子程序主要有語音訓(xùn)練程序、語音識(shí)別程序、語音播放程序及機(jī)器人運(yùn)動(dòng)程序。其中語音部分主要依靠語音壓縮程序來完成。3.2 語音壓縮算法的研究壓縮編碼的目的是通過對(duì)資料的壓縮,達(dá)到高效率存儲(chǔ)和轉(zhuǎn)換資料的結(jié)果,即在保證一定聲音質(zhì)量的條件下,以最小的資料率來表達(dá)和傳送聲音信息。壓縮編碼是必要的,實(shí)際應(yīng)用中,未經(jīng)壓縮編碼的音頻資料量很大,直接進(jìn)行傳播或存儲(chǔ)是不現(xiàn)實(shí)的,所以要通過對(duì)信號(hào)趨勢(shì)的預(yù)測(cè)和冗余信息處理,進(jìn)行資料的壓縮,這樣就可以使用較少的資源建立更多的信息。常用的壓縮編碼有波形編碼、參數(shù)編碼和混合編碼 。 用于spce系列芯片語音功能的語音壓縮與解壓縮算法有sacm_a2000, sacm_s480, 和sacm_s240,其對(duì)應(yīng)的語音壓縮編碼率類型分別為16 kb/s,20 kb/s,24 kb/s;418 kb/s,712 kb/s;214 kb/s。本設(shè)計(jì)用到的壓縮算法有sacm_a2000和sacm_s480。sacm_a2000算法sacm_a2000屬于波形編碼,該壓縮算法壓縮比較?。?:1),所以具有高質(zhì)量、高碼率的特點(diǎn),適用于高保真音樂和語音。sacm_s480算法sacm_s480屬于混合編碼,該壓縮算法壓縮比較大,為80:3,其存儲(chǔ)容量大,音質(zhì)介于a2000和s240之間,適用于語音播放。此算法具體實(shí)現(xiàn)過程如下:在pc 機(jī)上錄好提示語音,經(jīng)壓縮工具壓縮處理后存儲(chǔ)到單片機(jī)rom里, spce061a 將提示語音解壓縮后送d/a 還原語音,提示操作結(jié)果。采用sacm(sunplus audio coding method ,音頻編碼算法) 將pc 機(jī)上已錄制的8 k,16 位音頻文件壓縮為二進(jìn)制文件,再加入用戶程序,存儲(chǔ)在程序存儲(chǔ)器中,播放時(shí)將其解壓縮,并以8 k的頻率送d/a 還原出聲音。語音播放程序包括播放程序和中斷服務(wù)程序。播放程序初始化a/d ,定時(shí)器timera 和音量,從rom 里取出預(yù)先壓縮好的語音數(shù)據(jù),解壓縮后存在播放隊(duì)列里。中斷服務(wù)程序定時(shí)地從播放序列中讀數(shù)據(jù),送d/a 轉(zhuǎn)換后驅(qū)動(dòng)喇叭發(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_set) 有3 個(gè)參數(shù): speech_index 表示播放索引號(hào);channel 表示播放通道(1通過dac1 通道播放,2通過dac2 通道播放,3通過dac1和dac2通道播放);ramp set 表示消除開始放音時(shí)的“?!甭暋?.3 關(guān)鍵模塊的設(shè)計(jì)在進(jìn)行語音識(shí)別之前,首先要進(jìn)行特定人的語音訓(xùn)練,讓機(jī)器人能夠聽懂人的命令,也就是語音模板的建立。子程序中重要的語句是訓(xùn)練函數(shù)bsr_teain(int commandid,int trainmode),其中commandid是命令序號(hào), trainmode代表訓(xùn)練次數(shù)。訓(xùn)練結(jié)果出現(xiàn)不同情況就會(huì)出現(xiàn)不同的返回值,然后程序會(huì)針對(duì)相應(yīng)值進(jìn)行相應(yīng)的處理。整個(gè)程序的工作原理是這樣的:當(dāng)被調(diào)用的時(shí)候,首先通過語音播放程序播放一條提示音,提示用戶開始進(jìn)行語音訓(xùn)練。然后等待用戶說出命令,當(dāng)接收到語音的時(shí)候, 通過bsr_teain程序,系統(tǒng)會(huì)生成一個(gè)res值,不同的res的值代表不同的訓(xùn)練結(jié)果,當(dāng)訓(xùn)練不成功,系統(tǒng)提示用戶繼續(xù)訓(xùn)練,成功則返回。主程序只用到了整個(gè)子程序的返回值以判斷是否繼續(xù)進(jìn)行。每條程序訓(xùn)練兩遍。語音識(shí)別程序語音訓(xùn)練完成后,要想使機(jī)器人能夠聽懂人發(fā)出的命令,還應(yīng)該對(duì)語音命令進(jìn)行語音識(shí)別,將語音信號(hào)轉(zhuǎn)化成單片機(jī)可識(shí)別的代碼,這一步也是整個(gè)設(shè)計(jì)的關(guān)鍵之所在。子程序中最重要的函數(shù)是bsr_getresult(),它的作用是從辨識(shí)器中獲取數(shù)據(jù)。根據(jù)識(shí)別情況返回不同數(shù)值。當(dāng)?shù)玫秸Z音數(shù)據(jù)的時(shí)候,經(jīng)過機(jī)器判斷會(huì)產(chǎn)生一個(gè)res值,當(dāng)沒有命令被識(shí)別出來的時(shí)候,res=0;識(shí)別器停止未初始化或識(shí)別未激活時(shí),res=-1;識(shí)別不合格的時(shí)候,res=-2;識(shí)別出來時(shí)返回命令的序號(hào)。在進(jìn)入語音識(shí)別階段,首先要對(duì)辨識(shí)器進(jìn)行初始化,并且啟動(dòng)實(shí)時(shí)監(jiān)控,以隨時(shí)接收用戶指令。然后播放語音識(shí)別提示音提示用戶開始發(fā)布命令。若識(shí)別不出來,則經(jīng)過一個(gè)定時(shí)程序判斷是否超時(shí)。超時(shí)就直接退出子程序,否則繼續(xù)識(shí)別。若識(shí)別成功則將識(shí)別出來的命令序號(hào)返給主程序。語音播放程序 本次設(shè)計(jì)采用了sacm_a2000和sacm_s480兩種語音壓縮算法進(jìn)行語音壓縮和播放,但是由于兩種語音算法僅僅是語音質(zhì)量和壓縮大小等方面有所不同,基本思想還是相同的,所以它們可以“共享”一個(gè)流程圖(如圖4.5)。當(dāng)收到播放信號(hào)的時(shí)候,子程序首先停止主程序的辨識(shí),并對(duì)語音播放系統(tǒng)進(jìn)行初始化。然后提取一個(gè)壓縮語音數(shù)據(jù)進(jìn)行播放。判斷是否播放結(jié)束,如果沒有,就繼續(xù)讀取壓縮數(shù)據(jù),解壓縮并添加到播放序列。整個(gè)語音播放結(jié)束后,開啟辨識(shí)器和實(shí)時(shí)監(jiān)控并退出子程序返回到調(diào)用點(diǎn)。機(jī)器人運(yùn)動(dòng)程序機(jī)器人的運(yùn)動(dòng)主要依靠?jī)?nèi)置電機(jī)的正反運(yùn)轉(zhuǎn),所以機(jī)器人的運(yùn)動(dòng)程序雖然比較繁瑣,但是仍然可以說是相對(duì)簡(jiǎn)單。起初,我們?cè)O(shè)想利用方波生成符合運(yùn)動(dòng)規(guī)律的交替信號(hào)來實(shí)現(xiàn)機(jī)器人的走動(dòng)。但是后期實(shí)現(xiàn)的時(shí)候我們舍棄了這一方案,因?yàn)闄C(jī)器人的運(yùn)動(dòng)是模仿人的運(yùn)動(dòng)而制作的,人的運(yùn)動(dòng)十分復(fù)雜,僅僅想要利用方波來實(shí)現(xiàn)雖然是可行的,但是對(duì)整個(gè)設(shè)計(jì)卻沒有很大的必要,費(fèi)時(shí)費(fèi)力。我們決定還是采用最原始也是相對(duì)來說比較容易想到的方法:改變端口電壓調(diào)用延時(shí)改變端口電壓調(diào)用延時(shí)。這樣做有一個(gè)好處,那就是靈活。雖然程序顯得龐大一些,但是具體設(shè)定運(yùn)動(dòng)方式時(shí)卻十分易于調(diào)整,可以在任意動(dòng)作之后隨意添加其他動(dòng)作。功能的實(shí)現(xiàn)4.1 機(jī)器人預(yù)想功能的總體實(shí)現(xiàn)首先在軟件ide上進(jìn)行程序編譯,然后將程序代碼下載到機(jī)器人的61板上。打開機(jī)器人的電源,進(jìn)行語音訓(xùn)練。如果訓(xùn)練成功則進(jìn)入語音識(shí)別狀態(tài),如果訓(xùn)練沒有成功則重復(fù)訓(xùn)練。聲音訓(xùn)練的時(shí)候可以使用不同的命令,但是由于程序是設(shè)定好的,所以盡量按照設(shè)定好的命令進(jìn)行訓(xùn)練,這樣不容易混淆。進(jìn)行訓(xùn)練的時(shí)候盡量在安靜的環(huán)境進(jìn)行。發(fā)布命令的時(shí)候注意命令的順序問題。由于程序采用模塊化設(shè)計(jì),需要機(jī)器人完成其它動(dòng)作只需要適當(dāng)更改相應(yīng)子程序,改動(dòng)方法簡(jiǎn)單易實(shí)現(xiàn),可操作性強(qiáng)。設(shè)計(jì)總結(jié)鑒于電子通信行業(yè)的飛速發(fā)展,機(jī)器智能自動(dòng)化的進(jìn)一步完美實(shí)現(xiàn)。智能機(jī)器人越來越受到人們的關(guān)注,或許美國(guó)電影(機(jī)械公敵)就是個(gè)很好的例子雖說是反面的。本次設(shè)計(jì)基于智能機(jī)器人,利用凌陽單片機(jī)spce061a在語音方面的強(qiáng)大功能,進(jìn)行人的口語語言識(shí)別。整體設(shè)計(jì)采用特定說話人語音識(shí)別,在進(jìn)行識(shí)別之前需要說話人進(jìn)行語音訓(xùn)練,非特定人不能命令機(jī)器人進(jìn)行動(dòng)作,這就排除了現(xiàn)場(chǎng)環(huán)境中有可能出現(xiàn)的包含命令關(guān)鍵字的相似語音的影響。最終完成的系統(tǒng)能夠準(zhǔn)確辨識(shí)經(jīng)過訓(xùn)練的說話人的語音,辨識(shí)效果好,準(zhǔn)確率高,語音播放聲音效果好,機(jī)器人動(dòng)作連貫流暢,很好的達(dá)到了課題的目的。畢業(yè)設(shè)計(jì)是大學(xué)生活的最后一站也是至關(guān)重要的一個(gè)環(huán)節(jié),學(xué)生們?cè)诒究茖W(xué)習(xí)階段所學(xué)的知識(shí)和掌握的能力都將在為期半年的畢業(yè)設(shè)計(jì)中完整地體現(xiàn)出來??梢哉f,畢業(yè)設(shè)計(jì)是大學(xué)生離開學(xué)校走上社會(huì)之前的一次練兵。通過畢業(yè)設(shè)計(jì)工作,同學(xué)的動(dòng)手能力和分析問題、解決問題的能力都得到了大幅度的提升,為以后更進(jìn)一步的學(xué)習(xí)和工作打下了堅(jiān)實(shí)的基礎(chǔ)。畢業(yè)設(shè)計(jì)收獲很多,比如學(xué)會(huì)了查找相關(guān)資料相關(guān)標(biāo)準(zhǔn),分析數(shù)據(jù),提高了自己的繪圖能力,懂得了許多經(jīng)驗(yàn)公式的獲得是前人不懈努力的結(jié)果。同時(shí),仍有很多課題需要后輩去努力去完善。但是畢業(yè)設(shè)計(jì)也暴露出自己專業(yè)基礎(chǔ)的很多不足之處。比如缺乏綜合應(yīng)用專業(yè)知識(shí)的能力,對(duì)材料的不了解,等等。這次實(shí)踐是對(duì)自己大學(xué)四年所學(xué)的一次大檢閱,使我明白自己知識(shí)還很淺薄,雖然馬上要畢業(yè)了,但是自己的求學(xué)之路還很長(zhǎng),以后更應(yīng)該在工作中學(xué)習(xí),努力使自己 成為一個(gè)對(duì)社會(huì)有所貢獻(xiàn)的人。ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqk

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論