将MFCC特征向量与DTW进行比较

时间:2018-01-15 16:38:10

标签: audio speech-recognition dynamic-programming mfcc dtw

我正在寻找关于动态时间扭曲(DTW)的一些建议。

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

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

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

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

编辑:我已阅读this个问题但无效。

非常感谢, 亚当

2 个答案:

答案 0 :(得分:3)

有一个nice tutorial on DTW here

我已经在十几篇论文中完成了这项工作,请参阅zebra finch example here

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

答案 1 :(得分:0)

here中有一个非常好的示例。

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

即使在本教程中看起来他们使用了相同长度的音频,它在变长音频中也能正常工作。

换句话说,我的数组的形状分别是(3183,12)和(3130,12),而且效果很好。

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

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

如果您要进行语音识别,here是另一个示例。