Module : Reconnaissance vocale simple

Titre du module : Reconnaissance vocale
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Mathieu Labeau (mathieu.labeau_at_telecom-paristech.fr)

 

Descriptif
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.

 

Ressources dont le module dépend

 

Exemples d’utilisation du module
  • 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

Volume

  • 7 TH programmées pour un binôme

Signatures :

Module : Mise en oeuvre d’une interface Web par PHP, node.js ou python/flask

Module: Mise en oeuvre d’une interface Web par PHP ou node.js ou python/flask
proposé par :

  • Jean-Claude Dufourd (dufourd_at_telecom-paris.fr, 9691, dufourd_at_telecom-paris.fr)
Descriptif
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.
Ressources dont le module dépend
Exemples d’utilisation du module
  • 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.

Module : Estimation de périodicité / hauteur

Titre du module : Estimation de périodicité / hauteur
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • 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
Exemples d’utilisation du module
  • dans des composants pact :
    • détection de hauteur
    • détection du rythme
  • dans des systèmes existants :
    • logiciels d’analyse de la voix (ex : PRAAT)
    • codeurs
Résultats attendus
  • 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

Module : Synthèse sonore FM

Titre du module : Synthèse FM
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • 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
Exemples d’utilisation du module
  • dans des composants pact :
    • synthèse sonore
  • dans des systèmes existants :
    • le synthétiseur culte DX7 de Yamaha
    • la série des chips OPL de Yamaha
Résultats attendus
  • 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

Signatures :

Module : Création d’une carte de pertinence avec kPPV

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 :
  1. 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
  2. Une base de données d’images et des listes de points qualifiés allant avec, en variant les situations
  3. 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.
  4. 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.

Date de début :   26 novembre 2012

Date de fin : 22 janvier 2013

Signatures :

Module : Banc de filtres

Titre du module : Banc de filtres
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • 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
  • bibliothèques JAVA à mettre en oeuvre : math common api
Exemples d’utilisation du module
  • dans des composants pact :
    • dans la détection du rythme
    • pour fabriquer un égaliseur
  • dans des systèmes existants :
    • codage audio (mp3, aac)
    • 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

Le site pédagogique de PACT