发布时间:2025-08-01
点击次数: 本文介绍基于PaddlePaddle2.0构建动态时间规整(DTW)模型的方法。DTW用于计算两时间序列相似度,适用于语音识别等场景,能解决序列长度不一致问题,但不适用于交叉对应关系的序列。文中举例说明DTW建模流程,包括初始化距离矩阵、用动态规划找最短路径,并给出了基于PaddlePaddle2.0的实现代码及示例计算结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

作者:陆平
动态时间归整模型(Dynamic Time Warping, DTW)可以用于计算两个时间序列的相似程度。它适用于语音识别中的孤立词识别、姿势识别等场景。
例如,我们通常需要用唤醒词来启动智能音响,小米的小爱音响的唤醒词为“小爱同学”。但是不同的人对“小爱同学”这四个字的发音、语速等都是不同的,即便是相同的人也不可能每次说“小爱同学”这四个字的发音、语速完全相同,也就是说,实际发音与标准序列在长度上是不一致的。为解决这个问题,可以对序列进行缩放,使得两个时间序列长度一致,但这里没有考虑到序列中的某个元素一对多问题、一对零的问题。还有一种解决方式是利用动态规划方法,找到两个时间序列的最短匹配路径,即DTW模型。
然而,DTW模型不适用于具有交叉对应关系的时间序列。例如,中英文语言翻译场景中,词语序列之间普遍存在交叉对应关系,这种情形DTW模型不太适用。“今天我吃了水果”这句话翻译成英文是“I had fruit today”,“今天”这个词在中文语境中通常在第一个词的位置,而在英文语境下“today”处于最后一个词位置,这表明这两个时间序列存在交叉对应关系。
以下用个例子来看DTW建模流程。
步骤1:设有两个时间序列s1=[1,2,3,4,5,5,5,4]和s2=[3,4,5,6,5,4],这两个时间序列的长度分别为8和6.
步骤2:初始化一个距离矩阵dtw,该矩阵用于衡量两时间序列的距离。
初始化第一列,采用以下公式: dtw[i,0]=dtw[i−1,0]+distance(s1[i],s2[0]),i=1,...,7.
具体来看,dtw[0,0]这个位置取值为2,是因为∣1−3∣=2.
dtw[1,0]这个位置取值为3,是因为dtw[0,0]+distance(s1[1],s2[0])=2+∣2−3∣=2+1=3.
dtw[2,0]这个位置取值为3,是因为dtw[1,0]+distance(s1[2],s2[0])=3+∣3−3∣=3+0=3.
dtw[3,0]这个位置取值为4,是因为dtw[2,0]+distance(s1[3],s2[0])=3+∣4−3∣=3+1=4.
MixPHP 是一个 PHP 命令行模式开发框架;基于 Vega 驱动的 HTTP 可以同时支持 Swoole、WorkerMan、FPM、CLI-Server 生态,并且可以无缝切换;V3 是一个高度解耦的版本,整体代码基于多个独立的模块构建,即便用户不使用我们的脚手架,也可以使用这些独立模块,并且全部模块都支持原生开发。例如:你可以只使用 mix/vega 来搭配 lar*el orm 使用
17
查看详情
以此类推。
初始化第一行,采用以下公式: dtw[0,i]=dtw[0,i−1]+distance(s1[0],s2[i]),i=1,...,5.
dtw[0,1]这个位置取值为5,是因为dtw[0,0]+distance(s1[0],s2[1])=2+∣1−4∣=2+3=5.
dtw[0,2]这个位置取值为9,是因为dtw[0,1]+distance(s1[0],s2[2])=5+∣1−5∣=5+4=9.
dtw[0,3]这个位置取值为14,是因为dtw[0,2]+distance(s1[0],s2[3])=9+∣1−6∣=9+5=14.
以此类推。
Tensor(shape=[8, 6], dtype=float32, place=CPUPlace, stop_gradient=True,
[[ 2., 5., 9., 14., 18., 21.],
[ 3., inf., inf., inf., inf., inf.],
[ 3., inf., inf., inf., inf., inf.],
[ 4., inf., inf., inf., inf., inf.],
[ 6., inf., inf., inf., inf., inf.],
[ 8., inf., inf., inf., inf., inf.],
[ 10., inf., inf., inf., inf., inf.],
[ 11., inf., inf., inf., inf., inf.]])步骤3: 利用动态规划算法找出最短的对应路径。 这里假设了一个单调性条件,即通往dtw[i,j]的路径,上一步只能是dtw[i−1,j]、dtw[i,j−1]、dtw[i−1,j−1]三者之一。相应的代码为:
for i in range(1,len(src)): for j in range(1,len(tar)): cost=dist_func(src[i],tar[j])temp=[] temp.append(cost+dtw[i-1,j]) temp.append(cost+dtw[i,j-1]) temp.append(cost+dtw[i-1,j-1]) dtw[i,j]=min(temp)
这里的假设是可以放松的,如果想要涵盖跳跃一步的对应关系。即通往dtw[i,j]的路径,上一步可以是dtw[i−1,j]、dtw[i,j−1]、dtw[i−1,j−1]、dtw[i−2,j−1]、dtw[i−1,j−2]之一。可以在循环中增加如下代码:
temp.append(cost+dtw[i-2,j-1]) temp.append(cost+dtw[i-1,j-2])
进一步,如果我们想避免某种跳跃关系,可以在cost前乘以某个正数,从而放大该步的即时成本。
正因为DTW模型含有单调性假设,它不适合于计算具有交叉对应关系的序列相似性。
import paddleimport numpy as np#距离函数def dist_func(v1,v2):
return paddle.abs(v1-v2)#DTW模型def dtw_func(src,tar):
dtw=paddle.zeros([len(src),len(tar)])
dtw[:] = np.inf #初始化
dtw[0,0]=dist_func(src[0],tar[0]) for i in range(1,len(src)):
dtw[i,0] = dtw[i-1,0]+dist_func(src[i],tar[0])
for i in range(1,len(tar)):
dtw[0,i] = dtw[0,i-1]+dist_func(src[0],tar[i])
#动态规划
for i in range(1,len(src)): for j in range(1,len(tar)):
cost=dist_func(src[i],tar[j])
temp=[]
temp.append(cost+dtw[i-1,j])
temp.append(cost+dtw[i,j-1])
temp.append(cost+dtw[i-1,j-1])
dtw[i,j]=min(temp) return dtw[-1,-1].numpy().item()
s1=paddle.to_tensor([1, 2, 3, 4, 5, 5, 5, 4])
s2=paddle.to_tensor([3, 4, 5, 6, 5, 4])
ds=dtw_func(s1,s2)print("s1, s2两序列之间的距离为:{}".format(ds))s1, s2两序列之间的距离为:4.0
以上就是基于PaddlePaddle2.0-构建动态时间归整模型(DTW)的详细内容,更多请关注其它相关文章!
# 这两个
# 广州网站建设哪家强
# 安徽网站建设是干嘛的
# 泰安seo学习
# 三亚营销策划推广公司
# 柘城专业网站优化价格
# 潮州网络营销推广服务
# 灰色关键词排名代发
# 长丰营销型网站建设
# 如何找物业资源网站推广
# 龙岩seo站群系统
# 中文网
# cos
# 以此类推
# 上了
# 最短
# 是一个
# 小爱
# 适用于
# 值为
# 是因为
# type
# warp
相关栏目:
【
行业新闻62819 】
【
科技资讯67470 】
相关推荐:
AI 程序 Text With Jesus 在海外迅速受到关注:与耶稣和撒旦进行对话
“踩油门,也要会踩刹车” 互联网企业高管谈人工智能发展
当一切设备都受到人工智能的控制
“长沙造”无人机,领先的不止植保
如何用AI开创智慧能源新时代?固德威正让能源“通人性”!
微软在德国举办MR研讨会,向女性分享元宇宙潜力
报告称 70% 程序员已使用各种 AI 工具编程
聚焦WAIC|AI技术支撑大模型探索未来
谷歌旗下 DeepMind 开发出 RoboCat AI 模型,能控制多种机器人执行一系列任务
人工智能即将进入Windows:企业准备好安全策略设置了吗?
AI拉动PCB发展|行业发现
京东 AI 大模型官宣 7 月 13 日发布,还有重磅合作
在这里见未来!杭州未来科技城全球AI盛会邀您共探最前沿
世界人工智能大会机器人同台炫技!梳理A股相关业务营收占比超50%的个股名单
清华朱军团队新作:使用4位整数训练Transformer,比FP16快2.2倍,提速35.1%,加速AGI到来!
深度学习模型综述:用于3D MRI和CT扫描的应用
大模型新品出现井喷,AI产业迎来新时代
静安大宁功能区企业云天励飞亮相2025世界人工智能大会,秀出AI硬实力!
B站内测 AI 搜索功能,输入“?”即可体验
V社回应拒绝上架含 AI 生成内容的游戏:审核政策正在调整中
WHEE网页地址入口
当孔子遇见AI|尼山的“数字”
掌阅科技对话式AI应用“阅爱聊”开启内测
AYANEO AIR 1S 掌机发布:R7 7840U,预订价 4699 元起
视觉中国宣布推出AI灵感绘图、画面扩展功能
AI 大模型重塑软件开发,有哪些落地前景和痛点?| ArchSummit
人工智能助力林草行业高质量发展
郭帆谈ChatGPT:电影行业需要创新,否则人工智能将让电影变得平庸
人工智能在商业中的风险和局限性
七大主流AI企业包括OpenAI、谷歌等联合承诺:引入水印技术,并允许第三方审核AI内容
微软Xbox称VR和AR还需要时间 先玩大的
“无人驾驶船”将首次亮相世界人工智能大会,下半年或开进上海迪士尼
挤爆服务器,北大法律大模型ChatLaw火了:直接告诉你张三怎么判
普林斯顿大学推出 Infinigen AI 模型,生成真实自然环境 3D 场景
华为AI大模型将融入HarmonyOS 4
GPT-4成功战胜AI-Guardian审核系统:谷歌研究团队的人工智能抵抗人工智能
湖北科技职业学院举行工业机器人及智能制造技术专精特新产业学院建设启动仪式
OpenAI限制网络爬虫访问以保护数据免被用于AI模型训练
关于开展“与AI共创未来”——2025年全国青少年人工智能创新实践活动的通知
Meta 发布 Voicebox AI 模型:可生成音频信息,用于 NPC 对话等
联想创投携手12家被投企业MWC展示元宇宙、机器人等技术
苹果头显降临,AI虚拟人的救星还是流星?
曝光HarmonyOS 4的重要新能力:全面升级AI大模型,小艺实现全面进化
Meta发布"类人"AI图像创建模型,能解决多出手指等Bug
AI成政客博弈工具,美国大选真假难辨,律师们的生意来了
CREATOR制造、使用工具,实现LLM「自我进化」
为了避免人工智能可能带来的灾难,我们要向核安全学习
智能手机应用中的人工智能的重要性
支持跨语言、人声狗吠互换,仅利用最近邻的简单语音转换模型有多神奇
字节团队提出猞猁Lynx模型:多模态LLMs理解认知生成类榜单SoTA