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.