Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Поиск дупликатов аудио-файлов


Автор: epsilon 27.6.2007, 12:47
Вопросы такие: 
Кто-то занимался подобным поиском? (Исходники, готовые модули)
Есть ли готовые решения вообще?
Ваши соображения по реализации.

Автор: FiMa1 27.6.2007, 13:59
Цитата
Ваши соображения по реализации

Как я себе это вижу в двух словах: ищем файлы (например *.mp3), строим "таблицу" размеров найденных файлов и запоминаем путь к каждому из них.
Для каждого вновь найденного файла в "таблице" ищется потенциальный дубликат, который должен иметь тот размер, что и текущий файл. Если такой "дубликат" в таблице найден, то можно проверить эти два файла по содержимому (может быть можно ограничиться только частью файла при сравнении по содержимому, например, по заголовку). На основе такого сличения делается вывод об идентичности файлов.

Автор: jonie 27.6.2007, 16:53
я пологаю что имелось в виду что файлы должны быть схожи по звучанию, а не по размерам).. ежели так то надо делать базу частотных и мощьностных характеристик звука в файлах и сравнение делать на этом уже (читать курс Нечеткие Множества , для сравнения - ибо чистого сравнения не получится)... можно использовать нейронные сети для сравнения...
смежные задачи - определение идентичности объектов вообще решаются нейронными сетями (в большинстве случаев, хотя не исключены и иные методики).
А вот как получить эти самые объекты для сравнения (из наших mp3) - уже другая задача) Но тоже решаемая.

Автор: epsilon 29.6.2007, 05:18
2FiMa1
Фокусы с таблицами, путями и именами файлов это хорошо на этапе предварительного сравнения. Больше всего вопросов возникает когда нужно убедиться что в двух файлах одна и та же звуковая дорожка (по содержанию конечно). 

2jonie
Использовать для данной задачи нейросети нет особого желания, потому как это сильно скажется на скорости поиска. + к тому реализовать адекватную устойчивую нейросеть не так просто, а ее обучение так это тема для дисера.
Объектами для сравнения в общем случае предполагалось использовать WAV(PCM) файлы(потоки), как общий знаменатель для любых форматов, будь то mp3, wma, ogg и т.п.

Лично мне реализация видится в некой экспертной системе построенной на основе мат. анализа двух функций. Однако на данный момент я ни к чему конкретному не пришел. Возможно те люди которые дружат с высш. матом мне помогут.




Автор: Void 29.6.2007, 07:57
Простейшей мерой похожести двух звуковых дорожек является http://ru.wikipedia.org/wiki/%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BD%D0%BE%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F. Я совершенно не специалист в обработке сигналов, но рискну предположить, что после некоторой обработки (ужатие динамического диапазона и т.п.) её будет достаточно чтобы выявить некоторые дубликаты. Другой вопрос, как организовать быстрый поиск: считать корреляционную функцию для каждой пары звуковых дорожек — затратное занятие.

Citeseer и Google Scholar, надеюсь, уже шерстили? По «sound duplicate search», «audio duplicate search» результатов предостаточно, например: http://research.microsoft.com/~cburges/tech_reports/tr-2004-19.pdf.

Добавлено через 1 минуту и 34 секунды
P.S. Тему в http://forum.vingrad.ru/forum/tech-algorithm-techique-method.html, однозначно.

Автор: epsilon 29.6.2007, 10:24
2Void
Да. То что надо.
На счет быстрого поиска написано ниже в приведенной тобой же ссылке - по создаваемой базе паттернов(отпечатков). Кроме того комбинирование методов оценки поверхностного совпадения(путь, имя, CRC) и совпадения по содержанию приведут, надеюсь, к приемлемому времени поиска.

PS. Интересно что методика в приведенном выше pdf-нике запатентована.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)