Teks ke Ucapan untuk Situs WPML: Apa yang Benar-Benar Berfungsi

9 mnt membaca 19 mnt mendengarkan
Teks ke Ucapan untuk Situs WPML: Apa yang Benar-Benar Berfungsi

Jika Anda menjalankan situs WPML dan ingin setiap terjemahan memiliki narasi sendiri dengan suara yang sesuai, plugin yang Anda pilih harus melakukan tiga hal dengan benar: membaca post yang telah diterjemahkan, menghasilkan file audio terpisah per bahasa, dan mendeteksi bahasa yang aktif di dalam panggilan AJAX. Sebagian besar plugin TTS gagal di salah satu dari ketiga hal ini. Teks ke Ucapan - TTSWP dirancang untuk menangani ketiganya.

Artikel ini adalah pasangan praktis dari panduan Weglot kami. Pendekatan teknisnya berbeda arah, jadi kita mulai dari penjelasan mengapa.

WPML menyimpan terjemahan sebagai post nyata. Weglot tidak.

WPML dan Weglot menangani WordPress multibahasa dengan cara yang sangat berbeda, dan perbedaan itulah yang menentukan apa yang perlu dilakukan plugin TTS.

WPML membuat catatan post terpisah untuk setiap terjemahan. Versi bahasa Inggris sebuah artikel tersimpan di wp_posts dengan satu ID. Versi bahasa Spanyol tersimpan di tabel yang sama dengan ID berbeda. WPML menghubungkan keduanya melalui tabel icl_translations. Teks terjemahan adalah teks nyata di database, yang diedit oleh manusia atau melalui pipeline terjemahan mesin WPML.

Weglot bekerja sebaliknya. Database hanya menyimpan konten asli. Terjemahan dibuat saat runtime dan disuntikkan ke dalam HTML keluaran sebelum halaman sampai ke browser. Plugin yang membaca dari get_post() di situs Weglot hanya akan melihat bahasa sumber.

Untuk TTS, perbedaan ini mengubah segalanya. Di WPML, membaca konten post dari database sudah tepat karena teks terjemahannya sudah ada di sana. Titik-titik rawan kegagalan ada pada post mana yang dibaca plugin, bahasa apa yang dianggap aktif, dan apakah plugin menyimpan satu file audio atau banyak.

Diagram yang membandingkan penyimpanan post terpisah WPML dengan terjemahan runtime Weglot, beserta implikasinya terhadap file audio TTS untuk setiap model
WPML menyimpan setiap terjemahan sebagai post nyata di database. Weglot menerjemahkan saat runtime. Dua model ini membutuhkan strategi TTS yang berbeda.

Empat titik kegagalan yang sering dialami plugin TTS di WPML

Kami menguji beberapa konfigurasi di situs staging WPML multibahasa. Empat masalah yang sama terus muncul. Jika plugin Anda saat ini memiliki salah satu dari ini, audio yang didengar pengunjung bukan audio yang Anda kira sudah dipublikasikan.

1. Audio bahasa salah karena deteksi bahasa AJAX yang keliru

Ini adalah masalah yang tidak terlihat namun paling merusak. Sebagian besar player TTS mengambil file audio atau URL stream melalui permintaan admin-ajax atau REST setelah halaman dimuat. Di dalam permintaan tersebut, WordPress sudah kehilangan konteks URL front-end. Plugin bertanya ke WPML soal bahasa yang aktif, dan mendapat jawaban yang salah.

Penyebab umumnya adalah konstanta lama ICL_LANGUAGE_CODE. Konstanta ini didefinisikan sekali di awal permintaan dan mencerminkan bahasa yang terdeteksi WPML saat bootstrap. Selama panggilan AJAX yang dipicu dari halaman berbahasa Spanyol, konstanta ini sering mengembalikan bahasa default, bukan bahasa Spanyol. Plugin TTS kemudian menghasilkan audio bahasa Inggris untuk artikel berbahasa Spanyol, atau mengambil file cache bahasa Inggris dan memutarnya di bawah player berbahasa Spanyol.

Pendekatan yang benar adalah menggunakan filter runtime WPML. Filter wpml_current_language mengembalikan bahasa aktif pada saat Anda memintanya. Hook wpml_post_language_details mengembalikan bahasa dari post tertentu, yang bahkan lebih aman karena mengikat audio ke ID post, bukan ke kondisi permintaan.

Cara mendeteksinya sebagai pembaca: buka artikel terjemahan, tekan tombol play, dan dengarkan satu detik pertama audio. Jika Anda mendengar suara bahasa Inggris di halaman non-Inggris, berarti plugin menggunakan jalur deteksi bahasa yang salah.

2. Satu file audio digunakan untuk semua terjemahan

Beberapa plugin menghasilkan audio saat post asli diterbitkan dan melampirkan file yang sama ke setiap terjemahan. Cara ini cepat dan murah, tapi salah. Pembaca berbahasa Spanyol mendapatkan narasi bahasa Inggris, atau aksen sintetis yang tidak cocok dengan halaman yang mereka baca.

Karena terjemahan WPML adalah post terpisah dengan ID berbeda, perilaku yang benar adalah menghasilkan file audio baru per post terjemahan. Setiap file disimpan berdasarkan ID post-nya sendiri dan hanya disajikan untuk terjemahan tersebut. TTSWP mengikuti model ini dan menggunakan ID post, bukan ID aslinya, sebagai kunci cache.

3. Suara yang sama membacakan semua bahasa

Artikel berbahasa Prancis yang dibacakan oleh suara yang dilatih dalam bahasa Inggris terdengar aneh meski kata-katanya benar. Suara ElevenLabs membawa aksen dan prosodi dari data pelatihannya. Suara yang dilatih dalam bahasa Inggris Amerika akan membaca bahasa Prancis dengan aksen Amerika kecuali Anda menetapkan suara yang sesuai dengan bahasa target.

TTSWP memungkinkan Anda memetakan satu suara ElevenLabs ke setiap bahasa WPML. Terjemahan Spanyol dibacakan oleh suara berlatar Spanyol, terjemahan Jerman dibacakan oleh suara Jerman, dan seterusnya. Lihat dokumentasi pemetaan bahasa ke suara untuk panduan pengaturannya.

4. Skema yang tidak mendeklarasikan bahasa audio

Ini adalah detail AEO yang diabaikan oleh sebagian besar plugin. Data terstruktur AudioObject seharusnya memuat properti inLanguage. Nilainya harus berupa tag IETF BCP 47 (es, de, nb-NO) yang sesuai dengan hreflang halaman.

Nilai inLanguage yang sesuai memberikan sinyal yang jelas dan dapat dibaca mesin kepada mesin pencari dan alat AI tentang bahasa audio tersebut. Ini memperkuat sinyal hreflang yang sudah ada di halaman. Jika skema tidak ada, atau setiap terjemahan menggunakan nilai bahasa Inggris yang sama, sinyal itu hilang dan sistem yang mengenali bahasa tidak dapat membedakan versi-versinya. Kami membahas cara mesin AI memperlakukan audio dalam panduan AEO dan audio kami.

Memilih model ElevenLabs yang tepat untuk cakupan WPML

ElevenLabs memiliki beberapa model, dan tidak semuanya mencakup bahasa yang sama. Jika WPML melayani bahasa yang tidak didukung oleh model yang Anda pilih, Anda tidak bisa mengarasikan terjemahan tersebut dengan baik.

Cakupan terkini per 2026:

  • Multilingual v2 mendukung 29 bahasa, termasuk Inggris, Spanyol, Prancis, Jerman, Italia, Portugis, Belanda, Polandia, Swedia, Denmark, Finlandia, Turki, Arab, Hindi, Jepang, Korea, dan Mandarin.
  • Flash v2.5 mendukung 32 bahasa, mencakup semua bahasa v2 ditambah Hungaria, Norwegia, dan Vietnam, dengan latensi model sekitar 75 ms.
  • Eleven v3 mendukung 74 bahasa dengan cakupan terluas dari model mana pun. Model ini memiliki satu batasan yang perlu dipertimbangkan: tidak dirancang untuk penggunaan real-time. ElevenLabs menyatakan hal ini secara langsung. Model ini lebih besar dan menggunakan codec suara dengan fidelitas lebih tinggi, sehingga proses generasinya lebih lama. Untuk penggunaan real-time atau percakapan, ElevenLabs merekomendasikan Flash v2.5.

Untuk situs WPML dengan terjemahan bahasa Norwegia, Multilingual v2 tidak akan mencakupinya. Flash v2.5 akan. Untuk situs yang membutuhkan bahasa yang hanya didukung v3, Anda menerima latensi generasi yang lebih tinggi sebagai kompensasi cakupannya. TTSWP meneruskan setiap bahasa ke suara pilihan Anda, sehingga Anda bisa mencampur model sesuai kebutuhan.

Cara menguji apakah plugin TTS Anda benar-benar mendukung WPML

Anda tidak perlu membaca kode untuk memeriksanya. Lima menit di browser sudah cukup untuk mengetahui apa yang terjadi.

  1. Ganti bahasa. Buka artikel asli, lalu beralih ke terjemahan menggunakan pemilih bahasa WPML. Pastikan URL berubah (misalnya menjadi /es/) dan slug post adalah slug yang sudah diterjemahkan.
  2. Tekan play dan dengarkan. Suara harus sesuai dengan bahasa halaman. Suara bahasa Inggris di halaman berbahasa Spanyol berarti plugin gagal di langkah pertama.
  3. Periksa URL audio. Klik kanan player, salin sumber audio. Bandingkan dengan URL audio di artikel asli. Jika kedua URL identik di semua bahasa, plugin menggunakan satu file yang sama.
  4. Lihat source halaman dan cari AudioObject. Cari field inLanguage. Nilainya harus sama dengan kode bahasa halaman. Jika field tersebut tidak ada atau selalu en, skemanya salah.
  5. Periksa hreflang. Nilai inLanguage pada audio harus sesuai dengan hreflang di halaman. Ketidakcocokan membingungkan pencarian AI dan merusak kutipan per bahasa.

Jalankan daftar periksa ini sebelum membeli apa pun. Ini berlaku untuk plugin TTS apa saja, bukan hanya TTSWP.

Seperti apa pengaturan TTS WPML yang benar

Berikut yang kami rekomendasikan untuk situs WPML di lingkungan produksi. Setiap langkah menjawab satu titik kegagalan di atas.

AspekPendekatan yang salahPendekatan yang benar
Bahasa di AJAXKonstanta ICL_LANGUAGE_CODEFilter wpml_current_language atau wpml_post_language_details yang terikat ke ID post
Penyimpanan audioSatu file untuk semua terjemahanSatu file per ID post terjemahan, disajikan dari CDN
Pemilihan suaraSuara yang sama untuk semua bahasaSatu suara ElevenLabs dipetakan per bahasa WPML
Pemilihan modelModel yang sama untuk semua bahasaPilihan per bahasa antara Multilingual v2, Flash v2.5, atau Eleven v3
SkemaAudioObject tidak ada atau hanya bahasa InggrisAudioObject dengan inLanguage yang sesuai dengan hreflang halaman

TTSWP mengikuti kolom kanan secara default. Plugin membaca post terjemahan secara langsung, menghasilkan file audio baru per ID post, mengantarkannya melalui CloudFront, dan mengeluarkan skema AudioObject per bahasa. Dokumentasi integrasi WPML memandu Anda melalui proses pengaturannya.

Satu keterbatasan yang perlu diketahui

Audio per bahasa menghabiskan lebih banyak karakter dibanding satu file bersama. Jika Anda menerbitkan artikel 1500 kata dan menerjemahkannya ke lima bahasa, Anda membayar untuk lima kali generasi, bukan satu. Itulah harga dari ketepatan. Berbagi satu file memang lebih hemat, tapi audionya tidak akan cocok dengan halaman. Kami tidak menyarankan mengorbankan pengalaman pembaca demi menghemat kredit, dan hal ini kami sampaikan secara jelas dalam dokumentasi kredit.

Jika anggaran terbatas, hasilkan audio hanya untuk bahasa yang benar-benar mendapat traffic. Statistik bahasa WPML dan analitik Anda akan menunjukkan terjemahan mana yang layak untuk dinarasikan.

Pertanyaan yang sering diajukan

Apakah TTSWP mendukung WPML secara langsung?

Ya. Setelah kedua plugin aktif, TTSWP mendeteksi WPML, membaca konten post terjemahan untuk setiap bahasa, dan menyimpan file audio terpisah per terjemahan. Anda menetapkan satu suara per bahasa di pengaturan TTSWP, lalu menerbitkan terjemahan seperti biasa. Audio diperbarui secara otomatis saat terjemahan diperbarui. Lihat halaman integrasi WPML untuk langkah-langkah pengaturannya.

Mengapa plugin TTS saya membaca semuanya dalam bahasa Inggris di halaman terjemahan?

Penyebab paling umum adalah konstanta ICL_LANGUAGE_CODE yang sudah usang di dalam panggilan AJAX. Saat AJAX dipanggil, konstanta tersebut sering mengembalikan bahasa default situs, bukan bahasa yang aktif, sehingga plugin menghasilkan atau menyajikan audio bahasa Inggris di halaman non-Inggris. Solusinya adalah beralih ke filter wpml_current_language atau membaca bahasa langsung dari ID post.

Bisakah saya menggunakan suara ElevenLabs yang berbeda per bahasa WPML?

Bisa. TTSWP memetakan satu suara ElevenLabs ke setiap bahasa WPML. Terjemahan Spanyol dibacakan oleh suara berlatar Spanyol, terjemahan Jerman oleh suara Jerman, dan seterusnya. Anda juga bisa memilih model yang berbeda per bahasa, yang penting ketika bahasa target hanya didukung oleh Flash v2.5 atau Eleven v3, bukan Multilingual v2.

Bahasa apa saja yang dicakup ElevenLabs untuk situs WPML?

Multilingual v2 mencakup 29 bahasa, Flash v2.5 mencakup 32 bahasa (menambahkan Norwegia, Hungaria, dan Vietnam), dan Eleven v3 mencakup 74 bahasa. Pilih model dengan cakupan terluas yang sesuai dengan toleransi latensi Anda. Sebagian besar situs WPML sudah terlayani dengan baik oleh Multilingual v2 atau Flash v2.5. Situs dengan bahasa yang lebih jarang mengarahkan terjemahan tersebut ke Eleven v3.

Apakah TTSWP menghasilkan skema per bahasa untuk pencarian AI?

Ya. TTSWP mengeluarkan satu AudioObject per post terjemahan dengan nilai inLanguage yang sesuai dengan hreflang halaman. Ini memberikan sinyal yang jelas kepada mesin pencari dan alat AI tentang audio mana yang termasuk dalam versi bahasa artikel mana, alih-alih membiarkan setiap terjemahan ditandai dengan cara yang sama.

Langkah selanjutnya

Jalankan uji coba lima langkah di browser pada plugin TTS yang Anda gunakan saat ini. Jika ada langkah yang gagal, itulah titik kegagalan yang perlu diperbaiki sebelum menambahkan lebih banyak terjemahan. Jika Anda ingin pengaturan yang menangani kelima hal tersebut sejak awal, instal Teks ke Ucapan - TTSWP dari WordPress.org, hubungkan ke backend TTSWP, dan tetapkan satu suara per bahasa WPML. Plugin akan mengurus sisanya.