新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 說話人識別算法的定點DSP實現

        說話人識別算法的定點DSP實現

        作者: 時間:2011-04-12 來源:網絡 收藏


        2 系統描述
        主要包括特征提取和模式兩個方面。MFCC特征參數是從頻率域提取語音信號的特征參數,并根據人耳的聽覺特性進行降維,既可減小計算復雜度,又能獲得良好的效果。MFCC特征提取過程如圖3所示。

        本文引用地址:http://www.104case.com/article/150856.htm

        c.jpg


        人識別建模的方法主要有矢量量化(VQ)、高斯混合模型(GMM)、支持向量基(SVM)、人工神經網絡(ANN),以及動態時間規整(DTW)等。綜合考慮嵌入式系統上的識別率和計算量,本文采用DTW方法文本相關的人識別。

        3 算法和優化
        TDSDM642是TI公司推出的芯片,具有性價比高、運算速度快的優點,但是對于浮點運算比較困難,因此在系統時需要對算法進行浮點到定點的移植。同時,為了使上的代碼獲得最好的性能,還應該根據TDSDM642芯片片內資源的特征進行優化。優化的方法有編譯優化、軟件流水、內聯函數等。通過優化可以明顯提高代碼執行速度,并減小代碼尺寸。
        說話人識別當中,計算耗時最長的是MFCC參數的提取和參數模型的訓練,本文采用以下優化方法。
        3.1 編譯器優化
        TI公司的CCS編譯器可以對C代碼進行不同級別的優化,通過打開不同的優化選項,可以針對具體的硬件平臺進行不同程度的優化,包括代碼的大小、運行的速度等。通常經過CCS優化的程序,運行速度已經相當快,結構設計良好的程序能實現90%的優化。如果還沒有達到系統設計的要求,則需要對代碼進行手工優化。
        3.2 軟件流水優化
        TDSDM642處理器采用C64x系列芯片,其內部共有8條軟件流水線,可以8條指令并行執行,能夠大大提高系統性能。恰當地設計軟件結構,并配合合適的編譯優化選項,可以充分利用芯片內的軟件流水優化提高系統性能。CCS的編譯優化一般只針對最內層的循環進行流水
        優化,并且在循環中代碼應該盡量簡單,如果循環中含有大量判斷、跳轉等指令,那么編譯出來的軟件流水會大打折扣,有時甚至無法進行流水執行指令,這樣處理器的性能就不能充分地發揮出來。
        3.3 循環展開優化
        循環展開是另一種優化程序的方法。為了充分利用芯片內的硬件資源,使盡可能多的指令同時并行執行,可以采用將小循環展開的方式,使片內資源的性能得到最大的發揮。CCS優化編譯器通常情況下會根據程序的情況自動展開循環,編程人員也可以采用編譯指令或手工方式展開循環優化程序。
        3.4 采用內聯函數
        TI公司的C6000編譯器含有大量的內聯函數,支持從C語言里直接調用匯編程序,從而大大提高程序的執行速度。系統提供的內聯函數還可以支持C64x系列DSP特有指令的執行,例如數據打包相乘等操作,可以進一步提高系統數據處理能力。

        4 實驗結果
        本文在TDSDM642 EVM平臺上實現了實時的說話人識別系統。經過對10個人的語音數據進行識別實驗,正確率達到90%,可以達到實用水平。通過改進算法和調整參數,可以進一步提高系統識別率,以滿足安全系統的更高要求。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 特克斯县| 金乡县| 桂阳县| 洪江市| 铅山县| 阿拉善左旗| 石泉县| 乌拉特中旗| 西藏| 扶余县| 镇宁| 红桥区| 台东县| 安福县| 崇阳县| 茌平县| 明水县| 静安区| 东城区| 山丹县| 汕尾市| 禹州市| 五常市| 高尔夫| 琼海市| 古田县| 遵化市| 夏河县| 新干县| 贞丰县| 淮阳县| 额敏县| 新巴尔虎右旗| 丰原市| 舒兰市| 清新县| 兴宁市| 巴中市| 神木县| 阿拉尔市| 新兴县|