Reconnaissance vocale

Transcription

Reconnaissance vocale
Reconnaissance vocale
maria barbi, thierry fouchet (18 décembre 2006)
Introduction. Le principe de fonctionnement de la
reconnaissance vocale
L’objectif de ce projet est de se familiariser avec des techniques de reconnaissance
vocale (des mots et des locuteurs). On part de la situation où un signal de parole
est enregistré et numérisé à l’aide d’un convertisseur analogique-numérique.
On est amené à procéder en deux étapes. D’abord, définir une description du
signal de parole (un mot prononcé), que l’on utilise ensuite pour obtenir une mesure
de ressemblance/dissemblance entre les mots. C’est avec cette mesure qui s’apparente à une distance que l’on pourra reconnaitre des mots ou discriminer des locuteurs. La difficulté principale est de trouver une description adaptée (une “signature
caractéristique”) pour que la distance associée soit bien discriminante.
Il existe de nombreuses méthodes de représentation des signaux de paroles : voir
par exemple “Techniques de l’ingénieur” vol. H1 940 p. 4 et 5 ; “Reconnaissance
automatique de la parole” (J.-P. Haton, J.-M. Pierrel, G. Perennou, J. Caelen, J.-L.
Gauvain) p. 26 à 32 ; Science et Vie Micro n˚128 p. 222.
Elles s’appuient généralement sur l’analyse spectrale de Fourier (la transformée
de Fourier, la FFT). L’idée est d’isoler les fréquences principales qui composent le
signal (les pics apparaissant dans le module carré de la transformée de Fourier du
signal pris dans son intégralité ou spectre), et qui sont caractéristiques d’un phonème
(les fréquences caractéristiques d’un “a” ne sont pas identiques à celles d’un “o”)
ou d’un locuteur (le chant d’une soprane est plus aigu — fréquences plus élevées —
que celui d’un baryton).
Bien que cette idée soit juste dans son principe, l’analyse de Fourier appliquée
telle quelle n’est pas une bonne description du signal de parole. La raison est que
lorsque l’on détecte un pic dans le spectre du signal, on a perdu une information importante : on ne sait pas quand la fréquence détectée a été émise (ou prononcée). C’est un problème car on voit lors de l’analyse de Fourier d’un mot, les pics
fréquentiels associés à tous les phonèmes du mot se superposer. Par exemple et en
simplifiant, le mot “limité” devient donc indistinguable du mot “milité”. Ceci traduit le fait que l’analyse de Fourier est adaptée aux situations stationnaires (quand
les fréquences caractéristiques sont éternelles, n’ont pas de début ni de fin) tandis
que le signal de parole est par essence non-stationnaire (à cause de la courte durée
des phonèmes, des pauses, etc.).
Pour prendre en compte ce caractère non-stationnaire, une solution consiste à
conserver le principe de l’analyse de Fourier mais en le modifiant pour lui ajouter
une dimension temporelle. L’idée est de découper le signal en tranches successives
et à calculer dans chacune d’elles la transformée de Fourier. On dit alors que l’on
calcule la transformée de Fourier à court-terme et on appelle son module carré, le
spectrogramme (on dit aussi “sonagramme”).
Le spectrogramme est donc une fonction de deux variables : le temps (par
convention c’est l’instant marquant le centre de la tranche où on fait l’analyse)
et la fréquence (suite à l’analyse de Fourier dans la tranche). On représente ainsi
le spectre évoluant dans le temps. Autrement dit, on fait une analyse conjointe
temps-fréquence du signal.
Le spectrogramme est une description satisfaisante du signal de parole (il est
utilisé en pratique dans un grand nombre d’applications liées au traitement de la
parole). On se propose de l’utiliser, l’étudier et le mettre en pratique dans ce projet.
projet
On dispose d’une série d’enregistrements numériques de différents mots (ces
fichiers, d’extension .wav, peuvent être chargés grâce à la fonction loadwave de
scilab). Le but du projet est d’élaborer une méthode qui permette de faire la
reconnaissance vocale de l’ensemble de ces mots, et donc de les distinguer sur la
base d’un critère objectif.
Spectrogrammes
Lire les signaux et les visualiser en fonction du temps. Identifier ( ? ?) la durée
du signal et le pas d’échantillonnage ∆t. Calculer et analyser leur transformée de
Fourier. Identifier la fréquence d’échantillonnage fe et la résolution en fréquence
∆f .
Pour obtenir les spectrogrammes, calculer les tranformées de Fourier par pas de
240·∆t, et les tracer dans un graphe en trois dimensions. taille de la tranche ? ?
Expliquer.
Corrélation
On veut maintenant définir une distance mesurant la ressemblance/différence
entre deux spectrogrammes qui permettera ensuite de comparer les mots.
On note sx (t, f ) le spectrogramme du signal x où pour simplifier le temps t et
la fréquence f sont des variables continues. Programmer la distance suivante entre
les spectrogrammes de deux signaux x et y en s’inspirant du calcul de corrélation :
hsx (t, f ) · sy (t, f )i
c(x, y) = p
hsx (t, f )2 ihsy (t, f )2 i
où par définition
ZZ
hs1 (t, f )s2 (t, f )i =
s1 (t, f )s2 (t, f )df dt .
Comparer la corrélation c(x, y) entre les différents mots à l’autocorrélation c(x, x)
et c(y, y) de chaque mot. Commenter.
Comparaison
Utiliser la méthode de corrélation précédemment introduite pour comparer deux
prononciations différentes d’un même mot et conclure sur la capacité de la méthode
utilisée à reconnaı̂tre un mot quand il est prononcé par des personnes différentes.

Documents pareils