Prétraitement du texte
La toute première opération consiste à découper le texte en paragraphes et en phrases.
La deuxième opération consiste à choisir la langue de travail en fonction d’un diagnostic de langue établi phrase par phrase. L’utilisateur peut forcer une langue donnée.
Le texte subit ensuite une opération de réécriture basée sur des dictionnaires, qui a pour but de faciliter la mise en œuvre des traitements qui suivent, notamment en ajoutant les accents manquants, en gérant les variantes orthographiques et en développant en toutes lettres les abréviations et sigles.
Le dictionnaire de réécriture interne est complété par un dictionnaire utilisateur : en effet, d’une part, le prétraitement ne peut pas être exhaustif, d’autre part, la réécriture par l’utilisateur lui permet de traiter des mots spécialisés, des mots nouveaux et surtout des noms propres oubliés.
Enfin, des balises (index de lecture) sont placées entre chaque mot typographique afin que le moteur de Kali connaisse à chaque instant le mot en cours de lecture (fonction utilisée notamment par les logiciels pour déficients visuels).
À l’issue de ce prétraitement, le texte est prêt pour l’analyse syntaxique et pragmatique.
Découpage en paragraphes et en phrases
Le paragraphe – repéré par un saut de ligne – représente une unité de traitement prosodique à considérer. Car même si le phénomène est peu perceptible, les phrases à l’intérieur d’un même paragraphe sont davantage liées entre elles que lorsque qu’un saut de paragraphe les sépare. Ainsi, la mesure des déclinaisons et des pauses de textes lus montre l’existence d’une déclinaison de paragraphe ainsi que d’une pause, qui se superposent aux déclinaisons et pauses de phrases. En oral spontané, on peut également définir une unité paragraphe, bien qu’elle ne soit pas toujours identifiable : la transcription regroupe les phrases liées entre elles et pose un saut de ligne en cas de pause longue, de reprise de souffle importante, de saut thématique ou de changement de tour de parole.
La phrase est définie ici comme un ensemble maximal de tronçons en relation de dépendance syntaxique. En pratique, les séparateurs de phrases sont : “.” ” ;” ” :” ” !” ” ?” “…” toujours suivis d’un espace ou d’une fin de paragraphe, ainsi que la fin de paragraphe seule (titre par exemple) que nous notons “¶”.
Certes, des dépendances syntaxiques peuvent sembler traverser ces frontières : une phrase peut commencer par un connecteur par exemple. Mais il s’agit plutôt d’une progression textuelle que d’une vraie dépendance syntaxique. Dans ce cas, une reprise de ce qui précède est implicite. Exemple :
Je n’ai pas conservé cet argent, je l’ai donné. (je l’ai donné) À une association.
Perceptivement, la prosodie est bien celle de deux phrases distinctes.
Diagnostic de langue
Ce diagnostic s’appuie sur un dictionnaire pour chaque langue. Le dictionnaire contient dans l’idéal tous les mots de la langue dans toutes leurs formes. On trouve aujourd’hui assez facilement ce type de ressources en libre accès. Le poids du traitement reste très léger : la recherche d’un mot dans un dictionnaire d’environ 200000 mots est extrêmement rapide (de l’ordre de la microseconde) et de progression logarithmique avec la taille du dictionnaire, qu’il s’agisse d’une méthode par dichotomie ou par arborescence.
Le principe est simple : pour chaque phrase à diagnostiquer, pour chaque langue, on compte le nombre de mots de la phrase présents dans le dictionnaire correspondant. Le bilan le plus fort l’emporte. En cas d’égalité, la langue ne change pas. Les noms propres sont ignorés car ils peuvent être rencontrés dans les autres langues mais ne sont pas forcément présents dans tous les dictionnaires. Les homographes inter-langues ne posent pas de problème : la méthode utilisée les ignore puisqu’ils obtiennent le même score.
Les cas d’erreurs sont rares et réparables. Il s’agit généralement d’homographes oubliés dans l’un des dictionnaires, faussant le diagnostic sur des phrases très courtes. D’où l’utilité de dictionnaires assez exhaustifs. Ceci dit, si l’utilisateur est certain d’avoir affaire à une langue donnée, il peut en forcer le choix grâce à un réglage général ou à une balise de langue placé en début de phrase.
Dictionnaire majuscule
Le dictionnaire majuscule réalise une première mise en forme du texte à l’aide de règles de réécriture. Celle-ci s’effectue par la consultation d’un dictionnaire sensible à la casse, qui compte aujourd’hui 296 entrées en français et 237 en anglais.
Le dictionnaire majuscule traite principalement les unités de mesure, symboles chimiques, abréviations, nombres romains, sigles et homographes dans lesquels la distinction majuscule/minuscule est nécessaire pour éviter les ambiguïtés. Le point qui termine certaines abréviations est supprimé pour que les modules suivants ne le considèrent pas comme un terminateur de phrase (ce qui affine le premier découpage en phrases). Une ambiguïté persiste si ce point se confond avec le point final de phrase, ce qui est heureusement rare, les rédacteurs évitant généralement ce type d’ambiguïté.
Exemples de mots du dictionnaire majuscule : mg, Mg, BD, Bd, SPA, P. (initiale d’un prénom), p. (page), IVe, MIT, USA, le Lot, Jean, etc.
Le dictionnaire majuscule se présente sous forme d’une liste de mots ou expressions avec leur équivalent alphabétique modifié pour une prononciation correcte.
Exemple : p. ==page
Note : les sigles formés de consonnes sont épelés (SNCF). Ils ne nécessitent donc pas de figurer dans le dictionnaire, ce qui réduit drastiquement la taille de cette ressource en perpétuelle évolution.
Le texte d’origine est transformé en fonction du dictionnaire majuscule. Les balises placées dans le texte sont conservées. La durée du traitement est inférieure à 1 µs par caractère.
Code commun
Ce module, commun à toutes les langues, effectue la conversion majuscule-minuscule, ainsi qu’un certain nombre d’opérations de formatage du texte, notamment :
- Transformation de œ en oe et de æ en ae (les deux formes devant être fonctionnelles) pour simplifier les règles et dictionnaires dans les différents modules.
- En mode comptabilité : fusion des groupes de trois chiffres séparés par le séparateur national : espace ou point en français (1 000 000), virgule en anglais, point en allemand, etc.
- Séparation des nombres longs en chaînes de 12 chiffres.
- Séparation des zéros précédant les nombres : 007 = 00 7 (zéro-zéro-sept).
- Les chaînes de n caractères identiques (si n > 3) sont remplacées par le nombre n suivi d’un caractère spécial (“fois”) puis d’un seul caractère de la chaîne (45 fois étoile). Exceptions : espaces (remplacés par un seul espace), points (les points de suite doivent être conservés) et chiffres (sauf les chaînes de zéros).
Ce module ne comporte pas d’autre ressource linguistique que l’indication de la langue de travail. Les balises placées dans le texte sont conservées. La durée du traitement est inférieure à 1 µs par caractère.
Dictionnaire minuscule
À ce niveau, le texte est entièrement en minuscules. Le dictionnaire minuscule traite principalement les abréviations, les nombres romains (cardinaux et ordinaux), les variantes orthographiques (notamment la réforme orthographique de 1990), la réaccentuation. Il compte aujourd’hui 3154 entrées en français et 416 en anglais (la différence quantitative étant due à la réforme orthographique et à la réaccentuation du français).
Comme dans le dictionnaire majuscule, le point qui termine certaines abréviations est supprimé pour que les modules suivants ne le considèrent pas comme un terminateur de phrase.
Exemples de mots du dictionnaire minuscule : fig., tj, ttes, 1er, vii, xxe, allégrement, assener, besicles, balancoire, bebe, decue, echo, zoe, etc.
Le dictionnaire minuscule se présente sous forme d’une liste de mots ou expressions avec leur équivalent alphabétique modifié pour une prononciation correcte.
Exemple : fig. ==figure
Le texte d’origine est transformé en fonction du dictionnaire minuscule. Les balises placées dans le texte sont conservées. La durée du traitement est inférieure à 1 µs par caractère.
Dictionnaire utilisateur
La transcription graphème-phonème ne sera jamais parfaite : des mots spécialisés, des mots nouveaux, des mots sans lettres accentuées, des noms propres seront oubliés. D’où l’utilité d’un dictionnaire géré par l’utilisateur – donc en clair parmi les ressources – pour pallier ces défauts en fonction des types de textes rencontrés.
Le dictionnaire utilisateur se présente sous forme d’une liste de mots ou expressions en minuscule avec leur équivalent alphabétique modifié pour une prononciation correcte.
Exemple : quesnel==quênel (si ce nom propre avait été oublié).
Le texte d’origine est transformé en fonction du dictionnaire utilisateur. Les balises placées dans le texte sont conservées. La durée du traitement est inférieure à 1 µs par caractère.
Analyse syntaxique et pragmatique
L’analyse syntaxique de Kali fournit un découpage du texte en tronçons (branches de syntagmes ou “chunks” en anglais = groupes de mots fortement liés entre eux) ainsi que leurs relations de dépendance (Vergne et Giguet 1998). Cette opération, à la base de la génération automatique de prosodie, est complétée par une analyse pragmatique du texte (Lacheret et Morel 2011) permettant à la prosodie de souligner l’organisation informationnelle et l’expressivité des énoncés.
L’analyse syntaxique s’effectue en 4 phases : (1) la segmentation des phrases en mots, (2) l’étiquetage de ceux-ci (ou catégorisation), (3) leur regroupement sous forme de tronçons, et enfin (4) la mise en relation des tronçons les uns avec les autres. L’analyse pragmatique intervient principalement après l’analyse syntaxique, mais certaines informations spécifiques à l’analyse pragmatique sont obtenues durant la catégorisation grâce aux outils de l’analyseur. C’est pourquoi nous pouvons parler d’une analyse syntactico-pragmatique.
Ces traitements sont réalisés par l’utilisation de dictionnaires et de règles. Des balises d’analyse sont placées dans le texte pour transmettre la structure prosodique au module phonétique. L’analyse syntaxique fournit également des balises de catégorie permettant de désambiguïser la prononciation de certains mots (homographes hétérophones comme président). Enfin, elle fournit des balises de frontière pour le traitement des liaisons (ex : de fidèles amis vs les amis fidèles | existent).
Segmentation en mots
Un mot typographique est un ensemble de lettres séparé par tout signe de ponctuation, y compris l’espace. Mais pour une meilleure efficacité du traitement automatique, nous considérons comme mots certaines locutions ou expressions figées, sous réserve qu’elles constituent une même unité prosodique (fort degré de figement). Par exemple, les expressions aujourd’hui, à vrai dire, alors que, faire semblant, porte-monnaie, quel que soit, tenir compte, y compris, forment ici chacune un même mot. En revanche, les expressions de cause à effet, d’un revers de main, prix à payer, qualité de vie, retour à l’emploi, victoire à l’arraché, restent formées de plusieurs mots, car elles sont constituées de plusieurs unités prosodiques (attestées par la présence d’accents de frontière à l’intérieur de l’expression). Leur plus faible degré de figement a préservé les relations syntaxiques internes à l’expression. Il est nécessaire de les conserver pour obtenir une prosodie correcte.
La première règle consiste à considérer l’apostrophe comme un séparateur de mots. Elle est rattachée au mot qui précède en français (j’, qu’, etc.) et au mot qui suit en anglais (’s, ’ve, etc.)
La deuxième règle consiste à ne pas considérer le trait d’union comme un séparateur de mots afin de prendre en compte les mots composés. Les exceptions à cette règle sont au nombre de 28 en français (aucune en anglais) : -ce, -d’, -elle, -elles, -en, -il, -ils, -je, -la, -là, -le, -les, -leur, -lui, -m’, -moi, -nous, -on, -t’, -t-elle, -t-il, -t-en, -t-on, -t-y, -toi, -tu, -vous, -y. Ces exceptions forment le dictionnaire des défigements .
Vient ensuite le dictionnaire des figements, qui regroupe toutes les expressions figées prises en compte comme des mots uniques et leur attribue une catégorie grammaticale (ou plusieurs en cas d’ambiguïté, par exemple : a priori, adverbe ou nom). Leur nombre est aujourd’hui de 582 en français et 153 en anglais.
Étiquetage des mots
L’étiquetage des mots – ou catégorisation – s’appuie sur un dictionnaire de catégorisation, aussi exhaustif que possible. Il contient aujourd’hui 16600 mots en français (dont 124 homographes hétérophones) et 16400 mots en anglais (dont 498 homographes hétérophones). Toutes les catégories grammaticales possibles de chaque mot sont indiquées. Par exemple :
place>VN/s13:fs
signifie que le mot place peut être un verbe à la première ou à la troisième personne du singulier ou un nom féminin singulier. Nous verrons plus loin comment se fait le choix de la catégorie en fonction du contexte.
À l’exception des homographes comme place, les verbes constituent un cas à part : bien que ceux-ci soient beaucoup moins nombreux que les noms ou les adjectifs et plus stables (moins de néologismes et d’emprunts), le nombre non négligeable de terminaisons possibles – souvent 39 par verbe en français – nous amènerait à multiplier les entrées du dictionnaire de catégorisation (environ 200000 formes verbales). Une solution plus pertinente consiste à explorer simultanément un dictionnaire de racines verbales (5060 en français et 4600 en anglais à ce jour) et un dictionnaire de conjugaison (65 groupes différents en français, étant donné les nombreux verbes du troisième groupe, 3 en anglais – verbes terminés par consonne, ’e’ ou ’y’, les verbes irréguliers étant directement placés dans le dictionnaire de catégorisation). La recherche s’effectue sur chaque mot non encore catégorisé, jusqu’à ce qu’une correspondance puisse être établie entre une terminaison et un radical, en commençant par la plus longue terminaison.
À ce stade de l’analyse, certains mots ne sont pas encore étiquetés. Un complément est alors apporté par un dictionnaire de suffixes (80 en français, 25 en anglais). Par exemple, en français, les mots terminés par “iser” sont généralement des verbes à l’infinitif, ceux en “isme” sont des noms, ceux en “amment”, “emment”, “iquement”, “ièrement”, etc., des adverbes. En anglais, les mots terminés par “ed” sont généralement des verbes au prétérit ou au participe passé, ceux en “ing” des verbes au participe présent, ceux en “ate” des verbes conjugués, ceux en “ship” des noms, ceux en “able” des adjectifs, ceux en “ly” des adverbes. Ce dictionnaire de suffixes permet de catégoriser les mots absents des autres dictionnaires, y compris les néologismes ou les mots mal orthographiés, dont le suffixe suffit à déterminer la catégorie grammaticale.
Pour terminer la catégorisation, les mots restants sont étiquetés par défaut “noms propres”. En effet, la catégorisation aussi exhaustive que possible des mots de la langue ainsi que des emprunts permet de déduire avec une assez bonne fiabilité que les mots non catégorisés sont des noms propres. Cette catégorie “nom propre” – qui peut également être attribuée explicitement – permet de segmenter certains groupes nominaux longs devant les noms propres pour en améliorer la prosodie. Par exemple :
Le premier ministre | Jean-Marc Ayrault (…) présente une coupure prosodique interne, donc un accent final sur ministre et un accent initial sur Jean.
Certains noms propres échappent à la règle, par exemple ceux qui sont homographes d’autres mots ou dont la terminaison est dans le dictionnaire de suffixes. Dans ce cas, les majuscules pourraient être utilisées, mais ce n’est pas le cas actuellement, l’incidence des erreurs étant extrêmement faible.
Tous les mots sont maintenant catégorisés, mais, comme nous l’avons vu, beaucoup possèdent plusieurs catégories grammaticales possibles. Il est donc nécessaire d’aller plus loin en considérant l’environnement de chaque mot. C’est là qu’interviennent les règles de déduction contextuelle. En très petit nombre au début, elles sont passées progressivement à 480 en français et 370 en anglais aujourd’hui. Ces règles utilisent les informations apportées par l’étiquetage déjà réalisé et les propagent par déduction.
Par exemple, si un pronom sujet sûr est suivi d’un mot étiqueté déterminant ou pronom objet, ce dernier est ré-étiqueté pronom objet. Dans une autre règle, si un pronom objet sûr est suivi d’un mot étiqueté verbe conjugué ou nom, ce dernier est ré-étiqueté verbe. Ces deux exemples de règles permettent de comprendre comment on désambiguïse le couvent et ils le couvent. Ils permettent également d’illustrer la notion de propagation : les catégories nouvellement attribuées sont à leur tour utilisées pour d’autres déductions. La propagation ne se fait pas que vers l’avant et mot par mot : l’environnement utilisé pour désambiguïser un mot peut être constitué de plusieurs mots devant et derrière le mot considéré.
Découpage du texte en tronçons
À l’issue de ces traitements, même s’il subsiste quelques erreurs et ambiguïtés, l’étape de catégorisation est terminée. Les règles de découpage en tronçons, en petit nombre, permettent de poser des frontières entre certaines catégories grammaticales. Par exemple, une frontière est posée devant un déterminant, un connecteur de toute sorte, un verbe conjugué, un auxiliaire, si le mot précédent est un verbe plein, un nom, un adjectif, un adverbe, etc. Puis une couleur (verbale, nominale, etc.) est attribuée à chaque tronçon en fonction de sa composition.
Malgré la relative simplicité de ces règles, ces dernières sont essentielles pour la qualité de la parole, car elles définissent les frontières prosodiques, très importantes en français (moins en anglais). Or les erreurs de prosodie les plus perceptibles en français sont des erreurs de découpage, car les plus fortes variations prosodiques se situent aux frontières (alors qu’en anglais, elles se situent sur les accents de mot).
Il va de soi que la qualité du découpage en tronçons dépend étroitement de la qualité de la catégorisation.
Mise en relation des tronçons entre eux
La mise en relation des tronçons, qui permet de hiérarchiser les frontières prosodiques et d’insérer des pauses, est une opération complexe, qui dépend à la fois de l’ordre des tronçons, de leur catégorie grammaticale, des mots grammaticaux, des virgules, et même du sens. Les cas vont du plus simple au plus complexe. Dans la phrase :
La nounou | promène | les enfants | d’Isabelle
tous les tronçons sont contigus, les règles sont élémentaires. Pour traiter :
La nounou | promène | les enfants || dans le jardin
une règle dit que certaines prépositions sont reliées de préférence à un tronçon verbal. Pour traiter :
La maison | que François | a visitée | l’autre jour || a été vendue
une règle de mémorisation a été mise en place : le sujet potentiel – en attente de verbe – est placé dans une pile. Lorsqu’un tronçon verbal sans sujet se présente, même après des compléments et des subordonnées, il est relié au sujet et celui-ci est retiré de la pile. Dans l’exemple ci-dessus, le sujet de la principale a été placé dans la pile, puis celui de la relative, qui a ensuite été relié au tronçon verbal et retiré, le sujet de la principale redevenant disponible pour le tronçon verbal suivant.
En revanche, dans le cas de la phrase :
La rencontre | pourrait se solder | par un succès | à l’arraché || de Kafelnikov
seule la sémantique peut éviter la mise en relation fautive :
La rencontre | pourrait se solder | par un succès || à l’arraché | de Kafelnikov
qui correspond au cas le plus fréquent, si on ne regarde que les catégories grammaticales et les prépositions utilisées, sans se préoccuper du sens.
Les règles de mise en relation, au nombre de 120 en français et 56 en anglais aujourd’hui, donnent satisfaction mais restent peu efficaces dès que la structure syntaxique se complique ou que la sémantique entre en jeu. Leur nombre est amené à croître fortement pour traiter les cas d’échec. De plus, des règles basées sur les expressions seront mises en place afin de traiter partiellement l’aspect sémantique.
Analyse pragmatique
Une fois l’analyse syntaxique effectuée, l’analyse pragmatique – qui s’appuie sur le lexique et la syntaxe et dont les résultats s’insèrent dans la structure syntaxique – est effectuée. Mais tout d’abord, quelques explications :
Durant l’élocution, la prosodie ne fait pas que suivre la syntaxe. Elle souligne l’information contenue dans le texte, montre la progression de cette information ainsi que les attitudes et émotions qui lui sont liées. Pour mettre en évidence cette structure communicative, la prosodie met en relief – ou au contraire entre parenthèses – certaines parties du texte, et joue sur les paramètres acoustiques et la qualité vocale de la parole pour transmettre les attitudes et émotions – réelles ou simulées – du locuteur (Grichkovtsova et al. 2012).
En situation de lecteur et interprète, le logiciel doit prédire en fonction du seul texte les paramètres prosodiques appropriés, c’est-à-dire ceux qui paraîtront naturels et adéquats à une majorité d’auditeurs.
Il faut donc tout d’abord prédire quelles parties de l’énoncé seront prosodiquement saillantes ou au contraire parenthétiques, puis, dans le module prosodique, choisir les contours normaux, saillants ou parenthétiques correspondants (cf. supra, modèle prosodique). La prédiction des états affectifs à partir du texte, beaucoup plus complexe et incertaine, reste à étudier et à tester. Sans compter les nombreux contours prosodiques affectifs nécessaires…
Dans la première étape de ce modèle, il s’agit donc de déterminer à l’aide d’indices syntaxiques, lexicaux et textuels les mots ou groupes de mots supposés saillants (Lacheret et Morel 2011) ou parenthétiques et de leur faire correspondre des contours prosodiques prélevés sur des énoncés dans lesquels des mots ou groupes de mots de la même taille et dans une position similaire, présentaient une prosodie perçue respectivement comme saillante ou parenthétique, dans la même catégorie affective, neutre pour l’instant.
Pour repérer les tronçons saillants, nous avons construit une première ressource, de taille modeste (365 mots à ce jour en français, 236 en anglais) mais très performante : un dictionnaire énonciatif. En effet, nous avons constaté que certains mots sont presque toujours saillants prosodiquement : il s’agit principalement d’adverbes et d’un petit nombre d’adjectifs. La plupart de ces mots marquent une quantification, une modification ou un contraste, soit temporel (aussitôt, bien avant, brusquement), soit spatial (énorme, immense, minuscule), soit numérique (au moins, aucun, beaucoup, chaque, ni, tous). D’autres présentent un engagement énonciatif avec généralement une composante affective (honnêtement, absolument, formidable, affreux).
La limite de ce dictionnaire est qu’il ne contient que le quart environ des mots qui devraient être saillants. Le statut prosodique des autres mots est beaucoup plus incertain. Un autre dictionnaire a donc été mis en place, basé sur la qualité informationnelle des mots : le dictionnaire informationnel. En effet, nos études statistiques sur corpus montrent que les mots techniques, les mots précis, les mots rares, sont souvent saillants, alors que les mots les plus courants ne le sont pas souvent.
Pour le construire, nous avons utilisé l’hypothèse selon laquelle plus une unité lexicale est rare statistiquement, plus elle a de chances d’être informative. Nous avons donc utilisé un classement des mots du français par ordre de fréquence et considéré dans un premier temps que les 4000 mots les plus fréquents étaient majoritairement non saillants – sauf ceux du dictionnaire énonciatif, toujours saillants – tandis que les autres étaient majoritairement saillants. Pour des raisons pratiques évidentes, le dictionnaire informationnel est en négatif, c’est-à-dire qu’il contient les 4000 mots les plus courants et non tous les autres. La frontière a été choisie à 4000 de façon à équilibrer le taux de mots saillants dans le texte.
Cette méthode basée sur la fréquence a permis de créer rapidement un dictionnaire. Cependant, ce dernier a dû et doit encore être affiné en fonction des tests sur corpus. Par exemple, certains mots fréquents qui se révèlent souvent saillants doivent être retirés du dictionnaire. A l’inverse, certaines flexions verbales sont rares – donc absentes du dictionnaire de départ – même si le verbe est fréquent. Pour éviter ce phénomène à l’origine d’une partie des erreurs, nous avons complété les verbes du dictionnaire informationnel avec toutes leurs flexions, portant sa taille à près de 14400 formes en français (3500 en anglais, les formes verbales étant moins nombreuses qu’en français).
Afin de parfaire cette méthode, nous avons tenu compte de la progression textuelle en faisant l’hypothèse que l’information apportée par la première occurrence d’un mot est ensuite thématisée, lui faisant perdre son caractère saillant dans la suite du texte (à l’exception des mots du dictionnaire énonciatif, toujours saillants). Nous avons d’abord évalué à 100 mots la distance textuelle à partir de laquelle il ne s’agit probablement plus d’une reprise thématique mais d’une nouvelle information. Cette valeur intuitive très approximative a ensuite été affinée en comptabilisant les erreurs – saillance souhaitable ou non. Le minimum d’erreurs a été atteint pour une distance de 250 mots (avec un plateau entre 200 et 300 mots). La mémorisation textuelle donne d’excellents résultats, mais peu de mots sont concernés (environ 5 % des mots notés saillants après passage du dictionnaire).
Une fois les mots étiquetés saillants ou non, nous appliquons une dernière règle correspondant à ce que les locuteurs réalisent le plus fréquemment : lorsqu’un mot plein d’un tronçon est saillant, la mise en relief porte sur l’ensemble du tronçon (extrêmement grand, aucun homme). S’il s’agit d’un mot vide, lui seul est saillant (tous ces gens ; ne craignez ni les cris ni la foule). Cette règle donne de bons résultats perceptifs.
Le taux de réussite résultant est d’environ 98 % en français et 96 % en anglais, les erreurs – dont une bonne partie passe inaperçue – se répartissant à parts égales entre proéminences prévues mais non souhaitables et proéminences non prévues mais souhaitables. Pour aller plus loin, il faudrait améliorer le statut des mots dont le taux de saillance prosodique est compris entre 25 et 75 % : ce sont eux qui produisent l’essentiel des erreurs.
La méthode envisagée pour traiter une partie d’entre eux consiste à utiliser leur environnement syntaxique et lexical grâce à l’analyseur syntaxique. Par exemple, si est saillant lorsqu’il est adverbe (il est si bon) alors que la conjonction ne l’est pas (sauf emphase) ; enfin est saillant lorsqu’il précède un participe passé (il est enfin arrivé) ou lorsqu’il suit un verbe (il bougea enfin) ou assimilé (vous voilà enfin), sinon il ne l’est pas (enfin, ce que j’en dis…) ; bataille est souvent saillant, mais ne l’est pas dans champ de bataille ni dans bataille de (où c’est le mot suivant qui est saillant) ; nouvelle est souvent saillant comme adjectif, mais rarement comme nom. En anglais, less est souvent saillant, mais pas dans less than. Cette méthode grammaticale pourrait diviser le nombre d’erreurs par deux, mais au prix d’une pléthore de règles particulières. Nous commencerons par implémenter les plus efficaces.
Les tronçons parenthétiques sont beaucoup plus rares que les tronçons saillants. Une étude succincte de textes lus nous a permis de détecter perceptivement trois types de parties parenthétiques :
- L’expression par exemple en incise. En revanche, par exemple est rarement parenthétique en début de phrase.
- Les parties typographiquement entre parenthèses, si elles ne sont pas trop longues. En effet, nous avons remarqué que plus les textes entre parenthèses sont longs, plus ils sont oralisés comme le reste du texte, avec des tronçons normaux et des tronçons saillants. Nous avons fixé la limite à deux tronçons entre parenthèses, limite qui nous a semblé perceptivement satisfaisante.
- Les incises comportant un verbe de dialogue, avec, en français, inversion du sujet (ex : s’écria le professeur). Là encore, nous avons limité la taille à deux tronçons, parfois trois (répéta Jean-Pierre avec douceur). Au-delà, le lecteur a tendance à interpréter ces incises comme le reste du texte.
Nous avons donc créé deux nouvelles ressources : un dictionnaire d’expressions parenthétiques (limité à par exemple aujourd’hui, mais voué à être complété) et un dictionnaire de verbes de dialogue, le programme se chargeant d’étendre la zone concernée avec les adverbes ou les tronçons qui complètent l’incise.
Une étude plus poussée de textes lus devrait nous permettre d’enrichir les règles de détection des parties parenthétiques.
Après passage de l’analyseur, les tronçons sont étiquetés 3 (saillant), 2 (normal), 1 (parenthétique).
Évolution et évaluation des règles d’analyse
À intervalles réguliers, les règles d’analyse sont améliorées, grâce à plusieurs méthodes :
- recherche de tous les mots étiquetés inconnus, dans une liste de mots classée par fréquence dans un très grand corpus, en partant de la fréquence la plus élevée et en se dirigeant, tranche par tranche, vers la plus faible,
- utilisation d’une liste d’erreurs, repérées généralement en effectuant d’autres travaux,
- étude de quelques phrases du corpus de test et correction des erreurs rencontrées (ces phrases étant alors transférées dans le corpus de travail).
La dernière méthode permet également la mise à jour du taux d’erreurs moyen et du taux d’erreur résiduel, à partir du nombre d’erreurs déjà traitées et de l’impact des corrections sur le reste du corpus. Cet impact est visualisé grâce à un programme de comparaison qui permet également de repérer les effets secondaires négatifs afin de les corriger. L’évaluation du taux d’erreurs rapporté au nombre de mots donne aujourd’hui les résultats suivants :
- erreurs de découpage (tronçons) : 0,6 % en français, 1,5 % en anglais,
- erreurs de saillance manifestes : 2 % en français, 4 % en anglais,
- erreurs de mise en relation : 3,5 % en français, 4 % en anglais.
Transcription graphème-phonème
Pour oraliser correctement un texte, il faut appliquer de nombreuses règles de prononciation. L’opération de transcription fournit un texte phonétique à partir du texte alphabétique (Morel et Lacheret 1998). Le français comporte quelques milliers de règles de base ; l’anglais, peu efficace par règles, nécessite en outre un dictionnaire de mots très exhaustif. Les mots d’emprunt et les noms propres du monde entier (même en se limitant à l’actualité) nécessitent dans chaque langue un dictionnaire additionnel contenant des dizaines de milliers de mots.
Le module de transcription graphème-phonème est fondé à la fois sur un dictionnaire de phonétisation et sur un jeu de règles hiérarchisées, organisées sous forme d’une liste structurée (Morel et Lacheret 1998).
Chaque mot – ou groupe de mots – est d’abord recherché dans le dictionnaire. En cas de succès, la transcription fournie s’applique et l’on passe à la suite. En cas d’échec, ce sont les règles qui s’appliquent, le mot est alors examiné caractère par caractère.
Les règles permettent d’obtenir une prononciation par défaut des mots absents du dictionnaire (il manquera toujours des noms propres provenant de l’actualité, des mots mal orthographiés, des mots d’emprunt, des néologismes…) ainsi que des variantes de prononciation liées au contexte (par exemple les homographes hétérophones).
Le dictionnaire, de son côté, est indispensable pour traiter les nombreux noms propres, mots d’emprunt et sigles n’obéissant pas aux règles générales de la langue.
Dictionnaire de phonétisation
En français, il est constitué principalement de noms propres, français (Auxerre, Brassens, Deshayes, Montfort, Quimper, Rodez, etc.) et surtout étrangers (Allende, Anderson, Arafat, Beethoven, Bhutto, Che, Shanghai, Tobin, Walesa, Worms, Zeller, etc.), ainsi que de mots d’emprunt (moderato, al dente, cake, design, klaxon, penalty, remake, roller, shareware, shop, stand, thriller, etc.), de sigles (ADN, ADSL, AFP, PEL, IUT, MAIF, OGM, PIB, PSA, RER, etc.) et de diverses exceptions (abbaye, amer, entrelacs, estomac, hier, imper, monsieur, second, tabac, etc.) Sa taille est aujourd’hui de 3744 entrées.
En anglais, il est beaucoup plus étoffé, car outre les noms propres, mots d’emprunt et sigles, il est constitué de presque tous les mots de la langue. En effet, si la transcription des consonnes ne pose guère de problème, celle des voyelles ne peut se satisfaire de leur environnement proche (règles), il faut disposer du mot entier pour la connaître et pour connaître la position de l’accent (qui elle-même est essentielle à la transcription). Le dictionnaire de phonétisation de l’anglais contient aujourd’hui 59273 entrées.
Règles de phonétisation
Chaque règle est constituée d’un premier champ graphémique d’une ou plusieurs lettres, rarement d’un ou plusieurs mots, puis d’un champ phonétique, puis d’un champ commentaire – exemples représentatifs de la règle. Considérons par exemple l’extrait des règles suivant :
*•a•* a
– ¦*•am•{cns}* â: (ample, chambre)
– – ¦*•a•mm* a (gamme)
– – ¦*•a•mn* a (amnistie)
– – – ¦*d•am•n* a (damné, condamner)
– ¦*•an•{cns}* â: (manche, banque, grange)
Dans le champ graphémique, la chaîne à transcrire est délimitée par deux disques ou gros points (•abc•) et entourée des lettres nécessaires pour caractériser la règle. Si le contexte doit indiquer une catégorie de caractères (consonne, voyelle, ponctuation, symbole, chiffre, etc.), celle-ci est indiquée sous forme abrégée, entourée d’accolades ({cns} = consonne). L’astérisque indique un contexte quelconque (autres caractères, début ou fin de mot). Son absence indique le début ou la fin du mot. Sauf indication particulière, la possibilité d’adjoindre un s en fin de mot pour le pluriel, sans modification de la règle en vigueur, est implicite. Les tirés placés en début de champ graphémique créent une indentation qui définit le niveau hiérarchique de la règle. La barre verticale qui suit permet de mieux visualiser l’indentation.
Le champ phonétique est constitué uniquement des phones qui correspondent au graphème délimité. Le jeu de phones utilisé est propre à Kali, chaque phone étant codé sur un octet unique. Des caractères spéciaux peuvent affecter ces phones (allongement, raccourcissement, modification de hauteur ou d’intensité, soient toutes variations prosodiques caractéristiques du mot, indépendamment des contours prosodiques qui affectent l’énoncé). Dans l’exemple, le caractère ‘ :’ allonge de 20 % la voyelle qui précède (cet allongement est variable selon les régions – de 10 % en région parisienne à plus de 50 %). L’accent de mot de l’anglais est également repéré par un caractère spécial.
Le champ commentaires est placé entre parenthèses. Les exemples représentatifs de la règle servent d’une part à l’illustrer pour mieux la comprendre (en vue de la maintenance notamment), d’autre part à créer automatiquement un corpus dont la transcription phonétique constitue une référence pour l’évolution future des règles. Dans ce but, un programme de comparaison permet de repérer toutes les améliorations d’une version à la suivante et de s’assurer surtout de l’absence d’altération des règles déjà établies.
Dans l’exemple ci-dessus (qui ne montre qu’une toute petite partie des règles du a), la transcription par défaut du a est /a/. Les deux exceptions choisies sont les cas où le a est suivi d’un m ou d’un n, puis d’une consonne, pour obtenir une nasale allongée (codée /â:/ dans Kali). Le doublement du m ou du n est une exception à cette exception (illustrée ici dans le cas du m), ainsi que la graphie amn, avec un niveau d’exception supplémentaire pour damn dans lequel le m n’est pas prononcé.
Cette structure hiérarchisée permet d’éviter la perte progressive de lisibilité au fur et à mesure de l’implémentation de nouvelles règles, tout en conservant une cohérence théorique aux sous-ensembles créés : nous retrouvons les règles de base du français à un niveau hiérarchique élevé (ai, ain, am, an, etc.), puis dans les niveaux suivants des règles plus particulières (consonnes finales muettes ou non, terminaisons en –ent, h disjonctif ou non, i-voyelle, s entre voyelles, ti-voyelle où la plosive peut se transformer en fricative, etc.), et aux derniers niveaux les règles les plus particulières.
Lorsque Kali charge les règles de phonétisation de chaque langue au démarrage, il les organise sous forme d’une structure arborescente (structure implicite du système d’indentation), qui optimise ainsi considérablement le parcours futur de l’interpréteur. Un réglage général ou une balise peuvent orienter les règles vers des variantes : mode littéraire (la ponctuation est interprétée), mode dictée.
Le français et l’anglais comportent chacun environ 4000 règles.
Traitement du e caduc (français uniquement)
Il s’appuie sur la règle des trois consonnes, selon laquelle le /e/ précédé de deux consonnes phonémiques se prononce si le contexte droit est également consonantique (garnement). Il est effacé dans les autres contextes (pomme, fièrement). Pour ce faire, la règle principale du e comporte une balise à destination de l’interpréteur, sous forme d’accolades :
*•e•* {e} (pomme, fièrement, garnement)
Ainsi, pour la transcription du e de garnement, l’interpréteur, ayant déjà transcrit la chaîne /garn/ et de ce fait validé deux des trois consonnes nécessaires, place le /e/ dans un tampon en attente du prochain phonème transcrit. Ce dernier correspondant bien à une consonne (/m/), l’interpréteur complète la chaîne phonémique en validant le /e/.
Une règle complémentaire a été définie pour transcrire correctement les e des syllabes initiales de mots (pelage vs. plage, refaire, je), auxquelles la règle des trois consonnes ne s’applique pas. Enfin, ces règles écrites “en dur” n’empêchent pas les exceptions, par exemple le cas où le /e/ est maintenu malgré la présence d’une seule consonne devant lui :
– – – ¦soup•e•s{voy}* e (soupeser)
Traitement de la liaison
En français, les règles de phonétisation définissent les liaisons considérées comme obligatoires, par exemple derrière les auxiliaires (sont arrivés), les verbes avec inversion du sujet (écrivent-elles), les déterminants (les oiseaux, mon amie), les pronoms personnels sujets (ils arrivent) et les adjectifs antéposés (petit ami) :
– – – – ¦célèbre•s• [z] (célèbres idées)
Le phonème de liaison est placé entre crochets. Lorsque l’interpréteur le rencontre, il le place dans un tampon qui sera validé si le phonème suivant est une voyelle.
La rencontre d’une balise de coupure en provenance de l’analyseur syntaxique annule la liaison proposée. Ainsi, dans la phrase « les petits arrivent », une balise de coupure est présente entre le sujet et le verbe, empêchant la liaison. En revanche, dans le cas où le sujet est un clitique (ils arrivent), l’analyseur ne place pas de coupure, l’ensemble étant considéré comme constituant un même tronçon (cf. analyse syntaxique).
Des liaisons obligatoires sont également implémentées dans les mots composés et dans bon nombre d’expressions (de bas en haut, de part et d’autre, États-Unis, fort à parier, mesdames et messieurs, rien à voir, etc.) Pour le traitement des liaisons facultatives, nous avons opté pour une stratégie minimaliste qui consiste à ne pas générer la liaison entre un nom et un adjectif postposé ou un verbe et son complément sauf dans les contextes de figement lexical (des personnes âgées).
Le cas de l’anglais est plus trivial : seul le r final de mot donne lieu à une liaison, et ceci dans tous les cas où le mot suivant commence par une voyelle (en l’absence de pause, bien entendu).
Règles de flexion
La phonétisation de l’anglais se faisant essentiellement par dictionnaire, toutes les formes doivent être présentes dans celui-ci. Après des années de développement de ce dictionnaire, il est apparu illusoire de prétendre le compléter avec toutes les flexions manquantes en un temps raisonnable, d’autant plus que des flexions plus ou moins néologiques peuvent être absentes des dictionnaires d’anglais mais présentes dans les corpus. Nous avons donc créé une nouvelle ressource permettant de retrouver le lemme à partir de la flexion et d’en déduire la phonétisation.
Les flexions et terminaisons suivantes ont été traitées : *ed, *er, *ers, *est, *ing, *in, *ingly, *s, *ly. Malgré un dictionnaire déjà bien rempli, ces règles ont permis de toucher 6600 formes différentes, augmentant considérablement le taux de succès de la phonétisation (taux d’erreurs divisé par deux).
Traitement de l’homographie
Les homographes hétérophones (aujourd’hui 123 en français, 550 en anglais) sont des formes qui possèdent plusieurs transcriptions phonétiques possibles. Une majorité repose sur l’ambiguïté verbe/nom ou verbe/adjectif (président, options, poster, en français ; deliberate, increase, permit, suspect, en anglais). L’analyseur syntaxique définit la catégorie de ces derniers, avec un taux de réussite supérieur à 95 %, et place une balise de catégorie, <V> ou <N> (verbal ou nominal) par exemple. Il reste maintenant à tester l’une ou l’autre de ces balises dans une exception à la règle de base :
– – – – – ¦présid•ent• â (le président)
– – – – – – ¦présid•ent•<V> (ils président)
Dans le cas des homographes hétérophones ne reposant pas sur une ambiguïté de catégorie (rares heureusement), la désambiguïsation dépend de critères sémantiques difficiles à modéliser. Nous répertorions alors des contextes typiques :
– – ¦fi•ls• :s (mon fils)
– – – ¦fi•ls• (à plomb+de fer) l (fils à plomb, fils de fer)
Le signe ‘+’ correspond à l’opérateur ‘ou’ qui permet de juxtaposer une variété de contextes entre parenthèses. Plusieurs dizaines de contextes sont ainsi définis pour le sens filaire de l’homographe fils. Même principe pour jet d’eau et jet privé.
Transmission des balises d’analyse
Si les balises de catégorie et de coupure, spécifiquement destinées à la transcription graphème-phonème, sont effacées après avoir été utilisées, les balises d’analyse doivent traverser ce module afin d’être utilisées par le générateur de prosodie. Lorsque l’interpréteur rencontre des balises d’analyse, il les transmet à la chaîne phonétique en construction, permettant ainsi de conserver l’alignement entre la chaîne alphabétique et la chaîne phonétique. Cette dernière possède alors toute l’information nécessaire à la production de la parole.
Évolution et évaluation de la transcription graphème-phonème
À intervalles réguliers, ces ressources sont améliorées, grâce à plusieurs méthodes :
- utilisation d’une liste d’erreurs, repérées généralement en effectuant d’autres travaux,
- utilisation de listes d’erreurs fournies par les utilisateurs,
- lecture d’une liste de mots classée par fréquence dans un très grand corpus incluant des textes classiques et des textes d’actualité, en partant de la fréquence la plus élevée et en se dirigeant, tranche par tranche, vers la plus faible.
La dernière méthode permet également d’évaluer le taux d’erreurs moyen, à partir du nombre d’erreurs par tranche de fréquence. Le taux d’erreurs est aujourd’hui évalué à 1,02 % par mot en français et 1,39 % par mot en anglais (plus important sur les corpus journalistiques à cause du grand nombre de noms propres).
Prosodie
Au cours de l’élocution, la voix subit des variations à l’échelle de la syllabe, du mot, du tronçon, du groupe de souffle , de la phrase, du paragraphe. Ces variations, volontaires ou non, contribuent au naturel, à l’intelligibilité et à l’expressivité de la parole. Elles portent sur les trois principaux paramètres de variation de la parole : hauteur, intensité, vitesse, ainsi que sur la qualité vocale, beaucoup plus difficile à modéliser. En l’absence de prosodie, la voix paraît plate et monotone.
Modèle prosodique à base de contours naturels
À partir d’enregistrements variés (récits, exposés, interviews, dialogues), on extrait des contours prosodiques naturels, constitués des paramètres acoustiques de hauteur, intensité et vitesse de chaque tronçon. Chaque contour est associé à une clé, représentation mathématique des contraintes syntaxiques, pragmatiques et rythmiques auxquelles il est soumis (notamment taille du tronçon en syllabes, accent de mot pour l’anglais, position, fonction, distribution de l’information, ponctuation). Plusieurs centaines de contours sont actuellement intégrés dans le modèle, pour le français comme pour l’anglais. Grâce à ces ressources, 82 % des tronçons rencontrés en corpus trouvent un contour naturel adéquat en français – 67 % en anglais, l’accent de mot augmentant la combinatoire.
Corpus oral utilisé pour le prélèvement des contours naturels
Ce corpus doit être doté d’une prosodie agréable et être représentatif des différentes configurations syntaxiques et pragmatiques qui pourront être interprétés par la synthèse de la parole.
Afin d’optimiser la quantité de corpus oral à traiter, nous ne prélevons de nouveaux contours que sur les phrases dont moins de 50 % des contours sont déjà présents dans notre base. L’anglais présente un moins bon rendement des contours car la présence d’accents de mot diversement placés dans les différentes configurations syntactico-pragmatiques et rythmiques augmente considérablement la combinatoire. Cependant, des essais perceptifs nous montrent que la prosodie des phrases comportant au moins 50 % de contours naturels est perçue comme naturelle.
Nous avons commencé en français par un texte de 850 mots, qui a fourni 287 contours prosodiques naturels. Ce texte est un dialogue fabriqué par un partenaire pour une application d’entraînement sportif, suivi de l’exposé d’une notice. La prosodie est globalement neutre, mais active dans la partie dialogue, traduisant une implication positive du locuteur. La qualité de son interprétation et sa diction impeccable nous ont convaincu d’en faire le noyau de la prosodie naturelle neutre. La suite du corpus oral est le début du roman “Harry Potter” traduit en français, interprété par Bernard Giraudeau. Le ton assez enjoué nous a semblé constituer un bon complément pour parfaire l’agrément d’écoute en prosodie neutre. De plus, les phrases plus construites et plus longues que celles du corpus sportif, fournissent des contours dont l’agencement syntaxique comble assez largement les lacunes de la base initiale.
En anglais, nous avons commencé par un texte de 600 mots (paragraphes extraits de romans et d’informations), lu par un étudiant anglophone dont l’élocution correspondait au standard britannique. L’enregistrement, de prosodie neutre, a fourni 286 contours prosodiques. La suite du corpus oral est un extrait du roman “Harry Potter”, lu par un acteur anglophone, avec légèreté et humour, qui colore agréablement la synthèse en anglais.
Bases de contours prosodiques
En français, 603 contours ont été prélevés et étiquetés. Leur taux d’utilisation sur corpus est de 82 %, ce qui signifie qu’en moyenne, 82 % des groupes prosodiques d’un texte trouvent un contour qui satisfait à leurs caractéristiques pragmatiques, syntaxiques et rythmiques. Les 18 % restants utilisent par défaut la prosodie normalisée. Le taux d’utilisation atteint par les contours naturels et la qualité des contours de remplacement donnent maintenant un résultat pleinement satisfaisant, ne nécessitant plus de nouveaux prélèvements. La base française de contours prosodiques est considérée comme terminée.
En anglais, 633 contours ont été prélevés et étiquetés. Leur taux d’utilisation sur corpus est de 67 %, bien au-delà de l’objectif minimal de 50 %. La qualité atteinte nous permet de considérer que la base anglaise de contours prosodiques est terminée.
Au lecteur qui trouvera que cette façon de constituer des corpus oraux s’apparente à de la “cuisine”, nous répondrons qu’effectivement nos choix sont basés sur la dégustation…
Codage acoustique des contours prosodiques
On considère généralement que le contour prosodique d’un tronçon est porté par les voyelles qui le constituent, les paramètres acoustiques retenus étant la hauteur, l’intensité et la durée (ou son inverse, la vitesse de phonation). Nous souscrivons totalement à cette démarche.
Afin que ce contour soit aussi précis que possible, nous avons comparé les résultats perceptifs obtenus avec une, deux ou trois valeurs par voyelle pour chaque paramètre (sauf la vitesse de phonation, dont la variation dépasse l’échelle de la syllabe, d’où une seule valeur dans tous les cas). En réalité, afin de faciliter les calculs d’interpolation, nous avons ramené les valeurs au milieu de la voyelle : à partir de trois points appartenant à la voyelle – au milieu et de part et d’autre –, nous calculons la valeur centrale, sa dérivée première et sa dérivée seconde. Nos tests perceptifs montrent un assez bon résultat avec une seule valeur par voyelle, mais une meilleure qualité et une meilleure identification des affects avec deux valeurs, la différence restant discrète. La comparaison entre deux et trois valeurs montre une différence extrêmement ténue : seuls quelques énoncés semblent légèrement enrichis par la dérivée seconde, la distinction entre les deux étant à peine perceptible. Nous avons néanmoins choisi trois valeurs par voyelle, le coût d’ajout de la troisième valeur étant relativement modeste (courbes interpolées d’ordre 5 au lieu de 3, quelques équations un peu plus complexes).
Les valeurs des paramètres acoustiques sont exprimées en logarithmes. La hauteur est en 16èmes de tons, l’intensité et la vitesse en 8èmes de tons, le ton étant défini comme un sixième d’octave. Ces unités ont été choisies de telle façon qu’une différence de 1 soit à la limite du perceptible. Un rapport 2 entre deux valeurs vaut donc 96 unités pour la hauteur et 48 unités pour l’intensité et la vitesse.
Le fichier texte associé à chaque contour contient un descripteur – ou clé – suivi des valeurs acoustiques. Chaque ligne de la section [Valeurs] contient le code de la voyelle concernée, suivi de 7 valeurs : hauteur, sa dérivée première, sa dérivée seconde, intensité, sa dérivée première, sa dérivée seconde, vitesse.
Descripteur de contour prosodique
Chaque contour est extrait dans différentes conditions de rythme, de syntaxe, de distribution de l’information, de ponctuation, d’état affectif. Le descripteur qui lui est associé doit rendre compte de ces conditions, afin qu’un tronçon rencontré dans un texte à lire puisse être associé à ce contour s’il est soumis à des contraintes similaires. Le descripteur contient les informations suivantes :
- Numéro de version (pour compatibilité des programmes)
- Texte du paragraphe, avec repérage du tronçon concerné (à titre d’information)
- « [Clé] » (annonce la section du descripteur)
- Identifiant (nombre entier différent pour chaque tronçon)
- Numéro de paragraphe (utilisé pour construire le modèle normalisé)
- Nombre de syllabes vides devant
- Nombre de syllabes pleines
- Nombre de syllabes vides derrière (0 en français)
- Nombre d’accents primaires (langues à accent de mot)
- Liste des positions des accents primaires
- Nombre d’accents secondaires (langues à accent de mot)
- Liste des positions des accents secondaires
- Rang d’un éventuel mot vide renforcé
- Hauteur de la dernière voyelle du tronçon précédent (pour le coût de raccordement)
- Nombre de tronçons
- Liste des tronçons (pour définir l’environnement de chaque tronçon)
- Rang du tronçon (permet de prendre en compte les contraintes syntaxiques et la position dans la phrase)
- Mise en relief (parenthétique, normal, saillant) (voir analyse pragmatique)
- Tronçon nominal sujet, nominal non sujet avant verbe, verbal, nominal complément direct, nominal complément non direct derrière verbe
- Proposition principale, relative, circonstancielle
- Ponctuation terminale de phrase : . ; : ! ? … ¶ (¶ = titre = retour à la ligne sans ponctuation)
- Attitude : neutre, politesse/respect/empathie, évidence, autorité/directive, exclamation, incrédulité, étonnement, interrogation, arrogance/mépris, ironie, hésitation
- Émotion : neutre, joie, irritation/colère, tristesse, chagrin, inquiétude/peur, déception, dégoût
- Quantité d’émotion : 0 à 3
- Activité : faible, normale, forte
Les quatre derniers paramètres ne sont pas utilisés aujourd’hui.
Quelques explications sur le descripteur de contour prosodique
L’identifiant et le numéro de paragraphe permettent de classer les tronçons par paragraphes. Le compilateur de contours peut ainsi calculer les différentes déclinaisons (voir modèle normalisé).
Les syllabes pleines sont celles des mots lexicaux. Les syllabes vides sont celles des déterminants, des particules (nominales ou verbales), de la négation ne, des pronoms dans la plupart des cas (sauf par exemple le dans regarde-le où il prend un accent final comme un mot lexical), des prépositions, des conjonctions, de certains petits adverbes. Les syllabes vides sont généralement prononcées moins haut, moins fort, plus vite que les syllabes pleines. De plus, certains phénomènes rythmiques ne concernent que les syllabes pleines.
Un mot vide renforcé est un mot vide repéré comme saillant prosodiquement (voir analyse pragmatique). Sa saillance n’est pas réalisée acoustiquement comme celle des mots pleins (généralement plus haut, plus fort, moins vite qu’un mot non saillant). En effet, ici, la vitesse n’est pas affectée, mais principalement l’intensité (tous ces gens ; ne craignez ni les cris ni la foule).
La liste des tronçons du paragraphe est une liste de nombres : chacun d’eux représente la force de frontière du tronçon concerné : 0 pour un tronçon contigu avec le suivant, n si le tronçon suivant est relié à un tronçon antérieur, en passant par-dessus n syllabes, et un code spécial pour les fins de phrases. Par exemple :
Le mari(0) de Bérangère(4) surveille(0) les enfants(3) dans le jardin($)
Cette linéarisation de l’arbre de dépendance permet de créer une projection prosodique des relations syntaxiques. On peut considérer en effet que la force de frontière représente l’effort mémoriel pour établir mentalement la relation, effort d’autant plus important que la distance est grande. Ce modèle mémoriel vaut autant pour le locuteur que pour l’auditeur : le marquage prosodique de la force de frontière par le locuteur sous forme de proéminence accentuelle plus ou moins importante facilite chez l’auditeur la construction mentale de l’arbre de dépendance. Conformément à ce modèle mémoriel, la relation n’est pas orientée dans le sens conventionnel régi vers régissant, mais toujours vers l’arrière sur l’axe des temps.
Nous avons distingué les tronçons nominaux des tronçons verbaux, pour le cas où leur prosodie diffèrerait, à position identique dans la structure syntaxique, ce qui reste à prouver. Pour les mêmes raisons, nous avons distingué les tronçons nominaux situés avant ou après le verbe, ainsi que le tronçon nominal sujet et le tronçon complément d’objet direct. Nous avons jugé inutile d’aller plus loin dans ce type de différenciation, les 5 catégories créées étant déjà d’une utilité discutable.
Autre différenciation discutable, pour le cas où elle jouerait un rôle : un code indique si le tronçon appartient à une proposition principale, relative ou circonstancielle.
La ponctuation terminale de phrase, bien que trop rudimentaire pour indiquer l’attitude, permet tout de même de séparer sommairement quelques groupes d’attitudes. Ce marquage – certes insuffisant – a le mérite d’être largement utilisé dans les textes.
Les émotions et les attitudes ne sont pas placées sur un même axe, car elles peuvent se combiner, la résultante possédant une composante attitudinale et une composante émotionnelle. C’est cette faculté à se combiner qui nous permet de distinguer les émotions des attitudes, au-delà de définitions critiquables ( distinction attitudes/émotions ).
Nous distinguons 3 valeurs pour la quantité d’émotion, mais il est probable que nous n’en exploitions qu’une, standard.
Nous utilisons également 3 niveaux d’activité. L’activité se distingue de la quantité d’émotion, car elle agit sur une autre dimension, pouvant se superposer à une attitude ou à une émotion. Une faible activité indique une lenteur, une nonchalance, une passivité, tandis qu’une forte activité indique une implication, une ardeur, une vivacité dans la façon de parler, même sans émotion particulière.
Fonction de coût
Le module prosodique reçoit en entrée le texte phonétique agrémenté des balises qui permettent de le découper en tronçons et de déterminer les paramètres du descripteur associé à chaque tronçon. Le programme peut donc comparer ce descripteur à ceux de tous les contours de la base et déterminer le ou les meilleurs contours à associer au tronçon en cours, sachant qu’il est rare que les descripteurs coïncident exactement. Pour ce faire, une fonction de coût a été créée.
Chaque critère donne lieu à un calcul de coût. Nous ne faisons pas directement la somme des coûts de tous les critères, car nous avons constaté qu’ils ne sont pas additifs. Par exemple, un coût de 10 sur 10 critères est beaucoup moins important qu’un coût de 100 sur un même critère. Nous considérons plutôt les critères comme des dimensions différentes. Dans cette hypothèse, le carré du coût résultant est la somme des carrés des coûts des différents critères.
Nous avons fixé à 100 la valeur de référence du coût, à partir de laquelle celui-ci devient rédhibitoire. Seuls sont comparés les contours dont le coût est inférieur à 100. Si aucun contour n’est sélectionné, c’est le contour normalisé qui est utilisé.
Les coûts des différents critères se calculent différemment :
Le nombre de syllabes vides ou pleines est fondamental, car le contour prosodique dépend étroitement de cette donnée rythmique. Le coût est donc de 0 si le nombre de syllabes est bon, 100 sinon. Il en est de même pour l’accent de mot en anglais : nous avons choisi un coût de 80 – élevé – pour sa présence ou son absence erronée, d’où un coût de 160 pour un mauvais positionnement (rejeté). Assez logiquement, le coût de l’accent secondaire est deux fois moindre.
Nous avons donné une importance moyenne – coût 40 – à un éventuel mot vide renforcé.
Le coût de raccordement, de son côté, est égal à la différence de hauteur – en 16e de tons – entre l’extrémité du contour précédent de l’énoncé en cours et l’extrémité du contour précédent dans la base. L’extrémité s’entend après extrapolation d’un demi-intervalle à la fin du contour. Un coût de 100 – rédhibitoire – correspond à un peu plus d’une octave d’écart.
Le coût d’insertion d’un tronçon dans la structure syntaxique dépend des frontières qui l’entourent, la frontière finale étant la plus importante, puis la frontière initiale. Pour les frontières plus lointaines, intuitivement, le coût est divisé par deux au fur et à mesure qu’on s’éloigne du tronçon. Le coût est modéré entre une frontière contiguë et une frontière distante, plus important entre une frontière distante et une frontière de groupe de souffle. Le coût est de 100 – rédhibitoire – entre une frontière terminale et une frontière non terminale, car l’accent terminal se distingue nettement des autres accents. Puis le coût se réduit progressivement lorsqu’on s’éloigne du segment traité. Le coût de la frontière de paragraphe a été estimé à 20.
Le coût dû à la saillance est calculé par tableau. Il nous semble raisonnable qu’un tronçon saillant puisse être remplacé assez facilement par un tronçon non saillant, considéré comme valeur par défaut (coût 30). Nous avons considéré que l’inverse devait être plus coûteux (60). En revanche, un tronçon parenthétique ne peut pas être remplacé par un tronçon normal, ni l’inverse.
Nous avons fixé à 60, par tableau, le coût de la différence entre un tronçon nominal et un tronçon verbal, et à 30 le coût de sa position par rapport au verbe. Pour les propositions, principale, relative ou circonstancielle, les coûts sont de 20, ce qui donne assez peu d’influence à ce critère. Des essais plus poussés méritent d’être effectués sur ces critères afin d’en déterminer l’intérêt réel et d’en tirer les conséquences en termes de coût.
Les ponctuations, attitudes et émotions, fonctionnement également par tableau. Les coûts s’échelonnent entre 0 et 100 selon la compatibilité entre les différentes ponctuations, de même entre les différentes attitudes ou entre les différentes émotions. Des relations sont également établies entre les ponctuations et les attitudes compatibles avec chacune.
La différence de quantité d’émotion a été estimée à un facteur 20 (mais elle ne servira probablement pas).
La différence d’activité a été estimée à un facteur 60 (d’où incompatibilité – 120 – entre une activité forte et faible).
Une fois le coût total calculé pour tous les contours de la base, le contour de plus faible coût est choisi s’il est inférieur à 100. En réalité, une fonction de hasard instituant une tolérance – réglable – sur le plus faible coût, permet de varier les contours dans une certaine mesure, afin d’éviter les schémas répétitifs sur un même texte.
Pour chacun des critères, une gamme de coûts différents est évaluée perceptivement sur corpus. Un coût trop faible sur un critère est susceptible de sélectionner quelques contours mal intégrés à l’ensemble. Un coût trop fort réduit le naturel en diminuant le taux de contours naturels acceptés. Plusieurs réajustements de coût ont été effectués depuis 2015 à l’aide d’essais perceptifs, permettant de préciser certaines valeurs, intuitives au départ.
Modèle prosodique normalisé
Un modèle prosodique normalisé superpositionnel qui ne traite que la déclinaison, les pauses et les accents démarcatifs a été créé dès le début du projet. Bien que la prosodie obtenue soit un peu répétitive et manque de naturel, elle était régulière et fluide. Depuis 2010, ce modèle a progressivement cédé la place au modèle naturel. Parallèlement le modèle normalisé s’est amélioré, car il reste nécessaire, d’une part comme modèle par défaut pour fournir un contour aux tronçons qui n’en ont pas trouvé, d’autre part comme guide autour duquel le modèle naturel peut varier sans toutefois s’en écarter exagérément, afin de réduire les variations excessives ou inopportunes parfois présentes dans les contours, tout en conservant une importante part de naturel. Ce nouveau modèle plus fin est moins superpositionnel, comporte davantage de paramètres et est fabriqué automatiquement à partir de moyennes sur un certain nombre de caractéristiques des contours en mémoire. Ainsi extrait des données naturelles, il fournit de meilleurs contours par défaut et un meilleur encadrement des contours naturels.
Le modèle prosodique créé dans les débuts de Kali et encore utilisé partiellement, est superpositionnel. Selon ce principe, l’enveloppe prosodique est le résultat de l’addition de phénomènes imbriqués de nature et de portée différentes : déclinaison de paragraphe, de phrase, de groupe de souffle, saillance prosodique de tronçon, accents démarcatifs de tronçon, accents de mot. Ce principe suppose que tous les phénomènes sont indépendants et additifs, ce qui est loin d’être le cas, comme nous allons le voir. En pratique, ce modèle rudimentaire, malgré certaines qualités de régularité et d’intelligibilité, fournit une prosodie assez artificielle, répétitive, qui renforce l’aspect saccadé de la voix.
En étudiant la prosodie d’énoncés réels, on s’aperçoit vite que les phénomènes de portée différente interagissent entre eux : par exemple, le groupe de souffle final n’a pas la même déclinaison que les autres groupes de souffle. Autre exemple : la forme de l’accent de mot dépend très largement de sa position ; il peut être montant ou descendant, fort ou faible, plutôt marqué en intensité ou en hauteur, selon sa position dans le tronçon, le nombre de syllabes pleines et la nature de la frontière s’il est en position finale. Une forme standard de l’accent de mot, superposée à une forme standard de chaque type de frontière, fournit un résultat qui peut être très éloigné de la réalité. De même, la saillance prosodique (modèle pragmatique) se manifeste de façon différente suivant le nombre de syllabes pleines et la position intermédiaire ou terminale du tronçon dans la phrase.
Malgré l’utilisation de contours naturels, un modèle normalisé reste nécessaire, à la fois pour combler les lacunes inévitables du modèle naturel et pour l’encadrer. Nous avons donc développé un modèle normalisé plus fin, moins superpositionnel, incluant autant que possible une interaction entre les domaines de portée différente.
Ainsi, dans ce modèle, de nouveaux paramètres ont été ajoutés, à la fois afin de l’enrichir et afin de tenir compte de certaines interactions constatées entre domaines :
- les déclinaisons comportent non seulement un offset et une pente, mais aussi une courbure,
- la déclinaison de groupe de souffle terminal est ajoutée,
- l’accent initial des tronçons de 2 syllabes pleines est distinct de celui des tronçons de 3 syllabes pleines et plus (en vertu de la règle selon laquelle l’accent initial s’efface en français sur les tronçons de 2 syllabes pleines),
- l’accent final sur les monosyllabes est distinct de celui sur les polysyllabes,
- la saillance (tronçon parenthétique, normal, saillant) n’est plus superposée aux autres domaines, mais ajoutée à la combinatoire (multiplication par 3 des cas),
- l’accent de mot (absent, secondaire, primaire) n’est plus superposé aux autres domaines, mais ajouté à la combinatoire (multiplication par 3 des cas).
Il est certain que ce modèle plus riche entraîne, par sa combinatoire, une augmentation considérable des données à créer, par rapport à la superposition. Nous passons ainsi, pour les accents, de 38 lignes de 7 valeurs dans l’ancien modèle, à 1323 lignes de 7 valeurs. Cependant, dans le même temps, nous avons automatisé la création de ces données à partir de celles des contours prosodiques naturels : le programme de compilation de ces contours, qui crée les ressources utilisables par la synthèse, crée aussi les données du modèle normalisé, par calcul de moyenne sur chaque paramètre. Ainsi, le modèle normalisé est maintenant construit au plus près des valeurs naturelles, tout en gommant par effet de moyenne les valeurs les plus extrêmes. Il est à la fois plus fidèle aux contours naturels et utilisable comme garde-fou pour ceux-ci. Les défauts des contours naturels sont fortement atténués, mais les variations plus fines à l’intérieur des frontières sont intégralement conservées. Le résultat est plus naturel tout en présentant moins de défauts.
Nous constatons d’ores et déjà, au vu des paramètres générés, que la combinatoire fournit des valeurs incompatibles avec la superposition, confirmant ainsi notre hypothèse. La seule exception – où la création d’un type particulier s’avère inutile – est l’accent initial des tronçons de 2 syllabes pleines : contrairement à une idée répandue, non seulement cet accent n’est pas absent, mais ses valeurs ne diffèrent pas significativement de celles obtenues pour 3 syllabes ou plus. Ce résultat est un exemple – parmi d’autres – de l’interaction entre la recherche appliquée et la recherche fondamentale, non seulement dans le sens fondamental > appliqué mais aussi en retour dans le sens appliqué > fondamental.
Nous avons également utilisé le compilateur de contours prosodiques pour étudier la relation entre déclinaison et nombre de syllabes du domaine concerné. L’hypothèse était que la déclinaison tend vers une différence (d’une valeur initiale à une valeur finale) lorsque le nombre de syllabes est important et vers une pente lorsqu’il se réduit et tend vers une seule syllabe. Cette hypothèse – intuitive dans l’ancien modèle – a été invalidée : la déclinaison reste une différence constante quel que soit le nombre de syllabes, avec certes une dispersion croissante lorsque le nombre de syllabes diminue, mais une remarquable constance moyenne sur toute la gamme de valeurs, pour les trois domaines considérés, paragraphe, phrase et groupe de souffle, aussi bien en français qu’en anglais ou en wolof.
Génération de la prosodie
Grâce aux balises d’analyse présentes dans le texte phonétique, le générateur de prosodie fabrique d’abord l’enveloppe prosodique normalisée à partir des paramètres du modèle. Puis il va chercher dans la base le contour prosodique naturel qui convient le mieux à chaque tronçon (calcul de la distance entre la clé d’analyse et les clés de la base grâce à une fonction de coût). Les contours absents sont remplacés par ceux du modèle normalisé. L’enveloppe prosodique naturelle est obtenue par concaténation des contours sélectionnés. Après application d’un calcul correctif en fonction de la distance avec le contour normalisé, l’enveloppe résultante est calculée. Elle définit l’ensemble des variations à appliquer au signal de parole.
Synthèse par diphones
Les langues comportent pour la plupart entre 25 et 50 phonèmes. Certains phonèmes présentant plusieurs réalisations phonétiques possibles, on parlera plutôt de phones pour désigner chaque réalisation. A partir de la voix d’un locuteur, on extrait une base de diphones, c’est-à-dire entre 1000 et 2000 segments de signal – selon la langue – qui seront ensuite normalisés et concaténés pour former le signal acoustique de parole. Chaque segment s’étend de la moitié d’un phone à la moitié du suivant. L’interface entre les segments étant le phone, le nombre de segments différents nécessaires à la fabrication de n’importe quel énoncé reste inférieur ou égal au carré du nombre de phones de la langue.
Pourquoi la synthèse par diphones ?
Nous soulevons ici le problème de la qualité intrinsèque de la voix synthétique, qui entre pour une large part dans l’intelligibilité, le naturel et l’agrément d’écoute. Pourquoi continuer à développer une synthèse par diphones alors que d’excellents systèmes de synthèse à base de corpus existent dans l’industrie depuis le début des années 2000 ?
D’une part, les laboratoires n’ont pas les moyens de l’industrie, la synthèse par corpus exigeant des outils de traitement très puissants et des moyens humains importants pour obtenir la qualité requise. A défaut, leur qualité tombe rapidement en dessous de celle des systèmes par diphones.
D’autre part, une bonne partie de notre recherche concerne la prosodie et la transplantation prosodique, et dans ce cadre, comme nous allons le voir, la synthèse par diphones est plus adaptée que la synthèse par corpus.
Enfin, la qualité des voix que nous développons, leur intelligibilité et notre modèle prosodique naturel en cours d’achèvement, font de notre système non seulement un excellent outil pour la recherche sur la prosodie, mais aussi un système efficace, robuste, peu exigent en ressources et agréable à utiliser, tant par les déficients visuels que par le grand public, même si, à la première écoute, il semble beaucoup plus artificiel que les systèmes industriels.
La synthèse par diphones utilise une base de taille minimale, contenant une seule instance de chaque diphone dans chaque langue. Chaque diphone est sélectionné parmi de nombreuses occurrences pour ses qualités acoustiques, son intelligibilité, la qualité du raccordement avec les voisins et son aptitude à supporter les variations prosodiques. Par conséquent, la synthèse par diphones produit une voix hyper-articulée et peu naturelle, mais très intelligible, homogène, souple et capable de supporter des variations prosodiques assez importantes [1]. Pour ces raisons, le transfert de contours prosodiques naturels sur les énoncés en synthèse par diphones cause peu de dégradations du signal.
La stabilité et la neutralité de la voix par diphones permettent notamment de focaliser l’attention du sujet sur la prosodie lors des expériences perceptives. Pour cette raison, les synthèses par diphones, Kali aussi bien que MBROLA, sont largement utilisés dans les recherches sur la prosodie.
De son côté, par principe, la synthèse par corpus reproduit les plus grandes séquences possibles de voix naturelle enregistrée. Pour cette raison, la prosodie de ces séquences n’est pas modifiée afin de leur conserver l’aspect le plus naturel possible. L’utilisation d’une telle synthèse dans le cadre d’expériences mettant en œuvre des contours prosodiques différents de ceux d’origine, pose le problème de la modification prosodique de la parole naturelle. Si par exemple on essaie de ralentir des syllabes prononcées rapidement, donc sous-articulées, on obtient un résultat peu probant donnant une impression d’insuffisance articulatoire. A l’inverse, si on accélère des syllabes prononcées lentement, donc bien articulées, la parole obtenue semble débitée à vitesse excessive. De la même façon, des dégradations se produisent pour les variations de hauteur et d’intensité. Globalement, dès que la prosodie à tester s’éloigne de l’original, le résultat produit est étrange et peu exploitable. La synthèse par corpus fournit de très belles voix, mais leur prosodie ne doit pas être modifiée. Chaque voix constitue un modèle prosodique figé : celui du locuteur dans le cadre de ses enregistrements.
Bases de diphones de Kali
Nos bases de diphones sont fabriquées à l’aide d’un logiciel de traitement de la parole développé dans notre laboratoire, par prélèvement à partir de voix naturelles enregistrées. A chaque locuteur correspond une base de diphones spécifique, donnant au système de synthèse vocale la voix de ce locuteur. Un corpus de phrases à lire destiné au prélèvement des diphones a été mis en place pour chaque langue, l’enregistrement de chaque locuteur étant effectué à la fréquence d’échantillonnage de 22050 Hz. Le nombre de phrases, d’environ 3 à 5 secondes, varie de 150 en français à 234 en anglais (davantage de phonèmes), soit des corpus de 10 à 15 minutes. Ces phrases, sortes de cadavres exquis, sont fabriquées de façon à contenir chacune 3 à 4 diphones peu fréquents, différents pour chaque phrase, tout en restant assez facilement prononçables. Une plus grande concentration de diphones rares permettrait de diminuer encore le nombre de phrases, mais au prix d’une plus grande difficulté à les fabriquer et à les prononcer.
L’agencement des diphones étant différent pour chaque message à synthétiser, il est nécessaire que ceux-ci soient normalisés pour éviter les discontinuités de fréquence fondamentale, d’intensité, de durée, de timbre et de phase. Il faut donc établir une norme portant sur chacun de ces paramètres, pour chaque phone interface entre les diphones. Sur un jeu de 34 x 34 diphones, un même phone est présent 68 fois à l’une ou l’autre extrémité des diphones.
Hauteur et intensité : la moyenne de ces 68 occurrences donne une valeur assez précise que nous pouvons considérer comme la norme du phone considéré pour le locuteur choisi, les différentes prosodies se trouvant neutralisées. La normalisation consiste alors à modifier les extrémités des diphones pour les faire correspondre à cette norme, les valeurs intermédiaires étant calculées par interpolation.
Durée : la durée des diphones ne peut pas être calculée de cette façon, car chaque occurrence de diphone est un exemplaire unique, d’où une grande dispersion des valeurs de durée. Nous avons donc construit un modèle de durée dépendant de la catégorie de chacun des deux phones constituant le diphone (voyelle, glissante, fricative sourde, fricative voisée, etc.) à partir de mesures des durées dans des parties non accentuées de corpus oraux. Le diphone est alors allongé ou raccourci pour coïncider avec la durée modèle.
Timbre et phases : la normalisation de timbre et de phase se fait par mélange progressif avec un phonème type obtenu par calcul, aux extrémités du diphone.
Les traitements que nous venons d’évoquer sont pour la plupart fondés sur le phénomène de quasi-périodicité du signal vocal dans ses parties voisées. Ils nécessitent une synchronisation des méthodes de calcul sur les périodes de ces parties et impliquent de ce fait un repérage préalable de celles-ci par le logiciel de développement (voir chapitre correspondant).
Jeu de phones de Kali en français
Un jeu de 34 phones (dont le silence), codés chacun sur un seul octet en ANSI pour simplifier les traitements, a été défini : 13 voyelles, 20 consonnes dont 3 glissantes, 1 silence.
ph. | exemples avec transcriptions |
ù | soupir = /sùpi:r/ |
o | mot = /mo/, auto = /oto/, eau = /o/ |
ö | bol = /böl/ |
u | public = /publik/ |
i | pile = /pil/, stylo = /stilo/ |
a | canard = /kana:r/ |
â | chanter = /hâ:té/, lent = /lâ/ |
ô | pont = /pô:/ |
e | petit = /peti/, jeu = /je/ |
ë | seul = /sël/ |
é | carré = /karé/, balai = /balé/ |
è | élève = /élèv/, pêche = /pè:h/, laine = /lèn/, peine = /pèn/ |
î | vin = /vî/, pain = /pî/, rein = /rî/, un = /î/ |
———————————- | |
y | yaourt = /yaùrt/, yeux = /ye:/, bille = /biy/, montagne = /mô:tany/ |
w | oui = /wi/, wapiti = /wapiti/ |
µ | lui = /lµi/ |
———————————- | |
f | finir = /fini:r/ |
s | stylo = /stilo/, poisson = /pwasô/, cinéma = /sinéma/, leçon = /lesô/ |
h | chat = /ha/, short = /hört/ |
v | vélo = /vélo/ |
z | zéro = /zéro/, poison = /pwa:zô/ |
j | jouet = /jwé/, gîte = /ji:t/ |
p | petit = /peti/, appartenir = /aparteni:r/ |
t | tasse = /ta:s/, patte = /pat/, thèse = /tè:z/ |
k | carré = /karé/, accord = /akö:r/, chrome = /kro:m/, képi = /képi/ |
b | cube = /kub/, abbé = /abé/ |
d | rude = /rud/, addition = /adisyô/ |
g | gare = /ga:r/, aggraver = /agravé/, guitare = /gita:r/ |
m | rame = /ram/, pomme = /pöm/ |
n | laine = /lèn/, donner = /döné/ |
q | camping = /kâ:piq/ |
l | lait = /lé/, ville = /vil/ |
r | roi = /rwa/, carré = /karé/ |
, | unité de silence d’environ 1 phone de durée |
Le code du schwa n’a pas été défini, celui-ci prenant la valeur /e/ lorsqu’il est réalisé, absent lorsqu’il ne l’est pas. Pour simplifier, les valeurs intermédiaires du schwa (donc partiellement réalisé) ne sont pas considérées. Elles le sont en revanche pour la parole hyper-articulée (voix “HA_Benoit”) où la distinction est plus marquée.
Le symbole ’:’ marque un allongement de 20 % de la voyelle précédente (voir transcription).
Le nombre de diphones du français dans Kali est de 34² = 1156.
Jeu de phones de Kali en anglais
Un jeu de 55 phones (dont le silence) a été défini : 28 voyelles dont 4 “consonnes syllabiques”, 26 consonnes dont 2 glissantes, 1 silence.
phone exemples avec transcriptions
ph. | exemples avec transcriptions |
ù | fool = /f’ù:l/, few = /fy’ù:/, influenza = /;Inflù‘ènzë/ |
i | seen = /s’i:n/, bead = /b’i:d/, university = /y;ù:nIv’3sëTi/ |
U | full = /f’Ul//, soot = /s’UT/, poor = /P’U2/ |
ü | boat = /b<‘Ëü>T/, no = /n<‘Ëü>/ |
ú | now = /n’aú/, house = /H’aús/, hour = /’a<úë>/ |
I | sit = /s’IT/, here = /H’I1/, beer = /b’I1/, year = /y’I1/ |
í | boy = /b’öí/, voice = /v’öís/ |
ï | rain = /r’éïn/, bay = /b’éï/, fate = /f’éïT/ |
ì | try = /Tr’aì/, five = /f’aìv/, fire = /f’a<ìë>/ |
ö | call = /K’ö:l/, boy = /b’öí/, voice = /v’öís/ |
5 | fork = /f’5K/ |
ë | above = /ëb’Av/, letter = /l’èTë/, hour = /’a<úë>/, fire = /f’a<ìë>/, Yorkshire = /y’5khë/ |
Ë | boat = /b<‘Ëü>T/, no = /n<‘Ëü>/ |
3 | bird = /b’3d/, work = /w’3K/, burn = /b’3n/ |
2 | poor = /P’U2/ |
1 | here = /H’I1/, beer = /b’I1/, year = /y’I1/ |
0 | fair = /f’è0/, tare = /T’è0/ |
é | rain = /r’éïn/, bay = /b’éï/, fate = /f’éïT/ |
è | bed = /b’èd/, fair = /f’è0/, tare = /T’è0/ |
O | dog = /d’Og/, wash = /w’Oh/, want = /w’Ont/ |
A | fun = /f’An/, come = /K’Am/ |
E | bad = /b’Ed/ |
a | calm = /K’a:lm/, now = /n’aú/, try = /Tr’aì/, hour = /’a<úë>/, fire = /f’a<ìë>/ |
4 | card = /K’4d/ |
———————————- | |
M | rhythm = /r’IZM/ |
N | reason = /r’i:zN/ |
L | apple = /’EPL/ |
R | operation = /;OPR‘éïhN/ |
———————————- | |
y | year = /y‘I1/ |
w | win = /w‘In/ |
———————————- | |
f | fan = /f‘En/ |
S | thin = /S‘In/ |
s | sun = /s‘An/, presence = /Pr’èzN<t>s/, pizza = /P’i:<t>së/ |
h | shop = /h‘OP/, cheese = /<t>h‘i:z/ |
H | home = /H<‘Ëü>m/ |
v | van = /v‘An/ |
Z | this = /Z‘Is/ |
z | zone = /z<‘Ëü>n/ |
j | vision = /v’IjN/, just = /<d>j‘AsT/ |
p | speak = /sp‘i:K/, captain = /K’EpTIn/ |
P | part = /P‘4T/ |
t | start = /st‘4T/, rightful = /r’aìtfL/ |
T | try = /Tr’aì/ |
k | skin = /sk‘In/, Yorkshire = /y’5khë/ |
K | kid = /K‘Id/ |
b | bat = /b‘ET/ |
d | dog = /d‘Og/ |
g | go = /g<‘Ëü>/ |
m | mad = /m‘Ed/ |
n | not = /n‘OT/ |
q | ring = /r’Iq/, bank = /b’E<q>K/, english = /’I<qg>lIh/ |
l | lad = /l‘Ed/ |
r | trip = /Tr‘IP/ (r sourd) |
® | arrow = /’E®<Ëü>/ (r voisé) |
, | unité de silence d’environ 1 phone de durée |
Le symbole ’:’ marque un allongement de 40 % de la voyelle précédente.
L’apostrophe représente l’accent primaire, le point-virgule l’accent secondaire.
Les voyelles longues /3/ /4/ et /5/ ne sont pas suivies de la marque d’allongement, car leur modèle de durée est celui de voyelles longues, alors que les voyelles /i/ et /ù/ peuvent être courtes ou longues.
Les symboles ’<>’ entourant des phones marquent un raccourcissement de 25% de ceux-ci, notamment utilisé pour fabriquer les consonnes affriquées.
Les 8 diphtongues sont fabriquées à l’aide de deux phones : /U2/, /I1/, /Ëü/, /éï/, /è0/, /öí/, /aú/, /aì/. Les codes de ceux-ci diffèrent majoritairement de ceux des voyelles simples, contrairement aux conventions des manuels qui simplifient en idéalisant la réalisation des diphtongues (représentation phonologique). En réalité, le phone de départ et/ou le phone d’arrivée sont souvent intermédiaires entre les deux valeurs conventionnelles. La diphtongue /Ëü/ est généralement plus courte que les autres, d’où la notation /<Ëü>/.
Le nombre de diphones de l’anglais dans Kali est théoriquement de 55² = 3025, mais compte tenu des nombreuses combinaisons impossibles (r + consonne, certaines voyelles longues + voyelle, etc.) et des combinaisons contraintes des diphtongues, leur nombre se trouve ramené à 1904.
Jeu de phones de Kali en wolof
Un jeu de 31 phones (dont le silence) a été défini : 10 voyelles (pour 18 réalisations), 20 consonnes dont 2 glissantes (pour 24 réalisations), 2 silences dont un arrêt glottal.
phone exemples avec transcriptions
ph. | exemples avec transcriptions |
u | tur = /tur/, tuur = /tu:r/ |
i | nit = /nit/, niit = /ni:t/ |
o | bóli = /boli/, bóoli = /bo:li/ |
ö | xol = /xöl/, xool = /xö:l/ |
ë | bëñ = /bëñ/, sëer = /së:r/ |
é | wér = /wér/, wéer = /wé:r/ |
è | set = /sèt/, seet = /sè:t/ |
a | war = /war/, waar = /wa:r/ |
à | tàyyi = /tày;i/, sànk = /sà<Nk>@/, gajjàan = /gaj;à:n/ |
@ | gënn = /gën;@/, guyy = / guy;@/, xucc = /xuc;@/ |
———————————- | |
w | xewi = /xèwi/, kew = /kèw/, gaaw = /ga:w/ |
y | guy = /guy/, guyy = / guy;@/, tàyyi = /tày;i/ |
———————————- | |
f | far = /far/ |
s | sax = /sax/ |
c | cax = /cax/, xucc = /xuc;@/ |
j | jar = /jar/, mujj = /muj;@/, njaay = /<nj>a:y/ |
p | pax = /pax/ |
t | tàyyi = /tày;i/ |
k | kan = /kan/, sëkk = /sëk;@/ |
b | bax = /bax/, mbey = /<mb>èy/ |
d | dënn = /dën@/, ndar = /<nd>ar/ |
g | gaaw = /ga:w/, wogg = /wög;@/, nguur = /<Ng>u:r/ |
m | max = /max/, mbey = /<mb>èy/ |
n | nar = /nar/, gën = /gën/, gënn/gën;@/, njaay = /<nj>a:y/, ndar = /<nd>ar/ |
ñ | woñ = /wöñ/, woññ = / wöñ;@/ |
N | ?aa? ou ngaang = /Na:N/, nguur = /<Ng>u:r/, sànk = /sà<Nk>/ |
l | lax = /lax/, fel = /fel/, fell = /fel;@/ |
r | xër = /xër/, wor = /wör/ |
x | xar = /xar/, wax = /wax/ |
q | soq = /söq/ |
¶ | arrêt glottal d’environ 1 phone de durée (pour éviter l’hiatus) |
, | unité de silence d’environ 1 phone de durée |
Le symbole ’:’ marque un allongement de 70 % de la voyelle précédente (voyelles doubles). Le symbole ’;’ marque un allongement de 40 % de la consonne précédente (géminées).
Les symboles ’<>’ entourant des phones marquent un raccourcissement de 25% de ceux-ci, notamment utilisé pour fabriquer les consonnes prénasales.
Le nombre de diphones du wolof dans Kali est de 31² = 1001.
Génération de la parole
Le générateur de parole convertit la chaîne phonétique en un signal de parole par concaténation des diphones de la base. Les variations prosodiques calculées sont appliquées en temps réel. Le signal de parole est envoyé en continu vers les haut-parleurs à fréquence d’échantillonnage constante. Cette tâche se fait en même temps que les autres tâches de l’ordinateur : le programme de l’utilisateur reste actif et peut par exemple modifier les réglages, demander où en est la parole, l’interrompre, etc.
Les diphones étant normalisés, leur concaténation est possible sans modification. Le signal obtenu est une voix sans prosodie. Cela ne signifie pas que ce signal soit perçu comme une voix chantée sur une même note : en effet, sa fréquence fondamentale n’est pas constante du fait de la micro-prosodie intrinsèque à chaque diphone. La perception est celle d’une voix plate, mais parlée.
Avant de concaténer les diphones, le générateur de parole calcule l’enveloppe prosodique de tout l’énoncé, voyelle par voyelle (voir génération de la prosodie). Ensuite, durant la fabrication de la parole, la prosodie est calculée pour chaque période du signal par interpolation polynomiale d’ordre 5 pour l’intensité et la hauteur, linéaire pour la durée. Les balises de modification locale de durée ’:’ et ’<>’ produits par la transcription graphème-phonème sont elles aussi interprétées durant la fabrication de la parole, les valeurs associées étant superposées à celles de prosodie. D’autres balises de ce type peuvent être créées et utilisées par la transcription. Toutes sont définies dans un fichier, associées à leurs paramètres : variation de hauteur, intensité et durée, type (action sur le phonème suivant, encadrement d’un groupe de phonèmes, ou allongement de la partie centrale du phonème précédent).
Les variations d’intensité sont appliquées aux échantillons sous forme d’un facteur multiplicatif progressif. Les variations de hauteur et de durée font l’objet d’un traitement particulier sur les périodes (ci-dessous).
Au fur et à mesure de sa construction, le signal de parole est envoyé dans le tampon de la carte-son qui le diffuse à la fréquence d’échantillonnage de 22 050 Hz. Les codes d’index présents dans le texte, comptés dès le début des opérations, ont traversé les différents modules jusqu’au texte phonétique. Chaque fois que le générateur de parole les rencontre, il les décompte et les associe aux échantillons envoyés dans le tampon. Pendant ce temps, le programme de l’utilisateur reste disponible pour d’autres tâches (ce qui lui permet par exemple de demander la position de lecture ou de l’arrêter), le traitement du signal étant effectué en tâche de fond.
Modification de la fréquence fondamentale et de la durée
Les méthodes utilisées pour modifier la fréquence fondamentale et la durée se font en restant dans le domaine temporel, ce qui présente l’avantage de nécessiter relativement peu de calculs, et par conséquent de pouvoir les appliquer en temps réel pendant la production de la parole, tout en conservant au mieux la qualité du timbre original.
Le principe est le suivant : le signal de période courante T est découpé en signaux élémentaires de largeur 2T, résultant du produit du signal d’origine par une fenêtre sinusoïdale, de largeur 2T, centrée sur la partie de plus forte énergie de chaque période. Si on ne change rien, la somme des signaux élémentaires, qui se recouvrent mutuellement sur la largeur d’une période, reproduit le signal d’origine (figure).
La diminution de la période consiste à faire glisser les signaux élémentaires sans les déformer en diminuant la largeur des fenêtres sinusoïdales, de façon à conserver une répartition uniforme de l’énergie. L’augmentation de la période consiste en l’opération inverse, à ceci près qu’il n’est pas souhaitable de dilater les fenêtres, car, trop larges, elles contiendraient alors des traces non négligeables de la périodicité d’origine, créant des phénomènes de réverbération préjudiciables à la qualité de la parole. Les fenêtres sont donc écartées sans modification, ce qui réduit sensiblement l’intensité mais ne détériore pas significativement la qualité de la voix synthétique. En revanche, les parties non ou peu voisées (en pratique inférieures à un certain taux de voisement) dont la périodicité est absente ou négligeable, peuvent bénéficier de la dilatation des fenêtres, évitant ainsi un phénomène de périodisation, qui serait lui aussi préjudiciable à la qualité de la voix.
La modification de durée (ou de son inverse, la vitesse de phonation) est effectuée en dupliquant ou en retirant des signaux élémentaires.
L’évaluation perceptive de nos méthodes de modification nous a permis d’obtenir les résultats suivants (F0 = fréquence fondamentale, V = vitesse de phonation) :
- F0 ± 3 tons : détérioration négligeable
- F0 ± 1 octave : détérioration nette (acceptabilité moyenne)
- V x 2 ou V / 2 : détérioration faible (mais effet d’excès ou d’insuffisance articulatoire)
- V x 3 ou V / 3 : détérioration nette (acceptabilité moyenne)
Les variations maximales dues à la prosodie dépassent rarement 3 tons sur la fréquence fondamentale et un rapport 2 localement sur les durées. En conséquence, nos méthodes de modification ont peu d’influence sur la qualité finale de la voix synthétique.
Fonctions de Kali (réglages généraux de la voix)
- Hauteur : 0 à 15, valeur de base 6, incrémentation par demi-tons, soit des rapports de 1,0595
- Débit : -2 à 20 (initialement 0 à 15), valeur de base 5, incrémentation par tons, soit des rapports de 1,1225
- Volume : 0 à 15, valeur de base 10, incrémentation par l’équivalent de 2 tons en amplitude, soit des rapports de 1,26
- Voix
- Langue
- Mode de lecture : littéraire, sans abréviations, dictée ou calcul
- Mode comptabilité (utilisation de séparateurs de milliers)
- Mode épellation internationale (de type alpha bravo charlie)
- Mode hyper-articulé (voix très lente et ajout de nombreux e muets et liaisons)
- Quantité de prosodie : 0 à 16, valeur de base 8 (facteur multiplicatif)
- Silence : 0 à 16, valeur de base 8 (durée relative des silences dus à la ponctuation)
- Prosodie naturelle : 0 à 16, valeur de base 8 (0 = prosodie normalisée, 16 = relâchement maximal de la contrainte sur les contours naturels)
Ces réglages peuvent également être effectués en plaçant des balises dans le texte aux endroits où ils doivent s’appliquer.
Commandes de Kali
- Lecture du texte
- Demande de la position de lecture dans le texte
- Arrêt immédiat de la lecture