1. matlab中的特定人語音識別演算法DTW演算法的應用常式
語音識別原理
語音識別系統的本質就是一種模式識別系統,它也包括特徵提取、模式匹配、參考模式庫等基本單元。由於語音信號是一種典型的非平穩信號,加之呼吸氣流、外部噪音、電流干擾等使得語音信號不能直接用於提取特徵,而要進行前期的預處理。預處理過程包括預濾波、采樣和量化、分幀、加窗、預加重、端點檢測等。經過預處理的語音數據就可以進行特徵參數提取。在訓練階段,將特徵參數進行一定的處理之後,為每個詞條得到一個模型,保存為模板庫。在識別階段,語音信號經過相同的通道得到語音參數,生成測試模板,與參考模板進行匹配,將匹配分數最高的參考模板作為識別結果。後續的處理過程還可能包括更高層次的詞法、句法和文法處理等,從而最終將輸入的語音信號轉變成文本或命令。
DTW演算法原理
DTW是把時間規整和距離測度計算結合起來的一種非線性規整技術,它尋找一個規整函數im=Ф(in),將測試矢量的時間軸n非線性地映射到參考模板的時間軸m上,並使該函數滿足:
D就是處於最優時間規整情況下兩矢量的距離。由於DTW不斷地計算兩矢量的距離以尋找最優的匹配路徑,所以得到的是兩矢量匹配時累積距離最小所對應的規整函數,這就保證了它們之間存在的最大聲學相似性。
DTW演算法的實質就是運用動態規劃的思想,利用局部最佳化的處理來自動尋找一條路徑,沿著這條路徑,兩個特徵矢量之間的累積失真量最小,從而避免由於時長不同而可能引入的誤差。
2. 時間序列分析——DTW演算法詳解
DTW(dynamic time warping)是時間序列分析中一個很早(1994年,論文的年紀比我都大)也很經典的演算法了。它其實借用的是經典演算法的「動態規劃」的思想。一般來說,時間序列數據如果要做分類,那麼大體可以將實驗步驟分為:數據預處理(去噪或數據增強),數據表徵,選取分類器(機器學習演算法還需要選取合適的距離計算方法)。雖然DTW演算法也給出了路徑,但我實在想不出如何利用path,因此我更傾向於將DTW演算法歸為距離計算方法。
第一部分Introction不再介紹。直接介紹第二部分:Dynamic Time Warping
作者首先提到,dtw演算法成功應用在了語音識別領域——研究者將現實中一個單詞的發音(其實就是一條時間序列)與模板庫中單詞的發音去一個個匹配。怎麼衡量匹配程度的大小呢?
3. raw語音識別方法
1、動態時間規整(DTW)演算法。DTW演算法通過檢測兩個語音序列之間的最大相似性來實現匹配,能夠有效地應對不同說話人的語速變化。它廣泛用於小詞彙量的語音識別系統中。
2、隱馬爾可夫模型(HMM)。HMM利用統計學方法建立語音的隱藏馬爾可夫模型,並結合觀察序列實現語音識別。是統計語音識別的基礎,應用非常廣泛。