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

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

Polly の概要

Amazon Polly はテキストを自然な音声に変換するテキスト読み上げ (TTS) サービスです。ニューラル TTS エンジンは深層学習モデルを使用し、従来の標準 TTS エンジンと比較して格段に自然な発話を生成します。日本語を含む 30 以上の言語、60 以上の音声をサポートし、男性・女性・子供の声を選択できます。日本語のニューラル音声は Kazuha と Tomoko が提供されています。Generative エンジンは最新の基盤モデルを使用した最高品質の音声で、現在英語で利用可能です。Long-Form エンジンは書籍やニュース記事などの長文コンテンツに最適化されており、段落間の自然な間や抑揚を自動的に調整します。

SSML と音声制御

SSML (Speech Synthesis Markup Language) タグでテキストの読み上げ方を細かく制御できます。 タグで発話速度 (rate)、ピッチ (pitch)、音量 (volume) を調整し、 タグで任意の位置に間を挿入します。 タグで特定の単語の発音を IPA (国際音声記号) で指定でき、固有名詞や専門用語の読み間違いを防ぎます。 タグで数字の読み方 (電話番号、日付、通貨) を指定し、 タグで強調を加えます。レキシコンを登録すると、特定の単語やフレーズの発音をグローバルに上書きでき、SSML を毎回記述する手間を省けます。ニューラルエンジンでは NTTS 専用の タグで、ニュースキャスター風や会話風のスタイルを適用できます。

合成方式と統合

Polly は 2 つの合成方式を提供します。SynthesizeSpeech API はリアルタイムでテキストを音声に変換し、オーディオストリームを返します。レスポンスをそのまま再生するか、ファイルに保存します。3,000 文字以下のテキストに適しています。StartSpeechSynthesisTask API は非同期合成で、長文テキストを S3 バケットに MP3 や OGG 形式で出力します。最大 200,000 文字のテキストを処理でき、書籍の朗読音声や大量のアナウンス音声の一括生成に適しています。SpeechMark 機能でテキストと音声のタイミング情報 (ワード単位、文単位) を取得でき、字幕の自動同期やリップシンクに活用できます。Connect との統合で IVR の音声案内を動的に生成し、Lex との組み合わせで音声対話ボットを構築します。 音声技術の活用についてはAmazon の関連書籍も参考になります。

Polly の料金

Polly の料金は処理した文字数に基づく従量課金です。ニューラルエンジンは 100 万文字あたり約 16.00 ドル、標準エンジンは 100 万文字あたり約 4.00 ドルです。Generative エンジンは 100 万文字あたり約 30.00 ドルです。Long-Form エンジンは 100 万文字あたり約 100.00 ドルと高額ですが、書籍朗読などの高品質な長文音声に特化しています。無料利用枠として、最初の 12 か月間はニューラルエンジン 100 万文字/月、標準エンジン 500 万文字/月が無料です。SSML タグは文字数にカウントされないため、SSML を活用してもコストは増加しません。

まとめ

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