5

我正在寻找有关动态时间规整 (DTW) 的一些建议。

我有一个 Python 脚本并从各种长度的 .WAV 文件中提取梅尔频率倒谱系数 (MFCC) 特征向量。特征向量是包含 12 个 MFCC 的数组的不同长度的数组。

例如,一个 .WAV 文件可以由包含 10 组 12 个特征向量的数组表示,而另一个 .WAV 文件可以由一个包含 20 组 12 个特征向量的数组表示。

我打算使用 DTW 来比较两个数组数组,但我不确定如何。我理解 DTW 的概念,如果数组中包含的特征向量是单个数字,那么实现它就没有问题,我的困惑是由于它们是数组这一事实。

Tl; dr:如何使用 DTW 比较两个数组?

编辑:我已经阅读了这个问题,但无济于事。

非常感谢,亚当

4

2 回答 2

3

这里有一个关于 DTW 的不错的教程

我已经在十几篇论文中做到了这一点,请参见此处的斑胸草雀示例

需要注意的一个关键点。您可能只想将一个特征向量与相应的特征向量进行比较。很少使用全部 12 个。

于 2018-01-15T18:40:23.133 回答
1

这里有一个非常好的例子。

使用python中的DTW包,您可以计算两个梅尔频率倒谱系数(MFCC)特征向量之间的DTW。

尽管看起来他们在教程中使用了相同长度的音频,但对于可变长度的音频效果很好。

换句话说,我的数组是 (3183, 12) 和 (3130, 12) 的形状,它工作得很好。

即使我不完全理解您的目的,我认为最好分别计算每个系数的 DTW。

在这种情况下,您可以使用示例。

如果您正在尝试进行语音识别,这里是另一个示例。

于 2018-11-28T19:41:45.143 回答