Cloud Service
Amazon Polly
テキストを自然な音声に変換するフルマネージドな音声合成(TTS)サービス。多言語・多話者の音声を API 呼び出しだけで生成できる。
- 1.入力したテキストを人間に近い音声へ変換する音声合成サービス。
- 2.多言語・多数の話者に対応し、SSML で読み方や抑揚を細かく制御できる。
- 3.管理サーバー不要のフルマネージド。合成した文字数に応じた従量課金。
解決する課題
アプリやコンテンツに音声を載せたいとき、ナレーターを手配して収録するのは時間もコストもかかり、原稿の修正があるたびに録り直しが必要になります。Amazon Polly を使うと、テキストを機械学習で自然な音声に変換できます。
- 記事やドキュメントを読み上げ音声にしてアクセシビリティを高める
- 電話自動応答(IVR)やチャットボットの音声応答を動的に生成する
- 動画ナレーションや e ラーニング教材の音声を原稿から自動生成する
- 原稿を直すだけで音声を作り直せるため、収録のやり直しが不要
音声合成モデルの学習やインフラ運用を自分で抱えずに、API 呼び出しだけで利用できる点が中心的な価値です。テキストを音声へ変換する Polly は、音声をテキスト化する Amazon Transcribe とちょうど逆方向の関係にあります。
主要概念と用語
- TTS(音声合成): テキストを音声波形に変換する技術。Polly の中核
- ボイス(話者): 言語ごとに用意された声の種類。性別や言語アクセントが異なる複数のボイスから選べる
- 音声エンジン: 音質の方式。標準的なエンジンに加え、より自然で人間に近いニューラル方式や、長文読み上げ・会話向けに調整されたエンジンが提供される
- SSML: 音声合成マークアップ言語。読み上げ速度・音の高さ・間(ポーズ)・強調・読み仮名などをタグで細かく指定できる
- レキシコン(発音辞書): 固有名詞や略語など、標準では読み方を誤りやすい単語の発音を登録して上書きする仕組み
- 同期合成: 短いテキストを 1 回の API 呼び出しで音声に変換し、その場で音声データを受け取る方式
- 非同期合成タスク: 長文を非同期で処理し、結果を S3 に出力する方式。一度に扱えるテキスト量が大きい
- スピーチマーク: 単語や音素ごとのタイミング情報。字幕表示や口パク同期などに使う
仕様・制限・クォータ
- 多数の言語と、言語ごとに複数のボイスに対応する
- 出力は一般的な音声フォーマット(圧縮音声や非圧縮の波形など)と、ストリーミング再生に適した形式から選べる
- SSML により、ポーズ・速度・ピッチ・強調・読み仮名・電話番号や日付の読み上げ方などを制御できる
- 1 回の同期リクエストで扱えるテキスト量には上限があり、それを超える長文は非同期タスクを用いる
- API のリクエストレートや同時実行など、アカウント単位のクォータがあり、引き上げ申請が可能
- スピーチマークを使うと、合成音声と同期した字幕やアニメーションを作成できる
具体的な対応言語数・ボイス数・上限値・対応フォーマットは更新されるため、最新の公式ドキュメントで確認してください。
内部の仕組み
利用者から見ると、テキストを渡すと AWS 側のマネージドな機械学習モデルが推論を行い、音声データを返すブラックボックスとして扱えます。
- 同期合成: テキストとボイス・出力形式を指定して呼び出すと、応答として音声データのストリームが返る。短い文や対話的な応答に向く
- 非同期合成タスク: 長文を渡してタスクを開始し、完了後に音声ファイルが S3 へ出力される。完了はポーリングまたは通知で受け取る
- エンジン選択: ニューラル方式のエンジンはより自然な抑揚を生成する一方、標準方式は対応ボイスが異なる。用途と品質要件で選ぶ
- レキシコンや SSML は、推論時にモデルへ与える指示として働き、読み方や抑揚を補正する
モデルの学習やスケーリング、ハードウェアの管理はすべて AWS 側が担います。
設計パターン / ベストプラクティス
- 生成音声のキャッシュ: 同じテキストを繰り返し読み上げる場合、生成済みの音声を S3 などに保存して再利用し、再合成のコストと遅延を減らす
- 長文は非同期タスク: 記事や書籍のような長文は同期合成の上限に当たりやすいため、非同期タスクで S3 出力する
- 読み方はまず SSML とレキシコン: 固有名詞や略語、数字・日付の読み間違いは、SSML タグやレキシコン登録で補正する
- パイプライン化: テキストの更新(S3 や DynamoDB の変更)をトリガに Lambda で合成を起動し、結果を配信用ストレージへ流す疎結合構成にする
- 後段・前段との連携: Amazon Transcribe で文字起こししたテキストを翻訳・編集し、Polly で別言語の音声に変換するといった組み合わせも可能
読み上げが不自然なときは、いきなりボイスやエンジンを変える前に、SSML で間や強調、読み仮名を指定するだけで大きく改善することが多いです。低コストで試せます。
運用・監視
- API 呼び出しや非同期タスクの状況は CloudWatch のメトリクス・ログで監視する
- 非同期合成タスクの完了・失敗を SNS などへ通知し、後続処理や運用通知を自動化する
- API 操作の監査証跡は CloudTrail に記録される
- 失敗時はエラー理由(非対応の文字・SSML の構文誤り・権限不足など)を確認し、入力テキストと IAM 設定を見直す
長文の合成は同期リクエストの上限を超えることがあります。長いコンテンツは非同期タスクで処理し、結果を同期的に待たずに通知やポーリングで完了を受け取る設計にしてください。
コスト
- 課金は基本的に合成したテキストの文字数に対する従量制で、サーバーの常時起動費用は発生しない
- 標準エンジンとニューラルエンジンなど、音声品質の方式によって単価が異なる傾向がある
- 同じ音声を繰り返し使うなら、生成結果を保存して再利用することで再合成の費用を抑えられる
具体的な単価は変動するため、料金は公式の料金ページで確認してください。短いテキストで検証してから本番のボリュームを見積もるのが安全です。
セキュリティ
- アクセス制御は IAM で行い、合成 API や出力先 S3 バケットへの最小権限のみを付与する
- 非同期タスクの出力先 S3 は、バケット側の暗号化(KMS 管理鍵を含む)で保護し、転送は TLS で保護する
- 機微な情報をテキストに含める場合は、生成された音声ファイルの保管場所と公開範囲を限定する
- VPC 内のリソースからプライベートに到達したい場合は VPC エンドポイント経由のアクセスを検討する
合成した音声を保存する S3 バケットを誤って公開すると、原稿の内容がそのまま音声として流出します。出力バケットのアクセスポリシーを限定し、必要な範囲だけに公開してください。
Well-Architected の観点
- 運用上の優秀性: マネージドサービスにより運用負荷を下げ、S3・Lambda・SNS と組み合わせて音声生成パイプラインを自動化・可観測化できる
- セキュリティ: IAM の最小権限、保存・転送時の暗号化で原稿と生成音声を保護する
- コスト最適化: 従量課金のため、生成音声のキャッシュ再利用や用途に合ったエンジン選択で無駄な再合成を避ける
- 信頼性: 長文は非同期・疎結合な構成にし、タスク失敗時の再試行や通知を組み込む
試験で問われるポイント
- 「テキストを音声に変換する AWS サービスは?」→ Amazon Polly(逆に音声をテキストにするのは Amazon Transcribe)
- 「読み上げの抑揚や間、読み仮名を制御したい」→ SSML
- 「固有名詞や略語の読み方を直したい」→ レキシコン(発音辞書)
- 「より自然で人間に近い音声がほしい」→ ニューラル方式のエンジン
- 「長文を一括で音声化したい」→ 非同期合成タスクで S3 出力
- 字幕や口パクの同期にはスピーチマークを使う
関連サービス・比較
音声をテキストに変換する Amazon Transcribe とは逆方向の関係にあり、混同しやすいため比較します。
| 観点 | Amazon Polly | Amazon Transcribe |
|---|---|---|
| 変換の向き | テキストから音声へ | 音声からテキストへ |
| 代表的な用途 | 音声読み上げ・ナレーション・IVR | 議事録・字幕・通話分析 |
| 扱う技術 | 音声合成(TTS) | 音声認識(ASR) |
| 細かな制御 | SSML で抑揚や読み方を指定 | カスタム語彙で認識を補正 |
ハンズオン / CLI例
# 短いテキストをニューラルエンジンで音声に変換し、MP3 として保存
aws polly synthesize-speech \
--text "こんにちは、Amazon Polly のデモです。" \
--voice-id Mizuki \
--engine neural \
--output-format mp3 \
hello.mp3
# 長文を非同期タスクで合成し、結果を S3 に出力
aws polly start-speech-synthesis-task \
--text-type text \
--text file://article.txt \
--voice-id Takumi \
--engine neural \
--output-format mp3 \
--output-s3-bucket-name my-output-bucket
AWS Service
Amazon Pollyを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
AI / 機械学習
比較で見る軸
クラウド: AWS / カテゴリ: AI / 機械学習 / 難易度: basic
導入後に効く点
多言語・多数の話者に対応し、SSML で読み方や抑揚を細かく制御できる。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- AI / 機械学習
- 難易度
- basic
- 関連資格
- AIF-C01
- 設計柱
- operational
判断チェックリスト
- 自社の用途が「AI / 機械学習 / operational」に近いか確認する。
- 強みである「入力したテキストを人間に近い音声へ変換する音声合成サービス。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。