Как выбрать алгоритм аудио-отпечатков пальцев для создания совместной музыкальной базы данных?
Мне нужно создать совместную службу идентификации музыки. У каждого пользователя будет возможность отследить песню и отправить ее на сервер с ее метаинформацией. Вначале база данных службы будет пустой, и каждый раз, когда будет получен метаданный музыкальной информации, для песни будут обновляться метаданные (сервер назначит метаданные для отпечатка пальца на основе выбора большинства, если другой пользователь отправит разную информацию для тот же отпечаток пальца).
Мне нужно рассчитать отпечаток для всей песни, мне не нужно идентифицировать песню только из дроби.
Отпечаток пальца не должен быть точным на 100%. Я буду рад, если файл с двумя песнями получит один и тот же отпечаток пальца, просто если один и тот же файл закодирован с разной степенью сжатия. Низкий уровень независимости от шума будет плюсом.
Молчание в начале или в конце песни не будет проблемой, я должен удалить их, используя стандартный алгоритм подавления молчания (а также в этом случае не требуется очень точный результат).
Я знаю, что есть какая-то библиотека с открытым исходным кодом, например: http://echoprint.me/ и https://acoustid.org/ но эта библиотека подходит для моих нужд, потому что, если я правильно пойму, вы сможете идентифицировать песню только из части, и это создаст тяжелую базу данных. Мне нужен алгоритм, который даст мне не слишком тяжелый (несколько килобайт) отпечаток для всей песни.
Ведьма - самый простой и быстрый алгоритм, который я могу использовать?
Спасибо всем
1 ответ
Я предлагаю вам использовать проект AcoustID. Ваше описание соответствует этому проекту по многим пунктам. Только некоторые из их подходов отличаются от того, что вы предлагаете.
Может ли служба идентифицировать короткие фрагменты аудио?
Нет, не может. Сервис предназначен для идентификации полных аудиофайлов. Мы хотели бы в конечном итоге поддержать и этот вариант использования, но на данный момент это не приоритет. Обратите внимание, что даже когда это будет реализовано, оно все равно будет предназначено для сопоставления исходного звука (например, с целью отслеживания длинного аудиопотока), а не звука с фоновым шумом, записанного на телефоне.
Посмотрите их список рассылки для более подробных объяснений: https://groups.google.com/forum/