Text na mowę dla stron WPML: Co naprawdę działa
Jeśli prowadzisz stronę opartą na WPML i chcesz, by każde tłumaczenie miało własną narrację we właściwym głosie, wybrana wtyczka musi robić trzy rzeczy poprawnie: odczytywać przetłumaczony wpis, generować osobny plik audio dla każdego języka oraz wykrywać aktualny język w wywołaniach AJAX. Większość wtyczek TTS zawodzi na którymś z tych punktów. Tekst na mowę - TTSWP powstał z myślą o obsłudze wszystkich trzech.
Ten artykuł to praktyczne uzupełnienie naszego przewodnika po Weglot. Podejście techniczne jest tu odwrotne, dlatego zaczniemy od wyjaśnienia różnicy.
WPML przechowuje tłumaczenia jako prawdziwe wpisy. Weglot nie.
WPML i Weglot rozwiązują wielojęzyczność WordPressa w zupełnie różny sposób, a ta różnica decyduje o tym, co wtyczka TTS musi robić.
WPML tworzy osobny rekord wpisu dla każdego tłumaczenia. Angielska wersja artykułu trafia do tabeli wp_posts z jednym ID. Wersja hiszpańska trafia do tej samej tabeli z innym ID. WPML łączy je przez tabelę icl_translations. Przetłumaczony tekst jest prawdziwym tekstem w bazie danych, edytowanym przez człowieka lub przez potok tłumaczenia maszynowego WPML.
Weglot działa odwrotnie. Baza danych przechowuje tylko oryginał. Tłumaczenia są generowane w czasie rzeczywistym i wstrzykiwane do wyjściowego HTML przed dotarciem strony do przeglądarki. Wtyczka odczytująca dane przez get_post() na stronie z Weglot zawsze widzi tylko język źródłowy.
Dla TTS zmienia to wszystko. W WPML odczytywanie treści wpisu z bazy danych jest prawidłowe. Przetłumaczony tekst jest już tam zapisany. Problemy dotyczą tego, który wpis wtyczka odczytuje, w jakim języku sądzi, że się znajduje, oraz tego, czy przechowuje jeden plik audio, czy wiele.

Cztery błędy, na które trafiają wtyczki TTS dla WPML
Przetestowaliśmy kilka konfiguracji na wielojęzycznym środowisku testowym WPML. Te same cztery problemy pojawiały się za każdym razem. Jeśli twoja aktualna wtyczka ma którykolwiek z nich, odwiedzający słyszą inne audio niż to, które opublikowałeś.
1. Audio w złym języku przez błędne wykrywanie języka w AJAX
To cichy zabójca. Większość odtwarzaczy TTS pobiera plik audio lub adres URL strumienia przez żądanie admin-ajax lub REST po załadowaniu strony. Wewnątrz tego żądania WordPress traci kontekst URL z frontendu. Wtyczka pyta WPML „w jakim jesteśmy języku?” i otrzymuje błędną odpowiedź.
Częstą przyczyną jest stara stała ICL_LANGUAGE_CODE. Jest ona definiowana raz, na początku żądania, i odzwierciedla język wykryty przez WPML podczas inicjalizacji. Podczas wywołania AJAX wywołanego ze strony po hiszpańsku ta stała często zwraca domyślny język, a nie hiszpański. Wtyczka TTS generuje wtedy angielskie audio dla hiszpańskiego artykułu albo pobiera zbuforowany angielski plik i odtwarza go pod hiszpańskim odtwarzaczem.
Właściwe podejście to użycie filtrów środowiska uruchomieniowego WPML. Filtr wpml_current_language zwraca aktywny język w momencie wywołania. Hook wpml_post_language_details zwraca język, do którego należy konkretny wpis, co jest jeszcze bezpieczniejsze, bo wiąże audio z ID wpisu, a nie ze stanem żądania.
Jak to sprawdzić jako czytelnik: otwórz przetłumaczony artykuł, naciśnij play i posłuchaj pierwszej sekundy audio. Jeśli na stronie innej niż angielska słyszysz angielski głos, wtyczka używa błędnej ścieżki wykrywania języka.
2. Jeden plik audio współdzielony przez wszystkie tłumaczenia
Niektóre wtyczki generują audio przy publikacji oryginalnego wpisu i przypisują ten sam plik do każdego tłumaczenia. To szybkie i tanie rozwiązanie. Jest też błędne. Hiszpański czytelnik słyszy angielską narrację albo syntetyczny akcent, który nie pasuje do strony, którą czyta.
Ponieważ tłumaczenia WPML to osobne wpisy z osobnymi ID, prawidłowym zachowaniem jest generowanie nowego pliku audio dla każdego przetłumaczonego wpisu. Każdy plik jest przechowywany z własnym ID wpisu i serwowany tylko dla tego tłumaczenia. TTSWP stosuje ten model i używa ID wpisu, a nie oryginalnego ID, jako klucza pamięci podręcznej.
3. Ten sam głos czytający w każdym języku
Francuski artykuł czytany głosem wytrenowanym na angielskim brzmi źle, nawet gdy słowa są poprawne. Głosy ElevenLabs przenoszą akcent i prozodię z danych treningowych. Głos wytrenowany na amerykańskim angielskim będzie czytał po francusku z amerykańskim akcentem, jeśli nie przypisany zostanie głos dopasowany do docelowego języka.
TTSWP pozwala przypisać jeden głos ElevenLabs do każdego języka WPML. Tłumaczenie hiszpańskie dostaje głos wytrenowany na hiszpańskim, tłumaczenie niemieckie dostaje głos niemiecki itd. Szczegółową konfigurację znajdziesz w dokumentacji mapowania języka na głos.
4. Dane strukturalne bez deklaracji języka audio
To szczegół AEO, który większość wtyczek ignoruje. Dane strukturalne AudioObject powinny zawierać właściwość inLanguage. Wartość powinna być tagiem IETF BCP 47 (es, de, nb-NO), zgodnym z hreflang strony.
Zgodna wartość inLanguage daje wyszukiwarkom i narzędziom AI czytelny maszynowo sygnał o tym, w jakim języku jest audio. Wzmacnia sygnał hreflang już obecny na stronie. Gdy schema jest nieobecna lub każde tłumaczenie ma tę samą wartość tylko dla angielskiego, ten sygnał znika i systemy uwzględniające języki nie mogą odróżnić poszczególnych wersji. Sposób, w jaki silniki AI traktują audio, omawiamy w naszym przewodniku AEO i audio.
Wybór właściwego modelu ElevenLabs dla stron WPML
ElevenLabs oferuje kilka modeli i nie wszystkie obsługują te same języki. Jeśli WPML obsługuje język nieobsługiwany przez wybrany model ElevenLabs, nie możesz poprawnie narrować tego tłumaczenia.
Aktualne pokrycie językowe na rok 2026:
- Multilingual v2 obsługuje 29 języków, w tym angielski, hiszpański, francuski, niemiecki, włoski, portugalski, niderlandzki, polski, szwedzki, duński, fiński, turecki, arabski, hindi, japoński, koreański i chiński.
- Flash v2.5 obsługuje 32 języki: wszystkie z v2 plus węgierski, norweski i wietnamski, z opóźnieniem modelu wynoszącym około 75 ms.
- Eleven v3 obsługuje 74 języki, co daje najszersze pokrycie spośród wszystkich modeli. Ma jednak jedno ograniczenie przeważające nad dodatkowymi funkcjami: nie jest przeznaczony do użycia w czasie rzeczywistym. ElevenLabs stwierdza to wprost. Model jest większy i używa kodeka głosowego o wyższej jakości, więc generowanie trwa dłużej. Do zastosowań w czasie rzeczywistym lub konwersacyjnych ElevenLabs zaleca Flash v2.5.
Dla strony WPML z tłumaczeniem norweskim Multilingual v2 nie wystarczy. Flash v2.5 sobie poradzi. Jeśli strona wymaga języka obsługiwanego tylko przez v3, akceptujesz dłuższy czas generowania w zamian za pokrycie językowe. TTSWP kieruje każdy język do wybranego przez ciebie głosu, więc możesz łączyć modele według potrzeb.
Jak sprawdzić, czy twoja wtyczka TTS naprawdę obsługuje WPML
Nie musisz czytać kodu, żeby to sprawdzić. Pięć minut w przeglądarce powie ci, co się dzieje.
- Przełącz język. Otwórz oryginalny artykuł, a następnie przełącz na tłumaczenie za pomocą przełącznika języka WPML. Sprawdź, czy URL się zmienił (np. na
/pl/) i czy slug wpisu jest przetłumaczonym slugiem. - Naciśnij play i posłuchaj. Głos powinien pasować do języka strony. Angielski głos na stronie po polsku oznacza, że wtyczka nie przeszła pierwszego kroku.
- Sprawdź URL audio. Kliknij odtwarzacz prawym przyciskiem myszy i skopiuj źródło audio. Porównaj je z adresem URL audio z oryginalnego artykułu. Jeśli oba adresy są identyczne dla różnych języków, wtyczka współdzieli jeden plik.
- Wyświetl źródło strony i wyszukaj
AudioObject. Poszukaj polainLanguage. Powinno ono odpowiadać kodowi języka strony. Jeśli pole nie istnieje lub zawsze wynosien, schema jest błędna. - Sprawdź hreflang. Wartość
inLanguagew audio powinna być zgodna zhreflangstrony. Rozbieżności dezorientują wyszukiwanie AI i psują cytowanie dla poszczególnych języków.
Przeprowadź tę listę kontrolną przed zakupem czegokolwiek. Działa z każdą wtyczką TTS, nie tylko TTSWP.
Jak powinna wyglądać poprawna konfiguracja TTS dla WPML
Oto co zalecamy na produkcyjnej stronie WPML. Każdy krok odpowiada jednemu z opisanych wcześniej błędów.
| Problem | Złe podejście | Właściwe podejście |
|---|---|---|
| Język w AJAX | Stała ICL_LANGUAGE_CODE | Filtr wpml_current_language lub wpml_post_language_details powiązany z ID wpisu |
| Przechowywanie audio | Jeden plik współdzielony przez tłumaczenia | Jeden plik na każde ID przetłumaczonego wpisu, serwowany z CDN |
| Wybór głosu | Ten sam głos dla każdego języka | Jeden głos ElevenLabs przypisany do każdego języka WPML |
| Wybór modelu | Jeden model na sztywno dla wszystkich języków | Wybór między Multilingual v2, Flash v2.5 lub Eleven v3 dla każdego języka |
| Schema | Brak lub tylko angielski AudioObject | AudioObject z inLanguage zgodnym z hreflang strony |
TTSWP domyślnie stosuje podejście z prawej kolumny. Wtyczka odczytuje przetłumaczony wpis bezpośrednio, generuje nowy plik audio dla każdego ID wpisu, dostarcza go przez CloudFront i generuje dane strukturalne AudioObject osobno dla każdego języka. Dokumentacja integracji z WPML przeprowadza przez całą konfigurację.
Jedno realne ograniczenie
Audio w każdym języku kosztuje więcej znaków niż jeden współdzielony plik. Jeśli publikujesz artykuł liczący 1500 słów i tłumaczysz go na pięć języków, płacisz za pięć generacji, a nie jedną. To cena poprawności. Współdzielenie jednego pliku byłoby tańsze, ale audio nie pasowałoby do strony. Nie zalecamy poświęcania wrażeń czytelnika dla oszczędności kredytów i mówimy o tym wprost w dokumentacji kredytów.
Jeśli budżet jest napięty, generuj audio tylko dla języków, które mają realny ruch. Statystyki językowe WPML i twoje dane analityczne powiedzą ci, które tłumaczenia warto nagrać.
Najczęstsze pytania
Czy TTSWP obsługuje WPML od razu po instalacji?
Tak. Po aktywowaniu obu wtyczek TTSWP automatycznie wykrywa WPML, odczytuje przetłumaczoną treść wpisu dla każdego języka i przechowuje osobny plik audio dla każdego tłumaczenia. W ustawieniach TTSWP przypisujesz jeden głos do każdego języka, a następnie publikujesz tłumaczenia jak zwykle. Audio jest regenerowane przy każdej aktualizacji tłumaczenia. Kroki konfiguracji znajdziesz na stronie integracji z WPML.
Dlaczego moja aktualna wtyczka TTS czyta wszystko po angielsku na przetłumaczonych stronach?
Najprawdopodobniej przyczyną jest przestarzała stała ICL_LANGUAGE_CODE używana wewnątrz wywołania AJAX. Podczas AJAX ta stała często zwraca domyślny język strony zamiast aktualnego, przez co wtyczka generuje lub serwuje angielskie audio na stronach w innych językach. Rozwiązaniem jest przejście na filtr wpml_current_language lub odczytywanie języka bezpośrednio z ID wpisu.
Czy mogę używać różnych głosów ElevenLabs dla każdego języka WPML?
Tak. TTSWP mapuje jeden głos ElevenLabs na każdy język WPML. Tłumaczenia hiszpańskie są czytane głosem hiszpańskim, niemieckie głosem niemieckim itd. Możesz też wybierać różne modele dla poszczególnych języków, co ma znaczenie, gdy docelowy język jest obsługiwany tylko przez Flash v2.5 lub Eleven v3, a nie przez Multilingual v2.
Jakie języki obsługuje ElevenLabs dla stron WPML?
Multilingual v2 obsługuje 29 języków, Flash v2.5 obsługuje 32 (dodając norweski, węgierski i wietnamski), a Eleven v3 obsługuje 74 języki. Wybierz model z najszerszym pokryciem, na jakie pozwala twój budżet opóźnienia. Większość stron WPML dobrze działa z Multilingual v2 lub Flash v2.5. Strony z rzadszymi językami przenoszą te tłumaczenia do Eleven v3.
Czy TTSWP generuje dane strukturalne dla każdego języka na potrzeby wyszukiwania AI?
Tak. TTSWP generuje AudioObject dla każdego przetłumaczonego wpisu z wartością inLanguage zgodną z hreflang strony. Daje to wyszukiwarkom i narzędziom AI jasny sygnał o tym, które audio należy do której wersji językowej artykułu, zamiast oznaczać wszystkie tłumaczenia w ten sam sposób.
Następny krok
Przeprowadź pięcioetapowy test w przeglądarce na wtyczce TTS, której używasz teraz. Jeśli którykolwiek krok się nie powiedzie, to właśnie błąd, który musisz naprawić przed dodaniem kolejnych tłumaczeń. Jeśli szukasz rozwiązania obsługującego wszystkie pięć punktów od razu po instalacji, zainstaluj Tekst na mowę - TTSWP z WordPress.org, połącz z backendem TTSWP i przypisz jeden głos do każdego języka WPML. Wtyczka zajmie się resztą.
Powiązane artykuły
Najlepsze wtyczki zamiany tekstu na mowę dla WordPress (2026)
Neutralny przewodnik po siedmiu najlepszych wtyczkach zamiana tekstu na mowę dla WordPress na rok 2026, z rzetelnymi mocnymi stronami, słabościami i pełną tabelą porównawczą funkcji.
Zamiana tekstu na mowę dla WordPress z Weglot: co naprawdę działa
Większość wtyczek TTS deklaruje obsługę Weglot, ale czyta dane z bazy, nie z tłumaczenia. Sprawdź, czego wymaga prawdziwa zgodność z Weglot.
Czym jest zamiana tekstu na mowę? Prosty przewodnik
Zamiana tekstu na mowę przekształca pisaną treść w mówione audio. Dowiedz się, jak to działa, dlaczego warto z tego korzystać i jak dodać tę funkcję do swojej witryny WordPress.