Comment ça s’écrit ? Comme ça se prononce !
Le français a une orthographe passionnante, pleine de traces de son histoire, de lettres muettes et de graphies qui ne se prononcent pas toujours comme on pourrait s’y attendre. Alors, je me suis posé une question parfaitement raisonnable : et si on réécrivait les mots comme on les prononce ?
C’est ainsi qu’est né le Dézortografinator. Son ambition est simple : prendre un texte français, retrouver sa prononciation et lui inventer une nouvelle orthographe qui la représente. Une opération d’une utilité discutable, mais qui avait l’air suffisamment amusante pour mériter un programme.
Évidemment, il y avait un petit détail : le français ne se laisse pas dézortografier si facilement.
Des lettres aux sons : le début des ennuis
À l’écrit, on manipule des graphèmes, c’est-à-dire des unités de l’orthographe, comme <ch>, <ou> ou <eau>.
À l’oral, on distingue des phonèmes, les unités sonores qui permettent notamment de différencier des mots.
Par exemple, les mots « pain » /pɛ̃/ et « bain » /bɛ̃/ forment ce qu’on appelle une paire minimale : ils ne se distinguent que par un seul phonème, /p/ ou /b/.
On pourrait commencer par fabriquer un immense tableau de correspondances et remplacer chaque suite de lettres par un son.
Ce serait pratique, jusqu’au moment où l’on rencontrerait « les poules du couvent couvent ».
Le premier « couvent » est un nom, prononcé /kuvɑ̃/, et le second est une forme du verbe couver, prononcée /kuv/.
Même orthographe, deux prononciations : pour choisir, il faut comprendre un minimum la fonction des mots dans la phrase.
Et ce n’est encore que le début.
La phonologie française a décidé de participer
Même lorsqu’on connaît la prononciation d’un mot pris isolément, celle-ci peut changer lorsqu’il entre dans une phrase. Les mots ne vivent pas chacun dans leur petite boîte : ils se rencontrent, s’influencent et compliquent la vie des personnes qui essaient de les modéliser.
La liaison : une consonne qui attend le bon moment
Dans « les chats », le <s> final de « les » ne s’entend pas.
Mais dans « les ornithorynques », le phénomène de la liaison entraîne la prononciation de /z/ juste avant « ornithorynques ».
Cette consonne n’apparaît pas au hasard : sa réalisation dépend notamment des mots concernés et de leur relation grammaticale.
Le français possède en effet des mots à h muet et des mots à h aspiré ; dans ce dernier cas, le <h> n’est généralement pas prononcé non plus, mais il empêche notamment la liaison.
Pour un programme, cela revient à gérer des consonnes qui restent en coulisses jusqu’à ce que la syntaxe (et parfois le lexique) leur donne l’autorisation d’entrer en scène. Une simple conversion mot par mot ne suffit donc pas.
Pour les liaisons, j’ai choisi une approche déterministe : le programme applique un ensemble de règles fondées sur les catégories grammaticales et les formes lexicales, plutôt que d’essayer de représenter toutes les variantes de prononciation possibles.
Il examine notamment les déterminants, les adjectifs, les pronoms, les prépositions et certaines formes verbales pour déterminer si une consonne de liaison doit être réalisée. Il tient également compte des mots qui bloquent la liaison, comme « héros ».
J’ai aussi dû prévoir quelques subtilités supplémentaires, notamment les changements de consonnes et la dénasalisation de certaines voyelles.
Parce qu’évidemment, il ne suffisait pas de faire apparaître un /z/ de temps en temps.
Cette approche produit une réalisation selon les règles retenues, sans prétendre reproduire toutes les variations possibles du français parlé.
Le schwa : présent, absent, ça dépend
Le schwa, souvent associé au fameux « e muet », est un autre excellent moyen de compliquer une tâche qui paraissait simple. Dans certaines variétés et certains styles de français, le mot « fenêtre » peut se prononcer avec ou sans la voyelle de la première syllabe. Le maintien ou la chute de cette voyelle dépend notamment du contexte phonétique, du débit, du registre de parole et de la variété de français considérée.
C’est un peu l’invité qui confirme sa présence au dernier moment. Sauf que, pour écrire un programme, il faut tout de même décider si on lui prépare une chaise.
On ne peut donc pas prétendre qu’un texte en français possède toujours une seule transcription phonémique, indépendante de la personne qui parle et de la situation.
La loi des trois consonnes
C’est ce qu’on appelle traditionnellement la loi des trois consonnes, formulée par Maurice Grammont. Le schwa joue alors un peu le rôle d’un espaceur : il vient séparer des consonnes qui ne cohabitent pas toujours très bien. Évidemment, ce serait trop simple si cette règle fonctionnait systématiquement : le débit de parole et les variations régionales viennent encore compliquer les choses.
Pour le Dézortografinator, j’ai choisi une simplification : plutôt que de modéliser toutes les contraintes susceptibles de déterminer le maintien du schwa, j’ai retenu une règle d’alternance.
Concrètement, lorsqu’une succession de schwas peut être supprimée, le programme en conserve un sur deux, aux positions impaires.
Par exemple : « je ne te le redis pas » devient [ʒə n tə l rədi pa].
Et le contexte, dans tout ça ?
L’identité grammaticale d’un mot peut modifier sa prononciation, comme dans l’exemple de « couvent ». Les mots voisins peuvent déclencher une liaison, empêcher certaines réalisations ou favoriser la chute d’un schwa. Même le découpage en mots ne suffit pas à décrire complètement le découpage de la parole en syllabes.
En pratique, dézortografier exige donc plus qu’un dictionnaire de prononciations : il faut tenir compte du contexte linguistique.
Et tout ça, ça provoque une cérébronodulation à un stade très avancé.
Et pour les mots inconnus (comme la cérébronodulation), un modèle graphème-phonème fait maison
Il restait une question : que faire quand le programme rencontre un mot qui n’est pas dans son dictionnaire ? On ne va quand même pas abandonner toute l’opération parce qu’un nom propre ou un mot peu courant a décidé de se présenter.
J’ai donc entraîné mon propre modèle de conversion graphème-phonème, ou G2P (grapheme-to-phoneme), à l’aide de Montreal Forced Aligner (MFA).
L’idée ressemble un peu à un apprentissage de la lecture par l’exemple. On présente au système des mots écrits et leurs transcriptions phonémiques ; il apprend des régularités de correspondance entre les deux. Il peut ensuite proposer une prononciation pour une forme qu’il n’a pas rencontrée dans les données utilisées pour l’entraîner.
Cependant, il s’agit d’un modèle statistique de correspondances entre graphèmes et phonèmes, et n’est donc pas exempt d’erreurs. Pour améliorer sa performance, je l’ai intégré à une chaîne qui utilise aussi des ressources lexicales, une analyse morphosyntaxique et des règles phonologiques.
Comment fonctionne le Dézortografinator ?
Pour éviter de transformer chaque phrase en catastrophe phonologique, le programme procède en plusieurs étapes.
-
Repérer le rôle des mots : une analyse morphosyntaxique examine le texte pour identifier des informations grammaticales utiles à la désambiguïsation. C’est ce qui aide, par exemple, à distinguer le nom « couvent » de la forme verbale « couvent ».
-
Chercher une prononciation connue : le programme consulte des ressources lexicales qui associent des formes écrites à leurs prononciations. Lorsque le mot est connu, cette information constitue le point de départ de la conversion.
-
Faire une proposition pour les mots inconnus : quand une forme n’est pas présente dans les ressources, le modèle de conversion graphème-phonème permet d’en estimer la prononciation.
-
Tenir compte de ce qui se passe entre les mots : enfin, des règles phonologiques contextuelles interviennent, notamment pour traiter les liaisons et les schwas. Le résultat sert alors à produire une nouvelle représentation écrite de la prononciation.
-
Éviter les ambiguïtés de lecture : une fois la prononciation déterminée et convertie en une nouvelle graphie, le programme effectue également quelques ajustements pour préserver la prononciation attendue. C’est notamment le cas des hiatus, lorsque deux voyelles successives doivent être prononcées séparément.
Cette chaîne de traitement permet de combiner des informations grammaticales, lexicales et phonologiques, au lieu de demander à un seul tableau de remplacement de résoudre tous les problèmes du français.
Bref, tout ça pour dire que j’ai consacré beaucoup trop de temps et de réflexion à concevoir une méthode inutilement sophistiquée pour massacrer l’orthographe du français.