朱 祥
(楊凌職業技術學院 文理分院,陜西 楊凌 712100)
語言是人類用來交換信息的一種交流方式。語音處理是對語音信號[1]及其處理方法的研究,語音信號通常以數字形式處理,語音識別是對語音信號進行轉換的過程。每種語言都有自己的語法,對于給定的一個英語語音,如何利用已有的知識和技術,認識和理解其內容是當前英語語音識別的難點。由于英語語音的語法與漢語不同,所以語法分析[2-3]給識別系統增加了額外的負擔。
與英語單詞相比,更多的特征數據和更復雜的發音變化使英語語音的語音識別更加困難。首先,英語語音的詞匯量更大,發音的單詞之間沒有明顯的停頓。也就是說,單詞之間沒有明確的邊界。其次,英語語音中每個單詞的發音通常比較自然,關聯語的發音比孤立詞的發音更隨意,因此協同發音的效果更為嚴重。此外,受語境的影響,在英語發音過程中,英語語音在發音、節奏、語調、重音和語速等方面可能存在差異,甚至即使是同一個說話人,在不同的時間和環境下,其韻律特征也是不同的。
隱馬爾可夫模型(Hidden Markov Model,HMM)[4-7]作為獨立于大詞匯量說話者的連續語音識別系統的主流技術,已經取得了相當大的成功。通過分析語音信號的短期能量,提取具有幀長特征的語音特征,對整個語音進行隱馬爾可夫建模。模型訓練使用由許多說話者記錄的訓練集,并使用統計理論來解決個體與整體之間的差異,從而使說話者獨立的單句隱馬爾可夫建模具有魯棒性。HMM使用概率模型來描述統計的發音。隱馬爾可夫模型中的連續狀態轉換可以看作是短語音段的發聲,即一段相連的HMM,它代表了語音段。HMM是近年來主要用于語音識別的方法。本文以HMM作為語音識別核心。在語音識別的過程中,系統采用維特比算法[8-10]進行解碼,從而找出正確的識別結果。在單個語音上使用隱馬爾可夫建模,可以描述每個語音中單詞的相關性。在說話者進行充分訓練的條件下,可以較精確地實現說話者獨立的簡短的英語語音建模。然而,HMM需要語音信號的先驗統計知識、分類決策能力較弱等問題,包括維特比算法的復雜度計算和高斯混合模型中的概率分布問題,這些缺點使得進一步提高單個HMM的識別性能變得困難。
語音識別領域的大多數文獻都對HMM中的聚類算法進行了改進,并將其作為模式分類的方法,進行優化模型參數的估計,但對語音識別的效果并不理想。對于數據量大、發音變化較為復雜的英語語音,HMM的不足就更加明顯,其識別時間更長。為了有效提高識別效率,本文在單個隱馬爾科夫模型的基礎上,嘗試將聚類算法與隱馬爾科夫模型相結合,并將其應用于英語語音識別中。根據英語語音的特點和語音之間的相似性,將英語語音的數據集分成若干組,每組由一些語音特征相似的語音組成。因此,在識別英語語音時,無需計算維特比解碼中的所有語音,只需計算輸入語音所屬的選定組中的HMM參數即可。在選擇合適的聚類組的情況下,系統將會節省大量的計算量,識別性能也會有很大的提高。這不僅為滿足實時性的小型設備應用提供了一種新的語音識別參考方法,而且為新型英語語音評估系統奠定了語音識別的基礎。
聚類算法與隱馬爾科夫模型相結合的算法流程如圖1所示,首先對輸入語音信號進行預處理,包括預加重,幀處理,窗口添加和端點檢測。然后提取語音特征參數MFCC,通過分段平均算法降低MFCC的維數[11-13],采用動態時間規整(DTW)算法[14-15]確定語音特征聚類組K,然后計算出K組內的HMM參數,最后輸出識別結果并進行后處理。

圖1 基于HMM和聚類的語音識別框架圖
隱馬爾可夫模型(HMM)是由隨機狀態轉移和符號輸出組成的有限狀態自動化。自動化模型概率生成過程的一系列符號是由從指定的開始狀態,過渡到一個新的狀態的過程。
以數學方式表達模型,如式(1)~(4)所示。
隱馬爾可夫模型是一個五元數組(S,A,Π,V,B)。
H=(S,A,Π,V,B)
(1)
其中:S為狀態集。A={ai,j},表示是從狀態i到狀態j的概率。
(2)
Π={P[S1(1)]}表示在t=1時處于狀態Si的概率。
V={V1,……,Vm}
(3)
其中:m為離散詞匯表V中符號的個數。B={Bj(Vk)}表示符號Vk在狀態Sj下的概率。
其中:
(4)
由于K-means聚類算法[16-17]具有隨機選擇采樣點的迭代特性,再加上語音特征參數的維數較高,因此聚類結果的穩定性相對較差。為此,本文探討了降維語音特征參數的分段均值算法,如圖2所示。

圖2 語音特征系數降維的分段平均算法
分段平均算法將語音特征參數分割成具有相同維數的片段,具體包括四個步驟:
1)將語音特征參數定義為S(K,J),其中K表示MFCC參數的階數,J表示分段幀數。假設T為分段之前的幀數, 然后將語音特征參數分為N個片段,則為:
(5)
M(i)代表片段化語音特征參數的第i個片段。N的值設置為HMM的編號。
2)將語音特征參數分成平均段后,我們將片段M繼續分成M個平均片段(M的值設置為HMM的觀察序列號)。子段的計算請參見上面的公式。

表1中顯示了圖2中的參數總數。分段平均算法將特征參數矩陣的大小由T×K變為K×M×N。也就是說,該算法成功地從矩陣中去除了幀長T。這意味著,經過分段平均計算后,矩陣(降維)保持相同的大小,確定了語音特征參數K(語音特征參數的階數)、N(片段大小)和M(子片段大小)的特征參數矩陣大小。這使得不同長度的語音可以被構造為相同大小的矩陣,從而極大地促進了語音特征聚類算法的實現。
為了進一步提高語音特征聚類領域的性能,本文提出了一種新的二次訓練方法:聚類交叉分組算法。如圖3所示,聚類交叉分組算法包括3個步驟:
1)使用K-means聚類算法對訓練語音樣本的特征進行聚類。

表1 分段均值算法語音特征系數處理的參數表
2)使用動態時間規整(DTW)算法計算訓練語音樣本與聚類中心之間的距離。對于每個樣本,最小距離決定其目標組。
3)檢查目標組是否包含訓練樣本。如果包括,則說明分類是正確的;否則語音將被添加到目標組。

圖3 聚類交叉分組算法
在基于單個HMM的識別系統中,使用維特比算法進行解碼操作時,所有的模型參數都必須參與到計算中。假設系統詞匯表的數量為n,那么HMM參數的數量為n。當識別一個語音時,每個輸出概率分別通過維特比算法在n個HMMs內計算。因為每個孤立的語音都有一個唯一的HMM參數,我們能夠將特征聚類組中的語音映射為相應的HMM參數。因此,我們實現了如圖4所示的HMM聚類分組模型。

圖4 HMM分組算法
由于聚類交叉分組算法具有良好的分組性能,所以聚類組中的HMM參數的數量總是小于或等于系統詞匯表的數量。此外,改進的語音特征聚類模型可確保較高的分組準確率。因此,本文提出將特征聚類模型與HMM相結合,形成一個基于聚類與HMM的混合模型——英語語音識別系統。
在語音識別之前需要對語音信號進行預處理。語音預處理包含采樣、量化、端點檢測、預加重和加窗。在語音信號預處理之后,識別特征特征參數以用于隨后的識別計算。在本文中,線性預測系數(LPC)是最重要的特征參數。

(6)
其中:a是線性預測編碼,l是線性預測的階數。調整系數aj,只要上式的平方誤差值最小,就可以得到最優的線性預測系數aj。在求解線性預測系數之前,先確定自相關系數,然后利用所得到的自相關系數,利用Durbin算法得到期望的線性預測系數。
在確定LPC之后,從LPC推導出倒譜系數。倒譜系數[18]將聲道模型與激勵信號分離,可以更精確地計算聲道參數,從而控制語音頻譜特性。倒譜系數cj由線性預測系數aj確定,其中l是線性預測的階數,如下所示:
(7)
(8)
(9)
根據預設的HMM狀態編號,將狀態和幀與語音片段的音頻部分平均分開,并將幀中的特征向量用于計算平均值Mj和方差Varj,如下式所示 ,其中A是HMM的狀態,i是幀,j是特征參數,T是狀態下的幀數,q是倒譜特征向量的數量(本文中設置q的值為30)。
(10)
(11)
維特比算法是一種動態規劃算法,用于尋找最有可能產生觀測事件序列的維特比路徑-隱含狀態序列,特別是在馬爾可夫信息源上下文和隱馬爾可夫模型中。經過轉換、轉移概率、觀測/發射概率等過程,形成訓練有素的隱馬爾可夫模型。該模型由轉換和可觀察/發射概率矩陣的值以及從測試數據集得出的符號序列組成,此時采用維特比算法,由此得到最可能產生該符號的狀態序列。高斯概率函數可以用來確定狀態和幀的相似性概率值。較高的概率值表示相應幀與狀態之間的相似度較高,如式(12)所示:

表2 不同識別方法的語音1(15個樣本)的識別時間表
(12)
其中:Gi(xT)為每個狀態對應于其幀的概率值,d為特征向量維,xT為特征向量,τRi為狀態的平均值,Ri為密度函數的協方差矩陣,Gi(xT)為特征向量xT和狀態i之間相似度的概率值。
通過高斯概率密度函數可以確定幀與狀態之間的概率值。HMM具有許多用于狀態轉換的可選路徑,并且需要找到所有可能路徑中具有最大總概率值的路徑。本文使用的維特比算法步驟如下,其中θi(i)為在時間t停留在狀態i的概率。ψt(i)為在時間t到達狀態i的概率,p為維特比算法的最終概率值,ST為最佳狀態序列。
步驟一:初始化。
θt(i)=πibi(o1),1≤i≤N
(13)
ψt(i)=0
步驟二:遞歸運算。
(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)
所需的命令被訓練成模型,這些模型可用作語音識別的參考數據庫。在識別期間,根據先前的過程確定特征參數。使用維特比算法比較數據庫的參考模型,以確定每個模型的概率值并找到最佳狀態序列。當語音信號的幀序列對應于狀態序列時,自動解決語音信號的時間扭曲問題。語音訓練過程的關鍵是識別幀與狀態之間的相關性。通過維特比的連續路徑回溯來更新幀與狀態之間的關系,直到確定總概率最大的路徑為止。識別過程中最重要的一步是比較訓練的參考模型,獲得參考模型中最大的總概率值。
為了驗證所提模型的有效性,在非特定人英語語音識別系統中,比較了單HMM和基于HMM和聚類的混合模型的識別率和時間。系統參數的數量為30。本實驗選取30個不同的英語語音作為標準句,30個個體記錄900個英語語音作為訓練樣本,15個個體記錄450個英語語音作為測試樣本。以英語語音“Can I have breakfast served in my room?”為例說明了不同識別方法的識別率和識別時間。例如,對比學生1中的語音,系統給出了如圖5所示的識別結果。

圖5 學生1的語音識別結果
無論是單一模型還是混合模型,識別結果都是正確的,但前者的總識別時間為1.852 7秒,后者的總識別時間為1.413 3 s,僅為前者的76.22%。也就是說,識別時間減少,并且系統效率提高。比較所有學生(學生1至15)的語音,結果如表2所示。實驗表明,單個HMM和所提模型的識別率均為100%。但前者的平均識別時間為1.575 3 s,后者的平均識別時間為1.258 7 s,僅為前者的79.90%,從而提高了識別效率。
表3是不同識別方法的總體識別性能比較。實驗結果表明,與基于單個HMM的英語語音識別系統相比,基于HMM和聚類(提出的模型)的英語語音識別系統的平均識別率提高了2.89%,而平均識別時間占 僅前者的69.25%,提高了系統效率。

表3 采用不同方法的總體識別性能表
在使用維特比算法獲得狀態與框架之間的新關系之后,更新舊狀態下的平均值和方差,并使用高斯密度函數再次確定狀態與框架之間的更新概率。使用維特比算法獲得新的總概率值,更新將持續到最大總概率值收斂為止。
下面以常用的循環神經網絡為例。例如語音“Population growth has been slow in recent years”,系統識別過程如下所示。
1)首先第一個詞“Population”作為語音輸入,此時產生第一個隱含狀態h1,h1包含了該詞的信息。
2)然后第二個詞“growth”作為語音輸入,并和h1進行融合,此時產生第二個隱含狀態h2,h2包含了前兩個詞“Population growth”的信息。
3)以此類推,將例句中所有的詞輸入系統,每輸入一個單詞都會同前一時刻的隱含狀態進行融合產生一個包含當前詞信息和前面所有詞信息的新的隱含狀態。
當把整個語音所有的詞輸入進去之后,最后的隱含狀態理論上包含了所有詞的信息,便可以作為整個語音的語義向量表示,該語義向量稱為源語言語音的上下文向量。

圖6 基于的循環神經網絡翻譯過程
給定源語言的上下文向量,HMM與聚類的識別系統對該語音片段進行識別,過程如下:
1)產生第一個隱含狀態S1,并基于該隱含狀態預測第一個目標語言詞“近”。
2)將第一個目標語言詞“近”、隱含狀態S1和上下文向量C1作為輸入,此時產生第二個隱含狀態S2。隱含狀態S2包含了第一個詞“近”的信息和源語言語音的信息,用來預測語言語音第二個詞“幾年”。
3)以此循環類推,直到預測到一個語音的結束符為止。
在英語語音識別方法和傳統的HMM語音識別技術的基礎上,針對英語語音識別系統的實現,提出了一種基于HMM和聚類的改進算法。實驗結果表明,按照本文方法改進的系統,不僅提高了系統的識別率,而且減少了系統的計算量(即識別時間),從而達到提高系統性能的目的。但是如何確定聚類群,進一步提高識別效率,并應用于更大規模的英語語音識別中,還需要進一步的研究。