Ce module permet de construire un système simple de reconnaissance de la parole d’une dizaine de mots. Il repose sur les modules « descripteurs audio MFCC » et « Programmation dynamique pour la reconnaissance de parole par DTW » qui seront réalisés au préalable.
Pour faire une interface homme-machine naturelle de style « commande vocale ».
Résultats attendus
connaissances : Compréhension des modules « descripteurs audio MFCC » et « Programmation dynamique pour la reconnaissance de parole par DTW,
compétence : Savoir réaliser un système simple de reconnaissance voacle mono locuteur, savoir le rendre plus robuste aux variations de prononciations et aux différents locuteurs
livrable 1 : notice descriptive précise (choix de paramètres, justifications des choix, description mathématique, description informatique) contenant le pseudo-code à mettre en oeuvre
livrable 2 : code java commenté et structuré de manière à être lisible.
livrable 3 : tests du système de reconnaissance sur une base de 10 répétitions de 10 chiffres (base fournie); test du système de reconnaissance avec vocabulaire défini pour le projet
Le JavaServer Pages ou JSP est une technique basée sur Java qui permet aux développeurs de créer dynamiquement du code HTML, XML ou tout autre type de page web. Cette technique permet au code Java et à certaines actions prédéfinies d’être ajoutés dans un contenu statique.
La syntaxe du JSP ajoute des balises XML, appelées actions JSP, qui peuvent être utilisées pour appeler des fonctions.
Les JSP sont compilées par un compilateur JSP pour devenir des servlets Java. Pour ceux qui connaissent PHP, on peut dire que les Java Server Pages (JSP), c’est PHP en Java.
Le module consiste à concevoir et à mettre en oeuvre une interface web avec des JSP, utilisant un serveur open source comme Tomcat.Ou alors à faire du PHP, mais seulement si vous savez déjà l’utiliser.
faire une interface web évolutive en fonction des données
Résultats attendus
livrable 1: installer Tomcat sur une machine du groupe, et créer deux JSPs dont l’une affiche la date et l’heure, la seconde cherche trois images (differentes à chaque exécution) sur le web et les affiche.
livrable 2: créer une page de consultation d’une recette de cuisine stockée dans un format fixe (pur texte) à définir.
livrable 3: créer un système de compte utilisateur avec inscription d’un utilisateur, envoi d’un email de vérification, validation du compte quand l’utilisateur clique sur le lien dans l’email, une page de changement de mot de passe + consultation des caractéristiques du compte.
livrable 4: créer une interface de gestion des comptes utilisateurs, permettant de chercher un utilisateur, le modifier, le détruire.
Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Dans la nature et dans un contexte musical, on rencontre de nombreux signaux périodiques ou quasi-périodiques. Les phonèmes voisés, les chants d’oiseaux ou encore les phénomènes saisonniers tels les émissions de CO2 sont des exemples de tels signaux.Dans des applications comme l’estimation du tempo, la transcription automatique de musique ou le codage de la parole, il est nécessaire d’estimer la période de ce type de signal ou son inverse, la fréquence fondamentale.Dans ce module, 2 possibilités sont proposées :
l’estimation de période à l’aide de l’autocovariance, qui s’appuie sur une analyse temporelle du signal,
une estimation de fréquence fondamentale qui utilise une représentation spectrale du signal par transformée de Fourier : la somme spectrale ou le produit spectral.
Ressources dont le module dépend
Cours SI340, détection de hauteur, cours OASIS signaux aléatoire (+vidéo aléa sur le site : oasis/groupe app/spoc)
connaissances : autocovariance, fréquence fondamentale, spectre de signaux quasi-périodiques, transformée de Fourier
compétence : savoir lire la fréquence fondamentale sur un spectre ou un spectrogramme de signal, savoir expliquer le principe de l’estimation par autocovariance ou par somme/produit spectral
PAN2 : Apprentissage des bases de traitement signal nécessaires. Pour une des méthodes (ex: autocovariance) 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. Définition et enregistrement d’un corpus de test.
PAN3 : Implémentation matlab/octave et test sur le corpus. Code java correspondant commenté et structuré de manière à être lisible. Test unitaire du code JAVA pour vérifier le fonctionnement par comparaison avec le code matlab validé. Mesure des performances sur données de test.
PAN4 : amélioration et/ou mise en place d’une autre méthode avec même protocole de test
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
Titre du module : Création d’une carte de pertinence avec kPPV
proposé par :
Michel Roux (_at_telecom-paristech.fr, Poste 96 84, bureau 5B60)
Descriptif
Ce module prend en entrée une image photographique (RGB), ainsi qu’une liste de points dont la pertinence est qualifiée. Il renvoie une image de même taille que l’image originale, contenant, pour chaque pixel, une information de pertinence selon la qualification proposée en entrée.A partir des pixels qualifiés (par exemple selon 3 classes : très pertinent, pertinent, non pertinent), nous allons exploiter les propriétés de l’image originale (couleur essentiellement) afin d’appendre la relation existant entre la notion de pertinence définie et les propriétés de l’image. Cette relation est capturée par un classificateur qui permet ensuite de classer tous les pixels de l’image selon les classes de pertinence envisagées. Nous préconisons l’usage d’un classificateur kPPV (k Plus Proches Voisins), pour sa simplicité de mise en oeuvre.Le kPPV recherche, pour chaque pixel à classer, ses k (paramètre à déterminer) plus proches voisins parmi ceux de la liste de pixels qualifiés. Cette notion de voisinage est traduite mathématiquement par une mesure de distance (ou de similarité) entre les descriptions vectorielles associées à chaque pixel (qualifiant par exemple sa couleur, sa position). La classe finalement attribuée est la classe majoritaire au sein des k voisins.
Ressources dont le module dépend
Notions de base : définition mathématique d’une distance, d’une mesure de similarité et caractérisation des pixels d’une image.
Le polycopié de SI221 peut être utile
Exemples d’utilisation du module
Dans le projet, ce module sera utilisé pour différencier des zones d’une image selon un critère de pertinence défini par l’utilisateur : cette information est disponible sous forme d’une liste de pixels qualifiés selon des classes de pertinence prédéfinies.
D’une façon plus générale, le kPPV est un classificateur supervisé : il doit donc disposer d’une base de données étiquetées (les classes sont connues à l’avance) et il peut fonctionner pour différents types d’étiquettes. On pourrait imaginer l’utiliser, par exemple, pour qualifier la pertinence d' »envoyer des bombes de peinture » mais également la « quantité de bleu » à privilégier au niveau de chaque pixel.
Résultats attendus
connaissances : classification, supervisé-non supervisé, pixel, caractérisation vectorielle d’un pixel, mesure de distance et de similarité
compétence : à l’issue de ce module je saurai construire/utiliser un classificateur kPPV en Java, afin de produire une carte de pertinence exploitable dans le projet Splash Painter.
livrable :
Une étude bibliographique (présentation orale avec support ppt, à partager avec les autres membres du groupe) sur les mesures de distances et la caractérisation des pixels d’une image
Une base de données d’images et des listes de points qualifiés allant avec, en variant les situations
Du code Java permettant de stocker les données nécessaires, de traiter l’image d’entrée, de créer le classificateur et de prédire la classe de chaque pixel de l’image.
Un rapport (écrit) d’expérimentation décrivant la base de données, le protocole des tests, les résultats obtenus et les conséquences sur le projet du groupe.
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
En amphi saphir 14:00 : introduction au filtrage (par Thomas Fillon)
En amphi Ruby 14:00 : introduction à la synthèse sonore (Bertrand David)
En amphi Ruby 15:00 : introduction à la détection du rythme
Jeudi 15/11/2012 de 11:00 à 12:00 (et plus si besoin) des experts audio (B. David, T.Fillon) vous accueillent en B310.
Nous essaieront de mieux cerner les besoins pour organiser des petits cours d’introduction le lundi qui suit et répartir les taches d’expertise.