從原理入手,解析基于DSP的漢字語音識別系統(tǒng)的實現(xiàn)方式
語音識別是機(jī)器通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本文件或命令的高技術(shù)。作為專門的研究領(lǐng)域,語音識別又是一門交叉學(xué)科,它與聲學(xué)、語音學(xué)、語言學(xué)、數(shù)字信號處理理論、信息論、計算機(jī)科學(xué)等眾多學(xué)科緊密相連。語音識別經(jīng)過四十多年的發(fā)展,已經(jīng)顯示出巨大的應(yīng)用前景。本文從實現(xiàn)原理入手,介紹語音識別系統(tǒng)的實現(xiàn)方式。
本文引用地址:http://2s4d.com/article/201610/307429.htm概述
本漢語語音識別系統(tǒng)是一個非特定人的、孤立音語音識別系統(tǒng)。其中孤立音至少包括漢語的400多個調(diào)音節(jié)(不考慮聲調(diào))以及一些常用的詞組。識別系統(tǒng)主要用于手持設(shè)備,如手機(jī)、掌上電腦。這些設(shè)備的CPU一般是DSP,硬件資源十分有限,而且大多不支持浮點運算。那么,對系統(tǒng)各個部分的設(shè)計首要考慮的是系統(tǒng)對硬件資源的開銷必須盡量的小,不能超過這些設(shè)備的限制。硬件資源的開銷包括存儲模型參數(shù)的開銷,以及識別過程中對內(nèi)存、DSP的運行時間的開銷。
2 實現(xiàn)流程
一般的語音處理流程圖如圖1所示。
圖1 語音識別系統(tǒng)的處理流圖
在語音識別系統(tǒng)中,模擬的語音信號在完成A/D轉(zhuǎn)換后成為數(shù)字信號,但時域上的語音信號很難直接用于識別,因此需要從語音信號中提取語音的特征,一方面可以獲得語音的本質(zhì)特征,另一方面也起到數(shù)據(jù)壓縮的作用。輸入的模擬語音信號首先要進(jìn)行預(yù)處理,包括預(yù)濾波、采樣和量化、加窗、端點檢測、預(yù)加重等。語音識別系統(tǒng)的模型通常由聲學(xué)模型和語言模型兩部分組成,分別對應(yīng)于語音到半音節(jié)概率的計算和半音節(jié)到字概率的計算。
3 特征提取
目前通用的特征提取方法是基于語音幀的,即將語音信號分為有重疊的若干幀,對每一幀提取語音特征。由于本技術(shù)方案采用的語音庫采樣率為8 kHz,因此采用幀長為256個采樣點(即32 ms),幀步長或幀移(即每一幀語音與上一幀語音不重疊的長度)為80個采樣點(即10 ms)。
現(xiàn)有語音識別系統(tǒng)采用的最主要的兩種語音特征包括:
線性預(yù)測倒譜參數(shù)(Linear Prediction Cepstrum Coefficient,LPCC),該特征是基于語音信號為自回歸信號的假設(shè),利用線性預(yù)測分析獲得倒譜參數(shù)。LPCC參數(shù)的優(yōu)點是計算量小,對元音有較好的描述能力,其缺點在于對輔音的描述能力較差,抗噪聲性能較差。
Mel 頻標(biāo)倒譜參數(shù)(Mel Frequency Cepstrum Coefficient,MFCC),該特征考慮了人耳的聽覺特性,將頻譜轉(zhuǎn)化為基于Mel頻標(biāo)的非線性頻譜,然后轉(zhuǎn)換到倒譜域上。由于充分模擬了人的聽覺特性,而且沒有任何前提假設(shè),MFCC參數(shù)具有識別性能和抗噪能力,實驗證明在漢語數(shù)碼語音識別中MFCC 參數(shù)的性能明顯優(yōu)于LPCC參數(shù),因此本技術(shù)方案采用MFCC參數(shù)為語音特征參數(shù)。
求MFCC參數(shù)的大致過程為:
對輸入語音幀加Hamming窗后做快速傅里葉變換(Fast Fourier Transformation,F(xiàn)FT),將時域信號轉(zhuǎn)化為頻域信號。
將線性頻標(biāo)轉(zhuǎn)化為Mel頻標(biāo)。轉(zhuǎn)化方法是將頻域信號通過24個三角濾波器,其中中心頻率在1 000 Hz以上和以下的各12個。濾波器的中心頻率間隔特點是在1000Hz以下為線性分布,1 000 Hz以上為等比數(shù)列分布。三角濾波器的輸出為:
式中:Xk為頻譜上第k個頻譜點的能量;Yi為第i個濾波器的輸出;Fi為第i個濾波器的中心頻率。
用離散余弦變換(Discrete Cosine Transformation,DCT)將濾波器輸出變換到倒譜域:
式中:p為MFCC參數(shù)的階數(shù),這里取p = 12。{Ck}k = 1,2,…,12即為所求的MFCC參數(shù)。
為體現(xiàn)語音的動態(tài)特性,在語音特征中加入了一階差分倒譜,其計算方法如下式所示:
式中下標(biāo)l與l - k表示第l與l - k幀;m表示第m維。
MFCC參數(shù)計算的要點是將線性功率譜S(n)轉(zhuǎn)換成為Mel頻率下的功率譜,這需要在計算之前先在語音的頻譜范圍內(nèi)設(shè)置若干個帶通濾波器Hm(n),m= 0,1,2,…,M - 1,n = 0,1,2,…,N/2 - 1。M為濾波器個數(shù),N為一幀語音信號的點數(shù)。每個濾波器具有三角形特性,其中心頻率為fm,它們在Mel頻率軸上是均勻分布的。在線性頻率上,當(dāng)m 較小時相鄰的fm間隔很小,隨著m的增加相鄰的fm間隔逐漸拉開。Mel頻率和線性頻率的轉(zhuǎn)換關(guān)系如下:
這些帶通濾波器的參數(shù)是事先計算好的。圖2給出了濾波器組的分布圖,其中M 選擇為26,F(xiàn)FT點數(shù)N為256,語音信號的采樣頻率為8000 Hz。
圖2 利用人耳仿生學(xué)特性設(shè)計的Mel尺度濾波器組
4 測度估計
測度估計技術(shù)可以采用動態(tài)時間彎折DTW、隱馬爾可夫模型HMM或人工神經(jīng)網(wǎng)ANN等算法,本項目采用國際上最先進(jìn)的HMM,這樣能夠比較容易的實現(xiàn)非特定人,而且系統(tǒng)結(jié)構(gòu)也比較靈活、一致。
根據(jù)描述的語音單位的大小,HMM可分為:基于整詞模型的HMM(Word based HMM)。其優(yōu)點為可以很好地描述詞內(nèi)音素協(xié)同發(fā)音的特點,建模過程也較為簡單。因此很多小詞匯量語音識別系統(tǒng)均采用整詞模型HMM。但在大詞匯量語音識別中由于所需建立的模型太多而無法使用。
基于子詞模型的HMM(Sub Word based HMM)。該類HMM描述的語音單位比詞小,如英語語音識別中的基本音素,漢語語音識別中的半音節(jié)等。其優(yōu)點為模型總數(shù)少,所以在大詞匯量語音識別中得到了廣泛的應(yīng)用。其缺點在于其描述詞內(nèi)協(xié)同發(fā)音的能力劣于整詞模型,但由于子詞模型已經(jīng)得到了非常充分的研究,所以近年來在很多小詞表應(yīng)用識別系統(tǒng)中也用了子詞模型。本技術(shù)方案采用基于半音節(jié)(即聲、韻母)的語音建模方法,其識別模型拓?fù)浣Y(jié)構(gòu)如圖3 所示,其中靜音HMM采用1個狀態(tài),每一聲母模型采用2個狀態(tài),每一韻母模型采用4個狀態(tài)。
圖3 識別模型拓?fù)浣Y(jié)構(gòu)
根據(jù)輸出概率分布的不同,HMM(隱含馬爾科夫模型)可分為:
離散HMM(Discrete HMM,DHMM)。其輸出概率是基于一套碼本的離散概率分布,其優(yōu)點在于由于實現(xiàn)了存儲量和計算量都較小,所需的訓(xùn)練語音也較少,但其矢量量化的過程會造成性能的損失。
連續(xù)HMM(Continuous Density HMM,CDHMM)。其輸出概率是連續(xù)概率密度函數(shù)(一般是高斯混合密度函數(shù))。其所需的訓(xùn)練語音較多,模型參數(shù)存儲量和計算量都較大,在訓(xùn)練語音足夠時,其性能優(yōu)于DHMM。
半連續(xù)HMM(Semi Continuous HMM,SCHMM)。SCHMM是DHMM和CDHMM的折衷,與DHMM相似,其輸出為一套碼本,但每個碼字均為一個連續(xù)概率密度分布函數(shù),這一點與CDHMM相近。其性能和所需的訓(xùn)練語音等均介于DHMM和CDHMM之間。
考慮到漢語數(shù)碼語音所需的模型較少,很容易獲得足夠多的訓(xùn)練語音,因此本技術(shù)方案采用了CDHMM為語音模型。
狀態(tài)輸出概率分布為混合高斯密度函數(shù)。其各分量計算如下:
總的概率輸出即為各分量的加權(quán)和:
式中:s表示當(dāng)前狀態(tài);M為混合分量數(shù);u,Σ ,c分別為各混合分量的均值矢量、協(xié)方差矩陣和混合分量系數(shù)。
該算法利用Viterbi譯碼的過程進(jìn)行幀同步的搜索,易于實時實現(xiàn),也容易納入語法信息。考慮到系統(tǒng)的實時實現(xiàn)性,本技術(shù)方案采用Viterbi譯碼作為系統(tǒng)的搜索算法。
5 試驗結(jié)果
在漢語全音節(jié)與詞組混合的語音識別任務(wù)中,得到的初步實驗結(jié)果為:PC微機(jī)浮點算法條件下正確覆蓋率不低于98%,定點算法的正確覆蓋率不低于97%。DSP嵌入系統(tǒng)定點條件下正確覆蓋率不低于96%。系統(tǒng)的響應(yīng)時間滿足實時識別的要求。通過測試組嚴(yán)格的檢查及抽樣測試,證明上述結(jié)果真實可靠,該輸入法基本達(dá)到實用化要求。
6 結(jié)語
語音漢字輸入技術(shù)的研發(fā)是具有重大經(jīng)濟(jì)和社會意義的課題,該項目采用孤立語音的全音節(jié)和詞組的混合識別模式,使用連續(xù)概率分布非特定人的聲學(xué)模型,并輔以多候選的人機(jī)交互方式,較好地實現(xiàn)了在移動(便攜式)電子設(shè)備上資源有限的條件下方便快捷的漢字語音輸入。
評論