You are on page 1of 17

Reconnaissance de Yes/No

laide du HTK
Adapt dun tutoriel du HTK par Nicolas Moreau

tapes de la ralisation
1.

2.
3.

4.
5.
6.

Cration de lensemble dapprentissage : Chaque


lment du vocabulaire est enregistr plusieurs fois, et
tiquet avec le mot correspondant
Analyse acoustique : Les signaux enregistrs sont
convertis en une srie de vecteurs de traits.
Dfinition des modles HMM : Un HMM est dfini pour
chaque lment du vocabulaire de la tche de
reconnaissance.
Entranement des modles HMM : Chacun est entran
avec lensemble dapprentissage correspondant.
Dfinition de la tche de reconnaissance : La
grammaire suivre est dfinie.
Reconnaissance et valuation de la performance sur un
corpus de test.

Organisation de lespace de travail


On cre la hirarchie de rpertoires suivante :

data/ : emmagasine les donnes dapprentissage et de test


(signaux
acoustiques, tiquettes, etc.) dans deux sousrpertoires
data/train/ et data/test/.
analysis/ : emmagasine les donns de ltape danalyse
acoustique.
training/ : emmagasine les fichiers concernant linitialisation
et
lapprentissage.
model/ :
Emmagasine les modles (HMMs).
def/ :
emmagasine les fichier de dfinition de la tche de
reconnaisance.
test/ : emmagasine les fichier ayant trait la validation
(test).

Cration du corpus dapprentissage

Lenregistrement et ltiquetage sont accomplis laide de


loutil HSLab (boutons rec, stop, mark et labelAs) :
HSLab nom.sig
Aprs ltiquetage, 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


diffrents pour chaque enregistrement (e.g. yes01.sig,
yes01.lab, yes02.sig, yes02.lab, etc.)

Analyse acoustique

On utilise loutil HCopy :


HCopy -A -D -C analysis.conf -S targetlist.txt
analysis.conf : fichier de configuration pour lextraction des
coefficients
acoustiques
targetlist.txt : script spcifiant les noms et locations de
chaque signal
traiter et du fichier de coefficients
correspondant gnrer.

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

Dfinition structurelle des HMM


Il faut dfinir le nombre dtats, les fonctions dobservation
et les probabilit de transition entre tats : pas vident !

Il faut dfinir 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, )

Entranement des HMM

Elle comprend une phase dinitialisation et une phase


dentranement pour chaque HMM

Entranement 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 complte des fichiers .mfcc constituant le corpus
dapprentissage
label_dir : Rpertoire des fichiers dtiquetage (.lab) correspondant au corpus
dapprentissage
label : indique quel segment tiquet doit tre utilis sans lensemble
dapprentissage (yes,no, ou sil, puisquon a utilis ces noms pour tiqueter les
HMMs)

Entranement 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 complte des fichiers .mfcc constituant le corpus
dapprentissage
label_dir : Rpertoire des fichiers dtiquetage (.lab) correspondant au
corpus dapprentissage
label : indique quel segment tiquet doit tre utilis sans lensemble
dapprentissage (yes,no, ou sil, puisquon a utilis ces noms pour tiqueter
les HMMs)
model/hmm0flat : Rpertoire de sortie (doit exister) pour la description de
HMM rsultante, doit tre diffrenet que celui de HInit.

La procdure doit tre rpte pour chaque modle (hmm_yes, hmm_no,


hmm_sil)
Pas requis si Hinit utilis, cependant gnre un fichier vFloors qui
contient les variances multiplies par un coefficient tabli avec loption f
(0.01 ci-dessus)

Entranement des HMM


Entranement

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 : Rpertoire de sortie pour litration courante.

La procdure est rpte plusieurs fois pour chaque modle (hmm_yes,


hmm_no, hmm_sil). Le processus sarrte lorsquune variable affiche
lcran, change, devient constante

Dfinition de la tche de reconnaissance


Sauve dans un fichier gram.txt

$word : variable qui prend les valeurs yes ou no


{ } : zro ou plusieurs rptions du contenu
[ ] : zro ou une rptition du contenu
Les HMM correspondant aux variables start_sil, end_sil, yes et no doivent
tre prdfinis et la correspondance emmagasine dans un fichier texte
(le dictionnaire de tche)
colonne gauche :
variable
Colonne droite : HMM
Milieu : nom du rsultat

Dfinition de la tche de reconnaissance


Le fichier gram.txt doit tre compil pour gnrer un rseau
de tche
HParse -A -D -T 1 gram.txt net.slf

Le systme constitu du rseau de tche, du dictionnaire de t6ache


et des HMM associs est alors prt pour faire de la reconnaissance de
parole

La reconnaissance en temps diffr

HVite -A -D -T 1 -H hmmsdef.mmf -i reco.mlf -w net.slf \


dict.txt hmmlist.txt input.mfcc

input.mfcc : les donnes dentre reconnatre


hmmlist.txt : liste des modles utiliser (yes, no, dil), un par ligne
dict.txt : dictionnaire de tche
reco.mlf : fichier de sortie
hmmsdef.mmf : contient les dfinitions des HMM concatnes

La reconnaissance en temps diffr

La reconnaissance en temps rel


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 lentre audio

Pas de fichier prenregistr! linvite


READY, on dit un mot au micro et en
pressant une cl du clavier, la rponse est
fournie.

La reconnaissance en temps rel

You might also like