黃少龍
(太原理工大學信息工程學院,山西 晉中 030600)
?
基于HTK的連接數(shù)字語音識別的研究*
黃少龍
(太原理工大學信息工程學院,山西 晉中 030600)
HTK是劍橋大學工程系開發(fā)的一套基于C語言的語音處理工具包,目前在語音識別、語音合成以及字符序列等領(lǐng)域已得到廣泛應(yīng)用。本文首先簡單介紹了語音識別的一些基本原理,接著從HTK的主要原理和軟件結(jié)構(gòu)出發(fā),闡述了基于HTK語音識別系統(tǒng)的搭建過程以及每部分用到的工具或函數(shù),最終完成了7字長的連續(xù)語音識別系統(tǒng),并驗證了其識別率。
HTK;語音識別;HMM模型;梅爾倒譜系數(shù)MFCC
隨著科學技術(shù)和計算機行業(yè)的迅速發(fā)展,智能技術(shù)也得以快速的發(fā)展,語音識別技術(shù)作為一種人機交互技術(shù)也越來越受到重視。數(shù)字語音識別經(jīng)歷了漫長的發(fā)展,目前基本趨于成熟,它在電話語音撥號、網(wǎng)站登錄以及火車站售票系統(tǒng)等方面都得到了較為廣泛的應(yīng)用。
HTK(Hidden Morkov Model Toolkit)是一種專門用來建立和處理隱馬爾可夫模型HMM的工具包,現(xiàn)在主要用于語音識別,最初是由英國劍橋大學工程系的語音視覺和機器人技術(shù)工作組開發(fā)的,之后經(jīng)過了劍橋大學、Entropic公司以及Microsoft公司的不斷完善和改進,目前已經(jīng)處于語音識別領(lǐng)域的高端水平。HTK是由一系列庫模塊構(gòu)成,工具箱中包含了語音識別階段所要用到的每個工具,且每個工具都有其對應(yīng)的輸入接口和輸出接口,其源代碼都是開放的,我們可根據(jù)自己的實驗需求來進行修改。
本文主要結(jié)合隱馬爾可夫模型,利用HTK語音識別工具包,實現(xiàn)連接數(shù)字語音識別系統(tǒng)的設(shè)計。
語音識別從本質(zhì)上來說屬于模式識別的一種,是機器通過識別和理解過程把人類的語言信號轉(zhuǎn)換成相應(yīng)的文本信息或命令的技術(shù),它的目的在于讓機器能夠聽懂人類的語言并執(zhí)行相應(yīng)的動作。語音識別根據(jù)不同的準則可分為:孤立詞識別、連接詞識別和連續(xù)語音識別;特定人語音識別和非特定人語音識別等?,F(xiàn)在被普遍使用的系統(tǒng)有基于DTW和模式匹配技術(shù)系統(tǒng)、基于隱馬爾可夫模型鏈HMM 語音識別系統(tǒng)、基于人工神經(jīng)網(wǎng)絡(luò)ANN語音識別系統(tǒng)。語音識別系統(tǒng)主要是由特征提取、識別網(wǎng)絡(luò)、聲學模型和識別模塊等四部分組成。
特征提取是對語音信號進行預(yù)處理,將錄制得到的語音波形信號轉(zhuǎn)換為聲學特征,如預(yù)加重和分幀,然后對每一幀語音數(shù)據(jù)提取最能夠反映語音特征的特征向量,如MFCC系數(shù),LPC系數(shù),LPCC系數(shù)等。
圖1 語音識別系統(tǒng)的組成
識別網(wǎng)絡(luò)是在識別過程中用來搜索最佳詞序列的一個搜索空間,一般由任務(wù)定義、詞典和語言模型組成,任務(wù)語法主要定義了基本識別單元的網(wǎng)絡(luò),我們這里所用的基本識別單元是音素,詞典則包含了識別任務(wù)中所有用到的單詞且定義每一個單詞所對應(yīng)的音節(jié)級或音素級的發(fā)音。
聲學模型是用來描述發(fā)音過程的一個數(shù)學模塊,本次試驗中我們使用的是隱馬爾可夫模型(HMM)。
識別模塊是語音識別系統(tǒng)的核心部分,它是在識別網(wǎng)絡(luò)中搜索一條最優(yōu)路徑,使得該路徑上的模型產(chǎn)生未知聲音序列的概率是最大的。
HTK語音識別系統(tǒng)的建立一般分為四個階段:數(shù)據(jù)準備階段、模型訓練階段、識別階段、結(jié)果分析階段。
2.1 數(shù)據(jù)準備階段
數(shù)據(jù)準備階段主要完成語料的準備、語音的標注、任務(wù)語法和詞典的創(chuàng)建、得到真值文件以及語音數(shù)據(jù)的特征提取等工作。語音識別工作中,所要用到的語料必須具有一定的代表性,盡可能多得覆蓋各種語音現(xiàn)象,語料庫選擇的好壞對最終的識別結(jié)果有著很直接的影響。HTK里的HSLab工具可用來進行語音數(shù)據(jù)的錄制和標注,HCopy用于將一個或多個源文件轉(zhuǎn)換成另一個需要的文件輸出,在用于參數(shù)的提取時,是將每一個語音文件(wav或sig)轉(zhuǎn)換成相應(yīng)的MFCC文件,這里我們對每幀的語音信號提取39維的梅爾倒譜系數(shù)(MFCC)。在HTK中還可以用Per腳本Prompts2mlf來實現(xiàn)將語音文件截成音節(jié)級真值文件,用HLEd工具實現(xiàn)將音節(jié)級真值文件轉(zhuǎn)換成音素級真值文件,用HParse函數(shù)可將創(chuàng)建好的任務(wù)語法文件轉(zhuǎn)換成機器能直接使用的詞網(wǎng)絡(luò)。詞典可以自己手動創(chuàng)建,也可以通過HDMan函數(shù)來創(chuàng)建,HTK里的HList工具可以用來檢查語音文件的內(nèi)容,還可以查看語音文件轉(zhuǎn)換成特征文件的結(jié)果,HLEd是一個由腳本驅(qū)動的標記編輯器,用于生成系統(tǒng)所需要的錄音標記文件*MLF。
2.2 模型訓練階段
模型訓練階段我們主要完成為每個識別單元定義原始的HMM模型以及模型的初始化過程和模型的訓練。對語音而言我們一般選取自左向右的無跨越模型。在定義初始模型時,首先需要確定模型的結(jié)構(gòu),本系統(tǒng)中我們創(chuàng)建5個狀態(tài)的HMM模型,采用從左向右的拓撲結(jié)構(gòu)(如圖2所示),狀態(tài)2,3,4稱為活動狀態(tài),狀態(tài)1和5為開始狀態(tài)和結(jié)束狀態(tài),為非發(fā)散狀態(tài),確定結(jié)構(gòu)之后根據(jù)HMM模型的參數(shù)定義格式對HMM模型進行原始定義,定義的參數(shù)包括特征參數(shù)提取的類型、向量的維度、高斯混合密度數(shù)、狀態(tài)數(shù)以及每個狀態(tài)的均值和方差,狀態(tài)的轉(zhuǎn)移矩陣等。在訓練模型之前,為確保訓練能夠快速且精準收斂,HMM模型的參數(shù)必須依照原始的訓練數(shù)據(jù)正確初始化,將所有特征矢量的均值和方差作為原始模型的初始均值和方差,HTK里可通過Hinit或HCompV兩個工具來實現(xiàn)模型的初始化。模型的訓練就是對模型參數(shù)的學習和調(diào)整過程,用大量的訓練語音調(diào)整參數(shù),對參數(shù)進行重估,在HTK里使用基于Baum-Welch算法的HERest工具來實現(xiàn)對模型的訓練。
圖2 HMM的拓撲結(jié)構(gòu)
2.3 識別階段
識別階段為對輸入語音進行模式匹配的過程,HTK里提供了語音識別的工具Hvite,其是一種基于Veterbi算法的識別工具,可以用來測試輸入觀察是否與識別器的馬可夫模型相一致。
2.4 結(jié)果分析階段
最后系統(tǒng)的性能分析是由HTK提供的工具HResults來實現(xiàn),用于分析識別率。最終給出的結(jié)果包括詞和句子的識別率以及其他信息。該工具通過以下公式來計算識別率:
其中,N為數(shù)據(jù)集中詞的總個數(shù),D為識別結(jié)果中刪除詞的個數(shù),S為識別結(jié)果中替換詞的個數(shù),I為識別結(jié)果中插入詞的個數(shù)。
3.1 實驗語料庫
實驗所用的語音庫為Tidigits數(shù)據(jù)庫,選取了其中400條7字長的數(shù)字串作為訓練語句,男女各200條,選取其中100條作為測試語句,男女各50條。所有的數(shù)據(jù)采樣率為20 000Hz,量化精度為16bits。
3.2 實驗環(huán)境
本文的實驗環(huán)境如下:Windows7操作系統(tǒng),CPU為Intel酷睿i5 3230M,主頻為2.6GHz,內(nèi)存為4GB,HTK工具包的版本為3.4.1,visual的版本為2010,Perl腳本編輯器的版本為5.20.2。
3.3 實驗結(jié)果及分析
圖中SENT表示句子,其中有100條測試語料,85條識別正確,識別率為85%;第二行WORD表示單詞的識別結(jié)果,總共700個單詞,D表示刪除錯誤,S表示替換錯誤,I表示插入錯誤,詞的識別率為99%,識別率比較高。
圖3 最終的實驗結(jié)果
本文結(jié)合隱馬爾可夫模型,利用HTK語音識別工具包,實現(xiàn)了連續(xù)數(shù)字語音識別系統(tǒng)的搭建。本系統(tǒng)我們采用的是7字長的連續(xù)數(shù)字識別,識別率比較不錯,可用于各種銀行卡卡號或各類會員卡號的識別,或者是網(wǎng)站的登錄等,未來我們還可以繼續(xù)研究中英文數(shù)字串的識別,同時還可以加入中英文姓名。日后我們將圍繞HTK的基本工具,不斷改進算法來提高系統(tǒng)的識別率。
[1] 楊嵩.基于HTK的連續(xù)漢語數(shù)碼語音輸入系統(tǒng)研究[J].計算機與數(shù)字工程,2012,4(40):35-38.
[2] 范會敏,鄭巒.基于HTK的語音識別系統(tǒng)設(shè)計及實現(xiàn)[J].電腦編程技巧與維護,2015,23(47):95-97.
[3] 涂俊輝,續(xù)晉華.基于HTK的連續(xù)語音識別系統(tǒng)及其在TIMIT上的實驗[J].現(xiàn)代計算機(專業(yè)版),2009,319:29-33.
[4] 王鴻儒,楊根科,楊祖華.基于HTK的連續(xù)語音識別網(wǎng)站系統(tǒng)的研究與實現(xiàn)[J].微型電腦應(yīng)用,2010,7(26):19-21.
[5]KuldeepKumar,AnkitaJainandR.K.Aggarwal.AHindispeechrecognitionsystemforconnectedwordsusingHTK[J].ComputationalSystemsEngineering,2012,1:25-32.
[6]SteveYoung,GunnarEvermann,MarkGales,etal.TheHTKBook[J].http//htk.eng.cam.ac.uk
[7] 張雪英.數(shù)字語音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,2010.
[8] 王炳錫,屈丹,彭煊.實用語音識別基礎(chǔ)[M].北京:國防工業(yè)出版社,2005.
The Research of Continuous Digital Speech Recognition Based on HTK
Huang Shaolong
(DepartmentofInformationEngineering,TaiyuanUniversityofTechnology,JinzhongShanxi030600,China)
HTK is a set of speech processing tools based on C language developed by the University of Cambridge's engineering department.It has been widely used in the fields of speech recognition,speech synthesis and character sequence at present.This paper first introduces the basic principle of speech recognition,and then expounds the building of speech recognition system based on HTK and the tool or function used in every part from the basic principle and the software structure of HTK.Finally,the recognition system of 7 characters long continuous speech is completed and the recognition rate is verified.
HTK; speech recognition; HMM modeling; Mel-frequency cepstral coefficient
2016-07-06
山西省留學回國擇優(yōu)資助項目(晉人社廳函[2013]68號);山西省自然科學基金(2014021022-6)
黃少龍(1988-),男,山西臨汾人,工程碩士,研究方向:信號與信息處理。
1674-4578(2016)05-0086-03
TN912.34
A