Title: Reconnaissance automatique de la parole
1Présenter par Mounir GRARI
2Plan
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Introduction
- Construction de la base de données
- Construction de modèle de langage
- Acquisition des fichiers sons
- Étiquetage des fichiers sons
- Représentation acoustique du signal
- Description des modèles
- Modèles de Markov
- Fichiers gabarits
- Apprentissage
- Apprentissage avec lalgorithme Vitervi (HInit)
- Apprentissage avec lalgorithme de Baum Welch
(HRest) - Ré estimation avec lalgorithme de Baum Welch de
tous les models a la fois (HERest) - Reconnaissance
- HVite et Hresults
- Etude dautres possibilités vocabulaire
restreint, vocabulaire plus complexe, analyse par
mots et analyse par phonème - Etude du cas multi locuteur
- Synthèse des résultats trouvés
3Introduction
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le but est de construire un système de
reconnaissance de mots isolés et ensuite de
phrase qui suive une certaine syntaxe de
plusieurs mots et de le valider sous
l'environnement HTK (Hidden Markov Model Toolkit)
4modèle de langage
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
5Acquisition des fichiers sons
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
6Étiquetage des fichiers sons
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La santaxe de la Commande HSlab
- HSlab F WAVE L labels/ihtif.lab
Signal/ihtif.wav
7Étiquetage des fichiers sons
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le résultat de cette phase est une base de
données des étiquettes des différents fichiers
sons. (Les étiquettes sont dans le dossier labels)
8Représentation acoustique du signal
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
hcopyliste.conf signal/ihtif.wav
mfcc/ihtif.mfcc signal/kallime.wav
mfcc/kallime.mfcc signal/ala.wav
mfcc/ala.mfcc signal/mohamed.wav
mfcc/mohamed.mfcc . . . .
parametrisation.conf SOURCEFORMATWAVE TARGETKIND
MFCC_E_D WINDOWSSIZE250000.0 TARGETRATE10000.0 N
UMCEPS8 nb de coeff MFCC USEHAMMINGT PREEMCOE
F0.97 NUMCHANS26 CEPLIFTER22
9Représentation acoustique du signal
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le nombre de coefficients MFCC utilisé est 8
lenergie les dérivés (donc 18) - Le résultat de cette phase est un ensemble de
fichiers .mfcc dans le dossier mfcc contenant les
coefficients.
10Description des modèles
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Pour chaque entité lexicale, on définira le
modèle associé. Pour cela, on donnera la
topologie de chaque modèle, le nombre d'états et
les probabilités de transition entre les états. - Exemple du model en phonétique représentant le
mot du vocabulaire ihtif
11Description des modèles
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Fichiers gabarits A chaque entité lexical (mot
du vocabulaire) on va crée un fichier Gabarit
(model) représentant lentité lexical dans la
pratique.
ltBeginHMMgt ltNumStatesgt 4 ltVecSizegt 18
ltMFCC_D_Egt ltStategt 2 ltMeangt 18
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 ltVariancegt
18 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ltStategt
3 ltMeangt 18 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 ltVariancegt 18 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 ltTransPgt 4 0.0 1.0 0.0
0.0 0.0 0.6 0.4 0.0 0.0 0.0 0.6 0.4
0.0 0.0 0.0 0.0 ltEndHMMgt
Exemple fichier gabarits/ihtif
12Apprentissage avec lalgorithme Vitervi (HInit)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Apprentissage avec lalgorithme Vitervi (HInit)
- Chaque modèle doit être appris les moyennes,
les variances et les probabilités de transition
entre états sont ré estimées jusqu'à ce qu'un
seuil de convergence ou qu'un nombre maximum
d'itération soient atteint. Ceci est fait par
l'algorithme de Viterbi. - Pour chaque phonème on applique la commande HInit
13Apprentissage avec lalgorithme Vitervi (HInit)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le fichier config/hinit.conf
- Le fichier listes/mfcc.lst
Fichier de configuration pour linitialisation
des modèles de Markov par lalgorithme de
Viterbi TARGETKIND MFCC_E_D Le fichier
config/hinit.conf
mfcc/ihtif.mfcc mfcc/kallime.mfcc mfcc/ala.mfcc mf
cc/mohamed.mfcc mfcc/amine.mfcc mfcc/nadi.mfcc .
14Apprentissage avec lalgorithme Vitervi (HInit)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
15Apprentissage avec lalgorithme Vitervi (HInit)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La syntaxe de la commande HInit
- HInit -C config/hinit.conf -A -o hinit/cif -l cif
-L labels/ -i 20 -T 1 -m 2 gabarits/0 -S
listes/mfcc.lst
16Apprentissage avec lalgorithme Vitervi (HInit)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le fichier résultat de cette commande est
hinit/ihtif qui contient
o ltSTREAMINFOgt 1 18 ltVECSIZEgt 18ltNULLDgtltMFCC_E_Dgt
ltDIAGCgt h "hinit/ihtif" ltBEGINHMMgt ltNUMSTATESgt
4 ltSTATEgt 2 ltMEANgt 18 -6.005343e000
-1.046386e000 -7.661552e-001 8.069010e000
-8.266843e000 -5.747077e000 -3.216688e-001
-8.078197e000 8.653573e-001 1.482991e-002
-2.785692e-003 2.108349e-003 -1.385363e-003
-1.897629e-002 -1.652776e-002 -3.286432e-003
-2.792146e-002 2.159977e-004 ltVARIANCEgt 18
7.077799e001 4.468427e001 8.880889e001
4.942561e001 9.471810e001 7.407012e001
4.695766e001 7.936121e001 1.000000e-002
1.238934e-001 1.128693e-001 1.343194e-001
1.521769e-001 2.594025e-001 2.268354e-001
2.340412e-001 2.891582e-001 1.000000e-002 ltGCONSTgt
4.371070e001 ltSTATEgt 3 ltMEANgt 18
-4.115136e000 4.821393e000 2.416528e-001
4.906225e000 -2.838504e000 -3.414094e000
1.463784e000 -6.460936e000 8.129345e-001
-3.213571e-002 1.019199e-002 -5.698932e-003
3.618972e-003 4.414299e-002 3.562211e-002
6.894447e-003 6.707498e-002 -5.552998e-004 ltVARIAN
CEgt 18 1.517968e001 2.769409e001 1.666672e001
2.582353e001 4.500641e001 9.010397e001
2.904503e001 7.800780e001 1.000000e-002
2.547789e-002 5.287474e-002 7.262968e-002
9.334487e-002 1.291680e-001 1.512521e-001
1.913001e-001 1.906947e-001 1.000000e-002 ltGCONSTgt
3.316070e001 ltTRANSPgt 4 0.000000e000
1.000000e000 0.000000e000 0.000000e000
0.000000e000 9.977974e-001 2.202643e-003
0.000000e000 0.000000e000 0.000000e000
9.944401e-001 5.559846e-003 0.000000e000
0.000000e000 0.000000e000 0.000000e000 ltENDHMMgt
17Apprentissage
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le résultat de cette phase est un ensemble de
fichiers dans le dossiers hinit/
18Apprentissage avec lalgo de Baum Welch (HRest)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Les modèles sont ensuite estimés de façon
indépendante avec lalgorithme de Baum Welch en
utilisant la commande HRest. - Pour chaque phonème on applique la commande HRest
- Le fichier config/hrest.conf
- Le fichier listes/mfcc.lst deja utilisé avec la
commande hinit
Fichier de configuration pour la re-estimation
des modèles de Markov par lalgorithme de
Viterbi TARGETKIND MFCC_E_D
19Apprentissage avec lalgo de Baum Welch (HRest)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La syntaxe de la commande HRest
- HRest -C config/hrest.conf -A -l aaich -M hrest/
-L labels/ -i 20 -T 1 -m 2 hinit/aaich -S
listes/mfcc.lst
20Apprentissage avec lalgo de Baum Welch (HRest)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le fichier résultat de cette commande est
hrest/aaich qui contient
o ltSTREAMINFOgt 1 18 ltVECSIZEgt 18ltNULLDgtltMFCC_E_Dgt
ltDIAGCgt h "aaich" ltBEGINHMMgt ltNUMSTATESgt
4 ltSTATEgt 2 ltMEANgt 18 -4.522240e000
-5.880653e-001 8.032802e000 1.781352e001
-1.238021e001 -1.077035e001 -7.107430e000
-8.941146e000 7.310240e-001 5.426434e-003
7.549872e-002 1.450049e-001 6.228557e-002
-2.826517e-002 -1.814440e-001 -7.717894e-002
-2.151994e-001 1.169653e-003 ltVARIANCEgt 18
1.766042e001 6.102851e000 1.192767e001
2.540695e001 1.958749e001 5.041793e001
1.922638e001 3.833256e001 2.337085e-003
1.619523e-001 2.678286e-001 1.185456e-001
3.499088e-001 3.168113e-001 3.927653e-001
3.371374e-001 2.182082e-001 8.624458e-006 ltGCONSTgt
2.823985e001 ltSTATEgt 3 ltMEANgt 18
-1.939978e001 3.436779e000 8.813956e000
6.829864e000 1.483930e000 -5.005201e000
-6.350124e000 -7.545569e000 7.231323e-001
6.521484e-002 -5.791717e-002 -7.582700e-002
1.413276e-002 -3.901125e-002 6.619526e-003
-4.050380e-003 -9.888211e-002 1.033234e-003 ltVARIA
NCEgt 18 8.760622e001 6.642943e000
2.810736e001 2.752651e001 1.858868e001
3.854350e001 3.150053e001 6.762994e001
2.326111e-003 2.225343e-001 1.282824e-001
2.050075e-001 1.057131e-001 3.768567e-001
7.502362e-001 3.706125e-001 3.885895e-001
1.905958e-005 ltGCONSTgt 3.281725e001 ltTRANSPgt 4
0.000000e000 1.000000e000 0.000000e000
0.000000e000 0.000000e000 9.883134e-001
1.168664e-002 0.000000e000 0.000000e000
0.000000e000 9.933964e-001 6.603613e-003
0.000000e000 0.000000e000 0.000000e000
0.000000e000 ltENDHMMgt
21Apprentissage avec lalgo de Baum Welch (HRest)
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le résultat de cette phase est un ensemble de
fichiers dans le dossiers hrest/ - On remarque que mon langage contient 50 syllabes.
22Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On doit définir le modèle de notre langage la
grammaire de notre langage est définie dans le
fichier listes/modeleLangage.txt
chiff ciffr wahid itnan thalathah
arrbaaah khamsah sitah sabaah thamanniah
tisaah aacharah i7daaachar ithnaaachar
thalathataaachar arrbaaataaachar
khamsataaachar sitataaachar sabaataaachar
thamanniataaachar tisaataaachar aaichroun
thalatoun arrbaaaoun khamsoun sitoun
sabaaoun thamanoun tisaaoun sil sil
prenom mohamed sil amine mohamed
numerotel chiff sil chiff sil wa sil
chiff sil (SENT-START ( sil ihtif sil
li sil numerotel ) ( sil nadi sil ala sil
prenom sil ) ( sil kallime sil prenom sil
) chiff SENT-END)
23Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On va appliquer la commande HParse à cette
grammaire pour générer le modeleDeMots - La syntaxe de la commande HParse
- HParse -T 1 listes/modelelangage.txt
listes/modeledemots.txt - Le résultat est un fichier listes/modeledemots.txt
qui contient tous les mots de notre langage
VERSION1.0 N151 L266 I0 W!NULL
I1 W!NULL I2
WSENT-START I3 Wsil
I4 Wihtif . . . .
24Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Dictionnaire du langage
- Un fichier listes/dictionnaire.txt contient le
dictionnaire de notre langage
SENT-START SENT-END ciffr cif fr wahid
wa hid itnan ith nan thalathah tha la thah
arrbaaah arr ba aah khamsah kham sah sitah si
tah sabaah sab aah thamanniah tha man niah
tisaah tis aah aacharah aa cha rah
25Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La reconnaissance sera ensuite effectuée sur
chaque fichier en utilisant successivement les
modèles issus de HInit ceux issus de HRest et
ceux de HERest afin dévalué lapport des divers
apprentissage. - Pour cela nous allons utiliser la commande HVite.
- La syntaxe de la commande HVite
- HVite -T 1 -A -w listes/modeledemots.txt -d
hinit/ -l resultat/hinit/ -S listes/mfcc.ar.lst
listes/dictionnaire.txt listes/listemodeles.txt - Il utilise
- listes/modeledemots.txt générer avec HParse.
- listes/dictionnaire.txt qui contient le
dictionnaire du langage. - listes/listemodeles.txt qui contient les phonèmes
du langage. - hrest/ le dossier contenant les estimations par
hinit hrest ou herest. - resultat/hrest/ dans lequel les résultats de la
commande serons mis. - listes/mfcc.ar.lst la listes des fichiers MFCC
des fichiers à reconnaître.
26Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- les deux premières chaînes sont reconnues
entièrement
27Reconnaissance
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le résultat est un fichier .rec pour chaque
fichier à reconnaître. - Par exemple pour ihtifli066ar.wav en utilisant
les estimations par hinit le résultat est
resultats/hinit/ihtifli066ar.rec
0 320000 sil -1088.285034 320000 4620000 ihtif
-9798.015625 4620000 5030000 sil
-1100.481689 5030000 8090000 li
-9363.433594 8090000 8250000 sil
-433.379944 8250000 10290000 ciffr
-4814.938965 10290000 12160000 sil
-4441.611328 12160000 16880000 sitah
-10271.931641 16880000 17600000 sil
-1854.313232 17600000 19780000 wa
-7324.110352 19780000 20510000 sil
-2059.960449 20510000 27070000 sitoun
-16285.652344 27070000 27260000 sil -438.454254
28Lévaluation des performances
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La syntaxe de la commande HResults
- HResults -T 1 -L labels/ listes/listemodeles.txt
resultat/hinit/ihtifli066ar.rec - On remarque que le taux de la reconnaissance est
de 46.67 en utilisant les estimations de hinit,
ou ceux de hrest. - Analyse des résultats
- H 7 Nombre d'éléments bien classés
- D 2 Nombre d'éléments supprimés
- S 6 Nombre d'éléments substitués
- I 0 Nombre d'éléments insérés
- N 15 Nombre total d'éléments
29Langage restreint et reconnaissance par phonème
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On utilise la grammaire suivante
- La reconnaissance donne ce qui suit
chiff ciffr wahid sil sil prenom
mohamed (SENT-START ( sil kallime sil
prenom sil ) sil chiff sil SENT-END)
30Langage restreint et reconnaissance par phonème
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On affiche les résultats avec HResults.
- Les résultats pour la reconnaissance de mots
isolés - Les résultats pour la reconnaissance de mots
connectés
31Langage restreint et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Nous allons utiliser un vocabulaire de 4mots.
- Nous allons faire un étiquetage par mots (donc
seulement 4 étiquette) - On utilise la grammaire suivante
chiff ciffr wahid sil sil prenom
mohamed (SENT-START ( sil kallime sil
prenom sil ) sil chiff sil SENT-END)
32Langage restreint et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La reconnaissance donne ce qui suit
33Langage restreint et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On affiche les résultats avec HResults.
- Les résultats pour la reconnaissance de mots
isolés - Les résultats pour la reconnaissance de mots
connectés
34Langage complexe et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Nous allons utiliser un vocabulaire de 36 mots.
- Nous allons faire un étiquetage par mots (donc
seulement 37 étiquette) - On utilise la grammaire suivante
chiff ciffr wahid sil sil prenom
mohamed (SENT-START ( sil kallime sil
prenom sil ) sil chiff sil SENT-END)
35Langage complexe et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- La reconnaissance donne ce qui suit
36Langage complexe et reconnaissance par mot
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On affiche les résultats avec HResults.
- Les résultats pour la reconnaissance de mots
isolés - Les résultats pour la reconnaissance de mots
connectés
37Synthèse des résultats trouvés
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
Reconnaissance par phonème Reconnaissance par phonème Reconnaissance par mot Reconnaissance par mot
Mots isolé Mots connectés Mots isolé Mots connectés
Vocabulaire grand (36mots) 50 35 - 46 100 60
Vocabulaire petit (4 à 10 mots) 50 40 100 80
38Etude du cas multi locuteur
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Nous allons utiliser deux locuteurs le résultat
est - On remarque quil y reconnaissance totale des
mots isolés.
39Etude du cas multi locuteur
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On affiche les résultats avec HResults.
- Les résultats pour la reconnaissance de mots
isolés du locuteur 1 - Un taux de reconnaissance est de 100 en
utilisant les estimations de hinit et ceux de
hrest
40Etude du cas multi locuteur
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- On affiche les résultats avec HResults.
- Les résultats pour la reconnaissance de mots
isolés du locuteur 2 - Un taux de reconnaissance est de 100 en
utilisant les estimations de hinit et ceux de
hrest
41Conclusion
Reconnaissance de mots isolés Et Reconnaissance
de mots connectés
- Le présent rapport vise à expliquer la
construction dun système de reconnaissance de
mots isolés et de phrase (mots connectés) qui
suive une certaine syntaxe de plusieurs mots.
Avec une reconnaissance par phonème et une
grammaire de langage plus simple jai arrivée a
des taux de reconnaissance jusqu'à 46.67 pour
des phrase comme ihtif li 066 ou même 50
pour des mots isolé ciffr et ensuite avec un
modèle de langage plus complexe (plus utile) le
taux diminue jusqu'à 40 pour une phrase tel que
ihtif li 0 66 58 11 69 , mais dans les deux
cas les phrase sont souvent entièrement reconnue
par le système Comme kallime mohamed ,
ensuite jai fait une reconnaissance par mots qui
donne de bons résultats surtout pour des mots
isolés avec des taux de reconnaissance de 100,
et des taux entre 60 et 80 pour des mots
connecté, et jai terminer avec un système multi
locuteur qui fait une reconnaissance de 100 pour
des mots isolés.
42Merci ?