当前课程知识点:计算机音乐 > 第七章 音频同步 > 7.4 动态时间规划概述 > 动态时间规划概述
同学们大家好
接下来让我们来了解一下
动态时间规划算法
我们还是以贝多芬第五交响曲的
两个版本为例
其中我们依然假设这两段声音演奏的是
同一份乐谱
那么我们可以听到卡拉扬的版本
它是比较紧凑的一个版本
然后我们来听一下高德的钢琴版本
那么我们可以听到
不仅它在
音符的长短的处理上是有所不同
而且这两个版本的乐器也都是不一样的
那么在提取完半音阶特征之后
我们发现这两段声音并不是完全一样的
无论是从音的长度
还是里面的频谱的细节
但是实际上从肉眼上我们还是能够看到
他们的一些对应关系的
例如前面的这个帮帮帮帮
他的三个音基本上都是以G为主音
因此我们可以看到在两个
半音阶特征里面
前面都有一小段是以G为主音的
半音阶的特征
这两段肯定是完全对应上的
那么接下来帮帮帮帮是
进入到降E这样的一个主音
我们可以看到这两条
黑色的比较长的线段
其实是对应在一起的
那么它都是体现降E这个音
尽管这里面会增加了一些别的和弦
那么因此音频的同步的主要任务
实际上就是在两条
半音阶的频谱上面
依次的寻找
颜色比较深的比较接近的
这样的频谱的特征
并且把它们依次的匹配起来
那么为了得到全局的最优解
我们可以将其中的一段
半音阶频谱
那么经过90度旋转
之后我们就可以一一的计算出
卡拉扬版本上面的每一个时间点
跟高德版本上面的每一个时间点
它们所对应的这两个时间点的
频谱的距离
也就是颜色的深浅到底相差多少
这样我们就可以得到一个
代价矩阵
那么其中矩阵上的每一个点的颜色深浅
表示这两段半音阶频谱上的点的距离
这个距离我们既可以用欧式的距离
来计算两个点之间的频谱的距离
我们也可以用1减去2个点之间的一个
相关度来代表他们的距离
其中颜色越深
代表这两点的距离越小
那么越可能是同一个音符
颜色越浅代表这两者的距离越大
同一个音符的可能性就比较小
我们可以看一下例如卡拉扬版本的
第五个窗口
跟高德版本的第六个窗口
他们从半音阶频谱
上面是比较接近的
因此我们计算出来距离也会比较小
在代价矩阵上的体现就是这一格
的颜色就比较深
因此这就说明这两个时点
很可能演奏的是同一个音符
因此在动态时间规划的任务里面
我们等价于依次的去寻找一些
颜色比较深的点
相邻两点在两个方向上的距离
都不能超过一
而且最后我们需要找到一条
代价的总和是最小的一条路径
那如果我们把代价矩阵看成是一个地形图
那么颜色比较浅的地方
就是海拔比较高的地方
而颜色比较深的地方
就是海拔比较低的地方
那么动态时间规划的任务就是
找到一条相对比较平坦的一条
路径
到这里我们就已经明确了
动态时间规划的目标
实际上就是要在代价矩阵上面
寻找一条最小代价的路径
那么下一节我们将会用python程序来实现
动态时间规划
-欢迎辞
-1.1 计算机音乐导言
--计算机音乐导言
-1.2 计算机音乐课程主要内容
-1.3计算机音乐课程资源
-1.4 音乐的基本表达
--音乐的基本表达
-第一章作业
-2.1时域音频处理概述
--时域音频处理概述
-2.2 分窗处理1:OLA叠放
-2.3 分窗处理2:音量计算
-2.4 端点检测
--端点检测
-2.5 振幅包络
--振幅包络
-2.6 音频信号相乘
--音频信号相乘
-2.7 环形调制
--环形调制
-2.8 频率调制
--频率调制
-2.9 频率调制在音乐上的应用
-第二章作业
-3.1 频谱概述
--频谱概述
-3.2 傅里叶变换
--傅里叶变换
-3.3 短时傅里叶变换
--短时傅里叶变换
-3.4 加法合成
--加法合成
-3.5 线性滤波器
--线性滤波器
-3.6 京剧锣鼓经分析
--京剧锣鼓经分析
-第三章作业
-4.1 音色合成概述
--音色合成概述
-4.2 质点弹簧阻尼模型
--质点弹簧阻尼模型
-4.3 双线性滤波器
--双线性滤波器
-4.4 Modal合成
--Modal合成
-第四章测试
-5.1 一维振动模型概述
--一维振动模型概述
-5.2 弦振动模型
--弦振动模型
-5.3 达朗贝尔的行波解
--达朗贝尔的行波解
-5.4 梳状滤波器
--梳状滤波器
-5.5 Karplus Strong算法
-5.6 管状气鸣乐器模型
--管状气鸣乐器模型
-第五章作业
-6.1 音高跟踪概述
--音高跟踪
-6.2 时域音高跟踪
--时域音高跟踪
-6.3 频域音高跟踪
--频域音高跟踪
-6.4 K歌评分
--K歌评分
-第六章作业
-7.1 音频同步概述
--音频同步概述
-7.2 音乐特征提取 CQT
-7.3 音乐特征提取 Chroma
-7.4 动态时间规划概述
--动态时间规划概述
-7.5 动态时间规划实现
--动态时间规划实现
-第七章作业