Предположим, у меня есть несколько каталогов, в которых содержится около 4000 аудиофайлов, примерно половина из которых — FLAC, а другая половина — MP3. Предположим, я хочу определить, не по метаданным тегов, а только по аудиоданным, есть ли у меня дубликаты или почти дубликаты аудиофайлов. Например, предположим, у меня есть версии FLAC (без потерь) и MP3 (с потерями) одной и той же песни. Не делая никаких предположений об имени файла, метаданных тегов или даже частоте дискретизации, я хотел бы каким-то образом определить, являются ли они по сути одной и той же мелодией.
Я думал о многих вещах, но все они имеют определенные проблемы:
- Невозможно сравнить хэши или размеры файлов, поскольку базовый аудиоформат или теги могут отличаться.
- Невозможно сравнить длину аудиофайлов, поскольку почти одинаковые копии могут длиться не одинаковое количество времени (они могут отличаться друг от друга на очень маленькие доли секунды), а также потому, что могут существовать другие аудиофайлы той же длины.
- Невозможно сравнить исходные аудиоданные сэмпл за сэмплом, так как это не позволит обнаружить версию с потерями и без потерь одного и того же трека.
Я действительно не уверен, как это сделать, или есть ли какая-либо программа, которая может это сделать. По сути, я ищу что-то вроде AntiDupl.NET, но для аудиофайлов вместо изображений. Возможно, это можно сделать на Python с помощью какого-то статистического анализа, используя ошибку в качестве порогового значения, но я не уверен, как это можно реализовать. Есть ли какие-нибудь предложения по программе или другие идеи?