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.