Université de Liège

Eléments de Processus Stochastiques (MATH0488-1)

Année 2016-2017

Projet sur les chaines de Markov cachées


Cette page est destinée aux étudiants du cours d'Eléments de processus stochastiques ayant choisi comme option majeure biomédical, électricité, informatique ou physique.

Informations

  • Les notes du projet sont désormais disponibles sur la plateforme de soumission.

  • Les scores et le classement pour la prédiction de chiffres isolés sont disponibles ici.

  • Informations à propos de la remise du rapport et de la défense orale disponibles.

  • Une séance supplémentaire est organisée pendant les vacances de Printemps, mardi 4 avril 2017 de 10h45 à 12h45. ATTENTION : cette séance supplémentaire aura lieu au R7 (B28).

  • La première séance d'encadrement aura lieu le mardi 14/03 de 10h45 à 12h45 au local S39 (B37). Présentation du projet

  • Le projet se fera par groupe de 3. Si possible, veuillez former vos groupes avant la première séance.

  • La liste de répartition des étudiants pour le cours d'Eléments de Processus Stochastiques est disponible ici.

  • Le projet est à rendre au plus tard pour le jeudi 4/05/2017 à 23h59 sur la plateforme de soumission http://submit.montefiore.ulg.ac.be. Dès que votre groupe sera formé, vous pourrez l'inscrire sur la plateforme. La page http://submit.montefiore.ulg.ac.be/student/help détaille comment créer un groupe mais n'est accessible qu'une fois inscrit sur la plateforme.


Enoncé, données et outils pour le projet

  • Enoncé du projet
  • Données pour la partie 1
  • Hidden Markov Model (HMM) Toolbox for Matlab
  • Extraction de caractéristiques à partir de signaux audio (toolbox de Dan Ellis)
  • Vous pouvez trouver quelques échantillons de chiffres ainsi que des séquences de 4 chiffres ici afin de pouvoir commencer directement la partie 2 du projet. Chaque échantillon est nommé de la façon suivante : ex-XXX-YYY.wav, où XXX correspond au chiffre prononcé et YYY au numéro de l'échantillon. Les numéros de 1 à 10 correspondent à un premier locuteur et ceux de 11 à 20 à un deuxième. Notez que les échantillons du deuxième locuteur contiennent des bruits parasites et des blancs. Pour améliorer votre modèle, il vous faudra récolter plus d'échantillons.
  • Quelques fonctions MATLAB utiles :
    • Pour lire un fichier audio : audioread.m (usage : [speech,sampling_rate] = audioread(‘son.wav’);)
    • Pour créer des filtres : butter.m, designfilt.m, cheby1.m, etc
    • Pour appliquer les filtres : filter.m
    • Pour extraire les caractéristiques : melfcc.m (usage : [MELFCCs] = melfcc(speech(:,1),sampling_freq,'numcep',np) où np est le nombre de coefficients cepstraux)
    • Pour standardiser les données : standardize.m
    • Si vous utilisez des mélanges de gaussiennes : mixgauss_init.m, mhmm_em.m

FAQ

  • Dans la question 1.2.4, il arrive que lors de l'utilisation de hmmtrain.m avec Viterbi, l’algorithme s’arrête en donnant une erreur « A zero transition probability was encountered from state xx ».
    Il se peut qu’au cours des itérations, l’algorithme arrive à une chaîne estimée telle que la séquence d’observations est impossible (elle a une probabilité nulle). L’algorithme de Viterbi ne peut alors pas renvoyer de séquences d’états. Pour résoudre le problème, vous pouvez utiliser les options ‘PSEUDOTRANSITIONS’ et ‘PSEUDOEMISSIONS’ de la fonction ‘hmmtrain’ (voir l’aide de cette fonction dans matlab).
  • Lorsqu'on crée un chemin vers la toolbox HMMall, la fonction audioread.m ne fonctionne plus.
    Cela provient du fait que la fonction matlab assert.m est redéfinie dans la toolbox. Pour qu'audioread.m fonctionne, il faut donc soit renommer assert.m dans la toolbox, soit l'effacer.
  • La fonction melfcc.m génère des NaN pour certains échantillons, ce qui pose problème pour l'apprentissage.
    Certains échantillons contiennent des portions de signal en début et/ou à la fin complètement à zéro et la transformée mlfcc n'est pas définie pour ce type de signal plat. Il faut donc supprimer les parties à 0 (ou légèrement supérieures à 0) en début et fin de signal avant d'appliquer la transformée.

A rendre

  • Une archive .zip contenant le rapport au format .pdf et les codes Matlab est à rendre pour le jeudi 4 mai à 23h59 sur la plateforme de soumission ET par mail à Vincent Denoël. L'objet du mail doit être [math0488]Rapport de nom1, nom2, nom3 où nom1, nom2 et nom3 sont les noms de famille des membres du groupe indiqués par ordre alphabétique. Le corps du mail doit contenir les noms, prénoms, matricules et options (majeure/mineure) des membres du groupe.
  • Le code Matlab devra comprendre une fonction nommée predict.m qui prend en argument un tableau de cellules contenant les signaux audios (après traitement avec audioread.m) associé à un chiffre et qui ressort un tableau d'entier, où chaque élément correspond au chiffre prédit pour chaque signal audio donné en entrée.
  • Si vous avez implémenté la détection de séquences de chiffres, votre code devra comprendre une fonction nommée predict_code.m et si vous avez implémenté la détection d'intrus, votre code devra comprendre une fonction nommée predict_outlier.m.

Défense orale

  • 10 min de présentation max, 5 min de questions
  • La qualité de la présentation fera l'objet d'une appréciation de notre part, et la qualité des réponses aux questions viendra moduler notre évaluation de votre travail. Idéalement tous les membres du groupe doivent activement participer aux deux. Il est également utile de brièvement présenter la manière dont vous avez partagé le travail, par exemple en fin de présentation.
  • Veuillez envoyer votre présentation au format .pdf par mail, avant 10h le mardi 9 mai si vous présentez le mardi et avant 8h le mercredi 10 mai si vous présentez le mercredi à Laurine Duchesne. L'objet du mail doit être [math0488]Présentation de nom1, nom2, nom3 où nom1, nom2 et nom3 sont les noms de famille des membres du groupe indiqués par ordre alphabétique. Le corps du mail doit contenir les noms, prénoms, matricules et options (majeure/mineure) des membres du groupe.
  • Nous vous demandons d'être présent au moins 15min avant l'heure de votre présentation et d'attendre dans le couloir que nous vons appelions.
  • Les présentations auront lieu au local 1.21 (Montefiore, B38).
  • Les horaires des présentations seront bientôt communiqués.