forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Создание звукового оформления (http://forum.boolean.name/forumdisplay.php?f=19)
-   -   Сравнивание аудио дорожек (MP3, WAVE) (http://forum.boolean.name/showthread.php?t=17357)

ІГРОГРАЙКО 11.10.2012 14:15

Сравнивание аудио дорожек (MP3, WAVE)
 
Здравствуйте!

У меня задача сделать программу какая бы загружала аудио файлы (MP3 - желательно) и сравнивала их между собой. Программа должна распознать подобные аудио треки. Например: одна и та же песня только с разным качеством, или с разной продолжительностью.
У меня вопрос к вам:
  • Можно ли это сделать с помощью C# XNA?
  • С чего мне следовало б начать?

Раньше никогда не имел дело с программированием аудио софта...:mda:

pax 17.10.2012 09:24

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Первое что приходит на ум - сравнивать ID3 данные mp3 файлов (исполнителя и название песни например). По поводу сравнения самого аудиофайла ничего посоветовать не могу.

Dzirt 17.10.2012 18:52

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Вложений: 3
Я сделал бы так:

Проанализировал с помощью графиков первый трек, и второй. Потом сравнил бы данные и поучил бы насколько они похожы между собой.

Итак начнем(сделать можно более универсально, но это в качестве примера):
1.Анализируем громкость левого и правого канала, и забиваем данные в лист.
2.Делаем тоже самое для второго трека.
3.После сравниваем положение точек на первом и втором графике, и высчитываем процент совпадений.

(делал на блицмаксе, в динамике график у меня выгядит так : Вложение 17862)

И вот полученый мной результат при сравнивании двух одинаковых треков:
Вложение 17863
совпадение на 96% (не 100%, возможно по той причине, что я использовал флоат пойнт...хз)

Результат на сравнение разных треков :
Вложение 17864
совпадение на 2%

Желтая линия, это левый канал, розовая - правый. красная линия - это то где треки не совпадают.

Сделал в обеденный перерыв...если уделить оптимизации то можно добится 99% результата и хорошей гибкости анализа, ну тут ты уже сам идею розвивай.

Разная продолжительность - анализируй только одинаковый отрезок времени(ориентируясь на меньший конечно).

С разным качеством пока не тестировал.

Nerd 17.10.2012 20:34

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Цитата:

Сообщение от Dzirt (Сообщение 240533)
1.Анализируем громкость левого и правого канала,

А почему не спектр?

Dzirt 17.10.2012 22:17

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Цитата:

Сообщение от Nerd96 (Сообщение 240554)
А почему не спектр?

...потому что:)

pax 18.10.2012 07:50

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?

Dzirt 18.10.2012 14:31

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Цитата:

Сообщение от pax (Сообщение 240586)
Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?

Сравниать нужно только начиная с участка где есть колибание в графике.

А если будут разные громкости?
Вычислить макимальную амплитуду первого трека, и подстроить данные второго трека под него...добавлять разницу к примеру.

Если копнуть еще глубже, то можно сравнивать "поведение" графиков, а не громкость определнных участков. Вообщем вариантов для развития - масса.

Nerd 18.10.2012 15:38

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Цитата:

Сообщение от pax (Сообщение 240586)
Dzirt, а что если два одинаковых трека имеют разную задержку в начале, например у первого 0с, а у второго 0,5с тишины?

Говорю же - анализу спектра кусками по 16 секунд не помешает даже лишний заполненный кусок секунды в две-три.

Dzirt 18.10.2012 15:50

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Цитата:

Сообщение от Nerd96 (Сообщение 240602)
Говорю же - анализу спектра кусками по 16 секунд не помешает даже лишний заполненный кусок секунды в две-три.

16 секунд-это слишком много имхо,я бы брал участками по секунд 5 для более точного результата.

Вообщем если есть желание, попробуй насколько твой способ будет точнее....особенно при сравнении двух похожих по стилю треков....на брутал дез-грайнд-коре он скорее всего загнется.)

ІГРОГРАЙКО 21.11.2012 15:09

Ответ: Сравнивание аудио дорожек (MP3, WAVE)
 
Duplicate songs detector via audio fingerprinting

Вот нашел хорошее решение данной задачи.


Часовой пояс GMT +4, время: 10:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot