Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
La synthèse sonore regroupe un ensemble de procédés numériques et d’algorithmes destinés à produire des sons. Ces sons peuvent être environnementaux, comme par exemple dans le cas des jeux vidéo (vent, bruits lors de contacts ou d’interaction avec des objets, bruits d’ambiance tels que les chants d’oiseaux…) ou musicaux.La synthèse par modulation de fréquence (FM) s’appuie sur le principe de la modulation de fréquence, c’est à dire de phase, utilisé en transmission des signaux radiofréquences est transposé pour produire des spectres riches, contrôlables très aisément. En cascadant simplement deux oscillateurs sinusoïdaux contrôlés en fréquence, on produit une configuration élémentaire de synthèse FM.En transmission radio, la modulation de fréquence utilise une porteuse fp à haute fréquence (typiquement quelques dizaines de MHz), c’est à dire un signal sinusoïdal, dont la fréquence est modulée par un signal audio avec une bande n’excédant pas 20 kHz. Le résultat est un signal dont le spectre est centré sur la porteuse avec
un étalement très faible comparativement à celle-ci. L’idée présentée dans l’article original de J. Chowning est d’utiliser le même principe mais avec des fréquences porteuse et modulante du même ordre de grandeur.
Ressources dont le module dépend
Cours SI340, synthèse sonore, Document plus complet sur la synthèse FM ici, Transparents de présentation, pour le prototypage : logiciel FM Dreams
connaissances : synthèse sonore, fréquence instantanée, phase instantanée, Index de modulation, synthèse FM
compétence : savoir expliquer la relation entre fréquence et phase instantanée, savoir expliquer comment le spectre varie avec l’index de modulation, savoir proposer des systèmes de synthèse FM pour les sons de cuivres, de bois ou pour des sons inharmoniques
livrable 1 : notice descriptive précise (principe général et systèmes mis en oeuvre, choix et réglages des paramètres) contenant le pseudo-code à mettre en oeuvre
livrable 2 : code java commenté et structuré de manière à être lisible.
livrable 3 : Démonstration raisonnée
reproduire à l’aide de votre code java un exemple simple a deux oscillateurs tel que vous pouvez le tester avec FM Dreams,
mettre en évidence l’influence de l’index de modulation sur l’enrichissement du spectre
Date de début : x Date de fin : x + 9h programmées
Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Un signal audio comprend des composantes fréquentielles perceptibles allant de 20Hz à 20kHz. Dans de nombreux traitements, il est utile de se concentrer sélectivement sur des gammes de fréquences plus restreintes. Par exemple 100Hz à 300Hz. L’opération linéaire qui consiste à extraire sélectivement les composantes fréquentielle dans cette gamme restreinte à partir du signal original est un filtrage passe-bande de bande utile 100-300Hz. Lorsque cette opération de filtrage est effectuée en parallèle plusieurs fois pour des gammes (ou bandes) de fréquences distinctes comme par exemple : 0-200 / 200-500 / 500-1000 etc, on obtient autant de signaux extraits que de bandes et on parle de banc de filtres. Un schéma d’exemple est donné ci-dessous :Pour réaliser cette fonctionnalité, 3 possibilités : par filtrages à RIF (Réponse Impulsionnelle Finie), par filtrages à RII (Réponse Impulsionnelle Infinie) ou à l’aide de la TFCT (Transformée de Fourier à Court Terme). Les deux premières renvoient aux modules correspondants.
Ressources dont le module dépend
wikipédia : filterbank, spectrogram, filter, cours oasis (SI101) filtrage
en conversion de cadence (changement de fréquence d’échantillonnage)
jpeg2000 en image
éditeurs audio
Résultats attendus
connaissances : convolution discrète, filtrage, réponse impulsionnelle, réponse en fréquence, RII, RIF, banc de filtres, TFCT, spectrogramme, canal fréquentiel, bande de fréquences, sous-bande.
compétence : expliquer pourquoi la TFCT est équivalente à un banc de filtres, savoir justifier des choix de paramètres (nombre de bandes, choix de fenêtre, hopsize), savoir expliquer les caractéristiques d’un spectrogramme de signal audio.
PAN 2 : notice descriptive précise (choix de paramètres, justifications des choix, description mathématique, description informatique) contenant le pseudo-code à mettre en oeuvre, et une première implémentation en matlab/octave sour forme de fonction.
Constitution d’une collection de signaux test à différents tempo, au format wav pour tester les algorithmes. Il s’agira à la fois de signaux de type horloge et de signaux réalistes (musicaux ou adaptés à votre projet).
PAN3 :
code java commenté et structuré de manière à être lisible.
tests du banc de filtre :
sur un bruit blanc : afficher le spectre en entrée et les spectres des signaux de sortie,
sur des signaux de votre choix, enregistrer en format wav les sorties obtenues pour chaque voie du banc de filtre
Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Le Cepstre d’un signal audio est une représentation qui permet de caractériser le timbredu son associé. Il s’obtient comme la transformée de Fourier inverse du logarithme du spectre d’amplitude du signal.Dans la plupart des systèmes de classification audio (cf rubrique classification), on exploite des caractéristiques calculées à partir du Cepstre : les MFCC (Mel Frequency Cepstral Coefficients). Il s’agit d’une variante de coefficients cepstraux qui exploite un modèle simple d’audition humaine et qui s’avère très efficace dans la plupart des problèmes de classification.
Bibliothèque Java pour le calcul de la transformée de Fourier rapide (FFT)
Exemples d’utilisation du module
dans un système de reconnaissance des instruments de musique,
de classification de musique en genres (classique, jazz, pop, etc.) ou en humeurs, (joyeux, triste, etc.),
de classification de sons en catégories générales (parole, musique, silence, sons environnementaux).
Résultats attendus
connaissances : calcul du Cepstre réel, fréquences Mel, calcul des MFCC
compétence : à l’issue de ce module vous aurez écrit en Java un programme qui charge des signaux audio et retourne une séquence de vecteurs MFCC (extraits sur des fenêtres d’analyse à court terme)
livrable 1: pseudo-code
livrable 2: code java + test de comparaison des MFCC obtenus par le programme développé à ceux calculés avec un autre programme (Matlab) de référence.
La classification automatique vise à assigner des objets à des catégories ou classes. Dans PACT, ces objets peuvent être des images, des vidéos, des sons, des textes, etc. Ces classes peuvent être connues à l’avance ou non, on parle alors de classification supervisée ou non supervisée. Par exemple, lorsqu’on analyse un contenu sonore, on peut vouloir automatiquement assigner les sons à des classes telles que celles qui apparaissent sur la figure 1.
Figure 1 – Exemple de schéma classification audio général
Le principe général des systèmes de classification supervisée (cf. figure 2) inclut deux étapes:
une étape d’apprentissage qui peut être vue comme une phase de développement aboutissant à la mise en oeuvre d’une stratégie de classification;
une étape de test par laquelle les performances du système de classification sont évaluées.
En général, un système n’est prêt pour une utilisation réelle qu’après une succession d’étapes d’apprentissage et de test permettant de mettre en place une stratégie de classification efficace.
Figure 2 – Architecture générale d’un système de classification (traitant dans cet exemple des signaux audio)
La phase d’apprentissage comprend:
l’extraction à partir d’une base de données de référence appelée base d’apprentissage, de descripteurs sous forme de paramètres numériques. Ces paramètres qui sont aussi appelés attributs ou caractéristiques (features en anglais) sont sensés caractériser des propriétés des signaux pouvant révéler leur appartenance à l’une des classes envisagées.
La sélection d’attributs efficaces; en pratique un nombre élevé de descripteurs « candidats » qui ne servent pas tous les performances de classification est considéré, il est alors intéressant d’avoir recours à des techniques permettant de retenir un sous-ensemble d’attributs (de plus petite taille) qui garantisse les meilleurs résultats de classification.
L’apprentissage à partir des attributs sélectionnés de fonctions de classification ou fonctions de décision, lesquelles fonctions serviront à assigner des observations d’attributs de nouveaux exemples (de test) à l’une des classes possibles.
Lors de l’étape de test il n’est nécessaire d’extraire des signaux que les attributs qui ont été retenus et de décider de l’appartenance de ces signaux aux classes possibles en utilisant les fonctions de décisions apprises.
Dans PACT deux modules de classification particuliers vous sont proposés : les kPPV et Adaboost.
Il existe de nombreux autres classificateurs (supervisés ou non). Différentes UE du cycle master vous sont proposées pour les découvrir, en particulier SI221 (Laurence Likforman) ou MDI343 (Stéphan Clémençon).
Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
A l’aide d’une somme pondérée de N échantillons d’entrée, il est possible de réaliser un filtrage de ces mêmes données. Ceci permet par exemple de renforcer les graves dans un morceau de musique, d’isoler une bande de fréquence données ou même de simuler l’opération de différentiation.
connaissances : convolution, réponse impulsionnelle, réponse en fréquence, filtrage, RIF vs RII, équation aux différences, passe-bas/haut/bande, transformée de Fourier, transitoire, retard
compétence : être capable de réaliser en java un filtre à RIF dont on connais les coefficients, être capable de prévoir théoriquement son comportement par le calcul, être capable de démontrer son fonctionnement à l’aide d’exemples bien choisis
livrable : pseudo-code du filtrage à RIF, programmation de ce pseudo-code en java, programmation d’un test avec affichage graphique des spectres entrée/sortie.