MaripoTsiveryT ESPA ING 10

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 73

UNIVERSITE D’ANTANANARIVO

ECOLE SUPERIEURE POLYTECHNIQUE

DEPARTEMENT ELECTRONIQUE

MEMOIRE DE FIN D’ETUDES EN VUE DE L’OBTENTION DU

DIPLOME D’INGENIEUR

Spécialité : ELECTRONIQUE

Option : Informatique Appliquée

Traitement du signal et LA
RECONNAISSANCE DE LA PAROLE

Présenté par : MARIPO Tsivery Tanjona

Soutenu le 23 Avril 2010

N° 01/EN/IA/2009 Année Universitaire : 2008-2009


TRAITEMENT DU SIGNAL ET LA RECONNAISSANCE DE
LA PAROLE

Mémoire de fin d’études en vue de l’obtention du diplôme d’Ingénieur

Spécialité : ELECTRONIQUE

Option : Informatique Appliquée

Présenté par: MARIPO Tsivery Tanjona

Devant le Jury :
- Monsieur RAKOTOMIRAHO Soloniaina, Président du jury

- Monsieur RATSIMBA Mamy Nirina, Examinateur

- Monsieur RABESANDRATANA Mamisoa Andriamihaja, Examinateur

- Monsieur RANDRIAMAROSON Rivo Mahandrisoa, Examinateur

Rapporteur : Monsieur ANDRIAMANANTSOA Guy Danielson

Soutenu le 23 Avril 2010

N° 01/EN/IA/2009 Année Universitaire : 2008-2009


REMERCIEMENTS

Je rends grâce à Dieu pour le courage, la santé et toute la


bénédiction qu’il m’a accordée tout au long de la réalisation de ce
mémoire.

Je tiens à exprimer mes sincères remerciements à l’issue de ce


mémoire de fin d’études à l’égard de :

Monsieur RATSIMBA Mamy Nirina, Chef du Département


Electronique au sein de l’Ecole Supérieure Polytechnique
d’Antananarivo, de m’avoir accueilli au sein du Département
Electronique.

Monsieur ANDRIAMANANTSOA Guy Danielson, d’avoir fait


honneur et tâche de me diriger et de me supporter, matériellement ou
moralement, tout au long de la réalisation de ce mémoire de fin
d’études. Je lui témoigne particulièrement ma sincère gratitude.

Toutes mes reconnaissances également à l’égard de :

Monsieur RAKOTOMIRAHO Soloniaina, d’avoir fait honneur


de présider le jury.

Monsieur RATSIMBA Mamy Nirina,

Monsieur RANDRIAMAROSON Rivo Mahandrisoa,

Monsieur RABESANDRATANA Mamisoa Andriamihaja,

qui ont, malgré leurs lourdes responsabilités, accepté de juger le


présent travail.
Tous le corps enseignant qui a patiemment contribué à ma
formation au sein de l’Ecole Supérieure Polytechnique
d’Antananarivo.

A toutes et à tous ceux qui ont participés de près ou de loin à


l’élaboration de ce mémoire.

J’adresse particulièrement ma profonde reconnaissance à ma


famille qui m’a soutenue aussi bien moralement que financièrement
tout au long de mes cinq années d’études au sein de l’ESPA, et surtout
durant la réalisation de ce travail.
RESUME

La technologie d’acquisition et de traitement du signal ne cesse pas d’évoluer grâce


aux recherches et utilisation des machines de plus en plus performantes. Actuellement, la
communication homme-machine prit une place importante dans le monde de l’informatique.
Malgré la difficulté du traitement du signal de la parole, les recherches ont pu surpasser les
obstacles. Le présent rapport se focalise sur le traitement, l’analyse du signal, ainsi que la
reconnaissance de la parole. Ce rapport inclus aussi une démonstration de l’usage de
traitement du signal de la parole avec le mini logiciel « Dictpad», celui-ci permet de
démontrer la commande ainsi que la dictée vocale sous Windows. Les codes sont écrits avec
le langage C++ et développées avec l’outil de programmation Visual C++ 6.0 de Microsoft.
TABLE DES MATIERES
INTRODUCTION .................................................................................................................... 1

CHAPITRE 1 : LE TRAITEMENT DU SIGNAL ................................................................ 2

1.1. Numérisation du signal .................................................................................................... 2

a. Echantillonnage .............................................................................................................. 2

b. La Quantification............................................................................................................. 6

c. Codage ............................................................................................................................. 7

1.2. Traitement numérique du signal ................................................................................... 9

a. Transformée de Fourier d’un signal discret ................................................................. 9

b. Transformée de Fourier Discret ................................................................................. 10

CHAPITRE 2 : GENERALITES SUR LE SIGNAL DE LA PAROLE ........................... 14

2.1. Définitions et caractéristiques du signal de la parole .................................................. 14

a. La fréquence fondamentale (le pitch) ........................................................................ 15

b. La hauteur de la voix ................................................................................................. 15

c. L’intensité .................................................................................................................. 16

2.2. Production et perception de la parole ............................................................................ 16

a. La production de la parole ......................................................................................... 16

b. La perception de la parole .......................................................................................... 17

2.3. Niveaux de description de la parole ............................................................................. 19

CHAPITRE 3 : RECONNAISSANCE DE LA PAROLE .................................................. 20

3.1. Introduction ................................................................................................................... 20

a. Définition ....................................................................................................................... 20

b. Recherche en reconnaissance vocale............................................................................. 20

c. Complexité de la reconnaissance vocale ....................................................................... 20

d. Applications de la reconnaissance vocale .................................................................... 23

e. Classement de la reconnaissance vocale ....................................................................... 24

f. Objectifs de l’ASR ......................................................................................................... 24


3.2. Paramétrisation du signal de la parole .......................................................................... 25

a. Représentation temporelle ............................................................................................. 25

b. Empreinte caractéristique .............................................................................................. 29

c. Décodage acoustico-phonétique .................................................................................... 34

3.3. Techniques de reconnaissance vocale .......................................................................... 35

CHAPITRE 4 : APPLICATION DE LA RECONNAISSANCE DE LA PAROLE SUR


WINDOWS .......................................................................................................................... 40

4.1 Introduction ................................................................................................................. 40

4.2. Le logiciel « DICTPAD » .......................................................................................... 40

a. Présentation générale ..................................................................................................... 40

b. Manuel utilisateur .......................................................................................................... 41

c. Mode de fonction de Dictpad ........................................................................................ 44

d. Programmation .............................................................................................................. 45

CONCLUSION ................................................................................................................... 46

ANNEXE A : Le Modèle de Markov Caché (HMM) .......................................................... 47

Formalisme ........................................................................................................................... 47

ANNEXE B : Algorithme DTW ............................................................................................ 48

Notion de l’algorithme DTW [11] ........................................................................................ 48

ANNEXE C: SAPI avec Windows ........................................................................................ 50

C.1 Les bases de la programmation sous Windows ............................................................. 50

a. Introduction .................................................................................................................. 50

b. Hello, World ! .............................................................................................................. 50

c. La fonction WinMain ................................................................................................... 51

C.2 Les fenêtres ................................................................................................................... 52

a. Introduction .................................................................................................................. 52

b. Les messages ................................................................................................................ 52

C.3 SAPI (Speech Application Programming Interface) ...................................................... 53


a. Vue d’ensemble ............................................................................................................. 53

b. API pour Text-to-Speech .............................................................................................. 53

c. API pour la reconnaissance vocale ............................................................................... 55

d. Microsoft Speech SDK.................................................................................................. 58

ANNEXE D : L’alphabet phonétique international (IPA) ................................................. 59

REFERENCES ....................................................................................................................... 60
LISTE DES FIGURES
Figure 1.1 : Signal avant et après l’échantillonnage ................................................................... 2

Figure 1.2 : Représentation du spectre du signal s(t) ................................................................. 3

Figure 1.3 : Fonction rectangle ................................................................................................... 4

Figure 1.4 : Spectre modulé en amplitude .................................................................................. 5

Figure 1.5 : Quantification ......................................................................................................... 6

Figure 1.6 : TF de x(t) .............................................................................................................. 11

Figure 1.7 : TF de la fonction rectangle y(t)............................................................................ 11

Figure 1.8 : Troncation de x(t) sur une durée T ....................................................................... 11

Figure 2.1 : Son voisé ............................................................................................................... 15

Figure 2.2 : Son non-voisé........................................................................................................ 15

Figure 2.3 : Chaine de la communication parlée ..................................................................... 18


Figure 2.4 : Les champs auditifs humains ................................................................................ 19

Figure 3.1: Exemple de 2 signaux temporels (à gauche) et de 2 spectrogrammes (à droite)


d’une même phrase prononcée par deux locuteurs différents .................................................. 22

Figure 3.2 : Finalité de l’ASR .................................................................................................. 25

Figure 3.3 : Enregistrement numérique d’un signal acoustique ............................................... 26

Figure 3.4 : Audiogrammes du mot « parenthèse ».................................................................. 27

Figure 3.5: Méthode de calcul d’un FFT pour obtenir le spectrogramme .............................. 27

Figure 3.6: Spectrogramme à bande étroite de la phrase« Alice’s adventure » ...................... 28

Figure 3.7: Spectrogramme et audiogramme ........................................................................... 27

Figure 3.8 : Spectre obtenu par transformée rapide de Fourier (FFT) ..................................... 31

Figure 3.9 : Principe du codage LPC ........................................................................................ 32

Figure 3.10 : Modèle AR .......................................................................................................... 33

Figure 3.11 : Empreinte obtenue par prédiction linéaire (LPC) ............................................... 34

Figure 3.12 : Système de reconnaissance de forme .................................................................. 36

Figure 3.13 : Reconnaissance par DTW ................................................................................... 37


Figure 3.14: Reconnaissance par modélisation d’unité acoustique .......................................... 38

Figure 4.1: Interface de Dictpad ......................................................................................................... 41

Figure 4.2: Description de la barre de tache ..................................................................................... 42

Figure 4.3: Menu Fichier ..................................................................................................................... 43

Figure 4.4: Menu Edition .................................................................................................................... 43

Figure 4.5: Menu Voix ........................................................................................................................ 44

Figure B.1: Chemin parcouru entre deux vecteurs de longueur différente .................................. 49

Figure B.2: Choix de prédécesseur ................................................................................................... 49

Figure C.1: Boite de dialogue « Hello, World » ............................................................................. 50

Figure C.2: Vue d’ensemble de SAPI ............................................................................................... 53


LISTE DES TABLEAUX
Tableau 1.1: Code Binaire Naturel ...................................................................................................... 8

Tableau 1.2: Transformée Fourier des signaux discrets usuels ...................................................... 9

Tableau D.1: Les symboles de l’IPA utilisé en français (Annexe D) .......................................... 59


LISTE DES ACRONYMES

AMDF: Average Magnitude Difference Function

API: Application Programming Interface

AR/MA: Auto-Regressive/Moving Average

ASR: Automatic Speech Recognition

CAN/CNA : Convertisseur Analogique Numérique/Convertisseur Numérique Analogique

DFT : Transformée de Fourier Discret

DCB: Decimal Code Binary

DTW: Dynamic Time Warping

FD/PSOLA: Frequency Domain/ Pitch Synchronous Overlap and Add

FIR: Finite Impulse Response

FFT: Fast Fourier Transform

HMM: Hidden Markov Model

IDFT/ TFD: transformée de fourrier discrète inverse/ Transformée de Fourier Discrète

IPA: International Phonetic Alphabet

IPR : Infinite Pulse Response

LPC: Linear Predictif Coding

MMSF: Minimum Mean Square Filtering

PLP: Perceptual Linear Prediction

PSOLA: Pitch Synchronous Overlap and Add

RAP : Reconnaissance Automatique de la Parole

RELP: Residual Excited Linear Prediction

SAPI: Speech Application Programming Interface

SDK: Software Development Kit

SIFT: Simplified Inverse Filter Tracking-algorithm

TCP/IP: Transfer Control Protocol Internet Protocol

TDPSOLA: Time Domain Pitch Synchronous Overlap and Add

1
INTRODUCTION

La communication verbale est le moyen le plus efficace pour transmettre les informations.
Tout être vivant ont chacune leur propre moyen de communiquer. Les hommes sont les seules êtres
vivants dotés de la parole. Cependant, la reconnaissance de la parole est devenue un outil nécessaire
pour la technologie que ce soit dans le cadre de sécurité, commande des machines et la dictée vocale.

La reconnaissance de la parole s’inscrit dans le cadre de la communication homme-machine,


elle rend la communication plus facile puisque l'oral est une interface naturelle, quasi-universelle.

Ce projet de mémoire s’intitule « Traitement du signal et la reconnaissance de la parole » est


composé de quatre chapitres dont le premier chapitre s’intitule «Traitement de signal » pour l’étude
général du traitement de signal, le second chapitre «Généralité sur le signal de la parole », le troisième
chapitre s’intitule « Reconnaissance de la parole » pour une étude approfondie de traitement de signal
de la parole et puis le dernier chapitre pour la réalisation pratique sous Windows avec le logiciel de
dicté et de commande vocal appelé « Dictpad » dont le titre est « Application de la reconnaissance de
la parole sur Windows ».

1
CHAPITRE 1 : LE TRAITEMENT DU SIGNAL

Ce chapitre donne une notion à propos du traitement du signal sur ordinateur. Il se


divise en deux grandes parties dont la numérisation du signal ainsi que le traitement du signal
numérique.

1.1 Numérisation du signal


Avant de traiter un signal sur ordinateur, il faut d’abord se passer sur la numérisation
pour pouvoir l’exploiter. La numérisation donne la capacité à un signal quelconque d’être
reproduit avec ses caractéristiques initiales, ainsi elle permet de réduire la zone mémoire
nécessaire pour stocker l’information portée par le signal. Le monde extérieur étant par nature
‘’analogique’’, une opération préliminaire de conversion analogique numérique est nécessaire.
Il existe trois grandes étapes pour la conversion analogique-numérique :
- L’échantillonnage pour rendre le signal discret
- La quantification pour associer à chaque échantillon une valeur.
- Le codage pour associer un code à chaque valeur.

a. Echantillonnage

Elle consiste à prélever à des instants précis et équidistants les valeurs instantanées
d’un signal s(t) continu dans le temps et elle est représentée par un ensemble de valeurs
discrètes :

se(t)=S (n.Te)

Avec n: entier et Te: période d’échantillonnage. [1]

Cette opération est réalisée par un échantillonneur symbolisé par un interrupteur [Figure1.1]:

Figure 1.1 : Signal avant et après l’échantillonnage

2
i) L’échantillonnage idéal

L’échantillonnage idéal est modélisé par la multiplication d’un signal continu s(t) et
d’un peigne de Dirac de période Te :

se(t)=s(t).δTe=s (n.Te)∑+∞
−∞ 𝛿(𝑡 − 𝑛𝑇𝑒)

Le spectre du signal échantillonné est donné par la relation suivante :

1
Se(f) = ∑+∞
−∞ 𝑆(𝑓) ∗ 𝛿 (f-nfe)
𝑇𝑒

1
Se(f)= 𝑇𝑒 ∑+∞
−∞ 𝑆(𝑓 − 𝑛fe)

On obtient donc un spectre infini qui provient de la périodisation du spectre du signal


d’origine autour des multiples de la fréquence d’échantillonnage [Figure 1.2].

Figure 1.2 : Représentation du spectre du signal s(t)

- Il est possible de restituer le signal original par un simple filtrage passe-bas.


- Si fM (fréquence maximale du spectre du signal à échantillonner) est supérieure à
fe/2, la restitution du signal original sera impossible car il va apparaître un recouvrement
spectral lors de l’échantillonnage. Le théorème de SHANNON montre que la reconstitution
correcte d’un signal nécessite une fréquence d’échantillonnage fe soit au moins deux fois plus
grande que la plus grande des fréquences fM du spectre du signal :

fe > 2 fM

3
Par exemple, pour le cas de la parole : le spectre des sons audibles s'étend jusqu'à environ
20kHz. Dans le cas des CD audio, le signal est échantillonné à 44.1 kHz alors que dans le cas
du téléphone numérique le signal est échantillonné à 8 kHz seulement. En effet, en téléphonie,
on estime que le message est compréhensible pourvu que les composantes basses fréquences
soient transmises correctement alors que l’on veut conserver tous les harmoniques pour avoir
un son de qualité en audio. On limite ainsi le spectre à 22.05 kHz pour un CD audio et à 4
kHz pour la téléphonie (3.4kHz en pratique).
- Plus on prendra d’échantillons par période, plus, le signal ne sera facile à reconstruire.

ii) L’échantillonnage réel

En pratique, l’échantillonnage s’effectue en commandant un interrupteur par un train


d’impulsions. Il est impossible d’obtenir des échantillons de durée quasiment nulle. La
modélisation de l’échantillonnage par un peigne de Dirac est erronée. En fait, chaque
impulsion va avoir une durée très courte τ. L’échantillonnage peut être modélisé par la
multiplication du signal par une suite de fonction rectangle (ou porte) de largeur τ. Cette
fonction rectangle est représentée par la figure ci-dessous [Figure 1.3]

Figure 1.3 : Fonction rectangle

L’expression du signal d’échantillonnage devient:

𝑡−𝑘𝑇𝑒 𝑡
y(t)=∑+∞
𝑘→ −∞ 𝑟𝑒𝑐𝑡( )=rect (𝜏)*∑+∞
𝑘→ −∞ 𝛿(𝑡 − 𝑘𝑇𝑒)
𝜏

Et par conséquent sa transformée de Fourier s’exprime par :

4
1
Y(f)=τ sinC (τf).𝑇𝑒 ∑+∞
𝑘→ −∞ 𝛿(𝑓 − 𝑘𝑓e)

Comme l’expression du signal échantillonnée est :

se (t)=s(t).y(t)

D’où sa transformée de Fourier :

𝑡
Se (f) =S (f).Y (f) =S (f)*𝑇𝑒 ∑+∞
−∞ 𝑠𝑖𝑛𝐶(𝜏𝑓)𝛿(𝑓 −kfe)

𝜏
Se(f)=𝑇𝑒sinC (τf).∑+∞
𝑘→−∞ 𝑆(f-kfe)

On retrouve la même allure de spectre modulé en amplitude par une fonction en


sinus cardinale sur la figure [Figure 1.4]

Figure 1.4 : Spectre modulé en amplitude

- Pour se rapprocher d’un échantillonnage idéal et qu’ainsi le signal soit facilement


reconstructible, il faut que τ soit le plus petit possible.
- Si τ est du même ordre de grandeur que fe, il faudra alors que fe >> 2fM.

iii) Echantillonnage-blocage

L'échantillonnage est utilisé pour prélever le signal à des instants multiples de Te et


ensuite convertir les échantillons sous forme d'un code binaire (8, 12, 16 bits, ...). Cette
conversion est effectuée par l’intermédiaire d’un convertisseur analogique-numérique (CAN).
Si le signal à convertir varie trop rapidement, il est nécessaire de procéder au blocage du

5
signal pour avoir une conversion sans erreur. On utilise un échantillonneur-bloqueur qui
mémorise la tension à convertir et la maintient constante pendant toute la durée de conversion.
L’effet de blocage peut être modélisé par une fonction porte décalée de τ/2 :

L’échantillonnage-blocage consiste à la multiplication du signal par y(t). Ainsi on en


déduit sa transformée de Fourier :

Le terme en e-jπf τ traduit un déphasage entre le signal initial et le signal échantillonné.

b. La Quantification

La quantification consiste à associer à une valeur réelle x quelconque, une autre valeur
xq appartenant à un ensemble fini de valeurs et ce suivant une certaine loi : arrondi supérieur,
arrondi le plus proche, etc.…L’écart entre chaque valeur xq est appelé « pas de
quantification. »

➢ Quantification uniforme [figure 1.5]

Figure 1.5 : Quantification

6
Cette quantification utilise un pas de quantification (Δ) constant entre chaque valeur x q. Le
fait d’arrondir la valeur de départ entraîne forcément une erreur de quantification, noté nq que
l’on appelle le bruit de quantification. Ici le bruit de quantification est un signal aléatoire. Ces
caractéristiques sont définies par ses propriétés statistiques.
La puissance du bruit de quantification s’exprime par :
𝛥2
P (nq) =
12

D’où le rapport bruit et signal du à la quantification est égale à :

𝑆 𝑃(𝑠)
{𝑁}dB=10 log 𝑃(𝑛𝑞)

La puissance du signal à quantifier est égale à sa valeur efficace au carré :

𝑆 𝑉𝑠𝑒𝑓𝑓 2
{𝑁}dB=10 log[12( ) ]
𝛥

Si l’on décompose la plage de variation VPE du signal à quantifier en 2n intervalles de largeur


VPE
Δ (avec n le nombre de bits utilisés pour coder le signal quantifié) alors VPE=2n.Δ et Δ=
2𝑛
Ainsi on a :

𝑆 𝑉𝑠𝑒𝑓𝑓
{𝑁}dB=6.02n+10.8+20 log( 𝑉𝑃𝐸
)

c. Codage

Le codage consiste à associer à un ensemble de valeurs discrètes un code composé


d’éléments binaires.

i) Approche mathématique

Le codage peut être défini d’une autre manière comme correspondance entre les
éléments de deux ensembles. C’est une application bijective de l’ensemble source vers

7
l’ensemble but. Les codes les plus connus sont : le code binaire naturel, le code binaire
décalé, le code complément à 2, le code DCB et le code Gray.
Chaque élément de l’ensemble est dit « mot code » ou simplement « mot ».
L’ensemble des mots codes forme le code.

ii) Exemple de code [2]

Le code binaire se prête parfaitement aux traitements des opérations arithmétiques :

N10=∑n−1 i
i=0 a i 2 avec ai € {0,1}

Il faut cependant une grande quantité de bit pour exprimer un nombre dès que celui-ci est
élevé.
2i désigne le poids du code. Les codes de la forme ∑aipi sont dites code pondérés. On peut
dire alors que le Code Binaire Naturel est un code pondéré.

Tableau 1.1 : Code Binaire Naturel

Décimal Binaire
0 0000
1 0001
2 0010

…. ….
…. ….
….. …..
…. ….
14 1110
15 1111

Pour conclure il existe beaucoup de codes usuels dans le codage, l’usage dépend du
domaine d’application.

8
1.2. Traitement numérique du signal

Le traitement numérique du signal permet d'obtenir des avantages techniques ainsi


qu'une élasticité large dans beaucoup de domaine. Un ordinateur traite seulement les signaux
numériques obtenus après l'échantillonnage et la quantification. Leur étude devra tenir
compte des effets induits sur le spectre par ces deux techniques. Un calcul de transformée de
Fourier est une somme d'une infinité d'échantillons, il existe certaines contraintes posés par le
temps nécessaire pour le traitement ainsi que la mémoire de l'ordinateur.

a. Transformée de Fourier d’un signal discret

Un signal discret est défini par une suite d’échantillons espacés entre eux d’une
période Te. La transformée de Fourier appliquée à un signal discret x[n] devient:
𝑓
−2𝜋𝑗𝑛
X (f) =∑+∞
𝑛→ −∞ 𝑥(𝑛). 𝑒
𝐹𝑒

Si cette série converge, la transformée de Fourier inverse est définie comme suit :

𝐹𝑒 𝑓
1 2 2𝜋𝑗𝑛
x[n]=𝐹 ∫ 𝐹 𝑋(𝑓). 𝑒 𝐹𝑒
𝑒 − 𝑒
2

X(f) est une fonction périodique de période Fe

Le tableau 1.2 montre quelques propriétés de cette transformation

Tableau 1.2 : Transformée Fourier des signaux discrets usuels

9
b. Transformée de Fourier Discret

La Transformée de Fourier d’un signal à temps continu et celle d’un signal à temps
discret ne sont pas sous une forme appropriée pour être obtenue par un calculateur numérique.
En effet, un tel operateur ne peut traiter que des nombres, et de plus, en quantité limitée par la
taille de sa mémoire. Vu l’importance de la Transformée de Fourier en traitement de signal, il
est nécessaire de la mettre sous une forme pratiquement réalisable. Cette forme s’appelle
« Transformée de Fourier Discret ou TFD ».
Cette TFD est un algorithme de calcul rapide et efficace appelé algorithme de
Transformée de Fourier Rapide (FFT).

i) Fenêtrage

Avec l’ordinateur, tout est amené à travailler avec un nombre fini de points N. Cela
revient à dire que les signaux exploités numériquement sont toujours une troncation de
signaux réels. On construira un signal tronqué xT[n]. Il résulte de la multiplication des
échantillons de x[n] par une fenêtre d'analyse (ou encore fenêtre de troncature) qui limitera
xT[n] à N échantillons. En pratique, on calcule:

𝑓
−2𝜋𝑗𝑛
XT(f) = ∑𝑁−1
𝑛=0 𝑥 𝑇 [𝑛]. 𝑒
𝐹𝑒

La fenêtre d’analyse est définie par une suite d’échantillons y(n) tels que :
𝑥𝑇 [𝑛] = 𝑦[𝑛]. 𝑥[𝑛] 𝑝𝑜𝑢𝑟 0 ≤ 𝑛 ≤ (𝑁 − 1)
{
𝑥𝑇 [𝑛] = 0 𝑝𝑜𝑢𝑟 𝑛 < 𝑜 𝑒𝑡 𝑛 > (𝑁 − 1)

Mais le fait de tronquer un signal peut affecter notablement son spectre.


Exemple : Troncation d’un signal sinusoïdale par un fenêtrage rectangulaire.
𝑡
Soit x(t) = S cos (2πf0t) représentée par la figure [Figure 1.6] et y(t)= rect (𝑇) représentée par

la figure (Figure 1.7).


𝑆
On sait que X(f)=2 [𝛿(𝑓 − 𝑓0 ) + 𝛿(𝑓 + 𝑓0 )] représentée par la figure [Figure 1.6] et que

Y(f) = T.sinC (Tf) représentée par la figure [Figure 1.7].


Si on effectue la troncation de x(t) sur une durée T représentée par la figure [Figure 1.8] :
𝑇𝐹
xT (t)= x(t).y(t) ⇒ Xf (f)=X(f)*Y(f)

10
Figure 1.6 : TF de x(t)

Figure 1.7 : TF de la fonction rectangle y(t)

Figure 1.8 : Troncation de x(t) sur une durée T

- Plus la fenêtre est large plus le signal tronqué se ressemble le plus au signal
d’origine.
- La qualité de la représentation spectrale sera d'autant plus grande que la période
d'acquisition T sera longue.
- Dans le domaine fréquentiel, la fonction sinc a des lobes non négligeables loin de
f = 0 qui déforme le spectre.
Il existe beaucoup d’autres fenêtres que l’on peut utiliser pour le fenêtrage qui sont :
la fenêtre de Hamming, fenêtre de Hanning, etc.

11
ii) Echantillonnage en fréquence

En fait, lorsqu’on représente le spectre XT(f), il est nécessaire de calculer XT(f) pour
toutes les valeurs de f (f est une variable continue). Ceci est impossible avec un ordinateur ou
un DSP (Digital Signal Processor) qui ne peut traiter que des valeurs de fréquence f discrètes.
Comme XT(f) est périodique de période Fe, on découpe cet intervalle en M parties égales et on
ne calcule XT(f) que pour les multiples de Fe/M : on effectue un échantillonnage fréquentiel
de pas ∆f = Fe/M. On remplace f par ∆f et le calcul de la transformée de Fourier devient :
𝑘𝛥𝑓
−2𝜋𝑗𝑛
XT[k]= ∑𝑁−1
𝑛=0 𝑥𝑇 [𝑛]. 𝑒
𝐹𝑒

𝑘
−2𝜋𝑗𝑛
=∑𝑁−1
𝑛=0 𝑥𝑇 [𝑛]. 𝑒 𝑀 pour k= [0, 1, 2,…. M-1]

Le problème réside dans le choix du pas d’échantillonnage en fréquence et donc du


choix de M. En effet, le fait d’échantillonner en fréquence revient à périodiser dans le
domaine temporel la partie du signal qui a été tronquée :

Le choix de Δf peut affecter la reconstitution du signal dans le domaine temporel à partir de


son spectre échantillonné, alors plusieurs cas peuvent se présenter.
➢ Δf >1/T : La résolution spectrale ∆f est trop grande. On a un recouvrement
dans le domaine temporel.
➢ ∆f < 1/T : Il n’y aura plus de repliement temporel, mais des intervalles durant
lesquels le signal dont on calcule le spectre sera nul.
➢ ∆f = 1/T : On a un signal périodique idéal. On périodise la fenêtre temporelle
choisie avant le calcul spectral.
Le meilleur choix en pratique c’est d’avoir ∆f de telle sorte que ∆f = 1/T.
Comme T=N.Te et ∆f=Fe/M, on en déduit que Fe/M=1/N.Te alors M=N

Ainsi la transformée de Fourier discrète dévient :

𝑘
−2𝜋𝑗𝑛
XT[k]= ∑𝑁−1
𝑛=0 𝑥 𝑇 [𝑛]. 𝑒 𝑁 pour k= [0, 1, 2,…. N-1]

12
iii) Transformée de Fourier Rapide (FFT)

Introduction

Le calcul d’une TFD à partir de sa définition nécessite :


- N produits complexes, soit 4N multiplications réelles et 2N additions réelles.
- N-1 addition complexe soit 2(N-1) additions réelles et cela pour chaque terme
𝑘
−2𝜋𝑗𝑛
Xn= ∑𝑁−1
𝑛=0 𝑥 [𝑘]. 𝑒 𝑁 .Il faut au total 4N2 multiplications réelles et 2N (N-1)

addition réelles pour N termes Xn, il en est de même pour le calcul de la TFDI
(indiscret).
Pour N=1024 soit 1Ko de mémoire, le nombre de multiplication est de 4 150 304
et celui des additions de 4 192 256 avec une durée de 300ns pour la réalisation de la
Multiplication-Addition, valeur qui nécessite l’emploi d’un DSP, on obtient environ 1,2s pour
les calculs de 1024 points.

Exemple

Pour obtenir une valeur particulière de XT[k], il faut

- Pour n = 0 : XT[k] = (xT[0].cos (0)- xT[0].j sin(0))


On obtient 2 produits complexes et 1 somme complexes.
-Pour n=1 XT[k] = [xT[0]cos (0)- xT[0]j sin(0)]+[xT(1)cos(2πk/N)- xT(1)j sin(2πk/N)]
On obtient 4 produits complexes et 3 sommes complexes.

13
CHAPITRE 2 : GENERALITES SUR LE SIGNAL DE LA
PAROLE
2.1. Définitions et caractéristiques du signal de la parole

Le signal de la parole est un signal continu, varie infiniment dans le temps, réel et
d’énergie finie. Il se distingue des autres sons par ses complexités ainsi que sa variabilité dans
le temps. Les sons de la parole sont produits, soit par des vibrations des cordes vocales
(source de voisement), soit par l’écoulement turbulent de l’air dans le conduit vocal,
soit lors du relâchement d’une occlusion de ce conduit (source de bruit). En général, il y a
deux catégories de sons, les sons voisés et les sons non-voisés.
- Les sons voisés (voyelles, consonnes telles que : j, l, m, n …) ont un spectre de raies
harmoniques d’une fondamentale. Ils sont produits par la vibration des cordes vocales
filtrées par le conduit vocal (Figure 2.1)

Figure 2.1: Son voisé

- Les sons non-voisés (consonnes telles que f, s, p, …) sont caractérisés


par un spectre stationnaire ou transitoire mais non uniforme. Ils sont produits par le souffle
turbulent filtré par le conduit vocal. Ils peuvent se traduire par des sons sourds (Figure 2.2)

Figure 2.2 : Son non-voisé

14
Théoriquement, pour transmettre le signal vocal il faut une bande de fréquence
souhaitable comprise entre 0 et 8 kHz. Mais en général, il suffit une bande allant de 0 à 3 kHz
pour garder une intelligibilité satisfaisante de la parole. En fait, les fréquences fondamentales
ne sont pas concernées dans ce domaine d’intelligibilité mais seules certaines fréquences
harmoniques sont mises en évidence. En effet, 1000Hz, 2000Hz, 4000Hz sont les octaves
par lesquelles transitent les informations du timbre phonétique où est représentée presque la
totalité des traits pertinents responsables de la reconnaissance de la parole. C’est la raison
pour laquelle les fréquences moyennes pour le langage correspondent aux fréquences les plus
pertinentes pour sa compréhension, soit entre 1kHz et 3kHz, et non aux fréquences
fondamentales.
En effet, le signal de la parole est caractérisés par quatre paramètres qui sont : son pitch
(ou sa fréquence fondamentale), sa hauteur, sa durée ainsi que son intensité.

a. La fréquence fondamentale (le pitch)

Noté F0, celle-ci constitue une caractéristique très importante de la voix. Elle correspond
à la fréquence de vibration des cordes vocales lors de la production de voyelles ou de
consonnes voisées. Elle génère des variations prosodiques, c’est à dire de mélodie et
d’intonation, qui contribuent à l’identification du sexe, de l’âge, de l’identité du locuteur,
ainsi que la signification du message prononcé.
Pour l’homme, la fréquence fondamentale est comprise entre 80 et 250Hz soit en
moyenne 150Hz environ. Quant à une femme, elle est comprise entre 150 et 350 Hz soit en
moyenne 250 Hz et aux environs de 250Hz en plus pour un enfant.

b. La hauteur de la voix

La hauteur c’est la qualité sonore et elle dépend du nombre de vibration des cordes
vocaux. En effet, il faut savoir qu'en matière d'acoustique, pour qu’un corps soit capable
d’émettre un son, il doit avoir la propriété de vibrations. Ces vibrations sont alors transmises à
l'oreille par l'intermédiaire de l'air et leur fréquence peut varier entre 16 et 20000 vibrations
par seconde (16 Hz à 20 kHz). Ainsi plus le son est aigu, plus les vibrations sont nombreuses
et inversement. La durée ou la tenue des sons dépend de la pression de l'air expiré.

15
c. L’intensité

L’intensité du son se mesure en général en [dB] et celui-ci distingue un son fort d’un
son faible. Par exemple une conversation normale a une intensité entre 20 et 50 dB, tandis
qu’une discussion animée se mesure de 50 à 65 dB.

Un son est représenté mathématiquement par plusieurs paramètres:


➢ La fréquence d'échantillonnage qui désigne le nombre des valeurs définissant
l'amplitude pour une seconde d'enregistrement. Plus la fréquence d'échantillonnage est
élevée, meilleure est la qualité des échantillons ;
➢ Plus l'amplitude est élevée, plus le son est fort, bruyant. C’est l’amplitude qui est
numérisée par le CAN. Par exemple, en 8 bits, l'amplitude possède une résolution de
256 valeurs. Plus la résolution est élevée, plus l'échantillon est proche du son original ;
➢ Le nombre de bits d'un échantillon ;
➢ Le nombre de voies (un seul correspond à la monophonie, deux à la stéréophonie) ;

2.2. Production et perception de la parole

La parole peut être considérée comme étant le principal vecteur d’information dans la
société. La chaîne de communication parlée (Figure 2.3) se base sur le mécanisme de
production et de perception de la parole.

a. La production de la parole

La parole est le résultat de l’action volontaire et coordonnée d’un certains nombre de


muscle qui est gérée par le système nerveux central. Ce dernier reçoit en permanence des
informations par rétroaction auditive et par la sensation kinesthésiques. La figure ci-dessous
montre la chaine de la communication parlée (Figure 2.3).

16
Figure 2.3 : Chaine de la communication parlée

b. La perception de la parole

La connaissance des mécanismes d’audition et de perception de la parole est


importante dans le cadre du traitement de la parole. L’audition joue un rôle fondamental dans
le processus de production de la parole.
Les ondes sonores sont recueillies par l’appareil auditif, ce qui provoque les
sensations auditives. Ces ondes de pression sont analysées dans l’oreille interne qui envoi au
cerveau l’influx nerveux qui en résulte ; le phénomène physique induit ainsi un phénomène
psychique grâce à un mécanisme physiologique complexe.

i) Les seuils auditifs


L’oreille ne répond pas à toutes les fréquences, en effet il existe deux seuils pour
l’audition humaine :

➢ Le seuil de l’audition
➢ Le seuil de douleur

La fréquence maximale que l’oreille humaine supporte est limité à 16 KHz et celle-ci
dépend de l’individu, ainsi fréquence d’échantillonnage maximale utile pour un signal auditif
est fixé à 32 kHz. L’appareil auditif perçoit les fréquences audibles comprises entre 20Hz et
20kHz, qui correspondent respectivement au seuil d'audition, et seuil de douleur. Le champ
auditif humain est représenté par le diagramme ci-contre (Figure 2.4).
17
Figure 2.4 : Le champ auditif humain

ii) L’échelle des Mels

Après 500Hz, la puissance perçue par l’oreille diminue largement avec l’accroissement
de la fréquence. Des expériences psycho-acoustiques ont alors permis d'établir la loi qui relie
la fréquence et la hauteur perçue : l'échelle des Mels où le « Mel » est une unité représentative
de la hauteur perçue d'un son. La conversion de la fréquence [Hz] en échelle des Mels [Mel]
est donnée par la relation :

𝐻𝑧𝐹
MMel=2595 log (1+700 )

iii) L’échelle de Bark

Le système auditif se comporte comme un banc de filtres dont les bandes, appelées
“bandes critiques”, se chevauchent et dont les fréquences centrales s'échelonnent
continûment. Cette bande critique correspond à l'écartement en fréquence nécessaire pour
que deux harmoniques soient discriminées dans un son complexe périodique. L’échelle de
Bark est donnée par la relation en fréquence suivante :

𝐻𝑧 𝐹 𝐹
𝐻𝑧 2
BBark=13 Arctg (0.761000) +3.5 Arctg (7500)

18
Remarque : Les échelles de Mel ou de Bark sont approchées par un banc de 15 à 24
filtres triangulaires espacés linéairement jusqu'à 1KHz, puis espacés logarithmiquement
jusqu’à la fréquence maximum.

2.3. Niveaux de description de la parole

L’information portée par le signal de parole peut être analysée de bien des façons. On
en distingue généralement plusieurs niveaux de description non exclusifs : acoustique,
phonétique, phonologique, morphologique, syntaxique, sémantique et pragmatique.
Par exemple la phonétique acoustique étudie le signal de la parole en le transformant
dans un premier temps en signal électrique grâce au transducteur approprié : le microphone.
De nos jours, le signal électrique résultant est le plus souvent numérisé. Il peut alors être
soumis à un ensemble de traitements statistiques qui visent à en mettre en évidence les traits
acoustiques : sa fréquence fondamentale, son énergie, et son spectre. Chaque trait acoustique
est lui-même intimement lié à une grandeur perceptuelle : pitch, intensité, et timbre.

19
CHAPITRE 3 : RECONNAISSANCE DE LA PAROLE

Ce chapitre se divise en trois grandes parties pour bien analyser la reconnaissance


vocale. D’abord, la première partie introduit la notion de reconnaissance vocale. Ensuite, la
seconde partie décrit la paramétrisation du signal vocal pour en déduire l’empreinte
caractéristique du son. Enfin, la troisième partie explique les techniques de reconnaissance
vocale.

3.1. Introduction

a. Définition

La reconnaissance vocale ou reconnaissance automatique de la parole (ASR) est


une technologie informatique qui permet d'analyser un mot ou une phrase captée au moyen
d'un microphone pour la transcrire sous la forme d'un texte exploitable par une machine.

Le problème de la reconnaissance automatique de la parole consiste à extraire, à


l'aide d'un ordinateur, l'information lexicale contenue dans un signal de la parole.

b. Recherche en reconnaissance vocale

La reconnaissance vocale peut se rattacher à des nombreux pans de la science :


traitement automatique des langues, linguistique, théorie des langages formels, théorie de
l'information, traitement du signal, réseaux neuronaux, intelligence artificielle, etc. Celle-ci ne
cesse de s’étendre depuis son découvert, ainsi l’évolution de la technologie moderne
augmente la capacité et les aptitudes à atteindre un meilleur système de reconnaissance. Des
progrès importants ont été accomplis grâce au développement d'algorithmes puissants ainsi
qu'aux avancées en traitement du signal.

c. Complexité de la reconnaissance vocale

Différents problèmes se posent dans le traitement de la parole, ces problèmes sont


dépendant de la langue ainsi que du signal acoustique.

i) Problème au niveau du signal

Le signal de la parole n'est pas un signal ordinaire : il s'inscrit dans le cadre de la


communication parlée, un phénomène des plus complexes. Afin de souligner les difficultés du
problème, nous ferons ressortir essentiellement quelques caractéristiques notoires de ce
signal. Tout d’abord ce signal a un débit intense, il représente une extrême redondance. La
20
parole est aussi un lieu d’interférence. Enfin, ce signal a une grande variabilité, d’un point de
vue mathématique, il est ardu de modéliser le signal de la parole, car ses propriétés
statistiques évoluent au cours du temps.

ii) Les Problèmes de variabilité de la parole

Lorsqu’une personne suit une conversation avec une langue inconnue, elle aura sans
doute du mal à comprendre. Ce cas est le plus proche du problème qui est posé sur l’ASR car
la machine n'ayant pas aucune connaissance propre en compréhension de la parole. Tout
système ASR doit être défini par l’homme lui-même, qui doit ainsi découvrir son propre
processus de compréhension de la langue, processus qu’il a développé inconsciemment au
cours de ses plus jeunes années.

Le terme de variabilité peut englober tous les problèmes qui sont totalement
indépendants du point de vue des techniques actuellement utilisées pour les résoudre. Ceux-ci
sont relatifs à la différence innée de prononciation vis-à-vis d’un ou plusieurs locuteurs. En
effet, la notion de variabilité peut être vue dans trois angles : la variabilité intra-locuteur, la
variabilité interlocuteur, ainsi que la variabilité due à l’environnement

- La variabilité intra-locuteur

Elle identifie les différences dans le signal produit par une même personne. Cette
variation peut résulter de l'état physique ou morale du locuteur, c'est à dire une maladie,
l'humeur ainsi que l'émotion peut influencer l'intonation, le rythme délocution ainsi que sa
phraséologie.

- La variabilité interlocuteur

C'est un phénomène majeur en reconnaissance de la parole. Sachant que le locuteur a


un timbre vocal qui lui permet d'être toujours identifiable malgré une variabilité qui peut être
important. Il faut donc donner aux différents sons de la parole une définition assez souple
pour établir une classification phonétique commune à plusieurs personnes.

La cause principale des différences interlocuteur est de nature physiologique, la


production de la parole chez l’homme dépend du sexe et de l’âge, ainsi le fondamental n’étant
pas constant. Les différences de prononciation qui existent au sein d'une même langue et les
accents régionaux sont également les origines de la variabilité interlocuteur.

21
- La variabilité due à l’environnement

La variabilité due à l'environnement provoque des distorsions ainsi qu'une


dégradation du signal de parole sans que le locuteur ait modifié son mode d'élocution. Cette
variation est considérée comme du bruit.

La figure ci-contre (figure 3.1) illustre la notion de variabilité. Elle présente deux
signaux temporels, et les spectrogrammes qui y sont associés, d’une même phrase prononcée
par deux locuteurs différents, d’une femme et un homme. Les signaux ayant servi à réaliser
ces spectrogrammes sont issus du corpus TIMIT où nous avons choisi de prendre la phrase
référencée “sa1”, commune à tous les locuteurs du corpus.

Figure 3.1 : Exemple de 2 signaux temporels (à gauche) et de 2 spectrogrammes (à droite) d’une


même phrase prononcée par une femme et un homme

L’axe des abscisses du spectrogramme représente également le temps, l’axe des


ordonnées représentant la fréquence, comprise entre 0 et 8000Hz. Les nuances de grisé du
spectrogramme représentent l’énergie du signal pour une fréquence et à un instant donné.

22
L’énergie minimale des spectrogrammes est de 30 décibels (correspondant au gris le plus
clair), l’énergie maximale étant, elle, de 100 décibels (correspondant au noir). Une étude de
ces deux graphiques permet de comprendre toutes les différences de bas niveau qui peuvent
exister dans un message pourtant porteur de la même information. Ces différences dans le
signal expliquent toute la difficulté qui peut être engendrée, et toutes les erreurs qui peuvent
être provoquées, par des méthodes ne mettant en œuvre qu’une comparaison générale entre un
signal de parole à interpréter et sa définition phonétique exacte, que cette définition soit
enregistrée sous forme de règles ou sous la forme d’un corpus de formes de référence.

d. Applications de la reconnaissance vocale

La reconnaissance de la parole s’applique dans beaucoup de domaines. Actuellement il


existe beaucoup des systèmes qui utilisent la reconnaissance vocale, on peut le regrouper en
différents catégories selon le domaine d’application :

➢ Télécommunications

La technique de l’ASR s’applique sur des serveurs d’informations téléphoniques,


pour automatisation des services de renseignement, composition vocale du numéro « mains
libres », commande et contrôle de service d’accès à des bases de données, de services de
réservation ou d’achat par téléphone.

➢ Informatiques industrielles

- Commandes et Contrôles Vocales des logiciels, des robots, des appareils


mécaniques ou électroniques tel que les pilotages automatiques ou contrôle de production
dans les usines.

- Dictée vocale pour saisie d’information ou traduction linguistique pour la machine à


dictée qui reçoit à l’entrée le signal de parole et envoie à la sortie des textes

➢ Sécurités

- Contrôles d’accès d’un système en utilisant l’emprunt vocal tel que l’ouverture d’un
coffre fort ou le déverrouillage d’un appareil mobile quelconque.

23
e. Classement de la reconnaissance vocale

On distingue fondamentalement deux types de reconnaissance, en fonction de


l’information que l’on cherche à extraire du signal vocal : la reconnaissance du locuteur et
la reconnaissance du message.

i) Reconnaissance du locuteur (speaker-dependent)

Ce type de reconnaissance s’intéresse plutôt à la personne qui parle, c'est-à-dire que


l’objectif est de reconnaître celle qui parle. Dans ce type de reconnaissance, on s’oriente
beaucoup à l’empreinte vocale de la personne qui parle, mais pas à ce qu’elle a dit. Ce type de
reconnaissance est utilisée pour la sécurité et trouvent un grand champ d’applications dans le
domaine des serveurs vocaux mais également du contrôle d’accès.

Lorsqu’on parle de reconnaissance du locuteur le système de reconnaissance peut être


appelé un « système monolocuteur ». C’est à dire le reconnaisseur de parole est entraîné à
reconnaitre la voix d’une personne. En principe c’est un système qui utilise l’empreint vocale
d’une personne pour pouvoir le comparaître à d’autre.

ii) Reconnaissance du message (speaker-Independent)

Celle-ci s’intéresse plutôt à ce qui est dit, c'est-à-dire, le sens de ce qu’on a parlé
(ordres à exécuter par exemple) sans tenir compte de la personne qui parle. Ces systèmes sont
mis en œuvre dans les applications de dictée vocale, de commande vocale de machines ainsi
que beaucoup d’autres applications.

La reconnaissance du message se base sur un système du type multilocuteur. Celle –


ci se base surtout dans le sens des mots qui sont dits mais pas du tout sur l’empreint vocale.

f. Objectifs de l’ASR

Les objectifs d’un tel système de reconnaissance vocale se résument en trois grandes
parties illustrées par le diagramme suivant (Figure 3.2).

24
Figure 3.2: Finalité de la reconnaissance vocale

➢ Identité du locuteur pour l’accès à certains services (serveur vocale, déblocage d’un
appareil mobile, déverrouillage d’une porte pour la sécurité, etc.).
➢ Synthèse de texte à partir d’un signal vocal dictée via une machine ou un ordinateur
qui peut assumer un système de dictée vocale pour la saisie des données provenant
d’un appel téléphonique ou directement d’un locuteur près de la machine.
➢ Exécution d’une commande quelconque sans tenir compte du locuteur mais le
système compare seulement les mots dictés aux bases de données préenregistrées de
commande. Ce système fonctionne souvent dans les grandes entreprises pour piloter
les machines ainsi que pour les pilotages automatiques d’un avion. Ce système de
reconnaissance peut intervenir dans la communication IHM.

3.2. Paramétrisation du signal de la parole


La paramétrisation du signal vocal permet d’obtenir l’empreinte caractéristique du son
et on pourra alors traiter sa reconnaissance. Elle s’effectue en deux temps :

- La représentation temporelle
- La recherche d’empreinte caractéristique du son

a. Représentation temporelle

Cette étape consacre à l’étude du niveau acoustique de la parole sa phonétique


acoustique. Comme la parole est une variation de la pression de l’air causée et émise par le
système articulatoire, on doit la capter par un microphone pour pouvoir la traiter en le
transformant en un signal électrique qui pourra ensuite traité et numérisé (Figure 3.3) .

Le signal numérique obtenu peut être soumis à un ensemble de traitements


statistiques qui visent à en mettre en évidence les traits acoustiques: sa fréquence

25
fondamentale, son énergie, et son spectre. Chaque trait acoustique est lui-même intimement
lié à une grandeur perceptuelle : le pitch, l’intensité, et le timbre.

Figure 3.3 : Enregistrement numérique d’un signal acoustique

Remarque : La fréquence de coupure du filtre de garde, la fréquence d’échantillonnage, le


nombre de bits et le pas de quantification sont respectivement notés fc, fe, b, et q.

L’échantillonnage transforme le signal à temps continu x(t) en signal à temps


discret x(nTe) aux instants de l’échantillonnage. Pour le signal vocal, le choix de fe doit être
judicieux car son spectre peut s’étendre jusqu’à 12 kHz. Il faut donc que la fréquence
d’échantillonnage fe soit de 24 kHz au minimum pour respecter le théorème de Shannon

(cf 1).

Parmi les valeurs possibles pour les échantillons x(n), la quantification ne retient
qu’un nombre fini 2b de valeurs (b étant le nombre de bits de la quantification), espacées du
pas de quantification q. Le signal numérique résultant est noté x(n). Une quantification de
bonne qualité requiert en général 16 bits.

i) Audiogramme

L’audiogramme est la représentation du signal de la parole en fonction du temps


sans se faire apparaître les caractéristiques acoustique du signal. Par exemple, la figure
(Figure 3.4) représente l’audiogramme du mot « parenthèse ».

26
Figure 3.4 : Audiogrammes du mot « parenthèse »

On constate qu’il y a alternance de zones assez périodiques et de zones bruités


appelés zones voisés et zones non-voisés.

ii) Spectrogramme

La représentation sous une forme de spectrogramme permet de visualiser le spectre du


signal dans un axe à deux dimensions temps-fréquence. Les niveaux de gris désignent
l’amplitude du spectre et ils mettent en évidence l’enveloppe spectrale du signal. Ils
permettent donc de visualiser l’évolution temporelle des formants. Les formants, quant à eux,
constituent le facteur fondamental de la caractérisation du timbre vocal. Le spectrogramme
présente sous une forme simple l’essentiel de l’information portée par le signal vocal.
Différents étapes (Figure 3.5) sont nécessaires pour présenter le spectrogramme d'un signal
vocal.

Figure 3.5: Méthode de calcul d’un FFT pour obtenir le spectrogramme

- Phase de préaccentuation

-Fenêtrage (Convolution du signal avec une fenêtre temporelle)

-Algorithme de FFT

27
Une fois la convolution effectuée, la transformée de Fourier est calculée sur la
totalité de la fenêtre, le reste du “signal” étant alors égal à 0. Ce processus permet d’obtenir un
spectre qui correspond à une trame, un ensemble de trames calculées à intervalles réguliers
permettant d’obtenir le spectrogramme désiré.

Le fondamental (la fréquence de vibration des cordes vocales) produit de nombreux


lobes qui perturbent la lecture du spectrogramme, en particulier la position des formants. Afin
de s’en affranchir, plusieurs types de lissage sont possibles. Un des plus courants est la
pondération de chaque trame spectrale par des fenêtres triangulaires. Ce lissage présente aussi
l’avantage de réduire le nombre d’informations, en vue d’une éventuelle reconnaissance sur le
spectrogramme. La répartition de ces fenêtres peut être linéaire, ou être faite selon une échelle
tenant compte des modèles de perception de l’oreille. On utilise alors une échelle en Mel,
calculée de la manière suivante :

1000 𝐹
M= 𝐿𝑜𝑔 (1 + ) 𝑎𝑣𝑒𝑐 𝑀[𝑚𝑒𝑙] 𝑒𝑡 𝐹[𝐻𝑧]
𝐿𝑜𝑔(2) 1000

Les signaux représentés par les figures (Figure 3.6 et Figure 3.7) sont
échantillonnés à 11.25 KHz, le temps en abscisse, la fréquence en ordonnée et l’amplitude du
FFT en niveau gris sur le troisième axe.

Figure 3.6: Spectrogramme à bande étroite (trames de 30 s) de la phrase anglaise « Alice’s


adventure »

28
Figure 3.7 : Spectrogramme (trames-fenêtrage de Hamming de 10 ms) et audiogramme (en bas)

Les spectrogrammes à bande large sont obtenu avec les fenêtres de pondération de faible
durée (typiquement 10 ms), ils mettent en évidence l’enveloppe spectrale du signal, ils
permettent de visualiser l’évolution temporelle des formants. Les périodes voisés y
apparaissent sous forme de bandes verticales plus sombres. Quand aux spectrogrammes à
bande étroite, ils mettent en évidence la structure plus fine du spectre. Les harmoniques des
zones voisés y apparaissent sous la forme de bande horizontale. On utilise très peu les
spectrogrammes à bande étroite.

L’évolution temporelle du signal de la parole n’est que la première étape de la


paramétrisation, il faut passer à la recherche de l’empreinte caractéristique pour mettre en
évidence les traits acoustiques.

b. Empreinte caractéristique

Il existe deux types de méthode principale applicables pour obtenir l’empreinte


caractéristique du signal de la parole :

➢ Les méthodes spectrales


➢ Les méthodes d’identification

i) Méthodes spectrale (FFT)

Elles sont fondées sur la décomposition fréquentielle du signal sans connaissance à


priori de sa structure fine. La plus utilisée est celle utilisant la transformée de Fourier, appelée
FFT. Tout son est la superposition de plusieurs ondes sinusoïdales. Grâce à la FFT, on peut

29
isoler les différentes fréquences qui le composent. D'après l'expérience, le signal de la parole
est quasi-stationnaire pendant une durée d'une trentaine de ms.

La FFT, est obtenue en extrayant de l’audiogramme une trentaine de millisecondes de


signal vocal et en effectuant une transformée de Fourier sur ces échantillons. Le résultat de
cette transformation mathématique est souvent présenté dans un graphique qui donne, en
fonction de la fréquence, l’amplitude des composantes présentes dans le signal analysé. Les
fenêtres d'une trentaine de ms, appelées trames, se chevauchent avec une durée de
recouvrement égal à 10 ms environ.

Le fenêtrage a pour but d’obtenir des spectres à court terme avant de passer au FFT. Il
existe différents modèle de fenêtrage mais le plus utilisé dans ce domaine est le fenêtrage de
Hamming. La fenêtre de Hamming est donnée par la relation mathématique suivante :

𝑛
W(n)=0.54 + 0.46 cos (2π𝑁) pour n=0, 1, ……, N-1

Si on a s(t) le signal représenté par l’audiogramme, alors sa transformation de Fourier :

+∞
𝑆(𝑓) = ∫ 𝑠(𝑡)𝑒 −𝑖2𝜋𝑓𝑡 𝑑𝑡
−∞

+∞
𝑠(𝑡) = ∫ 𝑆(𝑓)𝑒 𝑖2𝜋𝑡𝑓 𝑑𝑡
−∞

𝑆(𝑓) = 𝑅(𝑓) + 𝐼(𝑓) = 𝐴(𝑓)𝑒 𝑖Ф(𝑓)

D’où le spectre de puissance :

A2(f)=R2(f) +I2(f)

Ainsi que le spectre de phase :

𝐼(𝑓)
Ф(f)=Arc tg ( )
𝑅(𝑓)

On obtient ainsi une répartition spectrale du signal comme le montre le schéma (Figure 3.8).

30
Figure 3.8: Spectre obtenu par transformée rapide de Fourier (FFT)

En appliquant la FFT à un son complexe et en la répétant de nombreuses fois, on


dresse un graphique donnant l’évolution de l’amplitude et de la fréquence en fonction du
temps. On obtient ainsi une empreinte caractéristique du son.

ii) Méthodes d’identification (Codage LPC et modélisation ARMA)

Les méthodes d’identification sont basées sur la connaissance des mécanismes de


production (exemple : conduit vocal). Les méthodes les plus utilisées sont basées sur le
codage prédictif linéaire ou codage LPC (Linear Predictif Coding).

- Principe du codage LPC

Le codage par prédiction linéaire (LPC) repose sur la connaissance du modèle de


production de la parole. L’hypothèse de base est que le canal buccal est constitué d’un tube
cylindrique de section variable. De la même façon que la parole naît du passage à travers
notre conduit vocal d’un signal d’excitation créé par les poumons et les cordes vocales, elle
peut être modélisé par le passage d'un signal d’excitation numérique à travers un filtre
numérique récursif. Le codage LPC consiste à estimer le modèle décrivant le conduit en
connaissant le signal d’excitation.

L’ajustement des paramètres de ce modèle permet de déterminer à tout instant sa


fonction de transfert. Cette dernière fournit une approximation de l’enveloppe du spectre du
signal à l’instant d’analyse.

Ce modèle peut être décomposé en deux parties :

- la source qui est active.


- le conduit qui est passif

31
Pour les sons non voisés, le signal d’excitation est un bruit blanc de moyenne nulle et de
variance unité. Pour les sons voisés, cette excitation est une suite d’impulsions (Figure 3.9)
d’amplitude unité :

𝑈(𝑛) = ∑ 𝛿(𝑛 − 𝑘𝑃)


𝑘

Ou P la période du fondamental (Pitch Period).

Figure 3.9: Principe du codage LPC

- Modèle Autorégressif(AR)

En fait, les deux excitations utilisées pour le codage LPC sont idéalisées, car la
forme réelle de l’impulsion glottale et celle du rayonnement aux lèvres sont comprises dans
l’expression de la transmittance du modèle. En première approximation, cette transmittance
est celle d’un filtre polynomial, de la forme 1/A(z) et elle est excitée par les signaux
d’excitations décrits. A(z) est un polynôme défini par :

𝑝
A(z)=∑𝑖=0 𝑎(𝑖). 𝑧 −1

Ce modèle de production d’un signal est appelé autorégressif (AR), récursif, tous-
pôles, ou encore IPR (Infinite Pulse Response).

Le signal ainsi produit à pour transformée en Z :

𝑈(𝑧)
Y(z)=𝐴(𝑧)

Un signal voisé peut être modélisé par le passage d'un train d'impulsions u(n) à
travers un filtre numérique récursif de type tous pôles. On montre que cette modélisation
reste valable dans le cas de sons non-voisés, à condition que u(n) soit cette fois un bruit blanc.
Le modèle final est illustré à la figure (Figure 3.10).

32
Figure 3.10: Modèle AutoRegressif

V : sons voisés, NV : sons non-voisés, P : période de train d’impulsion uniquement pour les
1
sons voisés, σ : gain, : coefficients du filtre appelé filtre de synthèse. Il est souvent
𝐴(𝑧)

appelé modèle autorégressif, parce qu'il correspond dans le domaine temporel à une
régression linéaire de la forme :

𝑝
x(n)= 𝜎𝑢(𝑛) + ∑𝑖=1 −𝑎𝑖 𝑥(𝑛 − 𝑖)

Où u(n) le signal d’excitation, ai sont des prédicateurs.

Chaque échantillon est obtenu en ajoutant un terme d'excitation à une prédiction


obtenue par combinaison linéaire de p échantillons précédents. Les coefficients du filtre sont
d'ailleurs appelés coefficients de prédiction et le modèle AR est souvent appelé modèle de
prédiction linéaire.

Dans le domaine temporel, on peut décrire une équation de récurrence suivante :

u(n)=y(n) + ∑𝑝𝑖=1 𝑎𝑖 𝑦(𝑛 − 𝑖) (1)

Cette récurrence exprime le fait qu’un échantillon quelconque y(n) peut être déterminé
par une combinaison linéaire des échantillons qui le précèdent, ajoutée au terme d’excitation.
Les coefficients ai sont dit prédicateurs. Si le signal d’excitation n’est pas accessible, alors la
quantité :

̂ = -∑𝑝 𝑎𝑖 𝑦(𝑛 − 𝑖)
𝑦(𝑛) (2)
𝑖=1

est la prédiction de y(n) conditionnellement à son passé. En rapprochant (1) et (2), on peut
interpréter u(n) comme étant une erreur de prédiction :

33
̂
u(n)=y(n)- 𝑦(𝑛)

Si, de plus, on cherche à estimer le modèle par observation du signal, cela justifie la
recherche des coefficients ai optimaux, en minimisant cette erreur de prédiction, ou plutôt sa
variance S2 dans le cas d'un bruit blanc. On parle alors de prédiction linéaire.

Le problème de l'estimation d'un modèle AR, revient à déterminer les coefficients


d'un filtre récursif dont on connaît le signal de sortie mais pas l'entrée. Il faut adopter un
critère pour choisir entre une infinité de solutions possibles. Le critère le plus courant est la
minimisation de l'énergie de l'erreur de prédiction.

Les fréquences formantiques correspondent au maximum d’énergie dans le spectre et


en répétant cette méthode plusieurs fois, on obtient l’empreinte du signal comme montre la
figure (Figure 3.11).

Figure 3.11: Empreinte obtenue par prédiction linéaire (LPC)

c. Décodage acoustico-phonétique

Le décodage acoustico-phonétique consiste à décrire le signal acoustique de la parole


en termes d’unités linguistiques discrètes. Les unités les plus utilisées sont les phonèmes, les
syllabes, les mots, etc. Un phonème est un élément sonore d’un langage donné, déterminé par
les rapports qu’il entretient avec les autres sons de ce langage. Par exemple, le mot " cou " est
formé des phonèmes " keu " et " ou ". Cette notion est assez importante en reconnaissance
vocale.

34
i) Segmentation du signal

La segmentation est l’action de traiter le signal en segments élémentaires, suivie


ensuite par l’étiquetage de ces segments. Il est important de choisir les unités sur lesquelles
portera le décodage. Si des unités longues telles que les syllabes ou les mots sont choisies, la
reconnaissance en elle-même sera facilitée mais leur identification est difficile. Si des unités
courtes sont choisies, comme les phones (sons élémentaires), la localisation sera plus facile
mais leur exploitation nécessitera de les assembler en unités plus larges. Les phonèmes
constituent un bon compromis, leur nombre est limité ainsi on les utilise souvent. Mais le
choix dépend également du type de reconnaissance effectuée : reconnaissance des mots isolés
ou de parole continue.

ii) Identification des différents segments

L’identification se fait en fonction des contraintes linguistiques ou phonétiques. Il


faut que le système ait intégré un certain nombre de connaissances des données articulatoires,
sons de la langue à reconnaître, données phonétiques, prosodiques, syntaxiques, sémantiques,
etc. Il existe deux outils pour l’identification des différents segments:

➢ Les outils de reconnaissance de formes structurelles, par exemple les grammaires


déterministes.
➢ Les outils de systèmes experts qui sont souvent associés pour des meilleures
performances. Un système expert effectue les interprétations et déductions nécessaires
grâce à la modélisation préalable du raisonnement de l’expert (domaine de
l’intelligence artificielle).

3.3. Techniques de reconnaissance vocale

Il existe deux approches pour la reconnaissance de la parole selon le type de


reconnaissance que ce soit mot isolés ou parole continue :

➢ Méthode globale (Reconnaissance par comparaison à des exemples)


➢ Méthode analytique (Reconnaissance par modélisation d’unités de parole)

Les principes sont à peu près le même que ce soit pour l’approche analytique ou
l’approche global, ce qui différencie ces deux méthodes est l’entité à reconnaître : pour la
première il s’agit du phonème, pour l’autre du mot.

Il y a deux phases qui sont :

35
➢ Phase d’apprentissage c’est la création d’un dictionnaire de référence acoustique
pour la machine. Cette phase consiste à la prononciation de l’ensemble de
vocabulaires. Pour l’approche analytique, l'ordinateur demande à l'utilisateur
d'énoncer des phrases souvent dépourvues de toute signification, mais qui
présentent l'intérêt de comporter des successions de phonèmes bien particuliers.

➢ Phase de reconnaissance c’est la prononciation d’un vocabulaire par le locuteur.


La reconnaissance fait référence à une reconnaissance de forme [Figure 3.12]. Les
systèmes de reconnaissance de forme comportent 3 parties :
1. Un capteur permettant d'appréhender le phénomène physique considéré (dans
ce cas un microphone)
2. Un étage de paramétrisation des formes (par exemple un analyseur spectral),
3. Un étage de décision chargé de classer une forme inconnue dans l'une des
catégories possibles.

Figure 3.12: Système de reconnaissance de forme

a. Reconnaissance par comparaison à des exemples

Les premiers succès en reconnaissance vocale ont été obtenus à l'aide d'un paradigme
de reconnaissance de mots par "l'exemple". L'idée consiste à faire prononcer un ou plusieurs
exemples de chacun des mots qui peuvent être reconnus et on les enregistre sous forme des
vecteurs acoustique (typiquement: un vecteur de coefficients LPC ou assimilés toutes les 10
ms). Cette suite des vecteurs acoustiques correspondent à l'enregistrement d'un
spectrogramme. La reconnaissance proprement dite consiste alors à analyser le signal inconnu
sous la forme d'une suite de vecteurs acoustiques similaires, et à comparer la suite inconnue à
chacune des suites des exemples déjà enregistrés. La méthode se fait par comparaison de

36
spectre du mot inconnu avec celui qui est préenregistré, on peut dire en quelque sorte de voir
si les spectrogrammes se superposent.

Cependant ce principe de base ne peut pas s'appliquer directement car il existe des
contraintes causées par la prononciation. Un même mot par exemple peut être prononcé
différemment suivant l'accent ou la rythme d'élocution, ou l'intonation. Et celle-ci a un effet
sur les spectrogrammes. Pour remédier ce problème, on a recours à un système de
comparaison assez souple. La superposition du spectrogramme inconnu au spectrogramme de
base doit dès lors se faire en acceptant une certaine « élasticité » sur les spectrogrammes
candidats. Cette notion d’élasticité est formalisée mathématiquement par un algorithme appelé
: l’algorithme DTW (cf. Annexe C)

La robustesse de cette méthode est faible et les résultats obtenus, bien


qu'honorables, pourront encore être améliorés. Cette méthode ne permet, dans sa version
standard, que la reconnaissance de mots isolés. La méthode de reconnaissance par DTW peut
être décrite comme suit (Figure 3.13)

Figure 3.13: Reconnaissance par DTW

b. Reconnaissance par modélisation d’unité acoustique (approche analytique)

Pour les systèmes multilocuteur à plus grand vocabulaires, il est nécessaire de


procéder par une méthode qui se base sur la reconnaissance des unités acoustiques qui sont «
les phonèmes » car la méthode de comparaison à des exemples dévient plus difficile. Cette
méthode peut être appelée « méthode analytique ». On cherche plutôt à en déduire un modèle
(un modèle par unité), qui sera applicable pour n’importe quelle voix. La figure illustrée ci-
dessus (Figure 4.14) montre le principe de la reconnaissance par approche analytique.

37
Figure 3.14: Reconnaissance par modélisation d’unité acoustique

Les règles strictes pour la reconnaissance vocale sont souvent décomposées en


plusieurs modules qui sont:

➢ Un module de traitement du signal et d'analyse acoustique qui transforme le signal de


parole en une séquence de vecteurs acoustiques (typiquement : un vecteur de
coefficients LPC ou assimilés toutes les 10 ms).

➢ Un module acoustique qui peut produire une ou plusieurs hypothèses phonétiques pour
chaque segment de parole de 10 ms (pour chaque vecteur acoustique), associées en
générale à une probabilité. Ce générateur d'hypothèse locales est basé sur des modèles
statistiques d'unités élémentaires de parole (typiquement des phonèmes) qui sont
entraînés sur une grande quantité de données de parole (par exemple, enregistrement de
nombreuses phrases) contenant plusieurs fois les différentes unités de parole dans
plusieurs contextes différents. Ces modèles statistiques sont le plus souvent constitués
de lois statistiques paramétriques dont on ajuste les paramètres pour « coller » au
mieux aux données, ou de réseaux de neurones artificiels (ANN : Artificiel Neural
Networks). Un tel générateur d’étiquettes phonétiques intègre toujours un module
d'alignement temporel (pattern matching, en anglais) qui transforme les hypothèses
locales (prises sur chaque vecteur acoustique indépendamment) en une décision plus
globale (prise en considérant les vecteurs environnants). Ceci se fait le plus souvent via
des modèles de Markov cachés (HMM pour ``Hidden Markov Model'', en anglais)
[Annexe A]. L’ensemble (lois statistiques paramétriques ou réseau de neurones et
HMM) constitue le modèle acoustique sous-jacent à un reconnaisseur de parole.

38
➢ Un module lexicale qui interagit avec le module d'alignement temporel pour forcer le
reconnaisseur à ne reconnaître que des mots existants effectivement dans la langue
considérée. Celui-ci intègre en général des modèles des mots de la langue.

➢ Un module syntaxique qui interagit avec le module d'alignement temporel pour forcer
le reconnaisseur à intégrer des contraintes syntaxiques, voire sémantiques. Les
connaissances syntaxiques sont généralement formalisées dans un modèle de la langue,
qui associe une probabilité à toute suite de mots présents dans le lexique.

39
CHAPITRE 4 : APPLICATION DE LA RECONNAISSANCE
DE LA PAROLE SUR WINDOWS

4.1. Introduction

L’objectif de ce chapitre c’est de montrer la simulation sous Windows de la


reconnaissance vocale ainsi que l’application de la reconnaissance de la parole dans le monde
de l’informatique.

Dans de chapitre, nous allons donner quelques exemples d’implémentations


informatiques des principes physiques et mathématiques que nous avons vu antérieurement.
Ces programmes ont été développés dans un but seulement démonstratif. Le logiciel qu’on
utilise dans cette mémoire n’inclus pas aucune forme de support technique ou manuel
utilisateur, exception faite des démonstrations proposées dans ce présent rapport ; ce logiciel a
été testé seulement sur Windows XP Professionnel.

4.2. Le logiciel « DICTPAD »

a. Présentation générale

Dictpad est une application de la dictée, de la commande et contrôle vocale sous


Windows. Il est à noter que le mode dictée vocale est seulement en anglais pour ce logiciel
car le moteur de reconnaissance utilisé par SAPI SDK (sreng.dll) n’existe pas encore en
français.

Ce logiciel intègre trois modules de fonctionnements : tout d’abord elle fonctionne


comme un convertisseur de la parole en texte et l’affiche dans la zone de texte du logiciel. Il
suffit juste de parler clairement et lentement et le mot sera reconnu et sera affiché sur la zone
de texte. Une autre spécificité de ce logiciel est qu’elle peut prendre en main la synthèse des
mots écrits ou dictés. La troisième et dernière mode de fonctionnement est la commande et
contrôle des menus de cette application.

L’interface logicielle de Dictpad est représentée par la figure (Figure 4.1):

40
Figure 4.1: Interface de Dictpad

b. Manuel utilisateur

La description de la barre de tâche est décrit par la figure ici-bas (Figure 4.2)

Figure 4.2: Description de la barre de tache

1- Activer la dictée vocale : Dans cette option seule la mode dictée est active et la fenêtre
principale ne reçoit aucune commande et contrôle vocale de la barre de menu.
2- Activer la commande et contrôle de la barre de menus
3- Activer la synthèse vocale (lecture des mots dictés).

41
4- Activer l’entrée audio (microphone)

Description de la barre de menu

✓ Fichier

Figure 4.3: Menu Fichier

- Nouveau : Cree un nouveau document car l’ouverture des plusieurs documents en même
temps n’est pas autorisée. Le document précèdent doit être sauver ou fermer avant d’aborder
un autre document.

- Ouvrir : Sert à ouvrir un document texte dans un emplacement quelconque.

- Sauvegarder : Permet de sauver un document existant et qu’on a apporté un changement.

- Sauvegarder sous : Sauvegarde un nouveau document Dictpad qu’on vient de dicter.

- Quitter : Sert à fermer l’application.

✓ Edition

Le menu Edition permet l’édition du document en cours comme le copier-coller. Ce


menu a aussi une option de commande/contrôle vocale.

42
Figure 4.4: Menu Edition

✓ Voix (Figure 4.5)


Elle sert à contrôler la mode de fonctionnement de Dictpad.

- Dictée : Ce sous-menu permet d’activer la mode dictée vocale de ce logiciel.

- Commandes : Sert à activer/désactiver la Commande/Contrôle de la barre de menu.

-Activer micro : Permet de commencer l’entrée audio de l’application.

- Playback : Ce sous-menu sert à activer la synthèse vocale des mots en cours

-Réglage Microphone : Cette option va tester le micro à utiliser si le périphérique fonctionne


normalement.

43
Figure 4.5: Menu Voix

c. Mode de fonction de Dictpad

Par défaut, Dictpad est en mode dictée et le microphone est à l’état off. Pour
commencer la reconnaissance vocale il faut appuyer sur la barre de tache micro ou :
Voix>Activer Micro.

Pour activer la fonction de synthèse vocale de Dictpad, cocher Voix>Playback ou


cliquer sur la barre de tâche Play

La fonction commande et contrôle est actif en cochant Voix>Commandes de la barre


de menu ou enfoncer juste la barre de tâche Commande.

Quelques exemples de commande des menus existants en malagasy qu’on a intégré dans cette
application :

- Nouveau par la commande vocale « Vaovao »


- Ouvrir par la commande vocale « Sokafy »
- Enregistrer par la commande vocale « Sorato »
- Quitter par la commande vocale « Hidio »

44
d. Programmation

Ce logiciel a été écrit en langage C++ avec l’API Windows ainsi que le SAPI de
Microsoft SDK. Il est bon à savoir qu’on ait emprunté le moteur vocal de Microsoft pour la
dictée vocale.

Pour activer la commande vocale des menus, on a crée une grammaire (*.XML) qui va
être compilé par un compilateur gc.exe de SAPI SDK 5.1. La structure de la grammaire
utilisée en Speech SDK de Microsoft est décrite comme l’exemple qui suit:

<GRAMMAR>

<DEFINE>

<ID NAME="TheNumberFive" VAL="5"/>

</DEFINE>

<! -- Note that the ID takes a number, which is actually "5" -->

<RULE ID="TheNumberFive" TOPLEVEL="ACTIVE">

<P>five</P>

</RULE>

</GRAMMAR>

Le fichier *.XML compilé donne ensuite un fichier binaire *.cfg. La notion de grammaire est
importante avant de développer une application intégrant une fonction de synthèse ou de
reconnaissance vocale avec Speech SDK de Microsoft.

45
CONCLUSION
Le traitement numérique de la parole permet de d’obtenir des résultats encore plus
performants dans le monde de l’informatique. La reconnaissance vocale a une place
importante dans la communication homme-machine et elles ont été mises au point pour
faciliter la vie.

Dictpad est une application sous Windows de la reconnaissance vocale, elle a été
conçue pour démontrer notre tache et il existe une possibilité de leur ajouter d’autres
fonctionnements. Grâce à Microsoft Speech SDK, le développement des applications incluant
les systèmes de synthèse et de reconnaissance vocale dévient abordable pour tout les
développeurs que ce soit en Visual basic, C/C++, C# CSharp dans l’environnement Windows.

Aujourd’hui, le progrès de la technologie est un phénomène irréversible. Cependant


pour la reconnaissance vocale, la reconnaissance de mots isolés comme la commande vocale a
un succès proche de 100% mais la reconnaissance de paroles continues reste à faible
rendement à cause des contraintes imposées par le signal ainsi que l’environnement.

46
ANNEXE A : Le Modèle de Markov Caché (HMM)

Les modèles de Markov Caché (HMM) est « un modèle statistique » dans lequel le
système modélisé est supposé être un processus markovien de paramètres inconnus. Les
modèles de Markov sont des automates probabilistes à états finis et se basent sur la théorie de
Markov qui peut se résumer comme « Le futur ne dépend que de l’état présent ».
L’intégration d’un module d’alignement temporel (pattern matching) transformant les
hypothèses locales en une décision plus globales se fait souvent avec les HMM.

Formalisme
Un modèle HMM (Hidden Markov Model) est un quadriplet { S, Π, A, B} des
ensembles décrits comme suit :

➢ Si l’état i ;
➢ Πi la probabilité que Si soit l'état initial ;
➢ Aij la probabilité de la transition Si→Sj;
➢ Bij la probabilité d'émettre le symbole k étant dans l'état Si ;

Avec les conditions :

-∑𝑖 Πi=1 , la somme des probabilités des états initiaux est égale à 1 ;

-∀ 𝑖, ∑𝑗 𝑎𝑖𝑗 = 1, la somme des probabilités des transitions partant d'un état est égale à 1 ;

-∀ 𝑖, ∑𝑗 𝑏𝑖 (𝑘) = 1, la somme des probabilités des émissions partant d'un état est égale à 1.

47
ANNEXE B : Algorithme DTW

Notion de l’algorithme DTW


Pour que l'algorithme de reconnaissance de la parole puisse être mieux adapté, il est
nécessaire d'avoir un outil qui puisse tenir compte des compressions et extensions temporelles
qui sont observés lors de la prononciation plus ou moins rapide au sein d'un mot. C'est
l'algorithme DTW qui tient compte de ce phénomène. Le principe est de trouver le chemin
plus court à parcourir parmi l'ensemble des distances entre vecteurs. [11]

Soit Yk les vecteurs références, on considèrera donc une matrice D de dimension


(N×J(k)) (Ou N et J(k) sont respectivement le nombre de vecteurs dans la séquence de test et
de référence). a chaque entrée (n, j) de cette matrice on y associe la distance D(X, Yk) entre la
séquence de test X et la séquence de référence Yk, il suffit alors de rechercher le chemin dans
cette matrice D de façon à minimiser la somme des distances locales rencontrées pour aller
d'un point initial (1,1), correspondant au début des deux séquences, à un point final (N,J(k)),
correspondant à la fin des deux séquences. La mise en œuvre de cet algorithme se fait alors de
façon simple.

En vertu du principe de programmation dynamique, on peut alors facilement montrer


que cette distance peut se calculer en utilisant la récurrence suivante :

D (n, j) = d (n, j) + minp (n, j) {D (p (n, j))

Avec : p (n, j) : ensemble des prédécesseurs possibles de l'élément (n, j),

D (n, j) : distance globale

d (n, j) : distance locale

La figure (Figure B.1) ci-contre montre le chemin parcouru entre deux vecteurs de longueur
différente :

48
Figure B.1: Chemin parcouru entre deux vecteurs de longueur différente [12]

Les prédécesseurs sont choisis afin d'obtenir une trajectoire monotone et plausible.
Celle-ci doit rester le plus possible près de la diagonale. Un choix de prédécesseur possible est
par exemple celui illustré à la figure (Figure B.2). D'autres choix sont possibles mais celui-ci
est le plus simple. On peut également associer des pénalités aux prédécesseurs moins
probables afin de favoriser le meilleur chemin.

Figure B.2: Choix de prédécesseur

n : indice temporel de la fenêtre de test

j : indice temporel de la fenêtre de référence

49
ANNEXE C: SAPI avec Windows
C.1 Les bases de la programmation sous Windows

a. Introduction

La programmation sous Windows nécessite l’utilisation des fonctions propres à

Windows connues communément sous le nom de « API Windows » ou « Win32 API ».

b. Hello, World !

Ce programme affiche la boîte de dialogue de la figure (Figure C.1)

Figure C.1: Boite de dialogue « Hello, World »

La fonction MessageBox sert généralement à afficher un petit message à l'utilisateur


comme pour l'informer du succès ou de l'échec d'une opération par exemple ou pour
demander une action à effectuer lorsque le programme ne peut prendre de décision tout seul.

50
Paramètres

➢ hWnd : handle d'une fenêtre à laquelle la boîte de dialogue se rapporte ou tout


simplement NULL si on ne veut lui associer aucune fenêtre.
➢ lpText : le texte à afficher
➢ lpCaption : le titre de la boîte de dialogue
➢ uType : type de la boîte de dialogue

Un handle est un numéro qui identifie de manière unique un objet quelconque.

c. La fonction WinMain

Le point d’entrée d’une application Windows est la fonction WinMain définie par :

Le mot-clé WINAPI indique que l’application ne peut être lancée que dans un
environnement Windows.

Paramètres

➢ hInstance : handle de l'instance de l'application


➢ hPrevInstance : handle de l'instance précédente. Vaut toujours NULL. Ce paramètre
fut utilisé dans les premières versions de Windows et est uniquement gardé pour des
raisons de compatibilité.
➢ lpCmdLine : pointeur les arguments de la ligne de commande de l'application.

Pour obtenir la ligne de commande dans son intégralité, utilisez la fonction


GetCommandLine. Cette fonction ne nécessite aucun argument et retourne un pointeur sur la
ligne de commande toute entière nCmdShow : indique comment l'utilisateur désire t-il que la
fenêtre principale soit affichée : avec sa taille normale, agrandie ou réduite ? Rien n'oblige
cependant le programme à considérer ce choix. La fonction doit retourner le code d’erreur de
l’application.

51
C.2 Les fenêtres

a. Introduction

Les étapes à suivre pour créer une fenêtre sont les suivantes :

Enregistrer une classe (ou modèle) de fenêtre

➢ Créer une fenêtre (... à partir d'un modèle existant)


➢ L'afficher (en effet, la fenêtre est initialement invisible)
➢ Intercepter tous les messages (souris, clavier, etc.) puis les passer à la procédure de
fenêtre.

Une procédure de fenêtre est une fonction chargée de traiter les messages reçus.

b. Les messages

Les moyens de communication principaux dont Windows et les programmes écrits


pour Windows disposent sont les messages. Quand une opération ou action se produit,
Windows répond à cette opération ou action en envoyant un message, soit à lui-même, soit à
une autre application.

Les messages sont placés dans une file appelée queue des messages et sont traités les
uns après les autres en fonction de leur arrivée dans la file.

Par exemple, quand l’utilisateur utilise la souris dans la fenêtre d’un programme,

Windows intercepte cette action et envoie un message à l’application lui notifiant l’usage de
la souris dans telle fenêtre du programme et à quel endroit.

Ensuite l’application commence son traitement en fonction du message ou l’ignore si


le message n’a pas d’importance.

52
C.3 SAPI (Speech Application Programming Interface)
Le SAPI API réduit de façon spectaculaire le code de programmation des applications
utilisant la synthèse ou la reconnaissance vocale. Il rend la technologie de la parole plus
accessible et robuste pour une large gamme d’applications.

a. Vue d’ensemble

Le SAPI API propose une interface de haut niveau entre une application et les moteurs
vocaux. SAPI implémente toutes les minimes détailles utilisées pour contrôler et gérer les
opérations en temps réel des différents moteurs vocaux.

Les deux types essentiels de moteurs vocaux SAPI sont les systèmes des synthèses
(TTS : text-to-speech) ainsi que les reconnaissances vocaux. Les systèmes TTS font une
synthèse vocale à partir du texte tandis que les systèmes de reconnaissance vocale traduisent
une voix humaine en texte ou fichier exploitable par la machine.

Figure C.2: Vue d’ensemble de SAPI API

b. API pour Text-to-Speech

Une application peut contrôler la synthèse vocale TTS en utilisant l’interface


ISpVoice Component Model Object (COM). Une fois qu’une application a crée un objet
ISpVoice, l’application a besoin d’appeler ISpVoice : Speak pour générer une sortie audio à
partir d’une donnée textuelle. De plus l’interface ISpVoice supporte plusieurs méthodes pour
changer la voix ainsi que les propriétés de synthèse qui peuvent être la mode d’élocution
(vitesse) ISpVoice :: SetRate, le volume sonore ISpVoice :: SetVolume et le changement de
la voix courante ISpVoice :: SetVoice.

53
La méthode ISpVoice :: Speak peut opérer en mode synchrone ou en mode
asynchrone.

i) Evénements

SAPI communique avec les applications en envoyant des évènements utilisant les
mécanismes de retour standards (fenêtre de message, procédure de retour ou des évènements
Win32). Il existe plusieurs méthodes de gestion des évènements que les applications peuvent
s’initialiser : ISpNotifySource, ISpNotifySink, ISpNotifyTranslator, ISpEventSink,
ISpEventSource, et ISpNotifyCallback.

ii) Lexiques

Les applications peut supporter des prononciations personnalisés des moteurs de


synthèses vocales en utilisant les méthodes proposés par : ISpContainerLexicon, ISpLexicon
et ISpPhoneConverter.

iii) Interface Audio

Finalement, il existe une interface pour personnaliser les sorties audio du synthétiseur
pour le destination spéciale qui peut être un téléphone ou un autre périphérique avec les
méthodes : ISpAudio, ISpMMSysAudio, ISpStream, ISpStreamFormat,
ISpStreamFormatConverter.

iv) Exemple de code de synthèse vocale

54
c. API pour la reconnaissance vocale

La principale interface pour la reconnaissance vocale est ISpRecoContext. Il existe


deux choix de moteurs de reconnaissance vocale (ISpRecognizer) que les applications
peuvent choisir :

➢ Le moteur de reconnaissance partagé (qui peut être utilisé pour toutes les applications.
➢ Le moteur de reconnaissance non-partageable (dédié pour une seule application).

Le premier est le plus conseillé pour des applications basées sur la reconnaissance de
la parole. Le second est utile pour une grande application de utilisant la reconnaissance
vocale.

i) Exemple d’un code de reconnaissance (repetiteur)

#include <windows.h>

#include <sapi.h>

#include <stdio.h>

#include <string.h>

#include <atlbase.h>

#include "sphelper.h"

inline HRESULT BlockForResult(ISpRecoContext * pRecoCtxt, ISpRecoResult ** ppResult)

{
HRESULT hr = S_OK;
CSpEvent event;

while (SUCCEEDED(hr) &&


SUCCEEDED(hr = event.GetFrom(pRecoCtxt)) &&
hr == S_FALSE)
{
hr = pRecoCtxt->WaitForNotifyEvent(INFINITE);
}

*ppResult = event.RecoResult();
if (*ppResult)
{
(*ppResult)->AddRef();
}

return hr;
}

const WCHAR * StopWord()


{
const WCHAR * pchStop;

55
LANGID LangId = ::SpGetUserDefaultUILanguage();

switch (LangId)
{
case MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT):
pchStop =
L"\x7d42\x4e86\\\x30b7\x30e5\x30fc\x30ea\x30e7\x30fc/\x3057\x3085\x3046\x308a\x3087\
x3046";;
break;

default:
pchStop = L"Stop";
break;
}

return pchStop;
}

int main(int argc, char* argv[])


{
HRESULT hr = E_FAIL;
bool fUseTTS = true; // turn TTS play back on or off
bool fReplay = true; // turn Audio replay on or off

// Process optional arguments


if (argc > 1)
{
int i;

for (i = 1; i < argc; i++)


{
if (_stricmp(argv[i], "-noTTS") == 0)
{
fUseTTS = false;
continue;
}
if (_stricmp(argv[i], "-noReplay") == 0)
{
fReplay = false;
continue;
}
printf ("Usage: %s [-noTTS] [-noReplay] \n", argv[0]);
return hr;
}
}

if (SUCCEEDED(hr = ::CoInitialize(NULL)))
{
{
CComPtr<ISpRecoContext> cpRecoCtxt;
CComPtr<ISpRecoGrammar> cpGrammar;
CComPtr<ISpVoice> cpVoice;
hr = cpRecoCtxt.CoCreateInstance(CLSID_SpSharedRecoContext);
if(SUCCEEDED(hr))
{
hr = cpRecoCtxt->GetVoice(&cpVoice);
}

if (cpRecoCtxt && cpVoice &&

56
SUCCEEDED(hr = cpRecoCtxt->SetNotifyWin32Event()) &&
SUCCEEDED(hr = cpRecoCtxt->SetInterest(SPFEI(SPEI_RECOGNITION),
SPFEI(SPEI_RECOGNITION))) &&
SUCCEEDED(hr = cpRecoCtxt->SetAudioOptions(SPAO_RETAIN_AUDIO,
NULL, NULL)) &&
SUCCEEDED(hr = cpRecoCtxt->CreateGrammar(0, &cpGrammar)) &&
SUCCEEDED(hr = cpGrammar->LoadDictation(NULL, SPLO_STATIC)) &&
SUCCEEDED(hr = cpGrammar->SetDictationState(SPRS_ACTIVE)))
{
USES_CONVERSION;

const WCHAR * const pchStop = StopWord();


CComPtr<ISpRecoResult> cpResult;

printf( "I will repeat everything you say.\nSay \"%s\" to exit.\n", W2A(pchStop) );

while (SUCCEEDED(hr = BlockForResult(cpRecoCtxt, &cpResult)))


{
cpGrammar->SetDictationState( SPRS_INACTIVE );

CSpDynamicString dstrText;

if (SUCCEEDED(cpResult->GetText(SP_GETWHOLEPHRASE,
SP_GETWHOLEPHRASE,
TRUE, &dstrText, NULL)))
{
printf("I heard: %s\n", W2A(dstrText));

if (fUseTTS)
{
cpVoice->Speak( L"I heard", SPF_ASYNC, NULL);
cpVoice->Speak( dstrText, SPF_ASYNC, NULL );
}

if (fReplay)
{
if (fUseTTS)
cpVoice->Speak( L"when you said", SPF_ASYNC, NULL);
else
printf ("\twhen you said...\n");
cpResult->SpeakAudio(NULL, 0, NULL, NULL);
}

cpResult.Release();
}
if (_wcsicmp(dstrText, pchStop) == 0)
{
break;
}

cpGrammar->SetDictationState( SPRS_ACTIVE );
}
}
}
::CoUninitialize();
}
return hr;

57
d. Microsoft Speech SDK

Microsoft SDK (Software Development Kit) est un outil de développement incluant le


moteur de reconnaissance sreng.dll, la librairie de reconnaissance et de synthèse vocale
sapi.dll, les fichiers d’en-tête des codes de reconnaissance. Ce kit de développement est
indispensable pour toute application utilisant la synthèse et reconnaissance vocale sous
Windows.

58
ANNEXE D : L’alphabet phonétique international (IPA)

L’alphabet phonétique international (IPA) associe des symboles phonétiques aux sons,
de façon à permettre l’écriture compacte et universelle des prononciations (voir Tableau D.1)

Tableau D.1: Les symboles de l’IPA utilisé en français [3]

59
REFERENCES
[1] E341, Théorie du signal, Département Electronique, ESPA, 2007

[2] Logique combinatoire (2eme Année), Département Electronique, ESPA, 2006

[3] http://tcts.fpms.ac.be/cours/1005-07-08/speech/parole.pdf

[4] http://parole.loria.fr/livreParole/fichiers/Tutoriel_RAP.PDF

[5] ftp://ftp.irisa.fr/techreports/these/2008/lolive.pdf

[6] http://www.eisti.fr

[7] http://www.dsic.upv.es/~jorallo/escrits/Memoire

[8] E531 « Traitement Numérique du Signal », Département Electronique, ESPA, 2009

[9] http://www.fr.wikipedia.org/wiki/Reconnaissance_vocale

[10] http://tcts.fpms.ac.be/publications/papers/2002/cfa2002_tdlcfmvpcr.pdf

[11] Techniques de l’ingénieur, traité pratique informatique, vol. H1 940)

[12] http://www.tcts.fpms.ac.be/cours/1005-07-08/speech/.../index.html

[13] http://www.pdfqueen.com/pdf/re/reconaisssance-vocale/

60
Auteur : MARIPO Tsivery Tanjona

Titre : « Traitement du signal et la reconnaissance de la parole »

Nombre des pages : 60

Nombre des figures : 34

Nombres des tableaux : 3

L’évolution de la technologie d’acquisition et de traitement de signal ne cesse pas de


d’améliorer grâce à la sortie des ordinateurs de plus en plus puissants. Actuellement, la
communication homme-machine prit une place importante dans le monde de l’informatique.
Malgré la difficulté du traitement du signal de la parole, les recherches scientifiques ont pu
surpasser les obstacles. Dans le présent rapport, nous avons fait une étude sur le traitement,
l’analyse et la reconnaissance de la parole. Nous avons par la suite montré à partir d’une mini
application nommé « Dictpad», l’application de la reconnaissance de la parole dans un
ordinateur sous Windows. Ce logiciel est écrit en langage C++ et développées avec l’outil de
programmation Visual C++ 6.0 de Microsoft.

Mots clés : traitement, signal, parole, reconnaissance, vocale

Rapporteur : ANDRIAMANANTSOA Guy Danielson

Adresse de l’auteur : Lot 024 Bis AF/3602 Edena Ankofafa (301) FIANARANTSOA [e-
mail :[email protected]]

61

Vous aimerez peut-être aussi