動態時間校正(Dynamic Time Warping)

Download Report

Transcript 動態時間校正(Dynamic Time Warping)

動態時間校正
(Dynamic Time Warping)
動態時間校正
• 兩個N維空間的向量,它們之間的距離可以定義為兩點之
間的直線距離,稱為歐基里得距離(Euclidean Distance)
d ( x, y ) 
N
2
(
x

y
)
 i i
i 0
• 假設有兩個3維空間的向量,分別為x(4 , 7)與y(7 , 11),則
此兩向量之間的距離為:
d ( x , y )  (4  7) 2  (7  11) 2
 25
5
動態時間校正
• 若兩個向量的長度不同,那它們之間的距離,可利用動態
時間校正來解決
• 假設有兩個向量t(t1,t2,…,tN)與r(r1,r2,…,rM),它們各別的長
度為N與M,則DTW 的目標是要找出一條最短路徑,使得
兩向量的距離最小
r4
r3
r2
r1
D14
D24
D34
D44
D54
D64
D13
D23
D33
D43
D53
D63
D12
D22
D32
D42
D52
D62
D11
D21
D31
D41
D51
D61
t1
t2
t3
t4
t5
t6
動態時間校正
• 路徑必須滿足下列條件:
• 端點關係:頭對頭、尾對尾
• 局部關係:假設某一點D(i , j)為最佳路徑上的點,其前一
點路徑只有三種可能:D(i-1 , j)、D(i-1 , j-1)和D(i , j-1)
D(i-1 , j)
D(i , j)
D(i-1 , j-1)
D(i , j-1)
DTW 步驟
• 定義D(i , j)為ti與rj之間的距離值
• 利用遞迴找出向量t與r之間的最小累積距離值A(N,M),其
遞迴關係如下所示:
A(i, j )  D(i, j )  min{A(i  1, j ), A(i  1, j  1), A(i, j  1)}
其中D(i , j)為ti與rj之間(i , j)的距離值
A(i , j)為原點(1 , 1)到(i , j)的最小累積距離值
動態時間校正
5
-1
4
2
4
2
3
1
8
2
7
5
3
3
2
0
4
10
5
7
6
0
5
3
1
5
0
2
1
-3
2
9
-1
4
17
11
16
12
16
16
16
18
各點的距離值
10
6
4
1
14
6
8
9
9
8
6
6
13
18
11
13
從原點到各點之最小累積距離值
動態時間校正
• 延伸到聲紋辨識上
樣本音框(SF)
SF4
D(1,4)
D(2,4)
D(3,4)
D(4,4)
D(5,4)
D(6,4)
SF3
D(1,3)
D(2,3)
D(3,3)
D(4,3)
D(5,3)
D(6,3)
SF2
D(1,2)
D(2,2)
D(3,2)
D(4,2)
D(5,2)
D(6,2)
SF1
D(1,1)
D(2,1)
D(3,1)
D(4,1)
D(5,1)
D(6,1)
TF1
TF2
TF3
TF4
TF5
TF6
測試音框(TF)
• 假設每個音框有N維的特徵向量,則樣本音框SF1與測試
音框TF1之間的距離D(1 , 1)為:
D(1,1) 
N 1
2
(
SF
1
(
i
)

TF
1
(
i
))

i 0