李榮華,趙征鵬
(云南大學 信息學院,昆明 650500)
衡陽方言孤立詞識別研究①
李榮華,趙征鵬
(云南大學 信息學院,昆明 650500)
目前,漢語識別已經(jīng)取得了一定的研究成果.但由于中國的地域性差異,十里不同音,使得漢語識別系統(tǒng)在進行方言識別時識別率低、性能差.針對語音識別系統(tǒng)在對方言進行識別時的缺陷,構建了基于HTK的衡陽方言孤立詞識別系統(tǒng).該系統(tǒng)使用HTK3.4.1工具箱,以音素為基本識別單元,提取39維梅爾頻率倒譜系數(shù)(MFCC)語音特征參數(shù),構建隱馬爾可夫模型(HMM),采用Viterbi算法進行模型訓練和匹配,實現(xiàn)了衡陽方言孤立詞語音識別.通過對比實驗,比較了在不同因素模型下和不同高斯混合數(shù)下系統(tǒng)的性能.實驗結果表明,將39維MFCC和5個高斯混合數(shù)與HMM模型結合實驗時,系統(tǒng)的性能得到很大的改善.
HTK;隱馬爾可夫模型;衡陽方言;梅爾頻率倒譜系數(shù);Viterbi算法
語音是人與人之間方便快捷、準確高效的交流方式,也是人類最重要的溝通手段.隨著社會的進步和科學技術的不斷發(fā)展,語音識別技術逐漸出現(xiàn)在了人們生活當中,如智能手機、機器人餐廳等.目前,較為常用的語音識別模型主要有隱馬爾科夫模型(HMM)和人工神經(jīng)網(wǎng)絡(ANN),而針對HMM模型的語音識別工具箱有兩個,即美國約翰·霍普金斯大學開發(fā)的Kaldi和英國劍橋大學開發(fā)的HTK(Hidden Markov Model Toolkit)[1].這兩個工具包都提供了一套完整的語音處理功能,如預處理、訓練及識別等.Kaldi還支持深度神經(jīng)網(wǎng)絡(DNN);而HTK主要設計用于構建基于隱馬爾科夫模型(Hidden Markov Models,HMM)的語音處理工具[2].其廣泛應用于語音識別領域,它由一系列的功能模塊庫組成,實現(xiàn)了對語音進行預處理、模型訓練和識別,并對系統(tǒng)的識別性能進行分析.
由于我國人口眾多、地域廣闊、各個地區(qū)都有自己獨特的方言,這將給語音識別工作的研究增加了挑戰(zhàn),雖然有些語種相同,但在發(fā)音上卻存在較大的差異,使得語言識別類型呈直線增長趨勢.然而,863計劃以來,漢語識別系統(tǒng)性能得到了很大程度的提高,但漢語語音識別仍存在一系列的關鍵技術難題尚未解決,其中之一就是針對方言的語音識別難題.因此,本文在Windows7的環(huán)境配置下,利用HTK工具箱,針對衡陽方言孤立詞語音識別進行了深入研究.
衡陽地區(qū)的通用方言大體上可分為兩類:湘語和贛語.其中,耒陽話和常寧話屬于贛語,其余地方屬于湘語[3].從廣義上說,衡陽方言是指衡陽境內所有的漢語地方方言.而從狹義上講,衡陽方言是指流行于衡陽市轄四主城區(qū)、衡陽縣和衡南縣的衡陽話,也就是之前所說的衡陽小片.本文的研究對象正是我們狹義上所指的衡陽方言(若無特殊說明,在后文中的“衡陽方言”均指衡陽話).
接下來從三個方面對衡陽方言發(fā)音特征進行分析:
1)聲母系統(tǒng)
衡陽方言的聲母系統(tǒng)包括零聲在內共有19個.其中,[f]、[x]易混讀,如“峰”“哄”部分;[l]與齊齒呼韻母配合的時候多半發(fā)音為[t],如“禮”“理”發(fā)音為[ti];而在北京話中發(fā)音為零聲母的時候,衡陽方言里大部分發(fā)音為舌根鼻音,如“我”發(fā)音為[?o],“按”發(fā)音為[?an],等等.
2)韻母系統(tǒng)
衡陽方言中韻母共有37個.其中,[o]、[i]、[y]發(fā)音時的唇形相對普通話而言更隨意,[o]、[y]發(fā)音的圓唇度稍微偏弱;[iu]發(fā)音時中間有過渡音[o],在口語中的實際發(fā)音為[iou],同樣[ui]的實際發(fā)音為[uei]等.
3)聲調系統(tǒng)
衡陽方言有6個單聲調,即陰平、陽平、上聲、陰去、陽去、入聲;其中陰平調是一個高平升調,在六個聲調中音調最高,入聲失去了塞尾聲而變成了舒聲.
根據(jù)衡陽方言的聲韻母發(fā)音特點建立的音素模型,能夠很好的代表方言語音信號中的特征,避免了漢語語音音素模型在方言中的不足,從而在很大程度上提高了系統(tǒng)識別性能.
HTK最早是由英國劍橋大學開發(fā)用于建立基于HMM的語音識別工具.它包括一系列的運行庫和工具,使用基于ASNIC模塊化設計,可以實現(xiàn)語音錄制、分析、標示、HMM的訓練、測試和結果分析.HTK以源代碼的方式發(fā)布,開發(fā)者在其官方網(wǎng)站上下載到最新版本的代碼后,即可在自己的計算機上編譯獲得可執(zhí)行工具.如圖1所示,基于HTK的語音識別系統(tǒng)大致可分為四個階段:數(shù)據(jù)準備,模型訓練,識別測試和性能評測[4].
圖1 HTK處理流程圖
本文所針對的方言是湖南省衡陽市標準的衡陽話,利用HTK實現(xiàn)了衡陽方言的孤立詞語音識別系統(tǒng),系統(tǒng)框圖如圖2.
圖2 語音識別系統(tǒng)框架圖
3.1 數(shù)據(jù)準備
為了對衡陽當?shù)胤窖赃M行系統(tǒng)的研究,找到當?shù)刂v衡陽方言相對流暢穩(wěn)定的說話者進行錄音.使用Cool Edit軟件進行錄音,保存為.WAV格式,采樣頻率為16KHz,采樣精度為16bit,采用單聲道,錄音環(huán)境為室內相對安靜的情況下,針對常用的部分孤立詞進行識別研究.
用包含變量的正則表達式來定義語法,其內容為:
再用HParse函數(shù)工具根據(jù)任務語法生成SLF底層網(wǎng)絡格式文件wdent.接下來采用聲韻母的結構方式定義字典,根據(jù)衡陽方言聲韻母發(fā)音特性,對上述的衡陽方言孤立詞語進行構建字典,部分內容如下:
最后標注數(shù)據(jù),用HLEd工具將字詞級真值文本轉換成音素級真值文本,并保存為.mlf格式.
3.2 MFCC參數(shù)提取
本文中使用MFCC進行語音的特征參數(shù)提取,同時還會用到MFCC參數(shù)的一階、二階delta系數(shù).HTK提供HCopy命令來實現(xiàn)特征參數(shù)點的提取功能.在提取特征參數(shù)時,需要定義一個符合HTK格式的配置文件,HCopy按照配置文件中設定的參數(shù)來提取相應的特征參數(shù).在本文中,配置參數(shù)文件內容如圖3所示.
圖3 配置參數(shù)內容
在命令行(Command Processor,CMD)中,提取特征矢量的命令為:
運行HCopy命令后,會按照config文件內的參數(shù)和code.txt文件左側的路徑進行語音的特征參數(shù)提取,并將得到的特征參數(shù)按照code.txt文件內右側的路徑保存到特征文件中.
3.3 HMM模型定義
語音特征參數(shù)準備好后,接下來進行聲學模型的訓練,即HMM模型訓練.在模型訓練前,我們需要定義一個初始化HMM模型,保存為文本文件,這個初始化模型的參數(shù)并不重要,它的目的只定義HMM的初始結構[5].如圖4所示,本文中采用的HMM初始結構為含5個狀態(tài),轉移狀態(tài)從左至右,并且沒有跨狀態(tài)間的轉移.在描述模型的文件中,包含了HMM模型的名稱、特征參數(shù)向量大小(39維)、特征提取方法(MFCC)、狀態(tài)總數(shù)、模型的觀察函數(shù)(使用帶有對角矩陣的單一高斯觀察函數(shù))、觀察函數(shù)的均值方差以及狀態(tài)間的概率轉移矩陣等信息.
圖45 狀態(tài)從左至右無跨越HMM模型結構
3.4 HMM訓練
定義好HMM模型后,首先進行模型初始化,利用Viterbi算法對HMM模型中的每一個參數(shù)進行訓練,生成完整的HMM模型庫.HMM模型訓練的目的是通過對參數(shù)的重估迭代得到最佳值[6].
3.4.1 初始化
訓練開始前,HMM模型參數(shù)必須根據(jù)訓練數(shù)據(jù)正確初始化,這樣可以加快訓練速度,使模型參數(shù)精準且收斂.HTK3.4.1工具箱提供了兩個不同的初始化工具:HInit/HRest和HCompV,可完成所有模型的初始化工作.HInit/HRest主要用于語料聲學邊界已完成標記的情況下進行單詞分離式訓練;HCompV根據(jù)訓練語音的特征參數(shù)計算其均值和方差,再對 HMM模型的高斯參數(shù)進行初始化[7].
本文中使用HCOmpV進行HMM模型初始化,在CMD中輸入命令:
執(zhí)行命令后將會在hmms/hmm0目錄下生成兩個文件,一個更新后的proto,另一個是截止宏vFloors,這個宏是全局平均方差的0.01倍,后續(xù)的訓練過程中所有的方差值將不能小于這個數(shù).其中-f選項表示將方差下限設置成全局方差的0.01倍.
利用更新后的proto模型,得到各個單音素的模型,再加上靜音段sp的模型,共同組成了初始的HMM模型.
3.4.2 HMM訓練
HMM模型訓練的關鍵問題是估計模型的參數(shù) ,使得 在這個模型下最大化.使用HTK工具箱中的工具進行模型訓練,通常有兩種方法:一種方法是直接使用HERest工具進行嵌入式訓練;另一種方法是根據(jù)基元的標注信息,使用HInit和HRest工具對初始模型進行訓練,再使用 HERest工具做進一步的Baum-Welch參數(shù)重估.
本文中,使用HERest工具對模型進行嵌入式訓練.在CMD中的命令為:
為了使所有模型達到收斂,訓練次數(shù)越多,模型越趨于穩(wěn)定,但考慮到時間成本,一般在訓練時,重復進行兩到三次即可得到較為穩(wěn)定的模型.
3.4.3 建立綁定狀態(tài)的三音素模型
建立基于上下文相關的三音素模型能夠使聲學模型更加適配語境,從而增強HMM模型參數(shù)估算的魯棒性和準確性.首先利用HHEd工具初始化三音素模型,再利用HLEd工具將字詞級單音素標注文件生成三音素標注文件,部分內容如下:
最后利用HHEd工具函數(shù)采用決策樹的聚類方法對三音素進行綁定.
3.5 識別
語音識別過程就是將待識別語音信號的特征參數(shù)與訓練好的HMM模型進行匹配[8].先使用HCopy工具對待識別語音信號進行預處理,得到待識別語音的MFCC特征參數(shù);然后使用HTK工具箱中的HVite工具進行識別,在CMD中的命令為:
其中,-H選項會載入識別所需要的聲學模型,-s選項確定語言學模型的權重因子,-S選項會載入所需要識別的語音,-i選項確定輸出結果的存放位置和文件名,-w選項會載入語音學模型.
最后使用HTK工具箱中的的HResults工具求出系統(tǒng)識別率[9].在CMD下執(zhí)行命令為:
HResults–I labels/testwords.mlf lists/monophones1 results/recout_step7.mlf
其中,testword.mlf為標注文件,monophones1為單音素列表,recout_step7.mlf為HVite的識別結果.
實驗選取了40個常用的衡陽方言詞語,包括了稱謂名詞10個、行為動詞10個、自然名詞10個和穿著詞語10個共40個,具體詞匯見表1.由4個人(3男1女)錄音.測試集中,每個詞錄3遍,共有40*4*3=480個語音樣本;測試集中,每個詞錄 2遍,共有40*4*2=320個語音樣本.
表1 40個常用衡陽方言孤立詞
在實驗中,我們采用音素作為語音識別單元,并比較了單音素和三音素模型下的識別結果,實驗結果如圖5所示.
圖5 音素模型下的識別結果
由圖5(a)中SENT這行可以看出,此次用于測試的共有320個句子,句子識別正確率為84.38%,由WORD這行內容可以看出,字的正確率和準確率均為94.79%;圖5(b)可以看出,綁定三音素HMM后句子的識別率和字的正確率分別為89.69%、96.56%,較單音素模型分別提高了5.31%、1.77%;比較圖5中(a)、(b)可以得出,與單音素模型相比,三音素模型具有很好的抗噪性能,同時提高了系統(tǒng)的識別率.
然而,在HMM模型中,每個狀態(tài)的高斯混合數(shù)也將影響系統(tǒng)性能,特別是進行大詞匯量連續(xù)語音識別時,隨著高斯混合數(shù)的增加,也使得HMM模型更加精確,同時加快收斂速度.但是,在小詞匯量孤立詞的語音識別中,增加高斯混合數(shù),也許會得到相反的結果,同時增加了運算量.因此,在進行實驗時,選擇一個合適的高斯混合數(shù)與HMM模型結合起來變得尤為重要.本試驗中,以單音素為識別單元,特征參數(shù)為MFCC_0_D_A,在HMM模型上添加高斯混合數(shù),實驗結果見表2.
表2 高斯混合數(shù)目識別率的比較
796.25 98.75 98.75 8 91.00 97.00 97.00
其中,SC表示句子識別正確率,WC表示字識別正確率,WA表示字識別準確率.
從表4中可以看出:隨著GMM分量個數(shù)的增多,識別率也逐漸提升,但是隨著GMM分量個數(shù)的增加,識別率的提升也有所放緩,當GMM分量個數(shù)增加到5個時,識別率不再增加,當GMM分量個數(shù)超過5個時,識別率開始下降.因此,在實驗時使用5個GMM分量來建立HMM模型.
本文通過對常用的衡陽方言詞匯的語音進行分析、預處理、特征參數(shù)提取,以音素為識別單元,建立了每個方言詞匯的HMM模型,采用Viterbi算法進行HMM模型訓練和測試,利用HTK工具箱實現(xiàn)了對衡陽方言的語音識別系統(tǒng)的設計.實驗表明,利用該方法能夠得到較高的識別率,在接下來對衡陽方言的識別研究中奠定了基礎;但是,由于在詞匯的選擇和樣本數(shù)量的大小上存在不足,在今后的工作中,應建立一個完善的衡陽方言語料庫,針對每個方言詞匯發(fā)音的特點,實現(xiàn)大詞匯連續(xù)方言的識別.
1李余芳.基于HTK的普米語孤立詞的語音識別.云南民族大學學報,2015,24(5):426–430.
2孫一鳴,劉葳.基于HTK的日語連續(xù)語音識別系統(tǒng)的建立與研究.計算機光盤軟件與應用,2013,(16):86–87.
3黃玉蓮.衡陽方言假聲研究[碩士學位論文].長沙:湖南大學,2013.
4孫愛中,劉冰,張琬珍,等.基于DSP的語音識別系統(tǒng)研究與實現(xiàn).現(xiàn)代電子技術,2013,(9):76–78.
5 Kuamr A,Dua M,Choudhary T.Continuous Hindi speech recognition using Gaussian mixture HMM.2014 IEEE Students’Conference on Electrical, Electronics and Computer Science(SCEECS).Bhopal.2014.1–5.
6曾妮,費洪曉,姜振飛.基于HTK的特定詞語音識別系統(tǒng).計算機系統(tǒng)應用,2011,20(3):157–160.
7樊帥.基于Xilinx Zynq的說話人識別的研究與設計[碩士學位論文].成都:電子科技大學,2015.
8王愛蕓.語音識別技術在智能家居中的應用.軟件, 2015,(7):104–107.
9魏巍,張海濤.一種基于HTK的數(shù)字語音識別系統(tǒng).計算機系統(tǒng)應用,2011,20(9):17–21.
Isolated Word Recognition of Hengyang Dialect
LI Rong-Hua,ZHAO Zheng-Peng
(College of Information,Yunnan University,Kunming 650500,China)
At present,Chinese speech recognition has made some achievements.However,due to regional differences in China,different place has different dialect,the Chinese recognition system has low recognition rate and poor performance in the dialect recognition.In order to solve the shortcomings of speech recognition system in dialect recognition,an isolated word recognition system of Hengyang dialect based on HTK is proposed.This method constructs the Hidden Markov Models(HMM),using phoneme as the basic recognition unit and using the HTK3.4.1 toolbox to extract the speech feature parameters of 39-dimensional Mel frequency cepstral coefficients(MFCC).Viterbi algorithm is used to train and match the model to achieve the isolated word speech recognition system of Hengyang dialect.The system’s performances are compared under the different phoneme models and different Gaussian mixture numbers.The experimental results show that the system performance can be greatly improved by combining the 39-dimensional MFCC with 5 Gauss mixed numbers and HMM model.
Hidden Markov Model Toolkit(HTK);Hidden Markov Model(HMM);Hengyang dialect;Mel Frequency Cepstral Coefficients(MFCC);Viterbi algorithm
2016-08-25;收到修改稿時間:2016-09-23
10.15888/j.cnki.csa.005741