1 / 17

Reconnaissance de Yes/No à l’aide du HTK

Reconnaissance de Yes/No à l’aide du HTK. Adapté d’un tutoriel du HTK par Nicolas Moreau. Étapes de la réalisation. Création de l’ensemble d’apprentissage : Chaque élément du vocabulaire est enregistré plusieurs fois, et étiqueté avec le mot correspondant

vachel
Download Presentation

Reconnaissance de Yes/No à l’aide du HTK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reconnaissance de Yes/No à l’aide du HTK Adapté d’un tutoriel du HTK par Nicolas Moreau

  2. Étapes de la réalisation • Création de l’ensemble d’apprentissage : Chaque élément du vocabulaire est enregistré plusieurs fois, et étiqueté avec le mot correspondant • Analyse acoustique : Les signaux enregistrés sont convertis en une série de vecteurs de traits. • Définition des modèles HMM : Un HMM est défini pour chaque élément du vocabulaire de la tâche de reconnaissance. • Entraînement des modèles HMM : Chacun est entraîné avec l’ensemble d’apprentissage correspondant. • Définition de la tâche de reconnaissance : La grammaire à suivre est définie. • Reconnaissance et évaluation de la performance sur un corpus de test.

  3. Organisation de l’espace de travail • On crée la hiérarchie de répertoires suivante : • data/ : emmagasine les données d’apprentissage et de test (signaux acoustiques, étiquettes, etc.) dans deux sous-répertoires data/train/ et data/test/. • analysis/ : emmagasine les donnés de l’étape d’analyse acoustique. • training/ : emmagasine les fichiers concernant l’initialisation et l’apprentissage. • model/ : Emmagasine les modèles (HMMs). • def/ : emmagasine les fichier de définition de la tâche de reconnaisance. • test/ : emmagasine les fichier ayant trait à la validation (test).

  4. Création du corpus d’apprentissage • L’enregistrement et l’étiquetage sont accomplis à l’aide de l’outil HSLab (boutons rec, stop,mark et labelAs) : HSLab nom.sig Après l’étiquetage, on obtient un fichier texte .lab de la forme 4171250 9229375 sil 9229375 15043750 yes 15043750 20430625 sil • On recommence le processus avec des noms de fichiers différents pour chaque enregistrement (e.g. yes01.sig, yes01.lab, yes02.sig, yes02.lab, etc.)

  5. Analyse acoustique • On utilise l’outil HCopy : • HCopy -A -D -C analysis.conf -S targetlist.txt analysis.conf : fichier de configuration pour l’extraction des coefficients acoustiques targetlist.txt : script spécifiant les noms et locations de chaque signal à traiter et du fichier de coefficients correspondant à générer.

  6. MFCC_0_D_A = 12 MFCC + DC + 13 Delta + 13 Acceleration =39 coeff.

  7. Définition structurelle des HMM • Il faut définir le nombre d’états, les fonctions d’observation et les probabilité de transition entre états : pas évident ! • Il faut définir 3 prototypes de HMM avec les options ~h "yes", ~h "no" and ~h "sil "  dans les fichiers de description (hmm_yes, hmm_no, hmm_sil, )

  8. Entraînement des HMM Elle comprend une phase d’initialisation et une phase d’entraînement pour chaque HMM

  9. Entraînement des HMM • Initialisation 1: alignement temporel par algorithme de viterbi • HInit -A -D –T 1 -S trainlist.txt -M model/hmm0 \ -H model/proto/hmmfile -l label -L label_dir nameofhmm • nameofhmm : le nom du HMM à initialiser • hmmfile : fichier descriptif contenant le prototype du HMM • trainlist.txt : liste complète des fichiers .mfcc constituant le corpus d’apprentissage • label_dir : Répertoire des fichiers d’étiquetage (.lab) correspondant au corpus d’apprentissage • label : indique quel segment étiqueté doit être utilisé sans l’ensemble d’apprentissage (yes,no, ou sil, puisqu’on a utilisé ces noms pour étiqueter les HMMs) • model/hmm0 : Répertoire de sortie (doit exister) pour la description de HMM résultante. • La procédure doit être répétée pour chaque modèle (hmm_yes, hmm_no, hmm_sil).

  10. Entraînement des HMM • Initialisation 2: initialisation des moyenne et variances • HCompv -A -D –T 1 -S trainlist.txt -M model/hmm0flat \ • -H model/proto/hmmfile -f 0.01 nameofhmm • nameofhmm: le nom du HMM à initialiser • hmmfile: fichier descriptif contenant le prototype du HMM • trainlist.txt : liste complète des fichiers .mfcc constituant le corpus d’apprentissage • label_dir : Répertoire des fichiers d’étiquetage (.lab) correspondant au corpus d’apprentissage • label : indique quel segment étiqueté doit être utilisé sans l’ensemble d’apprentissage (yes,no, ou sil, puisqu’on a utilisé ces noms pour étiqueter les HMMs) • model/hmm0flat : Répertoire de sortie (doit exister) pour la description de HMM résultante, doit être différenet que celui de HInit. • La procédure doit être répétée pour chaque modèle (hmm_yes, hmm_no, hmm_sil) • Pas requis si Hinit utilisé, cependant génère un fichier vFloors qui contient les variances multipliées par un coefficient établi avec l’option –f (0.01 ci-dessus)

  11. Entraînement des HMM • Entraînement • HRest -A -D -T 1 -S trainlist.txt -M model/hmmi -H vFloors \ • -H model/hmmi-1/hmmfile -l label -L label_dir nameofhmm • Nameofhmm, hmmfile, trainlist.txt, label_dir, label : comme avant • model/hmmi : Répertoire de sortie pour l’itération courante. • La procédure est répétée plusieurs fois pour chaque modèle (hmm_yes, hmm_no, hmm_sil). Le processus s’arrête lorsqu’une variable affichée à l’écran, change, devient constante

  12. Définition de la tâche de reconnaissance • Sauvée dans un fichier gram.txt • $word : variable qui prend les valeurs yes ou no • { } : zéro ou plusieurs répétions du contenu • [ ] : zéro ou une répétition du contenu • Les HMM correspondant aux variables start_sil, end_sil, yes et no doivent être prédéfinis et la correspondance emmagasinée dans un fichier texte (le dictionnaire de tâche) • colonne gauche : variable • Colonne droite : HMM • Milieu : nom du résultat émis

  13. Définition de la tâche de reconnaissance • Le fichier gram.txt doit être compilé pour générer un réseau de tâche HParse -A -D -T 1 gram.txt net.slf • Le système constitué du réseau de tâche, du dictionnaire de t6ache et des HMM associés est alors prêt pour faire de la reconnaissance de parole

  14. La reconnaissance en temps différé • HVite -A -D -T 1 -H hmmsdef.mmf -i reco.mlf -w net.slf \ • dict.txt hmmlist.txt input.mfcc • input.mfcc: les données d’entrée à reconnaître • hmmlist.txt: liste des modèles à utiliser (yes, no, dil), un par ligne • dict.txt: dictionnaire de tâche • reco.mlf : fichier de sortie • hmmsdef.mmf : contient les définitions des HMM concaténées

  15. La reconnaissance en temps différé

  16. La reconnaissance en temps réel • On peut aussi faire de la reconnaissance en direct ! HVite -A -D -T 1 -C directin.conf -g -H hmmsdef.mmf \ -w net.slf dict.txt hmmlist.txt • directin.conf : fichier de configuration de l’entrée audio • Pas de fichier préenregistré! À l’invite READY, on dit un mot au micro et en pressant une clé du clavier, la réponse est fournie.

  17. La reconnaissance en temps réel

More Related