テキスト読み上げ (TTS)

テキストデータを音声に変換する技術。Text-to-Speech の略。スクリーンリーダーや音声アシスタントの基盤技術。

テキスト読み上げ (TTS: Text-to-Speech) は、テキストデータを人間の音声に変換する技術です。スクリーンリーダー、音声アシスタント (Siri、Alexa、Google アシスタント)、カーナビゲーション、電子書籍の朗読機能など、幅広い分野で活用されています。視覚障害のあるユーザーにとっては Web コンテンツへのアクセス手段として不可欠な技術です。

TTS の処理は大きく 3 つの段階に分かれます。第 1 段階のテキスト解析では、形態素解析による単語分割、数字や略語の読み推定、同音異義語の判別を行います。第 2 段階の韻律生成では、アクセント、イントネーション、ポーズ (間) の位置を決定します。第 3 段階の音声合成では、実際の音声波形を生成します。近年はディープラーニングベースの合成技術 (WaveNet、Tacotron、VITS など) により、人間の声と区別がつかないほど自然な音声が生成できるようになっています。音声合成技術の書籍で仕組みを学べます。

Web ブラウザでは Web Speech API の SpeechSynthesis インターフェースを通じて TTS 機能を利用できます。speechSynthesis.speak(new SpeechSynthesisUtterance('読み上げるテキスト')) のように数行のコードで実装可能です。クラウドサービスとしては Amazon Polly、Google Cloud Text-to-Speech、Azure Cognitive Services Speech が代表的で、SSML (Speech Synthesis Markup Language) を使って読み上げ速度、ピッチ、ポーズなどを細かく制御できます。

日本語の TTS では、漢字の読み分けが特有の課題です。「生」は「なま」「せい」「しょう」「いきる」など文脈によって読みが変わります。また、人名や地名の読みは辞書に登録されていないケースも多く、カスタム辞書やルビ情報の活用が精度向上に有効です。英語と比較すると、日本語はアクセントの型 (平板型、頭高型、中高型、尾高型) が単語ごとに異なるため、自然な韻律の生成が難しいとされています。

TTS とスクリーンリーダーは密接に関連していますが、役割が異なります。TTS はテキストを音声に変換するエンジンであり、スクリーンリーダーは画面上の情報を解釈して TTS エンジンに渡すソフトウェアです。Web コンテンツのアクセシビリティを高めるには、セマンティック HTML の使用、適切な ARIA 属性の設定、画像への alt テキストの付与など、スクリーンリーダーが正しく解釈できる構造にすることが重要です。

文字数カウントの観点では、テキストの文字数と読み上げ時間は比例関係にあります。日本語では 1 分あたり約 300〜400 文字、英語では 1 分あたり約 150〜180 語が標準的な読み上げ速度です。この関係を利用して、テキストの文字数から読み上げ所要時間を推定できます。ポッドキャストの台本作成や動画のナレーション原稿では、文字数による時間管理が実務で広く行われています。音声インターフェースの書籍も参考になります。