Динамическое время деформации для сравнения двух аудиозаписей

StackOverflow https://stackoverflow.com/questions/2168027

Вопрос

Я хотел бы использовать Dynamic Time Searping, чтобы сравнить две векторы функций для двух аудиозаписей (конечно, я делаю все необходимое предварительная обработка сначала). Моя программа должна выводить сходство между двумя звуковыми записями в процентах. Например, 100% означает, что две записи полностью идентичны, а тем более разные являются записями, нижнее число, которое я получаю. Как мне обойтись к этому? DTW дает мне длину пути или стоимость перехода, и я не знаю, как преобразовать одно из этих чисел на процентное значение.

Это было полезно?

Решение

Я не знаю о любом дистанционном метрике между сигналами, которые измеряются по процентам. Если есть значение 100%, то должно быть значение 0%. Поэтому сначала нужно спросить себя: что означает 0%?

Для DTW я уверен, что нет установленного преобразования минимального расстояния до «процента матча». Если вы должны, то вам нужно определить эвристическое количество, которое является функцией минимального расстояния DTW.

Редактировать: На самом деле, вы можете определить самую длинное расстояние, если у вас есть две записи конечных длин. Это было бы расстояние от пути, которое пошло (если смотреть на матрицу затрат), полностью прямо тогда вниз, или вплоть вниз, а затем справа. Лучший путь, то есть идеальный матч, идет по главной диагонали.

Одна простая идея: при использовании (0,1) (1,0) (1,1) в качестве шаговых кандидатов, вы можете, возможно, использовать количество шагов, предпринимаемых (0,1) и (1,0) в качестве меры плохое. Эта мера, безусловно, имеет максимум и минимум, поэтому он может быть сопоставлен с некоторым желаемым диапазоном, как 0-100%.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top