Как работает дактилоскопия музыки (для таких сайтов, как Shazam и Lala.com)?

StackOverflow https://stackoverflow.com/questions/2046771

Вопрос

Моя большая музыкальная коллекция (120 гб) содержит много дубликатов песен, и я пытался отпечатать треки в надежде обнаружить дубликаты.И поскольку я специализируюсь на CS, мне очень любопытно, что там делается?Ничто из того, что я делаю, и близко не соответствует точности чего-то вроде Shazam или Lala.com .Как они "хэшируют" треки?Я запустил стандартный хэш MD5 для всех своих файлов (26 000 файлов) и обнаружил сотни одинаковых хэшей на разных дорожках, так что это не работает.

Меня больше интересует Lala.com поскольку они работают с полными файлами, в отличие от Shazam, но я предполагаю, что оба используют схожую технику.Кто-нибудь может объяснить, как генерировать уникальные идентификаторы для музыки?

Это было полезно?

Решение

Основополагающим документом по звуковой дактилоскопии является работа Хайтсмы и Калкера, написанная в 2002-03 годах.Для каждого кадра аудио он выполняет предварительную обработку (различия между временными рамками и частотными диапазонами), а затем сохраняет двоичную версию спектра кадра.

Эта процедура повышает надежность.Если весь сигнал сдвинут во времени, он все еще работает (по крайней мере, можно вывести нижнюю границу снижения производительности).Он довольно устойчив к шуму окружающей среды.С момента его создания было опубликовано много работ о сходстве музыки низкого уровня, так что однозначного ответа нет.

У вас есть абсолютно идентичные файлы, т. е. сигналы выровнены по времени, разрядность одинакова, частота дискретизации одинакова?Тогда я бы подумал, что такой хэш, как MD5, должен работать.Но если какой-либо из этих параметров будет изменен, то изменятся и хэши.В таком случае процедура, подобная упомянутой ранее, сработала бы лучше.

Взгляните на материалы ISMIR, доступные бесплатно онлайн.Забавная штука. http://www.ismir.net/

Другие советы

Существует множество алгоритмов для акустической дактилоскопии.Вот некоторые из наиболее популярных из них:

  1. ЛАССО AMG
  2. Аудиоидный
  3. LibFooID - Файл LibFooID

На самом деле libfooId имеет открытый исходный код , поэтому вы можете ознакомиться с его кодом в google-code!!

Взгляните на него Акустический Отпечаток Пальца страница в Википедии.В нем есть ссылки на некоторые статьи, а также ссылки на реализации (включая открытый исходный код фдмф).

После еще некоторых исследований (хотя это вовсе не является окончательным!) я наткнулся на wiki по адресу MusicBrainz.org в котором подробно описываются некоторые подходы, которые они используют:

http://musicbrainz.org/doc/Audio_Fingerprint

http://musicbrainz.org/doc/How_PUIDs_Work

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top