杜宇斌,趙 磊
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 淄博 255049)
語(yǔ)音識(shí)別( Speech Recognition)是指讓機(jī)器聽(tīng)懂人說(shuō)的話,即準(zhǔn)確地識(shí)別出語(yǔ)音的內(nèi)容,根據(jù)其表達(dá)的信息來(lái)執(zhí)行人的各種意圖。它與計(jì)算機(jī)技術(shù)、語(yǔ)音語(yǔ)言處理、聲音信號(hào)處理、人工智能和概率統(tǒng)計(jì)學(xué)都有密切的聯(lián)系。近20年來(lái),語(yǔ)音識(shí)別技術(shù)取得顯著進(jìn)步,已經(jīng)開(kāi)始走向市場(chǎng)[1]。但其遠(yuǎn)不能達(dá)到人們理想的使用狀態(tài),只能在特定的領(lǐng)域發(fā)揮作用。這也使得語(yǔ)音識(shí)別技術(shù)的發(fā)展充滿前景和應(yīng)用價(jià)值。
語(yǔ)音識(shí)別技術(shù)的研究始于20世紀(jì)50年代,由美國(guó)AT&T Bell實(shí)驗(yàn)室最先實(shí)現(xiàn)了可識(shí)別10個(gè)英文數(shù)字的第一個(gè)語(yǔ)音識(shí)別系統(tǒng)Audrey。但真正取得實(shí)質(zhì)性進(jìn)展,并將其作為一個(gè)重要的課題開(kāi)展研究則是在60年代末70年代初。這一時(shí)期的語(yǔ)音識(shí)別主要基于模型匹配原理,研究的領(lǐng)域局限在特定人、小詞匯表的孤立詞識(shí)別,實(shí)現(xiàn)了基于線性預(yù)測(cè)倒譜和DTW(Dynamic Time Warping,動(dòng)態(tài)時(shí)間歸整)技術(shù)的特定人孤立詞語(yǔ)音識(shí)別系統(tǒng);同時(shí)提出了矢量量化(VQ—Vector Quantization)和隱馬爾科夫模型(HMM)理論[2],李開(kāi)復(fù)博士于1988年發(fā)表了第一個(gè)基于隱馬爾科夫模型的語(yǔ)音識(shí)別系統(tǒng)Sphinx。最高水平的語(yǔ)音識(shí)別技術(shù)應(yīng)該是非特定人類(lèi)無(wú)限量詞匯的連續(xù)語(yǔ)音識(shí)別系統(tǒng)。本文在研究孤立詞語(yǔ)音識(shí)別的同時(shí),也是為大詞匯量語(yǔ)音識(shí)別和連續(xù)語(yǔ)音識(shí)別奠定基礎(chǔ)。本文研究語(yǔ)音識(shí)別的原理、方法和工具,運(yùn)用語(yǔ)音開(kāi)發(fā)工具包HTK搭建非特定人、漢語(yǔ)小詞匯量的孤立詞語(yǔ)音識(shí)別系統(tǒng)。
語(yǔ)音識(shí)別的主要方式,是將一段段的語(yǔ)音信號(hào)轉(zhuǎn)換成相應(yīng)的電腦能識(shí)別的符號(hào)或文本信息。語(yǔ)音識(shí)別系統(tǒng)主要由特征提取、聲學(xué)模型、語(yǔ)言模型和解碼四部分組成,如圖1所示。
圖1 語(yǔ)音識(shí)別組成部分Fig.1 Composition of speech recognition
1)特征提?。喝怂l(fā)出的語(yǔ)音信號(hào)無(wú)法直接被計(jì)算機(jī)識(shí)別利用,需要進(jìn)行一系列的預(yù)處理。將聲音中最有效的信息提取出來(lái),把其他無(wú)用的信息除掉(背景噪音、情緒等等)。盡可能地將具有辨識(shí)度的聲音保留下來(lái),為后面的模型訓(xùn)練提供可以處理的特征向量。預(yù)處理工作包括對(duì)所采集的聲音信號(hào)進(jìn)行預(yù)加重,分幀,加窗等操作,將語(yǔ)音信號(hào)從時(shí)域轉(zhuǎn)換到頻域[3]。利用DCT(Discrete Cosine Transform,離散余弦變換)等手段提取特征參數(shù)。
2)聲學(xué)模型:每一個(gè)單詞的發(fā)音方式都有所不同,需要對(duì)不同的單詞分別建立其聲學(xué)模型。將上一步中提取的特征參數(shù)放入合適的聲學(xué)模型中,聲學(xué)模型根據(jù)聲學(xué)特性計(jì)算每一個(gè)特征向量在聲學(xué)特征上的參數(shù)值。經(jīng)過(guò)訓(xùn)練,得到每個(gè)單詞所對(duì)應(yīng)的聲學(xué)模型。
3)語(yǔ)言模型:人的交流都遵循一定的語(yǔ)法規(guī)則,語(yǔ)言模型可以告知計(jì)算機(jī)如何理解人的說(shuō)話方式。根據(jù)語(yǔ)言學(xué)相關(guān)的理論和語(yǔ)法規(guī)則,計(jì)算該聲音信號(hào)對(duì)應(yīng)詞組序列的概率。根據(jù)建立好的字典和語(yǔ)料庫(kù),對(duì)詞組序列進(jìn)行解碼,輸出聲學(xué)模型最有可能對(duì)應(yīng)的字符序列。
4)解碼:將待識(shí)別的語(yǔ)音信號(hào)進(jìn)行特征提取,與聲學(xué)模型和語(yǔ)言模型進(jìn)行對(duì)比匹配得到識(shí)別結(jié)果。
特征提取作為語(yǔ)音識(shí)別的首要步驟,提取出的特征參數(shù)對(duì)模型訓(xùn)練和匹配解碼有直接影響。梅爾倒譜系數(shù)(Mel-scale Frequency Cepstral Coefficients,簡(jiǎn)稱(chēng)MFCC)作為特征提取的重要方法,在語(yǔ)音識(shí)別領(lǐng)域有很好的表現(xiàn)。它的優(yōu)勢(shì)在于做到了基于人耳的聽(tīng)覺(jué)特性,先將線性頻譜映射到基于聽(tīng)覺(jué)感知的梅爾非線性頻譜中,然后轉(zhuǎn)換到倒譜上。由于該特征不依賴(lài)于信號(hào)的性質(zhì),不會(huì)對(duì)輸入信號(hào)做出任何假設(shè)和限制[4]。因此,MFCC參數(shù)可以更好地保留語(yǔ)音信號(hào)中的有效信息,并且穩(wěn)定。自20世紀(jì)90年代以來(lái)一直應(yīng)用于語(yǔ)音信號(hào)的特征提取。
梅爾頻率倒譜系數(shù)的提取主要有以下幾個(gè)步驟:
1)對(duì)原始信號(hào)進(jìn)行預(yù)加重、分幀和加窗的預(yù)處理工作。
2)每一個(gè)所加的短時(shí)分析窗,通過(guò)傅里葉變換(FFT)得到對(duì)應(yīng)的頻譜。
3)將上面的頻譜通過(guò)梅爾濾波器組得到梅爾頻譜。
4)對(duì)梅爾頻譜進(jìn)行倒譜分析,獲得梅爾頻率倒譜系數(shù)MFCC作為該幀語(yǔ)音的特征參數(shù)。
隱馬爾科夫模型( Hidden Markov Model, HMM)屬于統(tǒng)計(jì)學(xué)和概率學(xué)的混合模型,用于描述具有隱含未知參數(shù)的馬爾科夫過(guò)程,是結(jié)構(gòu)最簡(jiǎn)單的動(dòng)態(tài)貝葉斯網(wǎng)絡(luò)。由于HMM在語(yǔ)音識(shí)別中具有良好的穩(wěn)定性和識(shí)別率,被視為經(jīng)典模型一直沿用。
隱馬爾科夫模型模擬的是雙重隨機(jī)過(guò)程,與語(yǔ)音信號(hào)相似,包括可觀測(cè)的隨機(jī)過(guò)程和隱藏的隨機(jī)過(guò)程,如圖2所示。
圖2 隱馬爾可夫模型的隨機(jī)過(guò)程Fig.2 Stochastic process of Hidden Markov Model
上面空白圓圈xt-2,xt-1,xt表示每個(gè)時(shí)刻的隱含狀態(tài),下面陰影圓圈yt-2,yt-1,yt表示每個(gè)時(shí)刻的可見(jiàn)狀態(tài),上面的空白圓圈構(gòu)成了隱含隨機(jī)狀態(tài)鏈,也就是隱馬爾科夫鏈;下面的陰影圓圈構(gòu)成了可見(jiàn)狀態(tài)鏈,也就是馬爾科夫鏈。上方的橫向箭頭代表了隱含狀態(tài)之間的轉(zhuǎn)換概率,而下方的縱向箭頭則代表由隱含狀態(tài)到可見(jiàn)狀態(tài)的轉(zhuǎn)換概率。HMM可以用5個(gè)元素來(lái)描述,包括2個(gè)狀態(tài)集合(隱含狀態(tài)、可觀測(cè)狀態(tài))和3個(gè)概率矩陣(初始狀態(tài)概率矩陣、隱含狀態(tài)轉(zhuǎn)移概率矩陣、觀測(cè)狀態(tài)轉(zhuǎn)移概率矩陣)[5]。
在HMM中,按觀測(cè)狀態(tài)轉(zhuǎn)移概率分布可分為離散HMM(Discrete HMM,DHMM)和連續(xù)HMM(Continuous HMM,CHMM):DHMM符合上文所述的HMM基本結(jié)構(gòu),觀測(cè)狀態(tài)轉(zhuǎn)移概率是按觀測(cè)狀態(tài)離散分布的,對(duì)應(yīng)于一個(gè)轉(zhuǎn)移概率矩陣;而CHMM則有所不同,它的狀態(tài)轉(zhuǎn)移概率分布是連續(xù)值,可以用概率密度函數(shù)表示。在孤立詞的語(yǔ)音識(shí)別中,HTK采用連續(xù)HMM,用高斯概率密度函數(shù)表示轉(zhuǎn)移概率。
語(yǔ)音樣本的錄制和標(biāo)記采用了HTK提供的HSLab函數(shù),它提供了一個(gè)集成的聲音處理工具,可以將語(yǔ)音樣本保存為sig格式文件。 在界面中顯示錄制好的聲音波形,其中幅值較高的部分是共振峰,保存了語(yǔ)音的關(guān)鍵信息。通過(guò)語(yǔ)音標(biāo)記,將其中的有效信息截取出來(lái)進(jìn)行模型訓(xùn)練。每一條語(yǔ)音需要做3個(gè)標(biāo)記:以單詞“啟動(dòng)”的聲音為例,3個(gè)標(biāo)記分別為語(yǔ)音段的標(biāo)記“qidong”和其前后各一個(gè)靜音段的標(biāo)記“sil”。在作標(biāo)記的過(guò)程中語(yǔ)音段不能重疊,否則在模型訓(xùn)練中該樣本數(shù)據(jù)無(wú)法被用來(lái)訓(xùn)練。本系統(tǒng)對(duì)每個(gè)單詞采樣10次,每個(gè)單詞由4人參與錄制,共20個(gè)單詞總計(jì)200個(gè)樣本。標(biāo)記好的語(yǔ)音數(shù)據(jù)如圖3所示。
圖3 語(yǔ)音的標(biāo)注Fig.3 Voice annotation
在HTK中提取的特征參數(shù)是梅爾頻率倒譜系數(shù)(MFCC),一共需要定義39個(gè)特征參數(shù),包括13個(gè)MFCC系數(shù),13個(gè)一階差分系數(shù)和13個(gè)二階差分系數(shù)。在特征提取之前需要編寫(xiě)特征參數(shù)配置文件analysis.conf,具體內(nèi)容如下:
SOURCEFORMAT=HTK #指定輸入語(yǔ)音的格式
TARGETKIND=MFCC_0_D_A #定義梅爾倒譜參數(shù)
WINDOWSIZE=250000.0 #定義窗長(zhǎng)為25 ms
TARGETRATE=100000.0 #定義相鄰窗的滑動(dòng)長(zhǎng)度
NUMCEPS=13 #定義13個(gè)MFCC特征參數(shù)
USEHAMMING=T #定義窗函數(shù)為漢寧窗
PREEMCOEF=0.97 #設(shè)置預(yù)加重系數(shù)
NUMCHANS=26 #設(shè)置梅爾頻譜的頻道數(shù)量
CEPLIFTER=22 #設(shè)置倒譜所用梅爾濾波器個(gè)數(shù)
HTK采用Hcopy函數(shù)進(jìn)行特征提取,在命令行輸入Hcopy-A-D-C analysis.conf-S targetlist.txt完成對(duì)目標(biāo)語(yǔ)音數(shù)據(jù)的特征提取工作。其中,analysis.conf是MFCC參數(shù)配置文件,targetlist.txt是數(shù)據(jù)位置配置文件。將所要提取的語(yǔ)音文件的路徑名和提取后文件的存放路徑一同寫(xiě)入文件targetlist.txt中,Hcopy函數(shù)依據(jù)此文件中的路徑名抽取相應(yīng)位置的語(yǔ)音文件,將提取出的特征參數(shù)以特定的數(shù)據(jù)格式儲(chǔ)存為MFCC文件,保存在targetlist.txt文件所指定的位置。需要對(duì)錄制的200個(gè)樣本都進(jìn)行特征提取,得到200個(gè)特征文件。HTK生成的MFCC文件由頭文件和數(shù)據(jù)域組成,數(shù)據(jù)域中包括幀數(shù)、采樣周期、每一幀的字節(jié)數(shù)、參數(shù)類(lèi)型和參數(shù)值等[6]。
2.3.1 模型初始化
HTK采用隱馬爾科夫模型進(jìn)行建模,需要定義模型的5個(gè)基本元素:觀測(cè)狀態(tài)、隱含狀態(tài)、初始概率矩陣、隱含狀態(tài)轉(zhuǎn)移矩陣、觀測(cè)狀態(tài)轉(zhuǎn)移矩陣[7]。在本系統(tǒng)中,每一個(gè)訓(xùn)練樣本MFCC文件為一個(gè)觀測(cè)狀態(tài),包含39維的特征向量;隱含狀態(tài)由模型初始化定義,與觀測(cè)狀態(tài)對(duì)應(yīng);因HTK要求有一個(gè)初始狀態(tài)節(jié)點(diǎn),所以初始概率矩陣無(wú)需給出;隱含狀態(tài)轉(zhuǎn)移矩陣表示10個(gè)隱含狀態(tài)之間的轉(zhuǎn)移概率,可按要求設(shè)定其值;觀測(cè)狀態(tài)轉(zhuǎn)移矩陣由高斯分布的均值矩陣和方差矩陣替代,每個(gè)狀態(tài)只包含1個(gè)高斯分布,由模型訓(xùn)練得到高斯密度函數(shù)[8]。
模型訓(xùn)練需要手工對(duì)每一個(gè)單詞建立HMM初始模型。除此之外,語(yǔ)音中的靜音部分也需要建立1個(gè)模型。為每個(gè)模型創(chuàng)建一個(gè)文件,共21個(gè)模型文件,將其保存在hmm0文件夾中。以單詞“啟動(dòng)”為例,以文本文件(.txt)方式寫(xiě)入,保存為hmm_qidong(無(wú)后綴)文件。文件內(nèi)容如下:
~o
~h "qidong" #模型的名稱(chēng)
由此可以具體得知HMM模型的拓?fù)浣Y(jié)構(gòu),并且可以通過(guò)修改其結(jié)構(gòu)來(lái)優(yōu)化語(yǔ)音識(shí)別系統(tǒng)的性能。
2.3.2 迭代訓(xùn)練
在整個(gè)語(yǔ)音識(shí)別系統(tǒng)中,迭代訓(xùn)練出的聲學(xué)模型將直接影響系統(tǒng)的識(shí)別率及穩(wěn)定性。HTK中HMM的迭代訓(xùn)練,對(duì)每個(gè)訓(xùn)練樣本及其對(duì)應(yīng)的單詞或句子,采用維特比算法,不斷迭代更新HMM矩陣參數(shù)及其狀態(tài)轉(zhuǎn)移概率,最后達(dá)到收斂。迭代過(guò)程如圖4所示。
圖4 迭代訓(xùn)練過(guò)程Fig.4 Iterative training process
模型參數(shù)估計(jì)采用HRest工具,每調(diào)用該工具1次則完成一輪的參數(shù)重新估計(jì)。本系統(tǒng)進(jìn)行3次迭代訓(xùn)練,需要調(diào)用3次HRest命令。以單詞“啟動(dòng)”的訓(xùn)練為例,在命令行輸入HRest-A-D-T 1-S trainlist.txt-M hmms/hmm1-H hmm0/hmm_qidong-l qidong-L lab qidong。
與targetlist.txt不同,單獨(dú)建立配置文件trainlist.txt,只存放每個(gè)樣本的MFCC文件路徑名。由此文件尋找“啟動(dòng)”相應(yīng)的10個(gè)訓(xùn)練樣本,投入文件夾hmm0里對(duì)應(yīng)qidong的模型中訓(xùn)練。將10個(gè)qidong樣本1次迭代訓(xùn)練后的模型文件hmm_qidong保存在hmm1的文件夾中。每一個(gè)單詞投入10個(gè)樣本進(jìn)行訓(xùn)練,共200個(gè)樣本分別對(duì)20個(gè)單詞進(jìn)行訓(xùn)練。共進(jìn)行3次迭代訓(xùn)練,最后得到的模型文件hmm_qidong保存在hmm3文件夾中,該文件夾中的21個(gè)模型是每一個(gè)單詞(包括靜音模型)迭代3次后的收斂模型。收斂后的模型文件可通過(guò)記事本方式打開(kāi),初始化的模型參數(shù)經(jīng)過(guò)迭代訓(xùn)練已經(jīng)被修改。迭代訓(xùn)練中的參數(shù)收斂如圖5所示。
圖5 迭代訓(xùn)練中的參數(shù)收斂Fig.5 Parameter convergence in iterative training
其中,每一次迭代后,變量change都會(huì)減小,說(shuō)明模型訓(xùn)練的似然值在收斂。當(dāng)change值不再變化時(shí),模型的參數(shù)訓(xùn)練完成。若change值在一次迭代中沒(méi)有收斂為0,則說(shuō)明模型中的參數(shù)訓(xùn)練還存在誤差,還需再一次的迭代訓(xùn)練,直到change值變?yōu)?,說(shuō)明已經(jīng)收斂。當(dāng)然,訓(xùn)練的樣本越多,意味著需要迭代的次數(shù)也越多,訓(xùn)練出來(lái)的模型的穩(wěn)定性和識(shí)別率將會(huì)越好。
建立語(yǔ)法網(wǎng)絡(luò)是實(shí)現(xiàn)語(yǔ)音識(shí)別系統(tǒng)人機(jī)交互的最后一步,對(duì)于任意一個(gè)語(yǔ)音識(shí)別系統(tǒng)需要定義該識(shí)別任務(wù)的語(yǔ)法,并生成待識(shí)別的網(wǎng)絡(luò),識(shí)別網(wǎng)絡(luò)包括所有可能識(shí)別的單詞或句子。在連續(xù)語(yǔ)音識(shí)別中,還需要建立語(yǔ)言模型。語(yǔ)言模型是根據(jù)上下文推測(cè)單詞或句子可能表達(dá)的含義,其作用在于消除語(yǔ)言中的多音字和同音詞的問(wèn)題,在聲學(xué)模型給出發(fā)音語(yǔ)序之后,從候選的文字字典中尋找出概率最大的字符串序列[9]。孤立詞的語(yǔ)音識(shí)別中,不涉及連續(xù)語(yǔ)音中上下文推測(cè)語(yǔ)義的問(wèn)題,主要包括建立語(yǔ)法規(guī)則和詞典及創(chuàng)建任務(wù)網(wǎng)絡(luò)三部分的任務(wù)。
2.4.1 建立語(yǔ)法規(guī)則
在綁定單詞模型之前,要定義語(yǔ)法識(shí)別器的基本結(jié)構(gòu)。孤立詞的語(yǔ)法定義格式為:停頓(靜音),說(shuō)出單詞,再停頓(靜音)。HTK中提供了編寫(xiě)語(yǔ)法的一般規(guī)則,需要將編寫(xiě)好的語(yǔ)法保存為文本文件gram.txt。本文定義的語(yǔ)法文件內(nèi)容如下:
$WORD=啟動(dòng) | 關(guān)閉 | 導(dǎo)航 | 音樂(lè) | 空調(diào) | 微信 | 泊車(chē) | 無(wú)人駕駛 | 天窗 | 右轉(zhuǎn) | 左轉(zhuǎn) | 倒車(chē) | 直行 | 接聽(tīng) | 遠(yuǎn)光燈 | 近光燈 | 打電話 | 車(chē)內(nèi)照明 | 道路信息 | 車(chē)窗鎖閉;
({START_SIL}[$WORD]{END_SIL})
其中$WORD表示可以替換的單詞,在本系統(tǒng)中有20個(gè)命令詞,下面的{START_SIL}[$WORD]{END_SIL}表示輸出的語(yǔ)法規(guī)范,也就是上文所提到的,前后為停頓(靜音),中間為發(fā)出的單詞語(yǔ)音?;ɡㄌ?hào)表示里面的單詞所綁定的模型可以出現(xiàn)很多次,方括號(hào)表示所綁定的單詞模型只能出現(xiàn)一次。
2.4.2 建立詞典
詞典的建立是為了將最終識(shí)別的結(jié)果與隱馬爾科夫模型描述的單詞名稱(chēng)建立對(duì)應(yīng)關(guān)系,也就是將單詞與訓(xùn)練好的模型綁定。HTK中詞典文件dict.txt綁定模型的格式如下:
導(dǎo)航 daohang
音樂(lè) yinyue
空調(diào) kongtiao
微信 weixin
左邊是單詞,右邊是與之綁定的模型名稱(chēng)(本系統(tǒng)中模型的命名是單詞拼音或拼音縮寫(xiě))。
2.4.3 創(chuàng)建任務(wù)網(wǎng)絡(luò)
任務(wù)語(yǔ)法網(wǎng)絡(luò)是單詞識(shí)別的網(wǎng)絡(luò),計(jì)算機(jī)將語(yǔ)音信號(hào)采樣并提取特征后通過(guò)任務(wù)網(wǎng)絡(luò)找出匹配的單詞。在HTK中運(yùn)用Hparse函數(shù)來(lái)創(chuàng)建語(yǔ)法網(wǎng)絡(luò)。在DOS窗口中輸入Hparse -A -D -T 1 dict.txt gram.txt net.slf, 用上文中編寫(xiě)好的詞典文件dict.txt和語(yǔ)法文件gram.txt構(gòu)建出任務(wù)網(wǎng)絡(luò)并寫(xiě)入net.slf文件。net.slf文件中生成的語(yǔ)法網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 語(yǔ)法網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Syntax network structure
孤立詞識(shí)別的過(guò)程在隱馬爾科夫模型中屬于評(píng)估問(wèn)題,而連續(xù)語(yǔ)音的識(shí)別過(guò)程屬于解碼問(wèn)題。在HTK中,評(píng)估問(wèn)題和解碼問(wèn)題都是采用Hvite函數(shù)進(jìn)行識(shí)別,但對(duì)應(yīng)的算法有所不同,孤立詞的識(shí)別采用前向后向算法來(lái)尋找匹配輸入語(yǔ)音的最大概率模型。對(duì)于輸入的原始語(yǔ)音先進(jìn)行信號(hào)處理,提取其特征參數(shù)。通過(guò)前向后向算法計(jì)算出最有可能生成此語(yǔ)音的HMM模型,也就是找到概率最大的HMM模型作為該語(yǔ)音的輸出模型。依據(jù)已經(jīng)寫(xiě)好的語(yǔ)法規(guī)則將與此模型綁定好的單詞輸出到DOS命令窗口。HTK提供了交互操作的方式,將收集到的語(yǔ)音信號(hào)自動(dòng)進(jìn)行計(jì)算分析,直接輸出識(shí)別結(jié)果。輸入命令Hvite-A-D-T 1-C directin.conf-g-H hmmsdef.mmf-w net.slf dict.txt hmmlist.txt。
directin.conf是處理輸入語(yǔ)音信號(hào)的文件,用于設(shè)置特征提取的相關(guān)參數(shù)。directin.conf與上文中提取樣本特征參數(shù)的配置文件analysis.conf略有不同,需要額外配置如下參數(shù):
SOURCERATE=625.0 #采樣率是16 kHz(16 000個(gè)采樣點(diǎn)/s,1個(gè)點(diǎn)是1/160 000 s=625*100 ns,100 ns是HTK的時(shí)間單位。在前面的特征提取中采樣率默認(rèn)為16 kHz,本文件需要特別說(shuō)明)
SOURCEKIND=HAUDIO #采樣的文件種類(lèi)是HTK所錄制的語(yǔ)音文件
hmmsdef.mmf是所有模型參數(shù)的集合文件,將hmm3文件中每個(gè)收斂模型的參數(shù)復(fù)制到1個(gè)新建文本中并保存為MMF文件。hmmlist.txt是HMM模型列表,將21個(gè)模型名(相應(yīng)命令的拼音或縮寫(xiě))寫(xiě)入此文件。net.slf和dict.txt是之前所建立的語(yǔ)法網(wǎng)絡(luò)和詞典。命令輸入后,操作者每說(shuō)出1個(gè)單詞,計(jì)算機(jī)屏幕將自動(dòng)顯示所識(shí)別的結(jié)果。
語(yǔ)音識(shí)別系統(tǒng)搭建完成后,就可對(duì)計(jì)算機(jī)講話進(jìn)行識(shí)別。運(yùn)行交互識(shí)別的命令后,命令行會(huì)出現(xiàn)“READY[1]>”,此時(shí)便可以通過(guò)麥克風(fēng)等設(shè)備進(jìn)行聲音錄入,然后按任意鍵結(jié)束錄音,程序會(huì)自動(dòng)進(jìn)行識(shí)別并將結(jié)果顯示在屏幕上,再出現(xiàn)“READY[2]>”等待下一次錄音及識(shí)別。例如,對(duì)麥克風(fēng)說(shuō)出“啟動(dòng)”,再按下回車(chē),識(shí)別結(jié)果如圖7所示。
圖7 “啟動(dòng)”識(shí)別結(jié)果Fig.7 The result of recognition for “QiDong”
由此可見(jiàn),前面的“START_SIL”和后面的“END_SIL”是之前定義的靜音模型名稱(chēng),在開(kāi)始識(shí)別的靜音為“START_SIL”,說(shuō)出命令后的靜音為“END_SIL”。中間便是系統(tǒng)所識(shí)別出的HMM模型對(duì)應(yīng)的單詞。
影響語(yǔ)音識(shí)別系統(tǒng)識(shí)別率的主要因素是訓(xùn)練模型[10],根據(jù)隱馬爾科夫模型的特點(diǎn),進(jìn)行如下測(cè)試內(nèi)容:在理想說(shuō)話環(huán)境(無(wú)噪音,26 dB)和噪音環(huán)境(實(shí)驗(yàn)室外,54 dB)下,將作為訓(xùn)練樣本的說(shuō)話人(第一組)進(jìn)行測(cè)試,再隨機(jī)找出4個(gè)非訓(xùn)練樣本的說(shuō)話人(第二組)進(jìn)行測(cè)試。20個(gè)命令詞每人輪流說(shuō)一遍。測(cè)試結(jié)果見(jiàn)表1—表4。
表1 理想說(shuō)話環(huán)境下第一組測(cè)試結(jié)果
Tab.1 Test results of the first group under the ideal speaking context
說(shuō)話人正確錯(cuò)誤總計(jì)正確率/%男一(山東)20020100男二(山東)1822090男三(廣東)1642080女一(河南)1912095
表2 噪音環(huán)境下第一組測(cè)試結(jié)果
Tab.2 Test results of the first group under the noise environment
說(shuō)話人正確錯(cuò)誤總計(jì)正確率/%男一(山東)1282060男二(山東)1192055男三(廣東)10102050女一(河南)7132035
表3 理想說(shuō)話環(huán)境下第二組測(cè)試結(jié)果
Tab.3 Test results of the second group under the ideal speaking context
說(shuō)話人正確錯(cuò)誤總計(jì)正確率/%男一(浙江)1642080男二(云南)1732085女一(山西)1732085女二(山東)1642080
表4 噪音環(huán)境下第二組測(cè)試結(jié)果
Tab.4 Test results of the second group under the noise environment
說(shuō)話人正確錯(cuò)誤總計(jì)正確率/%男一(浙江)8122040男二(云南)10102050女一(山西)5152025女二(山東)7132035
此外,再針對(duì)每一個(gè)單詞做一次縱向比較。在正常說(shuō)話語(yǔ)境(含低頻噪音,35 dB)下,隨機(jī)找出10個(gè)人輪流說(shuō)一遍20個(gè)單詞,測(cè)試結(jié)果見(jiàn)表5。
表5 單詞識(shí)別測(cè)試結(jié)果
Tab.5 Test results of word recognition
單詞正確錯(cuò)誤正確率/%啟動(dòng)9190關(guān)閉9190導(dǎo)航8280音樂(lè)100100空調(diào)9190微信7370泊車(chē)9190天窗7370右轉(zhuǎn)8280左轉(zhuǎn)6460倒車(chē)8280直行100100接聽(tīng)9190遠(yuǎn)光燈7370近光燈5550打電話7370車(chē)內(nèi)照明9190道路信息8280車(chē)窗鎖閉7370無(wú)人駕駛8280
1)本系統(tǒng)實(shí)現(xiàn)了非特定人、漢語(yǔ)孤立詞的語(yǔ)音識(shí)別。在正常說(shuō)話語(yǔ)境下,單詞的平均識(shí)別率為80%。
2)經(jīng)過(guò)訓(xùn)練的說(shuō)話人作為語(yǔ)音樣本的識(shí)別率在90%左右,比一般說(shuō)話人高10個(gè)百分點(diǎn)。
3)對(duì)于單詞集合中發(fā)音差異大的單詞識(shí)別率明顯更高,近音詞對(duì)識(shí)別有一定干擾。
4)在孤立詞識(shí)別中,HMM在正常的語(yǔ)音環(huán)境下的識(shí)別率具有良好的穩(wěn)定性。但在噪音環(huán)境下,識(shí)別率會(huì)急劇下降。