新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于片上系統SoC的孤立詞語音識別算法設計

        基于片上系統SoC的孤立詞語音識別算法設計

        作者: 時間:2012-04-01 來源:網絡 收藏

        3.3.3 應用中提高算法效率的改進方法

        在計算傳統DTW算法過程中,如果限定動態規整的計算范圍,可以大大減小計算量,提高程序的性能。

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

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

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

        9.jpg公式(12)

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

        4. MATLAB實驗與分析

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

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

        (1)改進端點檢測實驗

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

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

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

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

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

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 仲巴县| 赣榆县| 余姚市| 永顺县| 永嘉县| 潼南县| 年辖:市辖区| 区。| 临高县| 长顺县| 中江县| 扎囊县| 贵德县| 赤城县| 张家口市| 弋阳县| 海门市| 藁城市| 蒲城县| 凤庆县| 兰考县| 长治县| 夏河县| 淮滨县| 霸州市| 城固县| 亳州市| 德令哈市| 南阳市| 阿巴嘎旗| 潼关县| 南汇区| 汉源县| 西乌| 将乐县| 嘉鱼县| 改则县| 民丰县| 西宁市| 离岛区| 喀喇|