Prediction Linéaire Pour le Traitement de la Parole    


De   UC Berkeley EECS Dept.

Un prédicteur linéaire utilise les observations passés du signal pour essayer de prédire le prochain échantillon du signal. La structure d'un tel filtre prédicteur est donné par le diagramme suivant

linear prediction block diagram

Le signal d'entré, x'(n) est retardé d'un échantillon par l'opérateur z-1. L'opérateur F(z) est un filtre dont la sortie y(n) est une estimée de la valeur courante de x'(n). Puisque ce bloc voit seulement une version retardée de x'(n), sa sortie est donc une prédiction (de x'(n)). e(n) est l'erreur de la prédiction (ou différence entre ce qui est prédit et la valeur réelle du signal).

Qualitativement, une prédiction linéaire exploite le fait qu'un nouveau échantillon d'un signal n'est pas (habituellement) totalement indépendant des échantillons précédents. Cette prédiction capture cette dépendance entre échantillons. Quand un prédicteur fonctionne bien, le signal d'erreur sera composé d'échantillons faiblement corrélés entre eux.

Si l'entrée du prédicteur linéaire est le signal de parole suivant, alors le signal d'erreur est qui n'est pas très intelligible. L'intelligibilté (ou l'information liée à celle-ci), est donc lié à la corrélation existante entre les différents échantillons du signal.

En fait, pour la parole, le prédicteur linéaire doit constamment changer et s'adapter à ce qui est dit. A cette fin, le signal d'entrée est divisé en segment de 20 ms (160 échantillons) et chaque segment est analysé pour fournir les coefficients d'un filtre prédicteur. Un opérateur nommée dans l'exemple ci-dessous "Burg's algorithm" utilise une des nombreuse méthode existante pour calculer les coefficients de ce filtre prédicteur tous les tranches de 20 ms.

adaptive linear prediction



On peut verifier que l'hypothèse de l'intelligibilité d'un signal de parole est lié à la corrélation existant entres les échantillons en introduisant cette corrélation dans un signal aléatoire comme du bruit blanc et filtrer ce bruit avec l'inverse du filtre d'erreur de prédiction (et en changeant les paramètres de ce filtre tout les 20ms). Le résultat sera un signal de parole qui semble être chuchoté mais qui est néanmoins intelligible. Le bloc diagramme utilisé pour créer cette parole synthétique est le suivant

linear prediction analysis synthesis

L'algorithme de Burg est utilisé pour analyser chaque bloc de 20ms de parole mais maintenant les résultats de l'analyse sont chargés dans un "filtre en treillis inverse" lequel implémente l'inverse du filtre précédent qui produit l'erreur de prédiction.

Remarquer bien que puisque le résultat est intelligible, l'information modelisant l'intelligibilité du signal de parole est presque résumé dans les résultats (ou paramètres) estimés par l'algorithme de Burg. Donc, un tel algorithme peut (et c'est souvent le cas) constitué le pre-traitement d'un dispositif qui analyse/reconnait ou qui code (ou compresse) la parole.

L'effet chuchotement du signal de parole modélisé ci dessus, bien qu'intelligible, produit néanmoins un effet indésirable. Le problème ici est que l'excitation par du bruit blanc, ne correspond pas très bien à ce que font les cordes vocales humaines. Les cordes vocales humaines, qui fournissent un signal d'excitation dans la parole naturelle, vibrent à une fréquence qui dépend de l'orateur (différente si celui-ci est un homme ou une femme) et dépend de l'inflexion donné par l'orateur. Une manière simple pour essayer de reproduire l'effet des cordes vocales est d'utiliser une excitation sinusoïdale au lieu d'un bruit blanc. Le résultat est complètement inintelligible. En fait, dans ce cas, il n'y a tout simplement pas assez de richesse spectrale dans le signal sinusoidale pour qu'un filtrage quelconque donne ensuite un signal de parole réaliste. Une autre possibilité est d'utilisé une excitation qui est plus riche spectralement, donnée, par exemple, par une séquence d'impulsions périodiques, tel que:

periodic impulse train
avec une période de 200Hz, mais évidemment pas de contenu vocal perceptible. Filtrer cette excitation avec le filtre en treillis inverse conduit à un signal intelligible, bien que le son reste un peu mécanique Augmenter la longueur des blocs à 80 échantillons permet d'obtenir des résultats avec un ton plus bas Avec une excitation impulsionnelle périodique, La parole semble très mécanique. Un résultat légèrement meilleur est possible en combinant un bruit blanc avec des impulsions périodiques. Des techniques plus sophistiquées, telles que celles utilisées aujourd'hui dans les téléphones cellulaires numériques, analysent le signal de parole pour construire des signaux d'excitations bien meilleurs.

Comme l'information d'intelligibilité est contenue dans les coefficients produit par l'algorithme de Burg, nous pouvons manipuler la vitesse de la parole en manipulant ces coefficients. Par exemple, si nous utilisons chaque ensemble de coefficients pour reconstruire 40 ms de parole plutôt que de 20 ms, le résultat est un signal de parole plus lent Noter que l'on peut obtenir un débit de parole plus lent en utilisant chaque échantillons deux fois (en recopiant chaque échantillons) mais le résultat est très différent, puisque la hauteur globale est décalé vers le bas par un facteur de deux en plus d'avoir la parole ralentie.


Nous pouvons aussi accélérer le discour prononcé en utilisant chaque ensemble de coefficients pour reconstruire 10 ms de parole plutôt que de 20 ms, le résultat est un discours rapide Notez que nous pourrions aussi obtenir un discours rapide en éliminant des échantillons, mais le résultat est très différent,


Finalement, on peut synthetisé la parole à partir d'une excitation musicale Dans ce cas, les premieres notes de Passio Domini nostri par Arvo Part, produit un résultat particulièrement intéressant


Son, graphique et texte traduit de
http://www.ptolemy.eecs.berkeley.edu/eecs20/speech/lp.html