Transcription audio-visuelle de la guitare
Transcription automatique de la musique
La transcription automatique de la musique a pour but d’écrire sans intervention humaine la partition d’un morceau de musique au moment de son enregistrement. Il s’agit donc de détecter et de comprendre le contenu musical de l’enregistrement. Pour certains instruments comme la guitare, la basse, etc., beaucoup de musiciens préfèrent utiliser une version simplifiée de la traditionnelle partition, que l’on nomme tablature. Cette représentation, qui prend différentes formes en fonction des instruments, est souvent privilégiée par les musiciens ignorant le solfège. En effet, les seules informations que l’on note sur une tablature sont les cases et les cordes associées aux notes jouées.
La guitare et l’ambiguïté de la position de la note
C’est certainement pour la guitare que les tablatures sont le plus fréquemment utilisées. Il s’agit d’un instrument à cordes pincées. La hauteur des notes est modifiée grâce à la pression des doigts sur une ou plusieurs cordes, jusqu’à ce qu’ils entrent en contact avec le manche, réduisant ainsi la longueur de la corde susceptible de vibrer. Plus la partie vibrante est courte, plus le son obtenu est aigu.
Cependant, il faut noter qu’une même note peut être jouée à différents endroits, par différentes combinaisons de corde et de case. Cette redondance des notes sur le manche rend très pratique la formation d’accords. Lorsqu’on joue de la guitare, on peut ainsi transposer un accord dans une autre tonalité en gardant la même position des doigts, mais en la décalant d’une ou plusieurs cases. Par exemple, on passe d’un accord en mi majeur à un accord en fa majeur en décalant d’une case la configuration des doigts. Sur le piano au contraire, il est fréquent que les doigts se déplacent d’une touche blanche à une touche noire ou inversement.
Sur la guitare, la même note jouée à différents endroits n’a pas la même « couleur ». Le timbre de la note change très légèrement, suffisamment peu pour que la différence soit très difficile à entendre et donc à faire comprendre uniquement « à l’oreille ».
Puisque la même note peut être jouée à différents endroits, l’information audio est souvent insuffisante pour deviner la position exacte de la note jouée. C’est pourquoi le système présenté ici, conçu par Antony Schutz, Marco Paléari, Benoît Huet et Dirk Slock, utilise une information visuelle en complément de l’information sonore.
Technologies accessibles
Pour toucher un large public, un tel système de transcription se doit d’utiliser des technologies accessibles dans le commerce, sans impliquer de la part de l’utilisateur une trop grande dépense (que constituerait par exemple l’achat d’une
L’équipement nécessaire est composé :
- d’un instrument de base,
- d’une caméra vidéo de la qualité d’une webcam,
- et d’un dispositif d’enregistrement audio de la qualité d’un microphone d’ordinateur, voire d’un microphone de webcam.
Si on utilise une guitare MIDI, ce dispositif devient inutile. En effet, une guitare MIDI possède un micro MIDI, constitué de bobinages comme un micro de guitare standard, mais qui présente la particularité que les plots qui récupèrent les vibrations des cordes sont découplés. De ce fait, un plot donné récupère essentiellement la vibration d’une seule corde. Comme sur une guitare, il n’est possible de jouer qu’une seule note à la fois par corde, on peut, avec l’aide d’un dispositif électronique, convertir la note d’une corde dans sa référence MIDI, qui est un protocole standard pour les instruments de musique numériques. Ceci apporte l’avantage de connaître immédiatement la corde sur laquelle la note est jouée, et de pouvoir alors stocker les notes jouées sous leurs représentations symboliques.
Techniques de traitement du signal multi-modal
D’une manière générale, on parle de multi-modalité lorsque l’on utilise des informations provenant de différents types de capteurs. Ici, on utilise la vision et l’écoute. Les deux systèmes ont des tâches complexes à accomplir.
La partie « vision » doit détecter avec précision le manche de la guitare et y trouver la position de la main. Le manche de la guitare est composé de « frettes » (qui délimitent les cases) dont l’espacement répond à une loi mathématique qui est une fonction de la longueur des cordes.
Les tâches de la partie vidéo se décomposent de la façon suivante :
- détecter l’orientation du manche, en recherchant les lignes que forment les cordes ;
- trouver le sillet de tête et le maximum de frettes (lignes perpendiculaires au manche) ;
- fabriquer une grille de dimension standard en fonction de ces informations ;
- détecter les mouvements sur le manche pour trouver la main ;
- suivre la grille et la main au cours du temps.
La partie « écoute », quant à elle, doit trouver les notes, l’instant où elles sont jouées et leur durée. L’écart en fréquence répond à une loi mathématique qui a la même forme que celle de la partie vidéo.
Les tâches de la partie audio sont les suivantes :
- analyser les variations d’énergie du signal (ou d’un sous-espace du signal) pour trouver le début des notes ;
- détecter les fréquences présentes pour trouver les notes ;
- suivre ces fréquences pour en déduire une fin.
Puisque les notes ainsi trouvées peuvent être jouées à différents endroits (on sait que la note détectée peut être jouée sur une ou plusieurs cordes), on compare ces positions théoriques aux positions probables proposées par la partie vidéo. La fusion des deux informations nous indique la corde et la case sur lesquelles la ou les notes sont jouées.
Comment estimer l’orientation de la guitare et la position des frettes ?
Dans le cadre de l’étude présentée ici, certaines contraintes sont posées pour pouvoir analyser l’orientation de la guitare. On suppose que le guitariste est droitier, et que l’on voit le musicien et le manche de la guitare en entier. Le musicien apparaît donc à gauche et le manche à droite de la vidéo. On suppose de plus que le fond est assez uniforme et qu’il n’y a pas de mouvement derrière le musicien. Le manche de la guitare est foncé, ce qui offre un bon contraste pour détecter les frettes qui sont métalliques et la main, elle aussi supposée plus claire. On suppose enfin que la position de départ est à peu près horizontale.
À partir de là, si ces contraintes sont respectées, nous pouvons nous servir d’outils fréquemment utilisés en traitement d’images afin de détecter la position du manche.
La première étape est d’obtenir une représentation robuste des contours de l’image. Ceci est fait en utilisant un algorithme appelé filtre de Canny (1986). On obtient ainsi une image comportant uniquement des zones noires et des zones blanches.
Un autre algorithme, de recherche de ligne, est ensuite appliqué. Le but de cet algorithme est de chercher les frettes qui sont sur le manche (qui sont disposées à 90°). Cela est fait en utilisant une transformation : la transformée de Hough (1962). On obtient ainsi un diagramme dans lequel il est possible de chercher des lignes qui constituent des candidats plausibles. Une limitation sur la longueur des lignes est utilisée afin de limiter le nombre de candidats. Une fois les frettes détectées, on applique un ensemble de lois (correspondant aux écarts entre les frettes) afin de détecter le manche et son orientation.
Comment suivre le manche ?
Une fois les frettes détectées, on a deux points de repère par frette (en haut et en bas de chacune d’elles). La main peut éventuellement en masquer quelques-unes, auquel cas ces points sont temporairement invalidés. Pour suivre les points validés d’une image vidéo à la suivante, on utilise un algorithme de suivi de points : l’algorithme de Lucas-Kanade, un algorithme standard et efficace pour le suivi de points. Ainsi, le manche peut être facilement suivi. Mais à cause des différents mouvements de la guitare et de la main sur le manche, l’algorithme peut perdre les bons points de repère. Lorsque les points suivis (ou un sous-ensemble de ces points) sont ainsi perdus ou s’éloignent du modèle mathématique du manche de la guitare, l’algorithme est réinitialisé.
Comment détecter la main sur le manche ?
La détection de la main sur le manche se fait à partir de l’image passée par le filtre de Canny, donc comportant uniquement des zones noires et des zones blanches. La contrainte ayant été posée que le manche était foncé, donc rendu par du noir, et que la main était claire, donc rendue par du blanc, il s’agit de rechercher dans l’image une zone large (à la différence des frettes), blanche sur un repère noir. De plus, le manche est supposé connu depuis l’étape précédente. Dans ces conditions, il devient facile d’estimer les cases où la main se situe.
Comment estimer le contenu d’une note ?
Le contenu d’une note, pour notre problème, consiste à détecter le début et la fin de cette note, ainsi que de déterminer la note jouée.
La première étape consiste à repérer à quel moment précis commence une note. C’est ce qu’on appelle la détection de l’attaque, aussi appelée détection d’onset. Cette opération est effectuée dans la partie audio, mais est ensuite associée à une image (ou plus précisément une trame, frame en anglais) de la vidéo. Le repère temporel est la cadence de la vidéo, et cela même si les paramètres sont estimés dans la partie audio. Il faut noter que la cadence vidéo est de 30 images par seconde, alors que la cadence audio est de 44.1KHz, c’est-à-dire beaucoup plus précise. Une telle fréquence correspond en effet à 44100 échantillons par seconde ; pour l’équivalence audio-vidéo, on obtient donc 1470 échantillons par trame vidéo.
Vient enfin la détection de la note associée à cette « attaque ». La durée de l’étude est faite sur une ou plusieurs images vidéo et emploie des techniques standard d’estimation itérative de « note ».
Le problème est-il complètement résolu ?
Ce système multi-modal, qui utilise des techniques conventionnelles de traitement du signal et des images, permet de lever l’ambiguïté sur l’estimation de la position d’une note jouée à la guitare. Néanmoins, il reste de nombreuses améliorations possibles.
- Les contraintes de couleur de la peau et du manche de la guitare pourraient être levées grâce à une analyse minutieuse de l’image.
- Le suivi du manche pourrait être amélioré, surtout en cas de grande déformation due à la perspective, en créant une image du manche et en suivant cette image.
- La main droite pourrait également être suivie, afin de mieux comprendre ce qui se passe dans la vidéo. On pourrait ainsi repérer les refrains et les lignes de solo.
- Les doigts de la main gauche pourraient aussi être suivis par moments, pour détecter la présence d’effets d’interprétation (glissando, etc.).
- Un système similaire pourrait être réalisé pour la basse, le violoncelle, la contrebasse, la flûte… tous les instruments où les doigts sont visibles.
Ce travail, effectué en partie dans le cadre d’un projet étudiant, en est encore au stade de l’étude. Sa diffusion, sous forme logicielle, pourrait s’avérer utile dans différents cadres, comme la pédagogie musicale (apprendre à jouer comme son idole), dans les jeux vidéos (Guitar Hero) ou tout simplement pour les musiciens qui souhaiteraient poser leurs compositions et leurs improvisations sur tablature sans efforts.
Newsletter
Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité
Niveau de lecture
Aidez-nous à évaluer le niveau de lecture de ce document.
Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !