Используйте какой-нибудь алгоритм отпечатков пальцев. Возможно, вы знаете о MusicBrainz . Они перечислили здесь некоторые алгоритмы отпечатков пальцев. Теперь они используют AcoustId, что, вероятно, также следует использовать (это хорошо и бесплатно). Существует библиотека Chromaprint , которая может генерировать такой отпечаток.
Я написал Python-модуль ffmpeg
, который выполняет декодирование через FFmpeg и предоставляет простую функцию для вычисления отпечатка AcoustId (используя Chromaprint). Здесь - небольшая демонстрация для этого (которая даже запрашивает MusicBrainz для песни).
Должно быть легко построить какой-нибудь инструмент, чтобы найти все дубликаты.
Отпечаток пальца будет точно таким же, если аудиоданные точно такие же. Это будет похоже, если аудио данные похожи. Обратитесь к домашней странице AcoustId для получения дополнительной информации о том, как рассчитать сходство, если вы не хотите просто проверять равенство.