paddleaudio.metric.dtw

paddleaudio.metric.dtw.dtw_distance(xs: numpy.ndarray, ys: numpy.ndarray) float[source]

Dynamic Time Warping. This function keeps a compact matrix, not the full warping paths matrix. Uses dynamic programming to compute:

Examples

wps[i, j] = (s1[i]-s2[j])**2 + min(
                wps[i-1, j  ] + penalty,  // vertical   / insertion / expansion
                wps[i  , j-1] + penalty,  // horizontal / deletion  / compression
                wps[i-1, j-1])            // diagonal   / match

dtw = sqrt(wps[-1, -1])
Parameters
  • xs (np.ndarray) -- ref sequence, [T,D]

  • ys (np.ndarray) -- hyp sequence, [T,D]

Returns

dtw distance

Return type

float