WeglotとWordPressのテキスト読み上げ:正しく動作する方法

2 分で読める 25 分で聴ける
WeglotとWordPressのテキスト読み上げ:正しく動作する方法

多くのテキスト読み上げプラグインがWeglotとの互換性を主張していますが、実際に正しく動作するものはわずかです。違いはコンテンツの読み取り方にあります。WordPressデータベースからテキストを取得するプラグインは、Weglotが訪問者に表示する翻訳版を取得できません。アクティブなWeglot言語を検出してレンダリング済みページから読み取るプラグインは、訪問者が見ているページに合った音声を生成できます。

この記事では、その技術的な理由を説明し、本当のWeglot対応に必要な条件を整理した上で、主要なTTSプラグインそれぞれの対応状況を確認します。

WeglotがほとんどのTTSプラグインを壊す理由

WeglotはWPMLやPolylangとは動作が異なります。WPMLやPolylangは言語ごとに個別の投稿レコードを作成します。スペイン語の翻訳はWordPressデータベース内に独立した行として存在し、固有の投稿ID、スラッグ、コンテンツを持ちます。

Weglotはこの方式ではありません。Weglotはページをリアルタイムで翻訳します。元の英語コンテンツはデータベースに残ります。訪問者がスペイン語に切り替えると、WeglotはHTMLレスポンスをブラウザに届く前に横断して表示テキストを書き換えます。データベース自体は変わりません。

これがテキスト読み上げに影響します。一般的なTTSプラグインはsave_postthe_contentといったフックで動作し、$post->post_contentからテキストを読み取り、音声プロバイダーに送信してMP3ファイルを保存します。そのMP3は、訪問者がどの言語を見ていても同じファイルが再生されます。

結果として、スペイン語を話す訪問者はスペイン語のテキストを見ながら英語の音声を聞くことになります。プレーヤーは表示され、音声は再生されますが、言語の不一致が体験を損ない、プラグインを導入したアクセシビリティ上のメリットも失われます。

Weglot対応のTTSプラグインには3つの追加処理が必要です。リクエスト時に訪問者の現在のWeglot言語を検出すること。データベースの内容ではなく翻訳済みテキストから音声を生成すること。次のスペイン語訪問者が別途生成費用を発生させないよう、言語ごとに音声をキャッシュすることです。

Weglot翻訳を無視するデータベース駆動のTTSと、言語一致した音声を生成するDOM駆動のTTSを比較した図
データベース駆動のプラグインはソース投稿から音声を一度だけ生成します。DOM駆動のプラグインはWeglotが配信する翻訳済みページから音声を生成します。

本当のWeglot対応に必要な条件

検討中のTTSプラグインを評価するための5項目チェックリストです。

  1. プラグインがURLまたはWeglot APIから訪問者のアクティブなWeglot言語を検出する。
  2. プラグインがデータベースの生の値ではなく、翻訳済みコンテンツから音声を生成する。
  3. プラグインが言語ごとに音声ファイルをキャッシュし、各言語の生成が一度で済む。
  4. プラグインで言語ごとに特定の音声を割り当てられ、フランス語コンテンツにフランス語音声を使える。
  5. プラグインが有効なすべてのWeglot言語でバルク事前生成をサポートし、訪問者が初回合成を待たずに済む。

これらのうち1〜2つを満たすプラグインは多くありますが、5つすべてを満たすものはほとんどありません。

主要なテキスト読み上げプラグインのWeglot対応状況

以下のプラグインについて、公開ドキュメント、WordPress.orgの掲載情報、プラグイン説明を確認しました。ドキュメントに記載のないWeglot対応が実装されているケースもあるかもしれませんが、記載がなければ信頼することはできません。

プラグインWeglot言語の検出翻訳済みDOMの読み取り言語別キャッシュ言語別音声言語別バルク生成
TTSWP対応対応対応対応対応(ProおよびAgencyプラン)
BeyondWordsドキュメント未記載(多言語は手動設定:プラグイン設定でサブ言語を追加し、投稿ごとに言語を選択)非対応(レンダリングページではなく、WordPressデータベースから投稿コンテンツをBeyondWords APIに送信)音声は投稿ごと・選択言語ごとに保存されるが、各投稿で手動設定した場合のみ対応(メイン音声に加え、投稿ごとにサブ言語と音声を選択)バルク音声生成機能はあるが、各投稿に設定された言語のみ対象。WeglotのすべてのアクティブLanguagesを自動で一括処理する機能はない
Trinity Audioドキュメント未記載プレーヤーは初期化時にDOMから記事テキストを読み取るが、リアルタイム翻訳は6言語に限定されており、別機能として提供音声はその投稿に設定された言語でサーバー側から投稿ごとに生成。Weglot言語別キャッシュのドキュメントなし対応、ただし投稿ごと(投稿レベルでの手動言語選択)ドキュメント未記載
GSpeechドキュメント未記載。多言語モードが公式にサポートするのはGTranslate、WPML、Polylang、TranslatePressのみ。Weglotは記載なし対応(クリック時にDOMを読み取り)Weglot向けのドキュメントなし記載されている多言語プラグインに対応(アクティブなサイト言語に基づく自動音声選択)。WeglotのWeglot時の動作は未記載ドキュメント未記載
ResponsiveVoice対応(クリック時にDOMを読み取り)対応(ブラウザのWeb Speech API)なし(音声ファイルは保存しない)対応(言語と音声パラメータをショートコードや設定で指定し、Web Speech APIの音声にマッピング)なし(事前生成なし)
Voicerドキュメント未記載。プラグイン説明に記載されている多言語連携はWPMLのみ対応(DOMから選択したテキストを読み取り、クリック時にGoogle Cloud TTSに送信)リアルタイム再生のためのキャッシュなし。要素ごとの音声はvoicer-voice-en-GB-Wavenet-AのようなCSSクラスで設定可能対応、ただし要素ごとにCSSクラスで手動設定。Weglot言語への自動マッピングはなしなし(事前生成なし)

TTSWP

TTSWPはリクエスト時にアクティブなWeglot言語を検出し、レンダリングされた翻訳から音声を生成します。各言語は独自のキャッシュ済みMP3ファイルを持ちます。プラグインには言語・音声マッピング画面が含まれており、Weglot言語ごとに個別の音声を割り当てられます。ProおよびAgencyプランのバルク生成機能で、有効なすべての言語の音声を事前レンダリングできます。詳細な連携情報はWeglot連携ページに記載されています。

BeyondWords

BeyondWordsはニュースルームや大規模パブリッシャー向けに、ニューラル音声と音声CMSの機能に特化しています。公開ドキュメントにはWeglot固有の対応は記載されていません。プラグインは公開時に保存された投稿コンテンツから音声を生成するため、Weglotの翻訳は自動的に反映されません。BeyondWordsは単一言語のパブリッシャーには強力な選択肢です。Weglotユーザーは導入前に十分なテストが必要です。

Trinity Audio

Trinity AudioはWordPressコネクタを持つSaaSプラットフォームです。プレーヤーはJavaScriptとして読み込まれ、初期化時にDOMから記事テキストを読み取り、Trinity Audio のサーバーに送信して音声を生成します。公開ドキュメントにはWeglot固有の言語検出や言語別音声マッピングの記載はありません。無料プランは月5記事まで対応し、125以上の言語と600以上の音声が利用できます。

GSpeech

GSpeechはGoogle Cloud Text-to-Speechを使用して、投稿に読み上げボタンを追加します。公開ドキュメントにWeglotの記載はありません。プラグインはクリック時に表示中のページコンテンツを読み取るため、訪問者がすでに言語を切り替えていれば翻訳済みの音声が生成される可能性があります。言語別音声マッピングのドキュメントはありません。

ResponsiveVoice

ResponsiveVoiceはブラウザのWeb Speech APIを使ってすべての処理をブラウザ内で行います。訪問者が再生をクリックした時点でレンダリング済みDOMからテキストを読み取るため、Weglotの翻訳に自動的に追従します。音声品質はクラウドベースのプロバイダーより低く、商用利用には有料プランが必要です。プラグインの最終更新は2025年4月14日(バージョン1.7.15)で、1年以上積極的にメンテナンスされていません。

Voicer

VoicerはGoogle Cloudの音声を使用し、WPMLサポートを提供しています。公開ドキュメントにWeglotの記載はありません。プラグインは公開時にデータベースから音声を生成するため、多言語音声を機能させるにはWPMLのようなデータベースレベルの翻訳システムが必要です。

傾向は明確です。公開時にデータベースから音声を生成するプラグインはWPMLのようなデータベースレベルの翻訳システムが必要です。リクエスト時にDOMから音声を生成するプラグインはWeglotでも動作します。TTSWPは後者のモデルを採用し、言語別音声マッピングと言語別キャッシュを実装しています。

WeglotとTTSを5分で一緒にテストする方法

検討中のTTSプラグインでこのテストを実行してください。Weglotが有効で、少なくとも1つの翻訳先言語が有効になっているステージングサイトが必要です。

  1. TTSプラグインをインストールして有効化します。
  2. デフォルト言語で投稿を開きます。音声プレーヤーが表示され、正しく再生されることを確認します。
  3. Weglotの言語切り替えを使って翻訳先言語に変更します。ページを更新しないでください。
  4. 音声プレーヤーの再生ボタンをクリックします。
  5. 10秒間聴きます。

3つの結果が、プラグインの動作を教えてくれます。

元の言語で音声が再生される。 プラグインは翻訳済みDOMではなくデータベースから読み取っています。Weglotには実質的に対応していません。

翻訳先言語で音声が再生されるが、音声が合っていないか機械的な声になる。 プラグインは言語を検出していますが、言語別音声マッピングがありません。アクセシビリティ目的のみなら許容範囲ですが、ブランド品質には不十分です。

翻訳先言語で、その言語に合った自然な声で音声が再生される。 プラグインはWeglotを正しく処理しています。テスト後に音声ライブラリを確認し、再生のたびに再生成されるのではなくファイルがキャッシュされていることを確認してください。

複数の言語でキャッシュが正しく機能することを確認するため、2つ目の翻訳先言語でもテストを繰り返してください。

どのプラグインがどのケースに合うか

最適な選択肢は優先事項と予算によって異なります。

すでにWeglotを使っていて、すべての言語でプロ品質の音声を使いたい場合。 テストしたプラグインの中で、Weglot対応の5つの要件をすべてドキュメント化して実装しているのはTTSWPだけでした。言語別音声マッピング、言語別キャッシュ、バルク生成がすべて含まれています。まずは無料プランから始めてください。

単一言語でコンテンツを配信しており、エンタープライズ向け音声機能が必要な場合。 BeyondWordsはより充実した音声CMS、ポッドキャスト配信、音声クローニング機能を提供しています。Weglotを使っていなければ、Weglot対応の有無は問題になりません。

コストゼロで、ブラウザ標準の音声で問題ない場合。 ResponsiveVoiceはDOMから読み取り、Weglotに自動的に対応しますが、音声品質は低く、ライセンスの制限があります。

WeglotではなくWPMLをすでに使っている場合。 WPMLはデータベースに翻訳を保存するため、ほとんどのプラグインが動作します。TTSWPはWPML専用のWPML連携も提供しています。

翻訳システムとTTSを同時に選んでいる場合。 音声品質と言語カバレッジを重視するなら、TTSWPとWeglotの組み合わせを選んでください。翻訳者主導で各翻訳を細かく管理したい場合は、WPMLとWPML対応のTTSプラグインを選んでください。

よくある質問

Weglotは音声ファイルを自動で翻訳しますか?

いいえ。WeglotはHTML、JSONなどのテキスト形式を翻訳します。MP3ファイルは翻訳しません。TTSプラグインが翻訳済みテキストから各言語の新しい音声ファイルを生成する必要があります。TTSWPは初回リクエスト時にこれを行い、結果をキャッシュするため、以降の同言語の訪問では同じ音声ファイルが配信されます。

WeglotでElevenLabsの音声を使えますか?

はい。TTSWPはデフォルトでElevenLabsの音声を使用します。言語・音声マッピング画面で、Weglot言語ごとに異なるElevenLabsの音声を割り当てられます。ElevenLabsは幅広い言語に対応しているため、ほとんどのWeglot言語ペアでネイティブに近い音声が利用できます。

Weglotが翻訳を更新するたびに音声が再生成されますか?

いいえ。音声は言語ごと・投稿ごとにキャッシュされます。ソース投稿を編集した場合、TTSWPは音声を再生成できます。WeglotがダッシュボードI で翻訳を更新しても、既存の音声はキャッシュに残ります。翻訳が変更されたことがわかったときは、投稿一覧で「再生成」をクリックするか、バルク生成を使って強制的に更新してください。

WeglotのサブディレクトリやサブドメインURLでも動作しますか?

はい。TTSWPはURL構造ではなくWeglot自体からアクティブ言語を読み取ります。サブディレクトリ形式(example.com/ja/)もサブドメイン形式(ja.example.com)も同じように動作します。プラグインは現在のリクエストに対してWeglotにアクティブ言語を問い合わせ、対応する音声ファイルを生成または配信します。

多言語音声にかかる費用はどのくらいですか?

対応する言語ごとに、各投稿でその言語の音声が最初に生成されるときにクレジットを消費します。1,000文字の投稿を5言語で使用する場合、全言語の初回再生で約5,000クレジットを使用します。それ以降はキャッシュ済みのファイルが配信されるため、追加コストは発生しません。詳細はクレジットのドキュメントをご覧ください。

次のステップ

WeglotサイトでTTSWPを試してみましょう。WordPress.orgから無料版をインストールし、概要ダッシュボードでWeglot連携を有効化して、言語ごとに音声をマッピングしてください。無料プランは2〜3件の短い投稿を2言語でテストするのに十分な文字数をカバーしています。何かあれば、Weglot連携ドキュメントに本番環境で確認したすべてのエッジケースが記載されています。