《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SoPC的孤立詞語(yǔ)音識(shí)別系統(tǒng)的設(shè)計(jì)
基于SoPC的孤立詞語(yǔ)音識(shí)別系統(tǒng)的設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2012年第2期
孫 玉,郭寶增
(河北大學(xué) 電子信息工程學(xué)院,河北 保定071002)
摘要: 采用SoPC方法,實(shí)現(xiàn)了基于動(dòng)態(tài)時(shí)間規(guī)整(DTW)算法的孤立詞語(yǔ)音識(shí)別系統(tǒng),該系統(tǒng)可以作為電器系統(tǒng)的語(yǔ)音命令控制模塊使用??紤]嵌入式系統(tǒng)的特點(diǎn),對(duì)端點(diǎn)檢測(cè)算法和模式匹配算法進(jìn)行了選擇和調(diào)整。實(shí)驗(yàn)表明,該語(yǔ)音識(shí)別系統(tǒng)運(yùn)行速度和識(shí)別準(zhǔn)確性能夠適應(yīng)語(yǔ)音控制的要求。SoPC設(shè)計(jì)方式靈活,適合對(duì)系統(tǒng)進(jìn)行改進(jìn)升級(jí)。
Abstract:
Key words :

摘  要: 采用SoPC方法,實(shí)現(xiàn)了基于動(dòng)態(tài)時(shí)間規(guī)整(DTW)算法的孤立詞語(yǔ)音識(shí)別系統(tǒng),該系統(tǒng)可以作為電器系統(tǒng)的語(yǔ)音命令控制模塊使用??紤]嵌入式系統(tǒng)的特點(diǎn),對(duì)端點(diǎn)檢測(cè)算法和模式匹配算法進(jìn)行了選擇和調(diào)整。實(shí)驗(yàn)表明,該語(yǔ)音識(shí)別系統(tǒng)運(yùn)行速度和識(shí)別準(zhǔn)確性能夠適應(yīng)語(yǔ)音控制的要求。SoPC設(shè)計(jì)方式靈活,適合對(duì)系統(tǒng)進(jìn)行改進(jìn)升級(jí)。
關(guān)鍵詞: SoPC;Nios II;語(yǔ)音識(shí)別;動(dòng)態(tài)時(shí)間規(guī)整

    隨著計(jì)算機(jī)技術(shù)、模式識(shí)別技術(shù)等的發(fā)展,國(guó)內(nèi)外對(duì)語(yǔ)音識(shí)別的研究也不斷進(jìn)步。目前電器、家居智能化的實(shí)際需求使得語(yǔ)音識(shí)別技術(shù)成為一個(gè)研究熱點(diǎn)。例如,美國(guó)約翰·霍普金斯大學(xué)語(yǔ)言和語(yǔ)音處理中心多年來(lái)一直致力于推動(dòng)語(yǔ)言和語(yǔ)音識(shí)別的研究和教育,CLSP每年一度的夏季研討會(huì)對(duì)語(yǔ)音識(shí)別的各個(gè)領(lǐng)域都產(chǎn)生了深遠(yuǎn)的影響。國(guó)內(nèi),中國(guó)科學(xué)院等也在語(yǔ)音識(shí)別領(lǐng)域有較大進(jìn)展。
    相對(duì)于基于PC機(jī)平臺(tái)的大詞匯量語(yǔ)音識(shí)別系統(tǒng),嵌入式系統(tǒng)中要求語(yǔ)音控制模塊占用資源少,功能簡(jiǎn)潔,可作為獨(dú)立的語(yǔ)音識(shí)別系統(tǒng)或其他系統(tǒng)的語(yǔ)音控制部分。因此,根據(jù)語(yǔ)音識(shí)別系統(tǒng)的準(zhǔn)確性、實(shí)時(shí)性的要求和SoPC實(shí)現(xiàn)方式的特點(diǎn),在介紹實(shí)現(xiàn)該語(yǔ)音識(shí)別系統(tǒng)的基本流程的基礎(chǔ)上著重探討以下兩部分內(nèi)容:(1)由于端點(diǎn)檢測(cè)算法對(duì)識(shí)別的準(zhǔn)確性影響較大,本系統(tǒng)探索適合SoPC設(shè)計(jì)的端點(diǎn)檢測(cè)算法,從而使得系統(tǒng)的識(shí)別準(zhǔn)確性有所改進(jìn);(2)模式匹配時(shí),對(duì)同一模板采用了多個(gè)局部判決函數(shù),求多個(gè)累加總距離的平均值作為最終的判決依據(jù),進(jìn)一步提高了識(shí)別結(jié)果的可靠性。
    可編程片上系統(tǒng)SoPC(System on Programmable Chip)是Altera公司提出的一種基于FPGA的嵌入式系統(tǒng)解決方法,采用軟硬件結(jié)合設(shè)計(jì)的思想,實(shí)現(xiàn)方式簡(jiǎn)單靈活[1]。設(shè)計(jì)中采用高性?xún)r(jià)比的EP2C70 FPGA芯片。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)運(yùn)行良好,能夠滿足中、小詞匯量孤立詞語(yǔ)音識(shí)別系統(tǒng)的要求。
1 設(shè)計(jì)方案
    語(yǔ)音識(shí)別系統(tǒng)的邏輯流程如圖1所示。采樣得到的語(yǔ)音信號(hào)要經(jīng)過(guò)預(yù)處理、端點(diǎn)檢測(cè)、特征參數(shù)提取,然后根據(jù)用戶指定的工作模式(識(shí)別模式或訓(xùn)練模式),進(jìn)行模式匹配并輸出識(shí)別結(jié)果,或者訓(xùn)練得到該詞條的模板,并存入模板庫(kù)。因此,在硬件資源允許的條件下,用戶可以自定義訓(xùn)練模板,更新模板庫(kù),拓展系統(tǒng)的應(yīng)用范圍。

1.1 預(yù)加重和端點(diǎn)檢測(cè)
    系統(tǒng)采用8 kHz采樣,由音頻編/解碼芯片WM8731采樣得到的語(yǔ)音數(shù)據(jù),經(jīng)過(guò)FIFO數(shù)據(jù)緩存器傳輸?shù)较到y(tǒng)的SDRAM中,然后對(duì)SDRAM中的數(shù)據(jù)進(jìn)行后續(xù)處理。設(shè)定256個(gè)采樣點(diǎn)作為一幀,每個(gè)孤立詞采集100幀(3.2 s)數(shù)據(jù)。
    (1)預(yù)加重:處理的第一步要對(duì)采集到的數(shù)字語(yǔ)音信號(hào)進(jìn)行預(yù)處理,主要是預(yù)加重。預(yù)加重的目的是提升高頻部分,使信號(hào)的頻譜變得平坦,保持在低頻到高頻的整個(gè)頻帶中能用相同的信噪比求頻譜。通過(guò)一個(gè)濾波器對(duì)信號(hào)進(jìn)行濾波,濾波器的傳遞函數(shù)為:
    H(z)=1-0.98z-1(1)
    (2)端點(diǎn)檢測(cè):從數(shù)字語(yǔ)音信號(hào)中快速有效地切分出語(yǔ)音段,對(duì)于整個(gè)系統(tǒng)的識(shí)別速度和識(shí)別準(zhǔn)確性影響較大。根據(jù)漢語(yǔ)語(yǔ)音的特點(diǎn),一般一個(gè)漢語(yǔ)單詞的開(kāi)始部分是清音,接下來(lái)是濁音,清音較弱,濁音較強(qiáng)。因此在端點(diǎn)檢測(cè)部分,采用了基于短時(shí)能量和短時(shí)過(guò)零率的雙重檢測(cè)。首先根據(jù)濁音粗判起始幀,然后根據(jù)清音,細(xì)判起始幀。語(yǔ)音的起始幀和終止幀都是經(jīng)過(guò)粗判和細(xì)判之后得出,從而保證端點(diǎn)檢測(cè)的準(zhǔn)確性[2]。
 
1.2 特征提取
    經(jīng)過(guò)預(yù)加重和端點(diǎn)檢測(cè)之后得到語(yǔ)音段采樣值構(gòu)成的向量序列。接下來(lái)對(duì)該向量序列進(jìn)行特征參數(shù)分析,目的是提取合適的語(yǔ)音特征參數(shù),使特征向量序列在語(yǔ)音識(shí)別時(shí),類(lèi)內(nèi)距離盡量小,類(lèi)間距離盡量大。特征參數(shù)的提取同樣是語(yǔ)音識(shí)別的關(guān)鍵問(wèn)題,特征參數(shù)的選擇直接影響到語(yǔ)音識(shí)別的精度。結(jié)合SoPC設(shè)計(jì)的需求,選擇提取語(yǔ)音信號(hào)的美爾特征參數(shù)(MFCC)[3]。MFCC能夠較好地反映人耳的聽(tīng)覺(jué)特性。
    為求識(shí)別系統(tǒng)簡(jiǎn)潔,每詞條固定采集3.2 s的語(yǔ)音信號(hào),采樣頻率為8 kHz,經(jīng)端點(diǎn)檢測(cè)切分出語(yǔ)音段,然后將語(yǔ)音段進(jìn)行分幀(每幀256個(gè)采樣點(diǎn)),每幀提取一組14維的MFCC參數(shù),組成一組特征參數(shù)向量序列,作為待識(shí)別語(yǔ)音段的特征參數(shù)。
1.3 模式匹配
    對(duì)于大詞匯量的非特定人語(yǔ)音識(shí)別系統(tǒng),模式匹配多采用基于模型參數(shù)的隱馬爾可夫模型(HMM)的方法或基于非模型參數(shù)的矢量量化(VQ)的方法。但是HMM算法模型數(shù)據(jù)過(guò)大,對(duì)存儲(chǔ)空間和處理速度的要求高,不適合嵌入式系統(tǒng)。VQ算法雖然訓(xùn)練和識(shí)別的時(shí)間較短,對(duì)內(nèi)存要求也較小,但識(shí)別性能較差。因此考慮到嵌入式系統(tǒng)系統(tǒng)資源有限以及運(yùn)算能力限制,而又需要保證識(shí)別準(zhǔn)確性,決定采用基于動(dòng)態(tài)時(shí)間規(guī)整的算法(DTW)進(jìn)行模式匹配。
    由于每個(gè)人的發(fā)音習(xí)慣不同,以及同一個(gè)人每次說(shuō)同一個(gè)單詞時(shí)說(shuō)話速度具有隨機(jī)性,因此會(huì)導(dǎo)致每次采樣得到的語(yǔ)音數(shù)據(jù)序列長(zhǎng)度具有隨機(jī)性。DTW算法由日本學(xué)者板倉(cāng)(Itakura)提出[4],能夠較好地解決語(yǔ)音識(shí)別時(shí)單詞長(zhǎng)度具有隨機(jī)性這一問(wèn)題。
    DTW[5-6]算法將時(shí)間規(guī)整和距離測(cè)度計(jì)算相結(jié)合,描述如下:
    (1)將特征提取部分提取出來(lái)的特征向量序列與模板庫(kù)中每個(gè)詞條的特征向量序列逐幀計(jì)算距離,得到距離矩陣。對(duì)應(yīng)幀之間的距離是兩幀的特征向量中對(duì)應(yīng)分量的差值的平方和。距離矩陣中元素的計(jì)算式為:

其中,D[i][j]為距離矩陣的元素,表示待識(shí)別語(yǔ)音段特征向量序列第i幀和該條參考模板向量序列第j幀之間的距離,i=0,1,2,…,I-1;j=0,1,2,…,J-1。I、J分別為待識(shí)別語(yǔ)音的特征向量序列和該條參考模板序列的總幀數(shù)。x[i][m]為待識(shí)別語(yǔ)音的特征向量序列第i幀向量的第m維分量,y[j][m]為該條參考模板的第j幀向量的第m維分量。K為對(duì)切分出的語(yǔ)音段每幀語(yǔ)音的原始采樣數(shù)據(jù)提取的特征向量的維數(shù),該識(shí)別系統(tǒng)中每幀提取14維的MFCC參數(shù),因此K=14。
    (2)按照一定的局部判決函數(shù),由距離矩陣計(jì)算出累加距離矩陣(求得的累加距離矩陣最末一個(gè)元素的值即為待識(shí)別語(yǔ)音和該條參考模板之間的總距離),得到累加距離矩陣的同時(shí)得出最佳規(guī)整路徑[3-4]。圖3所示為設(shè)計(jì)中采用的三種局部判決函數(shù)。


    同理,對(duì)待測(cè)語(yǔ)音與模板庫(kù)中的每條模板求得一個(gè)統(tǒng)計(jì)平均距離。由判決邏輯判斷出各統(tǒng)計(jì)平均距離值中的最小值,相應(yīng)的模板所指向的單詞即為最終的識(shí)別結(jié)果。
2 系統(tǒng)實(shí)現(xiàn)
    系統(tǒng)硬件部分如圖4所示,包括FPGA芯片、Flash、SDRAM、音頻編解碼芯片WM8731、按鍵以及LCD1602。在FPGA芯片中添加NiosII軟核CPU,并建立片外Flash、SDRAM、音頻編解碼芯片WM8731和LCD1602的接口部分。

 

 

    系統(tǒng)中的Flash芯片用于存儲(chǔ)FPGA硬件設(shè)計(jì)文件、系統(tǒng)初始化所需代碼和用戶程序以及參考模板庫(kù),SDRAM作為系統(tǒng)內(nèi)存。系統(tǒng)上電后,硬件編程文件以及用戶程序讀入SDRAM中,并且初始化各硬件設(shè)備。初始化完畢后,如果選擇系統(tǒng)進(jìn)入識(shí)別模式,CPU通過(guò)I2C總線向WM8731寫(xiě)入命令,控制音頻芯片WM8731采集語(yǔ)音數(shù)據(jù)并進(jìn)行A/D轉(zhuǎn)化,得到的數(shù)據(jù)經(jīng)過(guò)WM8731的數(shù)據(jù)輸出端口在FPGA內(nèi)部構(gòu)建的FIFO緩存,存入內(nèi)存中,然后對(duì)數(shù)據(jù)進(jìn)行后續(xù)處理并進(jìn)行識(shí)別,最終輸出識(shí)別結(jié)果。
    系統(tǒng)采用SoPC方法實(shí)現(xiàn),按需要定制硬件模塊,設(shè)計(jì)過(guò)程簡(jiǎn)潔靈活,對(duì)系統(tǒng)的后續(xù)升級(jí)維護(hù)也比較方便。且實(shí)驗(yàn)表明:(1)采用雙重判決機(jī)制進(jìn)行端點(diǎn)檢測(cè),能夠得到較好的識(shí)別效果;(2)采用較簡(jiǎn)單的DTW方法進(jìn)行模式匹配,一方面在消耗系統(tǒng)資源較少的情況下能夠得到較高的識(shí)別速度,使得整個(gè)系統(tǒng)能夠滿足實(shí)時(shí)性的要求。另一方面,在模式匹配時(shí)采用不同的局部判決函數(shù)求得多個(gè)累加總距離,進(jìn)而求得累加總距離的統(tǒng)計(jì)平均值。以統(tǒng)計(jì)平均值作為最終的判決依據(jù),相對(duì)于只采用單一局部判決函數(shù)下得到的識(shí)別結(jié)果理論上可靠性更高。
參考文獻(xiàn)
[1] 周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 劉華平,李昕,徐柏齡,等.語(yǔ)音信號(hào)端點(diǎn)檢測(cè)方法綜述及展望[J].計(jì)算機(jī)應(yīng)用研究,2008(8):2278-2283.
[3] 羅希,劉錦高.基于NIOS的ANN語(yǔ)音識(shí)別系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(12):144-146.
[4] 趙力.語(yǔ)音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2003.
[5] 王娜,劉政連.基于DTW的孤立詞語(yǔ)音識(shí)別系統(tǒng)的研究與實(shí)現(xiàn)[J].九江學(xué)院學(xué)報(bào)(自然科學(xué)版),2010(3):31-39.
[6] 姚天任.數(shù)字語(yǔ)音處理[M].武漢:華中科技大學(xué)出版社,1991.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。