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