时间序列分析——DTW算法详解

时间序列分析——DTW算法详解,第1张

DTW(dynamic time warping)是时间序列分析中一个很早(1994年,论文的年纪比我都大)也很经典的算法了。它其实借用的是经典算法的“动态规划”的思想。一般来说,时间序列数据如果要做分类,那么大体可以将实验步骤分为:数据预处理(去噪或数据增强),数据表征,选取分类器(机器学习算法还需要选取合适毕穗的距离计算方法)。虽然DTW算法也给出了路径,但我实在想不出如何利用path,因此我更倾向于将DTW算法归为距离计算方法。

第一部分Introduction不再介绍。直接介绍第二部分:Dynamic Time Warping

作者首先提到,dtw算法成功应用在了语音识别领域——研究者将现实中一个单词的发音(其实就是一条时间序列)神弯与模板库中单词的发音去一个个手瞎卜匹配。怎么衡量匹配程度的大小呢?

我看了一下你的链接和程序.

这是你没定义dtwOptSet,当然dtw和dtwOptSet都是作者自定义的函数,不在matlab的标准库里,这个图缓败也是明显用了3个subplot画山尺的

如果你想运行这个,请去逗哪高作者推荐的

http://mirlab.org/jang/books/dcpr/introMatlabProgram.asp?title=1-2%20Example%20Programs%20(%A6p%A6%F3%A8%FA%B1o%B5{%A6%A1%BDX)

下载example就可以了.

语音识别原理

语音识别系统的本质就是一种模式识别卜竖渗系统,它也包括特征提取、模式匹配、参型脊考模式库等基本单元。由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据就可以进行特征参数提取。在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。

DTW算法原理

DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,它寻找一个规整函数im=Ф(in) ,将测试矢量的时间轴n非线性地映射到参考模板的时间轴m上,并使该函数满足:

D就是处于最优时间规整情况下两矢量的距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。

DTW算法的实质就是运用动态规划的思想,利用局部最佳化的处理来自动寻找一条路径,沿着这条路径,纤告两个特征矢量之间的累积失真量最小,从而避免由于时长不同而可能引入的误差。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12386994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存