畢業(yè)論文---利用matlab平臺實現(xiàn)少量字的語音識別_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)論文(設(shè)計)</p><p>  論文題目: 利用MATLAB平臺實現(xiàn) </p><p>  少量字的語音識別功能 </p><p>  院 系: 物理系 </p><p>  專 業(yè): 物理學

2、 </p><p>  姓 名: </p><p>  學 號: </p><p>  指導(dǎo)教師: </p><p>  2007 年 6 月 19

3、 日</p><p><b>  目 錄</b></p><p><b>  引言4</b></p><p>  1.語音識別簡介5</p><p>  1.1語音識別系統(tǒng)的分類5</p><p>  1.2語音識別系統(tǒng)的基本構(gòu)成5</p><p

4、>  2.語音識別參數(shù)6</p><p>  2.1線性預(yù)測系數(shù)(LPC)6</p><p>  2.2線性預(yù)測倒譜系數(shù)(LPCC)8</p><p>  2.3 MFCC系數(shù)8</p><p>  2.4參數(shù)計算流程9</p><p>  3.DTW算法11</p><p>

5、  3.1 DTW算法原理11</p><p>  3.2 DTW的高效算法14</p><p>  4.HMM算法16</p><p>  4.1 HMM的原理16</p><p>  4.2 HMM的前向概率和后向概率17</p><p>  4.3識別算法——Viterbi解碼19</p>

6、<p>  4.4 baum-welch算法20</p><p>  5.實驗及總結(jié)23</p><p>  5.1 實驗準備以及步驟23</p><p>  5.2 實驗結(jié)果及討論25</p><p>  5.3 實驗結(jié)論29</p><p><b>  參考文獻30</b&

7、gt;</p><p><b>  致 謝31</b></p><p><b>  引 言</b></p><p>  自上世紀80年代開始,語音識別技術(shù)的研究進入了一個蓬勃發(fā)展的時期,一些商用系統(tǒng)也從實驗室進入市場。然而,在實際的應(yīng)用中,由于各種干擾因素導(dǎo)致的測試條件與訓(xùn)練環(huán)境的不匹配,系統(tǒng)的性能往往會收到極大的

8、影響。因此提高語音識別系統(tǒng)的性能就成為了語音識別技術(shù)真正走向?qū)嵱没年P(guān)鍵課題。</p><p>  語音識別是以聲音作為研究對象它是語音信號處理的一個重要研究方向,是模式識別的一個分支涉及到生理學、心理學、語言學、計算機科學以及信號處理等諸多領(lǐng)域,甚至還涉及到人的體態(tài)語言(如人在說話時的表情、手勢等行為動作可幫助對方理解),其最終目標是實現(xiàn)人與機器進行自然語言通信。本文研究了漢語語音識別技術(shù)及其實現(xiàn)方法。論文首先

9、分析了語音信號預(yù)處理問題。對MFCC倒譜系數(shù)在語音識別中的運用做了詳細介紹。其次研究了基于DTW的語音識別系統(tǒng),針對DTW算法中系統(tǒng)識別性能過分依賴于端點檢測、動態(tài)規(guī)劃的計算量太大等缺陷,分別提出了快速DTW算法和端點松動的DTW算法,仿真結(jié)果比較理想。繼而研究了基于HMM的語音識別系統(tǒng)。針對HMM在實際應(yīng)用中的優(yōu)化計算問題,包括初始模型選取,定標等進行了深入的分析與探討。針對傳統(tǒng)定標仍能溢出的問題,給出了無溢出的參數(shù)重估公式。<

10、/p><p>  第一章 語音識別簡介</p><p>  1.1語音識別系統(tǒng)的分類</p><p>  語音識別是近年來十分活躍的一個研究領(lǐng)域。在不遠的將來,語音識別技術(shù)有可能作為一種重要的人機交互手段,輔助甚至取代傳統(tǒng)的鍵盤、鼠標等輸入設(shè)備,在個人計算機上進行文字錄入和操作控制。本文介紹了語音識別的基本流程、所用到的語音參數(shù)算法、語音識別的訓(xùn)練算法和識別算法做初步的

11、探究,主要運用了特定人孤立詞識別的DTW算法和非特定人識別的連續(xù)HMM算法的MATLAB識別系統(tǒng)。</p><p>  語音識別按說話人的講話方式可分為孤立詞(Isolated Word)識別、連接詞(Connected Word)識別和連續(xù)語音(Continuous Speech)識別。孤立詞識別是指說話人每次只說一個詞或短語,每個詞或短語在詞匯表中都算作一個詞條,一般用在語音電話撥號系統(tǒng)中。連接詞語音識別支持

12、一個小的語法網(wǎng)絡(luò),其內(nèi)部形成一個狀態(tài)機,可以實現(xiàn)簡單的家用電器的控制,而復(fù)雜的連接詞語音識別系統(tǒng)可以用于電話語音查詢、航空定票等系統(tǒng)。連續(xù)語音識別是指對說話人以日常自然的方式發(fā)音,通常特指用于語音錄入的聽寫機。顯然,連續(xù)非特定人語音識別的難度要大得多,因為不僅有說話人口音的問題,還有協(xié)同發(fā)音、斷字斷句、搜索等問題,除了考慮語音的聲學模型外還要涉及到語言模型,如構(gòu)詞法、文法等。</p><p>  從識別對象的類型

13、來看,語音識別可以分為特定人(Speaker Dependent)語音識別和非特定人(Speaker Independent)語音識別。特定人是指只針對一個用戶的語音識別,非特定人則可用于不同的用戶。實際上,非特定人語音識別的初始識別率往往都比較低,一般都要求用戶花一定的時間對系統(tǒng)進行訓(xùn)練,將系統(tǒng)的參數(shù)進行一定的自適應(yīng)調(diào)整,才能使識別率達到滿意的程度。</p><p>  非特定人大詞表連續(xù)語音識別是近幾年研究的

14、重點,也是研究的難點。目前的連續(xù)語音識別大多是基于HMM(隱馬爾可夫模型)框架,并將聲學、語言學的知識統(tǒng)一引入來改善這個框架,其硬件平臺通常是功能強大的工作站或PC機。</p><p>  1.2語音識別系統(tǒng)的基本構(gòu)成</p><p>  語音識別系統(tǒng)的典型實現(xiàn)方案為:輸入的模擬語音信號首先要進行預(yù)處理,包括預(yù)濾波、采樣和量化、加窗、端點檢測、預(yù)加重等。語音信號經(jīng)預(yù)處理后,接下來很重要的一

15、環(huán)就是特征參數(shù)提取。對特征參數(shù)的要求是:</p><p>  提取的特征參數(shù)能有效地代表語音特征,具有很好的區(qū)分性。</p><p>  各階參數(shù)之間有良好的獨立性。</p><p>  特征參數(shù)要計算方便,最好有高效的計算方法,以保證語音識別的實時實現(xiàn)。</p><p>  在訓(xùn)練階段,將特征參數(shù)進行一定的處理之后,為每個詞條得到一個模型,

16、保存為模版庫。在識別階段,語音喜好經(jīng)過相同的通道得到語音參數(shù),生成測試模版,與參考模版進行匹配,將匹配分數(shù)最高的參考模版作為識別結(jié)果。同時還可以在很多先驗知識的幫助下,提高識別的準確率。</p><p>  第二章 語音識別的參數(shù)</p><p>  2.1 線性預(yù)測系數(shù)</p><p>  語音信號是一種典型的時變信號,然而如果把觀察時間縮短到十毫秒至幾十毫秒,則

17、可以得到一系列近似穩(wěn)定的信號。人的發(fā)音器官可以用若干段前后連接的聲管進行模擬,這就是所謂的聲管模型。下圖為語音產(chǎn)生的生理結(jié)構(gòu)示意圖:</p><p>  圖2-1 語音產(chǎn)生的生理結(jié)構(gòu)示意圖[1]</p><p>  由于發(fā)音器官不可能毫無規(guī)律地快速變化,因此語音信號是準穩(wěn)定的(quasi steady)。全極點線性預(yù)測模型(LPC)可以對聲管模型進行很好的描述,這里信號的激勵源是由肺部氣

18、流的沖擊引起的,聲帶可以有周期振動也可以不振動,分別對應(yīng)濁音(Vowel)和清音(Consonant),而每段聲管則對應(yīng)一個LPC模型的極點。一般情況下,極點的個數(shù)在12~16之間,就可以足夠清晰地描述語音信號的特征了。LPC是語音分析的重要手段,它能很好地進行譜估計,即可作為語音特征的參數(shù)。因此僅用12個LPC系數(shù)就能很好地表示復(fù)雜語音信號的特征,這就大大降低了信號的冗余度并有效地減少了計算量和存儲量,使之成為語音識別和語音壓縮的基礎(chǔ)

19、。下圖為以聲管模型為基礎(chǔ)的LPC模型:</p><p>  圖2-2 以聲管模型為基礎(chǔ)的LPC模型</p><p>  由: </p><p>  該式表示p個方程構(gòu)成的方程組,未知數(shù)為p個。求解該方程組,就可以得到系統(tǒng)的線性預(yù)測系數(shù)。由基于自相關(guān)的遞推求解公式求解,也就是所謂的Durbi

20、n算法得:</p><p>  ………………………………………………2.1</p><p>  ……………………………..2.2</p><p>  …………………………………………………...2.3</p><p>  …………………………..2.4</p><p>  ………………………………………2.5</

21、p><p>  公式中,上標表示第次迭代,每次迭代只計算和更新 直到時,結(jié)束迭代。</p><p>  在MATLAB中利用lpc函數(shù)[2]計算LPC系數(shù),其語法為:</p><p>  a = lpc(x,n);</p><p>  這里x為一幀語音信號,n為計算LPC參數(shù)的階數(shù)。通常x為240點或256點的數(shù)據(jù),n取10~12,對語音識別來說

22、就已經(jīng)足夠。</p><p>  2.2 線性預(yù)測倒譜系數(shù)</p><p>  在語音識別系統(tǒng)中,很少直接使用LPC系數(shù),而是由LPC系數(shù)推導(dǎo)出另一種參數(shù):線性預(yù)測倒譜系數(shù)(LPCC)。倒譜實際上是一種同態(tài)信號處理方法,標準的倒譜系數(shù)計算流程需要進行FFT變換[3],對數(shù)操作和相位校正等步驟,運算比較復(fù)雜。在實際運作中大多數(shù)語音識別系統(tǒng)都會采用倒譜參數(shù)來作為有關(guān)距離的度量。LPC 倒譜系數(shù)

23、是描述說話人聲道特性的,廣泛應(yīng)用于聲紋識別。在實際計算中,當序列x(n)為最小相位的情況下,可以利用序列x(n)及其倒譜系數(shù)c(n)的遞推關(guān)系來簡化計算。</p><p>  序列x(n)及其復(fù)倒譜系數(shù)c(n)的遞推公式如下:</p><p>  ……...………...….2.6</p><p>  LPCC參數(shù)是一種非常重要的參數(shù),它不是由原始信號x(n)得到,而

24、是由LPC系數(shù)得到的。由2.6式可得LPC到LPCC的直接遞推關(guān)系。</p><p>  ……………………………………………..2.7</p><p>  ……………………2.8</p><p>  ………………………...…..2.9</p><p>  2.3 MFCC系數(shù)</p><p>  LPC模型是基于發(fā)音

25、模型建立的,LPCC系數(shù)也是一種基于合成的參數(shù)。這種參數(shù)沒有充分利用人耳的聽覺特性。實際上,人的聽覺系統(tǒng)是一個特殊的非線性系統(tǒng),它響應(yīng)不同頻率信號的靈敏度是不同的,基本上是一個對數(shù)的關(guān)系。近年來,一種能夠比較充分利用人耳這種特殊的感知特性的參數(shù)得到了廣泛的應(yīng)用,這就是Mel尺度倒譜參數(shù)(Mel-scaled Cepstrum Coefficient),或稱Mel頻率倒譜系數(shù),簡稱為MFCC。大量的研究表明,MFCC參數(shù)能夠比LPCC參數(shù)

26、更好地提高系統(tǒng)的識別性能。從目前使用的情況來看,在大詞匯量語音識別應(yīng)用中已逐漸取代原本常用的線性預(yù)測編碼導(dǎo)出的倒頻譜參數(shù),原因是它考慮了人類發(fā)聲與接收聲音的特性,具有更好的魯棒性。由于語音信號在時域上的變化快速而不穩(wěn)定,所以通常都將它轉(zhuǎn)換到頻域上來觀察,此時它的頻譜會隨著時間作緩慢的變化。所以通常將加窗后的幀經(jīng)過快速傅立葉變換(FFT),求出每幀的頻譜參數(shù)。再將每幀的頻譜參數(shù)通過一組N 個( N 一般為20 ~ 30 個)三角形帶通濾波

27、器所組成的Mel頻率濾波器,將每個頻帶的輸出取對數(shù),求出每一個輸出的對數(shù)能量(log energy)</p><p>  MFCC參數(shù)的計算是以“bark”為其頻率基準的,它和線性頻率的轉(zhuǎn)換關(guān)系是:</p><p>  ……………………………….2.10</p><p>  MFCC參數(shù)也是按幀計算的。首先要通過FFT得到該幀信號的功率譜,轉(zhuǎn)換為Mel頻率下的功率譜

28、。這需要在計算之前先在語音的頻譜范圍內(nèi)設(shè)置若干個帶通濾波器:</p><p><b>  ………2.11</b></p><p>  MFCC參數(shù)的計算通常采用如下的流程:</p><p>  (1)首先確定每一幀語音采樣序列的點數(shù)。對每幀序列進行預(yù)加重處理后再經(jīng)過離散FFT變換,取模的平方得到離散功率譜。</p><p&g

29、t;  (2)計算通過M個后所得的功率值,即計算和在各離散頻率點上乘積之和,得到M個參數(shù),。</p><p> ?。?)計算的自然對數(shù),得到,。</p><p> ?。?)對計算其離散余弦變換,得到,。</p><p>  (5)舍去代表直流成分的,取作為MFCC參數(shù)。</p><p>  MATLAB中計算mfcc參數(shù)的函數(shù)為melceps

30、t.m,其中調(diào)用了函數(shù)melbankm.m,用來計算M個濾波器的系數(shù)。</p><p>  2.4 完整的參數(shù)計算流程</p><p><b>  特征提取方法:</b></p><p>  特征的選取取決于具體的系統(tǒng),下面的特征是有代表性的:</p><p><b>  ①幅度(或功率)</b>&

31、lt;/p><p><b> ?、谶^零率</b></p><p><b> ?、叟R界帶特征矢量</b></p><p> ?、芫€形預(yù)測系數(shù)特征矢量(LPC)</p><p> ?、軱PC倒譜特征矢量(LPCC)</p><p> ?、?Mel倒譜系數(shù)(MFCC)</p>

32、;<p> ?、咔叭齻€共振峰F1,F2,F3</p><p><b>  具體步驟分4步:</b></p><p><b>  1.端點檢測</b></p><p>  所謂端點檢測,就是在實時輸入的聲音信號中,區(qū)分背景噪聲和環(huán)境噪聲,準確地判斷出聲音信號的開始點和結(jié)束點。這一過程應(yīng)由特定的算法自動完成,通常

33、利用短時能量來檢測濁音,用過零率來檢測清音,兩者配合實現(xiàn)可靠的端點檢測。端點檢測算法常用的是由語音能量和過零率組合的有雙門限法,以及短時能量和過零率的乘積構(gòu)成的能頻值法。</p><p><b>  預(yù)加重濾波器</b></p><p>  在語音參數(shù)計算之前,一般要將其通過一個預(yù)加重濾波器。</p><p><b>  倒譜提升窗口

34、</b></p><p>  在為每幀數(shù)據(jù)計算出階MFCC參數(shù)后,通常還要為這個系數(shù)分別乘以不同的權(quán)系數(shù),實際上是一個短的窗口:</p><p>  ……………………………………………..2.12</p><p>  ……………………2.13</p><p><b>  差分倒譜系數(shù)</b></p>

35、;<p>  標準的MFCC參數(shù)只反映了語音參數(shù)的靜態(tài)特性,而人耳對語音的動態(tài)特征更為敏感,通常用差分倒譜參數(shù)來描述這種動態(tài)特性。</p><p>  差分參數(shù)的計算采用下面的公式:</p><p>  …………………….2.14</p><p>  這里c和d都表示一幀語音參數(shù),k為常數(shù),通常取2,這時差分參數(shù)就稱為當前幀的前兩幀和后兩幀參數(shù)的線性組

36、合。</p><p><b>  第三章 DTW算法</b></p><p>  3.1 DTW算法原理</p><p>  在孤立詞語音識別中,最為簡單有效的方法是采用DTW(Dynamic Time Warping,動態(tài)時間彎折)算法,該算法基于動態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識別中出現(xiàn)較早、較為經(jīng)典的一種算

37、法。用于孤立詞識別,DTW算法與HMM算法在相同的環(huán)境條件下,識別效果相差不大,但HMM算法要復(fù)雜得多,主要體現(xiàn)在HMM算法在訓(xùn)練階段需要提供大量的語音數(shù)據(jù),通過反復(fù)計算才能得到模型參數(shù),而DTW算法的訓(xùn)練中幾乎不需要額外的計算。所以在孤立詞語音識別中,DTW算法仍得到廣泛的應(yīng)用。</p><p>  在訓(xùn)練和建立模板階段以及在識別階段,都采用端點檢測算法確定語音的起點和終點。已存入模板庫的各個詞條稱為參考模板,

38、一個參考模板可表示為,m為訓(xùn)練語音幀的時序標號,m=1為起點語音幀,m=M為終點語音幀,因此為該模板所包含的語音幀總數(shù),為第幀的語音特征矢量。所要識別的一個輸入詞條語音稱為測試模板,可表示為,為測試語音幀的時序標號,n=1為起點語音幀,n=N為終點語音幀,因此N為該模板所包含的語音幀總數(shù),T(n)為第n幀的語音特征矢量。參考模板與測試模板一般采用相同類型的特征矢量(如MFCC系數(shù))、相同的幀長、相同的窗函數(shù)和相同的幀移。測試和參考模板分

39、別用T和R表示,為了比較它們之間的相似度,可以計算它們之間的距離D[T,R],距離越小則相似度越高。為了計算這一失真距離,應(yīng)從T和R中各個對應(yīng)幀之間的距離算起。設(shè)n和m分別是T和R中任意選擇的幀號,d[T(n),R(m)]表示這兩幀之間的距離。距離函數(shù)取決于實際采用的距離度量,在DTW算法中通常采用歐氏距離。</p><p>  若N=M則可以直接計算,否則要考慮將T(n)和R(m)對齊。對齊可以采用線性擴張的方

40、法,如果N<M可以將T線性映射為一個M幀的序列,再計算它與之間的距離。但是這樣的計算沒有考慮到語音中各個段在不同的情況下的持續(xù)時間會產(chǎn)生或長或短的變化,因此識別效果不可能最佳。因而更多地是采用動態(tài)規(guī)劃(DP)的方法。</p><p>  如果把測試模板的各個幀號n=1~N在一個二維直角坐標系中的橫軸上標出,把參考模板的各幀號m=1~M在縱軸上標出,通過這些表示幀號的整數(shù)坐標畫出一些縱橫線即可形成一個網(wǎng)格,網(wǎng)

41、格中的每一個交叉點(n,m)表示測試模式中某一幀與訓(xùn)練模式中某一幀的交匯點。DP算法可以歸結(jié)為尋找一條通過此網(wǎng)格中若干格點的路徑,路徑通過的格點即為測試和參考模板中進行距離計算的幀號。路徑不是隨意選擇的,首先任何一種語音的發(fā)音快慢都有可能變化,但是其各部分的先后次序不可能改變,因此所選的路徑必定是從左下角出發(fā),在右上角結(jié)束</p><p>  圖3-1 DTW算法路徑原理示意圖</p><p

42、>  為了描述這條路徑,假設(shè)路徑通過的所有格點依次為其中=(1,1),=(N,M)。路徑可以用函數(shù)描述,其中,。那么下一個通過的格點只可能是下列三中情況之一:</p><p>  …………………………..3.1</p><p>  用表示上述三個約束條件。求最佳路徑的問題可以歸結(jié)為滿足約束條件時,求最佳路徑函數(shù),使得沿路徑的積累距離達到最小值,即:</p><p&

43、gt;<b>  ………...3.2</b></p><p>  搜索該路徑的方法如下:搜索從點出發(fā),可以展開若干條滿足的路徑,假設(shè)可計算每條路徑達到點時的總的積累距離,具有最小累積距離者即為最佳路徑。易于證明,限定范圍內(nèi)的任一格點只可能有一條搜索路徑通過。對于,其可達到該格點的前一個格點只可能是、和,那么一定選擇這3個距離中的最小者所對應(yīng)的格點作為其前續(xù)格點,若用代表此格點,并將通過該格點

44、之路徑延伸而通過,這時此路徑的積累距離為:</p><p>  …………….....3.3</p><p><b>  ….3.4</b></p><p>  這樣可以從=(1,1)出發(fā)搜索,再搜索……,對每一個都存儲相應(yīng)的前一格點及相應(yīng)的幀匹配距離。搜索到時,只保留一條最佳路徑。這便是DTW算法。[5]</p><p>

45、;  3.2 DTW的高效算法</p><p>  由于匹配過程中限定了彎折的斜率,因此許多格點實際上是到達不了的,如下圖所示。因此菱形之外的格點對應(yīng)的幀匹配距離是不需要計算的。另外也沒有必要保存所有的幀匹配距離矩陣和累積距離矩陣,因為每一列各格點上的匹配計算只用到了前一列的三個網(wǎng)格。充分利用這兩個特點可以減少計算量和存儲空間的需求。</p><p>  如圖所示,把實際的動態(tài)彎折分為三段

46、,,其中:</p><p>  ……………………………3.5</p><p>  圖3-2 DTW高效路徑示意圖</p><p>  和都取最相近的整數(shù)。由此也得出對M和N長度的限制條件:</p><p>  ………………………………..3.6</p><p>  當不滿足以上條件時,認為兩者差別實在太大,無法進行動

47、態(tài)彎折匹配。</p><p>  在X軸上的每一幀不再需要與Y軸上的每一幀進行比較,而只是與Y軸上間的幀進行比較,和的計算如下式:</p><p>  ................................3.7</p><p>  ………………….3.8</p><p>  也可能會出現(xiàn)的情況,此時彎折匹配的三段為。</p&

48、gt;<p>  對于X軸上每前進一幀,雖然所要比較的Y軸上的幀數(shù)不同,但彎折特性是一樣的,累積距離的更新都是用下式實現(xiàn)的:</p><p><b>  ……..3.9</b></p><p>  由于X軸上每前進一幀,只需要用到前一列的累積距離,所以只需要兩個列矢量D和d分別保存前一列的累積距離和計算當前列的累積距離,而不用保存整個距離矩陣。每前進一幀

49、都進行更新,即按上式利用前一列的累積距離D和當前列的所有幀匹配距離d(x,y),求出當前幀的累積距離,保存于矢量d中,再把新的距離d賦值給D,作為新的累積距離,供下一列使用。這樣一直前進到X軸上最后一列,矢量D的第M個元素即為兩個模板動態(tài)彎折的匹配距離。</p><p>  圖3-3 DTW改進算法模型[6]</p><p>  第四章 非特定人語音識別算法——HMM</p>

50、<p>  4.1 HMM的原理</p><p><b>  HMM基本概念</b></p><p>  HMM,即隱馬爾科夫模型(Hidden Markov Model),是在Markov鏈的基礎(chǔ)之上發(fā)展起來的。由于實際問題比Markov鏈模型所描述的更為復(fù)雜,觀察到的事件并不是與狀態(tài)一一對應(yīng),而是通過一組概率分布相聯(lián)系,這樣的模型就稱為HMM。它是一

51、個雙重隨機過程,其中之一是Markov鏈,這是基本隨機過程,它描述狀態(tài)的轉(zhuǎn)移。另一個隨機過程描述狀態(tài)和觀察值之間的統(tǒng)計對應(yīng)關(guān)系,即站在觀察者的角度,只能看到觀察值,不能直接看到狀態(tài),而是通過一個隨機過程去感知狀態(tài)的存在及其特性。</p><p>  一個HMM模型由若干個狀態(tài)組成,隨著時間的變化,各個狀態(tài)之間可以發(fā)生轉(zhuǎn)移,也可以在一個狀態(tài)內(nèi)駐留。每個觀察向量對不同的狀態(tài)都有相應(yīng)的輸出頻率。[7]以一個包含四個狀態(tài)

52、為例,狀態(tài)之間或狀態(tài)自身的轉(zhuǎn)移概率用表示,輸入觀察序列為。每個觀察序列是一幀MFCC參數(shù)。在這個模型中,序列是可觀測的輸入序列,稱為觀察序列,而每一時刻所處的狀態(tài)卻是隱含的。下表為HMM模型的各參數(shù)及其說明[8]:</p><p>  其中輸出概率密度函數(shù)中參數(shù)描述如下表所示。</p><p>  權(quán)系數(shù)滿足下面的條件</p><p>  ……………………………4.

53、1</p><p>  這種連續(xù)混合高斯HMM通常簡稱為CHMM。對于每一個狀態(tài),都用若干個正態(tài)高斯概率密度函數(shù)(簡稱為pdf)的線性組合來表示,每個pdf有各自的均值矢量和協(xié)方差矩陣,這些都是通過對大量的MFCC參數(shù)進行統(tǒng)計得到的。</p><p>  對于HMM模型,有三個基本問題需要解決:</p><p> ?。?)給定觀察序列和HMM模型計算觀察斜率對HMM

54、模型的輸出概率。</p><p> ?。?)給定觀察序列和HMM模型確定一個最優(yōu)的狀態(tài)轉(zhuǎn)移序列。</p><p><b> ?。?)調(diào)整使最大。</b></p><p>  4.2 前向概率和后向概率——HMM的輸出概率計算</p><p>  1.HMM輸出概率的計算</p><p>  給定觀

55、察序列和HMM模型,如果已知狀態(tài)轉(zhuǎn)移序列,則有:</p><p><b>  …...4.2</b></p><p>  HMM模型輸出序列q的概率為:</p><p>  ……………….4.3</p><p>  對所有可能的狀態(tài)轉(zhuǎn)移序列q,模型輸出觀察序列O的概率[9]。由全概率公式可得:</p>&l

56、t;p><b>  ….4.4</b></p><p>  該式大約需要次計算,這在實際中是無法承受的。為了降低計算復(fù)雜度,可以采用前向和后向算法。</p><p>  2.HMM的前向概率和后向概率</p><p>  首先定義HMM的前向概率為:</p><p>  ………………………...4.5</p&

57、gt;<p>  表示給定HMM模型參數(shù),部分觀察序列在t時刻處于狀態(tài)的概率。那么有:</p><p><b>  初始化:</b></p><p>  …………………………4.6</p><p><b>  遞歸:</b></p><p>  …………...4.7</p>

58、<p><b>  終結(jié):</b></p><p>  ………………………………4.8</p><p>  與前向概率相對應(yīng),還有后向概率。定義后向概率為:</p><p>  ……………………....4.9</p><p>  表示HMM模型參數(shù),觀察序列在t時刻處于狀態(tài)i,系統(tǒng)輸出部分觀察序列的概率。&

59、lt;/p><p>  后向概率也有類似的遞推公式計算:</p><p><b>  a) 初始化:</b></p><p>  ……………………………4.10</p><p><b>  遞歸:</b></p><p><b>  ………….4.11</b>

60、;</p><p><b>  終結(jié):</b></p><p>  前向概率和后向概率的遞推關(guān)系由下圖說明</p><p>  圖4-1 前向概率和后向概率示意圖</p><p>  3.利用前向概率和后向概率計算輸出概率</p><p>  前向概率公式和后向概率公式巧妙地將整個觀察序列對HMM

61、模型的輸出概率分成兩個部分觀察序列的輸出概率的乘積,而且它們各自都有相應(yīng)的遞推公式,可以大大簡化計算[10]。經(jīng)過分析,可以得到下面的輸出概率計算公式:</p><p>  ………………4.12</p><p>  實際上,這就是HMM三個基本問題中第一個問題的解答。它的另一種常用的形式是:</p><p>  …………..4.13</p><p

62、>  實際計算中首先計算出對于每個t和每個狀態(tài)i的前向概率和后向概率,然后套用上面的公式,計算出該觀察序列對模型的輸出概率。這兩個公式也稱為全概率公式。</p><p>  4.3 識別算法——Viterbi解碼</p><p>  Viterbi算法,不僅可以找到一條足夠好的狀態(tài)轉(zhuǎn)移路徑,還可以得到該路徑所對應(yīng)的輸出概率。同時,用Viterbi算法計算輸出概率所需要的計算量要比全概

63、率公式的計算量小很多。</p><p>  定義為時刻t時沿一條路徑,且,產(chǎn)生出的最大概率,即有</p><p>  ……………..4.14</p><p>  Viterbi算法的遞推形式如下</p><p><b>  初始化</b></p><p>  ………………………….4.15<

64、/p><p>  …………………………………...4.16</p><p><b>  遞歸</b></p><p>  …………..4.17</p><p>  ..................4.18</p><p><b>  終結(jié)</b></p><

65、;p>  ………………………………4.19</p><p>  …………………………..4.20</p><p><b>  狀態(tài)序列求取:</b></p><p>  ……………….4.21</p><p>  這里,為t時刻第i狀態(tài)的累積輸出概率,為t時刻第i狀態(tài)的前續(xù)狀態(tài)號,為最優(yōu)狀態(tài)序列中t時刻所處的狀態(tài),

66、為最終的輸出概率。</p><p>  對語音處理應(yīng)用而言,動態(tài)范圍很大,或者說不同的Q使的值差別很大,而事實上是中舉足輕重的唯一成分,因此,常常等價地使用和,那么,Viterbi算法也能用來計算。</p><p>  4.4 Baum-Welch 算法</p><p>  這個算法實際上是解決HMM訓(xùn)練,即HMM參數(shù)估計問題,或者說,給定一個觀察值序列,該算法能確

67、定一個,使最大。</p><p>  由前向變量和后向變量的定義,有:</p><p>  …………..4.22</p><p>  這里,求取,使最大是一個泛函極值問題。但是由于給定的訓(xùn)練序列有限,因而不存在一個最佳的方法來估計。在這種情況下,Baum-Welch算法利用遞歸的思想,使局部極大,最后得到模型參數(shù)。</p><p>  定義為

68、給頂訓(xùn)練序列O和模型時,時刻t時Markov鏈處于狀態(tài)和時刻t+1為狀態(tài)的概率,即</p><p>  …………………………4.23</p><p><b>  可以推導(dǎo)出:</b></p><p>  …………………4.24</p><p>  那么,時刻t時Markov鏈處于狀態(tài)的概率為:</p>&l

69、t;p>  …………….…………4.25</p><p>  因此,表示從狀態(tài)轉(zhuǎn)移到狀態(tài)的次數(shù)的期望值。由此,導(dǎo)出了Baum-Welch算法的重估公式[11](reestimation):</p><p>  ..…………………………………..4.26</p><p>  ……………… 4.27</p><p>  …………….4.28

70、</p><p><b>  試推導(dǎo)該重估公式:</b></p><p>  引理:設(shè)為正實數(shù),為非負實數(shù),即,那么由對數(shù)函數(shù)的凹特性有如下結(jié)論:</p><p>  ……..……….………..4.29</p><p>  ………………….………..4.30</p><p>  ..……………4.

71、31</p><p>  此處所有求和均是從1到S。</p><p><b>  定義輔助函數(shù)</b></p><p>  ...……………4.32</p><p>  其中,為原來的模型,為新求取的模型,O為訓(xùn)練用觀察值序列,,S為某個狀態(tài)序列,那么,由引理易推出下面的定理[12]:</p><p&

72、gt;  如果,那么。…………………..……..4.33</p><p>  該定理構(gòu)成了重估公式的理論基礎(chǔ):對輔助函數(shù),重要能找到,使達到最大值,那么就能保證,從而使,這樣,新得到的模型在表示訓(xùn)練序列O方面就比原來的模型要好。一直重復(fù)這個過程,直到某個收斂點,就可以得到根據(jù)訓(xùn)練序列O估計出的結(jié)果模型,而使最大而求取參數(shù)的公式就稱之為重估公式。不同的,其參數(shù),A和B就不同,重估公式的具體形式也不同[13]。<

73、;/p><p><b>  第五章 實驗及總結(jié)</b></p><p>  5.1 實驗準備及步驟</p><p>  實驗平臺為Windows平臺上,采用Matlab數(shù)學工具通過完成程序而實現(xiàn)的。本實驗主要采用DTW算法實現(xiàn)語音識別。</p><p>  首先,我們使用windows自帶的錄音器,分別由我和合作者黃博錄入了

74、4組數(shù)據(jù)(1人兩組),每組8個音頻文件,本別為從“一”到“八”的漢語發(fā)音。其中一組為參考模板,另外一組為測試模板。</p><p>  首先用wavread函數(shù)讀入wav文件,用mfcc函數(shù)獲得其MFCC參數(shù),用vad函數(shù)對其進行端點檢測,并保存語音部分的MFCC參數(shù)到參考模板的機構(gòu)數(shù)組ref(i).mfcc中。</p><p>  我們比較一下兩個人的語音端點檢測的短時信號圖:</

75、p><p>  圖5-1 說話者A發(fā)音的vad輸出(1)——橫軸:時間(單位:秒)縱軸:能量——(單位:eV)(上圖)語音原始信號;Energy 短時能量(單位:eV);ZCR 過零率(單位:%)</p><p>  圖5-2 說話者A發(fā)音的vad輸出(2)——橫軸:時間(單位:秒)——縱軸:能量(單位:eV)(上圖)語音原始信號;Energy 短時能量(單位:eV);ZCR 過零率(單位:%

76、)</p><p>  圖5-3說話者B發(fā)音的vad輸出(2)——橫軸:時間(單位:秒)——縱軸:能量(單位:eV)(上圖)語音原始信號;Energy 短時能量(單位:eV);ZCR 過零率(單位:%)</p><p>  Vad函數(shù)的功能就是通過端點檢測功能甄別出語音信號的起始點與結(jié)束點,圖中的紅線就是程序標記的語音信號始末點,可以看出,雜音基本被排除,效果是非常明顯的。</p&g

77、t;<p>  同時,從以上三個圖的對比可以看出,不同發(fā)音者的發(fā)音波形及特性有較明顯區(qū)別。</p><p>  原始波形中,發(fā)音者A的波形在橫軸兩端不對稱,而發(fā)音者B的波形在橫軸兩端比較對稱;</p><p>  能量波形中,兩者的區(qū)別更加明顯:發(fā)音者A的能量高峰在語音后部,發(fā)音者B的能量高峰在語音前部;</p><p>  過零率波形中也可以明顯看出

78、兩個人的區(qū)別。端點檢測下的短時能量分析只是語音識別的第一步,但是通過該步驟已經(jīng)可以粗略的區(qū)別出不同發(fā)音者,并且可以進一步分析發(fā)音者語音信號的特點。由此證明了端點檢測在語音識別中是非常重要的。</p><p>  5.2 實驗結(jié)果及討論</p><p>  本實驗的MATLAB運行環(huán)境中輸出結(jié)果如下列圖所示:</p><p>  圖5-4 說話者A的兩組語音匹配結(jié)果及

79、距離匹配矩陣</p><p>  圖6 說話者B的兩組語音匹配結(jié)果及距離矩陣</p><p>  從輸出記過看,識別具有了一定程度的正確度。為了進一步驗證結(jié)果,看一下匹配距離矩陣dist的數(shù)據(jù)如下圖所示:</p><p>  距離矩陣的對角線上是正確匹配模板的對應(yīng)分數(shù),可見對角線上的8個數(shù)值中有50%都是在本行中最小的,由此驗證了識別結(jié)果的正確性。</p>

80、;<p>  圖5-5說話者B的兩組語音匹配結(jié)果及距離匹配矩陣</p><p>  圖5-6說話者A和B 的語音匹配結(jié)果及距離匹配矩陣</p><p>  圖5-7 說話者A和B的匹配矩陣的三維曲面圖</p><p>  圖5-8 說話者A和B的匹配矩陣的的三維柱狀圖</p><p>  圖5-9 說話者A和B的匹配矩陣的灰度視

81、圖</p><p>  結(jié)果顯示:說話者A的自匹配識別率為89%,說話者B的自匹配識別率也為89% ,而A和B之間的識別率為62% 。</p><p>  圖5-4,圖5-5,圖5-6中的匹配矩陣元為每個語音信號和參考模板中所有共8個語音信號的匹配距離,可以看出,在正確識別情況下,矩陣對角線上的矩陣元是本行中最小的(同一個語音信號和自己匹配距離最?。?,在匹配失敗的情況下,對角線上的矩陣元也

82、是次最小的。這一結(jié)果說明了DTW的可靠性和穩(wěn)定性。</p><p>  圖5-7,圖5-8,圖5-9以不同方式直觀的顯示了矩陣元的大小關(guān)系。X軸表示說話者A的語音信號編號,Y軸表示說話者B的語音信號編號,Z軸表示矩陣元的大小。</p><p>  三維曲面圖中的藍色部分,灰度圖中的全黑色部分為數(shù)值較小區(qū)域,可以看書,這個區(qū)域基本是在對角線上的?;叶葓D中的紅色連線便顯示了黑色方塊分布在對角線

83、上及附近。</p><p>  自匹配的識別準確率達到90%,而不同發(fā)音者之間的識別率有明顯下降,為60%。這也是顯示出DTW算法在非特定人語音識別中不如特定人語音識別準確。</p><p>  文獻[1]指出,使用DTW算法的特定人孤立字語音識別率能高達近100% ,而我們始終無法達到這一效果。有幾方面的原因:</p><p>  1.錄音設(shè)備和程序偏簡單。一個非

84、常良好和精確的模板庫是高效率語音識別系統(tǒng)的基礎(chǔ)。我們使用簡易麥克風和windows自帶錄音程序可能無法建立一個完備的模板庫。</p><p>  2.DTW算法自身的缺陷。DTW自身算法只適用于孤立字語音識別,而且是簡單字。因此識別機理上更加先進的HMM和ANN方法能夠滿足更高的要求。 對DTW算法進行改進(比如端點檢測)已經(jīng)提高了該算法的識別率。</p><p>  3.DTW算法僅限于

85、孤立字的語音識別,而連續(xù)語音的識別目前來說還比較難以達到高的識別率,這也是今后語音識別課題研究發(fā)展的方向。</p><p><b>  5.3 實驗結(jié)論</b></p><p>  課題最終在MATLAB平臺的基礎(chǔ)上基本實現(xiàn)了個別個體的特定語音識別,基本上達到了預(yù)定的目的。基于DTW模型的語音識別簡單的說就是通過MATLAB的程序段,將待識別的語音信號與數(shù)據(jù)庫中的模板

86、進行相似度對比,將相似度最高者最為識別結(jié)果輸出,同時DTW的識別效率取決于參考模板的清晰度以及廣泛度,如果能夠建立一個范圍龐大而且清晰的特定人語音庫,將能夠大大提高語音識別的效率。我們的試驗由于時間以及外部設(shè)備的關(guān)系,難以組建一個非常精確的參考樣本,因此識別的效率略微偏低,不過已經(jīng)足夠說明DTW識別算法在特定人孤立字語音識別中的巨大作用。本文對于DTW算法提出了幾條在實際操作中切實可行的改進建議,并對MFCC參數(shù)編程和ANN的應(yīng)用進行了

87、探討。在程序中,由于受數(shù)據(jù)庫的局限,并沒有實現(xiàn)對于語音的模糊識別,但個別個體的特定語音識別也具有廣泛的用途。</p><p><b>  參考文獻:</b></p><p>  [1] Rabiner L, Juang B H. Fundamentals of Speech Recognition, Prentice-Hall International. Inc,

88、1999, p.17</p><p>  [2] D.G.Childers, Matlab之語音處理與合成工具箱(影印版), 清華大學出版社, 2004, p.45-51</p><p>  [3] 黃文梅, 熊桂林, 楊勇, 信號分析與處理—MATLAB語言及應(yīng)用, 國防科技大學出版社, 2000, p.37-40</p><p>  [4] 楊行峻, 遲惠生,“

89、語音數(shù)字信號處理”, 電子工業(yè)出版社. 1995</p><p>  [5] 張焱, 張杰, 黃志同, 語音識別中動態(tài)時間規(guī)整和隱馬爾可夫統(tǒng)一模型 數(shù)據(jù)采集與處理 1997年03期 p.218-222</p><p>  [6] 何強, 何英, MATLAB擴展編程[M], 清華大學出版社, 2002 p.345-347</p><p>  [7] Rabiner

90、L and Juang B H. Introduction to hidden Markov models, IEEE ASSP Mag, vol.3,no.1,4-16,1986</p><p>  [8] Huang X D. Hidden Markov Models for Speech Recognition, Edinburgh Information Technology Series.1999(7)

91、:136-202</p><p>  [9] Rabiner L, A tutorial on hidden Markov models and selected applications in speech recognition, Proc, of IEEE, 77(2)257-286,1989</p><p>  [10] Jen+Tzung Chien, Predictive Hi

92、dden Markov Model Selection for Speech Recognition, IEEE Transaction on Speech and Audio Processing, vol.13, No.3, May 2005</p><p>  [11] 謝錦輝, 隱Markov模型(HMM)及其在語音處理中的應(yīng)用, 華中理工大學出版社.</p><p>  [12]

93、 Christoph Gerber, A General Approach to Speech Recognition, Electronic Workshops in Computing, 1995</p><p>  [13] Xu Bo, FENG Yuguang, YU Jinsong, Intelligent classifier for dynamic fault patterns based on

94、Hidden Markov Model</p><p>  [14] MATLAB Primer, seventh edition, Chapman & Hall/CRC 2005</p><p>  [15] Ara V.Nefian. Luhong Liang, Dynamic Bayesian Networks for Audio-Visual Speech Recognit

95、ion, EURASIP Journal on Applied Signal Processing 2002:11,1-15</p><p><b>  致 謝</b></p><p>  感謝本論文的導(dǎo)師xx老師。讓人耳目一新的是他的治學風格,讓我們明白了科研并不是老師手把手帶學生,而是引導(dǎo)學生發(fā)現(xiàn)問題,然后大量收集資料,潛心鉆研。而且,每當我有一些棘手的問題時,

96、也能在他那里得到非常及時的幫助。</p><p>  感謝我們組的xx同學,這篇論文的每個實驗細節(jié)和每個數(shù)據(jù),都離不開你和我共同的辛勤勞動,非常愉快的合作和溝通。還要感謝04級的xx同學幫助我們對MATLAB迅速入門。</p><p>  感謝我的室友。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何不開心的事情。只是今后大家就難得再聚在一起吃頓飯了吧

97、,沒關(guān)系,各奔前程,大家珍重。但愿遠赴xx平安,留守復(fù)旦的xx加油,還有xx工作順利。我們在一起的日子,我會記一輩子的。</p><p>  感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大的心愿。</p><p>  在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論