新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于片上系統(tǒng)SoC的孤立詞語音識別算法設(shè)計

基于片上系統(tǒng)SoC的孤立詞語音識別算法設(shè)計

作者: 時間:2012-04-01 來源:網(wǎng)絡(luò) 收藏

3.3.3 應(yīng)用中提高算法效率的改進方法

在計算傳統(tǒng)DTW算法過程中,如果限定動態(tài)規(guī)整的計算范圍,可以大大減小計算量,提高程序的性能。

采用平行四邊形限制動態(tài)規(guī)整范圍,如圖3,菱形之外的節(jié)點對應(yīng)的幀匹配距離是不需要計算的,也沒有必要保存所有幀匹配距離矩陣和累積距離矩陣,以 ADTW的局部約束路徑為例,每一列各節(jié)點上的匹配計算只用到了前兩列的幾個節(jié)點。充分利用這兩個特點可以減少計算量和存儲空間的需求。把實際的動態(tài)規(guī)整分為三段,(1,Xa),(Xa+1,Xb)和(Xb+1,N),

由于X軸上每前進一幀,只用到前兩列的累積距離,所以只需要三個列矢量A、B和C分別保存連續(xù)三列的累積距離,而不需保存整個距離矩陣。每前進一幀都對A、B、C進行更新,即用A和B的值求出C,再根據(jù)B和C的值求出下一列的累積矩陣放入A中,由此可以反復(fù)利用這三個矢量,一直前進到X軸上最后一列,最后一個求出矢量的第M個元素即為兩個模板動態(tài)規(guī)整的匹配距離。

高效DTW對識別的區(qū)域進行了限制,整個平面區(qū)域大小為M×N,匹配區(qū)域的大小為

9.jpg公式(12)

若M=N=150,則限定區(qū)域內(nèi)的計算量只是傳統(tǒng)DTW算法計算量的24%;同時算法節(jié)省了空間,由原來的2個N×M矩陣,減少為3個M矢量,大大減少了需要的存儲空間,解決了普通DTW算法在存儲空間有限的嵌入式系統(tǒng)中難以實現(xiàn)的問題。

4. MATLAB實驗與分析

為了對算法的識別效果進行測試,設(shè)計了用于數(shù)字家庭控制系統(tǒng)的識別命令集,并基于Matlab構(gòu)建了孤立詞系統(tǒng),對識別算法進行實驗和分析。該命令集包括語音命令100條,分別是如下幾類:
l 語音通話控制命令,例如,“撥打電話”,數(shù)字,人名;
l 音樂控制類,“打開音樂”、“減小音量”等;
l 門窗控制類,“關(guān)閉百葉窗”、“打開大門”等;
l 家庭電器控制類,“打開空調(diào)”、“打開收音機”等。

該系統(tǒng)使用設(shè)計的端點檢測技術(shù)、特征提取和模板匹配技術(shù)。語音采用頻率為8KHz,16位量化精度,預(yù)加重系數(shù)a=0.95,語音幀每幀 30ms,240點為一幀,幀移為80,窗函數(shù)采用Hamming 窗。LPC參數(shù)為10階,LPCC參數(shù)為16階。實驗人員為三名同學(xué),兩男一女,分別用甲乙丙代表,實驗環(huán)境為辦公室環(huán)境。實驗平臺為Windows XP,Matlab 7.0,進行的各項實驗和數(shù)據(jù)分別如下:

(1)改進端點檢測實驗

針對于設(shè)計的端點檢測算法,得到改進前和改進后率的變化,數(shù)據(jù)見表1。其中,改進前和改進后所用的參考模板和測試模板數(shù)據(jù)相同。實驗的過程是,Matlab程序自動把50個測試模板逐個和100個參考模板進行匹配,找到測試模板所對應(yīng)的語音命令。

表1 改進端點檢測前后的識別率
Table 1. the recognition ratio of before and after ameliorate endpointing detection
11.gif

從數(shù)據(jù)可以看出,對端點檢測進行改進后,平均識別率從74%提高到82%,這是因為改進后的端點檢測能夠有效地區(qū)分噪音和語音,嚴(yán)格的把語音段提取出來。

(2)使用冗余參考模板實驗

對每個語音命令建立四個參考模板,其他同實驗(1),實驗數(shù)據(jù)見表2。

表2 使用冗余參考模板前后的識別率
Table 2. the recognition ratio of before and after use redundancy reference template
12.gif

從實驗數(shù)據(jù)看出,使用冗余模板后,平均識別率由87.5%提高到95%,平均誤識率由12.5%下降到5%。所以,使用冗余參考模板有效的提高了識別性能。



評論


相關(guān)推薦

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

關(guān)閉