[新機能] Amazon Pollyが非同期合成に対応、最大10万文字の読み上げが可能に!

はじめに

今回ご紹介する新機能はこちら!

これまでのAmazon Pollyは基本的に同期合成で、テキストを流し込むとすぐに読み上げられた音声が返ってきました。今回のアップデートで非同期合成に対応、最大10万文字の読み上げが可能になりました。ピュアなテキストで10万文字、SSMLタグを使う場合はピュアテキスト10万文字に加えてSSMLタグ10万文字が使えます。

まぁ、百聞は一件にしかず。まずはやってみましょう!

やってみた

準備

非同期合成では合成されたファイルが配置されるS3バケットと、処理が完了したときに通知されるSNSトピックが必要ですので、事前に作成しておきます。また以下のようなIAMポリシーを作成しておきます。

{
  "Version": "2012-10-17",
  "Statement": [
    {  
      "Effect": "Allow",
      "Action": [
        "polly:StartSpeechSynthesisTask",
        "polly:GetSpeechSynthesisTask",
        "polly:ListSpeechSynthesisTasks"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::bucket-name/*"
    },
    {
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:region:account:topic"
    }
  ]
}

実行

Amazon Pollyの管理コンソールで、テキスト読み上げ機能画面を開きます。テキストボックスに長文を投入します。今回は97711文字あります。

[S3に向けて合成]ボタンをクリックします。

[S3合成タスク設定の変更]画面が表示されます。[S3出力バケット]と[通知のSNSトピック]を設定します。[合成]ボタンをクリックします。

合成タスクが作成されます。

[S3合成タグ]タブで、合成タグの進捗状況を確認することが出来ます。

終わったらこんな感じでSNSトピック経由でメールが飛んできます。

タスクステータスも完了になっています。

S3バケット上にファイルが出来上がってました。

作成された音声ファイルは100MBほどあるのでここにはアップロードしませんが、しっかりと読み上げが完成してました。素晴らしい。

さいごに

今回のアップデートにより、10万文字というかなり長い文章を読み上げることが出来るようになりました。短中編なら丸々読み上げが出来ます。リアルタイム性が必要であれば短文を同期処理、リアルタイム性が不要であれば長文を非同期処理、という使い分けが出来ますね!