Comment fonctionne la prise d'empreintes digitales de musique (pour les sites tels que Shazam et Lala.com)?

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

Question

Mon grand (120Go) collection de musique contient beaucoup de chansons en double, et je l'ai essayé de pistes d'empreintes digitales dans l'espoir de détecter les doublons. Et comme je suis un CS Major Je suis très curieux de savoir ce qui se fait là-bas? Rien que je fais a presque l'exactitude de quelque chose comme Shazam ou Lala.com. Comment font-ils des pistes « hash »? J'ai couru un hachage MD5 standard sur tous mes fichiers (26.000 fichiers) et j'ai trouvé des centaines d'égalité hash sur différentes pistes, de sorte que cela ne fonctionne pas.

Je suis plus intéressé par Lala.com car ils travaillent avec des fichiers complets, contrairement à Shazam, mais je suppose à la fois utiliser une technique similaire. Quelqu'un peut-il expliquer comment générer des identifiants uniques pour la musique?

Était-ce utile?

La solution

Le document fondateur sur les empreintes digitales audio est le travail en 2002-03 par Haitsma et Kalker. Pour chaque trame de l'audio, il prétraite (différences entre les délais et les bandes de fréquences), puis stocke une version binarisée du spectre du cadre.

Cette procédure ajoute de la robustesse. Si la totalité du signal est décalé dans le temps, il fonctionne encore (du moins, on peut obtenir une limite inférieure sur la dégradation des performances). Il est assez robuste au bruit ambiant. Depuis sa création, il y a eu de nombreux articles sur la similitude de la musique à faible niveau, donc il n'y a pas de réponse unique.

Avez-vous des fichiers absolument identiques, à savoir, les signaux sont recalées, profondeur de bit est le même, le taux d'échantillonnage est le même? Ensuite, je pense qu'un hachage comme MD5 devrait fonctionner. Mais si l'un de ces paramètres sont modifiés, de même le hash. Dans un tel cas, une procédure comme celui mentionné précédemment fonctionnerait mieux.

Jetez un oeil à la procédure ISMIR en ligne gratuitement. Truc amusant. http://www.ismir.net/

Autres conseils

Il y a beaucoup d'algorithmes pour les empreintes acoustiques. Certains des plus populaires sont:

  1. AMG LASSO
  2. AudioID
  3. LibFooID

En fait libfooId est opensource, de sorte que vous pouvez vérifier son code dans le code google !!

Après quelques recherches (même si cela ne résout pas du tout!), Je suis tombé sur le wiki à MusicBrainz.org qui détaille quelques-unes des approches qu'ils utilisent:

http://musicbrainz.org/doc/Audio_Fingerprint

http://musicbrainz.org/doc/How_PUIDs_Work

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top