新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式實(shí)時英語語音識別系統(tǒng)的設(shè)計和實(shí)現(xiàn)

嵌入式實(shí)時英語語音識別系統(tǒng)的設(shè)計和實(shí)現(xiàn)

——
作者:胡姍姍,劉加,王國梁 時間:2007-01-26 來源:《電子技術(shù)應(yīng)用》 收藏


隨著移動設(shè)備的快速發(fā)展,迫切需要一種更友好、更敏捷的用戶操作系統(tǒng)。自動語音識別系統(tǒng)能夠提供便利的人機(jī)交互,將成為一種主要方法,目前,實(shí)驗(yàn)室環(huán)境中的自動語音識別系統(tǒng)已經(jīng)取得了很好的效果,但需要很大的存儲空間和運(yùn)算資源。當(dāng)自動語音識別應(yīng)用于移動設(shè)備時,必須對模型和識別策略進(jìn)行相應(yīng)改進(jìn),才能滿足其對運(yùn)算速度、內(nèi)存資源和功耗的要求,為了解決這個問題,本文將結(jié)合英語語音的特點(diǎn),設(shè)計并實(shí)現(xiàn)嵌入式英語語音識別系統(tǒng),完成中等詞匯量的孤立詞實(shí)時識別任務(wù)。

1 硬件平臺

嵌入式系統(tǒng)的軟硬件高度結(jié)合,針對系統(tǒng)的特定任務(wù),要量體裁衣、去除冗余、使得系統(tǒng)能夠在高性能、高效率、高穩(wěn)定性的同時,保證低車成本和低功耗,因此,系統(tǒng)硬件平臺的選用是因?yàn)橄到y(tǒng)整體性能的關(guān)鍵因素,系統(tǒng)采用infineon公司unispeech 80d51語音處理專用芯片作為芯片的硬件平臺,該芯片集成了一個16位定點(diǎn)dsp核(oak)、一個8位mcu核(m8051 e-warp)、兩路adc、兩路dac、104kb的sram以及高靈活性的mmu等器件,其中dsp最高工作頻率可達(dá)100mhz,mcu最高工作頻率為50mhz。

由于系統(tǒng)的語音處理專用芯片unispeech集成了大部分的功能單元,片外所需元件很少,因此系統(tǒng)硬件平臺的板級結(jié)構(gòu)非常簡單,圖1為硬件平臺的板級結(jié)構(gòu)圖。

本文引用地址:http://m.butianyuan.cn/article/21583.htm

專用芯片只需外接:

(1)eprom:存放系統(tǒng)程序;

(2)flash memory:存放語音識別系統(tǒng)需要的聲學(xué)模型參數(shù)和系統(tǒng)中的語音提示、語音回放數(shù)據(jù);

(3)語音輸入器件:可直接外接麥克風(fēng),接收語音信號;

(4)語音輸出器件:可直接外接揚(yáng)聲器或耳機(jī),輸出系統(tǒng)的提示音;

(5)電源:通過電壓變換芯片,為電路板上各芯片提供需要的電壓;

(6)usb接口:接板級語音識別模塊提供了usb接口,以提高該嵌入式系統(tǒng)和通用計算機(jī)系統(tǒng)之間數(shù)據(jù)交換的速度;

(7)鍵盤:提供外接鍵盤接口,方便系統(tǒng)控制;

(8)液晶:可外接一塊液晶顯示屏,以輸出識別結(jié)果;

(9)其他設(shè)備接口:為了增強(qiáng)該語音信號處理模塊的功能擴(kuò)展性,unispeech提供了豐富的i/o資源,共有100條通用i/o,系統(tǒng)也預(yù)留了這些i/o接口,以方便與其他設(shè)備連接。

2 算法研究

2.1 兩階段識別算法

在英語語音識別系統(tǒng)中,常用的聲學(xué)模型基本單元是單詞(word)、上下文無關(guān)音速(monophone)[1]、上下文相關(guān)音速(triphone、biphone)和音節(jié)(syllable)[2],單詞模型由于其靈活性太差及計算時間和占用內(nèi)存隨待識別單詞數(shù)的增加而線性增長,所以在嵌入式語音識別系統(tǒng)中很少應(yīng)用。monophone模型具有模型簡單、狀態(tài)數(shù)較少、識別速度快、內(nèi)存占用少且與識別詞匯量無關(guān)等優(yōu)點(diǎn),但其對發(fā)音的相關(guān)性描述不夠精確,一選識別率不高,triphone和syllable模型對發(fā)音相關(guān)性能準(zhǔn)確建模,但模型數(shù)量巨大、狀態(tài)數(shù)較多、識別速度慢、內(nèi)存占用多,為了解決內(nèi)存占用量與識別速度之間的矛盾,本文采用了兩階段搜索算法,其基本流程如圖2所示。

在第一階段識別中,采用monophone模型和靜態(tài)識別網(wǎng)絡(luò),得到多侯選詞條;在第二階段識別中,根據(jù)第一階段輸出的多侯選詞條,構(gòu)建新的識別網(wǎng)絡(luò),采用triphone模型,進(jìn)行精確識別,得到最終的識別結(jié)果。由于第二階段識別的詞條數(shù)較少,與只采用triphone模型的一階段識別相比,識別速度大大提高,同時,第二階段識別可重用第一階段的內(nèi)存資源,也減少了級別系統(tǒng)的內(nèi)存占用量。

2.2 特征提取與選擇

在連續(xù)語音識別系統(tǒng)中,通常采用39維的mfcc(mel frequency cepstral coefficient)特征,甚至再加入一些特征。但是,考慮到嵌入式系統(tǒng)有限的硬件資源,在不降低識別率的基礎(chǔ)上,應(yīng)盡量減少特征的維數(shù),本文采用最小互信息改變準(zhǔn)則mmic(minimum mutual information change)進(jìn)行特征選擇,一階段采用22維mfcc特征(9 mfcc,6δmfcc,4δ2mfcc,e,δe,δ2e),二階段采用26維mfcc特征(10mfcc,7δmfcc,6δ2mfcc,e,δe,δ2e)。

2.3 數(shù)據(jù)的輸入輸出

對于硬件系統(tǒng),如果數(shù)據(jù)的讀入速度較慢,則對運(yùn)算速度影響就很大,在保證系統(tǒng)高識別率的前提下,系統(tǒng)的內(nèi)存消耗量和識別時間常常是一對矛盾體,很難保證兩者同時達(dá)到理想狀態(tài),如果僅僅考慮節(jié)省內(nèi)存、將每個詞條識別網(wǎng)絡(luò)和相應(yīng)的狀態(tài)逐個讀入,計算匹配分?jǐn)?shù),這樣雖然可以最大限度地節(jié)省內(nèi)存的使用,但是數(shù)據(jù)的多次讀入占用了大量時間,并且反復(fù)計算同一個轉(zhuǎn)移概率,也對識別時間影響很大,另一方面,如果僅僅考慮運(yùn)算速度,一次性將所有詞條的識別網(wǎng)絡(luò)和所有狀態(tài)模型讀入內(nèi)存,雖然僅需一次性數(shù)據(jù)讀入,運(yùn)算速度大大提高,但卻對內(nèi)存提出了更高要求,為了更好地利用系統(tǒng)的硬件資源,本系統(tǒng)首先逐個讀入模型,計算所有觀察矢量在各狀態(tài)模型的輸出概率,存放在內(nèi)存中,然后逐條讀入識別網(wǎng)絡(luò),選取路徑似然度最高的詞條作為最終的識別結(jié)果,這樣綜合了前面兩種方案的優(yōu)點(diǎn),適應(yīng)了硬件系統(tǒng)的要求。

2.4 兩階段端點(diǎn)檢測

端點(diǎn)檢測是嵌入式語音識別中最基本的模塊,端點(diǎn)檢測是否準(zhǔn)確直接影響系統(tǒng)的運(yùn)算復(fù)雜度和系統(tǒng)的識別性能,因此在不增加復(fù)雜運(yùn)算量的前提下,希望端點(diǎn)檢測能盡量準(zhǔn)確,而且能適應(yīng)嵌入式系統(tǒng)多變的應(yīng)用環(huán)境,本文使用了一種有效的兩階段端點(diǎn)檢測方法,在第一階段使用圖像分割中經(jīng)常使用的邊緣檢測濾波器方法,得到一個能包含語音段同時又比較寬松的端點(diǎn)結(jié)果,在第二階段,對第一階段的結(jié)果進(jìn)行再判決,使用直方圖統(tǒng)計方法得到靜音段的能量聚類中心,并用這個中心能量值對整句能量序列進(jìn)行中心削波,對削波后的能量序列進(jìn)行最終判決,通常最終的結(jié)果會在第二階段端點(diǎn)檢測的基礎(chǔ)上作適當(dāng)?shù)姆潘桑昂蠓潘?-5幀(大約64-80ms),這些放松在求取特征的差分分量時是很有必要的。

在實(shí)驗(yàn)室環(huán)境下(信噪比大于25db),以8khz采樣頻率錄制了20人(其中男、女各10人)的語音數(shù)據(jù),對于1200句原始錄制語音或帶噪語音,對傳統(tǒng)的固定能量閾值方法和兩階段檢測方法進(jìn)行了比較測試,測試的性能如表1所示。

傳統(tǒng)的固定閾值方法就是針對環(huán)境噪聲設(shè)定一個固定的能量閾值進(jìn)行端點(diǎn)檢測,實(shí)踐證明,兩階段檢測方法無論在安靜環(huán)境中還是在包含一定噪聲的環(huán)境中,都比固定能量閾值的端點(diǎn)檢測方法有更好的性能,此方法能夠進(jìn)一步改善嵌入式語音識別系統(tǒng)的識別性能。

2.5 束搜索

英語語音發(fā)音快、單詞長、狀態(tài)數(shù)多,因而搜索時間長,要實(shí)現(xiàn)實(shí)時識別、就不能在所有的語音數(shù)據(jù)都得到后再進(jìn)行解碼識別,在兩級識別網(wǎng)絡(luò)中,第一階段要在大量的詞條中搜索,而第二階段只在n_best詞條中搜索,相對時間占用量很少,為了滿足實(shí)時要求,本系統(tǒng)在獲取語音信號的同時進(jìn)行提取特征和第一階段識別[6],根據(jù)硬件的內(nèi)存容量,考慮到匹配分?jǐn)?shù)所占用的內(nèi)存,選取每20幀(320ms)的語音完成一次搜索。由于所搜索的詞條并沒有結(jié)束,不能求出最終對應(yīng)于詞條得分?jǐn)?shù),因此,必須保留每次搜索中每個詞條的每個節(jié)點(diǎn)的匹配分?jǐn)?shù),這帶來了新的內(nèi)存開銷。

解決方法是在第一階段識別網(wǎng)絡(luò)中加入束搜索(beam search)快速算法。該算法假設(shè):viterbi解碼過程中的最終路徑在任何時刻都能保證較高的似然度,在搜索過程中對網(wǎng)絡(luò)進(jìn)行剪枝,只保留匹配分?jǐn)?shù)最大的有限個路徑,以減少運(yùn)算量和內(nèi)存消耗。但是,要獲得匹配得分?jǐn)?shù)最大的幾個狀態(tài),在每次搜索過程中都要對匹配分?jǐn)?shù)進(jìn)行排序,這使運(yùn)算負(fù)擔(dān)加重,在實(shí)際中不可取,為了解決這一問題,結(jié)合本系統(tǒng)識別網(wǎng)絡(luò)的特點(diǎn),采用了一種滑動窗束搜索算法。對于每一個詞條網(wǎng)絡(luò),viterbi解碼過程中,近似地認(rèn)為真實(shí)路徑總是當(dāng)前匹配分?jǐn)?shù)最優(yōu)的路徑和近鄰路徑,因此,設(shè)置了一個固定寬度的窗,在所有時刻,窗中的路徑總包含了該時刻似然度最高的路徑及其相鄰路徑,而那些落在窗外的路徑則將被剪枝,由于模型狀態(tài)不可跨越,因此,下一個活躍路徑的位置,只可能是上一個活躍路徑的原有位置或者滑動一格,由于中間的匹配分?jǐn)?shù)相同,比較滑動窗兩端的匹配分?jǐn)?shù)即可決定下一個滑動窗的位置,這樣可大大減少比較的運(yùn)算量,提高運(yùn)算速度。

由于語音信號隨機(jī)性較強(qiáng),束搜索的這種假設(shè)并不符合真實(shí)情況,因此,過窄的束寬很容易導(dǎo)致最后識別結(jié)果的錯誤,以三對角高斯模型為例,語音庫為10個男生的命令詞,窗寬與識別率的關(guān)系如表2所示。

可以看出,當(dāng)窗寬為15時,識別率基本沒有下降,這個結(jié)果與侯選詞條的長度有關(guān),詞條的狀態(tài)越多,最優(yōu)結(jié)果在搜索過程中“露出”窗外的可能性也就越大,綜合束搜索對系統(tǒng)率和識別時間兩方面的影響,選定了束寬為10的滑動窗算法為系統(tǒng)的束搜索算法。

3 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)訓(xùn)練集采用ldc wsj1訓(xùn)練庫(si_tr_s)包括200人的連續(xù)語音,共61個小時,降采樣為8khz,16位量化,測試集為由wsj1測試集(cdtest和hsdtest)得到的525個短句(每句包含2個單詞),侯選詞條為535個,包括637個不同的單詞發(fā)音,同樣降采樣為8khz,16位量化。

表3為一階段識別和兩階段識別的識別率,識別時間和內(nèi)存占用量比較,從表3中可以看出,與直接進(jìn)行的一階段識別相比,兩階段識別通過采用兩階段斷電檢測方法、mmic特征選擇算法、特征提取和解碼同步的束搜索算法,極大的提高了識別率,減少了內(nèi)存占用量和識別時間。

本文提出了一種基于定點(diǎn)dsp的嵌入式英語孤立詞識別系統(tǒng),兩階段識別的連續(xù)hmm模型,其中第一階段為實(shí)時識別,第二階段為非實(shí)時識別,通過采用新穎的兩階段端點(diǎn)測試方法、最后互信息改變準(zhǔn)則特征選擇算法、特征提取和解碼同步的束搜索算法,進(jìn)一步提高了識別性能、減少了內(nèi)存占用量和計算復(fù)雜度。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉