SSML en français : ce que les balises règlent vraiment, mesures à l'appui
Pause, prononciation, emphase : le SSML promet de tout piloter dans une voix de synthèse. Ce qu'une balise de pause a réellement produit sur deux versions de notre moteur, et pourquoi nous ne donnons pas de balises aux rédactions.
Quiconque cherche à faire mieux lire un texte par une voix de synthèse finit par tomber sur trois lettres : SSML. Le Speech Synthesis Markup Language est une norme du W3C (version 1.0 en 2004, 1.1 en 2010) qui permet d'annoter un texte pour le moteur vocal. Une pause de trois cents millisecondes, un mot à épeler, une date à lire comme une date, une prononciation imposée : tout cela s'écrit entre chevrons, au milieu de la phrase.
Sur le papier, c'est la réponse à toutes les fautes de lecture. En pratique, la question est moins « que permet la norme » que « que fait le moteur de la balise qu'on lui donne ». Nous l'avons mesuré sur la plus simple de toutes, la pause, et le résultat dit beaucoup sur ce qu'il faut attendre du reste.
Ce que promettent les balises
Les plus utilisées sont peu nombreuses :
<break>impose un silence d'une durée donnée ;<say-as>indique comment lire un élément (date, nombre, lettres épelées) ;<phoneme>donne la prononciation exacte d'un mot en alphabet phonétique ;<sub>remplace un mot écrit par un autre à l'oral, utile pour un sigle ;<prosody>et<emphasis>jouent sur le débit, la hauteur et l'insistance.
Les moteurs classiques, qui assemblaient la voix à partir de règles, appliquaient ces balises à la lettre. Les voix neuronales récentes ne fonctionnent plus ainsi : elles produisent la phrase d'un bloc, en tenant compte de tout ce qui l'entoure, et la balise devient une contrainte qu'on glisse dans un calcul qui n'a pas été pensé pour elle. Beaucoup de moteurs n'en acceptent qu'une partie, et les documentations le disent parfois à demi-mot.
L'expérience : une pause demandée, une pause mesurée
Le cas est parti d'une remarque d'écoute, en août 2026. Dans la phrase de démonstration de notre page d'accueil (« … un 1er janvier : tout est lu comme vous le diriez »), la voix enchaînait sans marquer le deux-points. Nous avons vérifié d'abord que notre préparation du texte laissait bien passer le signe : elle le transmet intact. La pause était donc entièrement du ressort du moteur.
Nous avons alors mesuré, sur les horodatages mot à mot que le moteur renvoie, le silence au deux-points avec et sans une balise de pause de 300 ms, sur la même phrase et la même voix.
- version d'août 2026 : 0,000 s de silence sans balise, 0,640 s avec la balise de 300 ms ;
- version de septembre 2026 : 0,526 s sans balise, 0,532 s avec.
Trois enseignements, et aucun n'était écrit dans la documentation.
Le chiffre demandé n'est pas le silence entendu. En août, 300 ms demandées ont donné 0,64 s de silence : la balise coupe la génération en deux, et la coupure ajoute son propre blanc. Un rédacteur qui écrirait « 300 ms » en pensant obtenir 300 ms se tromperait du double.
Le défaut a disparu tout seul. La version de septembre marque d'elle-même le deux-points, un peu plus d'une demi-seconde. La balise ne rajoute plus que six millièmes de seconde.
Et elle abîme le reste. Avec la balise, la phrase entière passe de 5,30 s à 5,94 s : tous les mots situés avant le deux-points sont décalés, parce que le moteur, coupé en deux, perd le fil de la phrase et la recadence. Personne ne l'aurait remarqué autrement qu'en mesurant ou en écoutant attentivement.
Nous avons donc retiré la balise pour cette version. Notre règle, désormais : une pause n'est posée que pour un modèle sur lequel elle a été mesurée, et un modèle jamais mesuré n'en reçoit aucune.
Le risque dont on parle peu : la balise lue à voix haute
Il y a pire qu'une balise inutile. Si un moteur cesse un jour d'interpréter une balise (nouvelle version, changement de paramètre), il la lit comme du texte. L'auditeur entend alors quelque chose comme « inférieur break time égale trois cents millisecondes » au milieu d'un article. Aucun contrôle automatique ne détecte ça : le fichier est produit, sa durée est normale, seule une oreille s'en aperçoit.
C'est la raison principale pour laquelle nous ne mettons pas le SSML entre les mains des rédactions. Une balise écrite dans un article en mars peut devenir une phrase absurde en septembre, sans que personne ait touché à l'article.
Ce qui le remplace, pour un texte en français
Ce qu'on demande au SSML, dans un article de presse ou de blog, tient en trois besoins. Chacun a chez nous un levier qui ne dépend pas de la version du moteur.
La pause : la ponctuation. Une virgule, un point, un point-virgule ne donnent pas le même silence, et un paragraphe bien ponctué respire mieux que n'importe quelle balise. Nous avons mesuré l'écart de durée entre deux ponctuations d'un même paragraphe : c'est le premier outil, et le plus stable.
La lecture des dates, nombres et sigles : la préparation du texte. Ce que <say-as> fait à la main, notre préparation le fait avant la synthèse, en français : « 1er », « 15 h 30 », « 3,5 % » sont réécrits dans leur forme parlée. Elle est décrite sur la page text to speech français, avec ses limites.
La prononciation d'un mot : le lexique. À la place de <phoneme> ou <sub>, le lexique de prononciation s'écrit une ligne par mot, au format mot = prononciation, en orthographe ordinaire, sans alphabet phonétique. Il s'applique au mot entier, respecte la majuscule initiale, et passe avant chaque synthèse, y compris en mode Lecture fidèle. Il est réservé aux comptes payants.
Ce que nous n'offrons pas : l'emphase et la prosodie réglées mot par mot. Les voix neuronales les rendent mal par balise, et un article ne se « joue » pas comme un texte de comédien.
Faut-il pour autant oublier le SSML ?
Non, si vous construisez vous-même une application vocale, avec un moteur dont vous maîtrisez la version et le temps de tout réécouter après chaque mise à jour. Le SSML reste alors un outil précis. Mais si vous publiez des articles, la bonne question à poser à un fournisseur n'est pas « acceptez-vous le SSML ? ». C'est : « que se passe-t-il pour mes balises quand votre moteur change ? » S'il n'a jamais mesuré la réponse, vous la découvrirez à l'écoute.
Sonorisez vos articles avec WeDispatch
Ce blog sera lui-même sonorisé par WeDispatch. Envie de voir ce que ça donne sur vos contenus ?
Demandez une démo