Traitement du Signal Audio (3 SyM)

Présentation

Le cours est construit autour de la chaîne de traitement du signal audio pour la voix et la musique. On parlera de psychoacoustique, d’acoustique musicale , de compression MP3 et d’illusions sonores, et des effets de traitement audio les plus courants dans les systèmes audio professionnels (post-prod cinéma et production musicale), en particulier l’égalisation, la compression dynamique, la spatialisation et la réverbération.

Supports de cours

Proposition de sujets de mini-projets 2016-2017

[REY-1] Algorithme Shazam – implémentation sous Android

(proposé conjointement par G. Peeters et S. Reynal)

L’objectif de ce mini-projet est de reproduire l’algorithme d’identification audio par technique de fingerprint de Shazam tel que publié par [Avery Wang 2003], puis de l’implémenter sous forme d’application Android.

On créera :

  • une base de morceaux faites de ses morceaux personnel (votre collection musical)
  • une fonction A permettant l’extraction des fingerprints d’un titre donné et le stockage de ceux-ci dans un fichier
  • une fonction B de batch appelant la fonction A sur tout les morceaux de la base, et créant un fichier unique stoquant tous les triplets [fingerprint, morceau d’origine, temps d’origine]
  • une fonction C de reconnaissance audio, celle-ci enregistrera le signal audio du micro (fonction matlab audiorecorder), appelera la fonction A pour obtenir les fingerprints et appelera la fonction D de reconnaissance
  • une fonction D qui recherchera le meilleur appariement entre fingerprint d’entrée et ceux stoqués dans la base

Pour la partie Android, on pourra suivre les étapes suivantes :

  • installation et prise en main de l’environnement de programmation Eclipse pour Android (dev en java / xml)
  • procédure pour installer le plug-in Eclipse pour Android
  • voir le tutoriel d’initiation à java pour Android (réaliser sa première appli mobile)

Il est suggéré que chaque membre du binôme gère une seule des deux tâches (aspect signal ou développement android).

[REY-2] Application du Machine Learning (aka BigData pour l’audio) à l’extraction d’information musicale d’un morceau – implémentation sous Android

(proposé conjointement par G. Peeters et S. Reynal)

Il s’agit de développer un ou plusieurs algorithmes de MIR (Music Information Retrieval) utilisant les techniques de Machine Learning autour de :

  • la reconnaissance automatique du genre musical ou regroupement de morceaux par similarité (une source pour démarrer)
  • la reconnaissance automatique de séries d’accords dans un morceau, en utilisant les chaînes de Markov cachées

Pour la partie Android, on pourra suivre les étapes suivantes :

  • installation et prise en main de l’environnement de programmation Eclipse pour Android (dev en java / xml)
  • procédure pour installer le plug-in Eclipse pour Android
  • voir le tutoriel d’initiation à java pour Android (réaliser sa première appli mobile)

[REY-3] : conception d’un synthétiseur modulaire analogique

 

L’objectif de ce thème est de développer un ensemble de modules de synthèse sonore analogique susceptible de constituer, une fois connectés entre eux, un synthétiseur modulaire :

  • Module oscillateurs
  • Modules VCF, LFO, VSA
  • Interface homme-machine (potentiomètres, réglettes, …)
  • Eventuellement, pilotage des fréquences des oscillateurs avec une carte Raspberry PI ou une BeagleBone

C’est un très beau sujet pour passionné d’électronique analogique !

[REY-4] : instruments de musique/jeux sonores adaptatifs pour personnes en situation de poly-handicap (projet couplé avec binôme 3EIB)

Contexte : L’association ZIGZAG propose des ateliers de jeux sonores au sein de la Maison d’Accueil Spécialisé de Cergy le Haut, institution dédiée à l’accueil des personnes en situation de poly-handicap. L’objectif de ces ateliers est de susciter l’intérêt des participants, de les stimuler dans l’interaction avec les outils et avec l’auditoire, ce au moyen d’interfaces adaptables à une motricité parfois limitée, et de les accompagner dans une expression sensitive (audio-visible), corporelle et ludique. Très peu d’interfaces sont réellement adaptées à l’expression sensitive (sonore, visuelle, tactile ou corporelle) des personnes en situation de polyhandicap. C’est dans ce cadre que ZIGZAG sollicite l’ENSEA dans la conception d’un prototype d’instrument de musique adapté à son public. Le projet comporte deux partie :

  • une partie capteur (et interface) : réalisé par des étudiants de la section EIB
  • une partie signal/musique : réalisé par des étudiants de SyM.

L’implémentation a lieu sur plateforme Raspberry 3 (pour les deux parties).

Pour ce qui relève de la seconde partie spécifiquemnent SyM, on pourra par exemple utiliser puredata ou Max/MSP, mais d’autres frameworks sont envisageable (jMusic, etc). Le but est de concevoir un système capable de générer des sons par synthèse sonore, en réponse aux stimuli, et de le tester le plus tôt possible avec le public de l’association.

 

[REY-5] Algorithmes audionumérique temps réel sur plateforme Raspberry PI 3 et interface physique :

 

Le sujet comporte deux parties qui peuvent être traitées séparément par deux étudiants.

Une partie “signal audio” :il s’agit de développer plusieurs algorithmes temps-réel pour la voix tels que

  • l’autotune permet de corriger la justesse tonale ; on pourra s’appuyer sur un des nombreux algorithmes de pitch-shifing existents
  • l’harmonizer ajoute des harmonies supplémentaires dans la mélodie de voix
  • la spatialisation ajouter de la réverbération

Une contrainte forte est que les algorithmes soient rapides afin d’être appliqués en temps réel (sur scène par exemple). Le prototypage pourra avoir lieu sous matlab, mais l’implémentation finale est en C/Java.

Une partie “interface physique” : il s’agit de développer autour de la carte raspberry 3 une interface à base de boutons potentiométriques, de boutons-poussoirs et d’afficheurs (Développement en C et/ou Java).

Quelques pistes pour démarrer :

[REY-6] Effets audio sous HTML5 – interface de construction graphique

Il s’agit de concevoir un outil graphique (en ligne) permettant de construire graphiquement une chaîne d’effets audio pour un site web dédié à la musique ; l’outil permet de déposer des blocs d’effet (compresseur, filtre, reverb, …) sur une page web vierge pour générer le code javascript correspondant.

[REY-7] Suivi musical de cible pour la danse – implémentation sous Max/MSP avec une Kinect XBOX

Max/MSP est un langage graphique dédié au traitement audio pour la musique (similaire à puredata) ; ici il s’agira de concevoir un “patch” sous Max/MSP permettant, à partir d’une captation provenant d’une Kinect XBOX, de modifier plusieurs paramètres sonores en temps réel en fonction des mouvements d’un danseur ; on utilisera la bibliothèque JITTER/video intégrée dans Max/MSP.

Il y a donc une grosse partie “reconnaissance d’image/de mouvement” à développer et le sujet est vraiment mixte audio/image !

[REY-8] Interface audio pour carte Beaglebone Black – enregistreur multicanaux ou multieffet pour instrument

Il s’agit de développer une interface audio de qualité professionnelle sous forme de carte d’extension de type “cape” pour la carte Beaglebone Black tournant sous Linux. Il y a deux tâches principales:

  • le design de la carte proprement dite autour d’un Codec
  • le développement du driver audio pour linux (ou l’adaptation d’un driver existant, c’est souvent le cas)

Il s’agit d’un sujet très orienté architecture et électronique numérique, qui permet également d’acquérir de bonnes compétences sur le noyau Linux.

Je vous propose deux applications possibles (soit un enregistreur multicanaux de qualité pro, soit le développement d’un “multieffet”), mais dans les deux cas la démarche reste la même (seul le codec change).