MaripoTsiveryT ESPA ING 10
MaripoTsiveryT ESPA ING 10
MaripoTsiveryT ESPA ING 10
DEPARTEMENT ELECTRONIQUE
DIPLOME D’INGENIEUR
Spécialité : ELECTRONIQUE
Traitement du signal et LA
RECONNAISSANCE DE LA PAROLE
Spécialité : ELECTRONIQUE
Devant le Jury :
- Monsieur RAKOTOMIRAHO Soloniaina, Président du jury
a. Echantillonnage .............................................................................................................. 2
b. La Quantification............................................................................................................. 6
c. Codage ............................................................................................................................. 7
c. L’intensité .................................................................................................................. 16
a. Définition ....................................................................................................................... 20
d. Programmation .............................................................................................................. 45
CONCLUSION ................................................................................................................... 46
Formalisme ........................................................................................................................... 47
a. Introduction .................................................................................................................. 50
a. Introduction .................................................................................................................. 52
REFERENCES ....................................................................................................................... 60
LISTE DES FIGURES
Figure 1.1 : Signal avant et après l’échantillonnage ................................................................... 2
Figure 3.5: Méthode de calcul d’un FFT pour obtenir le spectrogramme .............................. 27
Figure 3.8 : Spectre obtenu par transformée rapide de Fourier (FFT) ..................................... 31
Figure B.1: Chemin parcouru entre deux vecteurs de longueur différente .................................. 49
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.
1
CHAPITRE 1 : LE TRAITEMENT DU SIGNAL
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)
Cette opération est réalisée par un échantillonneur symbolisé par un interrupteur [Figure1.1]:
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)∑+∞
−∞ 𝛿(𝑡 − 𝑛𝑇𝑒)
1
Se(f) = ∑+∞
−∞ 𝑆(𝑓) ∗ 𝛿 (f-nfe)
𝑇𝑒
1
Se(f)= 𝑇𝑒 ∑+∞
−∞ 𝑆(𝑓 − 𝑛fe)
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.
𝑡−𝑘𝑇𝑒 𝑡
y(t)=∑+∞
𝑘→ −∞ 𝑟𝑒𝑐𝑡( )=rect (𝜏)*∑+∞
𝑘→ −∞ 𝛿(𝑡 − 𝑘𝑇𝑒)
𝜏
4
1
Y(f)=τ sinC (τf).𝑇𝑒 ∑+∞
𝑘→ −∞ 𝛿(𝑓 − 𝑘𝑓e)
se (t)=s(t).y(t)
𝑡
Se (f) =S (f).Y (f) =S (f)*𝑇𝑒 ∑+∞
−∞ 𝑠𝑖𝑛𝐶(𝜏𝑓)𝛿(𝑓 −kfe)
𝜏
Se(f)=𝑇𝑒sinC (τf).∑+∞
𝑘→−∞ 𝑆(f-kfe)
iii) Echantillonnage-blocage
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 :
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. »
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
𝑆 𝑃(𝑠)
{𝑁}dB=10 log 𝑃(𝑛𝑞)
𝑆 𝑉𝑠𝑒𝑓𝑓 2
{𝑁}dB=10 log[12( ) ]
𝛥
𝑆 𝑉𝑠𝑒𝑓𝑓
{𝑁}dB=6.02n+10.8+20 log( 𝑉𝑃𝐸
)
c. Codage
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.
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é.
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
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
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)
10
Figure 1.6 : TF de x(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]
𝑘
−2𝜋𝑗𝑛
XT[k]= ∑𝑁−1
𝑛=0 𝑥 𝑇 [𝑛]. 𝑒 𝑁 pour k= [0, 1, 2,…. N-1]
12
iii) Transformée de Fourier Rapide (FFT)
Introduction
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
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)
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é.
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.
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
16
Figure 2.3 : Chaine de la communication parlée
b. La perception de la parole
➢ 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
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 )
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.
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
3.1. Introduction
a. Définition
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
21
- La variabilité due à l’environnement
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.
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.
➢ Télécommunications
➢ Informatiques industrielles
➢ 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
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.
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.
- La représentation temporelle
- La recherche d’empreinte caractéristique du son
a. Représentation temporelle
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.
(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
26
Figure 3.4 : Audiogrammes du mot « parenthèse »
ii) Spectrogramme
- Phase de préaccentuation
-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é.
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.
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.
b. Empreinte caractéristique
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.
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
+∞
𝑆(𝑓) = ∫ 𝑠(𝑡)𝑒 −𝑖2𝜋𝑓𝑡 𝑑𝑡
−∞
+∞
𝑠(𝑡) = ∫ 𝑆(𝑓)𝑒 𝑖2𝜋𝑡𝑓 𝑑𝑡
−∞
A2(f)=R2(f) +I2(f)
𝐼(𝑓)
Ф(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)
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é :
- 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).
𝑈(𝑧)
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 −𝑎𝑖 𝑥(𝑛 − 𝑖)
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.
c. Décodage acoustico-phonétique
34
i) Segmentation du signal
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.
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.
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)
37
Figure 3.14: Reconnaissance par modélisation d’unité acoustique
➢ 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
a. Présentation générale
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)
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)
✓ 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.
✓ Edition
42
Figure 4.4: Menu Edition
43
Figure 4.5: Menu Voix
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.
Quelques exemples de commande des menus existants en malagasy qu’on a intégré dans cette
application :
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>
</DEFINE>
<! -- Note that the ID takes a number, which is actually "5" -->
<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.
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 ;
-∑𝑖 Π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
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.
49
ANNEXE C: SAPI avec Windows
C.1 Les bases de la programmation sous Windows
a. Introduction
b. Hello, World !
50
Paramètres
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
51
C.2 Les fenêtres
a. Introduction
Les étapes à suivre pour créer une fenêtre sont les suivantes :
Une procédure de fenêtre est une fonction chargée de traiter les messages reçus.
b. Les messages
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.
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.
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
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.
54
c. API pour la reconnaissance vocale
➢ 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.
#include <windows.h>
#include <sapi.h>
#include <stdio.h>
#include <string.h>
#include <atlbase.h>
#include "sphelper.h"
{
HRESULT hr = S_OK;
CSpEvent event;
*ppResult = event.RecoResult();
if (*ppResult)
{
(*ppResult)->AddRef();
}
return hr;
}
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;
}
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);
}
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;
printf( "I will repeat everything you say.\nSay \"%s\" to exit.\n", W2A(pchStop) );
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
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)
59
REFERENCES
[1] E341, Théorie du signal, Département Electronique, ESPA, 2007
[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
[9] http://www.fr.wikipedia.org/wiki/Reconnaissance_vocale
[10] http://tcts.fpms.ac.be/publications/papers/2002/cfa2002_tdlcfmvpcr.pdf
[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
Adresse de l’auteur : Lot 024 Bis AF/3602 Edena Ankofafa (301) FIANARANTSOA [e-
mail :[email protected]]
61