Archives de catégorie : module: audio et langage

Module : Estimation de périodicité / hauteur

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

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Slim Essid (slim.essid_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)
  • Slim Essid (slim.essid_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 : Banc de filtres

Titre du module : Banc de filtres
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Slim Essid (slim.essid_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

 

Module : Lecture, capture et traitement de fichiers audio

Module : Lecture, capture et traitement de fichiers audio
proposé par :

  • Jean-Claude Dufourd (dufourd_at_telecom-paris.fr, 7733, bureau E501)

 

Descriptif
Ceci n’est pas un module, c’est trop petit pour être un module.

La bibliothèque ci-dessous pourrait être utile

Ce travail concerne la lecture, la capture et les manipulations habituelles simples de fichiers audio. Pour des raisons historiques, les fichiers WAV sont d’une complexité sans commune mesure avec le problème théorique de stockage de son. Une bibliothèque Java Wave File IO permet de cacher la plupart de ces problèmes et d’obtenir une représentation du son en mémoire, représentation qu’on peut manipuler.Il est possible de faire ce travail sur PC et/ou sur Android.

 

Ressources dont le module dépend
Bibliographie:

Et pour Android:

 

Exemples d’utilisation du module
  • pour tout traitement de son, lu, calculé ou capturé

 

 

 

Module : Descripteurs audio MFCC

Module: descripteurs audio MFCC
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Slim Essid (slim.essid_at_telecom-paristech.fr)
  • 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.

 

Ressources dont le module dépend

 

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.
Volume
  • 4TH programmées pour un binôme

 

Module : Classification automatique

Contacts experts : 

Michel Roux (at telecom-paristech.fr), Slim Essid (at telecom-paristech.fr)

Introduction :

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.

Classes sonores
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.

Système de classification
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).

Bibliographie :

Il existe de nombreux ouvrages de référence. Pour une introduction vous pouvez consulter  Pattern classification ou Pattern Recognition

 

Module : Classification par Adaboost

Adaboost
proposé par :

  • Slim Essid (at telecom-paristech.fr, 7171)

 

Descriptif
Adaboost est un algorithme de classification particulier de la famille des méthodes dites de boosting. L’idée générale de ces méthodes est de construire un classificateur performant (dit fort) en combinant de manière « intelligente » un ensemble de classificateurs faibles (faisant des prédictions à peine plus fiables que celles faites par le hasard). L’algorithme Adaboost trouve cette combinaison de classificateurs faibles au travers d’une procédure itérative qui accorde à chaque itération un poids de plus en plus important aux exemples d’apprentissage les plus difficiles à classifier.Plusieurs choix de classificateurs faibles existent. Nous exploiterons ici des arbres de décision à un seul niveau, autrement dit des classificateurs faibles qui se réduisent à comparer les valeurs des caractéristiques (ces caractéristiques peuvent être par exemple des valeurs de couleur pour les images, ou l’intensité du signal pour les sons, etc.) à des seuils.

 

Ressources dont le module dépend

 

Exemples d’utilisation du module
  • dans les systèmes de détection de visage de la plupart des appareils photos
  • 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.), ou de classification de sons en catégories générales (parole, musique, silence, sons environnementaux), etc.

 

Résultats attendus
  • connaissances : principe de boosting, algorithme Adaboost, arbres de décision.
  • compétence :  à l’issu de ce module vous aurez défini et programmé  en Java un classificateur Adaboost sur arbres de décision et vous saurez l’évaluer sur une base de données.
  • livrable 1: pseudo-code
  • livrable 2: code java + test de performance sur une base de données relatives au projet en cours.

 

Module : Filtrage à réponse impulsionnelle finie

Titre du module : Filtrage RIF de données
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Slim Essid (slim.essid_at_telecom-paristech.fr)
  • 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.

 

Ressources dont le module dépend

 

Exemples d’utilisation du module
  • dans les composants pact :
    • banc de filtres
    • détection d’enveloppe
    •  préaccentuation
    • dérivateur
  • dans des applications  :
    • convertisseur de fréquence d’échantillonnage
    • égaliseur
    • démodulation numérique

 

Résultats attendus
  • 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.

 

Bibliographie : Synthèse et Reconnaissance de la parole

Contact:

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Slim Essid (slim.essid_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)

Descriptif

Cette page donne quelques liens vers des documents en synthèse et reconnaissance de la parole.

Présentation succincte sur la synthèse et Reconnaissance de la parole

Traitement de la parole

  • R. Boite, H. Bourlard, T. Dutoit, J. Hancq, and H. Leich. Traitement de la parole. Presses polytechniques et universitaires romandes,Lausanne, 2000.
  • Calliope, « La parole et son Traitement Automatique, 1989
  • J. Benesty, M. Sondhi, Y. Huang, « Handbook of Speech Processing », Springer, 2008 (1176 pages !!)
  • G. Richard, « traitement de la parole », polycopié Télécom ParisTech

Reconnaissance de la parole

Synthèse de la parole

Travaux pratiques (cycle master) qui peuvent être utiles