1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于DSP的高速實時語音識別系統(tǒng)的設(shè)計

      更新時間: 2007-10-29 09:18:28來源: 粵嵌教育瀏覽量:706

        實時語音識別系統(tǒng)中,由于語音的數(shù)據(jù)量大,運算復雜,對處理器性能提出了很高的要求,適于采用高速DSP實現(xiàn)。雖然DSP提供了高速和靈活的硬件設(shè)計,但是在實時處理系統(tǒng)中,還需結(jié)合DSP器件的結(jié)構(gòu)及工作方式,針對語音處理的特點,對軟件進行反復優(yōu)化,以縮短識別時間,滿足實時的需求。因此如何對DSP進行優(yōu)化編程,解決算法的復雜性和硬件存儲容量及速度之間的矛盾,成為實現(xiàn)系統(tǒng)性能的關(guān)鍵。本文基于TMS320C6713設(shè)計并實現(xiàn)了高速實時語音識別系統(tǒng),在固定文本的說話人辨識的應(yīng)用中效果顯著。

      1 語音識別的原理

        語音識別的基本原理框圖如圖1所示。語音信號中含有豐富的信息,從中提取對語音識別有用的信息的過程,就是特征提取,特征提取方法是整個語音識別系統(tǒng)的基礎(chǔ)。語音識別的過程可以被看作足模式匹配的過程,模式匹配是指根據(jù)一定的準則,使未知模式與模型庫中的某一模型獲得匹配。

      1.1 MFCC

        語音識別中對特征參數(shù)的要求是:

        (1) 能夠有效地代表語音特征;

        (2) 各階參數(shù)之間有良好的獨立性;

        (3) 特征參數(shù)要計算方便,保證識別的實時實現(xiàn)。

        系統(tǒng)使用目前為常用的MFCC(Mel FrequencyCepstral Coefficient,美爾頻率倒譜系數(shù))參數(shù)。

        求取MFCC的主要步驟是:

        (1) 給每一幀語音加窗做FFT,取出幅度;

        (2) 將幅度和濾波器組中每一個三角濾波器進行Binning運算;

        (3) 求log,換算成對數(shù)率;

        (4) 從對數(shù)率的濾波器組幅度,使用DCT變換求出MFCC系數(shù)。

        本文中采用12階的MFCC,同時加過零率和delta能量共14維的語音參數(shù)。

      1.2 DTW

        語音識別中的模式匹配和模型訓練技術(shù)主要有DTW(Dynamic Time Warping,動態(tài)時間彎折)、HMM(HideMarkov Model,隱馬爾科夫模型)和ANN(Artificial Neu-ral Network,人工神經(jīng)元網(wǎng)絡(luò))。

        DTW是一種簡單有效的方法。該算法基于動態(tài)規(guī)劃的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識別中出現(xiàn)較早、較為經(jīng)典的一種算法。DTW算法的原理是計算兩個長度不同的語音之間的相似程度,即失真距離。

        設(shè)測試語音和參考語音用T和R表示,他們分別含有N幀和M幀的語音參數(shù)。本文中每幀語音的特征參數(shù)為14維,因此T,R分別為N×14和M×14的矩陣。把測試語音的各個幀號x=1~N在一個二維直角坐標系中的橫軸上標出,把參考語音的各幀號y=1~M在縱軸上標出,通過這些表示幀號的整數(shù)坐標畫出一些縱橫線即可形成一個網(wǎng)格,網(wǎng)格中的每一個交叉點(x,y)表示測試模式中某一幀號與訓練模式某一幀的交叉點,對應(yīng)于兩個14維向量的歐氏距離。DTW算法在于尋找一條通過此網(wǎng)格中若干交叉點的路徑,使得該路徑上節(jié)點的路徑和小。算法示意圖如圖3所示。

      2 系統(tǒng)硬件環(huán)境

        本系統(tǒng)的核心芯片為TI公司的32位浮點數(shù)字信號處理器TMS320C6713。其時鐘頻率可達300 MHz,處理能力可以高達1 336 MIPS和1 000 MFLOPS。由于256 kB的片上RAM無法滿足多路信號處理時的空間需求,系統(tǒng)通過EMIF(External Memory Interface,外部存儲器接口)擴展了32 MB的外部SDRAM,并采用EDMA(External Direct Memory Access,擴展的直接存儲器訪問)方式對這些外部空間進行訪問。

        TMS320C6713有2個McBSPs(Multi-channel Buff-ered Serial Port,多通道緩沖串口),每個McBSP,可與多達128個通道進行收發(fā)。本系統(tǒng)中采用McBSP0實現(xiàn)數(shù)字語音信號到DSP的輸入,DSP進行實時判別后輸出結(jié)果。

      3 軟件實現(xiàn)

        由于TMS320C6x系列的C語言編譯器的效率可達匯編語言的70%~80%,并且C語言具有開發(fā)周期短、可維護性好、可移植性好、可繼承性好等優(yōu)點,所以軟件采用C語言實現(xiàn)。

      3.1 軟件流程

        測試中采用10個參考模板,每個模板由相應(yīng)的參考語音中2 s的語音數(shù)據(jù)訓練而成。識別策略為每路積累2 s的接收語音數(shù)據(jù)后與逐個參考模板進行匹配,如果經(jīng)由DTW運算所得的距離值小于特定的門限,就判決已匹配。如果不匹配,就繼續(xù)接收匹配,超過8 s匹配不上,就放棄。軟件流程框圖如圖5所示,其中語音數(shù)據(jù)的采樣率為8 000 Hz,每幀取256個采樣點,即32 ms的數(shù)據(jù)為一幀。

        程序調(diào)試通過后,采用CCS對其實時性進行分析。CCS(Code Composer Studio,代碼編譯器)是TI公司提供的軟件開發(fā)環(huán)境。他擴展了基本的代碼生成工具,集成了調(diào)試和實時分析功能。在CCS下,程序通過Wintech TDS510仿真器接到目標板的JTAG口進行硬件仿真測試。

        測試發(fā)現(xiàn)1幀信號的處理時間為78 135 679個指令周期,即391 ms(TMS320C6713工作在200 MHz),遠遠達不到實時處理的要求,必須對其進行優(yōu)化。

      3.2 代碼的優(yōu)化

        首先根據(jù)TI公司提供的軟件開發(fā)流程,從合作編譯器選項、使用內(nèi)聯(lián)函數(shù)、使用字訪問短整型數(shù)據(jù)和使用軟件流水等方面對代碼進行了優(yōu)化。具體實現(xiàn)中,采用-pm選項、-op3選項和-o3選項對程序進行了重新編譯。展開內(nèi)層循環(huán),并通過#pragma MUST ITERATE()告訴編譯器循環(huán)執(zhí)行的次數(shù),上述優(yōu)化后,處理一幀的時間從78 135 679個指令周期降到了50 364 683個指令周期,但是還是無法滿足實時性的要求。

        進一步對代碼進行測試分析,提取MFCC參數(shù)的過程中,256點的實數(shù)FFT運算占用了大量的時間。TI公司針對C6000系列的DSP提供了豐富的庫函數(shù)可以方便地調(diào)用。這里,從dsp67x.lib中調(diào)用DSPF_dp_cfftr4_dif()進行256點實數(shù)的FFT運算,把提取MFCC的時間降為了0.72 ms。

        由于采用10個參考模板,每路數(shù)據(jù)一次識別就要進行10次DTW的運算,所以如何減少DTW的運算時間是優(yōu)化的重點。對DTW的優(yōu)化從兩方面進行,首先采用查表法縮小匹配時搜索的區(qū)域。

        由于DTW匹配的過程中限定了彎折的斜率,因此好多格點實際上是達不到的,如圖6所示。因此菱形之外的格點對應(yīng)的幀匹配距離是不需要計算的。在本系統(tǒng)的應(yīng)用中,因為每次都以2 s和2 s的語音數(shù)據(jù)進行匹配,M和N都固定是64幀,所以可以建一個表格儲存菱形區(qū)域內(nèi)的測試幀號和參考幀號,匹配時只計算表格中兩幀間的矢量距離,即歐氏距離,從而把歐氏距離的運算從40 960次減少到了19 460次。

        在采用DTW快速算法后,還需進行了19 460次歐氏距離的運算。測試可得,每次運算耗時1 524個指令周期,所以這部分的運算仍是影響識別速度的關(guān)鍵。為了進一步提高代碼的性能,把這段代碼改為線性匯編來實現(xiàn)。

        完成上述全部優(yōu)化后,測試得到,處理一幀的時間為1 849 365個指令周期,其中TMS320C6713工作在200 MHz,即處理1幀的時間為1 849 365/200 000 000=9.25 ms,達到0.29倍實時。

      4 實驗及小結(jié)

        為了測試上述系統(tǒng)的識別性能,對其進行了固定文本的說話人辨識實驗。實驗中,采用錄音設(shè)備錄制了10個人、3個不同時間所說的同一句話,共30句,平均時間長度為4.5 ms。從每個人的3句話中選擇頻譜清晰的一句訓練成模板,另外錄制20句由這10個人所說的長度接近但內(nèi)容不同的語音做測試語音。這樣模板庫中有10個模板,測試語音有50個。

        首先通過各模板間的匹配,確定了判決門限0.2,然后把50句測試語音依次送入識別系統(tǒng),所有語音全部正確匹配。

        本文通過對DTW算法的改進,結(jié)合TMS320C6713的特點對C代碼進行了優(yōu)化,在保證識別率的情況下,用TMS320C6713成功地實現(xiàn)了語音信號的高速實時識別。






      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲人成网站999久久久 | 中文字幕一级二级 | 亚洲国产欧美国产综合在线一区 | 又色又爽又高潮的视频日本 | 最新日本一区二区三区高清 | 亚洲欧美日韩国产一区二区三区精品 |