王龍,楊俊安,陳雷,林偉
?
基于循環神經網絡的漢語語言模型建模方法
王龍1,2,楊俊安1,2,陳雷1,2,林偉3
(1. 中國人民解放軍電子工程學院,安徽合肥 230037;2. 安徽省電子制約技術重點實驗室,安徽合肥 230037; 3 安徽科大訊飛公司,安徽合肥 230037)
語言模型是語音識別系統的重要組成部分,目前的主流是-gram模型。然而gram模型存在一些不足,對語句中長距信息描述差、數據稀疏是影響模型性能的兩個重要因素。針對不足,研究者提出循環神經網絡(Recurrent Neural Network, RNN)建模技術,在英語語言模型建模上取得了較好的效果。根據漢語特點將RNN建模方法應用于漢語語言建模,并結合兩種模型的優點,提出了模型融合構建方法。實驗結果表明:相比傳統的-gram語言模型,采用RNN訓練的漢語語言模型困惑度(PerPLexity, PPL)有了下降,在對漢語電話信道的語音識別上,系統錯誤率也有下降,將兩種語言模型融合后,系統識別錯誤率更低。
語音識別;循環神經網絡;語言模型;模型融合
語音識別(Speech Recognition)是指機器通過識別和理解,把人類的語音信號轉變為相應文本或命令。由于語音信號的動態時變性、瞬時性和隨機性,單靠聲學模型的匹配與判斷無法完成語音無誤的識別和理解[1],需要在此基礎上結合語法、語義以及上下文內容等非聲學的語言知識加以約束,進而提高系統的識別準確率。語言模型用于刻畫自然語言中的內在規律,能夠提供字或詞之間的上下文和語義信息,因此成為語音識別系統的重要組成部分。
目前,基于回退(back-off)平滑算法的-gram語言模型,在漢語語言模型建模領域占據主導地位。-gram建模技術具有很好的建模能力,實現也相對簡單,當語料充足時,能夠訓練出性能很好的模型。但此建模技術仍有明顯缺點。一是對語句中長距依存描述能力較弱,在訓練時,模型階數通常取2(Bi-gram)或3(Tri-gram);二是數據稀疏,由于訓練語料中不可能覆蓋所有的語言現象,此時就會造成“零概率”即數據稀疏。且模型階數越大,數據稀疏越嚴重,需要另外結合數據平滑技術進行訓練。
研究者致力于解決-gram語言模型的固有缺陷問題,希望機器對語言的理解能夠更加接近于人類的理解,進而提高實際語音識別系統的性能,故神經網絡(Neural Network)逐漸在語音信號處理中得到應用[2,3],并取得了較好的效果。用神經網絡訓練語言模型的思想最早由徐偉于2000年提出[4],在實驗中,采用神經網絡訓練出的二元語言模型取得了比Bi-gram結合平滑算法更好的模型性能。隨后,Bengio在網絡中增加一個隱含層,構建了一個三層的前饋神經網絡來訓練模型[5],此網絡結構能夠描述詞與詞之間更高元的依附關系,取得了比-gram語言模型更好的效果。然而,模型訓練時需要對訓練語料進行特殊處理,還需要較好的參數選擇,因此不容易實現。循環神經網絡[6]的語言模型建模方法相比Bengio的網絡結構,RNN增加了一個可以反饋信息的存儲層,能夠存儲當前詞的所有歷史信息,此時網絡能夠以當前詞的整個上下文作為依據,預測下一個詞的出現概率。另外,在模型訓練的過程中,由于當前詞的歷史信息被映射到低維連續空間,語義相似的詞被聚類,在語料中出現次數較少的詞仍然能夠得到很好地訓練,解決了數據稀疏問題。
在漢語語言模型建模技術中,占主導地位的依然是基于統計規則的-gram建模技術。本文根據漢語的特點首先將RNN建模方法應用到漢語語言模型建模,并在此基礎上結合兩個模型的優勢,提出了一種模型融合構建方法。實驗結果表明:基于RNN的漢語語言模型及融合方法構建的模型,在實際識別系統的識別率上都取得了較好的效果。
1.1 概述
完整的語音識別系統基本原理框圖如圖1所示,先將語音信號數字化,其預處理包括預加重、加窗、分幀、端點檢測等過程。再對其聲學參數進行分析,提取出語音特征參數,形成特征矢量序列,包括短時平均幅度或能量、頻譜、平均過零率,線性預測倒譜系數、Mel倒譜系數等。在識別階段,將待識別語音的特征矢量參數同訓練得到的參考模板庫中的模式進行相似性度量比較,將相似度較高的模式所屬的類別作為識別中間候選結果輸出。在后處理階段,通過語言模型對初步識別候選結果進行判斷和決策,可以有效地提高解碼的效率和精度[7],對于漢語存在大量的同音字、多音字,較高層次的語言知識的利用能夠在聲學識別的基礎上減少模式匹配的模糊性,提高了系統識別的精確度。
上述工作完成后,得到的聲學特征矢量,記為。自然語言可以被看作是一個隨機序列,文本中的每個句子或詞都是具有一定分布的隨機變量。假設詞(漢語中包含單字)是一個句子最小的結構單位,一個合理的包含個詞的語句由詞序列組成。依貝葉斯準則,語音識別的過程就是根據式(1),找出當前聲學特征序列出現概率最大的詞序列作為識別結果[8]。

(2)
1.2-gram語言模型
統計規則的-gram語言模型于1980年提出[9],是應用廣泛的語言模型,它采用Markov假設,即認為每一個預測變量出現的可能性只與長度為-1的上下文有關。若將詞的歷史信息表示為,則根據條件概率公式及Markov假設,詞和句子出現的概率分別為:

(4)
對于-gram語言模型而言,通常需要對大規模的語料進行訓練,語料中出現頻率越高的詞往往能夠訓練得越好,而對低頻詞訓練的效果不理想。另外,階數越大,模型的約束力越強,然而隨著的增大,模型規模成指數級增長,訓練時計算復雜度增大,對存儲空間也提出了更高的要求。因此合適的值是語言模型精確度與復雜度之間的折衷。在實際識別系統中,一般選擇=3來構造Tri-gram語言模型,即訓練數據的句子中每個詞出現的概率只與其前兩個詞有關,可表示為

本文針對漢語語音識別系統中的語言模型進行改進,在基線系統其他模塊不變的情況下,用RNN語言模型對初步識別候選結果重打分,進行識別后處理,完成整個系統的識別過程。
參考文獻[10]指出:循環神經網絡又稱為Elman網絡,其結構如圖2所示,由三個網絡層構成,分別是輸入層、隱含層、輸出層,存儲層作為輸入的一部分,保存了上一時刻隱含層的狀態。文本語料經過此RNN結構訓練后,當前詞出現的概率表示為[11]

參考文獻[10]還指出:假設在時刻網絡輸入詞樣本為,即當前詞的向量、維數由語料中詞樣本數決定;隱含層的狀態由輸入當前詞向量和上一時刻隱含層的狀態即歷史信息共同決定,通過隱含層到輸入層的連接,將時刻的隱含層狀態作為時刻輸入的一部分;輸出層表示當前歷史下后接詞的概率分布信息,輸出層節點與輸入層節點數相同也是。各個層之間計算關系用下列式子表示:
Softmax函數保證了當前詞下后接詞的概率分布是合理的,即對于任意一個詞的,且。在模型參數的初始化設置上,隱含層初始狀態一般設為零,或隨機初始化為很小的值。輸入詞向量形式如(0 0 0 1 0 0……),(0 0 1 0 0 0……),其中一維為1,其他維置為0。隱含層節點數通常取100到1000,根據具體訓練數據的大小進行調節。、、為各層之間權值矩陣,隨機初始化為較小的值,在模型訓練的過程中,通過標準的反向傳播算法(Back Propagation, BP)結合隨機梯度下降法學習更新[10,12]:

(8)
相比于英語語音,漢語語音識別更加復雜。漢語普通話中有6000多個常用字,大約有60個音素,407個無調音節,1332個有調音節,每個音節由聲母、韻母和聲調組成,每個漢字代表一個音節,音節和音節之間的連音現象不明顯[13],給聲學模型的匹配計算帶來難度。同時,漢語中還存在大量的同音、多音字現象,必須通過上下文語境等高層次的非聲學知識加以約束才能完成識別。
在語言方面,英語語句注重結構,而漢語語句注重語義,同一個詞在不同的語境下有不同的含義,詞之間的長距離依附關系比較緊密。采用RNN訓練語言模型時,考慮了更多高層次的語義信息,更能反映出漢語詞與詞之間的約束關系。因此,RNN建模技術將更適合于漢語語言模型的訓練。
另外,在英文語料句子中詞與詞之間都有明顯的空格間隔,語料稍加處理可直接進行模型訓練。而漢語語料則不同,漢語句子中字與字之間沒有明顯的界限,還需要根據分詞模型對訓練語料進行分詞,將句子分隔成子詞單元。經過一系列處理得到純凈的文本語料后才能進行模型訓練。
漢語訓練語料處理流程圖如圖3所示,文本語料要進行清洗,將粗語料中的字母、標點符號等噪聲信息刪除,去除冗余信息;語料中會存在大量數字,還要完成語數字正規化,將語料中的阿拉伯數字轉換成漢字;這樣語料中只存在漢字信息,分詞根據分詞模型將詞與詞用空格分開,將句子劃分成詞(或字)單元;詞典過濾刪除英文邊界符和語料中的非詞典詞句子。如此得到能夠用來訓練的語料,然后進行模型訓練。
語料中頻數越高的詞匯-gram建模技術能夠訓練得越好,而對頻數較低的詞匯則相反。采用RNN對語料進行訓練時,盡管語料中有些詞的頻數比較低,但依然能夠訓練得很好,可以對-gram模型進行有效的補充。為了充分發揮兩種建模技術的優勢,得到更好的識別效果,本文研究了一種基于RNN模型與-gram模型的融合建模方法。
如圖4所示,對于同一條語音,從解碼器生成的詞圖(lattice)中,可以獲得-best列表,再利用訓練好的RNN語言模型對-best列表進行重打分。然后將-best列表的-gram模型得分信息與RNN模型的重打分信息進行插值融合,計算出每一個候選單元新的語言模型得分。
在模型的融合算法中,線性插值融合是目前較常用的方法[14],根據上下文預測當前詞的概率:

(10)
式中:為插值模型的個數;各模型的插值權重非負,且總和為1,即。模型融合后對每一個-best列表句子重新打出對數似然得分:

其中:是句子中詞的個數;是詞的懲罰分;為詞聲學模型得分;為模型規模;代表每個詞的-gram與RNN模型的融合得分,由式(10)計算得出。根據式(11)將語言與聲學模型得分以及懲罰分信息結合起來,計算出每一個列表的總體得分并對比,從中選出得分最高的一個作為此-best列表的最終識別結果,將所有的識別結果與對應的語音標注數據進行比對后計算出系統的識別率。
5.1 語言模型評價標準
評價語言模型性能優劣是根據信息論知識。通過計算語言模型在測試文本上困惑度的大小對語言模型的性能進行衡量。困惑度是指用語言模型預測某文本集中每個詞的出現概率時,這些概率的幾何平均值的倒數。假設測試文本中有個詞,則困惑度為

通常情況下,該值越小,表明語言模型對語言約束力強,所訓模型的性能好[15]。除了用困惑度衡量語言模型外,最直觀的想法是將模型應用到系統中,通過測試系統誤字率(Word Error Rate, WER)進行衡量。一般模型訓練得好,則系統的識別率就高。在本文實驗中將兩種評價標準結合起來對語言模型進行測試分析。
5.2 實驗設計
實驗1用于驗證RNN語言模型在漢語語音識別中的效果。實驗中分別用RNN和-gram建模在同一數據集上進行模型訓練,并且通過改變RNN隱含層節點數訓練出不同的RNN語言模型,研究不同參數下RNN模型困惑度和系統識別率的變化,并與-gram模型的性能進行比較。實驗2用于驗證提出的模型融合算法的有效性,將實驗1中訓練出來的-gram模型與RNN模型分別進行線性插值融合,并測試識別率的變化。為了加速RNN模型的訓練,本文中RNN訓練是在GPU(NVIDIA GTX 650)服務器上結合CUDA Toolkit 5.5進行的,相比在CPU上訓練速度相對提升2~3倍,縮短了RNN模型的訓練時間。
5.3 實驗數據
訓練數據來源于科大訊飛公司提供的漢語電話語音轉寫任務標注數據,共16 M,包含550千個句子,4342千個詞。模型困惑度測試本文共9332個句子,包含23千個詞,語音測試集為對電話語音解碼結果3433句100-best列表,大小為87 kB。RNN訓練模型時隱含層節點數共設六組參數。
5.3.1 實驗1
-gram語言模型訓練結合了平滑性能較好的Kneser-Ney回退平滑算法,模型階數取3即3-gram,由SRILM工具箱構建。模型中-gram數量為:30274+6568660+13830707=20429641,模型大小為463599 kB。然后用同樣的訓練數據訓練RNN語言模型,分別測試模型PPL值以及識別系統WER的變化。實驗結果如表1所示。
由表1可見,同樣的訓練數據分別訓練RNN和3-gram語言模型,在困惑度上RNN語言模型相對降低7%左右;在語音識別的誤字率上,RNN語言模型相對下降5%左右,證明了RNN語言模型在漢語語音識別中的有效性。一般情況下,生成模型的困惑度越低,系統的識別率就越高。
另外,從表1還可以看出:(1) 隨著隱含層節點數的增加,RNN語言模型的困惑度以及系統誤字率呈逐漸下降的趨勢,說明網絡的學習能力隨著節點數的增加而增強;(2) 當隱含層的節點數增加到一定程度后,生成模型的困惑度反而會升高,系統識別率也隨之下降,說明隱含層節點數越多,網絡結構越復雜,通過學習可以使訓練樣本的誤差減少到足夠小,然而過分地追求在訓練樣本上的學習會產生過度訓練。在訓練樣本數有限的情況下,當學習進行到一定階段后,如果學習樣本集的平均訓練相對誤差繼續減小,而測試樣本集的平均測試相對誤差(泛化誤差)反而增大,導致網絡的泛化能力降低,影響所訓練模型的性能。因此,對于不同規模的訓練語料,采用RNN訓練時參數需要進行調整,才能達到較好的實驗效果。
5.3.2 實驗2
在實驗1識別結果的基礎上,采用線性插值方法,將兩套模型對100-best列表中的每個詞的語言模型得分進行插值重新打分,再根據式(11)結合聲學模型得分等,計算出每一句話的概率,從中選出得分最高的作為該條語音的識別結果,如表2所示。實驗中插值系數為0.6,即=0.6時取得了較好的識別效果。
由表2可見,經過線性插值后模型在識別率上,相對于3-gram模型誤字率下降8%左右,相比于RNN模型誤字率也下降了3%左右,模型融合后的識別率相對于-gram模型的識別率提升較為明顯,這是因為RNN模型對低頻詞的訓練效果較好,能夠有效地解決數據稀疏問題。同時可以看出模型融合后的識別率比任何一個單獨模型的識別率高,說明兩種模型具有互補作用,證明了模型融合方法的有效性。在實際的識別系統中,可以先訓練一個大語料的-gram語言模型,并以此模型作為通用模型,然后與用少量語料訓練的RNN模型在語音識別系統的后處理模塊進行插值融合,采用這種方法對解碼結果進行后處理,提高系統的識別率。在本實驗中,由于模型訓練語料有限,系統整體識別率不是很高,但是仍然可以看出RNN在漢語語言模型建模方面的優越性,以及模型融合構建方法的有效性。

表1 RNN語言模型與3-gram語言模型性能對比

表2 兩種模型融合后識別性能對比
本文將RNN語言模型建模應用到漢語語言模型上,通過與傳統的-gram模型對比,生成模型的困惑度降低7%左右,在對實際電話信道語音識別上誤字率降低了5%,驗證了RNN建模方法在漢語語言處理中的有效性。另外,本文提出RNN語言模型與-gram語言模型的融合方法,使語音識別系統的性能得到進一步提升,識別效果優于任一單個模型,證明了融合算法的優越性。雖然RNN語言模型性能較高,但由于其相對較高的計算復雜度,導致訓練效率很低,本文中RNN漢語語言模型的訓練是在GPU上進行的,相對提升了訓練效率。如何進一步提升模型訓練效率,是下一步研究的重點。
[1] 倪崇嘉, 劉文舉, 徐波. 漢語大詞匯量連續語音識別系統研究進展[J].中文信息學報, 2009, 23(1): 114-117.
NI Chongjia, LIU Wenju, XU Bo. Research on large vocabulary continuous speech recognition system for mandarin Chinese[J]. Journal of Chinese Information Processing, 2009, 23(1): 114-117.
[2] 楊云升, 溫曉楊, 呂敏. 一種基于BP神經網絡的語音相空間客觀干擾效果評估模型[J]. 聲學技術, 2009, 28(4): 507-511.
YANG Yunsheng, WEN Xiaoyang, Lü Min. A BP artificial neural network model for evaluating jammed effect in speech phase-space[J]. Technical Acoustics, 2009, 28(4): 507-511.
[3] 陳存寶, 趙力. 嵌入時延神經網絡的高斯混合模型說話人辨認[J]. 聲學技術, 2010, 29(3): 292-296.
CHEN Cunbao, ZHAO Li. Speaker identification based on GMM with embedded TDNN[J].Technical Acoustics, 2010, 29(3): 292-296.
[4] XU Wei, AlexRudnicky. Can artificial neural networks learn language models?[C]// Proceedings of International Conference on Spoken Language Processing. 2000.
[5] Bengio Yoshua. A neural probabilistic language model[J]. Journal of Machine Learning Research, 2003, 10(3): 1137-1155.
[6] Tom′aˇs Mikolov. Statistical language models based on neural networks[D].Brno University of Technology, Czech Republic, 2012.
[7] 甘海波. 語音識別系統中聲學層模型的研究[D]. 哈爾濱: 哈爾濱工業大學, 2008.
GAN Haibo. The research about the acoustic model in speech recognition system[D]. Harbin: Harbin Institute of Technology, 2008.
[8] 張強. 大詞匯量連續語音識別系統的統計語言模型應用研究[D]. 成都: 西南交通大學, 2009.
ZHANG Qiang. Application research on statistical language model of large vocabulary continuous speech recognition system[D]. Chengdu: Southwest Jiaotong University. 2009.
[9] 邢永康, 馬少平. 統計語言模型綜述[J]. 計算機科學, 2003, 30(9): 22-29.
XING Yongkang, MA Shaoping. A survey on statistical language models[J]. Computer Science, 2003, 30(9): 22-29.
[10] Mikolov T, Karafi′at M, Burget L, et al. Recurrent neural network based language model[C]//Proceedings of Interspeech, 2010: 1045-1048.
[11] Kombrink S, Mikolov T, Karafi′at M, et al. Recurrent neural network based language modeling in meeting recognition[C]//Proceedings of Interspeech, 2011: 2877-2880.
[12] Mikolov T, Kombrink S, Burget L, et al. Extensions of recurrent neural network language model[C]// Proceedings of ICASSP, 2011: 5528-5531.
[13] 吳斌. 語音識別中的后處理技術研究[D]. 北京: 北京郵電大學, 2008.
WU Bin. Post-processing technique for speech recognition[D]. Beijing: Beijing University of Posts and Telecommunication, 2008.
[14] Mikolov T, Deoras A, Kombrink S, et al. Empirical evaluation and combination of advanced language modeling techniques[C]// Proceedings of Interspeech,2011: 605-608.
[15] 張仰森, 曹大元, 俞士汶. 語言模型復雜度度量與漢語熵計算[J].小型微型計算機系統, 2006, 27(10): 1931-1934.
ZHANG Yangsen, CAO Dayuan, YU Shiwen. Perplexity measure of language model and the entropy of Chinese[J]. Mini-micro Systems, 2006, 27(10): 1931-1934.
Recurrent neural network based Chinese language modeling method
WANG Long1,2, YANG Jun-an1,2,CHEN Lei1,2,LIN Wei3
(1. Electronic Engineering Institute of PLA, Hefei 230037,Anhui, China; 2. Key Laboratory of Electronic Restriction, Anhui Province, Hefei 230037,Anhui, China; 3. Anhui USTC iFlytek Corporation, Hefei 230037, Anhui, China )
Language model is an important part in the speech recognition system, the current mainstream technique is n-gram model. However, n-gram language model still has some shortcomings: the first is poorly to describe the long-distance information of a sentence, and the second is to arise the serious data sparse phenomenon; essentially they are the two important factors influencing the performances of the model. Aiming at these defects of n-gram language model, the researchers put forward a recurrent neural network (RNN) modeling technique, with which, the training for the English language model has achieved good results. According to the characteristics of the Chinese language, the RNN method is used for training the Chinese language model; also a model combination method to combine the advantages of the two models is proposed. The experimental results show that: the perplexity of RNN model has a certain decline, there is also a certain decline on the system recognition error rate,and after model combination, the recognition error rate reduces much more on the Chinese phone speech recognition, compared with the n-gram language model.
speech recognition; recurrent neural network; language model; model combination
TP391
A
1000-3630(2015)-05-0431-06
10.16300/j.cnki.1000-3630.2015.05.010
2014-10-22;
2015-02-09
國家自然科學基金(60872113)、安徽省自然科學基金(1208085MF94, 1308085QF99)資助項目。
王龍(1989-), 男, 碩士研究生, 研究方向為聲信號分析與識別技術。
王龍, E-mail: longwang0927@126.com