Lire un texte à voix haute, proprement
Version audio d'un contenu avec une voix de synthèse ou la sienne, sans confondre audio et accessibilité.
Une version audio d'un texte sert deux publics qu'on confond souvent. D'un côté, les personnes qui ne peuvent pas lire l'écran, ou pour qui lire coûte cher : déficience visuelle, dyslexie, fatigue cognitive. De l'autre, celles qui pourraient lire mais préfèrent écouter, en marchant, en conduisant, en faisant autre chose.
Ces deux publics n'ont pas les mêmes besoins, et c'est la source de la plupart des mauvaises implémentations. Le premier a besoin que la page soit correctement structurée, pas d'un bouton « écouter ». Le second a besoin d'un fichier audio qu'on peut mettre en pause et reprendre.
Ce guide traite les deux, avec une frontière nette : on parle ici de voix de synthèse, ou de sa propre voix. Pas de la voix de quelqu'un d'autre.
La voix d'une autre personne est hors sujet ici
Reproduire ou imiter la voix d'une personne identifiable sans son accord écrit est interdit, ou attaquable, dans la plupart des pays. Plusieurs législations visent explicitement la réplique vocale générée : le Tennessee avec l'ELVIS Act, d'autres États américains via le droit à l'image et à la voix, et plusieurs pays européens via le droit de la personnalité et les nouvelles règles de transparence sur les contenus générés. Ce guide ne couvre que deux cas : une voix de synthèse générique, ou ta propre voix. Si tu veux utiliser celle d'un tiers, la seule réponse est un accord écrit explicite, précisant l'usage et sa durée.
Avant de commencer
- Un texte propre, sans balises parasites
- Python si tu veux générer les fichiers localement
- Un casque, pour écouter le résultat en entier au moins une fois
1Ne pas confondre audio et accessibilité
C'est l'erreur la plus fréquente, et la plus coûteuse : ajouter un bouton « lire l'article » en pensant avoir traité l'accessibilité.
Les personnes qui utilisent un lecteur d'écran ont déjà un outil de synthèse vocale, réglé à leur vitesse, avec leur voix, et qui sait naviguer par titres, par liens et par régions. Un bouton de lecture maison leur est au mieux inutile, au pire une gêne : il lit d'un bloc ce qu'elles parcourent normalement de façon structurée.
Ce qui aide réellement ces personnes est ailleurs :
- Des titres hiérarchisés dans le bon ordre, qui servent de sommaire navigable.
- Des textes alternatifs sur les images porteuses d'information.
- Un attribut
langcorrect sur la page, et sur les passages dans une autre langue. Sans lui, la synthèse lit du français avec une prononciation anglaise. - Des libellés de liens explicites, parce qu'un lecteur d'écran peut lister les liens hors de leur phrase.
La version audio est un service, pas une mise en conformité
Produire un fichier audio est utile, et c'est une bonne chose à faire. Mais ça ne remplace aucun des points ci-dessus. Traite la structure d'abord, l'audio ensuite.
2Préparer le texte avant de le donner à lire
Un texte écrit pour l'œil se lit mal à voix haute. Quatre nettoyages font l'essentiel de la différence.
- Les éléments non lisibles. Les URL, les tableaux, les blocs de code et les notes de bas de page produisent du bruit. Il faut décider pour chacun : le retirer, ou le remplacer par une formulation parlée.
- Les abréviations et les sigles. Certains se prononcent lettre par lettre, d'autres comme un mot. Une synthèse se trompe régulièrement, et il vaut mieux écrire la forme voulue dans le texte destiné à la lecture.
- Les nombres et les unités. « 1,5 M€ » se lit rarement bien. Écris « un million et demi d'euros » dans la version audio.
- Les respirations. Une phrase de quarante mots passe à l'écrit et étouffe à l'oral. Coupe.
La conséquence pratique : garde deux versions du texte, celle qui s'affiche et celle qui se lit. La seconde se génère à partir de la première.
Transforme ce texte en version destinee a une lecture a voix haute.
Regles : remplace chaque URL par une formulation parlee, developpe les
sigles a leur premiere occurrence, ecris les nombres en toutes lettres,
supprime les blocs de code et remplace-les par une phrase decrivant ce
qu'ils font, coupe les phrases de plus de trente mots. Rends-moi le texte
et, a part, la liste des elements que tu as retires.
La liste demandée à la fin permet de vérifier que rien d'important n'a disparu.
3Lire dans le navigateur, sans fichier
Pour un usage simple, l'API de synthèse vocale du navigateur suffit et ne coûte rien. Elle est disponible dans les navigateurs courants depuis septembre 2018.
L'objet speechSynthesis expose speak(), cancel(), pause(), resume() et
getVoices(), ainsi que les propriétés en lecture seule speaking, paused et
pending. Le texte se passe dans un objet SpeechSynthesisUtterance :
const enonce = new SpeechSynthesisUtterance("Bonjour, voici l'article.");
enonce.lang = "fr-FR";
enonce.rate = 1;
enonce.pitch = 1;
speechSynthesis.speak(enonce);
Les plages de valeurs sont documentées : rate va de 0,1 à 10 avec 1 par
défaut, pitch de 0 à 2 avec 1 par défaut, volume de 0 à 1 avec 1 par défaut.
Un piège classique : getVoices() peut renvoyer une liste vide au premier
appel, parce que les voix se chargent de façon asynchrone. L'événement
voiceschanged sert exactement à ça.
speechSynthesis.addEventListener("voiceschanged", () => {
const voix = speechSynthesis.getVoices().filter((v) => v.lang.startsWith("fr"));
console.log(voix.map((v) => v.name));
});
Les voix disponibles dépendent du système et du navigateur. Tu ne contrôles ni leur qualité, ni leur présence : prévois un repli si aucune voix française n'est installée.
4Produire un fichier audio local
Dès qu'il faut un fichier téléchargeable, réécoutable et identique partout, il
faut une synthèse hors navigateur. piper fonctionne localement, sans appel
réseau au moment de la génération :
pip install piper-tts
python3 -m piper.download_voices en_US-lessac-medium
python3 -m piper -m en_US-lessac-medium -f test.wav -- 'This is a test.'
Le drapeau -m désigne le modèle de voix, -f le fichier de sortie, et le texte
suit après --. Le français fait partie des langues prises en charge, listé sous
fr_FR : télécharge une voix française et remplace le nom du modèle dans les
deux commandes.
Écoute le fichier en entier avant de le publier
Les erreurs de synthèse ne se voient pas dans le texte source. Un nom propre massacré, une liaison ratée, une phrase lue d'une traite sans respiration : seul l'oral les révèle. Sur un texte long, ça prend le temps de la lecture, et il n'y a pas de raccourci.
5Publier proprement
L'élément audio avec l'attribut controls suffit, et il faut y ajouter un lien
de téléchargement direct :
<audio controls src="/audio/article.mp3"></audio>
<a href="/audio/article.mp3">Télécharger la version audio</a>
Trois règles complètent la publication. preload="none" ou preload="metadata"
évite de télécharger le fichier à chaque affichage de page. Aucun autoplay :
un son qui démarre seul est une nuisance, et il perturbe les lecteurs d'écran.
Enfin, le texte écrit reste la version de référence : l'audio le double, il ne le
remplace pas.
Si la voix employée est une voix de synthèse, dis-le en une ligne sous le lecteur. Ça évite l'ambiguïté, et ça devient une bonne habitude au moment où les règles de transparence sur les contenus générés se durcissent.
Quelques prompts pour aller plus loin
| Objectif | Prompt à adapter |
|---|---|
| Version orale | Reecris ce texte pour une lecture a voix haute : sigles developpes, nombres en toutes lettres, URL reformulees, phrases de moins de trente mots. |
| Repérage des pièges | Liste dans ce texte les mots, noms propres et sigles qu'une synthese vocale risque de mal prononcer. |
| Audit de structure | Ouvre [URL] et verifie : presence de l'attribut lang, ordre des niveaux de titres, images sans alt, liens dont le libelle est "ici" ou "en savoir plus". |
| Découpage | Decoupe ce texte en segments de moins de [N] caracteres, en coupant sur des fins de phrase, pour une generation audio par lot. |
| Script de génération | Ecris un script qui lit chaque fichier de [DOSSIER], genere un wav avec piper et nomme la sortie d'apres le fichier source. |
| Mention | Propose une phrase courte indiquant que cette version audio a ete produite par une voix de synthese. |
Tu as d’autres ressources comme ça ?
Ce que tu viens de lire est entièrement gratuit. Une nouvelle ressource part chaque semaine dans la newsletter : guides, modèles à copier et liens triés, sans compte à créer.
Me contacter
Une question, un projet, une envie de collaborer ? Écris-moi.
Cette page est en accès libre, n’hésite pas à la partager.