Text-to-Speech dla WordPress z Weglot: co naprawdę działa

12 min read
Text-to-Speech dla WordPress z Weglot: co naprawdę działa

Większość wtyczek text-to-speech deklaruje zgodność z Weglot, ale w praktyce niewiele z nich działa poprawnie. Wszystko zależy od tego, skąd wtyczka pobiera treść. Wtyczki, które czytają tekst z bazy danych WordPress, pomijają przetłumaczoną wersję, którą Weglot serwuje odwiedzającym. Wtyczki wykrywające aktywny język Weglot i czytające wyrenderowaną stronę generują audio zgodne z tym, co widzi użytkownik.

Ten artykuł wyjaśnia przyczynę techniczną, opisuje wymagania prawdziwej obsługi Weglot i sprawdza, jak każda z głównych wtyczek TTS sobie z tym radzi.

Dlaczego Weglot psuje działanie większości wtyczek TTS

Weglot działa inaczej niż WPML czy Polylang. Tamte wtyczki tworzą osobne rekordy wpisów dla każdego języka. Tłumaczenie na hiszpański istnieje jako oddzielny wiersz w bazie danych WordPress, z własnym ID wpisu, slugiem i treścią.

Weglot tego nie robi. Weglot tłumaczy strony w locie. Oryginalna treść po angielsku pozostaje w bazie danych. Gdy odwiedzający przełącza się na hiszpański, Weglot przechwytuje odpowiedź HTML i nadpisuje widoczny tekst, zanim trafi do przeglądarki. Baza danych nie ulega żadnej zmianie.

Ma to kluczowe znaczenie dla text-to-speech. Typowa wtyczka TTS uruchamia się na hooku save_post lub the_content. Odczytuje $post->post_content, wysyła ten tekst do dostawcy głosu i zapisuje plik MP3. Ten plik MP3 odtwarzany jest niezależnie od tego, w jakim języku przeglądana jest strona.

Efekt: odwiedzający mówiący po hiszpańsku widzi tekst po hiszpańsku, ale słyszy audio po angielsku. Odtwarzacz ładuje się, głos mówi, lecz niezgodność językowa psuje całe doświadczenie i niweczy korzyść dostępności, dla której wtyczka została zainstalowana.

Wtyczka TTS obsługująca Weglot musi wykonać trzy dodatkowe kroki. Musi wykrywać aktualny język Weglot odwiedzającego w momencie żądania. Musi generować audio z przetłumaczonego tekstu, a nie z treści w bazie danych. I musi przechowywać audio osobno dla każdego języka, by kolejny odwiedzający korzystający z hiszpańskiego nie uruchamiał kolejnego płatnego generowania.

Diagram porównujący wtyczki TTS oparte na bazie danych, które ignorują tłumaczenia Weglot, z wtyczkami opartymi na DOM generującymi audio w odpowiednim języku
Wtyczki oparte na bazie danych generują audio raz ze źródłowego wpisu. Wtyczki oparte na DOM generują audio z przetłumaczonej strony serwowanej przez Weglot.

Czego wymaga prawdziwa obsługa Weglot

Skorzystaj z tej pięciopunktowej listy kontrolnej, oceniając każdą rozważaną wtyczkę TTS.

  1. Wtyczka wykrywa aktywny język Weglot odwiedzającego na podstawie URL lub Weglot API.
  2. Wtyczka generuje audio z przetłumaczonej treści, a nie z surowej wartości w bazie danych.
  3. Wtyczka przechowuje plik audio osobno dla każdego języka, tak by każdy język był generowany tylko raz.
  4. Wtyczka pozwala przypisać konkretny głos do każdego języka, dzięki czemu treść po francusku otrzymuje francuski głos.
  5. Wtyczka obsługuje masowe wstępne generowanie dla wszystkich aktywnych języków Weglot, aby odwiedzający nie musieli czekać na pierwsze syntezowanie.

Większość wtyczek spełnia jeden lub dwa z tych punktów. Niewiele spełnia wszystkie pięć.

Jak główne wtyczki Text to Speech obsługują Weglot

Sprawdziliśmy publiczną dokumentację, opisy na WordPress.org i opisy wtyczek dla każdej z poniższych pozycji. Niektórzy twórcy mogą obsługiwać Weglot bez dokumentowania tego. Jeśli nie jest to opisane, nie można na tym polegać.

WtyczkaWykrywa język WeglotCzyta przetłumaczony DOMCache per językGłos per językMasowe generowanie per język
TTSWPTakTakTakTakTak (plany Pro i Agency)
BeyondWordsNie udokumentowano (wielojęzyczność jest ręczna: dodatkowe języki dodaje się w ustawieniach wtyczki, język wybierany per wpis)Nie (wysyła treść wpisu do BeyondWords API z bazy danych WordPress, nie z wyrenderowanej strony)Audio przechowywane per wpis i per wybrany język, ale tylko gdy język jest ustawiony ręcznie dla każdego wpisuTak (główny głos oraz dodatkowe języki i głosy wybierane per wpis)Funkcja Bulk Generate Audio istnieje, ale tylko dla języka ustawionego na każdym wpisie. Brak automatycznego masowego generowania per język Weglot
Trinity AudioNie udokumentowanoOdtwarzacz czyta wyrenderowany artykuł podczas ładowania, ale tłumaczenie w czasie rzeczywistym obsługuje tylko 6 języków i jest osobną funkcjąAudio generowane po stronie serwera per wpis w języku ustawionym dla danego wpisu. Brak udokumentowanego cache'u per język WeglotTak, ale per wpis (ręczny wybór języka na poziomie wpisu)Nie udokumentowano
GSpeechNie udokumentowano. Tryb wielojęzyczny oficjalnie obsługuje GTranslate, WPML, Polylang i TranslatePress. Weglot nie jest wymienionyTak (czyta DOM w momencie kliknięcia)Nie udokumentowano dla WeglotTak dla wymienionych wtyczek wielojęzycznych (automatyczny dobór głosu na podstawie aktywnego języka strony). Działanie z Weglot nie jest udokumentowaneNie udokumentowano
ResponsiveVoiceTak (czyta DOM po kliknięciu)Tak (przeglądarkowe Web Speech API)Nie dotyczy (brak zapisywanych plików audio)Tak (parametry języka i głosu dostępne w shortcode'ach i ustawieniach, mapowane na głosy Web Speech API)Nie dotyczy (brak wstępnego generowania)
VoicerNie udokumentowano. WPML jest jedyną integracją wielojęzyczną wymienioną w opisie wtyczkiTak (czyta zaznaczony tekst z DOM i wysyła go do Google Cloud TTS po kliknięciu)Nie dotyczy dla odtwarzania w czasie rzeczywistym. Głos per element można ustawić przez klasę CSS, np. voicer-voice-en-GB-Wavenet-ATak, ale konfigurowany ręcznie przez klasę CSS per element, bez automatycznego mapowania na język WeglotNie dotyczy (brak wstępnego generowania)

TTSWP

TTSWP wykrywa aktywny język Weglot w momencie żądania i generuje audio z wyrenderowanego tłumaczenia. Każdy język otrzymuje własny, zbuforowany plik MP3. Wtyczka zawiera ekran Language Voice Mapping, gdzie przypisujesz osobny głos do każdego języka Weglot. Bulk Generation w planach Pro i Agency wstępnie renderuje audio we wszystkich aktywnych językach. Pełna integracja jest udokumentowana na stronie integracji z Weglot.

BeyondWords

BeyondWords koncentruje się na neuronowych głosach i funkcjach audio CMS dla redakcji i dużych wydawców. Publiczna dokumentacja nie opisuje obsługi specyficznej dla Weglot. Wtyczka generuje audio w momencie publikacji z zapisanej treści wpisu, co oznacza, że tłumaczenia Weglot nie są automatycznie uwzględniane. BeyondWords to dobry wybór dla wydawców jednojęzycznych. Użytkownicy Weglot powinni dokładnie przetestować przed decyzją.

Trinity Audio

Trinity Audio to platforma SaaS z konektorem WordPress. Odtwarzacz ładuje się jako JavaScript i podczas inicjalizacji odczytuje tekst artykułu z DOM, a następnie wysyła go na serwery Trinity w celu wygenerowania audio. Publiczna dokumentacja nie opisuje wykrywania języka specyficznego dla Weglot ani mapowania głosu per język. Plan darmowy obejmuje do 5 artykułów miesięcznie z dostępem do ponad 125 języków i ponad 600 głosów.

GSpeech

GSpeech korzysta z Google Cloud Text-to-Speech i dodaje do wpisów przycisk odsłuchu. Publiczna dokumentacja nie wspomina o Weglot. Wtyczka odczytuje widoczną treść strony w momencie kliknięcia, co oznacza, że może wygenerować przetłumaczone audio, jeśli odwiedzający wcześniej zmienił język. Mapowanie głosu per język nie jest udokumentowane.

ResponsiveVoice

ResponsiveVoice działa wyłącznie w przeglądarce za pomocą Web Speech API. Ponieważ odczytuje tekst z wyrenderowanego DOM w momencie kliknięcia przez odwiedzającego, automatycznie obsługuje tłumaczenia Weglot. Jakość głosu jest niższa niż w przypadku dostawców chmurowych, a użycie komercyjne wymaga płatnego planu. Wtyczka była ostatnio aktualizowana 14 kwietnia 2025 roku (wersja 1.7.15), co oznacza, że przez ponad rok nie była aktywnie rozwijana.

Voicer

Voicer używa głosów Google Cloud i reklamuje obsługę WPML. Weglot nie jest wspomniany w publicznej dokumentacji. Wtyczka generuje audio w momencie publikacji z bazy danych, co oznacza, że do działania wielojęzycznego audio wymagany jest system tłumaczeń na poziomie bazy danych, taki jak WPML.

Wzorzec jest jasny. Wtyczki generujące audio w momencie publikacji z bazy danych potrzebują systemu tłumaczeń na poziomie bazy, takiego jak WPML. Wtyczki generujące audio w momencie żądania z DOM mogą działać z Weglot. TTSWP opiera się na drugim modelu, z nazwanym mapowaniem głosu per język i osobnym cache'em dla każdego języka.

Jak w pięć minut przetestować Weglot i TTS razem

Przeprowadź ten test dla każdej rozważanej wtyczki TTS. Potrzebujesz środowiska testowego z aktywnym Weglot i co najmniej jednym docelowym językiem.

  1. Zainstaluj wtyczkę TTS i aktywuj ją.
  2. Otwórz wpis w domyślnym języku. Upewnij się, że odtwarzacz audio pojawia się i działa poprawnie.
  3. Użyj przełącznika języka Weglot, by zmienić na język docelowy. Nie odświeżaj strony.
  4. Kliknij play w odtwarzaczu audio.
  5. Słuchaj przez dziesięć sekund.

Trzy wyniki mówią, jak wtyczka działa.

Audio odtwarza się w oryginalnym języku źródłowym. Wtyczka czyta z bazy danych, nie z przetłumaczonego DOM. Weglot nie jest naprawdę obsługiwany.

Audio odtwarza się w języku docelowym, ale z niewłaściwym lub generycznym, robotycznym głosem. Wtyczka wykrywa język, ale nie ma mapowania głosu per język. Akceptowalne wyłącznie dla celów dostępności, nieodpowiednie dla jakości marki.

Audio odtwarza się w języku docelowym z naturalnym głosem dopasowanym do języka. Wtyczka poprawnie obsługuje Weglot. Sprawdź bibliotekę audio po teście, by potwierdzić, że plik był buforowany, a nie generowany od nowa przy każdym odtworzeniu.

Powtórz test z drugim językiem docelowym, by potwierdzić, że buforowanie działa dla wielu języków.

Która wtyczka sprawdzi się w danym przypadku

Właściwy wybór zależy od Twoich priorytetów i budżetu.

Używasz już Weglot i chcesz profesjonalnego audio w każdym języku. TTSWP była jedyną wtyczką, którą testowaliśmy i która dokumentuje oraz spełnia wszystkie pięć wymagań obsługi Weglot. Mapowanie głosu per język, cache per język i masowe generowanie są w zestawie. Zacznij od planu darmowego.

Publikujesz treści jednojęzyczne i potrzebujesz zaawansowanych funkcji audio dla przedsiębiorstw. BeyondWords oferuje silniejszy audio CMS, dystrybucję podcastów i klonowanie głosu. Jeśli nie używasz Weglot, brak jego obsługi nie ma znaczenia.

Zależy Ci na zerowym koszcie i akceptujesz podstawowe głosy przeglądarki. ResponsiveVoice czyta z DOM i automatycznie współpracuje z Weglot, przy obniżonej jakości głosu i ograniczeniach licencyjnych.

Używasz WPML, a nie Weglot. Większość wtyczek działa, ponieważ WPML przechowuje tłumaczenia w bazie danych. TTSWP obsługuje WPML przez dedykowaną integrację z WPML.

Wybierasz jednocześnie system tłumaczeń i TTS. Jeśli liczy się jakość audio i zasięg językowy, wybierz TTSWP z Weglot. Jeśli potrzebujesz redakcyjnej kontroli tłumaczy nad każdym tłumaczeniem, wybierz WPML i dowolną wtyczkę TTS obsługującą WPML.

Często zadawane pytania

Czy Weglot automatycznie tłumaczy plik audio?

Nie. Weglot tłumaczy HTML, JSON i kilka innych formatów tekstowych. Nie tłumaczy plików MP3. Wtyczka TTS musi wygenerować nowy plik audio w każdym języku na podstawie przetłumaczonego tekstu. TTSWP robi to przy pierwszym żądaniu, a następnie buforuje wynik, dzięki czemu to samo audio obsługuje wszystkie kolejne wizyty w danym języku.

Czy mogę używać głosów ElevenLabs z Weglot?

Tak. TTSWP domyślnie korzysta z głosów ElevenLabs. W ekranie Language Voice Mapping możesz przypisać inny głos ElevenLabs do każdego języka Weglot. ElevenLabs obsługuje szeroki zakres języków, więc większość par językowych Weglot jest pokryta głosem brzmiącym naturalnie.

Czy audio będzie generowane od nowa za każdym razem, gdy Weglot zaktualizuje tłumaczenie?

Nie. Audio jest buforowane per język i per wpis. Jeśli edytujesz źródłowy wpis, TTSWP może ponownie wygenerować audio. Jeśli Weglot zaktualizuje tłumaczenie w swoim panelu, istniejące audio pozostaje w cache. Kliknij Regenerate na liście wpisów lub użyj Bulk Generate, by wymusić odświeżenie po zmianie tłumaczenia.

Czy to działa z podkatalogami i subdomenami Weglot?

Tak. TTSWP odczytuje aktywny język z Weglot, a nie ze struktury URL. Zarówno konfiguracje z podkatalogiem (example.com/es/), jak i z subdomeną (es.example.com) działają tak samo. Wtyczka pyta Weglot, który język jest aktywny dla bieżącego żądania, a następnie generuje lub serwuje odpowiedni plik audio.

Ile kosztuje wielojęzyczne audio?

Każdy obsługiwany język zużywa kredyty przy pierwszym generowaniu audio dla danego wpisu w tym języku. Wpis o długości 1000 znaków w pięciu językach zużywa około 5000 kredytów przy pierwszym odtworzeniu we wszystkich językach. Potem buforowany plik jest serwowany bez żadnych dodatkowych kosztów. Pełne zestawienie znajdziesz w dokumentacji kredytów.

Następny krok

Wypróbuj TTSWP na swojej stronie z Weglot. Zainstaluj darmową wersję z WordPress.org, aktywuj integrację z Weglot w panelu Overview i przypisz głos do każdego języka. Plan darmowy obejmuje wystarczającą liczbę znaków, by przetestować dwa lub trzy krótkie wpisy w dwóch językach. Jeśli napotkasz jakiekolwiek problemy, dokumentacja integracji z Weglot opisuje każdy przypadek brzegowy, jaki widzieliśmy w środowiskach produkcyjnych.