Amazon Polly で実装するテキスト読み上げ - ニューラル音声と SSML による音声制御

ニューラル TTS エンジンで自然な音声を生成し、SSML タグで発話速度・ピッチ・間を制御する。リアルタイムストリーミングと S3 への非同期合成で多様な音声コンテンツを構築する方法を解説します。

Polly の概要

Amazon Polly はテキストを自然な音声に変換するテキスト読み上げ (TTS) サービスです。ニューラル TTS エンジンは深層学習モデルを使用し、従来の標準 TTS エンジンと比較して格段に自然な発話を生成します。対応する言語・言語バリアントと音声は継続的に追加されているため、実際に選べる音声は AWS 公式ドキュメントの Available voices 一覧で確認してください。日本語 (ja-JP) のニューラル音声は Takumi (男性)、Kazuha (女性)、Tomoko (女性) の 3 音声で、標準エンジンのみで提供される Mizuki (女性) を加えた 4 音声が日本語の選択肢になります (2026 年 8 月時点の公式ドキュメント記載値)。Takumi は標準エンジンとニューラルエンジンの両方に対応するため、男性音声でもニューラル品質の読み上げが可能です。なお公式一覧の性別区分は女性と男性の 2 種類だけで、児童の声として案内される音声は一部の英語音声に限られ、日本語には該当する音声がありません。Generative エンジンは最新の基盤モデルを使用した最高品質の音声で、公式ドキュメントでは 23 ロケール・43 音声が提供されていますが、日本語 (ja-JP) は対象に含まれません。利用できるリージョンも東京 (ap-northeast-1) を含む 10 リージョンに限られるため、対象リージョンかどうかを事前に確認します。Long-Form エンジンは書籍やニュース記事などの長文コンテンツに最適化されており、段落間の自然な間や抑揚を自動的に調整します。

SSML と音声制御

SSML (Speech Synthesis Markup Language) タグでテキストの読み上げ方を細かく制御できます。 タグで発話速度 (rate)、ピッチ (pitch)、音量 (volume) を調整し、 タグで任意の位置に間を挿入します。 タグで特定の単語の発音を IPA (国際音声記号) で指定でき、固有名詞や専門用語の読み間違いを防ぎます。 タグで数字の読み方 (電話番号、日付、通貨) を指定し、 タグで強調を加えます。レキシコンを登録すると、特定の単語やフレーズの発音をグローバルに上書きでき、SSML を毎回記述する手間を省けます。ニューラルエンジンでは NTTS 専用の タグでニュースキャスター風や会話風のスタイルを適用できますが、適用できるのはこのスタイルに対応した一部の音声に限られます。2026 年 8 月時点の公式ドキュメントで対象となるのは英語とスペイン語の一部の音声 (en-GB の Amy、es-US の Lupe など) で、日本語の音声はいずれも対応していないため、日本語コンテンツでニュースキャスター調の読み上げを狙う設計はできません。Generative エンジンでもニュースキャスタースタイルは非対応です。

合成方式と統合

Polly は 2 つの合成方式を提供します。SynthesizeSpeech API はリアルタイムでテキストを音声に変換し、オーディオストリームを返します。レスポンスをそのまま再生するか、ファイルに保存します。1 リクエストの上限は課金対象文字数 3,000 文字 (SSML タグを含む総文字数では 6,000 文字) で、出力される音声ストリームは 10 分までという制限もあります。1 リクエストで適用できるレキシコンは 5 個までです。StartSpeechSynthesisTask API は非同期合成で、長文テキストを S3 バケットに MP3 や OGG 形式で出力します。1 リクエストの上限は課金対象文字数 100,000 文字 (SSML タグを含む総文字数では 200,000 文字) で、SSML タグは課金対象文字数にカウントされないため、プレーンテキストであれば 100,000 文字が実効上限になります (2026 年 8 月時点の公式ドキュメント記載値)。この 2 段構えの上限を取り違えて 15 万文字のプレーンテキストを投入するとタスクは受け付けられないため、投入前に課金対象文字数で見積もる必要があります。書籍の朗読音声や大量のアナウンス音声の一括生成に適しています。SpeechMark 機能でテキストと音声のタイミング情報 (ワード単位、文単位) を取得でき、字幕の自動同期やリップシンクに活用できます。Connect との統合で IVR の音声案内を動的に生成し、Lex との組み合わせで音声対話ボットを構築します。

Polly の料金

Polly の料金は処理した文字数に基づく従量課金です。ニューラルエンジンは 100 万文字あたり約 16.00 ドル、標準エンジンは 100 万文字あたり約 4.00 ドルです (2026 年 8 月時点)。Generative エンジンは 100 万文字あたり約 30.00 ドルです。Long-Form エンジンは 100 万文字あたり約 100.00 ドルと高額ですが、書籍朗読などの高品質な長文音声に特化しています。2025 年 7 月 15 日より前に作成した旧アカウントの 12 か月無料枠では、ニューラルエンジン 100 万文字/月・標準エンジン 500 万文字/月が対象でした。それ以降の新規アカウントには最大 200 ドルのクレジット制無料プラン (最長 6 か月) が適用されます (最新の条件は AWS 公式サイトを参照)。SSML タグは文字数にカウントされないため、SSML を活用してもコストは増加しません。

音声とエンジンの選択

Polly は多数の言語と話者の音声を提供し、用途に合わせて選べます。音声合成のエンジンにはいくつかの種類があり、自然さと用途が異なります。より人間に近い滑らかな音声を出すエンジンは、ナレーションや対話に向きます。長文の読み上げに最適化されたエンジンや、表現力の高いエンジンもあります。エンジンによって対応する言語や料金が異なるため、求める品質と予算のバランスで選びます。ブランドの雰囲気に合う話者を選ぶことも、聞き手の印象を左右します。用途・言語・コストの観点から、最適な音声とエンジンの組み合わせを見極めます。

発音のカスタマイズ

固有名詞や専門用語、略語は、そのままでは意図どおりに読まれないことがあります。Polly では、発音をカスタマイズする仕組みが用意されています。SSML というマークアップを使えば、読み方や区切り、強調、間の取り方を細かく制御できます。特定の語の読みをあらかじめ定義する辞書を用意しておけば、社名や製品名を一貫して正しく読ませられます。数字や日付の読み上げ方も指定できます。こうした調整を施すことで、機械的な誤読を防ぎ、聞き手にとって自然で分かりやすい音声に仕上げられます。発音の作り込みが、音声コンテンツの品質を決めます。

ユースケースと配信

Polly は、幅広い場面で活用できます。電話の自動応答における案内音声、e ラーニング教材のナレーション、記事を音声で読み上げるアクセシビリティ対応、ニュースやポッドキャスト風の音声コンテンツなどが代表例です。リアルタイムに音声をストリーミングして即座に再生する方式と、長い文章をまとめて合成して S3 に保存する方式があり、用途で使い分けます。生成した音声ファイルを CloudFront で配信すれば、多くの利用者へ効率的に届けられます。テキストさえあれば多様な音声を生み出せるため、コンテンツ展開の幅を大きく広げられます。

運用とコスト最適化

Polly の料金は、合成した文字数に応じて課金されます。同じ文言を繰り返し読み上げる場合は、毎回合成し直すのではなく、生成した音声ファイルを保存して再利用することで、合成回数とコストを抑えられます。固定的な案内文や定型メッセージは、あらかじめ合成しておくキャッシュ戦略が有効です。大量の文章は非同期での一括合成が効率的です。動的に変わる部分だけをリアルタイム合成し、固定部分はキャッシュから返す、といった組み合わせも考えられます。読み上げる文字量を意識した設計が、コストを管理しながら音声機能を提供する鍵になります。

まとめ

Amazon Polly はニューラル TTS エンジンで自然な音声を生成するサービスです。SSML による細かな音声制御、リアルタイムストリーミングと非同期合成の 2 つの合成方式、SpeechMark による字幕同期など、多様な音声コンテンツの構築に対応します。Connect や Lex との統合で、音声対話システムの構築にも活用できます。

参考資料 (AWS 公式)

本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。

本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。