DTW動態時間規整算法


1、基本介紹

  • DTW:Dynamic Time Warping,即動態時間歸整。DTW算法基於DP動態規划思想,解決了發音長短不一的模板匹配問題,常用於語音識別(孤立詞識別)。

  • HMM算法在訓練階段需要提供大量的語音數據,通過反復急速那才能得到模型參數;而DTW算法的訓練中幾乎不需要額外的計算。因此DTW算法得到了廣泛使用。

2、算法原理(理論原理)

無論在訓練和建立模板階段還是在識別階段,都先采用端點算法確定語音的起點和終點。

2.1 主要術語

  • 參考模板:以存入模板庫的各個詞條成為參考模板,可以理解為訓練集,表示形式為:

    \[R = \{R(1), R(2), ..., R(m), ..., R(M)\} \]

其中,m為訓練語音幀的時序標號,m=1為起點語音幀,m=M為終點語音幀,因此M為該模板所包含的語音幀總數,R(m)為第m幀的語音特征矢量。

  • 測試模板:需要識別的一個輸入詞條語音,可以理解為測試集,表示形式為:

    \[T = \{T(1), T(2), ..., T(n), ..., T(N)\} \]

其中,n為測試語音幀的時序標號,n=1為起點語音幀,n=N為終點語音幀,因此N為該模板所包含的語音幀總數,T(n)為第n幀的語音特征矢量。

  • 重點:參考模板與測試模板一半采用相同類型的特征矢量(MFCC、FPC系數)、相同的幀長、相同的窗函數和相同的幀移。

2.2 算法由來和改進過程

  • 傳統方法:

    • 首先,需要比較相似度,一般采用歐式距離\(D[T, R]\),距離越小則相似度越高。為了計算失真距離,應該讓T和R中各個對應幀之間的距離算起。

    • 若N=M,則可以直接計算\(d(T,R) = \sqrt{(T_{1} - R_{1})^{2} + (T_{2} - R_{2})^{2} + ...+ (T_{N} - R_{N})^{2}}\)

    • 若N<M,則需要將T(n)和R(m)對對齊。對齊采用線性擴張的方法,即將測試模板T線性映射為一個M幀(參考模板長度)的序列,再計算測試模板T與參考模板R的歐式距離。

  • 改進方法(采用DP算法):由於傳統方法計算沒有考慮到語音各個段在不同情況下的持續時間會產生或短或長的變化,因此識別效果不佳。更多的是采用動態規划DP算法。

    • 具體實施方法:可以將測試模板和參考模板投影到一個二維直角坐標系中,測試模板的各個幀號可以在橫軸上標出,參考模板的各個幀號可以在縱軸上標出。通過這些表示幀號的證書坐標畫出一些縱橫線即可形成一個網絡,網絡中的每一個交叉點(n,m)表示測試模式中某一幀的交匯點。

    • 其中的DP算法:DP算法可以歸結為尋找一條通過此網絡中若干格點的路徑,路徑通過的格點即為測試和參考模板中進行計算的幀號。

    • 描述路勁:假設路徑通過的所有格點依次為:(n1, m1), ..., (ni, mi), ..., (nN, mM),其中(n1,m1)=(1,1),(nN, mM)=(N,M)。路徑函數為Oslash,如果路徑已經通過格點(n,m),那么下一個通過的格點(n,m)只可能是下列三種情況在之一:

      • (n,m) -> (n+1, m+1)

      • (n,m) -> (n+1, m+1)

      • (n,m) -> (n, m+1)
        \(\eta\)描述上述三個約束條件,則求最佳路徑的問題可以歸結為滿足約束條件時 ,求最佳路勁函數m=&Oslash。使得沿着路勁的積累距離達到最小值。

      • 最佳路徑函數Oslash???

    • 搜索該路徑的方法為:搜索從(n,m)點出發,可以展開若干條滿足\(\eta\)的路徑,假設可計算每條路徑達到(n,m)點時的積累距離,具有最小積累距離者即為最佳路徑。容易證明,由於約束條件\(\eta\),點(n,m)一定選擇(n-1,m-1)、(n-1,m)和(n,m-1)等這3個距離之路徑延伸通過,此盧晶晶的積累距離為:

    \[D[(n,m)] = d[T(n), R(m)] + \min\{D(n-1,m-1), D(n-1, m), D(n,m-1)\} \]

      因此從(n,m)=(1,1)出發搜索(n,m),對每一個(n,m)都存儲相應的距離,這個距離是當前格點的匹配距離與前一個累計距離最小的格點。搜索到(n,m)時,只保留一條最佳路徑。通過逐點向前尋找就可以求得整條路勁,這套DP算法便是DTW算法。
    
    • 總結:DTW算法可以直接按照描述來實現,即分配兩個NxM的矩陣,分別為積累距離矩陣D和幀匹配距離矩陣d,其中幀匹配距離矩陣d(i,j)的值為測試模板的第i幀與參考模板的第j幀間的距離。D(N,M)即為最佳匹配路徑所對應的匹配距離。

2.3 DTW算法流程

  • 等待完善

  • 代碼實現

3、算法DTW和算法HMM的比較

  • 優點:

    • (1)DTW算法本身簡單且有效,而HMM算法比較復雜,對於孤立詞識別,在相同條件下,兩者算法的識別效果相差不大。

    • (2)HMM需要在訓練階段提供大量的語音數據,通過反復計算才能得到參數模型,而DTW算法的訓練中幾乎不需要額外的計算。

  • 缺點:

    • (1)DTW算法沒有一個有效地用統計方法進行訓練的框架,不容易將底層和頂層的各種知識用到語音識別模型中,因此在解決大詞匯量、連續語音、非特定語音識別問題時較之HMM相形見絀。而HMM是一種用參數表示的,用於描述隨機過程統計特性的概率模型。

參考

  1. DTW算法:https://baike.baidu.com/item/dtw/3219286?fr=aladdin

  2. DTW原理實現:https://blog.csdn.net/ljh0302/article/details/50884303


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM