,,,
(1.重慶第二師范學(xué)院 數(shù)學(xué)與信息工程學(xué)院,重慶 400065;2.西華師范大學(xué) 電子信息工程學(xué)院,四川 南充 637000)
語音是人類交流信息中最自然、最方便、最有效的手段。隨著計算機技術(shù)的發(fā)展和廣泛應(yīng)用,人們思考如何將語音交流的這些優(yōu)點賦予給計算機,這樣就能讓計算機能夠和人們利用語音進行自然、方便的交流。語音識別技術(shù)就能夠?qū)崿F(xiàn)讓計算機賦予聽懂語音的功能。語音識別技術(shù)簡單來講,就是將模擬的自然語音通過數(shù)字信號處理技術(shù)轉(zhuǎn)換成數(shù)字信號,然后通過計算機利用模式識別技術(shù)將數(shù)字信號識別成語音對應(yīng)的文本。
經(jīng)過幾十年的發(fā)展,漢語普通話的語音識別已經(jīng)發(fā)展得比較成熟。中國一些高校、科研院所以及科技公司很早就開展了語音識別的研究。比如中國科學(xué)技術(shù)大學(xué)[1]、中國科學(xué)院聲學(xué)研究所[2]、科大訊飛[3]等。中國幅員遼闊,人口眾多,因此方言也較多。處于西南地區(qū)的重慶地區(qū)和四川東部地區(qū)就有特點很明顯的方言稱為重慶方言。將重慶方言作為語音識別的研究對象,可以促進重慶方言語音技術(shù)發(fā)展的同時,還有助于重慶方言文化的傳承,以及方便重慶地區(qū)利用習慣的方言與計算機進行交流。
語音識別就是將語音信息識別成相應(yīng)的文本信息。具體來講就是將連續(xù)的自然語音經(jīng)過數(shù)字信號處理技術(shù)獲得能表征自然語音的數(shù)字信號,并利用這些數(shù)字信號對已經(jīng)建立的聲學(xué)模型對訓(xùn)練,形成聲學(xué)模型庫。在識別語音的時候,對待識別的語音進行數(shù)字化處理并獲得相應(yīng)數(shù)字信號,這些數(shù)字信號和聲學(xué)模型庫中的模型進行匹配,從而得出識別結(jié)果的過程。
從上面語音識別的簡單定義可以看出,語音識別分為兩個階段,一個是訓(xùn)練階段,另一個是識別階段。訓(xùn)練階段即模型訓(xùn)練階段,是對語料庫中的語料進行數(shù)字化處理后,然后提出能夠表征語音信號的特征參數(shù),再利用特征參數(shù)對新建的語音原始模型進行充分的重估訓(xùn)練,最后得到語音模型庫。識別階段即是待識別語音進行模型匹配的階段,是對待識別的原因信號進行數(shù)字化,和訓(xùn)練階段一樣,獲得特征參數(shù),再利用模式識別方法對模型庫中的模型進行匹配,最后獲得語音識別結(jié)果。語音識別的原理圖如圖1所示。
圖1 語音識別原理
語音識別基元是語音識別的最小單元,也是語音識別過程中聲學(xué)建模的最小單元。根據(jù)不同的使用環(huán)境,常用的識別基元有音素、聲韻母、音節(jié)、字節(jié)、詞語、短語等。英語的語音技術(shù)應(yīng)用領(lǐng)域常用因素作為音素,漢語常常以聲韻母為識別基元。漢語普通話共有22個聲母(含零聲母),39個韻母。漢語聲母表和韻母表分別如表1[4]和表2[4]所示。
表1 漢語普通話聲母表
表2 漢語普通話韻母表
重慶方言雖然也屬于漢語,但是和漢語普通話存在一些差異。在聲母方面的差異在于重慶方言只有19個聲母,重慶方言不能區(qū)分/n/和/l/,也就是說沒有鼻音聲母/n/,并且通常把聲母/h/讀成/f/;在韻母方面的差異在于重慶方言只有6個單韻母,并且沒有/ing/和/eng/這兩個后鼻音韻母[5]。
語音特征參數(shù)能夠表征語音信息,也就是說語音特征參數(shù)能夠反應(yīng)出語音之間的不同特征。常見語音特征參數(shù)有線性預(yù)測系數(shù)(linear predictive coefficients, LPC)、線性預(yù)測倒譜系數(shù)(linear predictive cepstral coefficients, LPCC)、基于Mel頻率倒譜系數(shù)(mel frequency cepstral coefficients,MFCC)。不同的特征參數(shù)有它們相應(yīng)的優(yōu)劣,語音的優(yōu)劣最終是由人耳朵感知來決定的,因此特征參數(shù)的選擇取決于是否接近人耳對語音信號頻率的感知特性。根據(jù)人們對語音信號的研究可知,人耳對語音的感知能力在1 kHz以下和在1 kHz以上分別表現(xiàn)出線性關(guān)系和對數(shù)關(guān)系。因此,人們提出Mel頻率[6]概念來體現(xiàn)人耳對語音的感知狀況,Mel為人耳對語音感知的衡量單位。如圖2所示。
圖2 Mel頻率與Hz頻率的對應(yīng)關(guān)系
根據(jù)圖2的Mel頻率與Hz頻率的關(guān)系,本文選擇更加接近人耳感知特定的基于Mel頻率倒譜系數(shù)(MFCC)為特征參數(shù)。
從圖1的語音識別原理可以看出,聲學(xué)模型在整個語音識別系統(tǒng)中起著承上啟下的關(guān)鍵作用。在實際的語音識別過程中聲學(xué)模型遠比承上啟下的作用要大。聲學(xué)模型是語音識別過程中的能夠描述說話人特征在特征空間中的概率密度分布,聲學(xué)模型的選擇影響著語音識別的效果。常用的聲學(xué)模型有隱馬爾可夫模型(hidden markov model,HMM)、高斯混合模型(gaussian mixture model,GMM)、向量量化(vector quantization,VQ)模型、人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)模型等。其中HMM模型對于語音處理領(lǐng)域是較成熟的聲學(xué)模型,本文根據(jù)實際情況選擇HMM模型作為該語音識別系統(tǒng)的聲學(xué)模型。
HMM模型是由馬爾可夫演變而來,由“單鏈”的馬爾可夫變成“雙鏈”的HMM模型,其中一條隱藏的鏈描述了狀態(tài)的轉(zhuǎn)移,產(chǎn)生一定的狀態(tài)序列,因此不可觀測;另外一條可見的鏈描述了狀態(tài)和觀測值之間的統(tǒng)計對應(yīng)關(guān)系。觀察者只能通過可見的觀測值來感知狀態(tài)的轉(zhuǎn)移關(guān)系。常見的5狀態(tài)的HMM模型如圖3[7]所示。
圖3 5狀態(tài)的HMM模型
從圖3中可以看出,5狀態(tài)的HMM模型只有中間3個狀態(tài)有狀態(tài)轉(zhuǎn)移,這是由于5狀態(tài)的HMM模型左右兩端的狀態(tài)只起到前后連接作用,這兩個狀態(tài)并沒有高斯分布。因此圖3只能看到3個狀態(tài)才有狀態(tài)轉(zhuǎn)移標示。
語料庫是實現(xiàn)語音識別系統(tǒng)的基礎(chǔ),語料庫由語音文件和文本標注文件兩部分組成。本文將建立重慶方言語料庫,選取具有獨特重慶方言的部分詞語形成本系統(tǒng)所需的語料庫。
2.1.1 采集重慶方言詞語文本
本文采集了20個極具重慶方言的詞語,并有漢語普通話含義進行對應(yīng)。重慶方言詞語文本如表3所示。
表3 重慶方言詞語文本(部分)
2.1.2 語音錄音人的選擇
本文所采集的重慶方言語音,因此要選擇重慶本地人,并且該錄音人平常的日常生活都是以重慶方言為交流語言。
2.1.3 語音錄制環(huán)境的配置
本文語音錄制軟件采用Cool Edit Pro 2.1。錄音軟件界面如圖4所示。錄音軟件參數(shù)設(shè)置為單通道、16 bit量化、16 kHz采樣率,并保存為WAV格式。
圖4 Cool Edit Pro 2.1錄音軟件界面
2.1.4 語音錄制
在安靜的錄音環(huán)境中,錄音人對照表3的重慶方言詞語逐一進行錄制,錄制過程中聲音要響亮,語速適中,每一個詞語錄制10遍,每一遍之間要有停頓,便于下一步對詞語進行編輯剪輯。
2.1.5 語料庫的整理
將錄制后的語音進行編輯整理,并將語音對應(yīng)的文本標注與語音文件進行一一對應(yīng)。本文的語料庫共有25個重慶方言,每一個重慶方言發(fā)音10遍,共計25*10個語音文件,其中25*8個語音文件作為語音訓(xùn)練集,剩下的25*2個語音文件作為語音測試集,最終的語料庫由訓(xùn)練集和測試集組成。
語音識別系統(tǒng)的搭建分為兩個過程,一個是訓(xùn)練過程,另一個是識別過程。訓(xùn)練過程是利用已經(jīng)建立好的語料庫中的語音文件和文本文件對聲學(xué)模型進行重估訓(xùn)練,并得到聲學(xué)模型庫。識別過程是對待識別的語音進行預(yù)處理,得到語音相應(yīng)的特征參數(shù),然后利用一定的模型匹配原則得到語音識別結(jié)果,系統(tǒng)再對語音識別結(jié)果進行分析,最后輸出識別結(jié)果。本文的語音識別系統(tǒng)是基于HTK(HMM Toolkit)[8]搭建的。重慶方言語音識別系統(tǒng)框圖如圖5所示。
圖5 重慶方言語音識別系統(tǒng)框圖
由圖5可知,語音識別系統(tǒng)有訓(xùn)練過程和識別過程組成。下面本文將對這兩個過程中的重要部分進行闡述。
2.2.1 目標語法的建立
重慶方言語音識別系統(tǒng)定義了一個目標語法,將采集到的25個重慶方言對應(yīng)的文本全部寫進目標語法中,在本文中所有重慶方言用其對應(yīng)的發(fā)音來表示,如重慶方言的“抵攏倒拐”就用“dilongdaoguai”來表示。部分語法格式如下:
dialect=dilongdaoguai|badaoluzou|leifanzenzang|zenlanqibie|baxinbude;
( [sil](
語法格式中的“”表示變量符號,“dialect”表示自定義的變量,“sil”表示靜音,“sp”表示短暫停,“|”表示或關(guān)系,“[]”表示可選項,“<>”表示一個或可以多個重復(fù)。
2.2.2 重慶方言詞網(wǎng)絡(luò)與詞典的建立
第1步中建立的目標語法是為了方便用戶能夠理解重慶方言在語音識別中的定義規(guī)則,而計算機不能識別這樣定義的規(guī)則,那么需要將目標語法轉(zhuǎn)換成計算機能夠理解的規(guī)則,這樣的規(guī)則體現(xiàn)在詞網(wǎng)絡(luò)中。部分詞網(wǎng)絡(luò)如圖6所示。
圖6 部分詞網(wǎng)絡(luò)
搭建語音識別系統(tǒng)需要一個用于搜索重慶方言的詞典。部分詞典如圖7所示。圖中左側(cè)一欄表示用于該語音識別系統(tǒng)訓(xùn)練的重慶方言,右側(cè)一欄表示重慶方言對應(yīng)的發(fā)音。
圖7 部分詞典
2.2.3 語音文件的預(yù)處理
語音輸出語音識別系統(tǒng)之后第一步就是要進行預(yù)處理,預(yù)處理的內(nèi)容包括采樣量化、分幀加窗、預(yù)加重等。采樣量化將模擬信號處理為數(shù)字信號;分幀加窗將非平穩(wěn)的語音信號分成10~30 ms的短時準平穩(wěn)信號,便于獲取語音特征參數(shù),加窗的窗函數(shù)較多,本文選取哈明窗函數(shù)(如公式1);預(yù)加重是為了解決高頻低功率譜的問題,提高語音高頻部分的功率譜。
(1)
2.2.4 語音特征參數(shù)的提取
自然語音信號中包含了很多的信息,如果對這些都進行特征提取的話,會造成特征信號的冗余,不便對語音信號進行處理。因此,只需要對能夠表征語音特征的部分參數(shù)進行提取,本文采用更加接近人耳聽覺感知特性的Mel頻率倒譜系數(shù)[9](Mel Frequency Cepstral Coefficients, MFCC)為該系統(tǒng)的語音特征參數(shù)。MFCC的提取過程如圖8所示。
圖8 MFCC提取過程
2.2.5 聲學(xué)模型的訓(xùn)練
本文選取5個狀態(tài)的HMM模型作為聲學(xué)模型。5狀態(tài)的HMM模型中除去首尾起著鏈接作用的兩個狀態(tài),只有中間三個狀態(tài)才有高斯分布,每一個狀態(tài)有均值和協(xié)方差以及五個狀態(tài)的轉(zhuǎn)移概率。HMM模型的部分參數(shù)如圖9所示。
圖9 HMM模型的部分參數(shù)
2.2.6 語音識別
語音識別過程是實現(xiàn)測試過程中待測試語音的特征參數(shù)與訓(xùn)練過程中得到的聲學(xué)模型進行模式匹配。模式匹配過程實際就是求取待識別語音的特征參數(shù)匹配聲學(xué)模型庫中模型的最大似然概率。由本文2.4聲學(xué)模型中對HMM模型的介紹可知,HMM模型由一條隱藏的鏈描述了狀態(tài)的轉(zhuǎn)移和一條可見的鏈描述了狀態(tài)和觀測值之間的統(tǒng)計對應(yīng)關(guān)系組成,觀察者只能通過可見的觀測值來感知狀態(tài)的轉(zhuǎn)移關(guān)系。利用維特比算法來確定觀測值向量在聲學(xué)模型上的最大似然概率,得到語音識別結(jié)果。
2.2.7 識別結(jié)果分析
待測試語音進行語音識別后又對應(yīng)的識別結(jié)果,為了能夠直觀地看到識別結(jié)果,語音識別系統(tǒng)需要對識別結(jié)果進行分析。識別結(jié)果分析包括識別的正確率、和精確度,具體包括總的待識別語音的總數(shù)、識別正確的數(shù)量、刪除錯誤數(shù)量、替換錯誤數(shù)量、插入錯誤數(shù)量等。
利用語料庫中用于測試的25*2個重慶方言語音文件作為該語音識別系統(tǒng)的待測試語音文件。測試過程為先對這個25*2個重慶方言語音文件進行預(yù)處理,得到相應(yīng)的語音幀信號;然后對語音幀信號進行參數(shù)提取,得到相應(yīng)的語音特征參
數(shù);再利用維特比算法對模型庫中的聲學(xué)模型進行匹配,得到概率最大的匹配結(jié)果;最后對匹配進過進行分析,得到語音識別結(jié)果。重慶方言語音識別結(jié)果如圖10所示。
圖10 重慶方言語音識別結(jié)果
本文以重慶方言為實驗研究對象,采集了重慶方言文本,并錄制成語音文件,建立了重慶方言語料庫。搭建了由訓(xùn)練過程和識別過程組成的重慶方言語音識別系統(tǒng)。利用語料庫中的測試集語料作為待識別語料對搭建好的重慶方言語音識別系統(tǒng)進行了測試與分析。實驗結(jié)果表明,所設(shè)計的重慶方言語音識別系統(tǒng)能夠?qū)崿F(xiàn)重慶方言的識別,并且語音識別的正確率達到100%。
[1] 張仕良. 基于深度神經(jīng)網(wǎng)絡(luò)的語音識別模型研究[D].合肥:中國科學(xué)技術(shù)大學(xué), 2017.
[2] 張鵬遠, 計 哲, 侯 煒,等.小資源下語音識別算法設(shè)計與優(yōu)化[J]. 清華大學(xué)學(xué)報(自然科學(xué)版), 2017(2):147-152.
[3] http://www.iflytek.com/[EB/OL].
[4] 王海燕. 漢藏雙語跨語言統(tǒng)計參數(shù)語音合成的研究[D]. 蘭州:西北師范大學(xué), 2015.
[5] 鐘維克. 重慶方言音系研究[J]. 重慶社會科學(xué), 2005(6):118-118.
[6] Yu D, Deng L, Droppo J, et al. A minimum-mean-square-error noise reduction algorithm on Mel-frequency cepstra for robust speech recognition[C]. IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2008:4041-4044.
[7] Ling Z H, Kang S Y, Zen H, et al. Deep learning for acoustic modeling in parametric speech generation: A systematic review of existing techniques and future trends[J]. Signal Processing Magazine, IEEE, 2015, 32(3): 35-52.
[8] Young S, Evermann G, Gales M, et al. The HTK book (for HTK version 3.4)[J]. 2009.
[9] Veton Z. Kёpuska, Elharati H A. Robust Speech Recognition System Using Conventional and Hybrid Features of MFCC, LPCC, PLP, RASTA-PLP and Hidden Markov Model Classifier in Noisy Conditions[J]. Journal of Computer & Communications, 2015,3(6):1-9.