朱 祥
(楊凌職業(yè)技術(shù)學(xué)院 文理分院,陜西 楊凌 712100)
語(yǔ)言是人類用來(lái)交換信息的一種交流方式。語(yǔ)音處理是對(duì)語(yǔ)音信號(hào)[1]及其處理方法的研究,語(yǔ)音信號(hào)通常以數(shù)字形式處理,語(yǔ)音識(shí)別是對(duì)語(yǔ)音信號(hào)進(jìn)行轉(zhuǎn)換的過(guò)程。每種語(yǔ)言都有自己的語(yǔ)法,對(duì)于給定的一個(gè)英語(yǔ)語(yǔ)音,如何利用已有的知識(shí)和技術(shù),認(rèn)識(shí)和理解其內(nèi)容是當(dāng)前英語(yǔ)語(yǔ)音識(shí)別的難點(diǎn)。由于英語(yǔ)語(yǔ)音的語(yǔ)法與漢語(yǔ)不同,所以語(yǔ)法分析[2-3]給識(shí)別系統(tǒng)增加了額外的負(fù)擔(dān)。
與英語(yǔ)單詞相比,更多的特征數(shù)據(jù)和更復(fù)雜的發(fā)音變化使英語(yǔ)語(yǔ)音的語(yǔ)音識(shí)別更加困難。首先,英語(yǔ)語(yǔ)音的詞匯量更大,發(fā)音的單詞之間沒(méi)有明顯的停頓。也就是說(shuō),單詞之間沒(méi)有明確的邊界。其次,英語(yǔ)語(yǔ)音中每個(gè)單詞的發(fā)音通常比較自然,關(guān)聯(lián)語(yǔ)的發(fā)音比孤立詞的發(fā)音更隨意,因此協(xié)同發(fā)音的效果更為嚴(yán)重。此外,受語(yǔ)境的影響,在英語(yǔ)發(fā)音過(guò)程中,英語(yǔ)語(yǔ)音在發(fā)音、節(jié)奏、語(yǔ)調(diào)、重音和語(yǔ)速等方面可能存在差異,甚至即使是同一個(gè)說(shuō)話人,在不同的時(shí)間和環(huán)境下,其韻律特征也是不同的。
隱馬爾可夫模型(Hidden Markov Model,HMM)[4-7]作為獨(dú)立于大詞匯量說(shuō)話者的連續(xù)語(yǔ)音識(shí)別系統(tǒng)的主流技術(shù),已經(jīng)取得了相當(dāng)大的成功。通過(guò)分析語(yǔ)音信號(hào)的短期能量,提取具有幀長(zhǎng)特征的語(yǔ)音特征,對(duì)整個(gè)語(yǔ)音進(jìn)行隱馬爾可夫建模。模型訓(xùn)練使用由許多說(shuō)話者記錄的訓(xùn)練集,并使用統(tǒng)計(jì)理論來(lái)解決個(gè)體與整體之間的差異,從而使說(shuō)話者獨(dú)立的單句隱馬爾可夫建模具有魯棒性。HMM使用概率模型來(lái)描述統(tǒng)計(jì)的發(fā)音。隱馬爾可夫模型中的連續(xù)狀態(tài)轉(zhuǎn)換可以看作是短語(yǔ)音段的發(fā)聲,即一段相連的HMM,它代表了語(yǔ)音段。HMM是近年來(lái)主要用于語(yǔ)音識(shí)別的方法。本文以HMM作為語(yǔ)音識(shí)別核心。在語(yǔ)音識(shí)別的過(guò)程中,系統(tǒng)采用維特比算法[8-10]進(jìn)行解碼,從而找出正確的識(shí)別結(jié)果。在單個(gè)語(yǔ)音上使用隱馬爾可夫建模,可以描述每個(gè)語(yǔ)音中單詞的相關(guān)性。在說(shuō)話者進(jìn)行充分訓(xùn)練的條件下,可以較精確地實(shí)現(xiàn)說(shuō)話者獨(dú)立的簡(jiǎn)短的英語(yǔ)語(yǔ)音建模。然而,HMM需要語(yǔ)音信號(hào)的先驗(yàn)統(tǒng)計(jì)知識(shí)、分類決策能力較弱等問(wèn)題,包括維特比算法的復(fù)雜度計(jì)算和高斯混合模型中的概率分布問(wèn)題,這些缺點(diǎn)使得進(jìn)一步提高單個(gè)HMM的識(shí)別性能變得困難。
語(yǔ)音識(shí)別領(lǐng)域的大多數(shù)文獻(xiàn)都對(duì)HMM中的聚類算法進(jìn)行了改進(jìn),并將其作為模式分類的方法,進(jìn)行優(yōu)化模型參數(shù)的估計(jì),但對(duì)語(yǔ)音識(shí)別的效果并不理想。對(duì)于數(shù)據(jù)量大、發(fā)音變化較為復(fù)雜的英語(yǔ)語(yǔ)音,HMM的不足就更加明顯,其識(shí)別時(shí)間更長(zhǎng)。為了有效提高識(shí)別效率,本文在單個(gè)隱馬爾科夫模型的基礎(chǔ)上,嘗試將聚類算法與隱馬爾科夫模型相結(jié)合,并將其應(yīng)用于英語(yǔ)語(yǔ)音識(shí)別中。根據(jù)英語(yǔ)語(yǔ)音的特點(diǎn)和語(yǔ)音之間的相似性,將英語(yǔ)語(yǔ)音的數(shù)據(jù)集分成若干組,每組由一些語(yǔ)音特征相似的語(yǔ)音組成。因此,在識(shí)別英語(yǔ)語(yǔ)音時(shí),無(wú)需計(jì)算維特比解碼中的所有語(yǔ)音,只需計(jì)算輸入語(yǔ)音所屬的選定組中的HMM參數(shù)即可。在選擇合適的聚類組的情況下,系統(tǒng)將會(huì)節(jié)省大量的計(jì)算量,識(shí)別性能也會(huì)有很大的提高。這不僅為滿足實(shí)時(shí)性的小型設(shè)備應(yīng)用提供了一種新的語(yǔ)音識(shí)別參考方法,而且為新型英語(yǔ)語(yǔ)音評(píng)估系統(tǒng)奠定了語(yǔ)音識(shí)別的基礎(chǔ)。
聚類算法與隱馬爾科夫模型相結(jié)合的算法流程如圖1所示,首先對(duì)輸入語(yǔ)音信號(hào)進(jìn)行預(yù)處理,包括預(yù)加重,幀處理,窗口添加和端點(diǎn)檢測(cè)。然后提取語(yǔ)音特征參數(shù)MFCC,通過(guò)分段平均算法降低MFCC的維數(shù)[11-13],采用動(dòng)態(tài)時(shí)間規(guī)整(DTW)算法[14-15]確定語(yǔ)音特征聚類組K,然后計(jì)算出K組內(nèi)的HMM參數(shù),最后輸出識(shí)別結(jié)果并進(jìn)行后處理。
圖1 基于HMM和聚類的語(yǔ)音識(shí)別框架圖
隱馬爾可夫模型(HMM)是由隨機(jī)狀態(tài)轉(zhuǎn)移和符號(hào)輸出組成的有限狀態(tài)自動(dòng)化。自動(dòng)化模型概率生成過(guò)程的一系列符號(hào)是由從指定的開(kāi)始狀態(tài),過(guò)渡到一個(gè)新的狀態(tài)的過(guò)程。
以數(shù)學(xué)方式表達(dá)模型,如式(1)~(4)所示。
隱馬爾可夫模型是一個(gè)五元數(shù)組(S,A,Π,V,B)。
H=(S,A,Π,V,B)
(1)
其中:S為狀態(tài)集。A={ai,j},表示是從狀態(tài)i到狀態(tài)j的概率。
(2)
Π={P[S1(1)]}表示在t=1時(shí)處于狀態(tài)Si的概率。
V={V1,……,Vm}
(3)
其中:m為離散詞匯表V中符號(hào)的個(gè)數(shù)。B={Bj(Vk)}表示符號(hào)Vk在狀態(tài)Sj下的概率。
其中:
(4)
由于K-means聚類算法[16-17]具有隨機(jī)選擇采樣點(diǎn)的迭代特性,再加上語(yǔ)音特征參數(shù)的維數(shù)較高,因此聚類結(jié)果的穩(wěn)定性相對(duì)較差。為此,本文探討了降維語(yǔ)音特征參數(shù)的分段均值算法,如圖2所示。
圖2 語(yǔ)音特征系數(shù)降維的分段平均算法
分段平均算法將語(yǔ)音特征參數(shù)分割成具有相同維數(shù)的片段,具體包括四個(gè)步驟:
1)將語(yǔ)音特征參數(shù)定義為S(K,J),其中K表示MFCC參數(shù)的階數(shù),J表示分段幀數(shù)。假設(shè)T為分段之前的幀數(shù), 然后將語(yǔ)音特征參數(shù)分為N個(gè)片段,則為:
(5)
M(i)代表片段化語(yǔ)音特征參數(shù)的第i個(gè)片段。N的值設(shè)置為HMM的編號(hào)。
2)將語(yǔ)音特征參數(shù)分成平均段后,我們將片段M繼續(xù)分成M個(gè)平均片段(M的值設(shè)置為HMM的觀察序列號(hào))。子段的計(jì)算請(qǐng)參見(jiàn)上面的公式。
表1中顯示了圖2中的參數(shù)總數(shù)。分段平均算法將特征參數(shù)矩陣的大小由T×K變?yōu)镵×M×N。也就是說(shuō),該算法成功地從矩陣中去除了幀長(zhǎng)T。這意味著,經(jīng)過(guò)分段平均計(jì)算后,矩陣(降維)保持相同的大小,確定了語(yǔ)音特征參數(shù)K(語(yǔ)音特征參數(shù)的階數(shù))、N(片段大小)和M(子片段大小)的特征參數(shù)矩陣大小。這使得不同長(zhǎng)度的語(yǔ)音可以被構(gòu)造為相同大小的矩陣,從而極大地促進(jìn)了語(yǔ)音特征聚類算法的實(shí)現(xiàn)。
為了進(jìn)一步提高語(yǔ)音特征聚類領(lǐng)域的性能,本文提出了一種新的二次訓(xùn)練方法:聚類交叉分組算法。如圖3所示,聚類交叉分組算法包括3個(gè)步驟:
1)使用K-means聚類算法對(duì)訓(xùn)練語(yǔ)音樣本的特征進(jìn)行聚類。
表1 分段均值算法語(yǔ)音特征系數(shù)處理的參數(shù)表
2)使用動(dòng)態(tài)時(shí)間規(guī)整(DTW)算法計(jì)算訓(xùn)練語(yǔ)音樣本與聚類中心之間的距離。對(duì)于每個(gè)樣本,最小距離決定其目標(biāo)組。
3)檢查目標(biāo)組是否包含訓(xùn)練樣本。如果包括,則說(shuō)明分類是正確的;否則語(yǔ)音將被添加到目標(biāo)組。
圖3 聚類交叉分組算法
在基于單個(gè)HMM的識(shí)別系統(tǒng)中,使用維特比算法進(jìn)行解碼操作時(shí),所有的模型參數(shù)都必須參與到計(jì)算中。假設(shè)系統(tǒng)詞匯表的數(shù)量為n,那么HMM參數(shù)的數(shù)量為n。當(dāng)識(shí)別一個(gè)語(yǔ)音時(shí),每個(gè)輸出概率分別通過(guò)維特比算法在n個(gè)HMMs內(nèi)計(jì)算。因?yàn)槊總€(gè)孤立的語(yǔ)音都有一個(gè)唯一的HMM參數(shù),我們能夠?qū)⑻卣骶垲惤M中的語(yǔ)音映射為相應(yīng)的HMM參數(shù)。因此,我們實(shí)現(xiàn)了如圖4所示的HMM聚類分組模型。
圖4 HMM分組算法
由于聚類交叉分組算法具有良好的分組性能,所以聚類組中的HMM參數(shù)的數(shù)量總是小于或等于系統(tǒng)詞匯表的數(shù)量。此外,改進(jìn)的語(yǔ)音特征聚類模型可確保較高的分組準(zhǔn)確率。因此,本文提出將特征聚類模型與HMM相結(jié)合,形成一個(gè)基于聚類與HMM的混合模型——英語(yǔ)語(yǔ)音識(shí)別系統(tǒng)。
在語(yǔ)音識(shí)別之前需要對(duì)語(yǔ)音信號(hào)進(jìn)行預(yù)處理。語(yǔ)音預(yù)處理包含采樣、量化、端點(diǎn)檢測(cè)、預(yù)加重和加窗。在語(yǔ)音信號(hào)預(yù)處理之后,識(shí)別特征特征參數(shù)以用于隨后的識(shí)別計(jì)算。在本文中,線性預(yù)測(cè)系數(shù)(LPC)是最重要的特征參數(shù)。
(6)
其中:a是線性預(yù)測(cè)編碼,l是線性預(yù)測(cè)的階數(shù)。調(diào)整系數(shù)aj,只要上式的平方誤差值最小,就可以得到最優(yōu)的線性預(yù)測(cè)系數(shù)aj。在求解線性預(yù)測(cè)系數(shù)之前,先確定自相關(guān)系數(shù),然后利用所得到的自相關(guān)系數(shù),利用Durbin算法得到期望的線性預(yù)測(cè)系數(shù)。
在確定LPC之后,從LPC推導(dǎo)出倒譜系數(shù)。倒譜系數(shù)[18]將聲道模型與激勵(lì)信號(hào)分離,可以更精確地計(jì)算聲道參數(shù),從而控制語(yǔ)音頻譜特性。倒譜系數(shù)cj由線性預(yù)測(cè)系數(shù)aj確定,其中l(wèi)是線性預(yù)測(cè)的階數(shù),如下所示:
(7)
(8)
(9)
根據(jù)預(yù)設(shè)的HMM狀態(tài)編號(hào),將狀態(tài)和幀與語(yǔ)音片段的音頻部分平均分開(kāi),并將幀中的特征向量用于計(jì)算平均值Mj和方差Varj,如下式所示 ,其中A是HMM的狀態(tài),i是幀,j是特征參數(shù),T是狀態(tài)下的幀數(shù),q是倒譜特征向量的數(shù)量(本文中設(shè)置q的值為30)。
(10)
(11)
維特比算法是一種動(dòng)態(tài)規(guī)劃算法,用于尋找最有可能產(chǎn)生觀測(cè)事件序列的維特比路徑-隱含狀態(tài)序列,特別是在馬爾可夫信息源上下文和隱馬爾可夫模型中。經(jīng)過(guò)轉(zhuǎn)換、轉(zhuǎn)移概率、觀測(cè)/發(fā)射概率等過(guò)程,形成訓(xùn)練有素的隱馬爾可夫模型。該模型由轉(zhuǎn)換和可觀察/發(fā)射概率矩陣的值以及從測(cè)試數(shù)據(jù)集得出的符號(hào)序列組成,此時(shí)采用維特比算法,由此得到最可能產(chǎn)生該符號(hào)的狀態(tài)序列。高斯概率函數(shù)可以用來(lái)確定狀態(tài)和幀的相似性概率值。較高的概率值表示相應(yīng)幀與狀態(tài)之間的相似度較高,如式(12)所示:
表2 不同識(shí)別方法的語(yǔ)音1(15個(gè)樣本)的識(shí)別時(shí)間表
(12)
其中:Gi(xT)為每個(gè)狀態(tài)對(duì)應(yīng)于其幀的概率值,d為特征向量維,xT為特征向量,τRi為狀態(tài)的平均值,Ri為密度函數(shù)的協(xié)方差矩陣,Gi(xT)為特征向量xT和狀態(tài)i之間相似度的概率值。
通過(guò)高斯概率密度函數(shù)可以確定幀與狀態(tài)之間的概率值。HMM具有許多用于狀態(tài)轉(zhuǎn)換的可選路徑,并且需要找到所有可能路徑中具有最大總概率值的路徑。本文使用的維特比算法步驟如下,其中θi(i)為在時(shí)間t停留在狀態(tài)i的概率。ψt(i)為在時(shí)間t到達(dá)狀態(tài)i的概率,p為維特比算法的最終概率值,ST為最佳狀態(tài)序列。
步驟一:初始化。
θt(i)=πibi(o1),1≤i≤N
(13)
ψt(i)=0
步驟二:遞歸運(yùn)算。
(14)
(15)
1≤t≤T-1,1≤j≤N
步驟三:確定概率最大路徑。
(16)
(17)
步驟四:路徑回溯。
St=Ψt+1(St+1),t=T-1,T-2,T-3,1
(18)
所需的命令被訓(xùn)練成模型,這些模型可用作語(yǔ)音識(shí)別的參考數(shù)據(jù)庫(kù)。在識(shí)別期間,根據(jù)先前的過(guò)程確定特征參數(shù)。使用維特比算法比較數(shù)據(jù)庫(kù)的參考模型,以確定每個(gè)模型的概率值并找到最佳狀態(tài)序列。當(dāng)語(yǔ)音信號(hào)的幀序列對(duì)應(yīng)于狀態(tài)序列時(shí),自動(dòng)解決語(yǔ)音信號(hào)的時(shí)間扭曲問(wèn)題。語(yǔ)音訓(xùn)練過(guò)程的關(guān)鍵是識(shí)別幀與狀態(tài)之間的相關(guān)性。通過(guò)維特比的連續(xù)路徑回溯來(lái)更新幀與狀態(tài)之間的關(guān)系,直到確定總概率最大的路徑為止。識(shí)別過(guò)程中最重要的一步是比較訓(xùn)練的參考模型,獲得參考模型中最大的總概率值。
為了驗(yàn)證所提模型的有效性,在非特定人英語(yǔ)語(yǔ)音識(shí)別系統(tǒng)中,比較了單HMM和基于HMM和聚類的混合模型的識(shí)別率和時(shí)間。系統(tǒng)參數(shù)的數(shù)量為30。本實(shí)驗(yàn)選取30個(gè)不同的英語(yǔ)語(yǔ)音作為標(biāo)準(zhǔn)句,30個(gè)個(gè)體記錄900個(gè)英語(yǔ)語(yǔ)音作為訓(xùn)練樣本,15個(gè)個(gè)體記錄450個(gè)英語(yǔ)語(yǔ)音作為測(cè)試樣本。以英語(yǔ)語(yǔ)音“Can I have breakfast served in my room?”為例說(shuō)明了不同識(shí)別方法的識(shí)別率和識(shí)別時(shí)間。例如,對(duì)比學(xué)生1中的語(yǔ)音,系統(tǒng)給出了如圖5所示的識(shí)別結(jié)果。
圖5 學(xué)生1的語(yǔ)音識(shí)別結(jié)果
無(wú)論是單一模型還是混合模型,識(shí)別結(jié)果都是正確的,但前者的總識(shí)別時(shí)間為1.852 7秒,后者的總識(shí)別時(shí)間為1.413 3 s,僅為前者的76.22%。也就是說(shuō),識(shí)別時(shí)間減少,并且系統(tǒng)效率提高。比較所有學(xué)生(學(xué)生1至15)的語(yǔ)音,結(jié)果如表2所示。實(shí)驗(yàn)表明,單個(gè)HMM和所提模型的識(shí)別率均為100%。但前者的平均識(shí)別時(shí)間為1.575 3 s,后者的平均識(shí)別時(shí)間為1.258 7 s,僅為前者的79.90%,從而提高了識(shí)別效率。
表3是不同識(shí)別方法的總體識(shí)別性能比較。實(shí)驗(yàn)結(jié)果表明,與基于單個(gè)HMM的英語(yǔ)語(yǔ)音識(shí)別系統(tǒng)相比,基于HMM和聚類(提出的模型)的英語(yǔ)語(yǔ)音識(shí)別系統(tǒng)的平均識(shí)別率提高了2.89%,而平均識(shí)別時(shí)間占 僅前者的69.25%,提高了系統(tǒng)效率。
表3 采用不同方法的總體識(shí)別性能表
在使用維特比算法獲得狀態(tài)與框架之間的新關(guān)系之后,更新舊狀態(tài)下的平均值和方差,并使用高斯密度函數(shù)再次確定狀態(tài)與框架之間的更新概率。使用維特比算法獲得新的總概率值,更新將持續(xù)到最大總概率值收斂為止。
下面以常用的循環(huán)神經(jīng)網(wǎng)絡(luò)為例。例如語(yǔ)音“Population growth has been slow in recent years”,系統(tǒng)識(shí)別過(guò)程如下所示。
1)首先第一個(gè)詞“Population”作為語(yǔ)音輸入,此時(shí)產(chǎn)生第一個(gè)隱含狀態(tài)h1,h1包含了該詞的信息。
2)然后第二個(gè)詞“growth”作為語(yǔ)音輸入,并和h1進(jìn)行融合,此時(shí)產(chǎn)生第二個(gè)隱含狀態(tài)h2,h2包含了前兩個(gè)詞“Population growth”的信息。
3)以此類推,將例句中所有的詞輸入系統(tǒng),每輸入一個(gè)單詞都會(huì)同前一時(shí)刻的隱含狀態(tài)進(jìn)行融合產(chǎn)生一個(gè)包含當(dāng)前詞信息和前面所有詞信息的新的隱含狀態(tài)。
當(dāng)把整個(gè)語(yǔ)音所有的詞輸入進(jìn)去之后,最后的隱含狀態(tài)理論上包含了所有詞的信息,便可以作為整個(gè)語(yǔ)音的語(yǔ)義向量表示,該語(yǔ)義向量稱為源語(yǔ)言語(yǔ)音的上下文向量。
圖6 基于的循環(huán)神經(jīng)網(wǎng)絡(luò)翻譯過(guò)程
給定源語(yǔ)言的上下文向量,HMM與聚類的識(shí)別系統(tǒng)對(duì)該語(yǔ)音片段進(jìn)行識(shí)別,過(guò)程如下:
1)產(chǎn)生第一個(gè)隱含狀態(tài)S1,并基于該隱含狀態(tài)預(yù)測(cè)第一個(gè)目標(biāo)語(yǔ)言詞“近”。
2)將第一個(gè)目標(biāo)語(yǔ)言詞“近”、隱含狀態(tài)S1和上下文向量C1作為輸入,此時(shí)產(chǎn)生第二個(gè)隱含狀態(tài)S2。隱含狀態(tài)S2包含了第一個(gè)詞“近”的信息和源語(yǔ)言語(yǔ)音的信息,用來(lái)預(yù)測(cè)語(yǔ)言語(yǔ)音第二個(gè)詞“幾年”。
3)以此循環(huán)類推,直到預(yù)測(cè)到一個(gè)語(yǔ)音的結(jié)束符為止。
在英語(yǔ)語(yǔ)音識(shí)別方法和傳統(tǒng)的HMM語(yǔ)音識(shí)別技術(shù)的基礎(chǔ)上,針對(duì)英語(yǔ)語(yǔ)音識(shí)別系統(tǒng)的實(shí)現(xiàn),提出了一種基于HMM和聚類的改進(jìn)算法。實(shí)驗(yàn)結(jié)果表明,按照本文方法改進(jìn)的系統(tǒng),不僅提高了系統(tǒng)的識(shí)別率,而且減少了系統(tǒng)的計(jì)算量(即識(shí)別時(shí)間),從而達(dá)到提高系統(tǒng)性能的目的。但是如何確定聚類群,進(jìn)一步提高識(shí)別效率,并應(yīng)用于更大規(guī)模的英語(yǔ)語(yǔ)音識(shí)別中,還需要進(jìn)一步的研究。