新聞中心

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

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

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


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

1 硬件平臺(tái)

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

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

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

專(zhuān)用芯片只需外接:

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

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

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

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

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

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

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

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

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

2 算法研究

2.1 兩階段識(shí)別算法

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

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

2.2 特征提取與選擇

在連續(xù)語(yǔ)音識(shí)別系統(tǒng)中,通常采用39維的mfcc(mel frequency cepstral coefficient)特征,甚至再加入一些特征。但是,考慮到嵌入式系統(tǒng)有限的硬件資源,在不降低識(shí)別率的基礎(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ù)的輸入輸出

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

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

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

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

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

2.5 束搜索

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

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

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

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

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

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

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

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



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉