recherche par contenu audio - cours.etsmtl.ca · 150325 1 recherche par contenu audio basé sur an...
TRANSCRIPT
15-‐03-‐25
1
Recherche par contenu audio
Basé sur An Industrial-Strength Audio Search Algorithm,
Avery Li-Chun Wang, Shazam Entertainment, Ltd.
Département de génie logiciel et des technologies de l’information
Shazam
• Le cas d’utilisation
15-‐03-‐25
2
Département de génie logiciel et des technologies de l’information
Shazam
• Moteur de recherche audio ! Résiste aux bruits et à la distorsion ! Requiert peu de calculs ! Identifie de courts extraits audios capturés
avec un appareil mobile ! Une requête prend quelques millisecondes
pour une base de données de plus 2 millions de chansons.
Département de génie logiciel et des technologies de l’information
Principe de base
• Fonction de hachage ! Calcule, à partir d’une donnée entrante,
une empreinte servant à l’identifier rapidement
Ref: http://en.wikipedia.org/wiki/Hash_function
15-‐03-‐25
3
Département de génie logiciel et des technologies de l’information
Hachage (recherche par contenu)
• La fonction de hachage produit le vecteur permettant de déterminer la similitude entre l’extrait et les données de la base de données
• L’empreinte de données est stockée dans la base de données.
Département de génie logiciel et des technologies de l’information
Fonction de hachage (Images)
• Hachage par histogramme
560
420
560 x 420 x 3 = 705 600 valeurs (Pixels)
256 valeurs (Occurrences)
Données entrantes Empreinte
15-‐03-‐25
4
Département de génie logiciel et des technologies de l’information
Question
• Quelles valeurs sont sacrifiées par une fonction de hachage par histogramme?
Département de génie logiciel et des technologies de l’information
Fonction de hachage
• Réduit la quantité d’information. Il est crucial de définir vos exigences face à votre fonction de hachage. ! Par exemple: dans le cas de l’histogramme,
l’information spatiale est perdue. • Dépendant des applications, ceci n’est pas
toujours souhaitable.
15-‐03-‐25
5
Département de génie logiciel et des technologies de l’information
Question
• Quelles sont les exigences de Shazam envers leur fonction de hachage?
Département de génie logiciel et des technologies de l’information
Exigences de la fonction de hachage de Shazam
• Proximité temporelle • invariante à la translation • Robuste (à la compression et aux
bruits) • Possède une entropie suffisante
15-‐03-‐25
6
Département de génie logiciel et des technologies de l’information
Proximité temporelle
• La fonction de hachage doit utiliser seulement des caractéristiques qui sont proches dans le temps à l’échantillon. ! Par exemple:
• Elle ne peut pas attendre le refrain…
Département de génie logiciel et des technologies de l’information
Invariante à la translation
• Indépendant de l’emplacement dans le fichier. ! Par exemple: Un échantillon ne débutera
pas nécessairement au début de la chanson.
15-‐03-‐25
7
Département de génie logiciel et des technologies de l’information
Robuste
• La fonction de hachage doit produire un résultat corrélé entre la chanson originale, et une version bruitée et/ou compressée de cette même chanson.
Département de génie logiciel et des technologies de l’information
Entropie
• L’entropie est « la quantité d’information » que possède une empreinte. ! Plus l’empreinte possède d’information, plus elle
sera unique ! Inversement, moins d’information implique que
différentes données peuvent avoir la même empreinte (collisions)
15-‐03-‐25
8
Département de génie logiciel et des technologies de l’information
Fonction de hachage Shazam
• Shazam utilise les pointes du spectrogramme ! La logique étant qu’indépendamment de la valeur,
les pointes seront conservées même en présence de bruits ou lors de la compression
Ref: http://philduweb.free.fr/contributions/parole/signal.htm
Département de génie logiciel et des technologies de l’information
Constellation
• Représentation 2D, des pointes de l’extrait sonore
• Les constellations sont uniques pour chaque segment audio
15-‐03-‐25
9
Département de génie logiciel et des technologies de l’information
Question
• Quel est l’équivalent d’une constellation de pointes pour une image?
Département de génie logiciel et des technologies de l’information
Constellation de pointes (image)
Détection de contours
15-‐03-‐25
10
Département de génie logiciel et des technologies de l’information
Question
• Quelles sont les données sacrifiées pour une fonction de hachage qui conserve uniquement un masque des contours?
Département de génie logiciel et des technologies de l’information
similitude des constellations
• Si en glissant deux constellations, plusieurs points de celles-ci se superposent. Ceci nous donne une mesure de la similitude.
15-‐03-‐25
11
Département de génie logiciel et des technologies de l’information
Questions
• Quel est l’impact du bruit ou de la compression sur la similitude entre l’échantillon et un segment d’une chanson
Département de génie logiciel et des technologies de l’information
Impact du bruit ou de la compression
• La similitude se base sur le nombre de pointes qui s’alignent. ! L’ajout de pointes causées par le bruit
n’aura pas d’impact important sur la similitude
! Si certaines pointes sont retirées par le bruit la similitude sera moindre
15-‐03-‐25
12
Département de génie logiciel et des technologies de l’information
Hachage combinatoire
• Le Hache est constitué d’une paire de points [Point d’ancrage, point cible]
• Ceci évite d’avoir à glisser les constellations
Département de génie logiciel et des technologies de l’information
Hachage Shazam
• Pour chaque paire de points, on conserve
*Pas d’ID dans le cas du hachage de la requête
Fréquence 1 (f1) Fréquence 2 (f2) Δt
Temps depuis le début du segment ID*
32 bits
32 bits
15-‐03-‐25
13
Département de génie logiciel et des technologies de l’information
Indexage de la base de données
• Pour chacune des 2 millions de chansons, on stocke les codes de hachage.
• Pour faciliter l’indexage, ces codes sont triés par ordre de valeur (f1, f2, Δt)
Fréquence 1 (f1) Fréquence 2 (f2) Δt
Temps depuis le début du segment ID*
32 bits
32 bits
Département de génie logiciel et des technologies de l’information
similitude entre segments
• Lorsqu’il y a correspondance entre deux segments, une diagonale se forme (corrélation temporelle).
Temps depuis le départ de la chanson
Temps depuis le départ de l’échantillon
Pas de correspondance
Correspondance
15-‐03-‐25
14
Département de génie logiciel et des technologies de l’information
Recherche par contenu audio (Résumé)
• Fonction de hachage ! Calcule l’empreinte
• basée sur des paires de pointes
! Exigences • Proximité temporelle, invariante à la
translation, Robuste, possède suffisamment d’entropie.
• similitude est déterminée par la corrélation temporelle.