Cette page reprend les informations sur le projet du cours d'élément de processus stochastique pour les étudiants de troisième année en bachelier ingénieur civil qui ont choisi la majeure biomédical, électricité, informatique, ou physique.

Scores des systèmes de reconnaissance de chiffres (10 mai 2016)

Agenda

1 mars 2016 Présentation du projet
8 mars 2016 Enoncé, hmm.m, présentation
8 mars 2016, 10:45-12:45 projet - séance 1
15 mars 2016, 10:45-12:45 projet - séance 2
22 mars 2016, 10:45-12:45 projet - séance 3
29 mars 2016, 10:45-12:45 congé de printemps
5 avril 2016, 10:45-12:45 projet - séance 4 (récup mardi gras)
12 avril 2016, 10:45-12:45 projet - séance 5
19 avril 2016, 10:45-12:45 projet - séance 6
26 avril 2016, 10:45-12:45 projet - séance 7: Finalisation
28 avril 2016, 23:59 Remise des rapports
3 mai 2016, 10:45-12:45 Défense orale
10 mai 2016, 10:45-12:45 Défense orale

Outils pour le projet

FAQ

Comment transformer un fichier .ogg, .flac, .m4a ou mp4 en fichier wave?
Vous pouvez utiliser entre autre la fonction audiowrite de matlab.
Quels fréquence d'échantillonnage et nombre de bits par échantillon faut il utiliser pour la collecte des données?
Nous utiliserons le standard CD: une fréquence d'échantillonnage de 44.1kHz et un encodage sur 16 bits.
Dans quel format faut il encoder les échantillons?
Dans le format wave (".wav").
Peut on dépasser 5 pages pour la première partie 1?
Oui, vous pouvez légèrement dépasser cette limite de 1 à 2 pages.
Dans la questions 1.2.6, que voulez-vous dire par « Calculez également la précision pour l’identification de l’origine des 2N séquences utilisées pour l’apprentissage des modèles » ?
Pour cette question, vous devez estimer les paramètres des deux chaînes hmm1 et hmm2 à partir, chacune, de N séquences d’observations de taille 10 générées à partir de cette chaîne. Ensuite, à partir des chaînes ainsi estimées, notées par exemple hmm1_est et hmm2_est, vous devez calculer deux valeurs de précision:
  • La précision quand vous utilisez les chaînes hmm1_est et hmm2_est (à la place des chaînes hmm1 et hmm2 réelles) pour identifier les 2 fois 500 séquences que vous avez utilisées à la question 1.1.5
  • la précision quand vous utilisez les chaînes hmm1_est et hmm2_est pour identifier les 2 fois N séquences que vous avez utilisées pour estimer hmm1_est et hmm2_est.
Ces deux valeurs de précision doivent être comparées à la précision que vous avez obtenue à la question 1.1.5 sur base des chaînes réelles hmm1 et hmm2.
Quand j’utilise Viterbi dans la question 1.2.4, parfois l’algorithme s’arrête en donnant une erreur « A zero transition probability was encountered from state xx ». Est-ce normal ?
Oui. 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).
La fonction audioread ne fonctionne pas quand j’ajoute le chemin vers la librairie hmm dans matlab.
Le problème vient du fait que la librairie hmm redéfinit la fonction matlab assert.m. Pour faire fonctionner les deux, il suffit d’effacer (ou renommer) le fichier assert.m qui se trouve dans le répertoire KPMtools de la librairie HMM.
Pour certains échantillons sonores, la fonction melfcc génère une matrice qui contient des NaN, ce qui pose problème après pour l’apprentissage des modèles. Que peut-on faire ?
Le problème vient du fait que certains échantillons (par exemple 0_Julien.wav) contiennent des portions de signal en début et/ou à la fin complètement à zéro (on peut les visualiser en utilisant 'plot(speech)’ dans matlab une fois l’échantillon chargé à l’aide de la fonction audioread) et la transformée melfcc n’est pas définie pour ce type de signal plat. Vous pourriez ignorer simplement ces échantillons problématiques. Une meilleure stratégie consiste cependant à supprimer ces parties à 0 (voire même légèrement supérieures à zéro) en début ou en fin de signal avant d’appliquer la fonction melfcc et de faire l’apprentissage des modèles.

Données: starter pack

Dans le cadre du projet, vous serez amené à créer votre propre base d'échantillons sonores de chiffres de 0 à 9 et de codes. Afin de démarrer directement le projet, nous vous fournissons un ensemble d'enregistrements de chiffres et de codes de quatre chiffres de départ à l'adresse suivante.

Chaque dossier correspond aux enregistrements d'un chiffre ou de codes. Les échantillons sonores des chiffres sont nommés "ex-XXX-ZZZ" où XXX correspond aux chiffres en question et ZZZ au numéro de l'échantillon lié au chiffre XXX. Les échantillons numéroté de 1 à 10 correspondent à un premier locuteur, tandis que les échantillons numérotés de 11 à 20 correspondent à un second locuteur. A noter que les enregistrements du second locuteur contiennent des bruits parasites (bruits de clavier, clics de souris,...) et des blancs.

Données: échantillons sonores

Dans le cadre du projet, vous êtes amené à fournir des échantillons audios. Les échantillons déjà fournis sont à l'adresse suivante .

Les fichiers audios sont à fournir lors des séances de questions réponses au format ".wav" avec une qualité CD. Les fichiers doivents être nommés en respectant le format suivant: "X_NOM.wav" où X est le chiffre enregistré et NOM est le nom du locuteur.

Remise du rapport (maj 29 Avril 2016)

Défense orale (màj 24 mars 2015)

Références théoriques