DTW(Dynamic Time Warping)算法

变量定义

1.warping function

F=c(1),c(2)...c(k)...c(K)

其中 c(k)=(i(k),j(k))
表示两个语音特征序列A和B之间的映射关系。
2.time-normalized distance
D(A,B)=MinF[Kk=1d(c(k))w(k)Kk=1w(k)]

其中 w(k) 用来归一化不同路径的K大小不一致的问题, d() 表示两个特征向量之间的距离。

warping function的限制条件

这里写图片描述
1.单调性

i(k1)i(k) and j(k1)j(k)

2.连续性
i(k)i(k1)1 and j(k)j(k1)1

由以上两个条件限制了只能向三个方向移动,向上/向右/向右上,而且每次只能移动一步
3.边界条件
i(1)=1,j(1)=1 and i(K)=I,j(K)=J

4.窗口限制
|i(k)j(k)|r

加窗为了将对齐路径限制在对角线附近。
5.斜率限制
P=n/m

避免在横轴i方向或纵轴j方向走的太偏,当在一个方向走了m步以后,需要在对角线方向走n步。

权重系数w

有两种典型的计算方式
1.对称形式

w(k)=(i(k)i(k1))+(j(k)j(k1))

N=k=1Kw(k)=I+J

2.非对称形式
w(k)=(i(k)i(k1))

N=k=1Kw(k)=I

在j方向也一样。
对称形式的效果更好。

DP求解

假设使用对称形式的权重系数,不使用斜率限制
- 初始条件

g(1,1)=2d(1,1)

- DP
g(i,j)=min[g(i,j1)+d(i,j) g(i1,j1)+2d(i,j) g(i1,j)+d(i,j)]

其中窗口限制条件 jrij+r
- 距离
D(A,B)=1I+Jg(I,J)

算法流程图如下:
这里写图片描述

Reference

Dynamic Programming Algorithm Optimization for Spoken Word Recognition

猜你喜欢

转载自blog.csdn.net/xmdxcsj/article/details/70300146
DTW