基于HTK命令字識別系統(tǒng)_第1頁
基于HTK命令字識別系統(tǒng)_第2頁
基于HTK命令字識別系統(tǒng)_第3頁
基于HTK命令字識別系統(tǒng)_第4頁
基于HTK命令字識別系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)論文 編號: 畢業(yè)設(shè)計(jì)說明書題 目: 基于HTK的命令 字識別系統(tǒng) 學(xué) 院: 專 業(yè): 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 職 稱: 講師 88題目類型: 理論研究 實(shí)驗(yàn)研究 工程設(shè)計(jì) 工程技術(shù)研究 軟件開發(fā)年 月 日 摘 要語音識別技術(shù)經(jīng)過半個世紀(jì)的發(fā)展,目前已日趨成熟,其在語音撥號系統(tǒng)、數(shù)字遙控、工業(yè)控制等領(lǐng)域都有了廣泛的應(yīng)用。語音識別技術(shù)就是讓機(jī)器聽懂人類的語音并執(zhí)行相關(guān)的動作,是一個研究的熱點(diǎn)。數(shù)字語音識別是語音識別一個極其重要的分支,其在現(xiàn)實(shí)生活中的應(yīng)用愈加廣泛。由于目前常用的聲學(xué)模型和語言模型的局限性,計(jì)算機(jī)只能識別一些詞匯或一些句子。語音識別系統(tǒng)在語種改變

2、時,往往會出現(xiàn)錯誤的識別結(jié)果。針對上述問題,結(jié)合隱馬爾可夫模型原理,在HTK語音處理工具箱的基礎(chǔ)上構(gòu)建了中英文特定詞語音識別系統(tǒng)。該系統(tǒng)通過代碼控制整個構(gòu)建過程,使其在更換新的訓(xùn)練數(shù)據(jù)和詞典后能快速生成對應(yīng)的識別模型。HTK 是英國劍橋大學(xué)開發(fā)的一套基于C 語言的語音處理工具箱,廣泛應(yīng)用于語音識別、語音合成、字符識別和DNA 排序等領(lǐng)域。從HTK 的基本原理和軟件結(jié)構(gòu)出發(fā),設(shè)計(jì)了一個基于HTK 的數(shù)字語音識別系統(tǒng),并驗(yàn)證了其識別效率。本文基于隱馬爾可夫模型(HMM)的連續(xù)語音訓(xùn)練和識別算法理論,結(jié)合梅爾頻率倒譜系數(shù)(MFCC)提取技術(shù),單音素HMM建模技術(shù),基于上下文相關(guān)的三音素HMM建模技術(shù)

3、以及基于維特比算法的識別技術(shù)等一系列技術(shù),利用隱馬爾可夫模型工具箱(HTK)構(gòu)建了基于HTK的連續(xù)語音識別實(shí)驗(yàn)平臺。隨后,通過更換識別單元,更改特征參數(shù)的維數(shù)和增加高斯混合分量的個數(shù)來考慮不同因素對系統(tǒng)性能的影響。最后,通過比較試驗(yàn),驗(yàn)證了識別單元、高斯混合分量的數(shù)目以及MFCC 維數(shù)的適當(dāng)組合可提高系統(tǒng)的正確識別率。實(shí)驗(yàn)結(jié)果表明,隨著HMM從單音素建模到三音素建模的轉(zhuǎn)換,測試語句在語句級和字詞級的識別率都呈增加的趨勢,捆綁三音素后識別率達(dá)到穩(wěn)定狀態(tài)。關(guān)鍵詞:語音識別;隱馬爾可夫模型;隱馬爾科夫工具箱;梅爾頻率倒譜系數(shù);識別單元 AbstractHaving developed about 5

4、0 years, the speech recognition (SR) technique has a wide range of applications inmany fields, such as voice dialing system, digital remote control and industrial control. Speech is an important tool for people to communicate with machines. Digital speech recognition is an extremely important branch

5、 of speech recognition. Its application in real lifeis used more and more widely. But the limitation of acoustic and language model is that the computer can only recognize some words or sentences. When the speech language changes,the system often gets wrong results. To address the problem above, the

6、 speech recognition system has been built on the basis of HTK as well as hidden markov model theory. Controlling the building process by code, the system can quickly generate a new recognition model when the training data and dictionary has changed. HTK is a C language-based toolkit developed by CUE

7、D mainly used for speech signalreorganization, speech synthesis, character reorganization, DNA compositor and so on. From HTKs general principlesand software architecture, this paper designs a digital speech recognition system based on HTK, and verifies itsrecognition efficiency.A continuous speech

8、recognition experimental platform was built based on HTK(HMM Toolkid) using HMM(Hidden Markov Model)theory and a series of technologies such as MFCC (Mel-Frequency Cepstral Coefficients),mono-phone model,tri-phone model and Viterbi algorithmThen by changing the identification unit and MFCC dimension

9、, and by increasing the number of gaussian mixture components, it considers effects of different factors on the performance of the system. Finally, through the comparing test, it verifies the right combination of the identification unit and the number of gaussian mixture components, and also proves

10、that MFCC dimension can enhance the systems correct rate. Experiential results showed that as the HMM changed from mono-phone model to tri-phone mode,the recognition accuracy of statement-level and word-level were both increased,and reached a higher level after Tied-State Tri-phone model was employe

11、dKey words: speech recognition; HMM;HTK; MFCC; identification unit 目 錄 引言1 語音識別介紹51.1 語音識別系統(tǒng)概51.2語音識別研究的現(xiàn)實(shí)意義51.3 語音識別技術(shù)的研究現(xiàn)狀2 HTK簡介52.1 HTK原理62.2 HTK的應(yīng)用62.3 HTKLib 和 HTKTools62.4 HTK安裝63 設(shè)計(jì)內(nèi)容與設(shè)計(jì)指標(biāo)3.1 系統(tǒng)設(shè)計(jì)內(nèi)容73.2 系統(tǒng)整體構(gòu)造框圖74 系統(tǒng)搭建思路和具體步驟74.1 搭建前的準(zhǔn)備工作84.1.1 錄音文件74.1.2 手動生成文件74.1.3 自動生成文件74.2 數(shù)據(jù)準(zhǔn)備84.2.1 建

12、立任務(wù)語法grammar84.2.2 建立字典文件94.3 創(chuàng)建單音素HMM模型104.3.1 創(chuàng)建音素水平副本文件11 4.3.2 創(chuàng)建flat start的單音素114.4 創(chuàng)建主文件和主宏文件12 4.4.1建立無“SP”的發(fā)音文件124.4.2 創(chuàng)建HMM定義和宏文件134.4.3 重復(fù)訓(xùn)練數(shù)據(jù)144.5 固定靜止模型14 4.5.1 在現(xiàn)有基礎(chǔ)上加入“SP”14 4.5.2 合并SP、SIL模型狀態(tài)144.5.3 對訓(xùn)練結(jié)果加入SP模型并訓(xùn)練154.5.4 對訓(xùn)練結(jié)果進(jìn)行高斯擴(kuò)展164.6 識別和結(jié)果分析164.6.1 Hvite、HResults功能介紹144.6.2 用未高斯擴(kuò)展

13、模型識別144.6.3 用已高斯擴(kuò)展的模型識別144.6.4 分析識別結(jié)146、附錄19引言: 隨著計(jì)算機(jī)與信息技術(shù)的繼續(xù)發(fā)展,語音交互技術(shù)必將成為人機(jī)交互的必要手段。語音識別技術(shù)就是讓機(jī)器聽懂人類的語音并執(zhí)行相關(guān)的動作,是一個研究的熱點(diǎn)。語音識別系統(tǒng)根據(jù)不同的準(zhǔn)則可以分為孤立詞、連接詞和連續(xù)詞識別;小詞匯量、大詞匯量識別;特定人、非特定人的語音識別系統(tǒng)。連續(xù)數(shù)字語音識別是語音識別的一個重要分支,數(shù)字語音識別,尤其是連續(xù)數(shù)字識別無論在大詞表的語音識別系統(tǒng)還是小詞表語音識別系統(tǒng)中都具有重要的意義,因此,它在現(xiàn)實(shí)中具有廣泛的應(yīng)用前景,在互聯(lián)網(wǎng),通信,軍事,國防,人機(jī)交互等方面都有重要的應(yīng)用價(jià)值。雖

14、然這方面的研究有很多,但目前仍有許多問題有待進(jìn)一步探索。本文結(jié)合隱馬爾可夫模型原理,利用HTK(HMMToolKit)語音處理工具箱,實(shí)現(xiàn)了數(shù)字語音識別系統(tǒng)的設(shè)計(jì)。并且從識別單元(音節(jié)和聲韻母)、更改特征參數(shù)的維數(shù)和增加高斯混合分量的個數(shù)來考慮選取不同因素的情況下對本系統(tǒng)性能的影響。最終,通過實(shí)驗(yàn)證明了識別單元、高斯混合分量的數(shù)目以及MFCC 維數(shù)的適當(dāng)組合可提高系統(tǒng)的正確識別率。隱馬爾可夫模型是一種用參數(shù)表示的,用于描述隨機(jī)過程統(tǒng)計(jì)特性的概率模型,它是由馬爾可夫鏈演變而來的。如果在分析的區(qū)間內(nèi)信號是非時變或平穩(wěn)的,那么用線性模型就可描述它;但如果在分析的區(qū)間內(nèi)信號是時變的,則線性模型的參數(shù)也

15、是時變的。所以,最簡單的方法是在極短的時間內(nèi)用線性模型參數(shù)來表示,然后,再將許多線性模型在時間上串接起來,這就是馬爾可夫鏈。由于不能準(zhǔn)確地確定信號的時長,所以用馬爾可夫鏈描述時變信號不是最佳和最有效的。而隱馬爾可夫模型既解決了短時模型描述平穩(wěn)段的信號,又解決了每一個短時平穩(wěn)段是如何轉(zhuǎn)變到下一短時平穩(wěn)段的問題。它利用概率及統(tǒng)計(jì)學(xué)理論成功地解決了如何辨識具有不同參數(shù)的短時平穩(wěn)的信號段以及如何跟蹤它們之間的轉(zhuǎn)化等問題。由于語言的結(jié)構(gòu)信息是多層次的,除了語音特性外,還牽涉到音長、音調(diào)、能量等超音段信息以及語法、句法等高層次語言結(jié)構(gòu)的信息。而隱馬爾可夫模型既可描述瞬變的隨機(jī)過程,又可描述動態(tài)的隨機(jī)過程的

16、轉(zhuǎn)移特性,所以它能夠利用這些超音段和語言結(jié)果的信息。1 語音識別介紹1.1 語音識別系統(tǒng)概述 語音識別是解決機(jī)器“ 聽懂” 人類語言的一項(xiàng)技術(shù)。作為智能計(jì)算機(jī)研究的主導(dǎo)方向和人機(jī)語音通信的關(guān)鍵技術(shù), 語音識別技術(shù)一直受到各國科學(xué)界的廣泛關(guān)注。廣泛意義上的語音識別按照任務(wù)的不同可以分為4個方向:說話人識別、關(guān)鍵詞檢出、語言辨識和語音識別。說話人識別技術(shù)是以話音對說話人進(jìn)行區(qū)別,從而進(jìn)行身份鑒別和認(rèn)證的技術(shù)。關(guān)鍵詞檢出技術(shù)應(yīng)用于一些具有特定要求的場合,只關(guān)注那些包含特定詞的句子,例如對一些特殊人名、地名的電話監(jiān)聽等。語言辨識技術(shù)是通過分析處理一個語音片斷以判別其所屬語言種類的技術(shù),本質(zhì)上也是語音識

17、別技術(shù)的一個方面。語音識別就是通常人們所說的以說話的內(nèi)容作為識別對象的技術(shù),它是4個方面中最重要和研究最廣泛的一個方向。語音識別本質(zhì)上是一種模式識別的過程, 未知語音的模式與已知語音的參考模式逐一進(jìn)行比較, 最佳匹配的參考模式被作為識別結(jié)果。圖1 是基于模式匹配原理的自動語音識別系統(tǒng)原理框圖。1.2 語音識別研究的現(xiàn)實(shí)意義 如今, 隨著語音識別技術(shù)研究的突破, 其對計(jì)算機(jī)發(fā)展和社會生活的重要性日益凸現(xiàn)出來。目前代表連續(xù)語音識別技術(shù)最高水平的是非特定人無限詞匯的連續(xù)語音識別系統(tǒng)。漢語數(shù)字語音識別,尤其是連續(xù)數(shù)字識別無論在大詞表的語音識別系統(tǒng)還是小詞表語音識別系統(tǒng)中都具有重要的意義,因此,對它的研

18、究具有很強(qiáng)的應(yīng)用價(jià)值。以語音識別技術(shù)開發(fā)出的產(chǎn)品應(yīng)用領(lǐng)域非常廣泛,如在漢語小詞表語音識別工作任務(wù)方面聲控電話交換、信息網(wǎng)絡(luò)查詢、家庭服務(wù)、賓館服務(wù)、醫(yī)療服務(wù)、銀行服務(wù)、工業(yè)控制、語音通信系統(tǒng)等,幾乎深入到社會的每個行業(yè)和每個方面。同時,在大詞匯量語音識別中,數(shù)字語音識別也有重要的意義,這是因?yàn)闈h語數(shù)字語音具有高度的混淆性,采用普通的識別方法很難達(dá)到很好的識別性能,而語音中的數(shù)字往往具有重要的意義,其識別錯誤的代價(jià)可能會高于其他語音識別的錯誤,這就需要專門對數(shù)字語音的識別采用特殊的方法以提高其識別率。另外,對漢語連續(xù)數(shù)字語音識別的研究也具有重要的理論意義:一方面,完成對漢語連續(xù)數(shù)字語音識別可以促

19、進(jìn)其他詞表的連續(xù)語音識別的研究,其聲學(xué)模型,搜索算法等都可以照搬到其他系統(tǒng)中去;另一方面,研究如何消除漢語數(shù)字語音的混淆性也可以對其他易混語音識別任務(wù)起到借鑒作用。 1.3 語音識別技術(shù)的研究現(xiàn)狀語音識別在未來具有巨大的發(fā)展前景,國外公司如IBM,Microsoft 在90 年代就開始進(jìn)軍中國市場。如1997 年,IBM 公司搶先在中國大陸市場推出了語音識別產(chǎn)品IBMViavoice,一年時間內(nèi)占領(lǐng)了大陸近90%的市場份額,獲取了上億元的利潤。我國語音識別研究工作起步于五十年代,但近年來發(fā)展很快。研究水平也從實(shí)驗(yàn)室逐步走向?qū)嵱谩?987 年開始執(zhí)行國家863 計(jì)劃后,國家863 智能計(jì)算機(jī)專

20、家組為語音識別技術(shù)研究專門立項(xiàng),每兩年滾動一次。我國語音識別技術(shù)的研究水平已經(jīng)基本上與國外同步,在漢語語音識別技術(shù)上還有自己的特點(diǎn)與優(yōu)勢,并達(dá)到國際先進(jìn)水平。其中具有代表性的研究單位為清華大學(xué)電子工程系與中科院自動化研究所模式識別國家重點(diǎn)實(shí)驗(yàn)室。語音識別在實(shí)驗(yàn)室環(huán)境下已經(jīng)取得了良好的效果,因此,90 年代至今,語音識別技術(shù)開始向?qū)嵱没l(fā)展,主要研究方向就是修改原有的理論來解決“新三難”問題 比如,在噪音語音分離方面,尋找新的更加具有魯棒性的聲學(xué)特征來更好地去除噪聲的影響,使用麥克風(fēng)陣列技術(shù)區(qū)分不同方位的聲源達(dá)到分離語音噪音的目的,和人臉識別相結(jié)合來識別語音。在隱馬爾可夫模型(HMM)方面,提出

21、了各種新的HMM,如線性預(yù)測HMM,時間駐留狀態(tài)HMM,基于最大互信息準(zhǔn)則(MMI)的HMM 等等。針對漢語的特點(diǎn),運(yùn)用語言學(xué)的知識來改進(jìn)識別效果,如對聲、母韻母采取不同的處理,或者將各個音素進(jìn)行聚類分析,再分別處理等等。語音作為當(dāng)前通信系統(tǒng)中最自然的通信媒介,語音識別技術(shù)是非常重要的人機(jī)交互技術(shù)。隨著計(jì)算機(jī)和語音處理技術(shù)的發(fā)展, 語音識別系統(tǒng)的實(shí)用性將進(jìn)一步提高。應(yīng)用語音的自動理解和翻譯, 可消除人類相互交往的語言障礙。國外已有多種基于語音識別產(chǎn)品( 如聲控?fù)芴栯娫?、語音記事本等) 的應(yīng)用, 基于特定任務(wù)和環(huán)境的聽寫機(jī)也已經(jīng)進(jìn)入應(yīng)用階段。這預(yù)示著語音識別技術(shù)有著非常廣泛的應(yīng)用領(lǐng)域和市場前景。

22、隨著語音技術(shù)的進(jìn)步和通信技術(shù)的飛速發(fā)展, 語音識別技術(shù)將為網(wǎng)上會議、商業(yè)管理、醫(yī)藥衛(wèi)生、教育培訓(xùn)等各個領(lǐng)域帶來極大的便利,其應(yīng)用和經(jīng)濟(jì)、社會效益前景非??捎^。2 HTK簡介 HTK(Hidden Markov Model Toolkit)是一個工具箱,用于搭建Hidden Markov模型(HMM)。2.1 HTK原理HTK(Hidden Morkov Model Toolkit)是英國劍橋大學(xué)工程系開發(fā)的一套構(gòu)建隱馬爾可夫模型(HMMs)的工具集。HTK 工具箱是使用HMM 模型作為語音識別核心的。當(dāng)HMM 應(yīng)用于孤立詞語音識別時,它用不同的隱含狀態(tài)轉(zhuǎn)移描述不同的語音發(fā)音。對于連續(xù)語音識別系

23、統(tǒng),多個孤立詞HMM子模型按一定的語言模型組成的復(fù)合HMM 模型序列來刻畫連續(xù)的語音信號,在序列中的每個模型直接對應(yīng)于相關(guān)的發(fā)音。在孤立詞識別中,對于訓(xùn)練數(shù)據(jù),需要為每一個發(fā)音單元提供邊界信息,常使用手工標(biāo)注的方法實(shí)現(xiàn)。一般情況下,在連續(xù)語音識別的模型訓(xùn)練中,發(fā)音單元的邊界信息是不需要的,只需要包含相應(yīng)的發(fā)音序列的描述文件。在HTK 中使用MLF 格式的文件來描述發(fā)音序列。其廣泛應(yīng)用于語音識別、語音合成、字符識別和DNA 排序等領(lǐng)域。但工具集設(shè)計(jì)的目的主要是建立語音識別系統(tǒng)。語音識別技術(shù)主要有特征提取、模型訓(xùn)練以及模式匹配準(zhǔn)則三個方面,此外,還涉及到語音識別單元的選取。語音識別系統(tǒng)主要包括語音

24、特征參數(shù)的數(shù)據(jù)準(zhǔn)備工具、模型訓(xùn)練工具、語音識別工具和模型分析工具。目前,HTK 的穩(wěn)定發(fā)行版本是3.4 版本,所有代碼使用c 語言編寫,可以在Windows和Linux 上編譯使用。HTK 的特點(diǎn)是開放源代碼,用戶可以在分析其代碼的基礎(chǔ)上,對某些算法和模塊進(jìn)行修改。HTK 工具包的結(jié)構(gòu)如圖2 所示:數(shù)據(jù)采集HSLal特征提取HcopyHMM初始化HcompvHMM訓(xùn)練HRest識別性能測試HresultsVierbi算法Hvite生成識別網(wǎng)絡(luò)Hparse測試語法HSGen圖 2 HTK工具包結(jié)構(gòu)圖2.2 HTK的應(yīng)用 隱馬爾可夫模型(HMM)是20 世紀(jì)70 年代引入了語音識別領(lǐng)域,它的出現(xiàn)使

25、得自然語言識別系統(tǒng)取得了實(shí)質(zhì)性的突破。HMM 已經(jīng)成為語音識別的主流技術(shù),目前大多數(shù)的語音識別系統(tǒng)都是基于它的。HTK(HMM tools kit)是劍橋大學(xué)開發(fā)的一個專門用于建立和處理HMM 的實(shí)驗(yàn)工具包,主要應(yīng)用于語音識別領(lǐng)域,也可以應(yīng)用于語音合成、字符識別和DNA 排序等領(lǐng)域。HTK 經(jīng)過劍橋大學(xué)、Entropic 公司以及Microsoft 公司的不斷增加和改進(jìn),使其在語音識別領(lǐng)域處于世界領(lǐng)先水平。另外,HTK 還是一套源代碼開放的工具箱,其基于ANSI C 的模塊化設(shè)計(jì)方式可以方便地嵌入到用戶系統(tǒng)中。2.3 HTKLib 和 HTKTools 對于HTK,語言層模型基本不會用到。而比

26、較重要的兩個文件夾是HTKLib 和HTKTools。HTKLib 里面包含了語音信號處理所用到的資源文件,如內(nèi)存的分配(HMem),信號處理(HSigP),參數(shù)產(chǎn)生(HParm),數(shù)學(xué)計(jì)((HMath)等。這些模塊構(gòu)成了HTK 的主體結(jié)構(gòu)。HTKTools 則是利用上面文件夾里面的庫文件,鏈接生成一些可以執(zhí)行的程序。例如,在HTKLib 里面,HSigp.c 完成了預(yù)加重,信號加窗,F(xiàn)FT 等方面的算法,從語音信號處理方面來講,他提供了LPCC,MFCC,PLP 的計(jì)算細(xì)節(jié)。但是,HTKLib 提供的只是上述計(jì)算的一些子程序,具體把上述子程序串起來,生成所提到的參數(shù)則是HParm 的內(nèi)容。還

27、有其他一些庫文件:HRec 實(shí)現(xiàn)識別功能,HAdapt 實(shí)現(xiàn)說話人自適應(yīng),HWave 提供跟不同語音格式文件的接口等。而上面提到的HSigp 和HParm 只是庫文件,如果沒有其他文件調(diào)用,它們永遠(yuǎn)不可能自己運(yùn)行。HTKTools 就是一些入口程序,通過這些程序?qū)υ次募恼{(diào)用,從而形成不同功能的可操作平臺。例如,HCopy 可以實(shí)現(xiàn)對輸入的wav 文件生成它所對應(yīng)的信號參數(shù)序列等。另外還有一些其他的工具,如HERest 用來訓(xùn)練模型,HVite 用來識別。2.4 HTK安裝 首先在http:/htk.eng.cam.ac.uk/上下載HTK3.4版本的HTK工具包。在計(jì)算機(jī)上安裝VC+.6.0

28、。安裝流程如下: 1:將C:Program FilesMicrosoft Visual StudioVC98Bin路徑添加到系統(tǒng)環(huán)境變量中。 2: 在DOS窗口中進(jìn)入HTK工具包存儲的文件夾,輸入命令vcvars32,會顯示設(shè)置VC的環(huán)境變量。 3:建立HTK Library,cd HTKLib nmake /f htk_htklib_nt.mkf all退回根目錄。 4:建立HTK工具cd HTKTools nmake /f htk_htktools_nt.mkf allcd HLMLib nmake /f htk_hlmlib_nt.mkf all cd HLMTools nmake /f

29、 htk_hlmtools_nt.mkf all 執(zhí)行完這些指令后,HTK Tools已經(jīng)建立在了bin.win32中。5:將bin.win32文件路徑添加到系統(tǒng)環(huán)境變量中。完成上面步驟后,HTK就安裝完畢,直接可以使用。3 設(shè)計(jì)內(nèi)容與設(shè)計(jì)指標(biāo)3.1 系統(tǒng)設(shè)計(jì)內(nèi)容本設(shè)計(jì)是基于HTK的命令字語音識別系統(tǒng),將對10個命令字進(jìn)行識別,它們分別是:開機(jī),關(guān)機(jī),升溫,降溫,制熱,制冷,強(qiáng)風(fēng),弱風(fēng),擺風(fēng),靜止。語料的構(gòu)成包括訓(xùn)練級23個人,每個人按順序說這10個命令字3遍;測試級7個人,每個人按順序說這10個命令字3遍。其中還要注意停頓和結(jié)束時的靜音識別。我們要對所有的預(yù)料進(jìn)行訓(xùn)練,最后得到識別的結(jié)果。最

30、后用VC設(shè)計(jì)GUI界面,對識別系統(tǒng)進(jìn)行控制,并顯示是別結(jié)果。 3.2 系統(tǒng)整體構(gòu)造框圖根據(jù) HTK 語音識別原理,搭建一個語音識別系統(tǒng)一般分為四步: 數(shù)據(jù)準(zhǔn)備,模型訓(xùn)練,模式識別和模型分析。使用HTK 構(gòu)建的語音識別系統(tǒng)的體系結(jié)構(gòu)如下圖3所示。語音的錄制和打標(biāo)簽HSLab特征提取HCopyViterbi算法HVite生成識別網(wǎng)絡(luò)HParse初始化HCompV重新估計(jì)HERest修改聲學(xué)模型HHEd分析識別結(jié)果HResult訓(xùn)練數(shù)據(jù)測試數(shù)據(jù)訓(xùn)練 MFCC測試MFCC字典配置文件聲學(xué)模型識別率訓(xùn) 練圖 3 HTK語音識別體統(tǒng)框圖總的來說整個系統(tǒng)可以分為三個部分:數(shù)據(jù)準(zhǔn)備、訓(xùn)練、識別評估。數(shù)據(jù)準(zhǔn)備又

31、可以分為:(1)建立任務(wù)語法grammar,根據(jù)wlist生成。(2)創(chuàng)建一個字典文件Dictionary應(yīng)上步的模型。(3)創(chuàng)建transcription files(抄本)文件用于訓(xùn)練數(shù)據(jù)。訓(xùn)練部分分為:(1)對數(shù)據(jù)進(jìn)行編碼(提取特征的過程)。(2)重復(fù)訓(xùn)練語音文件模型。(3)高斯擴(kuò)展混合模型并反復(fù)訓(xùn)練。識別部分分為:(1)對測試級的數(shù)據(jù)進(jìn)行識別和評估。(2)顯示識別結(jié)果。4 系統(tǒng)搭建思路和具體步驟4.1 搭建前的準(zhǔn)備工作4.1.1 語料庫語料的構(gòu)成包括訓(xùn)練級23個人,每個人按順序說這10個命令字3遍;測試級7個人,每個人按順序說這10個命令字3遍。其中還要注意停頓和結(jié)束時的靜音識別。語料

32、庫是由錄好的語音文件經(jīng)由HCopy工具提取語音文件的Mel倒譜系數(shù)轉(zhuǎn)換成了相應(yīng)的MFCC文件,存放在相應(yīng)的文件夾中。 4.1.2 手動生成文件首先我們需要手動生成wlist、full.dct、config_mfc_eda.cfg、audio.cfg、proto、macros文件。這里的wlist文件包括:kaiji、guanji、shengwen、jiangwen、zhire、zhileng、qianfeng、ruofeng、baifeng、jiangzhi。full.dct是包括是個命令字的含有sil的字典文件。config_mfc_eda.cfg文件是將已經(jīng)提取參數(shù)后得到的MFCC_E類型

33、模型的mfc文件轉(zhuǎn)換為MFCC_E_D_A類型的配置文件。Proto文件是前綴模型文件,其參數(shù)開始可以任意設(shè)置。Macros文件是宏文件。4.1.3 自動生成文件這里需要用perl語言編寫perl文件來生成我們后面搭建過程中所需要的文件。以下文件可以均由perl文件自動生成:global.ded、mkpho.led、tr_word.mlf、te_word.mlf、incmix2.hed 、incmix4.hed、incmix6.hed 、sil.hed。global.ded文件可以由creat_ded.pl文件來自動生成,在使用HDman工具來獲取準(zhǔn)確的發(fā)音文件時需要用到該文件。mkpho.l

34、ed文件可以由mk_mkpho.pl文件來自動生成,tr_word.mlf、te_word.mlf文件可用mkmlf.pl文件來生成。編寫perl文件時可以用get_subdir函數(shù)來獲取所有錄音文件目錄,并將其文件名改成后綴為.lab的形式,輸出其對應(yīng)的命令字。在使用HLEd工具來生成擴(kuò)展標(biāo)簽文件pho.mlf時需要用到。即當(dāng)遇到mkpho.led文件中EX命令時讀取字典文件中的命令字并在命令字發(fā)音前后插入sil。incmix2.hed 、incmix4.hed、incmix6.hed可以由mk_incmix.pl文件來產(chǎn)生。這三個文件在對HMM模型進(jìn)行高斯擴(kuò)展是需要用到。sil.hed文件

35、可以有mk_silhed.pl文件自動生成,在使用HHEd命令對HMM進(jìn)行定義,將sp和sil合并后并輸出,這是需要用到sil.hed文件。4.2 數(shù)據(jù)準(zhǔn)備4.2.1 建立任務(wù)語法grammar首先由已經(jīng)準(zhǔn)備好的wlist文件,該文中列出了所有的十個需要識別的詞語。包括:kaiji、guanji、shengwen、jiangwen、zhire、zhileng、qianfeng、ruofeng、baifeng、jiangzhi。然后用wlist文件來生成語法測試文件grammar,此過程由運(yùn)行perl文件mk_cmd_gram.pl來完成。文件按內(nèi)容為:$command=kaiji|guanji

36、|shengwen|jiangwen|zhileng|zhire|qiangfeng|ruofeng|baifeng|jingzhi;(silence ($command) silence)上面的語法是高層表示,必須通過HParse轉(zhuǎn)換成HTK的底層表示生成wordnet:HParse grammar wordnet運(yùn)行命令流程圖見圖4GrammarWordnetHParse圖4運(yùn)行HParse命令流程圖通過運(yùn)行perl文件mkmlf.pl來創(chuàng)建沒有短暫停”SP”的音節(jié)水平副本文件tr_word.mlf,這個副本文件中列出了所有的MFCC文件名并加上了.lab后綴,以特定的形式輸出。4.2.2

37、 建立字典文件首先需要手動建立一個字典文件full.dct,包含每個命令字的發(fā)音。 full.dct useful.dct通過HDman工具生成每個詞語發(fā)音后面都有短暫停“sp”的useful.dct字典文件。使用HDman工具的流程圖為:TIMIT PROMOPTS PROMOPTS PROMOPTSSort|uniqWord List(wlist)TestVocabBEEP Dict( beep)HDMANNames Dict(names)Dictionary(dict)Edit Script (global.ded)圖 5運(yùn)行HDman命令的流程圖hdman -m -w %DEF%WDL

38、% -e %EDF% -n %LST%HMMLST_SP% -l %DEF%dlog %DEF%useful.dct %DEF%full.dct -m 表示合所有源字典的發(fā)音,每個詞語都生成一個發(fā)音,假如輸入的字典對一個詞語有不同發(fā)音,就使用第一次遇到的發(fā)音 -w 下載wlist文件 -e 尋找文本文件 -n 輸出遇到的清楚的音節(jié)到文件mon_sil_sp.pho中 -l 寫入一個記錄檔到dlog文件中,文件中包含了字典統(tǒng)計(jì)和每一個音節(jié)發(fā)生的次數(shù)通過運(yùn)行perl文件add_siloutsym.pl給輸出標(biāo)志位“silence sil”后面添加短暫停“SP”。用DOS命令 “echo sp sp

39、 %DEF%useful.dct”實(shí)現(xiàn)給useful.dct字典增加“sp sp”。 “”表示將輸出接在目標(biāo)文件的后面不覆蓋原文件內(nèi)容。4.3 創(chuàng)建單音素HMM模型4.3.1 創(chuàng)建音素水平副本文件通過HLEd工具來生成含有“sil”標(biāo)志的標(biāo)簽文件pho.mlf。這個過程中需要用到標(biāo)簽文件tr_word.mlf和mkpho.led還需要useful.dct字典文件。完成如圖6中所示的過程TIMITPromptsEditscript(mkph0.led)Dictionary(usefl.dct)Word LevelTranscription(tr_word.mlf)Phone LevelTrans

40、cription(ph0.mlf)HLED圖6 運(yùn)行HLED命令流程tr_word.mlf文件形式為:#!MLF!#*/a0.labkaiji.*/a1.labguanji.mkpho.led文件可通過運(yùn)行perl文件mk_mkpho.pl生成,也可以手動生成。mkpho.led文件包含的命令為:EXIS sil silDE spEX代替tr-word.mlf文件中的相應(yīng)的發(fā)音 IS插入一個標(biāo)記sil DE刪除所有的短暫停標(biāo)記sp運(yùn)行命令:HLEd -l * -d %DEF%useful.dct -i %MLF%PHO% %EDF%mkpho.led %MLF%TR_SYL% -l * 使在輸

41、出的到pho.mlf的標(biāo)簽文件前面加上“*/”前綴 -i 指定輸出宏標(biāo)簽文件pho.mlf 生成的pho.mlf文件的形式為:#!MLF!#*/a0.labsilkaijisil.*/a1.labsilguanjisil4.3.2 創(chuàng)建flat start的單音素 創(chuàng)建一個創(chuàng)建一個聲學(xué)分析訓(xùn)練集腳本文件這里我們可以生成兩個顯示MFCC存儲路徑的腳tr_mfc.scp(訓(xùn)練級) te_mfc.scp (測試級)。這路的兩個文件可以用perl文件mkscpfile.pl自動生成。分別匹配訓(xùn)練集和測試集,訓(xùn)練集放入訓(xùn)練集指定路徑中,測試集放入測試集的指定路徑中。 打開制定路徑文件夾進(jìn)行wav匹配記錄

42、文件路徑分別匹配訓(xùn)練集和測試集,訓(xùn)練集放入訓(xùn)練集指定路徑中,測試集放入測試集的指定路徑中。讀入文件夾中的所有文件夾名稱打開下一級文件夾圖7 mkscpfile.pl程序流程圖 生成MFCC文件MFCC文件是對錄音文件提取參數(shù)得來的這里制作簡要的介紹。Hcopy命令生成MFCC文件 HCOPYConfiguration File(hcopy.cfg)Script File(codetr.scp)MFCC FilesS0001.mfcS0002.mfcS0003.mfcetcWaveform fileS0001.wavS0002.wavS0003.wavetc圖8 運(yùn)行Hcopy命令流程圖Hcop

43、y -T 1 -C j:configconfig_hcopy -S j:perlhcopy.scp在指定的路徑中生成MFCC文件?!?hcopy.cfg”文件內(nèi)容:#WAVFORM-MFCC config fileSOURCEKIND=WAVFORMSOURCEFORMAT=WAVSOURCERATE = 1250TARGETKIND=MFCC_ETARGETRATE=100000WORDSIZE=200000NUMCHANS=24NUMCEPS=12SAVECOMPRESSED = FSAVEWITHCRC=F 計(jì)算全局均值和方差我們首先要得到訓(xùn)練數(shù)據(jù)的均值和方差信息,所以我們需要用到HCo

44、mpV工具對訓(xùn)練數(shù)據(jù)進(jìn)行初始化。指令為: HCompV -C %CFG%CONFIG% -f 0.01 -m -S %SCP%TR_SCP% -M %HMM%hmm%dst% %PRO%PROTO%指令中各個選項(xiàng)的功能為: -C 指定配置文件config_mfc_eda.cfg -f 創(chuàng)建的方差層的macros的值等于全局方差的0.01倍,為每一個輸入流創(chuàng)建了macros,并把輸出保存在vFloors文件中 -m 更新所有的含有從訓(xùn)練文件中計(jì)算出樣本均值的HMM組件 -S 指定系數(shù)文件路徑的腳本文件tr_mfc.scp -M 存儲輸出的HMM宏文件模型包括macros、vFloors、prot

45、o和hmmdefs文件這里dst=0,%HMM%hmm%dst%表示modelhmmdefhmm0,所以我們需要事先在指定目錄下建立hmm0文件夾。在進(jìn)行初始化之前我們需要準(zhǔn)備“proto”文件,放在model文件夾中的proto中,主要作用是定義hmm的結(jié)構(gòu),其參數(shù)可以任意假設(shè)。“proto”文件內(nèi)容:o 39 h proto 5 2 390.0 0.0 0.0 . 0.0 0.0 391.0 1.0 1.0 .1.0 1.0. 4 390.0 0.0 0.0 . 0.0 0.0 391.0 1.0 1.0 1.0 1.0 50.0 1.0 0.0 0.0 0.00.0 0.6 0.4 0.

46、0 0.00.0 0.0 0.6 0.4 0.00.0 0.0 0.0 0.7 0.30.0 0.0 0.0 0.0 0.0這里的config_mfc_eda.cfg文件是在初始化的時候由MFCC_E轉(zhuǎn)化為MFCC_E_D_A時所需要的參數(shù)配置文件。config_mfc_eda.cf配置文件參數(shù)設(shè)置如下:SAVEGLOBOPTS = TRUE # 是否保存全局的選擇 SOURCEKIND = MFCC_E # 源HMM模型的類型SOURCEFORMAT = HTK # 源文件格式為HTKSOURCERATE = 100000 # 源文件的速率ZMEANSOURCE = FALSE # 是否零源波形分析TARGETKIND = MFCC_E_D_A # 目標(biāo)HMM模型類型TARGETFORMAT = HTK # 目標(biāo)格式TARGETRATE = 100000 #i.e.10ms # 目標(biāo)的速率SAVECOMPRESSED = FALSE # 是否以壓死形式保存輸出文件 SAVEWITHCRC = FALSE # 是否給輸出文件添加校驗(yàn)和WINDOWSIZE = 250000.0 #i.e.25ms # 加窗的長度USEHAMMING = T # 是否用漢明窗PREEMCOEF = 0

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論