80 likes | 192 Views
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
E N D
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 • Analyse acoustique : Les signaux enregisrés sont convertis en une séries de vecteurs de traits. • Définition des modèles HMM : Un prototype de HMM est construit pour chaque élément du vocabulaire de la tâche de reconnaissance. • Entraînement des modèles : Chaque HMM est initialisé et 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.
Organisation d’un 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.) suivant deux sous-répertoires data/train/ et data/test/. • analysis/ : emmagasine les donnés de l’etape 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).
Création du corpus d’apprentissage • L’enregistrement et l’étiquetage sont accomplis à l’aide de l’outil à interface graphique HSLab (boutons rec, stop, mark et labelas) : HSLab any_name.sig Après l’etiquetage, 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.)
Analyse acoustique • Est effectuée à l’aide de l’outil HCopy : • HCopy -A -D -C analysis.conf -S targetlist.txt Où analysis.conf est un fichier de configuration pour l’extraction de coefficients acoustiques et targetlist.txt spécifie les noms et locations de chaque signal à traiter et du fichier de coefficients correspondant à générer.
MFCC_0_D_A = 12 MFCC + DC + 13 Delta + 13 Acceleration =39 coeff.
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, )
Entraînement des HMM • Elle comprend une phase d’initialisation et une phase d’entraînement • 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 dichiers .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).