变量定义
1.warping function
F
=
c
(
1
)
,
c
(
2
)
.
.
.
c
(
k
)
.
.
.
c
(
K
)
F=c(1),c(2)...c(k)...c(K)
F=c(1),c(2)...c(k)...c(K)
其中
c
(
k
)
=
(
i
(
k
)
,
j
(
k
)
)
c(k)=(i(k),j(k))
c(k)=(i(k),j(k))
表示两个语音特征序列A和B之间的映射关系。
2.time-normalized distance
D
(
A
,
B
)
=
M
i
n
F
[
∑
k
=
1
K
d
(
c
(
k
)
)
⋅
w
(
k
)
∑
k
=
1
K
w
(
k
)
]
D(A,B)=Min_F[\frac{\sum_{k=1}^K d(c(k))\cdot w(k)}{\sum_{k=1}^K w(k)}]
D(A,B)=MinF[∑k=1Kw(k)∑k=1Kd(c(k))⋅w(k)]
其中
∑
w
(
k
)
\sum w(k)
∑w(k)用来归一化不同路径的K大小不一致的问题,
d
(
)
d()
d()表示两个特征向量之间的距离。
warping function的限制条件
1.单调性
i
(
k
−
1
)
≤
i
(
k
)
a
n
d
j
(
k
−
1
)
≤
j
(
k
)
i(k-1)\le i(k)\ and\ j(k-1) \le j(k)
i(k−1)≤i(k) and j(k−1)≤j(k)
2.连续性
i
(
k
)
−
i
(
k
−
1
)
≤
1
a
n
d
j
(
k
)
−
j
(
k
−
1
)
≤
1
i(k)-i(k-1) \le 1 \ and\ j(k)-j(k-1)\le 1
i(k)−i(k−1)≤1 and j(k)−j(k−1)≤1
由以上两个条件限制了只能向三个方向移动,向上/向右/向右上,而且每次只能移动一步
3.边界条件
i
(
1
)
=
1
,
j
(
1
)
=
1
a
n
d
i
(
K
)
=
I
,
j
(
K
)
=
J
i(1)=1, j(1)=1\ and\ i(K)=I,j(K)=J
i(1)=1,j(1)=1 and i(K)=I,j(K)=J
4.窗口限制
∣
i
(
k
)
−
j
(
k
)
∣
≤
r
|i(k)-j(k)|\le r
∣i(k)−j(k)∣≤r
加窗为了将对齐路径限制在对角线附近。
5.斜率限制
P
=
n
/
m
P=n/m
P=n/m
避免在横轴i方向或纵轴j方向走的太偏,当在一个方向走了m步以后,需要在对角线方向走n步。
权重系数w
有两种典型的计算方式
1.对称形式
w
(
k
)
=
(
i
(
k
)
−
i
(
k
−
1
)
)
+
(
j
(
k
)
−
j
(
k
−
1
)
)
w(k)=(i(k)-i(k-1))+(j(k)-j(k-1))
w(k)=(i(k)−i(k−1))+(j(k)−j(k−1))
N
=
∑
k
=
1
K
w
(
k
)
=
I
+
J
N=\sum_{k=1}^K w(k)=I+J
N=k=1∑Kw(k)=I+J
2.非对称形式
w
(
k
)
=
(
i
(
k
)
−
i
(
k
−
1
)
)
w(k)=(i(k)-i(k-1))
w(k)=(i(k)−i(k−1))
N
=
∑
k
=
1
K
w
(
k
)
=
I
N=\sum_{k=1}^K w(k)=I
N=k=1∑Kw(k)=I
在j方向也一样。
对称形式的效果更好。
DP求解
假设使用对称形式的权重系数,不使用斜率限制
- 初始条件
g ( 1 , 1 ) = 2 d ( 1 , 1 ) g(1,1)=2d(1,1) g(1,1)=2d(1,1) - DP
g ( i , j ) = m i n [ g ( i , j − 1 ) + d ( i , j ) , g ( i − 1 , j − 1 ) + 2 d ( i , j ) , g ( i − 1 , j ) + d ( i , j ) ] g(i,j)=min[g(i,j-1)+d(i,j),\ g(i-1,j-1)+2d(i,j),\ g(i-1,j)+d(i,j)] g(i,j)=min[g(i,j−1)+d(i,j), g(i−1,j−1)+2d(i,j), g(i−1,j)+d(i,j)]
其中窗口限制条件 j − r ≤ i ≤ j + r j-r\le i\le j+r j−r≤i≤j+r - 距离
D ( A , B ) = 1 I + J g ( I , J ) D(A,B)=\frac{1}{I+J}g(I,J) D(A,B)=I+J1g(I,J)
算法流程图如下:
Reference
Dynamic Programming Algorithm Optimization for Spoken Word Recognition