Я хотел бы использовать Dynamic Time Warping для сравнения двух векторов признаков для двух аудиозаписей (конечно, сначала я выполняю всю необходимую предварительную обработку). Моя программа должна вывести сходство между двумя аудиозаписями в процентах. Например, 100% означает, что две записи полностью идентичны, и чем больше различаются записи, тем меньшее число я получаю. Как мне обойти это? DTW дает мне только длину пути или стоимость перехода, и я не знаю, как преобразовать одно из этих чисел в процентное значение.
Динамическое искажение времени для сравнения двух аудиозаписей
Ответы (1)
Я не знаю ни одной метрики расстояния между сигналами, измеряемой в процентах. Если есть значение 100%, то должно быть значение 0%. Итак, сначала вам нужно спросить себя: что означает 0%?
Для DTW я почти уверен, что не существует установленного преобразования минимального расстояния в «процентное совпадение». Если необходимо, то вам нужно определить эвристическое количество, которое является функцией минимального расстояния DTW.
РЕДАКТИРОВАТЬ: На самом деле, вы можете определить максимальное расстояние, если у вас есть две записи конечной длины. Это будет расстояние пути, который прошел (если смотреть на матрицу затрат) полностью вправо, а затем вниз, или полностью вниз, а затем вправо. Лучший путь, т. е. идеальное совпадение, идет по главной диагонали.
Одна простая идея: если использовать (0,1) (1,0) (1,1) в качестве возможных шагов, вы могли бы использовать количество шагов, предпринятых (0,1) и (1,0), в качестве меры зло. Эта мера, безусловно, имеет максимум и минимум, поэтому ее можно сопоставить с желаемым диапазоном, например, 0-100%.