Caractérisation d`un air de musique et

Transcription

Caractérisation d`un air de musique et
Université de Liège
Faculté des Sciences Appliquées
Travail de n d'études
Caractérisation d'un air de musique et
reconnaissance avec un son dans une base de données
Julien Osmalskyj
Promoteurs
Professeur M. Vandroogenbroeck
Professeur J.-J. Embrechts
Travail de n d'études réalisé en vue de l'obtention du grade de
Master en Sciences Informatiques
2010 - 2011
La version numérique de ce document, disponible sur le CD
d'accompagnement, propose des liens interractifs permettant un accès direct au
contenu multimédia associé.
Résumé
Ce document traite du problème dicile de la reconnaissance de musique.
Nous présentons une méthode ecace d'identication de pièces musicales à partir d'extraits joués à la guitare, ou à l'aide d'autres instruments. La méthode
présentée utilise une description des pistes audio basée sur les accords les constituant. À cette n, nous avons utilisé le descripteur connu sous le nom de Pitch
Class Prole (PCP). Pour démontrer la robustesse du PCP, un algorithme de
reconnaissance d'accords utilisant des techniques d'apprentissage automatique
a été créé. Les résultats permettent de démontrer que le PCP est capable de
reconnaître des accords, quels que soient les instruments utilisés.
Des pistes musicales sont donc identiées par une liste d'accords et un algorithme de recherche de correspondances dans une base de données a été
développé. Le système reçoit un extrait musical joué à la guitare ou par un
autre instrument, et renvoie le nom du morceau identié. Les résultats obtenus
démontrent qu'une représentation basée sur des accords est indépendante de
c ,
l'instrument utilisé. À l'inverse d'une application existante telle que Shazam
le système est capable de reconnaître des extraits totalement inédits et diérents
des pistes contenues dans une base de données, ce qui en fait une application
novatrice.
2
Remerciements
Je souhaite adresser ici mes remerciements aux personnes qui m'ont apporté
leur aide et qui ont ainsi contribué à l'élaboration de ce travail.
Je tiens à remercier tout particulièrement le Professeur Embrechts et le
Professeur Vandroogenbroeck pour leur soutien et leur aide avisée tout au
long de mes recherches. Je remercie également Monsieur Sébastien Piérard,
chercheur, qui s'est toujours montré à l'écoute et m'a été d'une aide précieuse
dans la réalisation de ce travail.
Mes remerciements s'adressent également à Madame Bastin, professeur de
mathématique, qui a accepté de répondre avec gentilesse à mes questions. J'exprime ma gratitude à Monsieur Angel Calderon Jimenez pour l'aide technique
qu'il m'a apportée lors de mes enregistrements en chambre sourde.
Je remercie aussi Maroussia Osmalskyj, Maxime Michaluk et Philippe
Eloy pour leur aide lors de la réalisation de mes tests. Ils m'ont permis d'élargir
mon champ d'action au piano, au violon et à l'accordéon.
Enn, je n'oublie pas mes parents et je les remercie pour leur soutien indéfectible tout au long de cette année et tout au long de mes études.
Julien Osmalskyj
Liège
18 mai 2011
3
Table des matières
1 Introduction Générale
8
2 État de l'Art
12
2.1
Traitement de contenu musical : Introduction . . . . . . . . . . .
12
2.2
Recherche d'informations musicales (MIR) . . . . . . . . . . . . .
13
2.3
Descripteurs audio
. . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.3.1
Extraction de descripteurs . . . . . . . . . . . . . . . . . .
16
2.3.2
Descripteurs d'accords . . . . . . . . . . . . . . . . . . . .
17
Reconnaissance d'extraits musicaux . . . . . . . . . . . . . . . . .
18
2.4
3 Reconnaissance d'accords
20
3.1
Pourquoi reconnaître des accords ?
. . . . . . . . . . . . . . . . .
20
3.2
Descripteur d'accord : le Pitch Class Prole . . . . . . . . . . . .
22
3.2.1
Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.2.2
Normalisation . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.2.3
Adaptation du PCP
24
3.3
. . . . . . . . . . . . . . . . . . . . .
Algorithmes de reconnaissance
3.3.1
. . . . . . . . . . . . . . . . . . .
Méthode naïve : Dénition d'un accord
4
. . . . . . . . . .
26
27
5
TABLE DES MATIÈRES
3.3.2
3.4
3.5
3.6
Apprentissage automatique
. . . . . . . . . . . . . . . . .
28
3.3.2.1
Réseau de neurones
. . . . . . . . . . . . . . . .
28
3.3.2.2
Plus proches voisins (KNN) . . . . . . . . . . . .
30
Base de données d'accords . . . . . . . . . . . . . . . . . . . . . .
30
3.4.1
Premier ensemble . . . . . . . . . . . . . . . . . . . . . . .
32
3.4.2
Deuxième ensemble . . . . . . . . . . . . . . . . . . . . . .
33
Expériences et Résultats . . . . . . . . . . . . . . . . . . . . . . .
34
3.5.1
Application naïve de la dénition d'un accord . . . . . . .
34
3.5.2
Détermination de l'ensemble d'apprentissage optimal . . .
35
3.5.3
Validation de la base de données
. . . . . . . . . . . . . .
37
3.5.4
Reconnaissance d'autres instruments . . . . . . . . . . . .
37
3.5.5
Annotation de morceaux complets
. . . . . . . . . . . . .
39
3.5.6
Performances algorithmiques
. . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Conclusion
4 Reconnaissance d'extraits musicaux
4.1
Descripteurs d'extraits . . . . . . . . . . . . . . . . . . . . . . . .
45
4.1.1
. . . . . . . . . . . . . . . . . . . . . . . . .
47
4.1.1.1
Descripteur . . . . . . . . . . . . . . . . . . . . .
47
4.1.1.2
Algorithme de reconnaissance naïf . . . . . . . .
48
4.1.1.3
Détections de pics . . . . . . . . . . . . . . . . .
50
4.1.1.4
Conclusion
54
4.1.2
4.2
4.3
44
Spectre PCP
. . . . . . . . . . . . . . . . . . . . .
Utilisation du détecteur d'accords
. . . . . . . . . . . . .
54
4.1.2.1
Descripteur . . . . . . . . . . . . . . . . . . . . .
54
4.1.2.2
Mesure de similarité . . . . . . . . . . . . . . . .
56
Recherche de correspondances
. . . . . . . . . . . . . . . . . . .
58
. . . . . . . . . . . . . . . . . . . . . . .
58
4.2.1
Fenêtre glissante
4.2.2
Fenêtres aléatoires
4.2.3
Méthodes de clustering
. . . . . . . . . . . . . . . . . . . . . .
59
. . . . . . . . . . . . . . . . . . .
60
Bases de données . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
6
TABLE DES MATIÈRES
4.4
4.5
4.3.1
Pistes de guitare
. . . . . . . . . . . . . . . . . . . . . . .
61
4.3.2
Pistes de karaoké . . . . . . . . . . . . . . . . . . . . . . .
62
4.3.3
Pistes originales contenant de la voix . . . . . . . . . . . .
62
4.3.4
Échantillons de test
. . . . . . . . . . . . . . . . . . . . .
63
. . . . . . . . . . . . . . . . . . . . . . .
63
4.4.1
Extraits joués à la guitare . . . . . . . . . . . . . . . . . .
64
4.4.2
Extraits joués à l'accordéon . . . . . . . . . . . . . . . . .
67
4.4.3
Extraits joués au piano
. . . . . . . . . . . . . . . . . . .
70
4.4.4
Base de données Karaoké
. . . . . . . . . . . . . . . . . .
72
4.4.5
Base de données contenant de la voix
Expériences et résultats
. . . . . . . . . . .
74
. . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . .
75
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
4.4.5.1
Guitare et pistes originales
4.4.5.2
Pistes originales
Conclusion
5 Conclusion Générale et Perspectives
79
Annexe A Notions Musicales
83
A.1
Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
A.2
Gammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
A.2.1
Gamme chromatique . . . . . . . . . . . . . . . . . . . . .
87
A.2.2
Gammes diatoniques . . . . . . . . . . . . . . . . . . . . .
87
A.3
Accords
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3.1
Accord majeur
. . . . . . . . . . . . . . . . . . . . . . . .
90
A.3.2
Accord mineur
. . . . . . . . . . . . . . . . . . . . . . . .
90
Annexe B Apprentissage automatique
B.1
88
Réseau de neurones articiels
92
. . . . . . . . . . . . . . . . . . . .
93
B.1.1
Neurone formel . . . . . . . . . . . . . . . . . . . . . . . .
94
B.1.2
Architecture en réseau . . . . . . . . . . . . . . . . . . . .
95
B.1.3
Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . .
95
B.2
Plus proches voisins : K-NN . . . . . . . . . . . . . . . . . . . . .
97
B.3
Méthodes de validation . . . . . . . . . . . . . . . . . . . . . . . .
98
TABLE DES MATIÈRES
Annexe C Programme réalisé
Annexe D Article de conférence
7
99
102
CHAPITRE
1
Introduction Générale
De nos jours, la musique est présente massivement tout autour de nous. Avec
l'explosion de l'Internet et des supports multimédias, une quantité importante
d'information audio numérique a été rendue disponible par le biais de bases
de données publiques : sites Internet, CD, médiathèques, etc. Toutefois, ces
données ne sont pas toujours exploitées au mieux. On constate en eet que la
recherche d'une information précise est souvent rendue fastidieuse par la masse
des données existantes.
Les techniques classiques de gestion de pistes musicales reposent généralement sur l'annotation textuelle et sont assez limitées en ce qui concerne la
recherche de documents. En eet, pour du contenu audio, le nom du compositeur, du groupe, l'année de parution etc. ne fournissent qu'une information
limitée et assez éloignée du contenu musical. De plus, ces techniques d'annotation textuelle nécessitent de toute évidence une intervention humaine, ce qui est
coûteux en temps et en ressources.
Pour remédier à ce problème, une discipline connue sous le nom de traitement
de contenu musical a vu le jour. Son but est de fournir des moyens permettant
d'indexer ou de gérer des documents musicaux en fonction de leur contenu. À
l'inverse des techniques textuelles, la discipline de traitement de contenu musical s'intéresse plus au contenu propre des pistes audio. Ainsi, cette discipline
préconise plutôt l'indexation basée sur la musique elle même, via l'extraction de
descripteurs utiles et représentatifs du contenu musical.
Il serait donc intéressant de pouvoir identier de façon précise un contenu
musical sur base de quelques notes jouées, d'une mélodie chantonnée, d'un siement, ou encore d'un simple rythme. C'est sur ce concept que nous avons choisi
d'orienter nos recherches, dont le but est la réalisation d'un système de recherche
8
CHAPITRE 1.
INTRODUCTION GÉNÉRALE
9
de documents musicaux destiné à terme au grand public. Certains systèmes similaires existent déjà dans la littérature, comme le logiciel Shazam [27, 28] qui ore
la possibilité de retrouver avec une grande précision une piste musicale à partir
d'un extrait fortement bruité (par exemple en voiture, ou dans un restaurant),
par l'intermédiaire d'un téléphone portable.
L'objectif ultime de notre recherche est de concevoir un système de reconnaissance d'extraits musicaux plus général. Toutefois, il ne s'agit pas ici de
reproduire un système similaire aux applications commerciales existantes telles
que Shazam, Relatable, ou d'autres. Shazam, par exemple, a pour but de reconnaître des extraits musicaux tels qu'ils sont stockés dans une base de données.
Si l'on envoie à Shazam un extrait, éventuellement bruité, d'une version particulière du morceau Hotel California du groupe The Eagles, l'algorithme renvoie
le nom de la piste, l'album, l'année de parution et d'autres informations utiles.
Si l'on envoie à Shazam une version diérente du même morceau, il va probablement renvoyer les informations relatives à cette nouvelle version. Par contre,
si l'on envoie à Shazam une version de Hotel California jouée à la guitare, ou au
piano, c'est-à-dire une version totalement inédite, qui n'est pas présente dans
la base de données centrale, l'algorithme ne reconnaît plus rien. Shazam est
donc particulièrement adapté pour retrouver des morceaux existants, mais ne
permet pas de reconnaître des extraits inédits. À cette n, le système utilise un
algorithme basé sur une représentation spectrale des morceaux.
Notre objectif est de faire reconnaître de tels extraits inédits. L'idée est d'envoyer à un algorithme de reconnaissance un extrait joué à la guitare, au piano,
à l'accordéon, ou joué par d'autres instruments, d'un morceau présent dans une
base de données centrale. Le morceau stocké dans la base de données est bien entendu enregistré dans une version unique, jouée par exemple à la guitare. Notre
but est alors de concevoir un algorithme capable de reconnaître une nouvelle
version du morceau, similaire à celle de la base de données en terme de contenu, mais diérente sur l'aspect extérieur (l'instrument, le rythme, etc.) Un
tel système nécessite donc une approche diérente, basée sur des informations
relatives au contenu d'un morceau, indépendantes de certaines caractéristiques
telles que le rythme et l'instrument. Un exemple d'application de notre système
pourrait par exemple être la reconnaissance de morceaux joués en concert par
un groupe. En eet, une version live est souvent inédite et diérente d'une
version studio, contenue dans une base de données.
Mettre en ÷uvre un tel système n'est pas une tâche facile. Il faut en eet
trouver un moyen de représenter des pistes audio de sorte qu'elles soient indépendantes de l'instrument utilisé, du rythme ainsi que de la dynamique d'un
morceau. Il faut ensuite utiliser cette description pour concevoir un moteur de
comparaison permettant d'identier des extraits musicaux. Nous sommes parvenus à concevoir un tel système et à en faire une application concrète. C'est ce
que nous allons décrire dans ce document.
Ce travail de recherche s'attardera d'une part à la description de contenus
audio musicaux, et d'autre part à l'exploitation de ces données dans un système
de recherche. Notre travail est donc constitué de deux modules bien distincts.
Le premier consiste à extraire une bonne description à partir de pistes audio.
Sur base du signal audio brut, il faut identier une description idéale compacte
CHAPITRE 1.
INTRODUCTION GÉNÉRALE
10
Figure 1.1 Système de recherches de pistes audio sur base d'un court extrait.
et représentative des caractéristiques désirées. Nous avons choisi d'utiliser un
descripteur basé sur des accords.
Le deuxième module se constitue d'un algorithme de recherche dans une
base de données. Il faut alors identier une mesure permettant de comparer
un extrait inédit à un extrait d'une base de données. La Figure 1.1 montre un
diagramme représentant le système conçu.
Lors d'une recherche, la requête soumise par l'utilisateur subit une transcription qui extrait les accords constituant l'enregistrement audio. Un algorithme
de comparaison juge ensuite de la similarité existant entre l'extrait soumis et
les pistes musicales de la base de données, via leurs descripteurs. Les résultats obtenus permettent ensuite d'établir une liste de titres ordonnés selon leur
ressemblance à la requête.
An de faciliter au lecteur non musicien la compréhension des notions musicales abordées dans ce document, sans toutefois avoir la prétention de lui donner
un cours de théorie musicale, nous lui recommandons la lecture de l'Annexe A.
De même, l'Annexe B propose une introduction théorique des notions d'apprentissage automatique utilisées dans le cadre de nos recherches. Nous recommandons la lecture de ce document au lecteur non familiarisé avec l'apprentissage automatique.
Le Chapitre 2 présente un historique des travaux eectués dans le domaine
de la recherche de contenu musical. Dans le chapitre suivant, nous présentons
le module d'extraction de descripteurs de notre système. Nous y décrivons les
techniques et descripteurs utilisés. An de vérier la robustesse du descripteur
nal choisi, nous avons développé un système de reconnaissance d'accords musicaux. Le Chapitre 3 décrit l'algorithme conçu. Ensuite, il faut encore concevoir
un algorithme permettant d'exploiter le descripteur an d'identier un extrait
musical. Le Chapitre 4 décrit la méthode mise en ÷uvre pour parvenir à un tel
CHAPITRE 1.
INTRODUCTION GÉNÉRALE
11
résultat. Nous y présentons en outre les expériences et résultats obtenus. Enn le Chapitre 5 présente les conclusions et perspectives oertes par le travail
réalisé.
CHAPITRE
2
État de l'Art
L'objectif de notre recherche est de concevoir un système capable de reconnaître des extraits musicaux joués par des suites d'accords avec une guitare ou
d'autres instruments. Des recherches ont déjà eectuées dans ce domaine, en
particulier de la reconnaissance d'accords et d'extraits musicaux. Nous avons
étudié les techniques utilisées dans la littérature an d'orienter au mieux nos
recherches. Dans ce chapitre, nous présentons l'historique des travaux eectués.
2.1 Traitement de contenu musical : Introduction
À l'heure actuelle, on a l'habitude de décrire une chanson, un artiste ou
une autre pièce musicale en utilisant des informations textuelles. Imaginons par
exemple que nous visitions un magasin de CD. La plupart du temps, on choisit
d'acheter un CD spécique en se basant sur divers aspects tels que le genre,
l'instrumentation, l'artiste, le groupe, etc. Cette information est généralement
sous forme textuelle. Toutefois, il arrive que l'on demande au vendeur d'écouter
une piste particulière, ce qui peut inuencer notre décision d'acheter le CD
ou pas. Cette dernière information est souvent bien plus intéressante que les
données textuelles, car elle nous permet de juger la musique en fonction des
divers aspects de son contenu musical. Mais qu'est ce que le contenu musical ?
Le mot contenu est déni comme les idées qui sont contenues dans un texte,
une conversation ou un lm [2]. Appliqué à une pièce musicale, ce concept peut
être compris comme l'information implicite relative à cette pièce et représentée
par la pièce musicale elle même. Par exemple, le rythme, la mélodie ou les
12
CHAPITRE 2.
ÉTAT DE L'ART
13
propriétés instrumentales d'une piste musicale représentent le contenu d'une
piste.
Les informations extraites de pistes musicales par des êtres humains dépendent de l'appréciation de la personne qui les écoute. En eet, certaines personnes
classeraient une chanson dans la section Rock'n Roll alors que d'autres pourraient la classier dans la section Blues ou Country. Les informations varient
donc selon l'auditeur de la piste. Il serait donc intéressant d'avoir un système capable d'extraire des informations relatives au contenu musical, an de pouvoir,
par exemple, associer automatiquement un style à une piste. On peut imaginer
de nombreuses applications : recommandation de musique, génération de liste
de lecture basée sur les préférences des utilisateurs, requêtes par chantonnement
plutôt que par des informations textuelles, etc.
Avec la croissance d'Internet et des supports numériques, ces dernières années
ont vu le déploiement et la mise à disponibilité d'une grande quantité de données
multimédia. Dès lors, le développement d'outils permettant de traiter automatiquement ces données semble parfaitement pertinent. La recherche textuelle est
actuellement considérée comme un domaine de recherche mature, mais ce domaine est limité à un sous-ensemble restreint de l'information disponible dans
le monde. Il y a donc un intérêt croissant pour la recherche de documents audio
basée sur des informations non textuelles. Le champ de recherche incluant ces
systèmes est connu sous le nom de MIR (Music Information Retrieval), c'est-àdire Recherche d'informations musicales. L'objectif de MIR est de décrire tout
aspect relatif au contenu musical d'une pièce. Dans ce chapitre, nous décrivons
le travail réalisé dans le domaine MIR relatif à nos recherches.
2.2 Recherche d'informations musicales (MIR)
Les pionniers de la discipline MIR sont Kassler (1966) et Lincoln (1967).
D'après eux, la recherche d'information musicale peut être dénie comme la
tâche d'extraire d'une large quantité de données, des portions de ces données
qui respectent certaines propriétés musicales [22]. Ils démontrent trois idées
qui devraient être les objectifs de la discipline MIR : (1) l'élimination de la
transcription manuelle de musique, (2) la création d'un langage ecace pour
représenter et manipuler la musique et (3) des moyens économiques d'imprimer
de la musique. Une autre dénition de MIR est donnée par Gunderson [17] : La
discipline MIR est un champ de recherche dédié à la recherche et la classication
dans des données musicales - la plupart du temps dans leur représentation audio,
mais également sous forme de données MIDI ou de métadonnées.
MIR est donc une science inter-disciplinaire. Fingerhut et Donin [10] proposent une carte représentant toutes les disciplines relatives à cette science.
Enric Gauss [15] propose une version simpliée de cette carte. Cette dernière
est montrée en Figure 2.1
. À gauche, on peut observer le type d'informa-
tions disponibles et sur la droite, on observe les disciplines qui sont relatives
aux données pour chaque niveau d'abstraction. On peut ainsi observer que MIR
s'intéresse à la source de la musique produite par le musicien. De là, elle s'in-
CHAPITRE 2.
14
ÉTAT DE L'ART
Figure 2.1 Représentation de quelques disciplines relatives à MIR.
téresse au stockage de ces données audio et nalement, à l'information contenue
dans l'audio.
Quelques possibilités de MIR sont décrites ci-dessous. On peut constater leur
rapport direct avec la carte présentée dans la Figure 2.1.
Transcription de musique : L'idée est de transcrire automatiquement une
partition à partir d'une piste audio enregistrée.
Classication de musique : Il s'agit de classer automatiquement une collection de pistes audio par genre, artiste ou encore par instrumentalisation
directement à partir de chiers audio, et non pas à partir d'informations
textuelles. Un exemple d'une telle application est décrit dans [1].
Génération de liste de lecture : Un tel système devrait être capable de
proposer une liste de pistes similaires en se basant, par exemple, sur les
préférences de l'utilisateur. Un exemple d'une telle application est le pro-
1
2
gramme Mirage , inclus dans le lecteur multimédia Banshee . D'autres
systèmes sont également décrits dans [11, 30].
Navigation dans une longue pièce musicale divisée en thèmes : par exemple,
une longue pièce de musique classique.
Reconnaissance de musique : L'idée est de reconnaître une piste en la
chantonnant, ou en faisant écouter au système un extrait éventuellement
bruité de la chanson originale. Divers systèmes existent, le plus connu étant
Shazam [28, 27].
Recommandation de musique : Avec la disponibilité de larges quantités
de chiers audio sur Internet, de nouveaux systèmes de recommandation émergent des laboratoires de recherche. La plupart de ces systèmes
1. Mirage : http ://hop.at/mirage/
2. Banshee : http ://banshee.fm/
CHAPITRE 2.
ÉTAT DE L'ART
15
sont basés sur du ltrage collaboratif, lui même basé sur des informations
fournies par les utilisateurs. Un exemple d'un tel système est le service de
3
radio en ligne Last.fm .
Tous ces systèmes utilisent diverses techniques pour atteindre leur but : des
classicateurs par genre, des algorithmes de détection de rythme, des systèmes
de reconnaissance d'accords et bien d'autres. Nous décrivons ci-dessous quelques
applications concrètes utilisant les techniques de la discipline MIR. Il s'agit de
programmes réels, utilisables en pratique sur un ordinateur.
Relatable TRM : Un des plus anciens systèmes de reconnaissance de
musique. TRM signie TRM Recognizes Music. Cette application utilise un
mécanisme qui génère une emprunte unique pour un chier audio. Cette
emprunte est calculée suite à une analyse des propriétés acoustiques du
chier audio. Ce système d'emprunte est utilisé par l'encyclopédie de con-
4
tenu musical Music Brainz .
Shazam : Shazam est une application de reconnaissance de piste audio
qui est capable de retrouver le titre d'un extrait musical de 10 secondes
enregistré à l'aide d'un téléphone portable. D'après Wang [27, 28], Shazam
est conçu pour être très robuste et est capable de reconnaître un extrait de
10 secondes d'audio à travers un téléphone, avec une distorsion sévère, en
analysant les pics spectraux dans le temps .
Tuneprint : Tuneprint
5 est un système capable d'écouter et d'identier un
extrait audio. Il fonctionne sans compression et sans traitement préalable
sur les chiers d'entrée.
Un élément clé pour la réalisation de ces applications est l'utilisation de descripteurs adéquats. Ces derniers correspondent aux données extraites des signaux
audio bruts pour faciliter le traitement de l'information. La section suivante
décrit les recherches de la littérature relatives aux descripteurs audio.
2.3 Descripteurs audio
En règle générale, une piste audio de trois minutes contient énormément
d'information. En eet, à une fréquence d'échantillonnage de 44100Hz et en
utilisant un format PCM 16 bits (format standard dans l'industrie audio), un
tel chier contiendrait environ huit millions d'échantillons, soit plus de 30Mb de
données. Une quantité aussi importante de données rend le stockage, le transfert
ou la recherche dans une grande base de données quasi impossible. Travailler
avec des chiers audio bruts est donc loin d'être une situation idéale. De plus, il
y a énormément de redondances dans ces données non compressées. Ainsi, une
chanson complète contient en général des couplets et refrains très similaires qui
réapparaissent plusieurs fois au cours du temps. Il est donc nécessaire de trouver
une description plus compacte d'un son, plus facile à utiliser et à stocker. C'est
ce que l'on appelle un descripteur audio.
3. Last.fm : http ://lastfm.com/
4. MusicBrainz : http ://musicbrainz.org/
5. TunePrint : http ://www.tuneprint.com/
CHAPITRE 2.
ÉTAT DE L'ART
16
Gunderson [17] dénit un descripteur audio comme suit : Un descripteur
audio, parfois appelé une emprunte, est un signal audio réduit à une dimension
plus petite, en général un ensemble de nombres décrivant certains aspects du
signal audio en question . La plupart des descripteurs audio extraient de l'information utile, représentative de ce qu'un être humain entend, et non pas des
bits et bytes propres à un signal donné.
Dans un système MIR, il y a en général une étape de pré-traitement sur le
signal audio avant d'extraire des descripteurs utiles. Ainsi, une application va
en général commencer par extraire des descripteurs de bas niveau (par exemple, la transformée de Fourier du signal), puis, sur base de ces descripteurs de
bas niveau, elle va appliquer un nouveau traitement permettant d'extraire des
descripteurs de plus haut niveau, an de les exploiter dans un programme nal.
Gunderson donne également une propriété intéressante relative au contexte
légal d'un descripteur audio. En eet, on a beaucoup entendu parler ces dernières
années de la propriété intellectuelle, plus précisément du fameux copyright. Ainsi
dans de nombreuses législations, l'utilisation de chiers audio est réglementée.
Dès lors, Gunderson suggère qu'un descripteur, pour être correct, doit être des-
tructif. Un descripteur est destructif s'il est impossible de reconstruire le signal
audio original à partir du descripteur [17]. Un tel destructeur n'est plus sujet
au copyright et peut donc être transféré en toute légalité, le rendant par exemple
utilisable dans une grande base de données sur un serveur centralisé et disponible
publiquement.
2.3.1 Extraction de descripteurs
Extraire des descripteurs audio se fait en sélectionnant des informations utiles
représentatives du contenu d'une piste audio. Le signal original est d'abord
segmenté en plus petits extraits, et les informations utiles sont calculées sur
base de ces petits extraits. Ces informations utiles ne contiennent que les données
importantes et les données inutiles sont ainsi éliminées. Le type de descripteurs
utilisés varie bien entendu d'une application à l'autre. Ainsi une application
dont l'objectif est de détecter des sons qui contiennent de la trompette ne va
pas utiliser les mêmes descripteurs qu'une application destinée à reconnaître une
mélodie chantonnée. Dans le premier cas, l'instrument est important quelle que
soit la mélodie tandis que dans le second cas, les notes jouées sont importantes,
quels que soient les instruments utilisés.
De nombreux descripteurs existent dans le domaine MIR. Certains sont des
descripteurs de bas niveau tandis que d'autres sont des descripteurs de plus
haut niveau. Les descripteurs de haut niveau sont parfois appelés descripteurs
humains et représentent le contenu d'un son d'une façon similaire à ce que ferait
un être humain. En revanche, les descripteurs de bas niveau décrivent un son
par des caractéristiques plus proches du signal audio. Parmi les descripteurs de
haut niveau, on trouve la tonalité, le tempo, le rythme, la mélodie, etc. Parmi
les descripteurs de bas niveau, on peut citer le taux de passage à zéro (zero
crossings rate), qui correspond au nombre de fois que le signal traverse l'axe du
temps, le changement d'amplitude, l'histogramme du signal, sa transformée de
CHAPITRE 2.
ÉTAT DE L'ART
17
Fourier, etc.
2.3.2 Descripteurs d'accords
Étant donné que nous désirons reconnaître des extraits musicaux joués à
l'aide d'accords, il semble naturel de tenter d'extraire les accords d'une pièce
musicale de façon à pouvoir comparer deux extraits ou deux pistes complètes. À
cette n, il est nécessaire de trouver des descripteurs permettant de représenter
des accords.
Lee [23] dénit un accord comme une suite de notes jouées simultanément.
Jouer un accord avec une guitare ou un autre instrument consiste à jouer simultanément plusieurs notes, en général trois ou plus. En règle générale, une suite
d'accords est une bonne représentation de signaux musicaux pour des applications telles que la segmentation de musique, l'identication de musique similaire
ou encore l'audio thumbnailing [23].
Le descripteur le plus utilisé pour la reconnaissance d'accords est le Pitch
Class Prole (PCP), parfois appelé chromagramme, introduit par Fusjishima en
1999 dans [13]. Un PCP est un vecteur de 12 valeurs qui représente l'intensité
relative de chaque demi-ton sur une échelle chromatique standard. Ainsi, le premier élément d'un vecteur PCP donne l'intensité de la note Do (C) au total
dans l'accord. Le PCP a l'avantage de classer chaque note dans une case de son
vecteur sans tenir compte de l'octave à laquelle est jouée une note. Donc, un
Do grave sera classé dans la même case qu'un Do aigu, et leurs énergies seront
additionnées. De ce fait, le PCP semble être un descripteur idéal pour représenter un accord musical. Pour calculer son descripteur, Fujushima commence par
transformer un fragment du son d'entrée en une transformée de Fourier discrète
(DFT), puis il applique un traitement permettant d'associer chaque fréquence
du spectre de Fourier à une case du vecteur PCP. Sur base de ce descripteur,
Fusjishima a développé un système de reconnaissance d'accords en temps réel en
utilisant un algorithme de pattern matching et des modèles d'accords binaires.
Fusjishima fut le premier à introduire un algorithme de reconnaissance d'accords. D'autres ont suivi. Lee [23] a introduit un nouveau vecteur appelé Pitch
Class Prole Amélioré (EPCP : Enhanced PCP). Pour ce faire, il a calculé le
spectre du produit harmonique du signal (HPS : Harmonic Product Spectrum)
à partir de la transformée de Fourier du signal d'entrée. Ensuite, il a appliqué un
algorithme au HPS an d'obtenir un vecteur de 12-éléments similaire au PCP
de Fujishima.
Gomez et Herrera [14] ont proposé un système qui extrait automatiquement
des métadonnées tonales, telles que la clé du morceau, la gamme, et de l'information rythmique directement à partir du chier audio. Dans leur travail, ils
calculent un vecteur d'attributs bas niveau : le HPCP (Harmonic Pitch Class
Prole). Ce HPCP est basé sur l'intensité de chaque fréquence associée à une
case d'un vecteur représentant une octave unique, ce qui est semblable au PCP
de Fujishima.
Seh et Ellis [26] ont proposé une méthode d'apprentissage statistique pour
CHAPITRE 2.
ÉTAT DE L'ART
18
réaliser un système de segmentation et de reconnaissance d'accords. Ils ont utilisé
les Modèles de Markov cachés (HMM : Hidden Markov Models) entraînés par
un algorithme de maximisation d'espérance (EM : Expectation Maximization).
Ils ont pour cela considéré les étiquettes des accords comme étant des valeurs
cachées dans l'algorithme EM.
2.4 Reconnaissance d'extraits musicaux
Pour reconnaître un extrait musical, il faut disposer d'une base de données
relativement conséquente et d'un moyen de retrouver l'extrait dans cette base
de données. Cette base de données peut être potentiellement énorme, et il faut
donc imaginer des techniques de recherche ecaces pour retrouver l'information
recherchée dans une telle masse de données.
La plupart des algorithmes mis en ÷uvre dans la littérature pour retrouver des extraits musicaux utilisent des techniques d'emprunte (ngerprinting).
Ces algorithmes ont principalement pour but de reconnaître de petits extraits
musicaux, éventuellement bruités et compressés.
Le système de reconnaissance le plus connu et le plus répandu est le logiciel
Shazam [27, 28], qui permet de reconnaître un extrait enregistré à l'aide d'un
téléphone portable. Le signal est donc fortement dégradé à cause de la mauvaise
qualité des micros de téléphones portables. Le signal est ensuite envoyé via le
réseau à un serveur central qui recherche une correspondance dans une base de
données de plusieurs millions de pistes. Le serveur renvoie alors les informations
relatives à la piste concernée au téléphone de l'utilisateur.
À cette n, une emprunte est calculée pour chaque piste de la base de données. Une telle emprunte doit être reproductible, et doit donc être identique quel
que soit l'environnement dans lequel elle est calculée. Ainsi, l'emprunte calculée
sur un extrait bruité doit correspondre à une emprunte calculée sur une piste
de la base de données. L'emprunte est calculée sur base d'un spectrogramme
d'une piste musicale. Certains pics du spectrogramme sont mis en évidence et
utilisés pour calculer une emprunte du morceau. Le système utilise ensuite un
algorithme basé sur une table de hachage pour retrouver une ou plusieurs correspondances. Si plusieurs correspondances sont trouvées, un traitement ultérieur
est appliqué an d'extraire la meilleure correspondance.
D'autres services similaires ont également été développés. En Espagne, Musiwave a développé un service similaire à Shazam permettant d'identier des
pistes musicales grâce à un algorithme développé pour Phillips par Haitsma et
Kalker [19]. Cet algorithme calcule l'emprunte d'une piste audio en découpant le
spectre en bandes de fréquences indépendantes. Une sous-emprunte est ensuite
calculée pour chaque bande fréquentielle et toutes les empruntes sont combinées
pour calculer une emprunte globale.
La plupart des méthodes existantes se basent directement sur le contenu
spectral du signal audio. D'autres recherches eectuées dans le domaines sont
décrites dans [4, 12, 21, 25].
CHAPITRE 2.
ÉTAT DE L'ART
19
À notre connaissance, il n'existe pas de système similaire à celui que nous
développons. Nous désirons reconnaître des extraits musicaux diérents de ceux
contenus dans une base de données. Notre objectif est ainsi d'identier des
informations de contenus, intrinsèques à une piste musicale tout en étant invariantes aux instruments utilisés, à la forme extérieure de ce morceau. Deux
morceaux joués par deux groupes diérents avec des instruments diérents devraient ainsi avoir la même représentation. Pour arriver à nos ns, nous avons
utilisé une description basée sur les accords contenus dans une piste. À cet eet,
notre algorithme est basé sur le descripteur PCP proposé par Fujishima [13].
Sur base de notre description, nous avons développé notre propre algorithme de
reconnaissance, diérent des techniques citées ci-dessus. En eet, les méthodes
développées à ce jour utilisent principalement des empruntes, et par conséquent,
deux pistes diérentes (instruments diérents, arrangement diérent) ne sont
pas représentées de la même façon. Dès lors, utiliser ces méthodes ne nous est
pas d'un grand intérêt et nous avons orienté nos recherches vers des techniques
diérentes.
CHAPITRE
3
Reconnaissance d'accords
Concevoir un système de reconnaissance de musique conduit inévitablement
à la notion de description d'une pièce musicale. Quelles sont les caractéristiques
d'un morceau, quelles sont les informations les plus pertinentes, comment décrire
nalement un morceau, ou un extrait musical an de pouvoir par la suite le
reconnaître de façon adéquate ? Tenter de comparer deux sons bruts directement relève de l'impossible, et il devient alors nécessaire d'extraire des données
décrivant au mieux les sons, et de façon compacte, an de pouvoir concevoir un
système performant.
Nous avons choisi d'utiliser un descripteur basé sur l'harmonie d'une piste,
plus précisément sur ses accords. Pour vérier la robustesse du descripteur, nous
avons développé un système de reconnaissance d'accords capable d'identier
des accords joués par plusieurs instruments. Ce chapitre décrit les étapes de
la conception de l'algorithme d'identication d'accords ainsi que les résultats
obtenus.
3.1 Pourquoi reconnaître des accords ?
Une pièce musicale comporte quatre composantes principales : le rythme, la
mélodie, le timbre, et l'harmonie. Le rythme est ce qui détermine la durée des
notes les unes par rapport aux autres. Il est quantié par une pulsation qui
détermine des temps et qui permet de compter ainsi les diérentes gures de
notes constituant le morceau. La mélodie désigne la dimension qui prend en
compte les hauteurs émises par une source, individuelle ou collective, instrumentale ou vocale, au sein d'une réalisation musicale quelconque. La mélodie fait se
20
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
21
succéder des sons de fréquence diérente et par conséquent, elle peut être considérée comme une succession d'intervalles. Le timbre d'un son est en quelque
sorte la couleur propre de ce son et varie en fonction de la source sonore. D'un
point de vue acoustique, le timbre est une notion très complexe qui dépend de
la corrélation entre la fréquence fondamentale et les harmoniques. Son étude dépasse le cadre de cet ouvrage, et nous ne le détaillerons pas ici. Enn, l'harmonie
relève de l'utilisation délibérée de fréquences simultanées, dans le but d'apporter
du relief et de la profondeur au chant ou jeu instrumental. Elle représente donc
l'aspect vertical de la musique alors que la mélodie représente plutôt l'aspect
horizontal de la musique.
Il est dicile de concevoir un système capable d'extraire ces quatre composantes, en particulier pour des signaux complexes constitués de plusieurs
sources sonores. L'oreille humaine est capable d'extraire des données riches et
contenant énormément d'informations à partir d'un signal audio complexe. Malheureusement, il n'en est pas de même pour un système articiel qui tente de
modéliser ce processus naturel à l'aide d'ordinateurs. Il est possible d'extraire
la mélodie de pièces musicales principalement monophoniques, ou constituées
d'une source sonore unique, tout comme il est possible pour des signaux relativement simples d'extraire de l'information rythmique. Toutefois, pour des
signaux complexes, tels que des enregistrements de groupes ou d'instruments
simultanés, cette recherche d'information pertinente devient rapidement compliquée.
Extraire une mélodie unique est une tâche complexe. Or la quatrième composante d'une pièce musicale, l'harmonie, décrit la ou les notes jouées simultanément à un instant donné. En réalité, l'harmonie est un élément fondamental de
la perception d'un morceau de musique et il serait utile d'identier un ensemble de caractéristiques décrivant cet aspect de la musique. L'élément concret se
rapportant le plus à l'harmonie est sans aucun doute l'accord. Un accord peut
être déni comme un ensemble de tonalités jouées simultanément [23], ou encore comme une sonorité simultanée d'un groupe de notes musicales, en général
trois ou plus
[5]. Analyser la structure harmonique totale d'un morceau se fait
généralement en commençant par extraire la liste des accords constituant la
pièce musicale. Or c'est une tâche dicile, même pour des musiciens expérimentés disposant de la partition ! Avoir un système automatique permettant
d'extraire les accords d'un morceau peut donc s'avérer très utile pour l'analyse
harmonique de pièces musicales. Une fois la structure harmonique connue, on
peut ensuite l'utiliser pour faire une analyse plus pointue d'une pièce. Un accord
est également une bonne représentation de niveau intermédiaire pour d'autres
applications, telles que la segmentation d'un morceau, la détection de morceaux
similaires, ou la représentation de morceaux dans une base de données (audio
thumbnailing) [23].
Pour développer un système de reconnaissance d'accords musicaux, deux éléments sont essentiels. Dans un premier temps, il faut pouvoir extraire à partir
d'un son brut, des données permettant d'identier un accord. On parle de descripteur. Ensuite, il est nécessaire de disposer d'un algorithme permettant de
reconnaître l'accord sur base de ce descripteur. Ce chapitre présente un système de reconnaissance d'accords, permettant d'identier dix accords extrêmement utilisés dans des pièces musicales d'Europe Occidentale. Il s'appuie sur
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
22
un descripteur universellement utilisé dans les applications de reconnaissance
d'accords, à savoir le Pitch Class Prole (PCP) introduit par Fujishima [13] en
1999.
Pour identier des accords sur base du PCP, plusieurs méthodes ont été
expérimentées, allant d'une application très naïve de la dénition d'un accord
jusqu'à l'utilisation d'algorithmes complexes tels que les réseaux de neurones.
Il s'est avéré qu'une base de données d'accords réels permet de produire d'excellents résultats. Nous décrivons dans ce chapitre la conception et l'utilisation
d'une telle base de données.
Ce chapitre est organisé comme suit. La première partie traite du descripteur PCP et la façon dont nous l'avons utilisé pour représenter un accord. La
section suivante présente brièvement les diérentes méthodes de reconnaissance
utilisées, ainsi que leurs avantages et inconvénients. Cette section mènera au
choix de l'algorithme nal choisi. La troisième partie présente en détail la base
de données d'accords créée pour les besoins de l'algorithme choisi. Puis, nous
expliquerons les diverses expériences réalisées et nous démontrerons que le descripteur utilisé, couplé à une base de données d'accords réels, permet de reconnaître des accords jouées par plusieurs instruments. Enn, la dernière section
proposera une conclusion au chapitre.
3.2 Descripteur d'accord : le Pitch Class Prole
Le Pitch Class Prole (PCP) est un descripteur audio introduit par Fujishima [13] en 1999. L'approche qu'il a utilisée était assez novatrice par rapport
à ce qui était traditionnellement utilisé à cette époque. En eet, on tentait alors
principalement d'extraire les notes individuelles d'un son et d'essayer d'identier
des accords sur base des notes individuelles. L'algorithme imaginé par Fujishima
permet de représenter un accord par 12 valeurs correspondant aux 12 demi-tons
d'une gamme chromatique. Ainsi, pour une gamme standard commençant par
un do, on obtient une valeur pour les 12 notes suivantes :
c, c#, d, d#, e, f, f #, g, g#, a, a#, b
De plus, le PCP permet de classer les notes reconnues indépendamment de
l'octave à laquelle ces notes sont jouées. Ainsi, si un guitariste joue un accord
de la mineur en bout de manche, il joue en réalité simultanément deux octaves
de la note la (a). Le PCP va cependant classer les deux notes détectées dans la
même case correspondant à la note la. Ainsi, on se retrouve avec un descripteur
totalement indépendant de l'octave à laquelle est joué l'accord. Dès lors, un
accord joué en bout de manche, et le même accord joué ailleurs sur le manche
seront représentés d'une manière similaire. Formalisons cette notion de PCP.
CHAPITRE 3.
23
RECONNAISSANCE D'ACCORDS
C Maj chord
0.5
0.45
0.4
0.35
energy
0.3
0.25
0.2
0.15
0.1
0.05
0
c
c#
d
d#
e
f
f#
notes
g
g#
a
a#
b
Figure 3.1 Représentation PCP d'un accord de do majeur joué à la guitare.
On voit nettement les trois pics principaux correspondant aux trois notes de
l'accord, à savoir do (c), mi (e), sol (g).
3.2.1 Dénition
Un PCP est un vecteur à 12 dimensions qui représente l'énergie relative de
chaque demi-ton dans une gamme chromatique. Entre d'autres termes, chaque
note a son énergie classée dans une des douze cases du vecteur PCP. Ainsi, le
premier élément du vecteur montre l'énergie totale de la note do pour le son
testé. Si un accord contient plusieurs fois la note do, les énergies de chaque do
s'additionnent dans la première case du tableau. Le PCP semble donc adéquat
pour représenter un accord, quelle que soit la tonalité choisie. La gure 3.1
montre la représentation PCP d'un accord de do majeur joué à la guitare.
Pour obtenir un vecteur PCP à 12 dimensions, la méthode habituellement
implémentée dans la littérature est la suivante. L'algorithme commence par appliquer à un fragment du son d'entrée une transformée de Fourier discrète (DFT,
pour Discrete Fourier Transform) pour obtenir ainsi un spectre de fréquences
X(.). À partir de ce spectre, l'algorithme génère le vecteur PCP
∗
Soit P CP (p) un vecteur dénit pour p = 0, 1, . . . , 11 tel que
X
P CP ∗ (p) =
||X(l)||2 δ(M (l), p)
comme suit.
(3.1)
l
où
δ(., .)
dénote le symbole de Kronecker.
M (l)
est une table qui fait cor-
respondre un index du spectre de Fourier à un index du vecteur PCP, compris
entre 0 et 11 (12 valeurs au total). Elle peut être dénie comme suit.
(
−1
l=0
M (l) =
l
round(12 log2 ((fs . N )/fref )) mod 12 l = 1, . . . ,
où
fref
est la fréquence de référence correspondant à la case
le nombre d'échantillons dans le signal d'entrée, et
fs
N
2
−1
(3.2)
P CP ∗ (0), N
est
est la fréquence d'échan-
tillonnage. Par exemple, pour une gamme standard commençant par un do,
CHAPITRE 3.
24
RECONNAISSANCE D'ACCORDS
la fréquence de référence serait
130, 80 Hz ,
correspondant au do grave de la
gamme. Bien entendu, on peut choisir de représenter un accord à l'aide d'une
autre gamme, par exemple une gamme standard décalée d'une note, qui commencerait alors par un ré, correspondant à la fréquence
présent que
P CP ∗ (p)
147 Hz .
Notons dès à
sera par la suite légèrement modié pour s'adapter à nos
besoins spéciques.
3.2.2 Normalisation
An de pouvoir comparer des vecteurs PCP entre eux, il est nécessaire de
les normaliser. En eet, un accord peut être joué plus ou moins fort, et dès
lors, l'échelle de l'énergie peut varier d'un PCP à un autre. Pour normaliser les
PCPs, nous imposons une énergie totale de 1 pour un PCP donné. Pour l'obtenir
à partir du PCP original, nous divisons l'énergie de chaque note du vecteur par
l'énergie totale du vecteur original. L'opération eectuée est la suivante.
P CP ∗ (p)
P CP (p) = P11
∗
j=0 P CP (j)
où
p
(3.3)
est l'index de la note que l'on cherche à normaliser.
3.2.3 Adaptation du PCP
Le PCP semble être un descripteur intuitif pour un musicien car il met en
évidence les notes principales d'un accord. Les résultats obtenus en pratique
avec le PCP original de Fujishima ont toutefois révélé une faille importante
avec notre système. En eet, notre algorithme de reconnaissance se base sur
une base de données d'accords réels (voir Section 4.3) enregistrés à la guitare.
Ainsi, pour reconnaître de nouveaux accords joués à la guitare, le système fonctionnait relativement bien. Toutefois, en essayant de reconnaître des accords
joués par d'autres instruments, nous avons constaté une forte dégradation des
résultats. An de comprendre cette perte de performances, nous avons réalisé
une expérience consistant à faire varier le paramètre
E
de l'équation 3.4. La
gure 3.2 montre les résultats de ces variations pour quatre instruments.
voit nettement que la valeur idéale pour ce facteur
E
On
se situe dans un voisinage
de 1. En prenant la moyenne des minima pour chaque instrument, on trouve une
valeur idéale de
0, 85. Précisons que cette expérience a été réalisée avec plusieurs
algorithmes de reconnaissance (voir Section 3.3).
P CP ∗ (p) =
X
l
||X(l)||E δ(M (l), p)
(3.4)
La gure 3.3 montre la représentation d'un accord de do majeur à l'aide du
PCP amélioré. On constate une quantité plus importante de bruit. L'accord est
moins net que celui de la gure 3.1. On peut donc en conclure qu'une certaine
CHAPITRE 3.
Guitar
classification error
80
60
40
20
Piano
80
60
40
20
0
3 2 1 0 1 2 3 4 5 6
alpha
3 2 1 0 1 2 3 4 5 6
alpha
Violin
100
classification error
100
90
80
70
60
50
40
30
20
10
Accordion
100
classification error
classification error
100
0
25
RECONNAISSANCE D'ACCORDS
3 2 1 0 1 2 3 4 5 6
alpha
80
60
40
20
0
3 2 1 0 1 2 3 4 5 6
alpha
Figure 3.2 Évolution de l'erreur de classication de l'accord lorsque la valeur
du paramètre
E
de l'équation 3.4 évolue. La valeur idéale se situe au voisinage
de 1.
7
3
x 10
2.5
Magnitude
2
1.5
1
0.5
0
c
c#
d
d#
e
f
f#
g
Semi−tones
g#
a
a#
b
Figure 3.3 Représentation d'un accord de Do Majeur (CMaj) par un PCP
modié. Par rapport à la Figure 3.1, on constate une quantité plus importante
de bruit.
CHAPITRE 3.
26
RECONNAISSANCE D'ACCORDS
quantité de bruit est importante pour obtenir une description idéale d'un accord,
indépendante de l'instrument utilisé.
Pour éviter un calcul de puissance supplémentaire, nous avons choisi de xer
la valeur de l'exposant à 1, proche de la valeur idéale de
0, 85
trouvée expéri-
mentalement. Nous utilisons donc en réalité une version adaptée du PCP, qui
peut être dénie comme suit :
P CP ∗ (p) =
X
l
où
M (l)
||X(l)||δ(M (l), p)
(3.5)
peut être dénie par l'équation 3.2. La suite de ce document fera
systématiquement référence à ce PCP modié.
3.3 Algorithmes de reconnaissance
Dans l'introduction, nous avons cité deux éléments essentiels pour la réalisation d'un système de reconnaissance d'accords. Le premier a été décrit dans
la section précédente : un descripteur d'accord. À cet eet, le PCP semble correspondre à nos besoins. Reste encore à déterminer une fonction permettant
d'identier un accord sur base du PCP. On cherche donc à établir une fonction
f ()
prenant en entrée un vecteur PCP de 12 éléments et produisant en sortie
une chaîne permettant d'identier l'accord.
Parmi les nombreux accords existant, nous en avons sélectionné dix très
utilisé dans la musique contemporaine d'Europe Occidentale. L'algorithme sera
donc capable d'identier ces dix accords, mais pour des accords diérents, le résultat sera diérent selon l'algorithme utilisé. Soit le système renvoie une valeur
spéciant que l'accord n'a pas été reconnu, soit il renvoie l'accord parmi les dix
détectables qui est le plus proche de celui que l'on tente de reconnaître. Dans le
cadre de la reconnaissance d'extraits musicaux, un tel comportement est acceptable car des accords diérents de ceux qui sont reconnaissables seront toujours
identiés de la même façon.
Les dix accords choisis sont les suivants.
A, Am, Bm, C, D, Dm, E, Em, F, G
Avec la représentation française des notes, cela correspond à
La, La min, Si min, Do, Ré, Ré min, M i, M i min, F a, Sol
L'objectif est donc de déduire une fonction
f (vecteur_pcp) = N
qui renvoie un entier
N
(3.6)
compris entre 0 et 9 correspondant à l'un des dix ac-
cords ci-dessus. Plusieurs techniques ont été considérées. Cette section présente
les divers tests eectués avec ces diérentes techniques ainsi que les résultats
obtenus.
CHAPITRE 3.
a
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
27
RECONNAISSANCE D'ACCORDS
am
c c# d d# e f f# g g# a a# b
bm
c c# d d# e f f# g g# a a# b
d
c c# d d# e f f# g g# a a# b
e
c c# d d# e f f# g g# a a# b
f
c c# d d# e f f# g g# a a# b
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
c c# d d# e f f# g g# a a# b
c
c c# d d# e f f# g g# a a# b
dm
c c# d d# e f f# g g# a a# b
em
c c# d d# e f f# g g# a a# b
g
c c# d d# e f f# g g# a a# b
Figure 3.4 Représentations PCP idéales de 10 accords.
3.3.1 Méthode naïve : Dénition d'un accord
Une première expérience a été d'implémenter une méthode naïve appliquant
simplement la dénition d'un accord. Un musicien est en général capable de
reconnaître un accord à l'aide des notes le constituant. Or le PCP permet d'isoler
les pics correspondant aux notes de l'accord, ce qui en fait un descripteur intuitif
pour un musicien. Dès lors, nous avons considéré des vecteurs PCPs articiels
idéaux, ne contenant que trois pics correspondant exactement aux trois notes
constituant l'accord. La gure 3.4 montre les représentations idéales des dix
accords cités plus haut.
La première expérience consistait à tenter de reconnaître un accord à l'aide
d'une simple comparaison d'histogrammes en utilisant un algorithme de type
1-NN (Nearest Neighbor). L'algorithme prend en entrée un vecteur PCP arbitraire, le normalise, puis le compare à la liste prédénie des 10 accords idéaux.
L'algorithme classie ensuite l'accord en un de ces dix accords en choisissant
l'histogramme le plus proche. Comme mesure de distance, nous avons utilisé la
distance de Bhattacharyya [8].
La distance de Bhattacharyya est une mesure de la similarité de deux distributions de probabilités discrètes. Elle est reliée au coecient de Bhattacharyya,
qui est une mesure statistique du recouvrement de deux échantillons. C'est une
mesure couramment utilisée en classication, notamment pour des problèmes
de vision par ordinateur. Pour deux distributions de probabilités discrètes
q
p
et
dénies sur le même espace de probabilités, la distance de Bhattacharyya est
calculée par :
DB (p, q) = −ln(BC (p, q))
(3.7)
CHAPITRE 3.
28
RECONNAISSANCE D'ACCORDS
où
BC (p, q) =
Xp
p(x)q(x)
(3.8)
x
Il s'est avéré que cette méthode ne produit pas de bons résultats. Nous
renvoyons le lecteur à la Section 3.5 pour de plus amples détails.
Nous avons alors décidé de nous tourner vers des techniques d'apprentissage
automatique an de calculer un modèle permettant de reconnaître un accord
sur base de son vecteur PCP.
3.3.2 Apprentissage automatique
Pour obtenir des résultats plus robustes, nous avons orienté nos recherches
vers l'utilisation d'algorithmes d'apprentissage automatiques. Le lecteur non
familiarisé avec ces notions d'apprentissage automatique peut se référer à l'Annexe B où l'on donne une dénition de l'apprentissage automatique, et où sont
décrits les algorithmes utilisés.
Dans le domaine musical, l'apprentissage est utilisé pour faire de la classication de musique par style, de l'organisation de bases de données, et de la
génération de musique, etc. Dans le cadre de notre recherche, nous avons choisi
d'adopter une technique d'apprentissage pour reconnaître des accords. En eet,
la plupart des méthodes décrites dans le Chapitre 2 n'utilisent pas ce type de
méthodes et se basent sur des algorithmes de pattern matching et des heuristiques pour retrouver des accords de façon optimale. Nous avons donc choisi
d'exploiter une approche assez novatrice, utilisant une base de données d'accords réels et un algorithme exploitant ces données. Nous avons donc dû utiliser
une base de données d'accords réels pour réaliser un apprentissage supervisé.
Une telle base de données n'existe pas à notre connaissance et par conséquent,
nous avons créé notre propre base de données. Elle sera décrite dans la Section 4.3. Plusieurs méthodes d'apprentissages ont été expérimentées : arbres de
décisions, random forests (forêts aléatoires), réseaux de neurones, plus proches
voisins. Parmi celles-ci, deux ont été retenues pour leurs résultats concluants.
Il s'agit des réseaux de neurones et d'une méthode de type plus proches voisins
(KNN = K Nearest Neighbors). Nous décrivons ci-dessous de quelle façon nous
avons exploité ces deux algorithmes. Pour une explication théorique de ces algorithmes, nous renvoyons le lecteur à l'Annexe B.
3.3.2.1 Réseau de neurones
Pour réaliser notre système de reconnaissance d'accords, nous avons utilisé
un réseau de neurones de type feed-forward network. L'objectif est d'entraîner
un modèle à l'aide d'un tel réseau an de pouvoir reconnaître des accords.
Le réseau est constitué de trois couches et fonctionne comme suit. La première couche contient douze neurones correspondant aux douze valeurs d'un
vecteur PCP. Ainsi, les paramètres d'entrée du réseau de neurones sont les
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
Paramètre
Valeur
Nombre de neurones
35
Nombre de couches
1
Taux d'apprentissage
0.001
Momentum
0.25
29
Table 3.1 Paramètres naux du réseau de neurones utilisé pour la reconnais-
sance d'accords.
intensités des notes constituant l'accord. Tous les neurones de cette première
couche sont connectés à une couche intermédiaire, contenant 35 neurones. La
couche d'entrée propage ainsi toutes ses valeurs à tous les neurones de la couche
intermédiaire. Enn, la dernière couche contient dix neurones qui correspondent
aux dix accords pouvant être reconnus par notre système.
Notre système fonctionne donc comme suit : une description PCP est extraite
à partir d'un chier audio brut. Une fois calculée, elle est envoyée au réseau de
neurones sous forme d'un vecteur de douze valeurs réelles. Le réseau propage
alors ces douze valeurs dans tous ses neurones et un neurone particulier de
la couche de sortie est activé. Étant donné qu'il y a autant de neurones dans
la couche de sortie que d'accords pouvant être détectés, on identie aisément
l'accord joué.
Bien entendu, il ne sut pas de construire un simple réseau avec des valeurs
par défaut pour obtenir de tels résultats. Un algorithme d'apprentissage doit en
eet apprendre à reconnaître des accords et doit pour cela être entraîné de
façon adéquate. Ces techniques d'entraînement sont décrites dans l'Annexe B.
L'architecture de notre réseau a été déterminée après plusieurs étapes de
validation. En eet, nous avons fait évoluer certains paramètres du réseau de
neurones et étudié l'impact de la variation des paramètres sur les résultats en
terme d'erreur de classication. Les paramètres que nous avons fait varier sont
les suivants et sont décrits dans l'Annexe B :
Le nombre de neurones dans la / les couches intermédiaires ;
Le nombre de couches intermédiaires ;
Le taux d'apprentissage ;
Le momentum.
Le Tableau 3.1 donne les valeurs des quatre paramètres du réseau utilisé
pour la reconnaissance d'accords.
L'utilisation d'un réseau de neurones articiels pour de la reconnaissance
d'accords s'est avéré être une technique produisant d'excellents résultats. La
Section 3.5 détaillera ces résultats.
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
30
3.3.2.2 Plus proches voisins (KNN)
Un réseau de neurones articiels permet d'établir des modèles performants,
mais présente l'inconvénient d'être particulièrement lent et consommateur en
termes de ressources. An de concevoir un système plus ecace, nous avons utilisé un autre algorithme d'apprentissage, appelé KNN pour K Nearest Neighbors
(K plus proches voisins). Cet algorithme est présenté brièvement en Annexe B.
Dans la Section 3.3.1, nous avions détaillé notre première expérience en utilisant un algorithme 1-NN avec une base de données d'accords idéaux. Les résultats n'étant pas concluants, nous avons décidé d'utiliser une base de données
d'accords réels (voir Section 4.3). Nous avons donc choisi d'appliquer le même
algorithme 1-NN non pas avec une base de données idéale, mais avec des accords
réels. Les résultats ont été nettement plus concluants et nous avons obtenu des
performances similaires aux réseaux de neurones (nous renvoyons le lecteur à la
Section 3.5 pour les détails).
An d'encore améliorer le temps d'exécution, nous avons restreint la taille
de la base de données en calculant un accord modèle pour chaque accord devant
être reconnu. Cet accord modèle est obtenu simplement en moyennant tous les
accords de la base de données correspondant à cette classe. Ainsi, pour 10 accords devant être reconnus, nous obtenons 10 accords centroïdes qui reètent la
réalité. La Figure 3.5 montre les dix accords modèles calculés. Ils sont nettement
plus réalistes que les accords idéaux de la Figure 3.4. Avec ces modèles, l'algorithme est nettement plus rapide puisqu'il n'a que dix comparaisons à réaliser.
Il renvoie alors l'accord centroïde le plus proche de l'accord testé. Un résultat
est produit instantanément. Les résultats sont présentés dans la Section 3.5.
3.4 Base de données d'accords
Lorsque l'on utilise une méthode d'apprentissage automatique, on se retrouve
confronté à un problème de base de données. En eet, il n'est pas toujours
évident de dénir les données utilisées pour l'apprentissage d'un modèle. La
contrainte principale, pour un système de reconnaissance d'accords utilisant
de telles techniques, est de disposer d'un ensemble d'apprentissage contenant
susamment de données pour construire un modèle.
La plupart des travaux relatifs à la reconnaissance d'accord mentionnés dans
l'état de l'art (voir Chapitre 2) n'utilisent pas d'apprentissage automatique. De
ce fait, il n'existe pas de base données d'accords (à notre connaissance). Pour
cette raison, il nous a été nécessaire de créer notre propre base de données. Cette
dernière est constituée de chiers audio enregistrés au format WAV, échantillonnés à
44100 Hz , chaque échantillon étant quantié par 16 bits de données. Nous
fournissons également dans la base de données des vecteurs PCP pré-calculés
pour chaque accord.
Nous rappelons que le système est conçu pour reconnaître dix accords. Dès
lors, la base de données contient un ensemble d'exemplaires des dix accords
mentionnés dans la Section 3.3. En pratique, chaque accord est représenté par
CHAPITRE 3.
a
0.2
0.1
0
0.2
0.1
0
0.4
0.2
0
0.2
0.1
0
0.2
0.1
0
31
RECONNAISSANCE D'ACCORDS
c c# d d# e f f# g g# a a# b
bm
c c# d d# e f f# g g# a a# b
d
c c# d d# e f f# g g# a a# b
e
c c# d d# e f f# g g# a a# b
f
c c# d d# e f f# g g# a a# b
am
0.2
0.1
0
0.2
0.1
0
0.2
0.1
0
0.2
0.1
0
0.2
0.1
0
c c# d d# e f f# g g# a a# b
c
c c# d d# e f f# g g# a a# b
dm
c c# d d# e f f# g g# a a# b
em
c c# d d# e f f# g g# a a# b
g
c c# d d# e f f# g g# a a# b
Figure 3.5 Vecteurs PCP centroïdes calculés en moyennant tous les échan-
tillons réels disponibles. L'algorithme compare alors un nouveau vecteur PCP à
ces dix modèles et renvoie l'accord le plus proche.
un vecteur PCP le représentant. Tous les vecteurs sont stockés dans un chier
unique organisé comme suit. Chaque ligne contient un vecteur PCP normalisé
et un entier entre 0 et 9 identiant l'accord. Une ligne de ce chier a la forme
suivante.
0.04, 0.09, 0.18, 0.05, 0.12, 0.04, 0.14, 0.04, 0.03, 0.18, 0.04, 0.05, 4
Le dernier élément correspond à la classe de l'accord (l'accord Ré Majeur
dans cet exemple).
Concentrons nous à présent sur le contexte de la base de données. L'objectif
est de valider la base de données et de s'en servir pour tester l'algorithme sur
des accords acquis dans un contexte diérent. À cet eet, nous avons divisé la
base de données en deux sous-ensembles. Le premier contient un grand nombre
d'accords enregistrés à la guitare, tandis que le second contient un plus petit
nombre d'accords enregistrés à l'aide de quatre instruments diérents : une
guitare, un piano, un violon et un accordéon. Il y a donc deux façons d'utiliser
la base de données : faire de la validation croisée sur le premier sous-ensemble,
et utiliser le premier ensemble comme ensemble d'apprentissage et le second
comme ensemble de test. Décrivons ces deux groupes d'accords.
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
32
Figure 3.6 Chambre anéchoïque
3.4.1 Premier ensemble
Les enregistrements de la base de données sont produits à l'aide d'une guitare, qui est sans aucun doute un des instruments les plus répandus en Europe
Occidentale ainsi qu'en Amérique du Nord. Les accords de ce premier sousensemble ont été acquis dans les conditions suivantes. Les échantillons ont été
enregistrés dans deux environnement diérents.
La moitié des accords a été enregistrée en chambre anéchoïque à l'aide
d'un micro à large bande. Une chambre anéchoïque ou chambre sourde est une
salle d'expérimentation dont les parois absorbent les ondes sonores ou électromagnétiques, ne provoquant ainsi pas d'écho pouvant perturber les mesures.
Habituellement, de telles chambres sont utilisées pour mesurer des ondes acoustiques ou électromagnétiques dans des conditions de champ libre, c'est-à-dire en
l'absence de composantes ayant subi une réverbération sur les parois. La chambre utilisée est un local aux parois recouvertes de matériaux absorbants les ondes
sonores. La gure 3.6 montre un exemple de matériau recouvrant une chambre
anéchoïque acoustique. Les accords enregistrés dans de telles conditions sont
ainsi parfaitement purs.
La seconde moitié des accords a été enregistrée dans un environnement
bruité, avec un microphone à condensateur classique. Ces accords ont été enregistrés dans une chambre et une cuisine, deux environnements plus classiques.
Il nous a en eet semblé plus pertinent d'inclure des accords enregistrés dans
les deux environnements car cela permet de mieux reéter la réalité. En effet, s'il est vrai que de nombreux enregistrements sont eectués dans un milieu
professionnel, en studio d'enregistrement, la majorité de la population utilisant
notre système le ferait probablement à domicile, et donc dans un environnement
plus bruité. De plus, un ensemble non négligeable de CD sont enregistrés dans
des conditions live (en concert). Dans la Section 3.5, nous démontrons que le
système produit de meilleurs résultats en utilisant une base de données contenant un mélange d'échantillons bruités et non bruités. La gure 3.7 montre
les représentations PCP d'un accord de Ré Majeur (D) joué en chambre sourde
et en environnement bruité. Étant donné que de nombreux morceaux musicaux
sont joués en milieu bruité, il parait logique d'inclure des accords bruités dans
la base de données.
CHAPITRE 3.
33
RECONNAISSANCE D'ACCORDS
0.35
0.25
0.3
0.2
0.15
0.2
energy
energy
0.25
0.15
0.1
0.1
0.05
0.05
0
c
c#
d
d#
e
f
f#
semi−tones
g
g#
a
a#
b
(a)
0
c
c#
d
d#
e
f
f#
semi−tones
g
g#
a
a#
b
(b)
Figure 3.7: Représentations d'un accord de Ré Majeur (D) enregistré avec la
même guitare dans (a) une chambre anéchoïque, et (b) une pièce bruitée. On
remarque que les trois demi-tons principaux sont toujours bien visibles dans (b).
Pour chaque accord, 100 échantillons sont enregistrés en chambre anéchoïque,
et 100 échantillons sont enregistrés en milieu bruité. Pour chacun de ces deux
sous-ensembles, les accords sont enregistrés à l'aide de quatre guitares différentes : une guitare classique ayant des cordes en nylon et trois guitares
acoustiques produisant trois sons diérents. Ce choix d'utiliser plusieurs types
de guitares se justie par le nombre important de sons de guitare existants. Dès
lors, il semble logique d'inclure dans la base de données des sons diérents, an
d'améliorer la abilité du système ainsi que son champ d'application.
En conclusion, le premier sous-ensemble de la base de données est organisé
comme suit. Il y a 2000 échantillons au total, répartis parmi 10 accords. Chaque
accord spécique est enregistré 200 fois, 100 fois en chambre anéchoïque et
100 fois en environnement bruité. Dans chacun de ces deux ensembles de 100
échantillons, les accords sont encore séparés en quatre groupes de 25 accords,
chaque groupe étant enregistré à l'aide d'une guitare diérente.
3.4.2 Deuxième ensemble
Le deuxième ensemble a été créé dans le but de fournir un ensemble de test
indépendant de la base de données d'apprentissage. Par conséquent, il est de
taille plus réduite. Cet ensemble est constitué d'accords joués par quatre instruments diérents : une guitare, un piano, un violon ainsi qu'un accordéon. Ces
quatre instruments ont été sélectionnés pour leur aptitude à jouer des accords.
De plus, ces instruments sont largement utilisés dans la culture Européenne occidentale. Cette petite base de données n'est donc utilisée qu'à des ns de tests,
et ne doit être en aucun cas utilisée pour entraîner un modèle. Elle contient en
eet trop peu d'informations pour produire un modèle performant.
L'ensemble de test contient 100 enregistrements pour chaque instrument.
Ces échantillons sont distribués de façon égale parmi les dix accords mentionnés
précédemment. Dès lors, il y a dix enregistrements par accord pour chaque
instrument.
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
34
Dans la section suivante, nous présentons les expériences réalisées à l'aide de
notre base de données d'accords. Ces résultats permettent de justier le choix
des accords de la base données. Nous détaillons également les résultats de la
validation de l'ensemble d'apprentissage.
3.5 Expériences et Résultats
Plusieurs expériences ont été réalisées dans le but de vérier la robustesse
de notre système de reconnaissance d'accords. Ces expériences ont pour but de
clarier certains points importants :
Nous voulons vérier si une application naïve de la dénition d'un accord
est susante pour concevoir un système able.
Comment construire l'ensemble d'apprentissage ? Doit-on inclure des enregistrements non bruités, bruités, ou les deux types d'enregistrements ?
Il est également nécessaire d'évaluer les performances de l'algorithme d'apprentissage avec notre base de données.
Nous voulons aussi tester la abilité de notre système avec divers instruments.
Comment se comporte le système lorsqu'il s'agit de reconnaître tous les
accords d'un morceau de durée plus longue ? Est-il able ?
Enn, nous aimerions évaluer les performances algorithmiques du système.
3.5.1 Application naïve de la dénition d'un accord
Dans la première version de notre classicateur d'accords, nous avons créé un
vecteur PCP articiel et idéal pour chacun des dix accords que le système doit
être capable de reconnaître (voir Figure 3.4). Ensuite, en utilisant la distance de
Bhattacharyya [8], nous avons appliqué un algorithme de plus proches voisins
(1-NN) sur le second sous-ensemble de notre base de données. Le Tableau 3.2
nous montre les erreurs de classications pour les quatre instruments testés. On
constate des taux d'erreurs particulièrement élevés. Les résultats obtenus pour
la guitare sont relativement satisfaisants mais les taux d'erreurs obtenus pour
les autres instruments sont insatisfaisants. La Figure 3.8 montre une matrice
de confusion résultant de l'application de l'algorithme naïf à l'ensemble de la
base de données d'accords réels. On constate un taux d'erreur important. La
conclusion de cette expérience parait évidente. Une base de données articielle
d'accords idéaux ne convient pas pour faire de la reconnaissance d'accords. Un
apprentissage basé sur des échantillons réels est nécessaire pour atteindre le
niveau de performance désiré.
Si l'on compare les vecteurs PCP des accords idéaux considérés dans cette
expérience avec les vecteurs PCP d'accords originaux, on distingue une différence importante : les accords réels sont nettement plus bruités que les accords
idéaux. Une quantité de bruit semble donc clairement nécessaire pour approcher
au mieux des accords réels de façon articielle. Sur la Figure 3.8, on remarque
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
Instrument
35
Erreur de classication
Guitare
8.0 %
Piano
20.0 %
Violon
19.0 %
Accordéon
32.0 %
Table 3.2 Erreurs de classication pour une méthode naïve
Figure 3.8 Matrice de confusion pour l'ensemble de la base de données en
utilisant une méthode de reconnaissance naïve (1-NN) basée sur des accords
idéaux.
que la classe G (Sol) est étrangement reconnue en majorité. La raison de ce
phénomène n'est pas claire, et nous ne voyons pas d'explication à ce résultat.
3.5.2 Détermination de l'ensemble d'apprentissage optimal
Dans la Section 4.3, nous avons détaillé la création d'une base de données
contenant des accords de guitare enregistrés dans deux types d'environnements :
bruité et non bruité. En eet, il parait plus réaliste d'intégrer des accords d'environnements diérents, sachant que la plupart des utilisateurs n'auront pas
accès à une chambre sourde. Toutefois, cette justication seule n'est pas sufsante. Nous avons eectué six expériences pour déterminer la meilleure des trois
congurations suivantes :
un ensemble d'apprentissage contenant uniquement des accords non bruités,
un ensemble d'apprentissage contenant uniquement des accords bruités,
et un ensemble d'apprentissage contenant les deux types d'accords.
CHAPITRE 3.
36
RECONNAISSANCE D'ACCORDS
TS / LS
Non bruité
Bruité
Mixte
Non bruité
4.0 %
5.0 %
4.0 %
Bruité
11.7 %
6.0 %
7.3 %
Table 3.3 Résultats de la validation en utilisant des ensembles d'apprentis-
sage et de test bruités, non bruités, et mixtes. Le tableau donne l'erreur de
classication totale pour chaque conguration.
Pour réaliser ces expériences, nous avons divisé notre base de données en
plusieurs sous-ensembles diérents. Tout d'abord, la base de données originale
de 2000 échantillons a été divisée en deux plus petites bases de données contenant chacune 1000 éléments. La première demi-base contient uniquement des
accords non bruités tandis que la deuxième ne contient que des accords bruités.
Ensuite, nous avons créé trois ensembles d'apprentissage contenant chacun 70%
des données de chaque demi-base de données. Le premier ensemble contient 700
accords non bruités, le second 700 accords bruités et le dernier contient 350
accords bruités et 350 accords non bruités, donnant également un total de 700
accords. Les accords sont sélectionnés aléatoirement dans les deux demi bases de
données. Les accords sont enregistrés à l'aide de plusieurs guitares diérentes,
chaque guitare étant répartie de manière uniforme dans chaque sous-ensemble.
Nous avons également créé deux ensembles de tests, contenant chacun
30 %
des données de chaque demi base de données. Le premier ensemble contient
uniquement des accords non bruités alors que le deuxième ne contient que des
accords bruités. Le Tableau 3.3 donne les résultats de chaque test. Nous avons
d'abord entraîné un modèle en utilisant un ensemble d'apprentissage non bruité
et nous l'avons testé avec des accords bruités et non bruités (deuxième colonne
du Tableau). Ensuite, nous avons entraîné le modèle avec un ensemble d'apprentissage bruité et nous l'avons testé avec des accords bruités et non bruités
(troisième colonne du Tableau). Enn, nous avons réalisé un test identique aux
précédents mais avec un ensemble d'apprentissage constitué d'accords mixtes
(quatrième colonne du Tableau).
À partir des résultats du Tableau 3.3, nous pouvons déduire que l'utilisation
d'un ensemble d'apprentissage constitué uniquement d'accords non bruités produit le taux d'erreur le plus important. On déduit également que l'utilisation
d'un ensemble bruité ou mixte produit des taux d'erreurs semblables. Les deux
ensembles pourraient donc être utilisés pour entraîner le modèle nal. Toutefois,
l'ensemble d'apprentissage optimal dépend des conditions d'utilisation futures
du modèle. Malheureusement, il nous est impossible de déterminer ces conditions
à l'avance. En eet, il est dicile d'imaginer dans quelles conditions le modèle
sera utilisé. Cependant, nous considérons que l'utilisation d'un ensemble d'apprentissage mixte produit un modèle moins dépendant du bruit contenu dans
la base de données qu'en utilisant un ensemble bruité. Dès lors, nous pensons
qu'il est préférable d'utiliser un ensemble mixte.
CHAPITRE 3.
37
RECONNAISSANCE D'ACCORDS
(a)
Figure 3.9:
(b)
Matrices de confusions résultant de la validation de la base de
données à l'aide d'un réseau de neurones (a) et d'un algorithme des plus proches
voisins (b). Le taux d'erreur total pour le réseau de neurones est de 6.5% et est
de 3.25% pour l'algorithme des plus proches voisins.
3.5.3 Validation de la base de données
Sur base des observations précédentes, nous avons nalement choisi d'entraîner notre modèle nal en utilisant des accords enregistrés en environnements
bruité et non bruité. An de vérier les performances du modèle sur notre base
de données, nous avons entraîné un modèle en utilisant
70 %
de la base de don-
nées mixte, à savoir 1400 accords, soit 140 accords par classe. Le modèle ainsi
entraîné a été testé sur un ensemble constitué des
30 %
restants, à savoir 600
accords répartis en 60 accords par classe. La base de données étant divisée en
deux, le résultat est légèrement biaisé. Ceci est dû à la réduction de la taille de la
base de données. Malgré ce résultat biaisé, on constate que les prédictions pour
chaque classe sont en général correctes. La Figure 3.9 (a) montre une matrice de
confusion pour un réseau de neurones entraîné avec l'ensemble décrit ci-dessus.
Nous avons également lancé une validation de la base de données en utilisant un algorithme de type plus proche centroïde avec une distance de Bhattacharyya (voir Section 3.3.2). Rappelons que cet algorithme compare chaque
accord testé à 10 accords modèles, qui sont calculés en moyennant tous les accords présents dans la base de données. Pour réaliser cette expérience, nous
avons tenté de reconnaître les 2000 accords présents dans la base de données en
utilisant cet algorithme. Le taux de reconnaissance est encore supérieur au taux
obtenu avec un réseau de neurones. On obtient en eet une erreur de classication totale de 3.25%. Notons que le résultat est ici moins biaisé que pour le
réseau de neurones étant donné que la totalité de la base de données est testée.
La Figure 3.9 (b) montre la matrice de confusion résultant de la validation en
utilisant l'algorithme des centroïdes.
3.5.4 Reconnaissance d'autres instruments
Les expériences précédentes permettent d'établir que le système semble able pour des accords de guitare, ce qui correspond au comportement attendu
CHAPITRE 3.
38
RECONNAISSANCE D'ACCORDS
energy
Guitar
0.4
0.2
energy
0
energy
c#
d
d#
e
f
f#
Piano
g
g#
a
a#
b
c
c#
d
d#
e
f
f#
Violin
g
g#
a
a#
b
c
c#
d
d#
e
f
f#
Accordion
g
g#
a
a#
b
c
c#
d
d#
e
g
g#
a
a#
b
0.1
0
0.4
0.2
0
energy
c
0.2
0.4
0.2
0
f
f#
Figure 3.10 Représentation PCP d'un accord de Do Majeur (C) joué par
quatre instruments. De haut en bas, une guitare, un piano, un violon et un
accordéon.
Instrument
Méthode naïve
Réseau de Neurones
Plus proche centroïde
0 %
Guitare
8 %
1 %
Piano
20 %
13 %
6 %
Violon
19 %
5 %
12 %
Accordéon
32 %
4 %
10 %
Table 3.4 Erreurs de classication pour 4 instruments en utilisant trois algo-
rithmes.
étant donné que la base de données d'apprentissage ne comporte que des accords de guitare. Il est également intéressant de déterminer les performances du
systèmes avec d'autres instruments. Dans cette expérience, nous avons appliqué
l'algorithme de reconnaissance avec les quatre instruments déjà mentionnés, tous
capables de jouer des accords. La Figure 3.10 compare les représentations PCP
d'un accord de Do Majeur (C) joué par les quartes instruments cités. Comme
on peut le constater, les quatre représentations sont similaires et on observe
nettement les trois notes principales de l'accord qui sont mises en évidences, à
savoir Do (C), Mi (E) et Sol (G).
Bien que le modèle d'apprentissage soit établi sur base d'un ensemble d'accords de guitare, nous l'avons appliqué à notre ensemble de test constitué d'accords complètement indépendants de ceux utilisés pour entraîner le modèle (voir
Section 4.3). Le Tableau 3.4 donne une comparaison des résultats pour les quatre instruments en utilisant la méthode naïve décrite en Section 3.3.1 ainsi que
les deux méthodes d'apprentissage, à savoir le réseau de neurones et la méthode
1-NN (centroïdes).
On observe une augmentation considérable des performances lorsque l'on
utilise une méthode d'apprentissage s'appuyant sur une base de données d'accords. La méthode la plus adaptée à la reconnaissance d'accords pour de multiples instruments est la technique utilisant un réseau de neurones. La méthode
CHAPITRE 3.
39
RECONNAISSANCE D'ACCORDS
(a)
(b)
(c)
(d)
Figure 3.11: Matrices de confusions pour les quatre instruments à l'aide d'un
réseau de neurones : (a) guitare, (b) piano, (c) violon et (d) accordéon.
des plus proches voisins fournit également de bons résultats, bien que légèrement
plus dégradés qu'avec un réseau de neurones. Notons toutefois que cette légère
dégradation du taux de reconnaissance est compensée par un accroissement du
temps d'exécution du système, comme il en sera question dans la section suivante. On constate également un taux d'erreur plus important pour le piano et
l'accordéon, ce qui peut s'expliquer par la nature plus bruitée des accords joués
par ces deux instruments. Les Figure 3.11 et 3.12 montrent les matrices de confusion obtenues respectivement avec le réseau de neurones et l'algorithme 1-NN
(centroïdes). On observe que les matrices relatives à la guitare pour les deux
algorithmes reètent de très bons résultats. Dans l'ensemble, les matrices de
confusions reètent de bonnes performances.
3.5.5 Annotation de morceaux complets
Jusqu'à présent, nous ne faisions que détecter des accords uniques. Le système lit un chier audio et renvoie l'identiant de l'accord reconnu. Mais un
système ne permettant de reconnaître qu'un accord à la fois présente bien peu
d'intérêt. Nous avons donc analysé les performances de l'algorithme lorsqu'il
s'agit de reconnaître tous les accords contenus dans un morceau.
L'algorithme implémenté est extrêmement simple et fonctionne comme suit.
CHAPITRE 3.
40
RECONNAISSANCE D'ACCORDS
(a)
(b)
(c)
(d)
Figure 3.12: Matrices de confusions pour les quatre instruments à l'aide d'un
algorithme 1-NN : (a) guitare, (b) piano, (c) violon et (d) accordéon.
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
41
Accords reconnus : Hotel California (The Eagles)
AM AM ... EM E ... G G ... D D ... F F ... C C C ... DM DM ... E E
Table 3.5 Accords reconnus pour Hotel California avec un algorithme 1-NN.
Accords reconnus : Hotel California (The Eagles)
AM AM ... E E ... G G ... D D ... F F ... C C C ... DM DM ... E E
Table 3.6 Accords reconnus pour Hotel California avec un réseau de neurones.
Le système reçoit en entrée une piste audio et capture des transformées de
Fourier au cours du temps (la taille d'une fenêtre est de 4096 échantillons, soit
93 ms). À partir de chaque spectre fréquentiel, le système calcule un vecteur PCP
et l'envoie à l'algorithme d'apprentissage qui renvoie alors une chaîne identiant
l'accord. Ainsi, le système renvoie un accord pour chaque fenêtre de Fourier.
Cette reconnaissance a été expérimentée avec un réseau de neurones et la méthode des plus proches centroïdes en utilisant une distance de Bhattacharrya.
L'expérience a été réalisée avec plusieurs pistes musicales, dont un enregistrement à la guitare du morceau Hotel California du groupe The Eagles. Un
extrait de 30 secondes a donc été envoyé au système. Le Tableau 3.5 montre
les accords reconnus pour l'algorithme des plus proches centroïdes. Le système
renvoie évidemment bien plus d'accords que ceux qui sont achés, étant donné
qu'un accord est détecté tous les 4096 échantillons. On constate que les accords
sont bien reconnus. On peut observer une confusion entre un mi mineur (EM)
et un mi majeur (E). L'accord qui aurait du être détecté est un mi majeur. Les
deux accords étant très proches l'un de l'autre, nous considérons cette confusion
comme étant négligeable.
Le Tableau 3.6 montre les accords reconnus avec notre réseau de neurones.
Ici, tous les accords ont parfaitement été reconnus. Notons toutefois une différence de temps d'exécution considérable entre les deux algorithmes utilisés.
Nous en reparlerons dans la section suivante.
Cette expérience permet de conclure que le système de reconnaissance d'accords que nous avons conçu est parfaitement adapté à l'annotation de morceaux
complets.
3.5.6 Performances algorithmiques
Notre système de reconnaissance d'accords produit de bons résultats en utilisant les deux algorithmes mentionnés : un réseau de neurones et un algorithme
des plus proches voisins. Nous avons toutefois remarqué dans les observations
précédentes que l'algorithme des plus proches voisins produisait des résultats
légèrement moins performants qu'un réseau de neurones pour d'autres instruments que la guitare. Il semble donc à priori plus naturel de conserver le réseau
de neurones comme algorithme de prédilection. Toutefois, cette dégradation des
résultats est largement compensée par le gain de performances apporté par l'algorithme des plus proches centroïdes !
CHAPITRE 3.
42
RECONNAISSANCE D'ACCORDS
Instrument
Réseau de neurones
Plus proche centroïde
Guitare
0,197s
0,113s
Piano
0,199s
0,124s
Violon
0,288s
0,130s
Accordéon
0,199s
0,113s
Table 3.7 Temps d'exécutions pour la validation des ensembles de tests in-
dépendants.
En eet, pour reconnaître un accord en utilisant un réseau de neurones, il
faut propager les 12 valeurs de son vecteur PCP dans le réseau et attendre que ce
dernier fournisse en sortie l'identiant de l'accord. La complexité de l'algorithme
dépend en grande partie de la structure du réseau de neurones. Dans notre cas,
les 12 valeurs du PCP doivent parcourir une couche de 12 neurones, puis une
couche de 35 neurones et nalement une couche de 10 neurones. Chaque neurone
applique une fonction de transfert à la valeur reçue en entrée et la propage à sa
sortie. De plus, chaque valeur du PCP est envoyée à tous les neurones, ce qui
en fait un algorithme lent, bien qu'ecace.
L'algorithme des plus proches voisins quant à lui n'eectue que dix comparaisons de PCP. En eet, ce dernier se base sur une petite base de données de
10 vecteurs PCP étant calculés en moyennant 200 accords de la base de données
(il y a 200 échantillons par accord pour un total de 2000 enregistrements). Ces
comparaisons se font en utilisant une distance de Bhattacharyya, qui se calcule
de façon très rapide.
À titre de comparaison, nous avons mesuré les temps d'exécution de l'annotation d'un extrait de 30 secondes de Hotel California en utilisant le réseau de
neurones et en utilisant la méthode des centroïdes. Le réseau de neurones produit un résultat en 1,226 minutes, alors que la méthode des centroïdes renvoie
une liste d'accords complète en 0,578 secondes ! Il y a une amélioration d'un
facteur 1000, ce qui n'est pas négligeable.
Nous avons également comparé les temps d'exécution de la validation des
ensembles de tests indépendants pour chaque instrument. Le Tableau 3.7 donne
une comparaison des temps d'exécution pour les deux algorithmes. De nouveau,
on constate une amélioration des performances pour la méthode 1-NN. Elle est
toutefois moins marquée que pour l'annotation d'un morceau complet.
3.6 Conclusion
Ce chapitre a décrit la mise en ÷uvre d'un système de reconnaissance d'accords en utilisant des méthodes d'apprentissage automatique. Nous avons d'abord
recherché un descripteur d'accord adéquat, et nous avons déduit que le vecteur
PCP introduit par Fujishima était intéressant pour notre application. Nous
avons toutefois remarqué que les performances avec le PCP original étaient
dégradées pour plusieurs instruments, et nous avons donc adapté le descripteur
de façon à ce qu'il corresponde parfaitement à nos besoins.
CHAPITRE 3.
RECONNAISSANCE D'ACCORDS
43
N'ayant pas trouvé de base de données d'accords publiquement disponible,
nous avons créé notre propre ensemble d'accords enregistrés dans deux environnements diérents : une chambre sourde et un environnement bruité plus
classique. Les deux environnements ont été choisis pour augmenter la abilité
de l'algorithme. Cette base de données est constituée de 2000 accords de guitare enregistrés au format WAV et répartis dans dix classes diérents. Nous
avons mis en évidence le fait que la base de données devait contenir des accords
bruités et non bruités pour fournir de meilleurs résultats. Chaque accord de la
base de données est représenté par un vecteur PCP, et nous avons démontré que
ce descripteur est adapté pour reconnaître d'autres instruments que la guitare.
Pour reconnaître des accords, nous avons utilisé deux algorithmes d'apprentissage automatique : un réseau de neurones articiels et un algorithme des plus
proches voisins (KNN). Les méthodes d'apprentissages se sont avérées nettement
plus ecaces qu'une simple application naïve de la dénition d'un accord. Les
deux algorithmes utilisés présentent des résultats similaires, mais l'algorithme
KNN présente des performances algorithmiques bien plus élevées que le réseau
de neurones articiels. Ainsi, pour identier tous les accords d'une piste complète, l'algorithme KNN est 1000 fois plus rapide que le réseau de neurones et
produit ainsi un résultat instantanément.
Nous avons nalement démontré que notre algorithme est capable de reconnaître des accords joués par d'autres instruments que la guitare, bien que la base
de données d'apprentissage ne soit constituée que d'accords de guitare. Cela démontre bien que le vecteur PCP est adapté à nos besoins, car indépendant de
l'instrument utilisé.
CHAPITRE
4
Reconnaissance d'extraits musicaux
Dans le chapitre précédent, nous avons démontré que le descripteur PCP était
adapté pour représenter et reconnaître des accords quel que soit l'instrument
utilisé. Pour ce faire, nous avons développé un algorithme de reconnaissance
d'accords basé sur ce descripteur et vérié sa abilité en utilisant plusieurs
instruments. Dans ce chapitre, nous présentons une technique de reconnaissance
d'extraits musicaux se basant sur le PCP pour représenter des pistes musicales
complètes.
Rappelons que notre objectif ultime est de concevoir une application de
reconnaissance d'extraits musicaux basée sur le contenu audio. Il faut donc permettre une reconnaissance indépendante de la forme extérieure (instrument,
timbre, rythme) du morceau que l'on tente d'identier. Le principe est donc
d'envoyer à l'application un extrait d'une dizaine de secondes joué par exemple à l'aide d'une guitare ou d'un piano. L'application doit alors retrouver la
piste correspondante dans une base de données. En fait, elle renvoie la liste des
dix meilleures correspondances trouvées dans la base de données. La Figure 4.1
montre le principe du système développé.
Pour réaliser un tel système, il est nécessaire d'utiliser un descripteur adéquat,
contenant susamment d'informations pour reconnaître un extrait dans une
base de données potentiellement grande, et assez discriminant pour éviter un
maximum de confusions. Un tel descripteur doit donc contenir susamment
d'entropie. Notre système repose sur le Pitch Class Prole (PCP) décrit dans
le Chapitre 3. Nous avons démontré que ce descripteur était capable de reconnaître des accords de manière able, quel que soit l'instrument utilisé. L'idée
est donc de représenter un extrait musical par une liste d'accords. Quelle que
soit la façon dont est joué un morceau, les accords le constituant seront toujours
44
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
45
Figure 4.1 Schéma du système : un extrait est envoyé à un algorithme de
comparaison qui renvoie une liste de correspondances.
identiques, et ces accords joués de façons diérentes devraient faire l'objet de la
même reconnaissance.
Une fois le descripteur choisi, le système nécessite deux éléments essentiels :
une base de données de référence ainsi qu'un algorithme de recherche et de comparaison dans cette base de données. Dans un premier temps, nous avons décidé
de limiter notre base de données à des pistes enregistrées à la guitare, principale-
1
ment en accords ou en arpèges . Nous avons également évalué les performances
avec une base de données plus riche. Plusieurs algorithmes de correspondance
ont été expérimentés. Le plus ecace repose nalement sur une simple comparaison de chaînes de caractères. Nous décrirons les méthodes expérimentées
plus loin.
Dans ce chapitre, un extrait musical est une partie d'une dizaine de secondes
d'une piste ou d'une chanson complète. Une pièce musicale, ou un morceau
correspond à la pièce musicale dans son entièreté.
Ce chapitre est organisé comme suit. La première section décrit les descripteurs d'extraits utilisés. La section suivante concerne la base de données utilisée
pour valider notre système de reconnaissance. À cet eet, il faut déterminer son
contenu et des critères de performance. Ensuite, nous décrivons l'algorithme de
correspondance utilisé. Ce dernier doit comparer un extrait d'entrée aux extraits
présents dans la base de données et renvoyer une correspondance. La Section 4
décrit les résultats de nos expériences. Enn, la Section 5 conclut le chapitre.
4.1 Descripteurs d'extraits
An d'éviter de comparer des sons bruts, il est indispensable d'utiliser un
descripteur qui contient susamment d'informations et de façon relativement
condensée. Le descripteur doit être choisi en fonction des propriétés que l'on
aimerait attribuer au système. Notre objectif est de pouvoir reconnaître des
extraits sur base du contenu musical, et non pas de l'aspect extérieur. Il faut
1. Un arpège est un accord joué note par note. Par opposition, dans un accord classique,
toutes les notes sont jouées simultanément.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
46
donc utiliser un descripteur qui contient la même information, quel que soit
l'instrument ou le rythme utilisé. Rappelons ici que le rythme est diérent du
tempo ! Le tempo représente la pulsation, la vitesse globale du morceau, tandis que le rythme représente la dynamique du morceau, par exemple, la façon
dont un guitariste va jouer avec sa main droite (voir Annexe A). L'idéal serait
que notre descripteur soit indépendant du tempo. Le système pourrait ainsi reconnaître des extraits, et ce quelle que soit la vitesse à laquelle ils sont joués.
Mais deux extraits identiques en termes de contenu joués à deux vitesses différentes correspondent-ils encore au même morceau ? On peut en eet trouver
de nombreuses pistes musicales qui sont très similaires en termes de contenu
mais jouées à des vitesses diérentes. Nous avons considéré les deux cas dans
notre étude et notre descripteur nal est en dénitive sensible au tempo du
morceau. Notre descripteur doit également être susamment discriminant et
contenir susamment d'information pour distinguer ecacement des extraits
musicaux diérents.
Dans le Chapitre 3, nous avons décrit un descripteur d'accords qui semble
respecter toutes les propriétés décrites ci-dessus. Voyons s'il est possible de l'appliquer à de la reconnaissance d'extraits musicaux. Nous avons montré que le
PCP (Pitch Class Prole) couplé à une base de données d'accords réels, était
adapté pour de la reconnaissance d'accords et qu'il permettait de reconnaître des
accords joués avec plusieurs instruments. Représenter un morceau par la liste
des accords le constituant en utilisant ce descripteur semble à priori adapté pour
reconnaître un extrait musical. En eet, la représentation serait basée uniquement sur le contenu du morceau sans tenir compte d'autres caractéristiques tels
que le timbre de l'instrument ou le rythme.
De plus, le descripteur PCP contient beaucoup d'informations car il permet
de représenter l'intensité de chaque note présente dans un accord. Un accord
est donc représenté par 12 valeurs d'intensité, et un morceau complet serait
dès lors représenté par une liste d'accords représentés par 12 notes. En ce qui
concerne l'indépendance par rapport au tempo, il est toujours possible de rééchantillonner le signal obtenu an de le représenter sur une échelle de temps
normalisée. L'utilisation d'une liste d'accords pourrait donc être aisément adaptée de façon à rendre le descripteur indépendant de la vitesse à laquelle un
morceau est joué.
Nous avons expérimenté deux types de descripteurs basés sur le PCP. Le
premier utilise les vecteurs PCP bruts. Un morceau est donc représenté par
l'évolution de vecteurs PCP au cours du temps. On obtient ainsi un spectre
PCP, où l'axe horizontal représente le temps et l'axe vertical représente les
12 notes correspondant aux 12 demi-tons d'un accord. Le second descripteur
que nous avons expérimenté utilise une liste d'accords obtenue en utilisant le
détecteur d'accords développé dans le Chapitre 3.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
47
4.1.1 Spectre PCP
4.1.1.1 Descripteur
L'objectif est de représenter un morceau par l'ensemble des accords le constituant. Pour ce faire, nous reprenons une partie du travail eectué dans le
Chapitre 3. Chaque accord est décrit à l'aide d'un vecteur PCP, qui est un
vecteur de 12 valeurs correspondant aux intensités des 12 demi-tons présents
dans un accord musical. Pour rappel, ces notes sont les suivantes :
do, do#, re, re#, mi, f a, f a#, sol, sol#, la, la#, si
Cette représentation par une liste d'accords a été choisie pour deux raisons.
D'un point de vue musical, il est intéressant de représenter un morceau par la
suite des accords le constituant, an d'extraire une information relative à l'harmonie d'un morceau. La plupart des pièces musicales contiennent toutes des
accords qui constituent une information essentielle. Nous avons de plus démontré dans le Chapitre 3 que le descripteur PCP était adapté pour représenter
des accords et ce quel que soit l'instrument utilisé. En représentant un morceau
sous la forme d'une liste de vecteurs PCP, on obtient une description indépendante de l'instrument utilisé, ce qui est particulièrement intéressant pour notre
application.
En pratique, nous utilisons l'algorithme d'annotation d'un morceau développé
dans le chapitre précédent. Nous capturons des fenêtres de 4096 échantillons
(à une fréquence d'échantillonnage
f s = 44100 Hz ,
cela produit environ 10
fenêtres par seconde), et pour chaque fenêtre, nous calculons un vecteur PCP.
La diérence avec l'algorithme d'annotation décrit précédemment est que nous
n'utilisons pas de réseau de neurones ou autre algorithme d'apprentissage pour
déterminer l'accord détecté. Nous préférons ici travailler directement avec les
vecteurs PCP bruts qui semblent contenir plus d'informations.
Pour chaque note du vecteur PCP, nous obtenons son évolution au cours
du temps. Plus précisément, nous disposons de la quantité de chaque note au
cours du temps. Pour plus de facilité, nous convoluons chaque note avec une
fenêtre Gaussienne et nous ré-échantillonnons le signal an d'obtenir N points
par seconde, plus précisément 5 points. La Figure 4.2 montre l'évolution des
notes Si (a) et Do (b) au cours du temps pour un extrait donné.
On peut donc représenter une pièce musicale par l'évolution des vecteurs
PCP dans le temps, ce qui donne un spectre PCP. La Figure 4.3 montre deux
spectres PCP pour deux extraits diérents d'un même passage de Hotel Cali-
fornia. Sur ces gures, on peut observer verticalement les vecteurs PCP correspondant aux accords joués. Sur l'axe horizontal est représenté le temps. Le
spectre PCP montre donc les diérents accords joués au cours du temps. On
constate des similitudes entre les deux extraits. Les zones principales ressortent
bien dans les deux graphiques et il est possible d'identier les accords à l'÷il nu
dans les deux spectres.
CHAPITRE 4.
7
2.5
48
RECONNAISSANCE D'EXTRAITS MUSICAUX
7
x 10
x 10
3.5
3
2
2.5
Energy
Energy
1.5
2
1.5
1
1
0.5
0.5
0
0
20
Figure 4.2:
40
60
80
100
120
140
0
0
20
40
60
80
Time
Time
(a)
(b)
100
120
140
Évolution de la note si (a) et de la note do (b) au cours du temps,
dans la chanson Hotel California.
Précisons que nous avons utilisé un facteur
E = 2.0 pour le calcul du vecteur
PCP (voir Section 3.2.3), reprenant ainsi la dénition originale du PCP telle
qu'elle a été introduite par Fujishima [13]. On constate une diminution importante de bruit en utilisant un facteur 2.0 plutôt que le PCP avec facteur 1.0
utilisé dans l'algorithme de reconnaissance d'accords. La Figure 4.4 montre la
diérence entre un spectre obtenu avec un facteur 1.0 et un spectre obtenu avec
un facteur 2.0. Le deuxième spectre semble plus net et plus simple à exploiter
que le premier. C'est ce dernier que nous avons choisi d'utiliser pour représenter
une pièce musicale.
Sur base du descripteur choisi, il faut encore concevoir un algorithme de
reconnaissance an d'identier des extraits présents dans une base de données.
4.1.1.2 Algorithme de reconnaissance naïf
L'objectif recherché est de déterminer une mesure de similarité entre deux
extraits musicaux, permettant de renvoyer une réponse booléenne : soit les deux
extraits sont très similaires, soit ils ne le sont pas.
Le premier algorithme de reconnaissance implémenté est extrêmement simple et ne produit pas de résultats concluants. L'objectif est de comparer deux
extraits à l'aide d'une mesure d'angle entre chaque note. En eet, on dispose
pour chaque note d'un vecteur décrivant son utilisation dans le temps. L'idée
est de comparer les notes indépendantes de l'accord, d'obtenir un score pour
chaque note, puis de combiner les douze scores obtenus (pour les 12 notes du
PCP) en une distance globale entre deux extraits. La mesure de distance choisie
entre deux notes est basée sur le cosinus de l'angle entre les vecteurs donnant
l'énergie de la note au cours du temps. La Formule 4.1 détaille le calcul du score
pour deux vecteurs de notes
A
et
B.
score = 1 −
A·B
||A|| · ||B||
(4.1)
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
(a) Extrait 1 de Hotel
California
(b) Extrait 2 de Hotel
California
49
Figure 4.3 Spectres PCP pour deux extraits diérents d'un même passage
de Hotel California.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
(a)
Figure 4.4:
50
(b)
Comparaison entre deux spectres obtenus respectivement en util-
isant un facteur PCP 1.0 (a) et un facteur PCP 2.0 (b). On constate que le
spectre de la gure (b) avec un facteur de puissance
E=2
est plus net que la
gure (a).
Pour combiner les scores obtenus et déterminer une distance globale entre
deux extraits, on calcule une moyenne géométrique des scores obtenus. Si cette
moyenne est proche de 1.0, cela signie que toutes les notes sont similaires et
que par conséquent, les extraits sont proches l'un de l'autre.
L'idée est ici très simple et se base sur des opérations élémentaires ecaces.
Par un mécanisme de fenêtre glissante, on compare un extrait inédit à toutes
les fenêtres de même taille dans la base de données. On renvoie ensuite le nom
de la piste la plus proche de l'extrait.
Malheureusement, il s'est avéré que cette technique était trop élémentaire et
qu'elle ne fournissait pas de bons résultats. L'algorithme est capable de retrouver
un extrait de la base de données tel quel, mais il ne parvient pas à reconnaître
un extrait inédit joué à la guitare.
Après analyse de spectres d'extraits de la base de données et d'extraits joués
à la guitare, on se rend compte qu'il y a une grande diérence entre les spectres.
De plus, il y a un décalage temporel entre les deux extraits, et il est dès lors
impossible de trouver une correspondance parfaite, à moins de reprendre un
extrait tel qu'il est présent dans la base de données. La Figure 4.5 montre
trois spectres correspondant à trois extraits similaires d'un même passage de la
chanson Hotel California. On se rend compte que les spectres sont très diérents
les uns des autres, alors qu'auditivement, les extraits sont très proches !
4.1.1.3 Détections de pics
En superposant les spectres de deux extraits, on parvient à retrouver des
zones similaires qui sont toutefois loin d'être identiques. Cette observation s'explique par le fait que deux accords ne sont jamais joués exactement de la même
façon et à la même intensité, et ce quel que soit l'instrument utilisé. Malgré
cette diérence, on constate toutefois que des gures similaires ressortent dans
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
(a)
51
(b)
(c)
Figure 4.5:
Spectres de trois extraits d'un même passage de Hotel California.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
52
Figure 4.6 Spectre PCP après application de l'algorithme de détection de
pics.
les spectres, comme présenté dans la Figure 4.3. On peut en particulier observer
des pics similaires entre les extraits. Sur base de cette observation, nous avons
tenté d'extraire ces pics an d'expérimenter une approche qui consiste à comparer deux extraits sur base de ces points principaux. On autorise de plus un
décalage temporel pour tenir compte d'éventuelles variations de tempo.
Pour cela, il nous a fallu dénir ce qu'est un pic et ce qui ne l'est pas. Nous
avons donc imaginé un algorithme permettant d'isoler certains points an de
représenter un morceau par un spectre mettant en évidence certaines notes principales qui ressortent par rapport aux autres. L'algorithme fonctionne comme
suit.
Le principe est de binariser le spectre en utilisant un seuil approprié. Pour
ce faire, nous calculons un seuil adaptatif en recherchant N points maximums
dans un spectre PCP. En pratique, nous trions tous les points du spectre par
ordre décroissant et nous choisissons les N premiers, en pratique 30% du nombre
total de points. Sur base de ces N points, nous dénissons le seuil comme étant
la médiane de ces valeurs. Nous obtenons ainsi une valeur de seuil calculée sur
base du contenu du spectre PCP. Ensuite, tous les points de valeur inférieure
au seuil sont éliminés et xés à 0 tandis que les points de valeur supérieure
sont conservés et xés à 1. La Figure 4.6 montre le résultat de l'application
du ltrage sur un ltre PCP. On constate une série de zones qui sont mises en
évidence. An d'isoler des pics indépendants et non pas des zones entières, nous
avons appliqué un algorithme de ltrage qui ne conserve qu'un seul point dans
une zone homogène. Le résultat est montré dans la Figure 4.7.
Sur base de cette représentation simpliée, nous avons développé un algorithme de comparaison de deux extraits. L'algorithme s'inspire de la Distance
de Jaccard. Cette dernière est une mesure communément utilisée en analyse
statistique pour comparer la similarité et la diversité entre des échantillons.
Concrètement, l'indice de Jaccard (ou coecient de Jaccard ) est le rapport de
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
53
Figure 4.7 Pics détectés après ltrage du spectre PCP.
la cardinalité de l'intersection des ensembles considérés et de l'union des ensembles. Il permet d'évaluer la similarité entre deux ensembles. Pour deux ensembles
A
et
B,
l'indice est calculé par
J(A, B) =
|A ∩ B|
|A ∪ B|
Cette distance semble convenir à nos besoins, puisqu'on travaille à présent
avec des ensembles binaires. Il est toutefois important de noter que la seule comparaison possible est une comparaison par note dans le spectre. En eet, une
permutation des notes dans le spectre ne change pas la représentation nale.
Dès lors, on doit nécessairement comparer deux extraits en comparant chaque
note séparément. Il faut donc mesurer la similarité entre chaque note des deux
spectres et essayer sur base des informations obtenues de calculer une distance
globale pour la totalité du spectre. L'algorithme que nous avons implémenté calcule un score global en utilisant une distance semblable à la distance de Jaccard.
Nous comparons chaque note séparément de la façon suivante. Pour chaque pic
trouvé dans l'extrait A, nous recherchons une correspondance dans l'extrait B
en eectuant une recherche dans un voisinage de sa position dans l'extrait A.
Cette opération est eectuée pour chaque note. Ensuite, nous calculons le rapport entre le nombre de correspondances correctes trouvées et le nombre de pics
total de l'extrait A. Pour identier un nouvel extrait, il sut alors de comparer
le spectre correspondant aux spectres des pistes de la base de données.
Malheureusement, cette nouvelle expérience s'est également soldée par un
échec et le taux de reconnaissance pour des extraits inédits est quasiment nul.
L'algorithme est capable de retrouver des extraits présents dans la base de
données tels quels, mais pas d'extrait totalement nouveau.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
54
4.1.1.4 Conclusion
Après deux méthodes implémentées sur base d'un descripteur sous forme de
spectre PCP, nous n'avons pas obtenu de résultats concluants. Dans les deux cas,
reconnaître un extrait présent dans la base de données fonctionne correctement,
mais retrouver un extrait inédit ne fonctionne pas. An de comprendre la raison
de cet échec, nous avons analysé les trois extraits de la chanson Hotel California
de la Figure 4.5, et nous avons étudié les spectres PCP. On constate que les
spectres sont très diérents. On remarque en particulier sur les gures (a) et
(b) de la Figure 4.5 que des zones entières changent de position. Il devient dès
lors très dicile d'imaginer une fonction permettant d'armer que ces trois
spectres représentent exactement le même extrait. Il devient même dicile de
reconnaître les accords du morceau dans un tel spectre. En eet, ils semblent
très diérents dans les trois extraits.
En réalité, les méthodes expérimentées ci-dessus tentent de reproduire manuellement ce que fait déjà notre détecteur d'accords. Alors que ces techniques
n'ont pas fourni de résultats concluants, l'algorithme développé dans le Chapitre 3
a été capable de reconnaître les mêmes accords pour ces trois extraits. L'explication la plus logique est que le détecteur d'accords utilise une large base de données d'accords réels, et qu'il a par conséquent connaissance d'une grande variété
d'accords joués diéremment. On peut en déduire qu'une solution basée sur des
techniques d'apprentissage pourrait apporter de meilleurs résultats. Toutefois,
se pose alors le problème de la génération d'une base de données d'apprentissage. Dans le cas d'extraits musicaux, il est dicile et fastidieux de concevoir
une grande base de données.
Pour la suite, nous avons adopté une solution qui se base sur le détecteur
d'accords précédemment utilisé et qui fournit des résultats bien plus concluants
que ceux rencontrés jusqu'à présent.
4.1.2 Utilisation du détecteur d'accords
4.1.2.1 Descripteur
Le descripteur basé sur un spectre PCP n'est de toute évidence pas adapté
dans le cas de la reconnaissance d'extraits musicaux. Comme expliqué précédemment, les spectres entre plusieurs extraits musicalement très similaires sont trop
diérents pour permettre d'établir manuellement une fonction de similarité entre deux extraits. Suite à cette constatation, nous avons décidé de nous orienter
vers une optique diérente. Nous avons en eet choisi d'utiliser la reconnaissance
d'accords développée dans le Chapitre 3 an d'annoter les morceaux complets
de la base de données ainsi que les extraits musicaux inédits à l'aide de tous les
accords les constituant. Pour ce faire, nous avons utilisé l'algorithme d'annotation d'accords développé précédemment. Rappelons que ce dernier parcourt un
chier audio, capture à intervalles réguliers des fenêtres de 4096 échantillons,
génère un vecteur PCP pour chaque fenêtre et envoie le descripteur obtenu
à un algorithme d'apprentissage automatique qui renvoie alors l'identiant de
l'accord reconnu.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
55
Une piste audio est donc désormais représentée par une chaîné d'entiers compris entre 0 et 9 représentant les 10 accords pouvant être détectés. En eet, le
détecteur d'accords développé ne permet de reconnaître que dix accords couramment utilisés dans la musique contemporaine européenne. Toutefois, cette limitation n'empêche pas de représenter des pistes contenant d'autres accords. En
eet, l'algorithme de reconnaissance va renvoyer l'identiant de l'accord de la
base de données le plus proche de celui que l'on tente de reconnaître. Même si
un identiant aléatoire est renvoyé à chaque exécution (pour les accords autres
que les dix de la base de données), la chaîne restera similaire car certains accords apparaîtront au même endroit dans la chaîne d'accords. Il est toutefois
probable que ces accords inconnus soient toujours annotés de la même façon,
et il n'y aura ainsi pas de problèmes pour reconnaître des pistes contenant des
accords autres que les dix contenus dans la base de données.
La chaîne d'accords obtenue contient de plus une information temporelle intéressante. Des fenêtres de 4096 échantillons sont capturées à intervalles réguliers.
Étant donné que les chiers audio utilisés sont échantillonnés à 44100 Hz, nous
pouvons déduire que 10 fenêtres par seconde sont capturées. Ainsi, 10 accords
dans la chaîne nale correspondent à une seconde de musique. Cette information
est très importante et permet de distinguer deux morceaux utilisant exactement
les mêmes accords mais à des vitesse diérentes, par exemple. Pour cette raison,
nous avons décidé de ne pas normaliser la chaîne d'accords dans le temps. Deux
morceaux identiques mais joués à des vitesses diérentes sont donc considérés
comme deux pistes bien indépendantes et deux titres diérents. De plus, dans
les répertoires de nombreux compositeurs, groupes et chanteurs, on peut trouver
de nombreuses chansons dont l'accompagnement est identique, mais joué à un
tempo diérent.
Ci-dessous sont données trois chaînes obtenues à partir des trois extraits de
Hotel California utilisés précédemment (Figure 4.5).
Extrait 1
111111111011111101111111111111111167666666666666
66666666666666666666616666999999999999999999999999
99998999999766444444444444444442444422422224444444
0088888888888
Extrait 2
111111111111111101111111111111111117711116666661
11610611616101660111161111699999999999999999999999
99999999999997714444444444444444444444444444444411
1676888888888
Extrait 3
111111111181111111111111111111111111139711161666
66716666161116661616666666601666999922999999999999
99999997999999999771144444444444444444444444444444
4444441568888
On constate de fortes similitudes entre les chaînes. On obtient des ressemblances plus agrantes qu'avec la représentation par spectre PCP. Les observa-
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
56
tions sont ici en parfaite adéquation avec le contenu musical. En eet, lorsque
l'on écoute les trois extraits, il est dicile d'entendre les diérences, les extraits étant très similaires. Ils contiennent exactement les mêmes accords joués
presque exactement de la même façon, au même rythme et au même tempo. La
représentation par chaîne d'accords semble donc bien reéter le contenu musical.
Un avantage non négligeable de cette représentation est également sa consommation mémoire. En eet, une chaîne d'accords est peu coûteuse et un morceau
peut souvent être représenté par moins de 1000 entiers codés sur 4 bits, ce qui
représente
0, 5 ko.
De plus, la comparaison de deux extraits peut désormais se
réduire à une simple comparaison de chaînes de caractères. Plusieurs mesures
de distances existent pour déterminer la similarité entre deux chaînes de caractères. La section suivante détaille les techniques étudiées et utilisées pour établir
notre algorithme de reconnaissance.
Cette représentation par chaînes d'accords est celle que nous avons adoptée
dans notre application nale. C'est en eet la représentation qui a produit les
meilleurs résultats. La Section 4.4 fournit les résultats de nos expériences avec
cette représentation.
4.1.2.2 Mesure de similarité
Pour comparer deux chaînes de caractères, nous utilisons une distance d'édi-
tion (edit distance). En théorie de l'information et en informatique, la distance
d'édition entre deux chaînes de caractères correspond au nombre d'opérations
nécessaires pour passer de la première chaîne à la seconde (ou inversement) [6].
Il existe plusieurs techniques pour dénir une distance d'édition. Ces méthodes
varient selon les opérations d'édition autorisées : remplacement, suppression, insertion, transposition de caractères, etc. Une distance d'édition est une généralisation de la distance de Hamming pour des chaînes de longueur identique, où
les seules opérations prises en charge sont des substitutions. En général, le calcul d'une distance d'édition est réalisé par un algorithme de programmation
dynamique et utilise une matrice
longueurs des deux chaînes [9].
(n + 1) × (m + 1),
où
n
et
m
représentent les
Il existe plusieurs types de distance d'édition. Les plus courantes sont reprises
ci-dessous.
Distance de Levenshtein : nombre minimal de caractères qu'il faut insérer,
supprimer ou remplacer pour passer d'une chaîne à l'autre. La distance est
d'autant plus grande que le nombre de diérences entre les deux chaînes
est grand.
Plus longue sous-chaîne commune : permet uniquement des opérations
d'insertion et de suppression. Cette distance n'autorise pas la substitution.
Distance de Damereau-Levenshtein : C'est une extension de la distance de
Levenshtein qui permet une opération supplémentaire de transposition,
qui consiste à permuter deux éléments tout en gardant les autres xes.
Distance de Hamming : ne permet que des opérations de substitutions.
CHAPITRE 4.
57
RECONNAISSANCE D'EXTRAITS MUSICAUX
Notons que ces techniques sont similaires au Dynamic Time Wrapping (DTW),
qui est un algorithme utilisé pour mesurer la similitude entre deux séquences
qui peuvent varier en temps et en vitesse. Cette mesure est couramment utilisée
en reconnaissance vocale.
La distance sélectionnée pour notre application est la distance de Levenshtein, qui permet un nombre susant d'opérations tout en étant relativement
ecace algorithmiquement. Cette distance permet ainsi de distinguer deux extraits même proches l'un de l'autre de façon pertinente. L'algorithme utilisé
est implémenté par une technique connue sous le nom de programmation dy-
namique. Cette technique algorithmique a été conçue à la base pour optimiser
des sommes de fonctions monotones non décroissantes sous contrainte.
La programmation dynamique s'appuie sur un principe simple : toute solution optimale s'appuie elle-même sur des sous-problèmes résolus localement de
façon optimale. Concrètement, on déduit la solution optimale d'un problème en
combinant des solutions optimales d'une série de sous problèmes. Les solutions
sont d'abord calculées pour les plus petits problèmes et petit à petit, la solution
globale du problème est déduite. Un exemple classique de programmation dynamique est le problème du sac à dos. Nous renvoyons le lecteur intéressé à [29]
pour des informations complémentaires.
Algorithme
L'algorithme de Levenshtein fonctionne comme suit. Appelons
la chaîne source
s
et la chaîne de destination t. La distance nale entre les deux
chaînes correspond au nombre d'opérations de suppression, d'insertion ou de
substitution pour transformer la chaîne
s
en la chaîne
t.
Plus la distance est
grande, plus les chaînes sont diérentes.
Si
s = ”test”
et
t = ”test”,
alors
LD(s, t) = 0,
où LD signie Leven-
shtein Distance. Les chaînes sont identiques et aucune opération ne de
transformation n'est nécessaire.
Si
s = ”test”
et
t = ”tent”,
alors
de substitution : changer le 's' de
LD(s, t) = 1,
s en 'n'.
car il faut une opération
L'algorithme 4.1 donne la procédure pour calculer une distance de Levenshtein
entre deux chaînes
s
et
t.
L'algorithme présenté a une complexité temporelle et spatiale de (m + 1) ×
(n+1). Il faut en eet stocker et remplir la matrice en mémoire. Il est cependant
possible d'eectuer le calcul en ne gardant que la ligne précédente et la ligne
actuelle en mémoire, ce qui réduit la quantité de mémoire utilisée à
O(m).
D'autres implémentations plus performantes, mais plus complexes existent, par
exemple celle de Myers [24]. Les performances de l'algorithme de base nous
satisfaisant dans un premier temps, nous n'avons pas implémenté ces techniques
plus évoluées, mais nous envisageons de le faire dans de futures recherches.
La section suivante détaille la façon dont nous avons exploité l'algorithme de
Levenshtein pour rechercher une correspondance entre un extrait inédit et une
piste de la base de données.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
58
Algorithme 4.1 Distance de Levenshtein
Étape 1 :
Dénir n = longueur de s ;
Dénir m = longueur de t ;
Si n = 0, renvoyer m et quitter ;
Si m = 0, renvoyer n et quitter ;
Construire une matrice de 0...m lignes et 0..n colonnes.
Étape 2 :
Initialiser la première ligne à 0..n ;
Initialiser la première colonnes à 0..m ;
Étape 3 :
Examiner chaque caractère de s (pour i de 1 à n) ;
Examiner chaque caractère de t (pour j de 1 à m) ;
Étape 4 :
Si s[i] = t[j], dénir un coût cost = 0 ;
Si s[i] 6= t[j], dénir un coût cost = 1 ;
Étape 5 :
Poser la cellule d[i, j] de la matrice comme étant le minimum de :
La cellule au dessus plus 1 : d[i − 1, j] + 1 (suppression) ;
La cellule à gauche plus 1 : d[i, j − 1] + 1 (insertion) ;
La cellule au dessus à gauche (sur la diagonale) plus le coût : d[i − 1, j − 1] + cost
(substitution).
Étape 6 :
Après toutes les itérations, la distance nale se trouve dans la cellule d[n, m].
4.2 Recherche de correspondances
An d'identier un extrait sonore, il faut un algorithme permettant de retrouver le morceau le plus similaire dans une base de données de pistes audio. L'algorithme doit être able et doit être capable de trouver une correspondance en
un temps raisonnable. Pour notre application, nous avons montré qu'il n'était
pas possible d'utiliser des techniques basées sur des tables de hachage comme
le fait Shazam [27][28] et d'autres applications [19][21]. Une table de hachage
permet d'accéder de façon quasi instantanée (théoriquement, en un temps
O(1))
à l'information recherchée. Étant donné que nous cherchons à identier des extraits diérents de ceux qui sont contenus dans la base de données, il est très
dicile de calculer pour ces extraits une emprunte qui sera identique à une autre
emprunte d'une piste contenue dans une base de données. Il est donc nécessaire
de parcourir chaque morceau de la base de données et de calculer un score pour
chaque piste. Nous avons expérimenté une première technique inecace basée
sur un algorithme de fenêtre glissante. Nous avons ensuite amélioré cette méthode pour éviter de parcourir toute la base de données. Enn, nous avons rééchi
à d'autres pistes permettant d'accélérer la recherche.
4.2.1 Fenêtre glissante
Le premier algorithme implémenté utilise une fenêtre glissante. Un extrait
de N secondes est enregistré au format WAV échantillonné à une fréquence de
44100 Hz et quantié par 16 bits. Ce dernier est ensuite envoyé à l'algorithme
de reconnaissance qui fonctionne comme suit.
Chaque piste de la base de données est parcourue. Rappelons que chaque
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
59
Figure 4.8 Algorithme par fenêtre glissante. L'extrait glisse sur chaque piste
de la base de données.
morceau est représenté dans la base de données par une liste d'accords. Chaque
piste est ensuite découpée en fenêtre de N secondes, où N correspond à la durée
de l'extrait à identier. L'extrait est ensuite comparé à toutes les fenêtres possibles de la piste. En pratique, l'algorithme capture une première fenêtre de
N secondes au début de la piste, puis avance d'un point, capture une nouvelle fenêtre, et continue jusqu'à atteindre la n du morceau. L'opération est
répétée pour chaque piste de la base de données. L'extrait musical à identier
est alors comparé à chaque fenêtre de chaque morceau et un score est calculé
pour chaque piste. L'algorithme renvoie nalement une liste des dix meilleures
correspondances. La Figure 4.8 montre le principe de l'algorithme. Une extrait
glisse le long d'une piste est est comparé à chaque fenêtre possible.
Cette méthode fonctionne et renvoie de bons résultats (voir Section 4.4),
mais présente l'inconvénient d'être extrêmement lente à l'exécution. En eet,
chaque piste contient en moyenne 800 à 1000 fenêtres à analyser. Selon le nombre
d'éléments dans la base de données, le temps d'exécution devient rapidement
inacceptable. Nous avons donc cherché à améliorer ces performances.
4.2.2 Fenêtres aléatoires
Parmi toutes les fenêtres possibles sur une piste d'une durée de trois minutes,
il y a inévitablement un grand nombre de fenêtres similaires. Pour améliorer les
performances, nous avons eu l'idée de sélectionner un sous-ensemble de toutes
ces fenêtres an d'éviter de capturer toutes les fenêtres. Le gain en termes de
performances pour une piste serait non négligeable, et le temps d'exécution
global serait indéniablement réduit.
Nous avons mis en ÷uvre une méthode qui ne parcourt que 200 fenêtres
pour chaque piste. Ainsi, quelle que soit la durée d'une piste, 200 fenêtres seront
toujours capturées. Pour sélectionner ces fenêtres, nous utilisons un générateur
de nombres aléatoires qui renvoie un entier compris dans l'intervalle
[0, L − N ],
où L est la longueur d'une piste et N la longueur de l'extrait à identier. Nous
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
60
générons 200 valeurs aléatoires qui correspondent à l'indice à partir duquel il faut
capturer une fenêtre de N secondes. La valeur de 200 fenêtres a été déterminée
expérimentalement. Nous avons exécuté l'algorithme avec des valeurs inférieures
à 200, mais les résultats n'étaient plus aussi précis. En pratique nous obtenons
des résultats optimaux pour 200 fenêtres.
Cet algorithme est beaucoup plus performant que le précédent. En eet,
dans une base de données de 100 pistes, alors qu'il fallait environ une minute
à l'algorithme par fenêtre glissante pour identier un extrait, il ne faut plus
qu'une dizaines de secondes pour obtenir un résultat correct. Cette méthode
est donc dénitivement meilleure que la précédente et est à privilégier. C'est
donc cet algorithme que nous avons implémenté dans la version nale de notre
application.
Bien que cette méthode soit plus performante, elle nous obligé néanmoins
à parcourir l'intégralité des pistes de la base de données. Nous avons rééchi à
d'autres méthodes permettant d'outrepasser cette limitation.
4.2.3 Méthodes de clustering
Une solution des pour éviter de parcourir toute la base de données serait
de diviser celle-ci en clusters, c'est-à-dire en sous-ensembles relativement homogènes, et de parcourir un nombre limité de clusters. Nous avons imaginé
une solution de clustering qui se base sur des histogrammes pour identier les
clusters à parcourir.
Le principe est le suivant. Chaque ensemble (cluster) contient un certain
nombre de fenêtres d'une durée de dix secondes. Les fenêtres d'un cluster doivent
être semblables les unes aux autres. Une mesure de similarité entre deux fenêtres
est donnée par la distance de Bhattacharyya entre les histogrammes des fréquences
de chaque accord constituant la fenêtre. Rappelons que le détecteur d'accords
utilisé ne reconnaît que dix accords. Dès lors, pour déterminer si deux fenêtres
sont similaires, il sut de comparer deux histogrammes de dix éléments. Sur
base de ce critère, on peut désormais établir un algorithme de création de clusters. Chaque cluster est identié par un histogramme représentatif des fenêtres
qu'il contient. Pour identier un nouvel extrait, il faut calculer son histogramme
et identier les N clusters les plus proches de cet extrait. Il faut ensuite parcourir
les fenêtres de chaque cluster et renvoyer les correspondances les plus proches.
Ainsi, on évite de parcourir inutilement l'ensemble de la base de données.
La diculté d'un tel algorithme est la création des centres de chaque cluster.
En eet, pour construire la base de données, il faut déterminer M centres, où M
est le nombre de clusters dont on aimerait disposer. Une fois ces centres choisis,
on parcourt l'ensemble des fenêtres de la base de données et chaque fenêtre est
attribuée à un centre.
La méthode que nous avons implémentée sélectionne 1000 fenêtres de façon
aléatoire parmi toutes les fenêtres de la base de données et dénit ces fenêtres
en tant que centres. Les histogrammes de ces centres sont alors calculés et la
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
61
base de données est construite en attribuant chaque fenêtre dans un des 1000
ensembles générés.
Malheureusement, cette technique de construction des centres ne produit pas
de résultats satisfaisants. Bien que le temps d'exécution soit fortement réduit et
qu'on obtienne un résultat quasi instantanément, celui-ci n'est en règle générale
pas correct. Deux raisons peuvent expliquer ce disfonctionnement. La première
est que les centres ne sont pas sélectionnés correctement. Il faudrait sans aucun doute d'autres techniques de création des centres plutôt que de sélectionner
naïvement des centres aléatoirement. La deuxième raison est que la représentation des centres n'est peut être pas adaptée à nos besoins. Il serait intéressant
de rechercher d'autres possibilités de calcul des centres et d'autres mesures de
comparaisons an d'obtenir des résultats corrects. Nous planions ces expérimentations dans nos recherches futures.
4.3 Bases de données
Concevoir un système de reconnaissance d'extraits musicaux implique inévitablement l'utilisation d'une base de données de référence. An d'évaluer les
performances de notre système, nous avons construit plusieurs bases de données
contenant des pistes variées de divers styles de musique. Le but est de déterminer
si notre système se comporte mieux ou moins bien selon la base de données
utilisées.
Étant donné que notre système utilise un détecteur d'accords basé sur de
la guitare (voir Chapitre 3), il nous a semblé utile de concevoir une première
base de données de pistes jouées avec cet instrument. Nous avons également
construit une base de données contenant des morceaux de karaoké, joués avec
plusieurs instruments. An de tester notre système dans des conditions réelles et
de vérier son comportement, nous avons ajouté quelques pistes contenant de la
voix. Enn, nous avons constitué une base de données de tests, contenant divers
échantillons d'une durée de dix à trente secondes joués par trois instruments
diérents, à savoir la guitare, l'accordéon et le piano.
Cette section décrit les diverses base de données construites et leur contenu.
4.3.1 Pistes de guitare
Une base de données contenant un ensemble de pistes jouées à la guitare a été
enregistrée en chambre anéchoïde. Nous avons choisi d'enregistrer en chambre
sourde an de reproduire au mieux une qualité de studio. Ce choix s'explique
également par des questions de abilité. En eet, la plupart des tests sont effectués avec des échantillons enregistrés en environnement bruité. Nous avons
dès lors posé comme caractéristique de notre système qu'il doit être capable de
reconnaître des extraits bruités à partir d'une base de données non bruitée.
Concevoir une telle base de données en enregistrant manuellement chaque
piste est une opération longue et fastidieuse car il faut enregistrer chaque piste
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
62
manuellement. À cause de cette diculté, notre base de données ne contient
que 160 morceaux. Toutefois, an d'eectuer des tests pertinents, nous avons
enregistré des pistes utilisant pour la plupart des accords, rythmes et tempos
similaires. Ainsi, si le système est capable de reconnaître un extrait de dix secondes parmi un grand nombre de pistes similaires, il aura de fortes probabilités
de fonctionner de la même façon avec une base de données plus importante.
Les pistes enregistrées sont pour la plupart des accompagnements de chansons de variété internationale et française joués essentiellement en utilisant des
accords reconnaissables par notre détecteur d'accords. Notons que cette base de
données permet de démontrer que ces accords sont largement utilisés dans de
nombreuses pièces musicales modernes et cela justie une nouvelle fois le choix
de ces accords.
An de réaliser d'avantage de tests, nous avons inclus dans la base de données
certaines pistes jouées plusieurs fois, mais à des tonalités diérentes. Sur base
de notre descripteur, ces pistes similaires devraient être reconnues comme des
morceaux diérents. À cette n, nous avons joué les morceaux de la même
façon mais avec usage d'un capodastre, outil permettant de changer aisément
la tonalité d'une pièce jouée à la guitare.
4.3.2 Pistes de karaoké
Nous avons constitué une base de données diérente, contenant des pistes de
morceaux karaokés. Ces pistes contiennent pour la plupart plusieurs instruments
ainsi que de la percussion, mais pas de voix. L'intérêt d'une telle base de données est d'étudier le comportement de notre système dans des conditions plus
générales, non restreintes à un instrument unique. La diculté dans ce type de
pistes est que bien souvent, chaque instrument joue une mélodie ou des accords
diérents. Notre système sera capable d'extraire les accords globaux, formant
l'harmonie du morceau, mais ne pourra pas isoler chaque instrument.
Tout comme la base de données de guitare, ce nouvel ensemble de pistes
karaokés contient des chansons de variétés internationale ou françaises. Certaines pistes sont plus calmes que d'autres, mettant en évidence des instruments
particuliers tels que la guitare ou le piano. D'autres au contraire contiennent de
nombreux instruments, notamment de la guitare électrique, des synthétiseurs
et de la percussion. Il est ainsi possible de tester la reconnaissance de courts
extraits en utilisant divers styles de musique.
Pour des raisons de droits d'auteur et de copyright, les pistes ne sont pas
fournies en annexe.
4.3.3 Pistes originales contenant de la voix
Deux bases de données supplémentaires ont été créées pour tester notre système dans des conditions réelles, en utilisant des pistes originales, contenant de
nombreux instruments et de la voix. Les pistes sélectionnées ont été directement
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
63
extraites de disques originaux. Pour cette raison, nous ne les fournissons pas en
annexe.
En ce qui concerne la première base de données, nous avons simplement
introduit quelques pistes originales dans la base de données de karaoké an
d'étudier le comportement du système. La deuxième base de données contient
uniquement des morceaux originaux. On peut ainsi vérier si les pistes originales
dans une base de données complètement diérente sont reconnues puis comparer
les résultats par rapport à une base de données ne contenant que des pistes
originales.
4.3.4 Échantillons de test
Une dernière base de données a été conçue à des ns de tests et d'expérimentations. Celle-ci contient un ensemble d'extraits d'une durée variant entre 10 et
30 secondes, enregistrés à l'aide de trois instruments : une guitare, un piano,
un accordéon. Ces extraits sont tous enregistrés en environnement bruité, la
plupart avec un simple micro d'ordinateur portable. Les extraits au piano ont
été enregistrés à l'aide d'un synthétiseur, l'instrument étant directement connecté à l'ordinateur. Les extraits d'accordéons quant à eux ont été enregistrés
en environnement bruité à l'aide d'un micro à condensateurs classique.
Le but de cette base de données est d'évaluer les performances de notre système de reconnaissance. Elle contient plusieurs exemplaires de mêmes extraits
mais dans des versions diérentes. Un extrait peut être ainsi joué dans plusieurs
rythmes diérents et éventuellement à des tonalités diérentes. Dans ce dernier
cas, le système doit être capable de reconnaître deux pistes diérentes correspondant aux deux tonalités, pour autant que les deux versions soient contenues dans
la base de données générale. Certains extraits sont également joués à des vitesses
diérentes (tempos diérents) an de pouvoir étudier la robustesse du système
par rapport à des variations de tempos.
Toutes nos expériences ont été eectuées avec cette base de données de test.
Ces expériences ainsi que leurs résultats sont relatés dans la Section 4.4.
4.4 Expériences et résultats
An d'évaluer la pertinence et la abilité de notre système, il est important de
procéder à une série d'expériences. Nous relatons dans cette section les divers
tests eectués et les résultats obtenus. Plusieurs expériences ont été réalisées
avec chacune des bases de données créées (voir Section 4.3). Pour chaque test,
les validations se sont eectuées comme suit : plusieurs extraits d'une dizaine de
secondes ont été enregistrés et ont ensuite été envoyés au système an de trouver
une correspondance. À noter que ces échantillons correspondent en réalité à
l'ensemble de test décrit dans la Section 4.3.4. Pour chaque extrait, nous vérions
si le morceau correspondant a été reconnu. Nous considérons les dix meilleures
correspondances. Si la bonne piste est identiée en première position, il y a
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
64
correspondance parfaite. Toutefois, si la piste recherchée apparaît dans les dix
pistes les plus proches de l'extrait analysé, nous considérons que le résultat reste
acceptable. Il est eet plus simple de reconnaître un titre parmi dix propositions
que parmi toute une base de données. Dans le cas où la piste n'est pas reconnue
en première position, on peut considérer notre système comme un premier ltre
limitant les possibilités à dix pistes.
Les expériences suivantes ont été réalisées :
Nous avons tout d'abord testé des échantillons de guitare sur la base de
données de guitare uniquement. À cette n, nous avons utilisé des extraits
d'une dizaine de secondes joués à un tempo similaire à celui de la base de
données, mais à des rythmes diérents. La plupart du temps, les extraits
sont reconnus en première position. Nous avons ensuite tenté de reconnaître des extraits joués à des tempos et des tonalités diérentes, l'intérêt
étant d'analyser le comportement du système dans ces conditions.
L'expérience suivante consiste à reconnaître des extraits d'accordéons et
de piano avec la base de données de guitare. Nous disposons d'un nombre
plus limité de tels échantillons. L'intérêt de cette expérience est de montrer
que notre système est capable de reconnaître des extraits quel que soit
l'instrument utilisé.
Pour étudier le comportement de notre système dans des conditions plus
générales, nous avons tenté de reconnaître des extraits de guitare parmi
une base de données contenant des pistes de karaoké, et donc multiinstrumentale.
Enn, nous avons essayé de reconnaître des pistes originales, contenant de
la voix et de multiples instruments, à partir d'extraits de 10 secondes joués
à la guitare.
Pour chaque piste testée, nous fournissons au système plusieurs extraits et
nous observons le résultat renvoyé. Pour chaque expérience, nous présentons
un graphique global reprenant le pourcentage de pistes trouvées à chaque position de la liste des 10 meilleures correspondances. Pour quelques extraits, nous
donnons le détail et ferons référence au cd audio d'accompagnement an d'entendre les extraits testés.
4.4.1 Extraits joués à la guitare
Dans cette expérience, nous testons des extraits de 10 à 15 secondes joués à
la guitare.
Cinquante extraits de guitare ont été testés avec la base de données ne contenant que des pistes de guitare. La Figure 4.9 montre les résultats obtenus. On
92 % des extraits ont étés reconnus en première position, ce qui est
4 % des extraits ont été reconnus en deuxième po4 % restants ont été identiés en troisième position. La totalité des
constate que
particulièrement satisfaisant.
sition et les
morceaux a donc été identiée dans la liste des trois meilleures correspondances.
Précisons que les extraits testés sont tous très diérents les uns des autres.
Ces diérences sont volontaires an de vérier la abilité de notre système. Le
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
4%
65
4%
pos 1
pos 2
pos 3
92%
Figure 4.9 Résultats pour des extraits de guitare dans une base de données
de pistes de guitare.
Extrait
Position
Distance
alabama01
1
42
alabama02
1
38
alabama03
1
53
alabama04
1
57
alabama05
3
51
Table 4.1 Résultats pour Sweet Home Alabama
Tableau 4.1 montre les résultats obtenus pour la chanson Sweet Home Alabama
du groupe Lynird Skynird. En écoutant les pistes, on peut constater qu'elles
sont très diérentes les unes des autres, en particulier, les pistes alabama03
et alabama04 qui sont très diérentes de la version contenue dans la base de
données. La diérence dans la piste alabama05 est encore plus accentuée, ce qui
a pour conséquence de ne pas reconnaître le morceau en première position.
Le Tableau 4.2 donne les résultats obtenus pour la chanson While my guitar
gently weeps des Beatles. Cette piste a été enregistrée dans deux tonalités différentes dans la base de données. Ces deux versions peuvent être écoutées sur
les beatles1 et beatles2 du CD d'accompagnement. Les extraits beatles01 à beatles04 sont joués dans la première tonalité et les extraits beatles05 à beatles08
sont joués dans la seconde tonalité. De nouveau, les résultats sont excellents. Les
pistes correspondant aux deux tonalités sont bien reconnues et seul un extrait
à été identié en deuxième position.
Donnons les détails pour un morceau contenant des passages blancs, c'està-dire, des moments de silence. Il s'agit du morceau Should I stay or should I
go du groupe The Clash. Pour les passages silencieux, le détecteur d'accords ne
s'arrête pas et produit un entier étant donné qu'un silence ne correspond à aucun
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
Extrait
Position
Distance
beatles01
1
43
beatles02
2
44
beatles03
1
23
beatles04
1
23
beatles05
1
36
beatles06
1
31
beatles07
1
26
beatles08
1
37
66
Table 4.2 Résultats pour While my guitar gently weeps
Extrait
Position
Distance
clash01
1
45
clash02
1
49
clash03
1
42
Table 4.3 Résultats pour Should I stay or should i go
accord de la base de données. Il est donc intéressant d'observer le comportement
de notre algorithme pour un tel morceau. Le Tableau 4.3 montre les résultats
obtenus. Trois extraits du morceau sont identiés en première position. Contre
toute attente, le système identie aisément les extraits.
Changement de tempo
Nous avons spéciquement testé quelques extraits de la chanson Bell Bottom
Blues d'Eric Clapton à des vitesses diérentes de la version contenue dans la
base de données. Les extraits sont disponibles sur le CD d'accompagnement. Les
pistes bell01 et bell02 sont jouées à des tempos plus rapides. Ces deux pistes ne
sont pas reconnues comme étant la chanson d'Eric Clapton. De même la bell03
jouée à un tempo plus lent n'est pas reconnue.
Si l'on tente d'identier un extrait joué à un tempo diérent de la base de
données, la piste n'est donc pas reconnue. Ce comportement correspond bien à
celui qui est attendu. En eet, le système calcule dix vecteurs PCP par seconde.
Or si un extrait est joué à un tempo diérent, les mêmes accords ne seront pas
capturés aux mêmes instants que dans la piste originale. Les chaînes d'accords
produites par le détecteur d'accords seront donc diérentes et par conséquent,
l'extrait ne sera pas reconnu.
Il est important de préciser que ce comportement est voulu. Nous considérons
en eet que deux morceaux constitués des mêmes séquences d'accords mais joués
à des vitesses diérentes sont bien diérents. En eet, il est fréquent d'entendre
des chansons diérentes constituées pourtant la même séquence d'accords, mais
à des vitesses diérentes. Il faut alors identier ces chansons séparément, ce que
notre système permet de faire. Notons toutefois que si deux chansons diérentes
contiennent exactement la même chaîne d'accords joués au même tempo, il y
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
67
aura évidemment confusion.
Changement de tonalité
Avec la chanson While my guitar gently weeps des Beatles, nous avons tenté
de reconnaître des extraits joués à des tonalités diérentes, en utilisant un capo-
2
dastre . La base de donnée contient deux versions de cette chanson, jouées à
deux tonalités diérentes. L'algorithme d'annotation produit deux chaînes d'accords diérentes pour les deux versions de la chanson. En eet, à moins de
transposer une chanson à l'octave supérieure ou inférieure, les accords joués ne
sont plus les mêmes que dans la version non transposée. Les représentations de
ces deux versions sont donc totalement indépendantes et le système reconnaît
alors deux pistes séparément.
Lorsque l'on joue un extrait dans la tonalité originale, la piste originale est
retrouvée. Si l'on joue un extrait transposé, la version transposée est identiée.
Notre système est donc capable de séparer des pistes de tonalités diérentes.
De nouveau, ce comportement est volontaire. Ainsi, nous considérons que deux
morceaux identiques joués de façon transposée ne correspondent pas à la même
chanson. Dès lors, notre système a bien le comportement attendu.
Conclusion
Avec des extraits de guitare, notre système se comporte bien comme nous
l'espérions. Des extraits joués à un tempo similaire à la base de données sont
toujours identiés, en majorité en première position (98%). Quelques extraits
ont été reconnus en deuxième et troisième position (8%), mais ces résultats
restent acceptables.
Avec des tempos et des tonalités diérentes, les extraits sont reconnus conformément à nos attentes et permettent de distinguer des tempos et tonalités
diérentes. Un extrait d'un morceau A joué à un tempo diérent de la base de
données ne sera donc pas reconnu en tant que A. Ce même extrait joué à une
tonalité diérente ne sera pas non plus reconnu en tant que A, ce qui correspond
bien à nos attentes.
4.4.2 Extraits joués à l'accordéon
Cette expérience consiste à reconnaître des extraits de dix secondes joués
à l'accordéon. Nous disposons d'un nombre limité d'échantillons et par conséquent, nous donnons dans cette section les résultats pour chaque extrait
testé. Les échantillons d'accordéons sont évidemment joués très diéremment
des pistes de guitare présentes dans la base de données. En eet, les deux instruments ont des sonorités totalement diérentes. Le seul point commun entre
2. Un capodastre est un outil permettant au guitariste de jouer aisément à une tonalité
diérente.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
6%
68
6%
22%
pos 1
pos 2
pos 5
pos 6
67%
Figure 4.10 Résultats pour des extraits d'accordéons dans une base de don-
nées de pistes de guitare.
les extraits d'accordéon et les pistes de la base de données est le contenu en
termes d'accords.
La Figure 4.10 montre les résultats globaux pour les extraits testés. Sur 18
échantillons testés, on constate que
22 %
67 %
sont reconnus en première position,
sont reconnus en deuxième position, et les extraits restants sont classés
de façon équivalente en cinquième et sixième position, ce qui reste selon nous
acceptable.
Signalons qu'il est parfois dicile d'identier à l'oreille un extrait joué à
l'accordéon. Notre système parvient toutefois à reconnaître tous les morceaux.
Le Tableau 4.4 donne les résultats pour chaque extrait joué à l'accordéon.
Il est intéressant de noter que pour la piste L'Amérique de Joe Dassin, les
extraits sont très diérents de la piste de la base de données, y compris en terme
de tempo. En eet, si on écoute ces deux pistes, on peut constater certaines
irrégularités dans le tempo. Malgré cela, un des deux extraits est parfaitement
reconnu tandis que l'autre apparaît un peu plus bas dans la liste des meilleures
correspondances.
Conclusion
En conclusion, nous pouvons armer que la représentation des pistes musicales par des chaînes d'accords est bien indépendante de l'instrument utilisé.
Dès lors, qu'un extrait soit joué à l'accordéon ou à la guitare, les chaînes d'accords produites sont identiques ou très semblables. Il s'ensuit que les extraits
d'accordéon sont reconnus de la même façon que les extraits de guitare. La
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
Extrait
Position
Distance
bay01
1
45
bay02
1
51
cali01
1
39
cali02
1
34
heyjoe01
5
49
heyjoe02
1
47
laissepastomber01
1
47
laissepastomber02
1
50
sinsimelia01
1
36
sinsimelia02
1
39
toimoi01
2
32
toimoi02
1
20
dassin01
1
49
dassin02
6
64
tracy01
2
76
tracy02
2
68
papillon01
1
45
papillon02
2
29
San Francisco Bay Blues
Hotel California
Hey Joe
Ne la laisse pas tomber
Tout le bonheur du monde
Toi plus Moi
L'Amérique
Don't you know
L'eet papillon
Table 4.4 Résultats pour des extraits joués à l'accordéon
69
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
70
description utilisée ne se base donc que sur le contenu et est parfaitement indépendante du timbre et du rythme.
On peut donc supposer que les extraits seront bien identiés quel que soit
l'instrument utilisés. L'expérience suivante conrme cette thèse avec le piano.
4.4.3 Extraits joués au piano
L'expérience précédente a démontré que la représentation de morceaux par
des chaînes d'accords permet de reconnaître des extraits musicaux indépendamment de l'instrument utilisé. Dans cette section, nous donnons les résultats
d'une expérience similaire mais avec des extraits joués au piano. Tout comme
pour l'accordéon, les extraits joués au piano sont très diérents des pistes contenues dans la base de données, constituée de pistes jouées à la guitare. De plus,
certains extraits sont joués à un tempo légèrement diérent an d'étudier le
comportement de notre système dans ces nouvelles conditions.
Trente extraits ont été enregistrés à l'aide d'un synthétiseur, directement
connecté à la carte son d'un ordinateur. De ce fait, les extraits ne sont pas
bruités. En règle générale, les extraits joués sont bien reconnus. Notons toutefois que certains extraits de piano sont joués de façon assez diérente des pistes
contenues dans la base de données. C'est notamment le cas de la chanson Hal-
leluja de Je Buckley et de la chanson Parle moi de Pierre Rapsat. Pour cette
dernière chanson, les extraits au piano utilisent des accords légèrement diérents
de ceux joués par la guitare. Les chaînes d'accords produites sont donc trop peu
similaires et l'extrait n'est pas reconnu.
La Figure 4.11 indique les résultats obtenus pour les trente extraits testés.
Notons que ces trente extraits sont répartis sur dix pistes ; il y a donc trois
extraits par piste. En observant la gure, on remarque tout de suite un pourcentage élevé d'erreurs. En eet, 20% des extraits ne sont pas du tout reconnus
par le système. Toutefois, ce pourcentage élevé s'explique par le fait que deux
morceaux (et donc 6 extraits) n'ont pas du tout été reconnus. Les chires sont
mentionnés plus loin.
On peut également observer que la majorité des extraits sont reconnus en
première position. 20% des extraits apparaissent dans les cinq meilleures correspondances et 3% (correspondant à un seul extrait) apparaissent dans les dix
meilleures correspondances, plus précisément en huitième position.
Sur les dix pistes testées, deux n'ont pas du tout été reconnues. Il s'agit de la
chanson Parle moi de Rapsat et de la chanson Halleluja de Je Buckley. Aucun
des extraits testés n'a été reconnu. En réalité, si l'on écoute les extraits de piano
(pistes rapsat01, rapsat02, rapsat03, buckley01, buckley02, buckley03) et les deux
pistes originales de guitare de la base de données, on constate qu'elles sont
loin d'être similaires. La chanson de Pierre Rapsat est jouée à l'aide d'accords
diérents au piano et à la guitare ce qui produit par conséquent deux chaînes
d'accords diérentes. Quant à la chanson de Je Buckley, il s'est avéré que
l'extrait de piano a été enregistré dans une tonalité diérente de celle de la base
de données ! Il est donc parfaitement normal que le système ne trouve aucune
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
71
pos 1
top 5
top10
> 10
20%
3%
20%
57%
Figure 4.11 Résultats pour des extraits de piano dans une base de données
de guitare.
correspondance étant donné que les chaînes produites ne correspondent pas aux
mêmes accords. Signalons que ce changement de tonalité n'était pas prévu lors
de l'enregistrement. Il s'agit d'un pur hasard, mais on constate tout de même
que notre système se comporte comme attendu.
Le Tableau 4.5 donne les chires correspondant aux résultats pour les extraits
de piano. Les trois extraits par piste n'ont pas été explicitement repris. Seul un
extrait par piste est repris dans le tableau. On constate bien que la majorité
des morceaux sont reconnus en première position. Notons qu'aucun extrait de
Sweet Home Alabama n'est reconnu en première position, mais en deuxième
ou troisième position. Comme expliqué ci-dessous, Halleluja n'est pas du tout
reconnu à cause d'un changement de tonalité. De même Parle Moi n'est pas
reconnu à cause d'accords diérents. Soulignons également que la chanson Toi
plus Moi est particulièrement bien reconnue. En eet, la distance entre l'extrait
joué au piano et la piste de la base de données jouée à la guitare n'est que de
7, ce qui signie que seules sept opérations d'insertion, de suppression et de
substitutions sont nécessaires pour passer d'une chaîne à l'autre. Cela signie
que les deux chaînes d'accords sont extrêmement similaires, probablement parce
que l'extrait au piano est joué exactement au même tempo que la version de la
base de données.
Conclusion
Sur base des extraits testés au piano, on peut constater que le système répond
bien à nos attentes. En eet, la plupart des extraits sont bien reconnus, la
majorité en première position, et la majorité de ceux qui ne sont pas reconnus
en première position apparaît dans les cinq meilleures correspondances. Deux
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
Extrait
Position
Distance
alabama02
3
50
dassin02
1
21
1
44
heyjoe02
1
42
bonheur02
2
36
1
37
> 10
-
rapsat02
> 10
-
cali02
1
43
1
7
72
Sweet home Alabama
L'Amérique
San Francisco bay blues
bayblues02
Hey Joe
Tout le bonheur du monde
Knocking on heavens door
knock02
buckley02
Halleluja
Parle moi
Hotel California
Toi plus Moi
toimoi02
Table 4.5 Résultats pour des extraits de piano dans une base de données de
guitare.
pistes n'ont pas été identiées, la première à cause d'une tonalité diérente, ce
qui correspond à un comportement correct de notre système. La seconde n'a
pas été reconnue à cause d'une diérence d'accords entre l'extrait et la base de
données. De nouveau, ce comportement semble correct et répond à nos attentes.
Notre système réagit donc bien comme attendu avec des extraits joués au
piano, tout comme à l'accordéon. Aucun autre instrument n'a été testé, mais
sur base des résultats obtenus au cours des deux dernières expériences, on peut
supposer des résultats similaires avec tout type d'instrument capable de jouer
des accords.
4.4.4 Base de données Karaoké
An de tester notre système avec une plus grande variété de pistes musicales, nous avons choisi de l'expérimenter sur une base de données contenant
uniquement des pistes de karaoké. Ces pistes ne contiennent donc pas de voix.
En eet, la voix est souvent dominante dans les chansons et il semble plus dicile d'extraire des accords sur base d'une piste contenant de la voix. La base de
données contient 150 pistes karaoké très variées, allant de morceaux calmes tels
que Soldier of Fortune de Deep Purple à des chansons plus rythmées, contenant
bien plus d'instruments, notamment de la percussion et de la guitare électrique.
L'intérêt de cette expérience est d'observer jusqu'à quel point notre système
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
73
pos 1
pos 2
pos 5
18%
5%
pos > 10
18%
59%
Figure 4.12 Résultats pour des extraits dans une base de données Karaoké
produit des résultats corrects.
La Figure 4.12 montre la répartition des résultats pour 25 extraits testés.
Les morceaux testés contiennent essentiellement des accords bien audibles, bien
que couverts par d'autres instruments tels que de la percussion. Signalons également que dans certaines pistes, les accords sont jouées au synthétiseur.
extraits ont été correctement identiés en première position. Toutefois,
59 % des
18 % des
extraits ne sont pas reconnus du tout. Ce sont essentiellement des morceaux contenant beaucoup d'instruments dont les sons se recouvrent. Il est alors dicile
pour le système d'identier une chaîne d'accords correcte.
été reconnus en seconde position et
5%
18 %
des extraits ont
ont été reconnus en cinquième position.
Nous avons remarqué que seules les piste karaoké contenant peu d'instruments, ou mettant bien en évidence un instrument particulier (par exemple la
guitare acoustique ou le piano), sont correctement reconnues. Dès que l'on intègre d'autres instruments plus modernes tels que des guitares électriques, des
batteries et des synthétiseurs, le système n'est plus capable de reconnaître les
pistes convenablement. C'est notamment le cas avec la chanson Allo le monde,
de Pauline.
Ce phénomène s'explique comme suit. Le système produit une chaîne d'accords sur base du signal audio. Or un signal multi-instrumental ne met pas
nécessairement en évidence les accords du morceaux. L'harmonie globale est
parfois très dicile à identier pour des pistes contenant de la percussion ou
d'autres instruments. C'est le cas notamment des cymbales d'une batterie qui
viennent fortement perturber le signal audio. Dès lors, notre détecteur d'accords
n'est plus capable d'identier des accords de manière able et la chaîne produite
par l'algorithme d'annotation sera fortement diérente de la chaîne produite
pour un extrait de la même piste au piano ou à la guitare. Par conséquent, cet
extrait ne sera pas reconnu par notre système.
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
74
Conclusion
Seule une classe de morceaux particuliers mettant en évidence certains instruments est reconnue par notre système. Pour des pistes complexes contenant
de multiples instruments, il est dicile d'obtenir une chaîne d'accords correcte.
Pour avoir un système able dans tous les cas, il faudrait développer un
détecteur d'accords capable d'extraire des chaînes d'accords correctes pour tout
type de morceau et tout style de musique. Or c'est loin d'être évident. En eet,
pour de multiples instruments, il faudrait extraire soit une chaîne d'accords
globale se basant sur tous les instruments, soit une chaîne d'accords basées sur
un instrument particulier. Cela implique un isolement de la bande de fréquence
correspondant à cet instruments. Or bien souvent, dans un groupe de musique,
les bandes de fréquences correspondant aux divers instruments se recouvrent
et il devient alors impossible d'extraire un instrument en particulier avec des
techniques conventionnelles.
4.4.5 Base de données contenant de la voix
Nous avons réalisé quelques expériences en ajoutant dans une base de données existante des pistes originales, contenant de la voix. Les pistes ajoutées
sont des chansons calmes, contenant peu d'instruments et comprenant des passages exclusivement instrumentaux. Notre système n'a pas été conçu initialement pour reconnaître ce type de pistes. En eet, aucune des pistes ajoutées
ne met vraiment en évidence les accords globaux des morceaux et il est donc
dicile pour le détecteur d'accords d'extraire une chaîne correcte. Néanmoins,
il est intéressant de tester notre système avec ce type de chansons, an d'évaluer
ses performances.
Deux expériences ont été réalisées. La première consiste à ajouter quatre
pistes réelles dans notre base de données de guitare et à essayer d'identier
ces nouvelles pistes à l'aide d'extraits joués à la guitare, en arpèges ou en accords. La seconde consiste à créer une petite base de données de pistes originales
uniquement, et d'essayer de les reconnaître à l'aide de courts extraits joués à la
guitare.
4.4.5.1 Guitare et pistes originales
Quatre pistes ont été ajoutées dans notre base de données de guitare. Il s'agit
des chansons suivantes :
Hallelujah de Je Buckley ;
Soldier of Fortune de Deep Purple ;
Tears in Heaven de Eric Clapton ;
Layla de Eric Clapton.
Précisons que ces pistes étaient déjà présentes dans la base de données en version
instrumentale enregistrée en chambre sourde. Nous les avons supprimées de la
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
Extrait
Position
Distance
tears01
2
61
tears02
8
79
layla01
> 10
-
layla02
7
83
soldier01
1
95
soldier02
1
80
hallelujah01
2
65
hallelujah02
6
72
75
Table 4.6 Résultats dans une base de données de pistes originales
base de données et remplacées par les pistes originales dans le cadre de cette
expérience.
Pour chacune des quatre pistes, deux extraits de dix secondes ont été enregistrés et envoyés à notre système. Aucun extrait n'a été reconnu. Les pistes n'apparaissent pas dans la liste des dix meilleures correspondances. Dans tous les
cas, notre système trouve une piste de guitare diérente de la piste originale
recherchée. Étant donné que la base de données contient majoritairement des
pistes de guitare, un extrait de guitare identie plus facilement une piste de
guitare qu'une piste originale.
4.4.5.2 Pistes originales
Dans cette expérience, une petite base de données de pistes originales a été
construite à l'aide de notre système. Toutes les pistes sont donc annotées par
une chaîne d'accords et le système doit tenter de retrouver une correspondance
à partir d'un extrait d'une dizaine de secondes joué à la guitare. La base de données construite pour cette expérience contient 50 pistes originales relativement
calmes, principalement de Norah Jones, Robert Cray et Dave Matthews, ainsi
que les quatre pistes utilisées dans l'expérience précédente. Avec cette expérience, nous espérons démontrer que le système est capable de reconnaître une
piste dans une base de données relativement homogène, contenant des chansons
propres à un style particulier. En eet, toutes les pistes de la base de données
ont peu d'instruments et sont peu rythmées.
Nous avons tenté de reconnaître les extraits utilisés dans l'expérience précédente pour identier les quatre chansons en question. Ainsi, huit extraits de dix
secondes ont été envoyés au système an de les identier. Sachant que le système
n'a pas été conçu initialement pour ce type de base de données, nous considérons que le résultat est valide si la piste est identiée dans les dix meilleures
correspondances. Le Tableau 4.6 montre les résultats obtenus pour les extraits
testés.
Au terme de l'expérience, les résultats sont plus concluants que ceux de
l'expérience précédente, où aucun extrait n'avait été reconnu. Toutefois, à l'exception de la chanson Soldier of Fortune, ils sont loin de ceux que l'on avait
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
76
avec une base de données de guitare uniquement. Cependant, quelques extraits
apparaissent dans les premières positions.
Conclusion
Les résultats obtenus sont assez intéressants et permettent de tirer quelques
conclusions. Dans une base de données composée principalement de pistes mono
instrumentales jouées à la guitare, les chansons originales ne sont pas reconnues du tout. Or si l'on intègre ces pistes dans une base de données constituée
d'autres pistes originales, elles apparaissent dans la liste des dix meilleures correspondances. Cela signie que le système parvient à extraire des pistes originales
une liste d'accords assez représentative du contenu du morceau. Par la suite, le
système parvient ainsi à lier un extrait de guitare à une piste originale.
Ces résultats sont loin d'être parfaits, mais cette expérience ouvre de nouvelles perspectives vers lesquelles nous projetons de nous tourner dans l'avenir.
En eet, il semble à priori possible d'identier certaines pistes originales à l'aide
des accords qui les constituent. Il est pour cela nécessaire de concevoir un détecteur d'accords plus robuste, capable d'extraire les accords de signaux complexes.
N.b.
On remarque que les pistes originales ont été reconnues uniquement si
elles sont présentes dans une base de données constituée uniquement de pistes
originales. Dans la base de données karaoké, d'autres pistes ne contenant pas
de voix ont été reconnues en priorité. Cela signie que le contenu de la base
de données utilisée inuence les résultats. Si la base de données contient une
majorité de pistes de guitare et une minorité de pistes originales, un extrait
joué à la guitare trouvera une correspondance de guitare plutôt qu'une piste
originale. Avec une base de données karaoké, le principe est le même. La base
de données contient en majorité des pistes de karaoké et dès lors, une telle piste
est identiée en priorité. Il faut donc être très attentif à la construction de la
base de données.
4.5 Conclusion
Sur base du descripteur PCP décrit dans le Chapitre 3, nous avons développé
un algorithme de reconnaissance d'extraits musicaux capable d'identier des
pistes contenues dans une base de données sur base d'extraits de dix secondes
joués à la guitare, au piano, ou à l'aide d'autres instruments. Pour réaliser ce
système, il a été nécessaire d'identier un descripteur qui représente une piste
musicale et un extrait d'une dizaine de secondes. Deux descripteurs ont été expérimentés : le premier est un descripteur basé sur un spectre PCP, qui reprend
l'évolution des vecteurs PCP au cours du temps. L'utilisation de ce descripteur
s'est soldée par un échec et aucun extrait n'a pu être reconnu. Nous avons donc
orienté nos recherches vers un descripteur diérent, basé sur le détecteur d'accords que nous avons développé au Chapitre 3. Nous avons en eet choisi de
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
77
représenter une piste par une chaîne d'accords obtenue en utilisant le détecteur
d'accords. Chaque morceau est donc annoté par une liste d'accords, en pratique par une chaîne de caractères. Dès lors, nous avons utilisé un algorithme
de comparaison de chaînes pour mettre en correspondance deux extraits de dix
secondes.
Pour identier un extrait, nous avons conçu un algorithme utilisant une
fenêtre glissante. Ainsi, l'algorithme compare ce dernier à toutes les fenêtres de
même taille que l'extrait de la base de données. L'algorithme renvoie ensuite
la liste des dix pistes les plus proches de l'extrait. Pour comparer deux chaînes
d'accords, nous avons utilisé une distance d'édition, plus particulièrement une
distance de Levenshtein. Cette distance renvoie le nombre d'opérations d'insertion, de suppression, de substitution et de permutation nécessaires pour passer
d'une chaîne à l'autre.
En utilisant cet algorithme, notre système est capable de reconnaître la plupart des extraits testés. Nous avons construit plusieurs bases de données contenant divers types de pistes, allant de pistes de guitare à des pistes karaokés
ou des pistes originales contenant de multiples instruments. Les extraits testés
sont volontairement bruités et très diérents des pistes présentes dans les bases
de données en termes de rythme et de dynamique. Les résultats obtenus sont
très satisfaisants.
La Figure 4.13 donne un récapitulatif des résultats des diverses expériences
eectuées. Pour chaque expérience, la gure montre le pourcentage de fonctionnement correct du système et le pourcentage de fonctionnement incorrect. On
considère que le système fonctionne correctement si
un extrait est reconnu dans la liste des cinq meilleures correspondances ;
un extrait n'est pas reconnu et ne devrait pas l'être (par exemple à cause
d'un changement de tonalité).
Le système ne fonctionne pas correctement si
un extrait n'est pas reconnu alors qu'il devrait l'être ;
un extrait est reconnu mais au delà de la cinquième position dans la liste
des meilleures correspondances.
En utilisant une base de données de pistes de guitare, tous les extraits sont
identiés correctement. En eet, 92% des extraits ont été parfaitement identiés
en première position et les 8% restants sont identiés en deuxième et troisième
positions. Notons que les morceaux de la base de données se ressemblent et
utilisent pour la plupart des accords similaires. Malgré cela, le système identie
les extraits convenablement. On peut donc considérer que le système a bien
fonctionné dans 100% des cas, comme le montre la Figure 4.13.
En utilisant la même base de données, nous sommes parvenu à identier des
extraits joués à l'accordéon et au piano. Parmi les extraits d'accordéon testés,
67% sont reconnus parfaitement, 22% en deuxième position et le reste apparaît
en cinquième et sixième position dans la liste. Les résultats peuvent dont être
CHAPITRE 4.
RECONNAISSANCE D'EXTRAITS MUSICAUX
78
Taux de fonctionnement correct / incorrect
100
Resultats corrects
Resultats incorrects
90
80
pourcentage
70
60
50
40
30
20
10
0
guitare
accordeon
piano
experiences
karaoke
voix
Figure 4.13 Taux de fonctionnement correct et incorrect pour chaque
expérience.
considérés comme corrects dans 89% des cas et moins bons dans 11% des cas.
Toutefois, tous les extraits sont reconnus dans le top 10 des résultats.
En ce qui concerne le piano, le système se comporte comme attendu pour
26 extraits sur les 30 testés. Les pistes sont bien identiées et pour l'extrait
de la chanson Halleluja qui n'est pas reconnu, le comportement est également
cohérent puisque la tonalité est diérente de la base de données. Un extrait est
reconnu en huitième position et trois extraits de la chanson Parle moi ne sont
pas reconnus, ce qui donne un total de 13% de fonctionnement incorrect.
Notre système est également capable de reconnaître des extraits joués à la
guitare parmi une base de données de pistes karaokés. Toutefois, nous avons
constaté que seuls des morceaux relativement calmes, contenant peu d'instruments et mettant en évidence des accords sont reconnus convenablement, ce qui
semble logique. Le système est par contre incapable d'identier des pistes complexes contenant de nombreux instruments. Pour cette expérience, le système se
comporte comme attendu dans 82% des tests et ne fonctionne pas correctement
pour 18% des extraits testés.
Pour l'expérience de reconnaissance d'extraits musicaux dans une base de
données de pistes originales contenant de la voix, deux tests ont été eectués.
Dans un premier temps, nous avons introduit quelques pistes originales dans
une base de données karaoké. Dans ce cas, aucun extrait n'est reconnu. Dans
un deuxième temps, nous avons créé une base de données de pistes originales
uniquement. Dans ce dernier cas, 50% des extraits sont reconnus dans le top 5
et 50% sont classé plus loin dans la liste, ou ne sont pas du tout reconnus. La
Figure 4.13 montre uniquement cette dernière expérience. Il semble ainsi possible
d'améliorer notre système pour le rendre utilisable avec des pistes originales.
CHAPITRE
5
Conclusion Générale et Perspectives
À l'heure actuelle, il existe un manque de maturité en matière d'indexation de contenu musical. Ce manque se traduit par l'utilisation majoritaire de
requêtes textuelles pour faire de la recherche de documents musicaux. Des applications permettant des requêtes basées sur le contenu existent bien, mais elles
sont toutes relativement limitées et ne permettent pas d'identier des extraits
musicaux inédits, diérents des pistes contenues dans une base de données de
référence. La question de la description des pistes est donc des plus cruciale, car
elle constitue l'information de départ dans un système de recherche. De ce fait,
elle inuence les résultats d'un moteur de comparaison.
Dans ce travail de n d'études, nous avons contribué à l'amélioration des
connaissances dans le domaine de l'indexation musicale. Nous avons conçu un
programme capable de reconnaître de courts extraits musicaux joués par divers
instruments de musique, en utilisant une base de données centrale.
Pour y parvenir, deux éléments étaient essentiels : d'abord, une représentation idéale pour les pistes de la base de données et les extraits qui doivent être
identiés, ensuite, un algorithme capable de retrouver dans une base de données
la piste la plus proche d'un extrait joué.
Sur base d'une étude détaillée de la littérature réalisée dans le Chapitre 2,
nous avons choisi de représenter les pistes musicales à l'aide des accords les
constituant. Cette représentation est idéale car elle est totalement indépendante
de l'instrument ainsi que du rythme auquel le morceau est joué. Un descripteur
massivement utilisé dans des applications relatives aux accords est le Pitch Class
Prole (PCP) introduit par Fujishima. Ce dernier décrit un accord par l'intensité
des douze notes le constituant.
79
CHAPITRE 5.
CONCLUSION GÉNÉRALE ET PERSPECTIVES
80
An de vérier la robustesse du PCP, nous avons développé un algorithme
de reconnaissance d'accords, dont le but était de démontrer que le descripteur
était capable de décrire des accords, quel que soit l'instrument de musique utilisé.
Le système conçu utilise des techniques d'apprentissage automatique. À notre
connaissance, nous sommes les premiers à proposer une telle application en
utilisant des méthodes d'apprentissage, ce qui en fait un système novateur. Dans
le Chapitre 3, nous avons détaillé la conception de l'algorithme, ainsi que les
expériences réalisées. Nous avons en particulier mis en évidence la création d'une
base de données d'accords réels enregistrés à la guitare, ainsi que d'une base de
données de tests enregistrée à l'aide de plusieurs instruments. Aucune base de
données similaire n'étant actuellement disponible, nous projetons de rendre la
nôtre librement accessible. Le système de reconnaissance d'accords conçu a par
ailleurs été valorisé par l'écriture d'un article de conférence.
Notre algorithme a produit d'excellents résultats. En eet, le taux d'erreur
de reconnaissance avec des accords de guitare, de piano, de violon et d'accordéon
sont respectivement de 0%, 6%, 12% et 10%. À l'heure actuelle, seuls dix accords
massivement utilisés dans la musique occidentale sont capables d'être reconnus
avec une grande précision, mais nous prévoyons d'étendre la capacité du système
à plus de dix accords.
Ayant démontré que le PCP était approprié pour représenter des accords,
nous avons utilisé ce dernier pour décrire des pistes musicales complètes. Le
Chapitre 4 relate les expériences réalisées et les résultats obtenus. Un premier
descripteur basé sur des vecteurs PCP bruts a été imaginé, mais n'a pas produit de résultats satisfaisants. Suite à cet échec, il a été décidé de représenter
une piste musicale par la liste des accords la constituant. Un algorithme d'annotation de pistes par des accords a donc été développé, en utilisant le système de reconnaissance d'accords préalablement créé. Nous avons constaté que
cette représentation était able et que pour des extraits joués diéremment, les
représentation par listes d'accords ne varient que très peu. Les extraits et les
pistes d'une base de données sont donc représentés par de simples chaînes de
caractères. Cette liste d'accords contient en outre une information temporelle
étant donné que des accords sont capturés à intervalles réguliers.
Pour rechercher une correspondance à un extrait musical dans une base de
données, nous avons implémenté un algorithme de comparaison de chaînes de
caractères. En eet, les extraits à identier et les pistes de la base de données
étant représentés de la même façon, il sut de comparer les chaînes d'accords
produites pour retrouver la piste la plus proche de l'extrait testé. La distance
utilisée pour calculer l'écart entre deux chaînes de caractères est la distance de
Levenshtein, qui renvoie le nombre d'opérations d'insertion, de suppression et
de substitution pour passer d'une chaîne à l'autre.
L'algorithme de reconnaissance développé a été testé sur un grand nombre
d'extraits joués à la guitare, à l'accordéon ainsi qu'au piano. Plusieurs bases
de données contenant des styles de musique diérents ont été construites an
d'évaluer les performances du système. En utilisant une base de données de
pistes de guitare, 92% des extraits joués à la guitare ont été reconnus en première
position et 8% en seconde position. Avec la même base de données, notre système
a reconnu parfaitement 67% des extraits d'accordéon testés. 22% de ces extraits
CHAPITRE 5.
CONCLUSION GÉNÉRALE ET PERSPECTIVES
81
ont été reconnus en deuxième position et les derniers extraits apparaissent en
cinquième et sixième position. On peut donc considérer les résultats corrects
dans 89% des cas. Pour des extraits de piano, le système fonctionne comme
attendu pour 87% des extraits testés. Il se comporte moins bien pour 13% des
extraits, et certains ne sont pas du tout reconnus.
Le système a également été testé en utilisant une base de données de pistes
karaoké. Nous avons toutefois constaté que seules les pistes mettant en évidence
les accords du morceau sont correctement identiées. Ce sont principalement
des pistes plus calmes jouées par des instruments acoustiques qui ont un taux
de reconnaissance élevé. Il devient beaucoup plus dicile d'identier des pistes
contenant de nombreux instruments, et ayant par conséquent un signal très
complexe. La description d'un extrait de guitare devient alors très diérente de
celle de la piste que l'on cherche à identier. Néanmoins, pour des pistes calmes,
le système a un taux de reconnaissance correct de 82%.
An de tester le système dans des conditions plus générales, nous avons
constitué une base de données de pistes originales, directement extraites de
CDs audio. Dans ce cas, 50% des extraits testés à la guitare sont identiés, et
50% ne le sont pas. Bien que la voix soit dominante dans ce type de pistes,
on parvient à identier la moitié des extraits testés, ce qui ouvre de nouvelles
perspectives de recherche.
De futures recherches supposent des améliorations des techniques développées dans les chapitres 3 et 4. En eet, au terme de ce travail, deux systèmes
ont été conçus : un algorithme de reconnaissance d'accords et un algorithme
de reconnaissance d'extraits musicaux. Ces deux modules ouvrent tous deux de
nouvelles possibilités.
Le système de reconnaissance d'accords ne peut à l'heure actuelle reconnaître
que dix accords. On peut dès lors imaginer un système capable de reconnaître
tous les accords existants. Il est évident qu'un enregistrement des échantillons
réels pour tous les accords existants serait long et fastidieux. Par contre, sur
base du travail réalisé, il serait intéressant de générer automatiquement une
base de données représentant la totalité des accords existants. On s'orienterait
alors vers des techniques de génération automatique de base de données.
Une autre piste de recherche est la conception d'un système qui, en plus des
accords, extrait un tempo d'une piste audio. Sur base des accords, de leur répartition au cours du temps et du tempo, on pourrait alors générer une partition
automatiquement. Les applications d'un tel système sont vastes : analyse d'une
pièce musicale, génération automatique de partition, transposition automatique
de partitions.
Poursuivre des recherches dans le domaine de la reconnaissance automatique
d'accords conduirait sans aucun doute à de passionnantes découvertes.
Le deuxième module créé dans ce travail est un système de reconnaissance
d'extraits musicaux. Les résultats de nos expériences montrent qu'avec une base
de données constituée essentiellement de pistes mono-instrumentales, la reconnaissance d'extraits de dix secondes est excellente, et ce quelque soit l'instrument
CHAPITRE 5.
CONCLUSION GÉNÉRALE ET PERSPECTIVES
82
utilisé. De là, nous pouvons armer que si les pistes de la base de données mettent bien en évidence les accords les constituant, notre système sera capable
d'identier n'importe quel extrait relativement similaire.
Quelques applications concrètes de notre système sont données ci-dessous.
Un compositeur peut vouloir s'assurer que sa dernière composition n'est pas
trop similaire à une chanson déjà existante. Il peut se servir de notre système
pour identier la liste des pistes les plus proches et obtenir une distance séparant sa composition des pistes reconnues. Une autre application pourrait être
l'identication d'une piste en live. On entend une piste lors d'un concert mais
cette dernière est diérente d'une version studio stockée dans une base de données. Toutefois, les accords restent les mêmes et par conséquent, le système sera
capable d'identier la piste. Les applications existantes ne permettant pas une
telle reconnaissance, notre approche est donc novatrice.
Malgré ces possibilités, force est de constater que notre système est loin de
fonctionner idéalement avec une base de données plus générale, contenant des
pistes originales. Toutefois, au vu des résultats de nos expériences, des améliorations pour accroître les performances du système semblent réalisables.
Une première amélioration serait d'augmenter la capacité de reconnaissance
du détecteur d'accords à plus de dix accords. On obtiendrait ainsi une description plus précise et plus discriminante. Pour améliorer les résultats avec
des signaux complexes, on pourrait, tout comme pour la reconnaissance d'accords, utiliser des descripteurs supplémentaires pour décrire une piste. Cela
contribuerait à l'amélioration des résultats. Une indication de tempo, par exemple, apporterait une information non négligeable. Une autre piste pourrait être
l'isolement de certaines bandes de fréquences mettant plus en évidence les accords que d'autres. La question est alors de déterminer les bandes de fréquences
adéquates. De nombreuses possibilités restent donc à explorer.
Des améliorations peuvent également être apportées dans l'algorithme de
recherche de correspondances. À l'heure actuelle, nous utilisons un mécanisme
de fenêtre glissante qui se sert d'une distance de Levenshtein pour comparer
deux chaînes de caractères. D'autres solutions ont été imaginées, notamment
des techniques de clustering, mais elles n'ont pas été approfondies. Une étude
approfondie de ces méthodes permettrait de fortement réduire le temps d'identication d'un extrait. D'autres possibilités peuvent également être explorées
pour représenter diéremment la base de données : SQL, cloud computing, etc.
Bien que l'application issue de nos recherches soit perfectible, elle est capable
à ce stade de reconnaître avec un degré de précision élevé des extraits joués à
l'aide d'instruments de musique. À l'inverse des méthodes de recherche textuelles
habituellement utilisées, notre approche ore à l'utilisateur la possibilité d'interagir de manière plus naturelle avec l'ordinateur. Alors que les recherches dans ce
domaine sont encore peu développées, l'approche et les techniques utilisées ainsi
que les résultats obtenus nous permettent de croire qu'ils pourraient contribuer
à l'élaboration d'applications très prometteuses.
ANNEXE
A
Notions Musicales
L'objectif de notre travail est de concevoir un système d'identication de
pistes musicales sur base de courts extraits joués à la guitare, ou à d'autres
instruments. Développer un tel système fait inévitablement appel à des notions
théoriques de musique. En eet, certains termes utilisés nécessitent la compréhension de certaines de ces notions. Le lecteur familiarisé avec ces notions
musicales ne se sentira pas obligé de poursuivre la lecture de cette annexe.
Le but de cette annexe est donc de fournir au lecteur non musicien une
première approche de certaines notions musicales utilisées dans ce document.
L'objectif n'est pas de donner un cours de musique, mais bien de présenter le
vocabulaire utilisé dans ce document et de familiariser le lecteur avec ces notions
musicales. Notons que les notions que nous abordons peuvent comporter des
approximations. Le lecteur désireux d'approfondir ses connaissances dans les
notions considérées pourra se référer à [16].
Dans sa thèse, Carre [3] présente quelques dénitions intéressantes qui sont
reprises ci-dessous. Nous abordons également d'autres notions nécessaires à la
compréhension de ce document, telles que les accords et les gammes.
A.1 Dénitions
Intervalle
Un intervalle est l'écart séparant deux sons. Il est exprimé en demi-tons
et témoigne du rapport des fréquences fondamentales des sons en cause. Soit
83
ANNEXE A.
84
NOTIONS MUSICALES
deux sons ayant pour fréquences fondamentales
f01 et f02
exprimées en hertz.
L'intervalle existant entre les deux sons est donné par :
Intervalle = 12 × ln(
f02
)
f01
(A.1)
Octave
C'est l'intervalle perçu par l'auditeur non exercé comme une similitude totale
entre deux notes. Physiquement, il correspond à une fréquence fondamentale
multipliée par deux. Pour un auditeur non exercé, il s'agit d'une même note
jouée plus haut ou plus bas, ou encore de façon plus aiguë ou plus grave.
Mais la note ne change pas, elle est juste jouée à une octave diérente.
Les gammes et les modes occidentaux ont été conçus pour que les notes se
répartissent à l'intérieur de l'octave. Dans ce contexte, l'octave est l'intervalle
qui sépare deux notes portant le même nom. L'étendue des notes audibles est
découpée en octaves numérotées, ce qui permet de dénir la hauteur d'une note
sans ambiguïté (e.g. do3, sol6).
Tempérament
Le tempérament correspond à une manière de répartir les intervalles de la
gamme sur un clavier ou instrument à sons xes. À la diérence de la voix ou
d'un violon qui peuvent emprunter le continuum des hauteurs, et donc adapter
la hauteur d'une note à son contexte, les instruments à sons xes doivent se plier
à des approximations dont aucune ne peux être considérée comme parfaite. Certaines variantes ont été adoptées au l des âges, la dernière étant le tempérament
égal, qui divise l'octave en douze demi-tons égaux. Un instrument, ou encore
des hauteurs de notes, sont qualiées de tempérés lorsqu'ils appartiennent à ce
système. La guitare ou le piano appartiennent notamment à ce système.
Demi-ton
De la même façon que l'échelle des hertz est associée aux fréquences, l'échelle
des demi-tons est associée aux hauteurs des notes. Elle témoigne de la perception
logarithmique que nous avons des variations de fréquences fondamentales.
Le tempérament égal divisant l'octave en douze demi-tons égaux, le demi-ton
correspond à la multiplication d'une fréquence fondamentale par
21/12 .
L'écart
en fréquence est donc fonction de la hauteur de la note initiale. En revanche,
l'écart perçu à l'écoute est identique quel que soit le domaine de fréquence où
l'on se place, ce qui est traduit par l'unité de demi-ton. Le demi-ton correspond
par exemple à l'écart existant entre deux touches de piano contiguës ou entre
deux frettes (cases) successives d'une guitare.
ANNEXE A.
85
NOTIONS MUSICALES
Tonalité
La tonalité se compose de deux éléments distincts que sont le ton et le mode.
Le ton donne la couleur d'une tonalité. On parle ainsi de tonalité mineure ou
majeure. Le mode quant à lui donne la hauteur globale d'une piste musicale
(par exemple, sol4). Ainsi, il est possible de jouer un morceau dans des tonalités
diérentes. Un chanteur adaptera la tonalité de façon à ne pas forcer sur sa voix.
Un auditeur non exercé perçoit un morceau comme étant joué de façon plus aiguë
ou plus grave. On parle alors de changement de tonalité ou de transposition.
Un guitariste peut par exemple aisément changer de tonalité en utilisant un
capodastre, qui est un appareil permettant de réduire la longueur des cordes de
façon à modier la tonalité.
Armature ou Armure
C'est un terme désignant la ou les altérations constitutives d'une tonalité. On
parle généralement de dièse ou de bémol (i.e.
], [).
Elles sont écrites en général
sur une partition directement après la clef et elles aectent toutes les notes de
même nom, quelle que soit leur octave, et leur eet se prolonge pendant toute
la durée du morceau. Les altérations permettent de spécier que certaines notes
seront jouées un demi-ton plus haut (]) ou un demi-ton plus bas ([).
Tessiture et Ambitus
La tessiture est la zone de hauteurs dans laquelle une voix, ou plus généralement un instrument, sonne bien . Les limites de la tessiture sont assez oues,
mais appartiennent à l'ambitus, qui se dénit par les notes extrêmes que peut
atteindre l'instrument.
Tempo
Le tempo est lié à la rapidité d'exécution d'une pièce musicale. La manière
dite métronomique de l'indiquer consiste à fournir un nombre de battements
par minute (bpm) tout en assignant un battement à une unité de temps donnée,
représentée par une valeur de note, e.g. blanche, noire, croche, double-croche
etc.).
Valeur de note
La durée des notes d'une mélodie dépend du tempo auquel elle est jouée.
Plus le tempo est rapide, plus les notes sont courtes. Dans la notation musicale classique, chaque note possède une valeur. Celle-ci renseigne sur le rapport
existant entre les durées des notes présentes dans la musique considérée. Le
tempo de la musique xe aussi la vitesse d'exécution de celle-ci. Par exemple, la
valeur croche désigne une durée deux fois moins longue que la valeur noire. La
ANNEXE A.
NOTIONS MUSICALES
86
noire, quant à elle, dure deux fois moins longtemps qu'une blanche. Jouées à un
tempo de 60bpm à la noire, la noire dure 1s, la croche dure 0,5s et la blanche
dure 2s. Avec un tempo supérieur (par exemple le double, soit 120bpm), ces
mêmes valeurs correspondent à des durées moins longues, respectivement 0,5s,
1s et 2s.
Rythme
Le rythme résulte de la manière dont s'articulent entre elles non seulement les
durées, mais aussi et surtout les points d'appui sur lesquels celles-ci se placent.
Ainsi, un guitariste peut jouer un morceau sur un tempo donné avec plusieurs
rythmes diérents. En général, le mouvement de sa main droite changera en
fonction du rythme, mais le tempo global du morceau ne change pas. Les durées
sont simplement articulées diéremment.
Mesure et Métrique
La mesure est une unité rythmique. Sur une partition, les mesures sont délimitées par des barres verticales découpant la portée. La structure interne à la
mesure est dénie par la métrique. Cette dernière intervient dans la localisation
des points d'appui du rythme d'une musique.
Temps (unité)
Le temps est l'unité rythmique correspondant à la subdivision d'une mesure.
Selon le type de mesure (simple, composée), le nombre de temps qu'une mesure
peut contenir varie.
A.2 Gammes
Nous avons vu que l'intervalle est l'écart entre deux notes, ou encore la
diérence de hauteur entre deux notes. On parle encore de rapport entre les
fréquences fondamentales des deux notes. L'intervalle le plus simple est l'octave.
Jouer une note une octave plus haut revient à jouer la note de façon deux fois
plus aiguë, c'est-à-dire en doublant sa fréquence. Deux notes séparées par une
octave sont extrêmement semblables pour l'oreille et c'est notamment la raison
pour laquelle deux notes jouées à deux octaves diérentes portent le même nom.
Un autre intervalle important est la quinte. C'est par exemple l'intervalle qui
existe entre deux cordes voisines sur un violon (Sol - Ré - La - Mi). Jouer une
note une quinte plus haut correspond à multiplier la fréquence de la note par
3/2.
L'intervalle entre deux notes séparées par une quinte correspond à trois
tons et demi.
ANNEXE A.
87
NOTIONS MUSICALES
1
2
3
4
5
6
7
8
9
10
11
12
Do
Do]
Ré
Ré]
Mi
Fa
Fa]
Sol
Sol]
La
La]
Si
C
C]
D
D]
E
F
F]
G
G]
A
A]
B
Table A.1 Les douze notes de la gamme chromatique.
Autre intervalle important : la tierce, qui vaut deux tons. Jouer une note
une tierce plus haut revient à multiplier sa fréquence par
5/4.
Ainsi, les notes
de l'enchaînement Do - Mi - Sol# - Do sont chacune séparées par une tierce.
Ces trois intervalles sont très utilisés dans la musique contemporaine occidentale, mais il en existe bien d'autres. Un ensemble de notes séparées par des
intervalles précis forme une gamme.
A.2.1 Gamme chromatique
La gamme chromatique consiste à diviser l'intervalle d'une octave en douze
parties égales que l'on appelle des demi-tons. Cette gamme est fortement utilisée
dans la musique occidentale. Les douze notes de la gamme chromatique sont
reprises dans le tableau A.1 en notation française (ligne 1) et en notation anglosaxonne (ligne 2), universellement utilisée dans la littérature.
A.2.2 Gammes diatoniques
La gamme chromatique n'est utilisée telle quelle que dans la musique moderne, en particulier le jazz. En général, on n'utilise pas ces douze notes pour
faire de la musique. Les gammes couramment utilisées sont des gammes dites
diatoniques et ne comportent que sept notes de la gamme chromatique. La
gamme diatonique la plus connue est celle de Do majeur : Do - Ré - Mi -
Fa - Sol - La - Si. Il existe douze gammes diatoniques majeures et mineures
correspondant aux douze notes de la gamme chromatique.
Une gamme diatonique est donc construite à partir de la gamme chromatique.
Le Tableau A.2 montre la gamme diatonique de Do Majeur. La première ligne
donne la position de la note dans la gamme, que l'on appelle aussi degré. Chaque
degré de la gamme majeure porte un nom :
1. Tonique
2. Seconde
3. Tierce
4. Quarte
5. Quinte
6. Sixte
7. Septième majeure
ANNEXE A.
T
C
88
NOTIONS MUSICALES
2
C]
D
D]
3
4
E
F
5
F]
G
6
G]
A
7M
A]
B
Table A.2 Gamme diatonique de Do Majeur.
T
C
D[
2
3m
D
E[
4
E
F
G[
5
6m
G
A[
7m
A
B[
B
Table A.3 Gamme de Do mineure.
On constate donc que sept notes sur les douze de la gamme chromatiques sont
sélectionnées. On parle ici de gamme de Do Majeur parce que la première note
(la tonique) est un Do. Si l'on applique la même technique en partant de la note
Mi, on obtient la gamme majeure de Mi. Les intervalles entre les notes de la
gamme de Mi majeure sont exactement les mêmes que ceux de la gamme de Do
majeur. À l'audition, les gammes sont très semblables, mais la gamme de Mi
semble plus aiguë que la gamme de Do.
Dans le Tableau A.2, les notes rouges correspondent respectivement à la
tonique, la tierce et la quinte. Ce sont les notes les plus importantes de la gamme
et forment un accord parfait (voir Section A.3). Les notes bleues correspondent
aux autres notes de la gamme.
Nous avons mentionné plus haut l'existence de gammes majeures et mineures.
Les intervalles d'une gamme mineure sont diérents. En eet, les degrés 3, 6 et
7 d'une gamme mineure sont chacun diminués d'un demi-ton. On parle alors
de tierce, sixte et septième mineure. Le Tableau A.3 donne la gamme de Do
mineure. En observant la gamme de Do mineure, on constate qu'elle contient
exactement les mêmes intervalles que la gamme majeure mais avec un décalage.
En eet, la gamme mineure naturelle de Do contient les mêmes notes que la
gamme majeure de Mi bémol (E[ - F - G - A[ - B[ - C - D), mais en démarrant
du Do et non pas du Mi[. Chaque gamme mineure est donc jumelée avec une
gamme majeure, et vice-versa. On parle de gammes relatives. Ainsi, la gamme
mineure relative de la gamme de Do majeur est la gamme de La mineur, car elle
contiennent les mêmes notes. Les Tableaux A.4 et A.5 donnent respectivement
les douze gammes diatoniques majeures et mineures.
A.3 Accords
Un accord est un ensemble de notes jouées simultanément. On parle en
général d'accord lorsque cet ensemble de notes comporte au moins trois notes
diérentes, par exemple Do - Mi - Sol. Cependant, un accord peut parfois comporter quatre ou cinq notes. Étant donné qu'il y a douze notes diérentes (les
notes de la gammes chromatique), le nombre de possibilités pour créer des accord est énorme. En pratique, on préfère toutefois respecter certaines règles an
que le résultat soit agréable à l'oreille.
An de permettre aux musiciens de s'y retrouver, chaque accord porte un
ANNEXE A.
89
NOTIONS MUSICALES
Gammes majeures
I
II
III
IV
V
VI
C
C
D
E
F
G
A
B
C] (ou D[)
C]
D]
F
F]
G]
A]
C
VII
D
D
E
F]
G
A
B
D]
D] (ou E[)
D]
F
G
G]
A]
C
D
E
E
F]
G]
A
B
C]
D
F
F
G
A
A]
C
D
E
F] (ou G[)
F]
G]
A]
B
C]
D]
F
G
G
A
B
C
D
E
F]
G] (ou A[)
G]
A]
C
C]
D]
F
G
A
A
B
C]
D
E
F]
G
A] (ou B[)
A]
C
D
D]
F
G
A
B
B
C]
D]
E
F]
G]
A]
Table A.4 Gammes diatoniques majeures.
Gammes mineures
I
II
III
IV
V
VI
VII
C
C
D
E[
F
G
A[
B[
D[ (ou C])
C[
D[
E
G[
A[
A
B
D
D
E
F
G
A
B[
C
E[ (ou D])
E[
F
G[
A[
B[
B
D[
E
E
G[
G
A
B
C
D
F
F
G
A[
B[
C
D[
E[
G[ (ou F])
G[
A[
A
B
D[
D
E
G
G
A
B[
C
D
E[
F
A[ (ou G])
A[
B[
B
D[
E[
E
G[
A
A
B
C
D
E
F
G
B[ (ou A])
B[
C
D[
E[
F
G[
A[
B
B
D[
D
E
G[
G
A
Table A.5 Gammes diatoniques mineures.
ANNEXE A.
90
NOTIONS MUSICALES
I
C
II
D
III
E
IV
F
V
G
VI
VII
A
B
Table A.6 Accord de Do majeur.
I
A
II
B
III
C]
IV
D
V
E
VI
VII
F]
G
Table A.7 Accord de La majeur.
nom (Dm, E7, G6, etc.). Un accord étant toujours formé en choisissant certaines
notes dans une gamme donnée, le nom de l'accord indique la gamme choisie ainsi
que les notes qui y ont été sélectionnées. Nous ne présentons ici que deux types
d'accords, à savoir les accords majeurs et les accords mineurs, qui sont les plus
utilisés.
A.3.1 Accord majeur
Un accord majeur est construit à partir d'une gamme diatonique majeure.
Pour construire un accord sur base d'une telle gamme, il sut de sélectionner
les notes correspondant aux degrés I, III, et V de la gamme désirée. Ainsi,
un accord de Do majeur (C en notation anglo-saxonne) s'obtient à partir de
la gamme diatonique de Do majeure et comprend les notes Do, Mi, et Sol.
Le Tableau A.6 montre un accord de Do majeur respectant la règle énoncée
précédemment. Notons qu'il est tout à fait possible d'ajouter des notes à cet
accord, en jouant par exemple en plus un Do et Mi joués une octave plus haut.
On obtient alors les notes : Do, Mi, Sol, Do2, Mi2, où Do2 et Mi2 correspondent
aux notes Do et Mi jouées une octave plus haut.
On peut donc construire tout accord majeur en choisissant une gamme diatonique majeure diérente et en sélectionnant les degrés I, III, et V de cette
dernière. Le Tableau A.7 montre ainsi un accord de La majeur obtenu à partir
de gamme diatonique majeure de La en utilisant la règle énoncée ci-dessus.
A.3.2 Accord mineur
Alors que les douze gammes diatoniques permettent de former les douze
accords majeurs, les douze gammes diatoniques mineures permettent de former
douze accords mineurs. La règle est identique à celle utilisée pour les accords
majeurs et l'on sélectionne les degrés I, III, et V pour former un accord mineur.
I
C
II
D
III
Eb
IV
F
V
G
VI
VII
Ab
Bb
Table A.8 Accord de Do mineur.
ANNEXE A.
NOTIONS MUSICALES
91
Ainsi, l'accord de Do mineur, noté Cm, est formé des notes Do, Mi bémol et
Sol. Le Tableau A.8 montre un accord de Do mineur.
En règle générale, les accords mineurs ont une sonorité plus triste que
les accords majeurs. Il existe de nombreux autres types d'accords diérents des
accords majeurs et mineurs. Nous ne les détaillerons pas dans ce document, mais
nous renvoyons le lecteur intéressé à [7] pour un complément d'informations.
ANNEXE
B
Apprentissage automatique
Cette annexe a pour but de donner au lecteur non familiarisé avec les notions
d'apprentissage automatique une base théorique susante pour la compréhension de ce document. Nous avons utilisé ces techniques dans nos recherches, lors
de la conception de notre algorithme de reconnaissance d'accords. Le but n'est
pas de donner un cours sur la matière, mais de donner un bref aperçu théorique
du sujet. Nous renvoyons donc le lecteur désirant approfondir ses connaissances
en la matière à [20].
L'apprentissage automatique est une discipline scientique faisant référence
au développement, à l'analyse et à l'implémentation de méthodes qui permettent
à une machine d'évoluer grâce à un processus d'apprentissage, et par conséquent
de remplir des tâches qu'il est dicile ou impossible de résoudre par des moyens
algorithmiques classiques.En règle générale, un algorithme d'apprentissage se
base sur une base de données pour construire un modèle général permettant
de réagir face à des nouvelles données, indépendantes de la base de données
d'apprentissage. On distingue deux types d'apprentissage :
L'apprentissage supervisé où les classes (les cibles) sont prédéterminées.
La base de données d'apprentissage contient alors un ensemble de couples
(entrée, sortie ) et le système a connaissance des sorties associées à toutes
les entrées. Sur base de ces informations, l'algorithme ajuste ses paramètres
internes an de construire un modèle permettant de classer au mieux de
nouvelles données, non présentes dans la base de données d'apprentissage.
L'apprentissage non supervisé où les classes ne sont pas connues à l'avance.
Dans ce cas, l'algorithme tente de découvrir par lui même la structure
des données. Un tel algorithme essaie d'identier des groupes d'entrées
relativement homogènes sur base des valeurs des attributs des éléments de
92
ANNEXE B.
APPRENTISSAGE AUTOMATIQUE
93
la base de données. L'objectif nal est d'obtenir le modèle le plus général
possible an de classier de nouvelles données.
Utiliser des techniques d'apprentissage automatique nécessite donc une base
de données de départ, permettant à un algorithme de construire un modèle optimal. L'algorithme se fonde donc sur des observations et optimise un modèle
selon un critère de performance donné. Les techniques d'apprentissage automatique sont utilisées dans de nombreux domaines : reconnaissance de formes, de
visages, de caractères manuscrits, de la parole, aide au diagnostic médical, et
bien d'autres encore.
Sur-apprentissage et sous-apprentissage
Lorsque l'on utilise des tech-
niques d'apprentissage automatique, il est important de construire un modèle
qui classie les données correctement en généralisation. En eet, le modèle est
construit à partir d'une base de données potentiellement importante et l'objectif
nal est de pouvoir classier de nouveaux objets, qui ne sont pas présents dans
la base de données. Si le modèle est entraîné de façon à parfaitement classer les
données d'apprentissage mais ne parvient pas à classier de nouvelles données,
on se trouve en situation de sur-apprentissage (overtting). Le modèle colle
aux données d'apprentissage et ne parvient pas à généraliser. Si par contre le
modèle est incapable de classier des données de la base de données et de nouveaux objets, on se trouve en situation de sous-apprentissage (undertting). Il
est donc important de trouver un compromis entre ces deux situations en jouant
sur les paramètres des algorithmes d'apprentissage. L'idéal est de construire un
modèle permettant de classier au mieux de nouvelles données indépendantes
de l'ensemble d'apprentissage.
B.1 Réseau de neurones articiels
Un réseau de neurones articiels est une méthode d'apprentissage basée sur le
modèle biologique du cerveau humain. Elle a été introduite en 1943 par McCulloch et Pitts. Malgré la puissance croissante des calculateurs et des approches
théoriques de plus en plus sophistiquées, un certain nombre de tâches résistent
encore aux algorithmes et aux méthodes classiques de traitement des signaux
et des données. L'idée d'un réseau de neurones est d'essayer de reproduire le
comportement biologique du cerveau humain et de s'inspirer de ces mécanismes
pour tenter de modéliser le système nerveux. D'un point de vue technique, un
réseau de neurones ne va bien évidemment pas tenter de modéliser le fonctionnement et l'utilité de chaque enzyme et molécule du cerveau humain, mais il
va utiliser les principes fondamentaux de la communication entre neurones an
de reproduire une communication semblable de manière articielle. Ainsi les
caractéristiques essentielles des réseaux de neurones articiels concernent les
connexions connexions entre les neurones, la non-linéarité des relations entréesortie et la faculté d'adaptation. On considère qu'un réseau de neurones est un
approximateur universel et qu'il est donc capable de modéliser n'importe quelle
fonction non linéaire.
ANNEXE B.
94
APPRENTISSAGE AUTOMATIQUE
Figure B.1 Un neurone formel : chaque entrée est associée à un poids et les
entrées sont sommées avant d'être envoyées dans une fonction d'activation qui
détermine la sortie du neurone.
Figure B.2 Diverses fonctions d'activation : (a) fonction seuil, (b) fonction
linéaire par morceaux, (c) fonction sigmoïde et (d) fonction gaussienne.
B.1.1 Neurone formel
Le neurone formel est une modélisation mathématique qui reprend les principes
du fonctionnement du neurone biologique, en particulier, la sommation des entrées. Chaque entrée est envoyée au neurone par l'intermédiaire de synapses
auxquelles sont attribuées des poids. Le neurone calcule alors la somme pondérée
des entrées et envoie cette dernière à une fonction d'activation. Cette fonction détermine alors la valeur de sortie du neurone. La Figure B.1 montre la
représentation d'un neurone formel. Pour une fonction d'activation
f,
la sortie
du neurone est calculée par
y = f(
n
X
wj xj )
j=1
La Figure B.2 montre quelques fonctions d'activations couramment utilisées
avec des neurones articiels. Il est important de noter qu'un neurone unique permet de séparer un espace en deux catégories. En combinant plusieurs neurones,
on peut représenter
2s catégories,
où
s
correspond au nombre de neurones.
ANNEXE B.
APPRENTISSAGE AUTOMATIQUE
95
Figure B.3 Réseau de neurones articiels. Les données sont envoyées à une
couche d'entrée et se propagent dans le réseau à travers plusieurs couches,
jusqu'à la couche de sortie.
B.1.2 Architecture en réseau
Un réseau de neurones articiels (RNA) est un ensemble de neurones formels
associés en couches et fonctionnant en parallèle. Chaque couche d'un réseau
calcule un traitement indépendant et fournit le résultat à la couche suivante.
L'information se propage ainsi de la couche d'entrée jusqu'à la couche de sortie
en passant ou pas par des couches intermédiaires. Habituellement, chaque neurone de chaque couche est connecté à tous les neurones de la couche suivante
(Feed-Forward Network). Il existe également des réseaux récurrents, où l'information se propage vers la couche suivante et vers une couche précédente. Le but
de ce document n'étant pas de donner un cours sur ces réseaux, nous renvoyons
le lecteur intéressé à [18]. Un réseau de neurones multi-couches utilise principalement des fonctions d'activation à seuil ou sigmoïde. Ce type de réseau est
particulièrement intéressant car il est capable de résoudre des problèmes non
linéairement séparables et des problèmes logiques plus compliqués.
B.1.3 Apprentissage
Un réseau de neurones doit être entraîné de façon à ajuster ses poids de
façon optimale pour classier au mieux les données d'entrées. Ainsi, dans le cas
de la reconnaissance d'accords, dix classes correspondent aux dix accords que le
système doit être capable de reconnaître. Pour l'apprentissage du modèle, des
couples (vecteur pcp, identiant accord) sont présentés à la couche d'entrée du
réseau et ce dernier propage les valeurs dans le réseau et ajuste ses poids an
de minimiser un indice de performance. En général, on choisit un indice de performance qui est une fonction quadratique, par exemple une erreur quadratique
ANNEXE B.
APPRENTISSAGE AUTOMATIQUE
Paramètre
Valeur
Nombre de neurones
35
Nombre de couches
1
Taux d'apprentissage
0.001
Momentum
0.25
96
Table B.1 Paramètres naux du réseau de neurones utilisé pour la reconnais-
sance d'accords.
moyenne. En eet, seuls les trois premiers termes de la série de Taylor susent
pour approximer une telle fonction. Dans tous les cas, cette fonction doit être
dérivable an de faire converger le réseau vers un taux d'erreur minimal. Un
algorithme couramment utilisé pour minimiser l'erreur quadratique moyenne
est la descente de gradient (gradient descent). Cet algorithme est détaillé dans
[18]. Ainsi, pour un vecteur d'entrée donné, le réseau calcule la sortie associée
et ajuste ses poids de façon à minimiser l'erreur quadratique moyenne. An de
pouvoir modier les poids des neurones situés dans les couches intermédiaires
du réseau, on utilise une technique connue sous le nom de rétro-propagation
(back-propagation) , qui propage l'erreur obtenue à la sortie du réseau dans les
couches précédentes de ce réseau pour mettre à jour ces poids intermédiaires.
De nouveau, nous renvoyons le lecteur intéressé à [18] où ces méthodes sont
expliquées de façon détaillée.
Pour optimiser le réseau et obtenir des résultats ables, il est possible de
jouer sur certains paramètres permettant d'améliorer la convergence du réseau.
Deux de ces paramètres sont le taux d'apprentissage et le momentum. Lors de la
conception de notre système de reconnaissance d'accords, nous avons déni des
valeurs optimales pour ces deux paramètres. D'autres paramètres inuencent
la convergence, comme par exemple le nombre de couches dans le réseau et le
nombre de neurones dans chaque couche. Le Tableau B.1 donne les paramètres
utilisés pour notre réseau.
Le
taux d'apprentissage
dénit le pas entre deux itérations dans l'algo-
rithme de descente de gradient. À chaque nouveau couple (entrée, sortie), le
réseau ajuste sa matrice de poids de façon à minimiser l'erreur quadratique
moyenne. Chaque nouvelle entrée provenant de la base de données d'apprentissage provoque donc une mise à jour des poids en direction de l'erreur minimale
(point optimum). À chaque itération, la fonction d'erreur descend d'un pas
α
,
appelé taux d'apprentissage. La valeur de ce pas dénit la vitesse de convergence
du réseau. Néanmoins, plus ce pas est élevé, plus la fonction d'erreur uctue,
et à partir d'une certaine valeur, l'algorithme cesse de converger et s'éloigne
de l'optimum. Le choix du taux d'apprentissage est donc très important pour
obtenir un réseau performant. En pratique, on l'obtient par essai-erreur, en
faisant varier la valeur du pas jusqu'à atteindre des performances acceptables.
L'équation suivante dénit la descente de gradient utilisée dans un réseau de
neurone.
m
Wi,j
est la matrice de poids du réseau i à la couche cachée m et F est
la fonction d'erreur.
ANNEXE B.
97
APPRENTISSAGE AUTOMATIQUE
m
m
Wi,j
(k + 1) = Wi,j
(k) − α
∂F
m
∂Wi,j
Pour améliorer la convergence, on peut lisser l'oscillation lors de la descente
de gradient. Cela revient à appliquer un ltre passe-bas sur la fonction de mise à
jour des poids. On peut dès lors ajouter un nouveau paramètre, le
momentum,
qui accélère la convergence et permet de forcer la trajectoire de la descente dans
la même direction. Un ltre passe-bas est de la forme suivante :
y(k) = γy(k − 1) + (1 − γ)w(k)
Appliqué à l'équation de descente de gradient, cela donne :
4W m (k) = γ4W m (k − 1) − (1 − γ)α
où
γ
est le paramètre momentum,
0 ≤ γ ≤ 1.
∂F
m
∂Wi,j
En faisant varier cette valeur,
on peut améliorer la convergence du réseau. Nous avons recherché une valeur
optimale pour ce paramètre.
B.2 Plus proches voisins : K-NN
La méthode des plus proches voisins consiste en un algorithme particulièrement simple qui recherche des correspondances parmi un ensemble de K voisins.
On dispose donc de données d'apprentissage pour lesquelles chaque observation
dispose d'une classe y. L'idée de l'algorithme est, pour une nouvelle observation,
de prédire les K observations de la base de données qui lui sont les plus semblables et d'utiliser ces données pour classer la nouvelle observation dans une
classe.
Lorsque l'on parle de voisin, cela implique inévitablement une notion de
distance ou de dissimilarité. Il faut en eet un moyen de déterminer les voisins
les plus proches. La distance la plus populaire est la distance euclidienne. Dans
notre cas, nous avons choisi d'utiliser la distance de Bhattacharrya [8] (voir
Section 3.3.1).
Le cas le plus simple d'un algorithme KNN est celui de
K = 1;
on parle
alors de 1NN. Dans ce cas, on cherche l'observation la plus proche de la classe
attribuée à l'objet à classier. L'algorithme KNN a l'avantage de ne pas nécessiter de temps d'apprentissage. En eet, il sut de parcourir la base de données
et le seul paramètre à xer est le nombre de voisins K.
ANNEXE B.
APPRENTISSAGE AUTOMATIQUE
98
B.3 Méthodes de validation
An de vérier les performances d'une méthode d'apprentissage automatique, il est nécessaire de valider les méthodes utilisées. En eet, pour chaque
jeu de paramètres, il faut évaluer le modèle obtenu an de déterminer s'il classie correctement les nouvelles données en généralisation. Nous avons utilisé deux
techniques de validations, décrites ci-dessous.
Validation croisée
La validation croisée consiste à diviser la base de données
d'apprentissage en N ensembles de taille identique. L'apprentissage est réalisé
sur N-1 ensembles et le modèle ainsi obtenu est testé sur le dernier ensemble,
qui n'a pas été pris en compte dans l'apprentissage. Ainsi, pour chacun des N
ensembles, on obtient un taux d'erreur. L'erreur globale est obtenue en calculant
la moyenne des N erreurs obtenues. En fonction de cette valeur, on peut dire si
le modèle doit être recalculé en modiant la valeur des paramètres ou si on a
atteint un taux d'erreur acceptable.
Validation par Test-Set
La validation par test set consiste à diviser la base
de données d'apprentissage en deux ensembles. Un ensemble sera alors utilisé
pour entraîner le modèle tandis que le second sera utilisé pour valider le modèle
obtenu. Cette méthode est simple à mettre en ÷uvre, mais présente le désavantage de devoir diminuer la taille de l'ensemble d'apprentissage. Le résultat de la
validation est dès lors légèrement biaisé. On peut par exemple dénir le premier
ensemble à 70% de la base de données totale, et le second ensemble à 30% de la
base de données.
ANNEXE
C
Programme réalisé
Nos recherches ont conduit à la réalisation d'un programme écrit principalement en langage C++. Ce dernier est capable d'identier un court extrait
musical (la durée n'est pas xée), en recherchant une correspondance dans une
base de données spéciée.
Le programme dispose de trois modes de fonctionnement :
Un mode de génération de base de données. Le programme prend en
paramètre le chemin d'un répertoire contenant un ensemble de pistes audio
au format WAV 16 bits et mono. À partir de cette information, il extrait de
chaque piste une description basée sur le PCP (liste d'accords) et génère
un chier binaire de base de données.
Un mode de génération de descripteur. Ce module permet, à partir d'un
chier son, d'extraire le descripteur représentant ce son. Il renvoie ensuite
un chier texte contenant la liste des accords constituant le son.
Un mode d'identication de pistes. C'est évidemment le mode de fonctionnement principal du programme. Il prend alors en paramètre le chemin de
l'extrait à identier, toujours au format WAV 16 bits mono et le chemin de
la base de données à utilisée. Cette base de données doit obligatoirement
avoir été générée par le programme (mode précédent). Le programme va
alors rechercher dans la base de données fournie une correspondance pour
l'extrait spécié.
Les sources du programme sont fournies en intégralité sur le CD accompagnant ce document. Ce CD contient également un ensemble d'extraits joués à
la guitare, au piano et à l'accordéon. Plusieurs bases de données sont également
fournies.
99
ANNEXE C.
100
PROGRAMME RÉALISÉ
Compilation
Le dossier
Work/src
contient les sources du programme. Pour le compiler,
il est nécessaire d'avoir au préalable installé deux librairies indispensables au
fonctionnement du programme. Il s'agit des librairies FFTW3 et Boost. Sur un
système Debian ou dérivé, les paquets à installer sont les suivants :
libtw3-dev
libboost-all-dev
An de bénécier d'une fenêtre graphique pour acher un résultat, nous recommandons d'installer le paquet
zenity.
d'exécuter la commande
dans le dossier
make
Une fois ces librairies installées, il sut
src.
Cette commande compilera
le programme et générera un binaire du nom de tfe. Si le programme est exécuté sur une architecture 64 bits, un binaire pré-compilé est disponible dans le
dossier
bin.
Pour exécuter le programme en utilisant le microphone d'un ordinateur, il
faut de plus avoir installé Python ainsi que le module
python-pyaudio 1 .
Exécution
Pour identier un chier audio, il sut d'exécuter la commande suivante :
tf e 2 [chemin du f ichier audio] [chemin de la base de données]
Par exemple, la commande suivante tentera d'identier le chier sample.wav
dans la base de données database.bin :
tf e 2 sample.wav database.bin
Le programme achera alors en sortie la liste des dix meilleures correspondances trouvées dans la base de données, par ordre décroissant de similitude.
Réseau de neurones
La version nale du programme n'utilise pas de réseau de neurones. Toutefois,
un réseau de neurones capable de reconnaître des accords est fourni. Pour le
générer, on a utilisé la librairie PyBrain. Un programme écrit en langage Python
permet de tester le réseau. Il est disponible dans le dossier
1. Ce module Python est
ple.csail.mit.edu/hubert/pyaudio/.
disponible
à
cette
Work/src/neural.
adresse
:
http
://peo-
ANNEXE C.
PROGRAMME RÉALISÉ
101
En utilisant le microphone
Il est possible d'identier un son enregistré directement à partir du microphone d'un ordinateur. Pour ce faire, il faut d'abord placer le chier compilé tfe
dans le dossier
Work/bin
(un chier pré-compilé pour architecture 64 bits est
déjà fourni dans ce dossier). Il sut ensuite d'exécuter la commande suivante :
sh start.sh
Le programme se met alors en écoute, et l'on peut enregistrer un extrait de
12 secondes. Ensuite, la liste des dix meilleures correspondances est renvoyée.
ANNEXE
D
Article de conférence
Dans le cadre de nos recherches, nous avons proposé un article pour la conférence EUSIPCO 2011 relative au traitement de signal. L'article a été proposé
en Février 2011 et décrit notre système de reconnaissance d'accords basé sur un
réseau de neurones. Nous proposons ici cet article.
102
A CHORD RECOGNITION SYSTEM BASED ON MACHINE LEARNING
TECHNIQUES
J. Osmalskyj, S. Piérard, J.-J. Embrechts, and M. Van Droogenbroeck
INTELSIG Laboratory, Montefiore Institute, University of Liège, Belgium
ABSTRACT
In this paper, we consider the challenging problem of music recognition and present an effective machine learning based method using a feed-forward neural network for chord recognition. The
method uses the known feature vector for automatic chord recognition called the Pitch Class Profile (PCP). Although the PCP vector
only provides attributes corresponding to 12 semi-tone values, we
show that it is adequate for chord recognition.
Part of our work also relates to the design of a database of
chords. Our database is primarily designed for chords typical of
Western Europe music. In particular, we have built a large dataset
mainly filled with recorded guitar chords under different acquisition conditions (instruments, microphones, etc), but also with samples obtained with other instruments. Our experiments establish a
twofold result: (1) the PCP is well suited for describing chords in
a machine learning context, and (2) the algorithm is also capable
to recognize chords played with other instruments, even unknown
from the training phase.
For reviewing, the dataset is available at http://www2.ulg.
ac.be/telecom/eusipco2011.zip. It will be made publicly available if this paper is accepted.
1. INTRODUCTION
With the widespread availability of digital music over the network,
it has become impossible to process that huge amount of data manually; even, organizing a personal collection of music samples is
challenging. Therefore automatic tools have a role to play. Music
Information Retrieval (MIR) is an interdisciplinary science whose
goal is to extend information retrieval into non textual-only areas.
The aim of MIR is to describe multiple aspects related to the content of music. Some applications of MIR include music transcription, music classification [1], playlist generation [5, 11], and music
recognition [2].
Traditionally, music is annotated with text information provided
by the cover. This text information is adequate to characterize lyrics
automatically but totally inappropriate to describe music content.
Clearly, an approach based on text lacks of flexibility. In addition,
researchers are also interested in extending audio information retrieval using a more human natural interaction, for example, humming a song [2], tapping rhythm, etc.
The first compulsory step of a retrieval system able to process
music is the characterization of music. Several techniques are available but the probably best known to musicians is that of chords. A
chord can be defined as a set of simultaneous tones [9] or as the
simultaneous sounding of a group of musical notes, usually three
or more in number [3]. This definition might be appropriate for a
human but, from a classification point of view, it appears to be inappropriate because there are many variations (due to the instruments,
the noise, the recording conditions, etc) even for a unique chord.
From a technical point of view, we show in this paper that the
Pitch Class Profile (PCP) [6] is a suitable candidate as it is mainly
independent of the musical instrument used (see Figure 1). The PCP
is a compact representation of the frequency content of a sound expressed as the relative proportion of energy with respect to the 12
notes of a standard chromatic scale. Notes are defined on a logarithmic frequency scale, and energy is expressed in natural units.
Figure 1: This paper shows that the PCP descriptor is well suited
for representing chords, regardless of the used instrument. To illustrate the robustness with respect to the instruments, the upper and
lower drawings provide the representation of a C chord respectively
played with a guitar and with a piano. The three main peaks are the
same.
But a good descriptor does not suffice. In the paper, we establish that a naive application of the definition of chords to classify
PCPs fails to provide good results. In addition, we also prove that
once this diversity is correctly handled by machine learning methods, chords form an adequate description for recognizing musics.
During our work, because we developed a machine learning technique and many algorithms for music recognition do not use machine learning techniques, we have had to build a database. As,
to our knowledge, there is no such database publicly available, we
have created a new large dataset that will be made available upon
acceptance of this paper.
The remainder of this paper is organized as follows. Section 2
reviews the related work in the field of chord characterization and
classification. Section 3 provides a brief reminder of the PCP feature vector and details why a learning algorithm is preferable to a
nearest neighbor approach. Section 4 describes our new database,
its design, and its content. Section 5 presents the results of experiments, and Section 6 concludes the paper.
2. RELATED WORK
Pitch Class Profile based features have been used as a front end to
chord recognition systems from the audio recordings. Fujishima
[6] developed a real-time recognition system where he derived a
12-dimensional pitch class profile to perform pattern matching using binary chord type templates (i.e. ideal PCP representations as
shown in Figure 2).
Lee [9] introduced a new feature vector called the Enhanced
Pitch Class Profile (EPCP) for automatic chord recognition from
the raw audio. To this end, he first obtained the Harmonic Product Spectrum (HPS) from the discrete Fourier transform (DFT) of
the input signal and then he applied an algorithm to that HPS for
computing a 12-dimensional pitch class profile called the EPCP.
Gomez and Herrera [7] proposed a system that automatically
extracts from audio recordings tonal metadata such as chord, key,
scale, and cadence information. In their work, they computed a
vector of low-level instantaneous features: the HPCP (Harmonic
Pitch Class Profile) vector. It is based on the intensity of each pitch
mapped to a single octave, which corresponds to Fujishima’s PCP.
Sheh and Ellis [10] proposed a statistical learning method for
chord segmentation and recognition, where they used the hidden
Markov models (HMMs) trained by the Expectation Maximization
(EM) algorithm, and treated the chord labels as hidden values within
the EM framework.
The aforementioned work on chord recognition does not make
use of machine learning techniques. Therefore, no chords database
seems to be publicly available (to our knowledge). In this work,
we propose such a database, and we consider the use of real chords
samples to train a more accurate chord recognition system.
3. PITCH CLASS PROFILE
The most common used descriptor for chord identification has been
the Pitch Class Profile (PCP), initially introduced by Fujishima in
[6]. A PCP is a 12-dimensional vector which represents the relative
energy in each of twelve semi-tones in a chromatic scale. For instance, the first PCP element shows how strong C is in total. Since
a chord is composed of a set of tones regardless of their heights,
a PCP vector seems to be an ideal feature to represent a musical
chord.
There are some variations to obtain a 12-bin PCP, but it usually follows the following steps. First the algorithm transforms a
fragment of the input sound to a discrete Fourier transform (DFT)
spectrum X(.). From X(.), the algorithm then generates the PCP.
Let PCP∗ (p) be a vector defined for p = 0, 1, . . . , 11 as
PCP∗ (p) = ∑ ||X(l)||2 δ (M(l), p)
(1)
l
where δ (·, ·) denotes Kronecker’s delta. M(l) is defined as
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
c c# d d# e f f# g g# a a# b
bm
c c# d d# e f f# g g# a a# b
d
c c# d d# e f f# g g# a a# b
e
c c# d d# e f f# g g# a a# b
f
c c# d d# e f f# g g# a a# b
am
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
0.4
0.2
0
c c# d d# e f f# g g# a a# b
c
c c# d d# e f f# g g# a a# b
dm
c c# d d# e f f# g g# a a# b
em
c c# d d# e f f# g g# a a# b
g
c c# d d# e f f# g g# a a# b
Figure 2: Ideal PCP representations of ten chords.
3.1 Principle
M(l) =
a
0.4
0.2
0
−1
round(12 log2 (( fs . Nl )/ fre f )) mod 12
l=0
l = 1, . . . ,
N
2
−1
where fre f is the reference frequency falling into PCP∗ (0), N the
number of samples in the input signal, and fs is the sampling frequency. For example, for a standard scale starting with a C, the
reference frequency would be 130.80 Hz.
In order to compare PCP vectors, it is necessary to normalize
them. Indeed, a chord can be played louder or softer and therefore,
the scale of the energy can vary from one PCP to another. To normalize a PCP vector, we divide the energy of each bin by the total
energy of the original PCP, that is,
PCP∗ (p)
PCP(p) = 11
∑ j=0 PCP∗ ( j)
(2)
where p is the index of the bin we want to normalize.
3.2 Experiments
The PCP is an intuitive descriptor for a musician because it highlights the main notes of a chord. Indeed, a musician is able to recognize a chord by identifying the notes contained in that chord. The
PCPs of ten chords are given in Figure 2.
Apparently, the PCP seems to be suitable for representing a
chord. However, recognizing chords based on the PCP is not a trivial task. In a first attempt, we developed a naive but simple chord
detector that only compares histograms using a nearest neighbors
(1-NN) method with the Bhattacharyya distance [4] as a distance
measure. Basically, the algorithm takes an arbitrary PCP vector
as input, normalizes it, and compares it to a predefined list of histograms representing the various chords to be recognized. The algorithm then classifies the chord as the one of the closest known
histogram. It turns out that results of that simple method are unsatisfactory (see Section 5.2 for more details).
4. DATABASE OF CHORDS
Part of the difficulties in machine learning techniques originate from
the elaboration of a database of samples, also called dataset, and
chord classification is no exception. The primary requirement for
a chord recognizer using machine learning techniques is that the
dataset contains enough data to build a model. Most of the aforementioned work on chord recognition does not make use of machine learning techniques which explains why no chords database
seems to be publicly available (to our knowledge). For that reason, we had to create our own database of chords. In our database,
we gathered audio files (recorded in the WAV format, sampled at
fs = 44100 Hz, and quantized with 16 bits), and the corresponding precomputed PCP vectors. The PCP vectors were computed on
windows comprising each 16384 samples, which correspond to 0,37
seconds. However, we noticed that shorter windows (4096 samples)
can also be used.
Since our final goal is not to recognize all the existing chords,
but to develop a music recognition system, we can limit chords to
the most frequent ones. Therefore, we chose a subset of 10 chords:
A, Am, Bm, C, D, Dm, E, Em, F, G.
In our database, these chords are represented by an identifier ranging respectively from 0 to 9. Note that if other chords are also
played in a song, the main chords can suffice. Moreover, many modern songs played in Western Europe are based on these 10 chords.
Therefore, it seems to be a suitable starting point to validate our
recognition method.
In practical terms, all PCP vectors are stored in a unique file
which is organized as follows. Each line consists in a normalized
PCP vector of twelve elements and one more element corresponding
to the corresponding chord identifier. The following is illustrative
of one line of the dataset file
0.04, 0.09, 0.18, 0.05, 0.12, 0.04, 0.14, 0.04, 0.03, 0.18, 0.04, 0.05, 4
The last digit corresponds to the class (the D chord in this example).
Next we concentrate on the context of the dataset. As we are
willing to validate our dataset and test it on samples acquired in
a different context, the database was split into two subsets. The
0.35
Parameters
Number of hidden layers
Number of neurons in the hidden layer
Learning rate
Momentum
Weight decay
0.25
0.3
0.2
0.15
0.2
energy
energy
0.25
0.15
0.1
0.1
0.05
Values
1
35
0.001
0.25
0.0
0.05
0
c
c#
d
d#
e
f
f#
semi−tones
g
g#
a
a#
b
0
c
c#
d
(a)
d#
e
f
f#
semi−tones
g
g#
a
a#
b
Table 1: Neural network parameters.
(b)
first subset contains a very large amount of guitar chord samples,
whereas the second subset contains a smaller set of chords played
with a different guitar and three other instruments. Therefore,
there are two ways of using the database: we can either use crossvalidation techniques on the first subset, or use it as a learning set
and use the second subset as a test set. Details follow.
formed and the results. With our experiments, we want to clarify
and test several points:
1. We want to check if a naive application of the chord definition
suffices.
2. How do we have to build the training set? Should noise-free
samples, noisy samples, or both types of samples be included
during training?
3. We want to evaluate the performance of our learning algorithm
with our database.
4. Is the algorithm capable to recognize chords played with various
other instruments?
4.1 First subset
5.1 Learning algorithm
Samples of the dataset are produced with a guitar, which is probably the most common instrument in Western Europe to play chords.
The acquisition conditions are the following. The chords samples
were recorded in two different environments. Half of the chords
were recorded in an anechoic chamber designed to stop reflections
of acoustic waves on the walls. These samples were recorded with
a wideband microphone. The other half was recorded in a noisy environment, with a single condenser microphone. We felt that samples recorded in both environments would reflect both the situations
of professional playing their songs in a studio and people playing
music home. Moreover, a non negligible part of records are also
produced under live conditions, even by professional bands. In Section 5, we derive that when the system is trained with a mix of
noise-free and noisy samples it performs best.
Figure 3 shows the PCP representations of a D chord recorded
in the anechoic chamber and in the noisy room with the same guitar.
As many songs are played in a noisy environment, it is relevant to
include noisy chords in the database.
For each chord, 100 samples were recorded in the anechoic
chamber, and 100 samples were recorded in a noisy room. For each
environment, the samples were recorded using four different guitars: one classical guitar with nylon strings, and three acoustic guitars producing three different sounds. It is expected that the variety
of the dataset with respect to guitars will enhance the robustness of
the system and extend its applicability, as there are many different
guitar sounds available worldwide.
In conclusion, the first subset is organized as follows. There
are 2000 chords in total. Each specific chord is recorded 200 times,
100 in an anechoic chamber and 100 in a noisy room. In both hundred halves, the chords are further separated into four subsets of 25
chords, produced with one of the four guitars.
Most techniques proposed in literature for chord recognition do not
use machine learning methods. Fujishima [6] used a pattern matching technique and heuristics to recognize chords. Lee [9] developed
an enhanced version of the PCP but still did not use machine learning methods. The techniques developed were efficient, but complex. Since our final goal is not to develop a new chord descriptor,
we chose to use a very simple, though powerful, technique to recognize chords. The chosen algorithm is a feed-forward neural network using a classical gradient descent algorithm with a negative
log-likelihood as cost function [8].
The neural network architecture is the following. There are
twelve input attributes, which correspond to the twelve semi-tones
of the PCP vector representing the chord. The neural network outputs a vector of 10 values, corresponding to the output neurons, each
one being the probability of the detected chord to be issued from the
corresponding chord. The final settings of the neural network were
optimized by a 10-folds cross-validation on the database. Table 1
gives the parameters of the network.
Figure 3: PCP representations of a D chord recorded with the same
guitar in (a) an anechoic chamber, and (b) a noisy room. Note that
the three major semi-tones are still visible in (b).
4.2 Second subset
We also created a smaller database containing chords recorded with
a guitar and three other instruments, namely a piano, a violin, and an
accordion. That database is intended to provide an independent test
set and should not be used to train the model. That database contains
100 chords for each instrument. These 100 chords are distributed
equally among the ten chords mentioned earlier. Thus, there are 10
recordings per chord for each instrument.
5. EXPERIMENTS
This section first introduces the learning method chosen for the design of our system. Then it details the various experiments per-
5.2 Experiment 1: naive application of the chord definition
In this first experiment, we have created a synthetic and ideal sample of PCP for each chord manually (see Figure 2). Then, using the
Bhattacharyya distance [4], we have applied a nearest neighbors (1NN) algorithm on our second subset. The classification error rates
obtained are the following: 8 % for guitar, 20 % for piano, 19 % for
violin, and 32 % for accordion. These results are clearly unsatisfactory. The conclusion is straightforward: a learning based on real
samples is necessary to reach the required performance level.
5.3 Experiment 2: determining the optimal learning set
In section 4.1, we explained that we created a database with noisefree chords and noisy chords. To justify that choice (that is, afterward!), we performed six tests to determine the best of the three
following configurations:
• a learning set with noise-free chord samples only,
• a learning set with noisy chord samples only,
• and a learning set with mixed chord samples.
To perform the test, we split the database in different sets. First, the
original database of 2000 samples was split into two sub-databases
of 1000 elements. The first one only contains noise-free chords
and the second one contains noisy chords. Then, we created three
learning sets containing 70% of each sub-database. The first set
contains 700 noise-free chords, the second 700 noisy chords, and
Noise-free
4.0 %
11.7 %
Noisy
5.0 %
6.0 %
Mixed
4.0 %
7.3 %
Guitar
energy
TS / LS
Noise-free
Noisy
0.4
0.2
energy
0
Table 2: Results of the validation with noise-free, noisy, and mixed
learning and testing sets. The table gives the total classification
error rate for each configuration.
energy
c#
d
d#
e
f
f#
Piano
g
g#
a
a#
b
c
c#
d
d#
e
f
f#
Violin
g
g#
a
a#
b
c
c#
d
d#
e
f
f#
Accordion
g
g#
a
a#
b
c
c#
d
d#
e
g
g#
a
a#
b
0.1
0
0.4
0.2
0
energy
c
0.2
0.4
0.2
0
f
f#
Figure 5: PCP of a C chord played with four instruments (respectively, from top to bottom, a guitar, a piano, a violin, and an accordion).
Figure 4: Confusion matrix for a network trained with a mixed
learning set of 1400 samples (140 chords per class). The test set
contains 600 samples (60 per class). The total error rate is 6.5%.
the last one 350 noise-free chords and 350 noisy samples, taken
randomly.
For the tests, we created two sets with 30% of each subdatabase. One test set contains noise-free chords and the second
one contains noisy chords only.
Table 2 gives the results of each test. First, we trained the model
with a noise-free learning set and tested it with the noise-free and
noisy test sets (second column of the table). Next, we trained the
model with a noisy learning set and tested it with a noise-free and
noisy test sets (third column). Finally, we performed exactly the
same tests with a learning set containing both noise-free and noisy
chord samples (fourth column). The chords were recorded with different guitars distributed equally in each set.
From the results given in Table 2, we conclude that building the
model using a noise-free learning set produces the highest error rate.
Moreover, the optimal learning set (noisy or mixed) depends on the
conditions under which the model has to be used. Unfortunately, we
are not able to guess it in advance. However, we consider that the
mixed learning set produces models that are less dependent of the
noise in the database than with a noisy learning set, and therefore,
we believe it is preferable to use a mixed learning set.
5.4 Experiment 3: validating the database
From our previous observations, we have decided to train our final model with both noise-free and noisy chord samples. Figure
4 shows the confusion matrix for the final network trained with a
learning set of 1400 chords, that is 140 chord per class and a test
set of 600 chords, that is 60 per class. The main database was split
in two parts and thus, the result is slightly biased due to the size
reduction of the database. Despite that bias, we can observe that the
prediction of each class is correct.
5.5 Experiment 4: recognizing other instruments
In this experiment, we applied our method to other instruments. We
chose four instruments capable of playing chords, namely a guitar,
a piano, an accordion, and a violin. These instruments were chosen
because they are widely used in Western Europe. Figure 5 compares
Instrument
Guitar
Piano
Violin
Accordion
1-NN with the
chord definition
8%
20 %
19 %
32 %
Neural network
with a learning set
0%
13 %
5%
4%
Table 3: Classification error rates for 4 different instruments using
our method.
the PCP representations of a C chord played with four instruments.
As can be seen, the PCP representations of the four instruments are
similar.
Although the model was trained with a database containing only
guitar chords, we applied it on the independent test sets mentioned
in Section 4. It is worth remembering that these recordings are completely independent of the chords used to train the model.
Table 3 gives the results of our method for the four instruments,
and compares them to the naive approach (see Section 5.2). We
observe huge improvements in the results with a learning method
based of real chord samples compared to that of the naive approach.
It appears that it is harder to recognize chords played on a piano,
which could be explained by the noisy nature of piano sounds (as
graphically illustrated with the PCP of a piano, in Figure 5).
Figure 6 shows the confusion matrices obtained for each instrument using the trained neural network. The predictions are good,
but less precise for the piano. Best results are obtained with an independent test set of guitar chords, which is an expected result as
the model was trained with guitar chords. Violin and accordion also
give good results compared to the naive method, and produce a classification error rate of respectively 5% and 4%, which is promising.
6. CONCLUSIONS
This paper presents a method based on machine learning techniques, using a feed-forward neural network, for chords recognition, applicable to raw audio. As no chords database seemed to
be publicly available, we have built our own dataset containing
chords recorded in an anechoic chamber and in a noisy room. Both
environments were chosen to increase the robustness of the algorithm with respect to the acquisition process. The database is made
of 2000 guitar chords saved in WAV files and distributed into 10
chords.
We have highlighted that the best strategy consists in using a
learning set containing both noise-free and noisy samples. They
also show that our attributes, that is, the 12-dimensional PCP vec-
(a)
(b)
(c)
(d)
Figure 6: Confusion matrices for four independent test sets with four instruments: (a) guitar, (b) piano, (c) violin, (d) accordion.
tors, are effective representations of chords, and that they are also
applicable to other instruments, like piano, violin and accordion.
However, the PCP representation has to be sent to a feed-forward
neural network which learns a model to recognize the ten chords.
Our method, based on the provided database, outperforms a direct
application of the chord definition using 1-NN with Bhattacharyya
distance. Finally, results for the recognition of chords played with
other instruments are also presented. Even, for such PCP samples,
our method performs well.
In future works, we intent to extend the approach to the recognition a musical excerpts. More sophisticated algorithms for chord
recognition are also worth considering.
Acknowledgments
S. Piérard has a grant funded by the FRIA, Belgium.
REFERENCES
[1] J.-J. Aucouturier and F. Pachet. Music similarity measures:
What’s the use? In International Symposium on Music Information Retrieval (ISMIR), pages 157–163, 2002.
[2] M. Carre. Systèmes de Recherche de Documents Musicaux par
Chantonnement. PhD thesis, Ecole Nationale Superieure des
Télécommunications, 2002.
[3] Collins. English dictionary, 2010.
[4] M. Deza and E. Deza. Encyclopedia of Distances. Springer,
2009.
[5] A. Flexer, D. Schnitzer, M. Gasser, and G. Widmer. Playlist
generation using start and end songs. In International Symposium on Music Information Retrieval (ISMIR), pages 173–178,
2008.
[6] T. Fujishima. Realtime chord recognition of musical sound: a
system using common lisp music. In International Computer
Music Conference (ICMC), pages 464–467, 1999.
[7] E. Gomez and P. Herrera. Automatic extraction of tonal metadata from polyphonic audio recordings. In International Conference: Metadata for Audio, London, UK, 2004.
[8] T. Hastie, R. Tibshirani, and J. Friedman. The elements of
statistical learning: data mining, inference, and prediction.
Springer Series in Statistics. Springer, second edition, September 2009.
[9] K. Lee. Automatic chord recognition using enhanced pitch
class profile. In International Computer Music Conference
(ICMC), pages 306–313, 2006.
[10] A. Sheh and D. Ellis. Chord segmentation and recognition using EM-trained hidden markov models. In International Symposium on Music Information Retrieval (ISMIR), pages 121–
124, 2003.
[11] L. Xiao, L. Liu, F. Seide, and J. Zhou. Learning a music similarity measure on automatic annotations with application to
playlist generation. In Int. Conf. on Acoustics, Speech and
Signal Processing (ICASSP), pages 1885–1888, 2009.
Table des gures
1.1
Système de recherches de pistes audio sur base d'un court extrait.
10
2.1
Représentation de quelques disciplines relatives à MIR. . . . . . .
14
3.1
Représentation PCP d'un accord de do majeur joué à la guitare.
On voit nettement les trois pics principaux correspondant aux
trois notes de l'accord, à savoir do (c), mi (e), sol (g). . . . . . .
3.2
Évolution de l'erreur de classication de l'accord lorsque la valeur
du paramètre
E
de l'équation 3.4 évolue. La valeur idéale se situe
au voisinage de 1. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
23
25
Représentation d'un accord de Do Majeur (CMaj) par un PCP
modié. Par rapport à la Figure 3.1, on constate une quantité
plus importante de bruit.
3.4
3.5
. . . . . . . . . . . . . . . . . . . . . .
Représentations PCP idéales de 10 accords.
. . . . . . . . . . . .
25
27
Vecteurs PCP centroïdes calculés en moyennant tous les échantillons réels disponibles. L'algorithme compare alors un nouveau
3.6
3.7
vecteur PCP à ces dix modèles et renvoie l'accord le plus proche.
31
Chambre anéchoïque . . . . . . . . . . . . . . . . . . . . . . . . .
32
Représentations d'un accord de Ré Majeur (D) enregistré avec
la même guitare dans (a) une chambre anéchoïque, et (b) une
pièce bruitée. On remarque que les trois demi-tons principaux
sont toujours bien visibles dans (b).
108
. . . . . . . . . . . . . . . .
33
109
TABLE DES FIGURES
3.8
Matrice de confusion pour l'ensemble de la base de données en
utilisant une méthode de reconnaissance naïve (1-NN) basée sur
des accords idéaux. . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9
35
Matrices de confusions résultant de la validation de la base de
données à l'aide d'un réseau de neurones (a) et d'un algorithme
des plus proches voisins (b). Le taux d'erreur total pour le réseau
de neurones est de 6.5% et est de 3.25% pour l'algorithme des
plus proches voisins.
. . . . . . . . . . . . . . . . . . . . . . . . .
37
3.10 Représentation PCP d'un accord de Do Majeur (C) joué par quatre instruments. De haut en bas, une guitare, un piano, un violon
et un accordéon.
. . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.11 Matrices de confusions pour les quatre instruments à l'aide d'un
réseau de neurones : (a) guitare, (b) piano, (c) violon et (d) accordéon.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.12 Matrices de confusions pour les quatre instruments à l'aide d'un
algorithme 1-NN : (a) guitare, (b) piano, (c) violon et (d) accordéon.
4.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schéma du système : un extrait est envoyé à un algorithme de
comparaison qui renvoie une liste de correspondances.
4.2
45
. . . . . . . . . . . .
48
Spectres PCP pour deux extraits diérents d'un même passage
de Hotel California.
4.4
. . . . . .
Évolution de la note si (a) et de la note do (b) au cours du
temps, dans la chanson Hotel California.
4.3
40
. . . . . . . . . . . . . . . . . . . . . . . . .
49
Comparaison entre deux spectres obtenus respectivement en
utilisant un facteur PCP 1.0 (a) et un facteur PCP 2.0 (b). On
constate que le spectre de la gure (b) avec un facteur de puissance
4.5
E=2
est plus net que la gure (a).
. . . . . . . . . . .
50
Spectres de trois extraits d'un même passage de Hotel Califor-
nia.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.6
Spectre PCP après application de l'algorithme de détection de pics. 52
4.7
Pics détectés après ltrage du spectre PCP. . . . . . . . . . . . .
4.8
Algorithme par fenêtre glissante.
L'extrait glisse sur chaque
piste de la base de données. . . . . . . . . . . . . . . . . . . . . .
4.9
53
59
Résultats pour des extraits de guitare dans une base de données
de pistes de guitare.
. . . . . . . . . . . . . . . . . . . . . . . . .
65
4.10 Résultats pour des extraits d'accordéons dans une base de données de pistes de guitare. . . . . . . . . . . . . . . . . . . . . . . .
68
4.11 Résultats pour des extraits de piano dans une base de données
de guitare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
110
TABLE DES FIGURES
4.12 Résultats pour des extraits dans une base de données Karaoké
.
73
4.13 Taux de fonctionnement correct et incorrect pour chaque expérience.
B.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un neurone formel :
78
chaque entrée est associée à un poids et
les entrées sont sommées avant d'être envoyées dans une fonction
d'activation qui détermine la sortie du neurone. . . . . . . . . . .
B.2
Diverses fonctions d'activation :
94
(a) fonction seuil, (b) fonc-
tion linéaire par morceaux, (c) fonction sigmoïde et (d) fonction
gaussienne.
B.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
Réseau de neurones articiels. Les données sont envoyées à une
couche d'entrée et se propagent dans le réseau à travers plusieurs
couches, jusqu'à la couche de sortie.
. . . . . . . . . . . . . . . .
95
Liste des tableaux
3.1
Paramètres naux du réseau de neurones utilisé pour la reconnaissance d'accords.
3.2
3.3
. . . . . . . . . . . . . . . . . . . . . . . . .
Erreurs de classication pour une méthode naïve
. . . . . . . . .
29
35
Résultats de la validation en utilisant des ensembles d'apprentissage et de test bruités, non bruités, et mixtes. Le tableau donne
l'erreur de classication totale pour chaque conguration.
3.4
. . . .
36
Erreurs de classication pour 4 instruments en utilisant trois algorithmes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.5
Accords reconnus pour Hotel California avec un algorithme 1-NN. 41
3.6
Accords reconnus pour Hotel California avec un réseau de neurones. 41
3.7
Temps d'exécutions pour la validation des ensembles de tests indépendants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.1
Résultats pour Sweet Home Alabama . . . . . . . . . . . . . . . .
65
4.2
Résultats pour While my guitar gently weeps
. . . . . . . . . . .
66
4.3
Résultats pour Should I stay or should i go
. . . . . . . . . . . .
66
4.4
Résultats pour des extraits joués à l'accordéon
4.5
4.6
. . . . . . . . . .
69
Résultats pour des extraits de piano dans une base de données
de guitare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
Résultats dans une base de données de pistes originales
75
111
. . . . .
112
LISTE DES TABLEAUX
A.1
Les douze notes de la gamme chromatique.
A.2
Gamme diatonique de Do Majeur.
A.3
Gamme de Do mineure.
A.4
Gammes diatoniques majeures.
. . . . . . . . . . . . . . . . . . .
89
A.5
Gammes diatoniques mineures.
. . . . . . . . . . . . . . . . . . .
89
A.6
Accord de Do majeur.
. . . . . . . . . . . . . . . . . . . . . . . .
90
A.7
Accord de La majeur.
. . . . . . . . . . . . . . . . . . . . . . . .
90
A.8
Accord de Do mineur.
. . . . . . . . . . . . . . . . . . . . . . . .
90
B.1
. . . . . . . . . . . .
87
. . . . . . . . . . . . . . . . .
88
. . . . . . . . . . . . . . . . . . . . . . .
88
Paramètres naux du réseau de neurones utilisé pour la reconnaissance d'accords.
. . . . . . . . . . . . . . . . . . . . . . . . .
96
Bibliographie
[1] J.-J. Aucouturier and F. Pachet. Music similarity measures : What's the
use ? In International Symposium on Music Information Retrieval (ISMIR),
pages 157163, 2002.
[2] Cambridge. Cambridge international dictionary, 2008.
[3] M. Carre. Systèmes de Recherche de Documents Musicaux par Chanton-
nement. PhD thesis, Ecole Nationale Superieure des Télécommunications,
2002.
[4] Y. Cheng. Music database retrieval based on spectral similarity. In Inter-
national Symposium on Music Information Retrieval (ISMIR), 2001.
[5] Collins. English dictionary, 2010.
[6] M. Reza Daliri and V. Torre.
Robust symbolic representation for shape
recognition and retrieval. The Journal of the Pattern Recognition Society,
41 :17821798, 2007.
[7] A. Danhauser. Théorie de la musique. 1970.
[8] M. Deza and E. Deza. Encyclopedia of Distances. Springer, 2009.
[9] P.N. Yianilos E.S. Ristad. Learning string edit distance. IEEE Transactions
on Pattern Analysis and Machine Intelligence, 20 :522532, 1998.
[10] M. Fingerhut and N. Donin.
Filling gaps between current musicological
practice and computer technology at ircam. AHRC ICT Methods Network
Music Expert Seminar, Royal Holloway, 2006.
[11] A. Flexer, D. Schnitzer, M. Gasser, and G. Widmer. Playlist generation using start and end songs. In International Symposium on Music Information
Retrieval (ISMIR), pages 173178, 2008.
[12] D. Fragoulis, G. Rousopoulos, T. Panagopoulos, C. Alexiou, and C. Papaodysseys. On the automated recognition of seriously distorted musical
recordings. IEEE Transactions on Signal Processing, 49 :898908, 2001.
113
114
BIBLIOGRAPHIE
[13] T. Fujishima. Realtime chord recognition of musical sound : a system using
common lisp music. In International Computer Music Conference (ICMC),
pages 464467, 1999.
[14] E. Gomez and P. Herrera. Automatic extraction of tonal metadata from
polyphonic audio recordings. In International Conference : Metadata for
Audio, London, UK, 2004.
[15] E. Guaus.
Audio content processing for automatic music genre classi-
cation : descriptors, databases, and classiers.
PhD thesis, Universitat
Pompeu Fabra, Barcelona, 2009.
[16] M. Guillemot. Dictionnaire de la musique. Larousse-Bordas, 1996.
[17] S. Gunderson.
Musical descriptors : An assessment of psychoacoustical
models in the presence of lossy compression.
Master's thesis, Norwegian
University of Science and Technology, 2007.
[18] M. T. Hagan, H. B. Demuth, and M. H. Beale. Neural Network Design.
Martin Hagan, 2002.
[19] J. Haitsma and T. Kalker. A highly robust audio ngerprinting system. In
Institut de Recherche et Coordination Acoustique/Musique (IRCAM), 2002.
[20] T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learn-
ing : data mining, inference, and prediction. Springer Series in Statistics.
Springer, second edition, September 2009.
[21] J. Oostveen J. Haitsma, T. Kalker. Robust audio hashing for content identication. In Content Based Multimedia Indexing, 2001.
[22] M. Kassler. Perspective of New Music, chapter 4 : Toward Musical Information Retrieval, pages 5967. 1966.
[23] K. Lee. Automatic chord recognition using enhanced pitch class prole. In
International Computer Music Conference (ICMC), pages 306313, 2006.
[24] E.W. Myers. An o(nd) dierence algorithm and its variations. Algorithmica,
1 :251266, 1986.
[25] H. Neuschmied, H. Mayer, and E. Battle.
Identication of audio titles
on the internet. In International Conference on Web Delivering of Music,
2001.
[26] A. Sheh and D. Ellis.
Chord segmentation and recognition using EM-
trained hidden markov models. In International Symposium on Music In-
formation Retrieval (ISMIR), pages 121124, 2003.
[27] A. Wang. An industrial-strength audio search algorithm. In International
Symposium on Music Information Retrieval (ISMIR), 2003.
[28] A. Wang. Shazam entertainment. In International Symposium on Music
Information Retrieval (ISMIR), 2003.
[29] L.A. Wolsey. Integer Programming. Wiley-Interscience ; 1 edition, 1998.
[30] L. Xiao, L. Liu, F. Seide, and J. Zhou. Learning a music similarity measure
on automatic annotations with application to playlist generation. In Int.
Conf. on Acoustics, Speech and Signal Processing (ICASSP), pages 1885
1888, 2009.

Documents pareils