两种语音发音比较相似度 MFCC + DTW

信息处理 fft mfcc
2022-02-17 19:16:21

计算每个 MFCC 比较波文件 A 和波文件 B,然后使用 FastDTW 测量两组 MFCC 后的距离。

我们比较了四个波形文件,得到了欧几里得距离值。

下面的值是欧几里得距离值。

675.0095954620155 A.wav 与 A2.wav

998.7554375714773 A.wav 与 B.wav

976.1293903229977 A.wav 与 B2.wav

856.4364672719398 A.wav 与 C.wav

645.8353052519245 A.wav 与 C2.wav

  1. 我不知道欧几里得距离值如何寻找相似性。
  2. 距离值接近零时相似率高吗?
  3. 你怎么知道这个距离值有高匹配?
  4. DTW 不是一个可以查看声音相似程度的库吗?
1个回答

我会以相反的顺序回答你的问题。

4: DTW(Dynamic Time Warping)不是库,而是算法。它允许通过及时扭曲它们来对齐两个序列。您可以将它用于几乎任何类型的顺序数据,可以为其定义度量(距离)。通常,您计算两个序列的每个点之间的距离,并生成一个累积距离的大矩阵。最后,选择产生最小最终成本的路径作为最优路径。

下面是两个 1D 信号的示例:是指数扫描正弦波,是具有恒定频率的正弦波。目标是及时扭曲,使其尽可能接近下图显示了这种对齐的结果。信号已被拉伸以匹配然而,x1x2x2x1x2x1x2x1,因此它必须在最后填充。底部的子图显示了每帧距离的演变,其中最终值是累积成本 - 正是您在比较中使用的东西。从这个示例中,您可以立即看到 DTW 的一些限制。

在此处输入图像描述

总结一下,这里是完整的 DTW 矩阵以及最佳路径。

在此处输入图像描述


3 & 2:这是一个距离,所以越低越好。可能的最低距离为,这可以在以下情况下实现:0

  • 两个信号完全相同
  • 一个信号是另一个信号的延伸版本,例如[0, -1, 0, 1, 0][0, -1, 0, 0, 1, 1, 0]

1:正如我之前提到的,DTW 比较每个点之间的距离,然后累积导致该点的所有操作的成本——产生最小成本的路径对应于最佳对齐。

就相似性而言,如果拉伸或压缩某些部分将使每帧的 MFCC 向量之间的差异最小化,则信号将被视为彼此接近。


这些答案可能与您相关:单击单击单击