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

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


person pako    schedule 30.01.2010    source источник


Ответы (1)


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

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

РЕДАКТИРОВАТЬ: На самом деле, вы можете определить максимальное расстояние, если у вас есть две записи конечной длины. Это будет расстояние пути, который прошел (если смотреть на матрицу затрат) полностью вправо, а затем вниз, или полностью вниз, а затем вправо. Лучший путь, т. е. идеальное совпадение, идет по главной диагонали.

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

person Steve Tjoa    schedule 08.02.2010
comment
0% может означать, что записи бесконечно различаются (бесконечная длина пути DTW). Так что, конечно, на практике я бы никогда не получил 0%. Но позвольте мне перефразировать вопрос — что мне нужно сделать, чтобы длины путей DTW были прямо сопоставимы друг с другом? Потому что, конечно, чем больше длина записей, которые я сравниваю, тем более длинный путь я получу. - person pako; 09.02.2010
comment
Поэтому я не могу напрямую использовать длину пути DTW, чтобы предоставить пользователю оценку в процентах. Сначала мне нужно каким-то образом нормализовать длину результирующего пути. Есть идеи? - person pako; 09.02.2010
comment
@pako Привет, я просмотрел ваш вопрос в поисках сравнения двух аудиозаписей с использованием R-Language и пытался с 1 месяца, но безуспешно, и мне нужна ваша помощь. В вопросе вы сказали, что я делаю все необходимое сначала предварительная обработка. Могу ли я узнать, какие все шаги предварительной обработки необходимо выполнить перед сравнением аудиофайлов. Мне нужен ваш опыт, чтобы завершить мою работу на R-языке, пожалуйста, укажите этапы вашей работы, чтобы я мог выполнить ее, используя свою технологию. извините за беспокойство (мой почтовый идентификатор [email protected] на случай, если это будет слишком долго объяснять здесь) Спасибо - person Dinesh; 24.12.2015
comment
@Pako, и, пожалуйста, предоставьте подробности в соответствии с моим понятным уровнем, поскольку я новичок в области обработки звука, обработки сигналов, надеюсь, вы понимаете мою ситуацию. - person Dinesh; 24.12.2015