Titre résumé : Le principe de la technologie de reconnaissance musicale de Shazam
Qu'est-ce que Shazam ?
- Shazam est une application qui identifie la musique diffusée autour de vous.
- Il suffit d'ouvrir l'application et d'enregistrer l'audio pendant quelques secondes pendant que la musique joue, puis elle effectue une recherche dans sa base de données.
- Par le passé, le service était proposé via un numéro de téléphone, et la qualité des appels rendait la reconnaissance musicale difficile.
Pourquoi la reconnaissance musicale est difficile
- Pour les personnes peu familières avec le traitement du signal, la reconnaissance musicale est un problème difficile en raison de la complexité des signaux audio.
- Une approche par force brute consistant à retrouver une partie précise d'une chanson dans toute la piste est très lente, et la forme du signal peut fortement varier à cause du bruit de fond et des effets de fréquence.
Vue d'ensemble du système
- Shazam se divise en deux flux, l'enregistrement des morceaux et leur reconnaissance, et les deux partagent des étapes communes comme le calcul du spectrogramme, la recherche des pics dans le spectrogramme et le hachage des pics.
- Le flux d'enregistrement stocke les hachages dans la base de données, tandis que le flux de reconnaissance les compare à ceux de la base pour identifier la chanson en cours de lecture.
Calcul du spectrogramme
- Pour obtenir le spectrogramme d'un audio, il faut comprendre la transformée de Fourier.
- La transformée de Fourier indique quelles fréquences sont présentes dans l'audio, ce qui permet de générer un spectrogramme représentant l'évolution des fréquences au fil du temps.
Spectrogramme
- Pour mieux représenter les fréquences qui évoluent dans le temps, le spectrogramme découpe la chanson en petits segments et applique la transformée de Fourier.
- Le spectrogramme est un graphique en 3D composé du temps (axe X), de la fréquence (axe Y) et de l'intensité (axe Z/couleur).
Génération de l'empreinte
- En repérant dans le spectrogramme les pics correspondant aux fréquences les plus fortes, on extrait une empreinte unique de l'audio.
- Ces pics résistent bien au bruit et à d'autres distorsions, ce qui les rend adaptés à la génération d'empreintes.
Recherche des pics
- Les pics du spectrogramme représentent les fréquences les plus fortes du signal et doivent être répartis de façon homogène pour être utilisés dans une empreinte audio.
- Une technique de filtre maximum est utilisée pour mettre en évidence les pics du spectrogramme et en localiser la position.
Hachage
- Des hachages sont créés en formant des paires de pics du spectrogramme, ce qui augmente l'unicité.
- Les hachages incluent les fréquences des deux pics ainsi que leur différence temporelle, puis sont stockés dans la base de données.
Correspondance
- Cette partie explique comment trouver, dans la collection d'empreintes de la base de données, celles qui correspondent à un échantillon audio donné.
- On recherche les hachages, on les regroupe par chanson, puis on vérifie les correspondances de hachage afin de sélectionner la piste qui correspond le plus.
Conclusion
- Shazam suit un processus comprenant le calcul du spectrogramme, l'extraction des pics, la création de paires de hachages et le stockage des empreintes afin d'enregistrer et reconnaître les chansons.
L'avis de GN⁺
- Le point le plus important de cet article est qu'il explique de manière accessible le processus complexe par lequel Shazam reconnaît la musique.
- Il est intéressant et convaincant de voir les détails techniques décomposés étape par étape, de façon à être compréhensibles même pour un ingénieur logiciel débutant.
1 commentaires
Commentaires Hacker News
L’approche efficace de Shazam fondée sur le hachage
Le charme durable et presque magique de Shazam
Une vidéo du Wall Street Journal expliquant le fonctionnement de Shazam
Explication de Chromaprint et AcoustID
Un article intéressant sur Shazam et le traitement numérique du signal
Des algorithmes similaires applicables à d’autres médias
L’importance du site Every Noise At Once
Le caractère intuitif du processus de reconnaissance musicale
La transformée de Fourier utilisée pour la reconnaissance musicale