Synthèse vocale pour les sites WPML : ce qui fonctionne vraiment
Si vous gérez un site WPML et souhaitez que chaque traduction dispose de sa propre narration dans la bonne voix, le plugin que vous choisissez doit faire trois choses correctement : lire l'article traduit, générer un fichier audio distinct par langue et détecter la langue active dans les appels AJAX. La plupart des plugins de synthèse vocale échouent sur l'un de ces points. Synthèse vocale - TTSWP a été conçu pour gérer les trois.
Cet article est le pendant pratique de notre guide Weglot. L'approche technique est à l'opposé, et nous allons commencer par expliquer pourquoi.
WPML stocke les traductions comme de vrais articles. Weglot non.
WPML et Weglot résolvent le problème du multilinguisme dans WordPress de façons très différentes, et cette différence détermine ce qu'un plugin de synthèse vocale doit faire.
WPML crée un article distinct pour chaque traduction. La version française d'un article existe dans wp_posts avec un identifiant. La version espagnole se trouve dans la même table avec un identifiant différent. WPML les relie via la table icl_translations. Le texte traduit est un vrai texte en base de données, édité par un humain ou par le pipeline de traduction automatique de WPML.
Weglot fonctionne à l'inverse. La base de données ne contient que l'original. Les traductions sont produites à la volée et injectées dans le HTML de sortie avant que la page n'atteigne le navigateur. Un plugin qui lit depuis get_post() sur un site Weglot ne voit jamais que la langue source.
Pour la synthèse vocale, cela change tout. Avec WPML, lire le contenu de l'article depuis la base de données est la bonne approche. Le texte traduit est déjà là. Les points de défaillance concernent quel article le plugin lit, quelle langue il croit être active, et s'il stocke un ou plusieurs fichiers audio.

Les quatre points de défaillance des plugins de synthèse vocale WPML
Nous avons testé plusieurs configurations sur un site WPML multilingue de staging. Les mêmes quatre problèmes revenaient systématiquement. Si votre plugin actuel présente l'un d'eux, l'audio que vos visiteurs entendent n'est pas celui que vous pensez avoir publié.
1. Audio dans la mauvaise langue à cause d'une détection AJAX défaillante
C'est le problème silencieux par excellence. La plupart des lecteurs de synthèse vocale récupèrent le fichier audio ou l'URL de flux via une requête admin-ajax ou REST après le chargement de la page. Dans cette requête, WordPress a perdu le contexte d'URL du front-end. Le plugin demande à WPML « dans quelle langue sommes-nous ? » et obtient une mauvaise réponse.
La cause habituelle est l'ancienne constante ICL_LANGUAGE_CODE. Elle est définie une seule fois au début de la requête et reflète la langue détectée par WPML au démarrage. Lors d'un appel AJAX déclenché depuis une page espagnole, cette constante renvoie souvent la langue par défaut plutôt que l'espagnol. Le plugin génère alors un audio en anglais pour un article espagnol, ou charge un fichier anglais mis en cache et le joue sous le lecteur espagnol.
La bonne approche consiste à utiliser les filtres d'exécution de WPML. Le filtre wpml_current_language renvoie la langue active au moment où vous le demandez. Le hook wpml_post_language_details renvoie la langue à laquelle appartient un article spécifique, ce qui est encore plus sûr car il lie l'audio à l'identifiant de l'article plutôt qu'à l'état de la requête.
Comment le détecter en tant que lecteur : ouvrez un article traduit, appuyez sur lecture et écoutez la première seconde. Si vous entendez une voix anglaise sur une page non anglaise, votre plugin utilise le mauvais chemin de détection de langue.
2. Un seul fichier audio partagé entre toutes les traductions
Certains plugins génèrent l'audio à la publication de l'article original et attachent le même fichier à toutes les traductions. C'est rapide et économique. C'est aussi incorrect. Un lecteur espagnol obtient une narration en anglais, ou un accent synthétique qui ne correspond pas à la page qu'il lit.
Comme les traductions WPML sont des articles séparés avec des identifiants distincts, le comportement correct est de générer un nouveau fichier audio par article traduit. Chaque fichier est stocké avec son propre identifiant d'article et servi uniquement à cette traduction. TTSWP suit ce modèle et utilise l'identifiant de l'article, et non l'identifiant original, comme clé de cache.
3. La même voix pour toutes les langues
Un article français narré par une voix entraînée en anglais sonne faux même quand les mots sont corrects. Les voix ElevenLabs portent l'accent et la prosodie de leurs données d'entraînement. Une voix entraînée sur l'anglais américain lira le français avec un accent américain, sauf si vous attribuez une voix correspondant à la langue cible.
TTSWP vous permet d'associer une voix ElevenLabs à chaque langue WPML. La traduction espagnole est lue par une voix entraînée en espagnol, la traduction allemande par une voix allemande, et ainsi de suite. Consultez la documentation sur l'association langue-voix pour la configuration détaillée.
4. Un schéma qui ne déclare pas la langue de l'audio
C'est le détail AEO que la plupart des plugins ignorent. Les données structurées AudioObject doivent contenir une propriété inLanguage. La valeur doit être un tag IETF BCP 47 (es, de, nb-NO) correspondant au hreflang de la page.
Une valeur inLanguage cohérente donne aux moteurs de recherche et aux outils d'IA un signal clair et lisible par machine sur la langue de l'audio. Cela renforce le signal hreflang déjà présent sur la page. Quand le schéma est absent, ou que toutes les traductions partagent la même valeur en anglais uniquement, ce signal disparaît et les systèmes sensibles aux langues ne peuvent pas distinguer les versions. Nous expliquons comment les moteurs d'IA traitent l'audio dans notre guide AEO et audio.
Choisir le bon modèle ElevenLabs pour votre couverture WPML
ElevenLabs propose plusieurs modèles, et ils ne couvrent pas tous les mêmes langues. Si WPML sert une langue non prise en charge par le modèle que vous choisissez, vous ne pouvez pas narrer cette traduction correctement.
La couverture actuelle en 2026 :
- Multilingual v2 prend en charge 29 langues, dont l'anglais, l'espagnol, le français, l'allemand, l'italien, le portugais, le néerlandais, le polonais, le suédois, le danois, le finnois, le turc, l'arabe, l'hindi, le japonais, le coréen et le chinois.
- Flash v2.5 prend en charge 32 langues : toutes celles de la v2, plus le hongrois, le norvégien et le vietnamien, avec une latence modèle d'environ 75 ms.
- Eleven v3 prend en charge 74 langues, la couverture la plus large de tous les modèles. Il vient avec une contrainte qui prime sur ses fonctionnalités supplémentaires : il n'est pas conçu pour une utilisation en temps réel. ElevenLabs le précise explicitement. Le modèle est plus grand et utilise un codec vocal haute fidélité, ce qui rallonge le temps de génération. Pour les cas d'utilisation en temps réel ou conversationnels, ElevenLabs recommande plutôt Flash v2.5.
Pour un site WPML avec une traduction norvégienne, Multilingual v2 ne suffira pas. Flash v2.5 le couvrira. Pour un site qui a besoin d'une langue uniquement prise en charge par v3, vous acceptez une latence de génération plus élevée en échange de la couverture. TTSWP associe chaque langue à la voix de votre choix, vous pouvez donc mélanger les modèles selon vos besoins.
Comment vérifier si votre plugin de synthèse vocale gère vraiment WPML
Pas besoin de lire du code pour le savoir. Cinq minutes dans le navigateur suffisent.
- Changez de langue. Ouvrez l'article original, puis passez à une traduction via le sélecteur de langue WPML. Vérifiez que l'URL change (par exemple vers
/es/) et que le slug de l'article est bien le slug traduit. - Appuyez sur lecture et écoutez. La voix doit correspondre à la langue de la page. Une voix anglaise sur une page espagnole signifie que le plugin a échoué à la première étape.
- Inspectez l'URL audio. Faites un clic droit sur le lecteur et copiez la source audio. Comparez-la à l'URL audio de l'article original. Si les deux URL sont identiques quelle que soit la langue, le plugin partage un seul fichier.
- Affichez le code source de la page et cherchez
AudioObject. Repérez un champinLanguage. Sa valeur doit correspondre au code de langue de la page. Si le champ est absent ou toujoursen, le schéma est incorrect. - Vérifiez le hreflang. Le champ
inLanguagede l'audio doit correspondre auhreflangde la page. Les incohérences perturbent la recherche par IA et cassent les citations par langue.
Faites ce test avant d'acheter quoi que ce soit. Il fonctionne avec n'importe quel plugin de synthèse vocale, pas seulement TTSWP.
À quoi ressemble une configuration WPML correcte
Voici ce que nous recommandons sur un site WPML en production. Chaque étape correspond à un point de défaillance évoqué plus haut.
| Point de contrôle | Mauvaise approche | Bonne approche |
|---|---|---|
| Langue en AJAX | Constante ICL_LANGUAGE_CODE | Filtre wpml_current_language ou wpml_post_language_details lié à l'identifiant de l'article |
| Stockage audio | Un seul fichier partagé entre les traductions | Un fichier par identifiant d'article traduit, servi depuis un CDN |
| Sélection de la voix | La même voix pour toutes les langues | Une voix ElevenLabs associée à chaque langue WPML |
| Sélection du modèle | Modèle fixe pour toutes les langues | Choix par langue entre Multilingual v2, Flash v2.5 ou Eleven v3 |
| Schéma | AudioObject absent ou uniquement en anglais | AudioObject avec inLanguage correspondant au hreflang de la page |
TTSWP suit la colonne de droite par défaut. Le plugin lit directement l'article traduit, génère un nouveau fichier audio par identifiant d'article, le distribue via CloudFront et émet un schéma AudioObject par langue. La documentation d'intégration WPML décrit la configuration étape par étape.
Une limite à connaître
L'audio par langue coûte plus de caractères qu'un fichier unique partagé. Si vous publiez un article de 1500 mots et le traduisez en cinq langues, vous payez cinq générations, pas une. C'est le prix de la qualité. Partager un seul fichier reviendrait moins cher, mais l'audio ne correspondrait pas à la page. Nous ne recommandons pas de sacrifier l'expérience du lecteur pour économiser des crédits, et nous le disons clairement dans la documentation sur les crédits.
Si le budget est serré, générez l'audio uniquement pour les langues qui reçoivent vraiment du trafic. Les statistiques de langue WPML et vos analytics vous indiqueront quelles traductions méritent d'être narrées.
Questions fréquentes
TTSWP prend-il en charge WPML nativement ?
Oui. Une fois les deux plugins activés, TTSWP détecte WPML, lit le contenu de l'article traduit pour chaque langue et stocke un fichier audio distinct par traduction. Vous attribuez une voix par langue dans les réglages de TTSWP, puis publiez les traductions normalement. L'audio se régénère à la mise à jour d'une traduction. Consultez la page d'intégration WPML pour les étapes de configuration.
Pourquoi mon plugin de synthèse vocale actuel lit-il tout en anglais sur les pages traduites ?
La cause la plus probable est la constante dépréciée ICL_LANGUAGE_CODE dans un appel AJAX. En AJAX, cette constante renvoie souvent la langue par défaut du site plutôt que la langue active, ce qui pousse le plugin à générer ou servir un audio en anglais sur des pages non anglophones. La solution est de passer au filtre wpml_current_language ou de lire la langue directement depuis l'identifiant de l'article.
Puis-je utiliser des voix ElevenLabs différentes selon les langues WPML ?
Oui. TTSWP associe une voix ElevenLabs à chaque langue WPML. Les traductions espagnoles sont lues par une voix espagnole, les traductions allemandes par une voix allemande, et ainsi de suite. Vous pouvez aussi choisir des modèles différents par langue, ce qui est utile quand une langue cible n'est prise en charge que par Flash v2.5 ou Eleven v3 et non par Multilingual v2.
Quelles langues ElevenLabs couvre-t-il pour les sites WPML ?
Multilingual v2 couvre 29 langues, Flash v2.5 en couvre 32 (ajout du norvégien, du hongrois et du vietnamien) et Eleven v3 en couvre 74. Choisissez le modèle offrant la couverture la plus large selon votre budget de latence. La plupart des sites WPML obtiennent de bons résultats avec Multilingual v2 ou Flash v2.5. Les sites avec des langues plus rares déplacent ces traductions vers Eleven v3.
TTSWP émet-il un schéma par langue pour la recherche par IA ?
Oui. TTSWP génère un AudioObject par article traduit avec une valeur inLanguage correspondant au hreflang de la page. Cela donne aux moteurs de recherche et aux outils d'IA un signal clair sur quel audio appartient à quelle version linguistique de l'article, plutôt que de laisser toutes les traductions taguées de la même façon.
Prochaine étape
Faites le test en cinq étapes sur le plugin de synthèse vocale que vous utilisez aujourd'hui. Si une étape échoue, c'est le problème à corriger avant d'ajouter de nouvelles traductions. Si vous voulez une configuration qui gère les cinq points nativement, installez Synthèse vocale - TTSWP depuis WordPress.org, connectez-le au back-end TTSWP et attribuez une voix par langue WPML. Le plugin s'occupe du reste.
Articles connexes
Les meilleurs plugins de synthèse vocale pour WordPress (2026)
Un comparatif neutre des sept meilleurs plugins WordPress de synthèse vocale pour 2026, avec les points forts, les limites et un tableau complet de fonctionnalités.
Synthèse vocale pour les sites WordPress avec Weglot : ce qui fonctionne vraiment
La plupart des plugins de synthèse vocale se vantent d'être compatibles avec Weglot, mais lisent la base de données plutôt que la traduction. Voici ce qu'une vraie compatibilité Weglot exige.
Qu'est-ce que la synthèse vocale ? Guide clair et pratique
La synthèse vocale transforme du texte écrit en audio. Découvrez comment ça fonctionne, pourquoi c'est utile et comment l'intégrer à votre site WordPress.