Text-zu-Sprache für WPML-Websites: Was wirklich funktioniert

10 Min. lesen 19 Min. anhören
Text-zu-Sprache für WPML-Websites: Was wirklich funktioniert

Wer eine WPML-Website betreibt und möchte, dass jede Übersetzung eine eigene Vertonung in der passenden Stimme bekommt, braucht ein Plugin, das drei Dinge richtig macht: den übersetzten Beitrag auslesen, je Sprache eine eigene Audiodatei erzeugen und die aktive Sprache auch bei AJAX-Aufrufen korrekt erkennen. Bei einem dieser Punkte scheitern die meisten Text-zu-Sprache-Plugins. Text-zu-Sprache - TTSWP wurde so entwickelt, dass alle drei funktionieren.

Dieser Beitrag ist das praktische Gegenstück zu unserem Weglot-Leitfaden. Der technische Ansatz ist grundlegend verschieden, deshalb beginnen wir mit der Erklärung.

WPML speichert Übersetzungen als echte Beiträge. Weglot nicht.

WPML und Weglot lösen mehrsprachiges WordPress auf sehr unterschiedliche Weise, und dieser Unterschied bestimmt, was ein Text-zu-Sprache-Plugin leisten muss.

WPML legt für jede Übersetzung einen eigenen Beitragsdatensatz an. Die englische Version eines Artikels liegt in wp_posts mit einer bestimmten ID. Die spanische Version liegt in derselben Tabelle mit einer anderen ID. WPML verknüpft beide über die Tabelle icl_translations. Der übersetzte Text ist echter Datenbankinhalt, der von einem Menschen oder WPMLs eigener maschineller Übersetzung bearbeitet wurde.

Weglot funktioniert umgekehrt. Die Datenbank enthält nur den Originaltext. Übersetzungen werden zur Laufzeit erzeugt und in das HTML eingefügt, bevor die Seite den Browser erreicht. Ein Plugin, das auf einer Weglot-Website get_post() aufruft, sieht immer nur die Quellsprache.

Für Text-zu-Sprache ändert das alles. Bei WPML ist das direkte Auslesen des Beitragsinhalts aus der Datenbank korrekt. Der übersetzte Text ist bereits vorhanden. Die Fehlerquellen liegen woanders: welchen Beitrag das Plugin liest, welche Sprache es annimmt und ob es eine oder mehrere Audiodateien speichert.

Diagramm, das das WPML-Modell mit separaten Beiträgen dem Weglot-Laufzeitansatz gegenüberstellt, samt Auswirkungen auf die TTS-Audiodateien
WPML speichert jede Übersetzung als echten Datenbankbeitrag. Weglot übersetzt zur Laufzeit. Die beiden Modelle erfordern unterschiedliche TTS-Strategien.

Die vier typischen Fehler bei WPML-TTS-Plugins

Wir haben mehrere Setups auf einer mehrsprachigen WPML-Testinstanz getestet. Dabei traten immer wieder dieselben vier Probleme auf. Wenn Ihr aktuelles Plugin einen davon hat, ist das Audio, das Ihre Besucher hören, nicht das, was Sie veröffentlicht haben.

1. Audio in der falschen Sprache durch fehlerhafte AJAX-Spracherkennung

Das ist das unsichtbare Problem. Die meisten Text-zu-Sprache-Player laden die Audiodatei oder Stream-URL über einen admin-ajax- oder REST-Request, nachdem die Seite geladen wurde. In diesem Request hat WordPress den URL-Kontext des Frontends verloren. Das Plugin fragt WPML „In welcher Sprache sind wir?” und bekommt die falsche Antwort.

Der häufigste Grund ist die veraltete Konstante ICL_LANGUAGE_CODE. Sie wird einmalig zu Beginn des Requests gesetzt und spiegelt die Sprache wider, die WPML beim Start erkannt hat. Bei einem AJAX-Aufruf von einer spanischen Seite gibt diese Konstante oft die Standardsprache zurück, nicht Spanisch. Das Plugin erzeugt dann englisches Audio für einen spanischen Artikel oder spielt eine zwischengespeicherte englische Datei im spanischen Player ab.

Der richtige Weg ist der Einsatz von WPMLs Laufzeit-Filtern. Der Filter wpml_current_language gibt die aktive Sprache im Moment des Aufrufs zurück. Der Hook wpml_post_language_details liefert die Sprache eines bestimmten Beitrags, was noch sicherer ist, weil er das Audio an die Beitrags-ID bindet statt an den Request-Status.

So erkennen Sie das Problem als Leser: Öffnen Sie einen übersetzten Artikel, drücken Sie auf Play und hören Sie in die erste Sekunde. Wenn Sie auf einer nicht-englischen Seite eine englische Stimme hören, nutzt das Plugin den falschen Erkennungsweg.

2. Eine Audiodatei für alle Übersetzungen

Manche Plugins erzeugen Audio beim Veröffentlichen des Originalartikels und hängen dieselbe Datei an alle Übersetzungen. Das ist schnell und günstig, aber falsch. Ein spanischsprachiger Leser bekommt englische Vertonung oder einen künstlichen Akzent, der nicht zur gelesenen Seite passt.

Da WPML-Übersetzungen eigene Beiträge mit eigenen IDs sind, ist das korrekte Verhalten: für jeden übersetzten Beitrag eine eigene Audiodatei erzeugen. Jede Datei wird zur jeweiligen Beitrags-ID gespeichert und nur für diese Übersetzung ausgeliefert. TTSWP folgt diesem Modell und verwendet die Beitrags-ID, nicht die Original-ID, als Cache-Schlüssel.

3. Dieselbe Stimme für jede Sprache

Ein französischer Artikel, vorgelesen von einer auf Englisch trainierten Stimme, klingt falsch, auch wenn die Wörter stimmen. ElevenLabs-Stimmen tragen Akzent und Prosodie aus ihren Trainingsdaten. Eine auf amerikanisches Englisch trainierte Stimme liest Französisch mit amerikanischem Akzent, es sei denn, Sie weisen eine zur Zielsprache passende Stimme zu.

Mit TTSWP können Sie jeder WPML-Sprache eine eigene ElevenLabs-Stimme zuordnen. Die spanische Übersetzung bekommt eine auf Spanisch trainierte Stimme, die deutsche Übersetzung eine deutsche Stimme und so weiter. Die genaue Einrichtung beschreibt die Dokumentation zur Sprach-Stimmen-Zuordnung.

4. Schema ohne Sprachdeklaration

Das ist das AEO-Detail, das die meisten Plugins ignorieren. Die strukturierten Daten vom Typ AudioObject sollten eine inLanguage-Eigenschaft enthalten. Der Wert sollte ein IETF-BCP-47-Tag sein (es, de, nb-NO), der mit dem hreflang der Seite übereinstimmt.

Ein passender inLanguage-Wert gibt Suchmaschinen und KI-Tools ein klares, maschinenlesbares Signal darüber, in welcher Sprache das Audio vorliegt. Er verstärkt das bereits auf der Seite vorhandene hreflang-Signal. Fehlt das Schema oder tragen alle Übersetzungen denselben englischsprachigen Wert, verschwindet dieses Signal, und sprachbewusste Systeme können die Versionen nicht unterscheiden. Wie KI-Engines Audio behandeln, erläutern wir in unserem AEO- und Audio-Leitfaden.

Das richtige ElevenLabs-Modell für WPML-Abdeckung wählen

ElevenLabs bietet mehrere Modelle an, die nicht alle dieselben Sprachen unterstützen. Wenn WPML eine Sprache ausliefert, die ElevenLabs im gewählten Modell nicht abdeckt, lässt sich diese Übersetzung nicht sauber vertonen.

Die aktuelle Abdeckung (Stand 2026):

  • Multilingual v2 unterstützt 29 Sprachen, darunter Englisch, Spanisch, Französisch, Deutsch, Italienisch, Portugiesisch, Niederländisch, Polnisch, Schwedisch, Dänisch, Finnisch, Türkisch, Arabisch, Hindi, Japanisch, Koreanisch und Chinesisch.
  • Flash v2.5 unterstützt 32 Sprachen, alle v2-Sprachen plus Ungarisch, Norwegisch und Vietnamesisch, mit einer Modelllatenz von rund 75 ms.
  • Eleven v3 unterstützt 74 Sprachen und bietet die breiteste Abdeckung aller Modelle. Es hat jedoch eine entscheidende Einschränkung: Es ist nicht für den Echtzeitbetrieb ausgelegt. ElevenLabs sagt das ausdrücklich. Das Modell ist größer und verwendet einen hochwertigeren Voice-Codec, weshalb die Generierung länger dauert. Für Echtzeit- oder konversationelle Anwendungen empfiehlt ElevenLabs stattdessen Flash v2.5.

Für eine WPML-Website mit norwegischer Übersetzung reicht Multilingual v2 nicht aus. Flash v2.5 schon. Für eine Website, die eine Sprache braucht, die nur v3 unterstützt, nimmt man eine höhere Generierungslatenz in Kauf. TTSWP leitet jede Sprache zur von Ihnen gewählten Stimme weiter, sodass Sie Modelle nach Bedarf kombinieren können.

So testen Sie, ob Ihr TTS-Plugin WPML wirklich unterstützt

Dafür müssen Sie keinen Code lesen. Fünf Minuten im Browser reichen aus.

  1. Sprache wechseln. Öffnen Sie den Originalartikel und wechseln Sie mit dem WPML-Sprachumschalter zu einer Übersetzung. Kontrollieren Sie, dass sich die URL ändert (z. B. auf /es/) und der Beitrags-Slug der übersetzte Slug ist.
  2. Play drücken und hören. Die Stimme muss zur Seitensprache passen. Eine englische Stimme auf einer spanischen Seite zeigt, dass das Plugin bereits hier versagt.
  3. Audio-URL prüfen. Rechtsklick auf den Player, Audioquelle kopieren. Vergleichen Sie diese URL mit der Audio-URL des Originalartikels. Wenn beide URLs sprachübergreifend identisch sind, teilt das Plugin eine einzige Datei.
  4. Seitenquelltext öffnen und nach AudioObject suchen. Prüfen Sie, ob ein inLanguage-Feld vorhanden ist. Es sollte dem Sprachcode der Seite entsprechen. Fehlt das Feld oder steht überall en, ist das Schema falsch.
  5. hreflang prüfen. Das inLanguage-Attribut des Audios sollte mit dem hreflang der Seite übereinstimmen. Abweichungen verwirren die KI-Suche und verhindern sprachgenaue Zitierungen.

Führen Sie diese Prüfliste durch, bevor Sie etwas kaufen. Sie funktioniert mit jedem Text-zu-Sprache-Plugin, nicht nur TTSWP.

So sieht ein korrektes WPML-TTS-Setup aus

Das empfehlen wir für eine produktive WPML-Website. Jeder Schritt entspricht einem der oben beschriebenen Fehler.

BereichFalscher AnsatzRichtiger Ansatz
Sprache bei AJAXKonstante ICL_LANGUAGE_CODEFilter wpml_current_language oder wpml_post_language_details an Beitrags-ID gebunden
Audio-SpeicherungEine Datei für alle ÜbersetzungenEine Datei pro übersetzter Beitrags-ID, über CDN ausgeliefert
StimmenwahlDieselbe Stimme für jede SpracheEine ElevenLabs-Stimme je WPML-Sprache
ModellwahlFestes Modell für alle SprachenSprachweise Wahl zwischen Multilingual v2, Flash v2.5 oder Eleven v3
SchemaFehlendes oder nur englisches AudioObjectAudioObject mit inLanguage passend zum hreflang der Seite

TTSWP folgt standardmäßig der rechten Spalte. Das Plugin liest den übersetzten Beitrag direkt aus, erzeugt je Beitrags-ID eine neue Audiodatei, liefert sie über CloudFront aus und gibt je Sprachversion ein eigenes AudioObject-Schema aus. Die WPML-Integrationsdokumentation beschreibt die Einrichtung Schritt für Schritt.

Eine ehrliche Einschränkung

Sprachspezifische Audiodateien verbrauchen mehr Zeichen als eine einzige gemeinsame Datei. Wer einen Artikel mit 1.500 Wörtern in fünf Sprachen übersetzt, zahlt für fünf Generierungen, nicht für eine. Das ist der Preis für Korrektheit. Eine einzige Datei wäre günstiger, würde aber nicht zur Seite passen. Wir empfehlen nicht, das Leseerlebnis gegen Guthabeneinsparungen einzutauschen, und erläutern das auch in der Dokumentation zu Credits.

Wenn das Budget knapp ist, erzeugen Sie Audio nur für die Sprachen, die echten Traffic haben. WPMLs Sprachstatistiken und Ihre Analytics zeigen Ihnen, welche Übersetzungen eine Vertonung wirklich lohnen.

Häufig gestellte Fragen

Unterstützt TTSWP WPML ohne zusätzliche Konfiguration?

Ja. Sobald beide Plugins aktiv sind, erkennt TTSWP WPML automatisch, liest den übersetzten Beitragsinhalt je Sprache aus und speichert je Übersetzung eine eigene Audiodatei. Sie weisen in den TTSWP-Einstellungen jeder Sprache eine Stimme zu und veröffentlichen Übersetzungen wie gewohnt. Das Audio wird automatisch neu generiert, wenn eine Übersetzung aktualisiert wird. Die Einrichtungsschritte finden Sie auf der WPML-Integrationsseite.

Warum liest mein aktuelles TTS-Plugin auf übersetzten Seiten alles auf Englisch vor?

Der häufigste Grund ist die veraltete Konstante ICL_LANGUAGE_CODE innerhalb eines AJAX-Aufrufs. Bei AJAX gibt diese Konstante oft die Standardsprache der Website zurück statt der aktiven Sprache. Das Plugin erzeugt oder liefert dann englisches Audio auf nicht-englischen Seiten. Die Lösung: auf den Filter wpml_current_language umstellen oder die Sprache direkt aus der Beitrags-ID auslesen.

Kann ich für jede WPML-Sprache eine andere ElevenLabs-Stimme verwenden?

Ja. TTSWP ordnet jeder WPML-Sprache eine eigene ElevenLabs-Stimme zu. Spanische Übersetzungen werden von einer spanischen Stimme vorgelesen, deutsche von einer deutschen und so weiter. Sie können außerdem je Sprache ein eigenes Modell wählen, was wichtig ist, wenn eine Zielsprache nur von Flash v2.5 oder Eleven v3 unterstützt wird, nicht aber von Multilingual v2.

Welche Sprachen deckt ElevenLabs für WPML-Websites ab?

Multilingual v2 deckt 29 Sprachen ab, Flash v2.5 deckt 32 Sprachen ab (zusätzlich Norwegisch, Ungarisch und Vietnamesisch) und Eleven v3 deckt 74 Sprachen ab. Wählen Sie das Modell mit der breitesten Abdeckung, die Ihre Latenzanforderungen erlauben. Die meisten WPML-Websites kommen gut mit Multilingual v2 oder Flash v2.5 aus. Websites mit selteneren Sprachen verlagern diese Übersetzungen auf Eleven v3.

Gibt TTSWP je Sprache ein eigenes Schema für die KI-Suche aus?

Ja. TTSWP gibt für jeden übersetzten Beitrag ein eigenes AudioObject mit einem inLanguage-Wert aus, der dem hreflang der Seite entspricht. Suchmaschinen und KI-Tools erhalten so ein klares Signal, welches Audio zu welcher Sprachversion des Artikels gehört, statt alle Übersetzungen gleich zu kennzeichnen.

Nächster Schritt

Führen Sie den Fünf-Schritte-Test im Browser mit Ihrem aktuellen Text-zu-Sprache-Plugin durch. Schlägt ein Schritt fehl, kennen Sie das Problem, das Sie vor weiteren Übersetzungen beheben müssen. Wenn Sie ein Setup wollen, das von Anfang an alle fünf Punkte abdeckt, installieren Sie Text-zu-Sprache - TTSWP aus dem WordPress.org-Verzeichnis, verbinden Sie es mit dem TTSWP-Backend und weisen Sie jeder WPML-Sprache eine Stimme zu. Den Rest erledigt das Plugin.