dtw_c
Dynamic Time Warping (DTW) implementation in C for Python
Perform DTW of source features (org) into target features (trg) with mel-cepstral distortion (mcd) distance
Install
pip install numpy pip install dtw_c
Usage of dtw_org_to_trg
from dtw_c import dtw_c as dtw import numpy as np
dtw_org, twf_mat, mcd, mcd_mat = dtw.dtw_org_to_trg(np.array(org, dtype=np.float64), np.array(trg, dtype=np.float64), sdim, ldim, shiftm, winlenm)
Variable desc.
dtw_org: result of dtw-ed source features: trg_frame x dim
twf_mat: time warping data used to compute dtw_org: trg_frame x 2
mcd: average mcd over all frames: double
mcd_mat: mcd per frame: trg_frame x 1
org: source features data: org_frame x dim
trg: target features data: trg_frame x dim
sdim: starting dimension to compute distance, e.g., from first dimension would be 0: default=0
ldim: ending dimension to compute distance, e.g., until the last of 35 dimensional features would be 34 or -1: default=-1
shiftm: frame shift value in miliseconds (ms): default=5.0
winlenm: windowing constraint length in miliseconds (ms): default=100.0, i.e., 20 frames for 5.0 shiftm
Usage of calc_mcd
from dtw_c import dtw_c as dtw import numpy as np
mcd, mcd_mat = dtw.calc_mcd(np.array(trg_mat, dtype=np.float64), np.array(src_mat, dtype=np.float64))
Variable desc.
mcd: average mcd over all frames: double
mcd_mat: mcd per frame: n_frm x 1
trg_mat: target feature vector sequence: n_frm x dim
src_mat: source feature vector sequence: n_frm x dim
To-do:
- other distance measures, e.g., rmse
- function for performing dtw of both source and target sides
- docs