Synthèse vocale du créole
par un réseau de neurones

Bernard Filliatre, Robert Racca

Université Antilles Guyane
UFR Sciences Exactes & Naturelles
Département Mathématiques & Informatique
97159 Pointe à Pitre


RÉSUMÉ. Dans cet article, nous décrivons la réalisation d'un synthétiseur de la parole en créole, utilisant un réseau de neurones pour la transcription des textes en phonèmes et une méthode de restitution des sons associés par une carte audio adaptable à un micro-ordinateur de type PC. La structure du réseau, le mode d'apprentissage et les résultats obtenus sont détaillés, ainsi que les motivations de ce travail et les perspectives futures.
ABSTRACT. In this paper we descibe the realisation of a sytem wich speaks aloud in guadeloupean creole, using a neural network technique to associate phonemes with texts, and the way to produce sounds with an audio card on a PC computer. The structure of the network, the learning algorithm and results will be detailed,as well as goals and future extentions .

MOTS CLÉS :Synthèse de la parole, réseaux de neurones, langue créole, manipulation de phonèmes.
KEY WORDS : Speech synthesis, Neural network, creole language, sounds reconstitution.

1. Les Objectifs

La réalisation d'un système informatique de synthèse de la parole, permettant de passer de la forme écrite (graphèmes) à la forme orale (phonèmes) d'un texte écrit en créole guadeloupéen répond à plusieurs motivations:
- Le créole écrit étant très peu utilisé (très rares sont les créolophones lisant le créole), l'utilisation de systèmes informatiques parlant créole (bornes interactives, interrogation de banques de données etc) doit à l'heure actuelle intégrer une réponse orale.
- L'écriture des créoles de la région caraïbe n'étant pas encore totalement fixée, (différentes écoles proposant des systèmes d'écriture différents), il nous a semblé interressant de fournir aux linguistes qui se penchent sur ces problèmes un outil de lecture de texte qui ne réalise pas d'analyse syntaxico-sémantique (qui lit sans comprendre) afin de tester les modes de représentation des phonèmes de la langue.

2. Les problèmes rencontrés et les solutions choisies

La synthèse de la parole à partir de textes écrits soulève deux sortes de problèmes: La reconnaissance des phonèmes associés aux formes écrites d'une part, la génération des sons associés aux phonèmes d'autre part :
Le passage des graphèmes aux phonèmes se fait traditionnellement en utilisant des règles de prononciation et des tables d'exeptions, ce qui conduit par exemple à des architectures de type systèmes experts. La principale difficulté consiste alors à récupérer l'expertise et à la coder. Une autre solution consiste à utiliser un réseau de neurones qui apprend à lire. Cette solution a déjà été mise en oeuvre pour la langue anglaise dans le système NETtalk de T.J. Sejnowski et C.R. Rosenberg [SEJ 86]. C'est une solution de ce type que nous avons retenue.
Pour engendrer les sons correspondant aux différents phonèmes , on peut avoir recours à une carte spécialisée de synthèse de la parole. Outre le fait que les performances de telles cartes sont limitées (pas d'intonnation, de prosodie...), Elles existent essentiellement pour l'anglais, et les phonèmes du créole étant différents de ceux de l'anglais, il n'était pas possible de les utiliser. Nous avons donc choisi d'échantillonner les différents sons du créole et d'écrire les programmes ad-hoc pour les restituer.

3. Réalisation: Le système KARINE (Kreol Automatic Reader in Neural-network Environment)

Le système se compose de deux parties juxtaposées:
A- Le réseau de neurones qui réalise la transformation d'une phrase écrite en une suite de phonèmes.
B- Le générateur de sons qui réalise la prononciation des phonèmes fournis par le réseau.
Lors de la phase d'apprentissage, seule la première partie est utilisée, le générateur de sons permettant éventuellement de contrôler les jeux d'essais. Lors de la phase d'utilisation, le traitement se fait phrase par phrase: chaque phrase est fournie au réseau, et le résultat du traitement (suite de phonèmes) est ensuite prononcé. La rapidité du traitement par le réseau est suffisante pour que cette méthode soit acceptable (1 à 2 secondes pour des phrases de 40 à 70 caractères)

3.1. Le réseau de neurones

3.1.1. Architecture du réseau

Le réseau utilisé est un réseau à 3 couches, l'apprentissage se réalisant classiquement par rétropropagation de l'erreur. De manière plus précise:
La première couche contient 93 cellules, réparties en trois blocs de 31 cellules. Nous utilisons en effet 31 caractères pour écrire les textes, les 26 lettres de l'alphabet minuscule, quelques lettres accentuées et caractères de ponctuation. Cette première couche correspondra à trois lettres successives du texte. la seconde couche contient 100 cellules (nombre déterminé empiriquement) et la troisiéme 64, correspondant aux 64 phonèmes utiles en créole.Chaque cellule d'une couche est reliée à toutes les cellules de la couche suivante par un arc pondéré.

Toutes les cellules sont identiques, et leur état est représenté par un nombre réel compris entre 0 et 1. Cet état, qui est aussi propagé sur les arcs issus de cette cellule, est déterminé par une fonction d'état. Ainsi, la cellule j prendra l'état sj défini par sj=f(i wij*si) où wij représente le poids sur la connexion reliant la cellule i à la cellule j, si représente l'état de la cellule i de la couche précédente, f étant la fonction afine par morceaux définie par:

f(x)=0.05 si x<-3, f(x)=0.95 si x3, f(x)=0.024 x +0.121 si -3x<-0.9

f(x)=0.444 x+0.5 si -0.9x<0.9, f(x)=0.024 x +0.879 si 0.9x<3
( cette fonction est une approximation de la fonction sigmoïde, variante de la fonction proposée par G.A. Korn [KOR 92], et se calcule plus rapidement que l'habituelle sigmoïde . Dans la suite, on notera ei = i wi,j * si l'argument de la fonction f.

Click here for Picture

Figure 1. Description d'une cellule

Click here for Picture

Le phonème associé à une lettre dépendant du contexte de cette lettre, la donnée fournie au réseau est constitué de 3 lettres, la lettre à traiter, sa précedente et sa suivante. Chacune active une cellule d'un des 3 blocs de 31 cellules (En créole, une suite de trois lettres suffit à déterminer le phonème associé à la lettre centrale).

Une cellule de la couche de sortie doit être active (état > 0.7) correspondant au phonème associé à la donnée.

ainsi, pour l'entrée ban la sortie souhaité est le phonème " an " :

Figure 2. Architecture du réseau

3.1.2. l'apprentissage

Il est réalisé en présentant au réseau une suite de triplets de lettres, correspondant à une suite de phonèmes. Par exemple, pour la phrase " ka ou fè? " qui signifie " comment ça va? ", on présente la suite :

#ka, ka#,a#o,#ou,ou",u#f,#fè,fè. (# représente un espace)

associée à la suite de phonèmes

k , a , u , - , ~ , f , è

( ~ représente un silence, - représente l'absence de phonème.).

A chaque présentation de triplet de lettres, les poids sur le réseau sont corrigés si la sortie ne correspond pas au phonème souhaité, et on passe au triplet suivant. Lorsqu'on a traité le dernier triplet, on recommence (les corrections n'ayant vraissemblablement pas permis de corriger toutes les erreurs). L'apprentissage prend fin lorsque tous les triplets sont reconnus, c'est à dire qu'ils activent la cellule de sortie correpondant au phonème souhaité, toutes les autres cellules de la couche de sortie étant inactives..

La méthode de correction des poids est celle, classique , de la rétropropagation de l'erreur [RUM 88]. Le poids de la liaison entre les cellules i et j , Wi,j étant corrigé de la valeur Wi,j= k erri sj où erri représente l'erreur sur l'état du neurone i, k étant fixé par l'expérience (ici k=1.5). Pour les neurones de la dernière couche, erri= ( ri - si ) . f'(ei) où ri est la valeur souhaitée pour le neurone i, si la valeur calculée, ei l'entrée du neurone i.

Pour les neurones de la couche intermédiaire, l'erreur se calcule à partir des erreurs sur la troisième couche par la formule erri=(k errk . wk,i ) . f'(ei) sachant que errk est l'erreur précédemment calculée pour le neurone k. [JOD94]

Plusieurs stratégies d'apprentissage ont été testées:

1-Apprentissage progressif: on apprend à prononcer une phrase, puis on ajoute une autre phrase et on recommence l'apprentissage, et ainsi de suite.

2- Apprentissage global: on donne directement toutes les phrases et on apprend en parcourant à chaque étape l'ensemble des phrases.

3- Constitutiuon d'un corpus d'apprentissage, en sélectionnant dans un ensemble de phrases les différents triplets, sans répétition. Ces triplets peuvent ensuite être présentés dans l'ordre d'apparition dans les phrases ou dans un ordre aléatoire, variable à chaque étape.

Parmi ces méthodes, la plus rapide est la dernière, en présentant toujours les triplets dans le même ordre.

3.1.3. l'utilisation du réseau en lecture

Se fait de la manière suivante: Une fenêtre de trois lettres glisse de l'origine à la fin du texte, et chaque triplet dans la fenêtre est fourni en entrée au réseau. On examine la couche de sortie. Si une seule cellule est active, elle est considérée comme le phonème associé au triplet. Si plusieurs cellules sont actives, on garde celle dont l'activité est maximum. Si aucune cellule n'est active, aucun phonème n'est associé au triplet, on note [[Phi]] ce résultat.

Ainsi, pour la phrase ka ou fè , ti mal ? (comment ça va, mon vieux?) on obtient la suite: {k,a,u,[[Phi]],~,f,è,~,t,i,~,m,a,l}.

3.2. Description du générateur de sons

Le matériel utilisé est une carte audio adaptable sur un micro-ordinateur PC 486 (Sound Blaster Pro) . Cette carte permet d'échantillonner des sons, de les stocker sous cette forme et de restituer les sons échantillonnés. S'il est possible d'echantillonner des phonèmes, il n'est par contre pas possible de les concaténer pour obtenir des sons corrects:

Si on découpe le son 'ba' en 2 phonèmes 'b' et 'a', on peut en les recollant réobtenir 'ba'. Mais si on fait de même pour le son 'mi', lorsqu'on recolle 'b' et 'i' on obtient le son `pi'. En effet, les phonèmes interagissent sur leurs voisins, et le 'b' de 'ba' est influencé par le 'a' et réciproquement. (phénomène de coarticulation) [CAL 89].

Pour lever cette difficulté, nous avons choisi d'échantillonner des " diphones " (couples de demi-phonèmes) et de les recoller selon la technique des " dominos ":

Ainsi, pour le son '~kaou~', on échantillonne en découpant au milieu de 'k', puis au milieu de 'a' , etc et on obtient les diphones '$~[[sterling]]k', '$k[[sterling]]a','$a[[sterling]]u','$u[[sterling]]~' où $ signifie 'fin de' et [[sterling]] 'début de'.

Click here for Picture

Figure 3. Echantillonnage

Si on fait de même pour 'mado', on peut fabriquer proprement '~kado~' en concaténant les " diphones ":

'$~[[sterling]]k' + '$k[[sterling]]a' + '$a[[sterling]]d' + '$d[[sterling]]o' + '$o[[sterling]]~' .

Ceci augmente considérablement le nombre d'échantillons, qui passe de 64 pour les phonèmes à environ 2500 pour les diphones (parmi le 4096 diphones théoriquement possibles), mais assure une bonne écoute du résultat. Il faudra plusieurs semaines pour échantillonner ces milliers de " diphones " et enviro 2Mo pour les stocker.

4. Résultats obtenus

4.1. Apprentissage

L'apprentissage du réseau a été effectué sur une liste de couples (triplets,phonème) constituée à partir de textes extraits de la méthode d'apprentissage du créole Assimil. Actuellement, l'apprentissage est réalisé pour un millier de triplets. le temps d'apprentissage, sur un micro-ordinateur PC 486 est de l'ordre de 2 heures , ce qui laisse supposer que l'apprentissage sur un corpus plus important est possible dans un temps raisonnable.

Voici la coube des temps d'apprentissage en fonction du nombre de triplest d'entrée:

phrases triplets Nouveaux temps
triplets

3 60 60 216'
4 80 20 272'
5 96 16 317'
14 234 138 766'
37 507 273 2514'

figure 2. Temps d'apprentissage

Avec ce corpus, nous avons testé les capacités du réseau sur un texte comprenant 500 triplets inconnus. Le réseau associe la bonne réponse dans 75% des cas, ce qui prouve les bonnes capacités de généralisation d'une telle solution et permet de ne pas exiger l'apprentissage sur un corpus complet.

D'autre part, si on trace la courbe du nombre de triplets inconnus en fonction du nombre de lettres d'un texte nouveau (extrait d'un ouvrage en créole, et non constitué pour l'expérience), on constate que le pourcentage de triplets inconnus va décroissant, ce qui signifie que le nombre de triplets nouveaux à apprendre est limité; On peut l'estimer, par extrapolation à environ 1500.

4.2. La réponse vocale

Le nombre de diphones échantillonnés est encore restreint, cette tâche, manuelle, étant assez longue à réaliser, bien que nous ayons développé des outils logiciels pour la faciliter (affichage graphique de la courbe des échantillons, découpage à la souris et écoute des résultats avant confirmation des coupures). Nous disposons de 200 diphones et l'écoute des phrases prononcées par notre système est satisfaisant, dans la mesure où l'on comprend bien ce qui est énoncé. Même pour les phrases où certains diphones sont inconnus du générateur de sons, l'écoute est encore audible si ceux-ci sont peu nombreux et espacés. Cependant, l'absence d'intonnation et de prosodie pénalise l'écoute, surtout pour une langue très " chantante " comme le créole .

5. Améliorations et perspectives

Plusieur améliorations sont à faire et nous travaillons actuellement à:
- augmenter le corpus d'apprentissage.
- augmenter le nombre de diphones échantillonnés
- prendre en compte l'intonnation, très pertinente en créole, et la prosodie. Ceci pourrait être fait en associant, en sortie du réseau de neuronnes, un second réseau, dont les entrées seraient les phonèmes résultats du premier, et qui associerait à un nombre (à fixer) de phonèmes, les caractéristiques précisant l'intonnation et la prosodie. L'étude est actuellement au niveau de l'analyse de ces caractéristiques et de la structure du réseau.

6. Bibliographie

[BER 76] BERNABE J. " Ecrire le créole 1ère partie: Ecriture et phonétique " mofwaz ndeg.1 p11-20
[CAL 89] CALLIOPE La parole et son traitement automatique. Masson 1989
[JOD 94] JODOUIN J.F. Réseaux neuromimétiques. Modèles et applications. Hermes 1994
[KOR 92] KORN G. Neural networks experiments on personal computers and workstation MIT Press 1992
[LUD 89] LUDWIG R. Les créoles français entre l'oral et l'écrit Gunter Narr Verlag Tubingen 1989
[RUM 88] RHUMELHART D; et al Parallel distributed processing T1 et 2 MIT Press 1988
[SEJ 86] SEJNOWSKI T. et ROSENGERG C. " NETtalk: a parallel network that learns to read aloud " JHU/EECS 86/01 32p

BIOGRAPHIE:

Bernard FILLIATRE est Professeur au département de Mathématiques et Informatique à l'Université des Antilles et de la Guyane à Pointe à Pitre. Professeur à l'Institut des Sciences de l'Ingénieur de l'Université Montpellier II jusqu'en 1991, il était spécialisé en Recherche Documentaire, Bases de Données et Sécurité des Fichiers. Reconverti depuis aux réseaux de neurones, il s'intéresse plus particulièrement à leurs techniques de programmation et à l'amélioration de leurs performances.

Robert RACCA est Maître de Conférences au département Mathématiques et Informatique de l'Université des Antilles et de la Guyane à Pointe à Pitre. Ses travaux de recherche portent sur les réseaux de neurones et leur utilisation dans le domaine de la langue ainsi que la prévision météorologique. Membre de l'ARC, il s'intéresse également aux problèmes cognitifs et participe à une recherche en psychologie expérimentale sur les conséquences de l'effort physique sur les performances cognitives de haut niveau.