摘 要: 采用兩級識別網絡,,以連續(xù)隱含馬爾可夫模型為基本識別框架,基于一個100MIPS的16位定點DSP語音芯片平臺,,實現(xiàn)了嵌入式非特定人,、中等詞匯量英語" title="英語">英語孤立詞實時識別系統(tǒng)。
關鍵詞: 語音識別 嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng) 端點檢測" title="端點檢測">端點檢測 束搜索
隨著移動設備的快速發(fā)展,,迫切需要一種更友好,、更便捷的用戶操作系統(tǒng)。自動語音識別系統(tǒng)" title="語音識別系統(tǒng)">語音識別系統(tǒng)能夠提供便利的人機交互,,將成為一種主要方法,。目前,實驗室環(huán)境中自動語音識別系統(tǒng)已經取得了很好的效果,,但需要很大的存儲空間和運算資源,。當自動語音識別應用于移動設備時,必須對模型和識別策略進行相應改進,,才能滿足其對運算速度,、內存資源和功耗的要求。為了解決這個問題,,本文將結合英語語音的特點,設計并實現(xiàn)嵌入式英語語音識別系統(tǒng),,完成中等詞匯量的孤立詞實時識別任務。
1 硬件平臺
嵌入式系統(tǒng)的軟硬件高度結合,,針對系統(tǒng)的特定任務,,要量體裁衣,、去除冗余,使得系統(tǒng)能夠在高性能,、高效率,、高穩(wěn)定性的同時,保證低成本和低功耗,。因此,,系統(tǒng)硬件平臺的選用是影響系統(tǒng)整體性能的關鍵因素。系統(tǒng)采用Infineon公司Unispeech 80D51語音處理專用芯片作為核心的硬件平臺,,該芯片集成了一個16位定點DSP核(OAK),、一個8位MCU核(M8051 E-Warp)、兩路ADC,、兩路DAC,、104KB的SRAM以及高靈活性的MMU等器件。其中DSP最高工作頻率可達100MHz,,MCU最高工作頻率為50MHz,。
由于系統(tǒng)的語音處理專用芯片UniSpeech集成了大部分的功能單元,片外所需元件很少,,因此系統(tǒng)硬件平臺的板級結構非常簡單,。圖1為硬件平臺的板級結構圖。
專用芯片只需外接:
(1)EPROM:存放系統(tǒng)程序,;
(2)Flash Memory:存放語音識別系統(tǒng)需要的聲學模型參數(shù)和系統(tǒng)中的語音提示,、語音回放數(shù)據(jù);
(3)語音輸入器件:可直接外接麥克風,,接收語音信號,;
(4)語音輸出器件:可直接外接揚聲器或耳機,輸出系統(tǒng)的提示音,;
(5)電源:通過電壓變換芯片,,為電路板上各芯片提供需要的電壓;
(6)USB接口:該板級語音識別模塊提供了USB接口,,以提高該嵌入式系統(tǒng)和通用計算機系統(tǒng)之間數(shù)據(jù)交換的速度,;
(7)鍵盤:提供外接鍵盤接口,方便系統(tǒng)控制,;
(8)液晶:可外接一塊液晶顯示屏,,以輸出識別結果;
(9)其他設備接口:為了增強該語音信號處理模塊的功能擴展性,,UniSpeech提供了豐富的I/O資源,,共有100條通用I/O,系統(tǒng)也預留了這些I/O接口,,以方便與其他設備連接,。
2 算法研究
2.1 兩階段識別算法
在英語語音識別系統(tǒng)中,,常用的聲學模型基本單元是單詞(Word)、上下文無關音素(Monophone)[1],、上下文相關音素(Triphone,,Biphone)和音節(jié)(Syllable)[2]。單詞模型由于其靈活性太差及計算時間和占用內存隨待識別單詞數(shù)的增加而線性增長,,所以在嵌入式語音識別系統(tǒng)中很少應用,。Monophone模型具有模型簡單、狀態(tài)數(shù)較少,、識別速度快、內存占用少且與識別詞匯量無關等優(yōu)點,,但其對發(fā)音的相關性描述不夠精確,,一選識別率不高。Triphone和Syllable模型對發(fā)音相關性能準確建模,,但模型數(shù)量巨大,、狀態(tài)數(shù)較多、識別速度慢,、內存占用多,。為了解決內存占用量與識別速度之間的矛盾,本文采用了兩階段搜索算法,,其基本流程如圖2所示,。
在第一階段識別中,采用monophone模型和靜態(tài)識別網絡,,得到多候選詞條,;在第二階段識別中,根據(jù)第一階段輸出的多候選詞條,,構建新的識別網絡,,采用triphone模型,進行精確識別,,得到最終的識別結果,。由于第二階段識別的詞條數(shù)較少,與只采用triphone模型的一階段識別相比,,識別速度大大提高,;同時,第二階段識別可重用第一階段的內存資源,,也減少了識別系統(tǒng)的內存占用量,。
2.2 特征提取與選擇
在連續(xù)語音識別系統(tǒng)中,通常采用39維的MFCC(Mel Frequency Cepstral Coefficient)特征,,甚至再加入一些特征,。但是,,考慮到嵌入式系統(tǒng)有限的硬件資源,在不降低識別率的基礎上,,應盡量減少特征的維數(shù),。本文采用最小互信息改變準則MMIC(Minimum Mutual Information Change)進行特征選擇。一階段采用22維MFCC特征(9 MFCC,,6 ΔMFCC,,4 Δ2MFCC,E,,ΔE,,Δ2E),二階段采用26維MFCC特征(10 MFCC,,7 ΔMFCC,,6 Δ2MFCC,E,,ΔE,,Δ2E)。
2.3 數(shù)據(jù)的輸入輸出
對于硬件系統(tǒng),,如果數(shù)據(jù)的讀入速度較慢,,則對運算速度影響就很大。在保證系統(tǒng)高識別率的前提下,,系統(tǒng)的內存消耗量和識別時間常常是一對矛盾體,,很難保證兩者同時達到理想狀態(tài)。如果僅僅考慮節(jié)省內存,,將每個詞條識別網絡和相應的狀態(tài)逐個讀入,,計算匹配分數(shù),這樣雖然可以最大限度地節(jié)省內存的使用量,,但是數(shù)據(jù)的多次讀入占用了大量時間,,并且反復計算同一個轉移概率,也對識別時間影響很大,。另一方面,,如果僅僅考慮運算速度,一次性將所有詞條的識別網絡和所有狀態(tài)模型讀入內存,,雖然僅需一次數(shù)據(jù)讀入,,運算速度大大提高,但卻對內存提出了更高要求,。為了更好地利用系統(tǒng)的硬件資源,,本系統(tǒng)首先逐個讀入狀態(tài)模型,計算所有觀察矢量在各狀態(tài)模型下的輸出概率,,存放在內存中,;然后逐條讀入識別網絡,,選取路徑似然度最高的詞條作為最終的識別結果。這樣綜合了前面兩種方案的優(yōu)點,,適應了硬件系統(tǒng)的要求,。
2.4 兩階段端點檢測
端點檢測是嵌入式語音識別中最基本的模塊。端點檢測是否準確直接影響系統(tǒng)的運算復雜度和系統(tǒng)的識別性能,。因此在不增加復雜運算量的前提下,,希望端點檢測能盡量準確,而且能適應嵌入式系統(tǒng)多變的應用環(huán)境,。本文使用了一種有效的兩階段端點檢測方法" title="檢測方法">檢測方法,。在第一階段使用圖像分割中經常使用的邊緣檢測濾波器方法,得到一個能包含語音段同時又比較寬松的端點結果,;在第二階段,,對第一階段的結果進行再判決,使用直方圖統(tǒng)計方法得到靜音段的能量聚類中心,,并用這個中心能量值對整句能量序列進行中心削波,對削波后的能量序列進行最終判決,。通常最終的結果會在第二階段端點檢測的基礎上作適當?shù)姆潘?,前后放?~5幀(大約64~80ms),這些放松在求取特征的差分分量時是很有必要的,。
在實驗室環(huán)境下(信噪比大于25dB),,以8kHz采樣頻率錄制了20人(其中男、女各10人)的語音數(shù)據(jù),。對于12 000句原始錄制語音或帶噪語音,,對傳統(tǒng)的固定能量閾值方法和兩階段檢測方法進行了比較測試。測試的性能如表1所示,。
傳統(tǒng)的固定閾值方法就是針對環(huán)境噪聲設定一個固定的能量閾值進行端點檢測,。實驗表明,兩階段檢測方法無論在安靜環(huán)境中還是在包含一定噪聲的環(huán)境中,,都比固定能量閾值的端點檢測方法有更好的性能,。此方法能夠進一步改善嵌入式語音識別系統(tǒng)的識別性能。
2.5 束搜索
英語語音發(fā)音快,、單詞長,、狀態(tài)數(shù)多,因而搜索時間長,。要實現(xiàn)實時識別,,就不能在所有的語音數(shù)據(jù)都得到后再進行解碼識別。在兩級識別網絡中,,第一階段要在大量的詞條中搜索,,而第二階段只在N_BEST詞條中搜索,,相對時間占用量很少。為了滿足實時要求,,本系統(tǒng)在獲取語音信號的同時進行提取特征和第一階段識別[6],。根據(jù)硬件的內存容量,考慮到匹配分數(shù)所占用的內存,,選取每20幀(320ms)的語音完成一次搜索,。由于所搜索的詞條并沒有結束,不能求出最終對應于詞條的分數(shù),。因此,,必須保留每次搜索中每個詞條的每個節(jié)點的匹配分數(shù),這帶來了新的內存開銷,。
解決方法是在第一階段識別網絡中加入束搜索(Beam Search)快速算法,。該算法假設:Viterbi解碼過程中的最佳路徑在任何時刻都能保證較高的似然度,在搜索過程中對網絡進行剪枝,,只保留匹配分數(shù)最大的有限個路徑,,以減少運算量和內存消耗。但是,,要獲得匹配分數(shù)最大的幾個狀態(tài),,在每次搜索過程中都要對匹配分數(shù)進行排序,這使運算負擔加重,,在實際中不可取,。為了解決這一問題,結合本系統(tǒng)識別網絡的特點,,采用了一種滑動窗束搜索算法,。對于每一個詞條網絡,在Viterbi解碼過程中,,近似地認為真實路徑總是當前匹配分數(shù)最優(yōu)的路徑的近鄰路徑,。因此,設置了一個固定寬度的窗,,在所有時刻,,窗中的路徑總包含了該時刻似然度最高的路徑及其相鄰路徑,而那些落在窗外的路徑則將被剪枝,。由于模型狀態(tài)不可跨越,,因此,下一個活躍路徑的位置,,只可能是上一個活躍路徑的原有位置或者滑動一格,。由于中間的匹配分數(shù)相同,比較滑動窗兩端的匹配分數(shù)即可決定下一個滑動窗的位置。這樣可大大減小比較的運算量,,提高運算速度,。
由于語音信號隨機性較強,束搜索的這種假設并不總符合真實情況,,因此,,過窄的束寬很容易導致最后識別結果的錯誤。以三對角高斯模型為例,,語音庫為10個男生的命令詞,。窗寬與識別率的關系如表2所示。
可以看出,,當窗寬為15時,,識別率基本沒有下降。這個結果與候選詞條的長度有關,,詞條的狀態(tài)數(shù)越多,,最優(yōu)結果在搜索過程中“露出”窗外的可能性也就越大。綜合束搜索對系統(tǒng)率和識別時間兩方面的影響,,選定了束寬為10的滑動窗算法作為系統(tǒng)的束搜索算法,。
3 實驗結果
實驗訓練集采用LDC WSJ1訓練庫(SI_TR_S),包括200人的連續(xù)語音,,共61個小時,,降采樣為8kHz,16位量化,。測試集為由WSJ1測試集(CDTest和HSDTest)得到的525個短句(每句包含2個單詞),候選詞條為535個,,包括637個不同的單詞發(fā)音,,同樣降采樣為8kHz,16位量化,。
表3為一階段識別和兩階段識別的識別率,、識別時間和內存占用量比較。從表3可以看出,,與直接進行的一階段識別相比,,兩階段識別通過采用兩階段端點檢測方法、MMIC特征選擇算法,、特征提取和解碼同步的束搜索算法,,極大地提高了識別率,減少了內存占用量和識別時間,。
本文提出了一種基于定點DSP的嵌入式英語孤立詞識別系統(tǒng),,采用兩階段識別的連續(xù)HMM模型。其中第一階段為實時識別,第二階段為非實時識別,。通過采用新穎的兩階段端點檢測方法,、最小互信息改變準則特征選擇算法、特征提取和解碼同步的束搜索算法,,進一步提高了識別性能,、減少了內存占用量和計算復雜度。
參考文獻
1 楊行峻,,遲惠生.語音信號數(shù)字處理.北京:電子工業(yè)出版社,,1995
2 Abhinav Sethy,Shrikanth Narayanan.Split-Lexicon Based Hierarchical Recognition of Speech Using Syllable And Word Level Acoustic Units.In:Proc,,ICASSP′03,,2003
3 Novak M,,Hampl R,,Krbec P et al.Two-Pass Search Strategy for Larce List Recog Nition on Embedded Speech Recognition Platforms[A].Proceedings of ICASSP[C].Hong Kong:IEEE Press,2003
4 Valtcho Valtchev.Discriminative Methods in HMM-based Speech Recognition[D].Cambridge University St.John′s College,,1995
5 丁玉國.語音識別的置信度.清華大學碩士論文,,2005
6 Andreas Hagen,Daniel A.Connors,,Bryan L.Pellom.The Analysis and Design of Architecture Systems for Speech Recognition on Modern Handheld-Computing Devices.CODES/ISSS′03.Newpurt Beach,,California USA,2003,,10