Amazon Connect の読み上げブロックには文字数制限があるぞ! 気をつけよう

記事タイトルとURLをコピーする

こんにちは、技術1課の加藤です。
今回は、Amazon Connect についての話題。

手軽に電話を扱えるサービスな Amazon Connect。コールセンターや企業の代表電話をリプレースするサービスとして注目されています。

(参考情報↓)

ですがまだまだ生まれたばかりのサービス。Connect には気をつけないといけない点がちょこちょこあります。
今回は Connect のハマりどこを知ろう、ということで、読み上げブロックの文字数制限に引っかかったお話をします。
(※ この記事は2020/04/08 に書かれています。仕様については念のため 公式ドキュメント を確認してください)

経緯

顧客入力をループして繰り返し、受け取った情報をまとめて読み上げる、というような処理をフローに実装していました。

このフローを使ったとき、ある回数以上入力をすると、読み上げのブロックがスキップされてしまうという現象が発生したのです。
ログを見ても特にエラーの発生なども記録されておらず。なぜだろう...と悩んでもよくわからない。

状況を把握していた開発メンバーのひとりが、調査を買って出てくださいました。
彼がサポートに問い合わせたり仕様を調査してくださったりと奮闘してくださった結果。

初めて、読み上げブロックには文字数制限がある、ということを知ることになったのです。

Connect の読み上げブロックの文字数制限

Connect の文字列の読み上げには、裏で Polly が使われています。
呼び出されている API はどうやら SynthesizeSpeech API
今回ハマった読み上げブロックの文字数制限は、この仕様によるもののでした。

ドキュメントを見ると以下の通り、API の制約が書かれています。

SynthesizeSpeech API オペレーションの使用には、以下の制限が関連している点に注意してください。
• 入力テキストのサイズは、最大 3000 課金対象文字 (合計 6000 文字) です。SSML タグは、課金対象文字としてカウントされません。
• 入力テキストに適用する最大 5 個のレキシコンを指定できます。
• 出力オーディオストリーム (合成) は 10 分に制限されています。これに達した後は、残りの音声はカットオフされます。

一つ目の項目が、文字数制限の項目になります。
ちょっと日本語がわかりにくいですが、

  • SSML を含めず 3,000文字
  • SSML を含めて 6,000文字

というのが文字数制限の条件となるようです。
これを超える文字数を Connect の読み上げブロックに渡すと、Polly が音声を合成することができず、その読み上げをスキップしてしまいます。

長文の読み上げを計画されている場合、読み上げるブロックを分けるなどして対応をしてあげる必要があります。

※追記

Connect のフロー上で文字列を読み上げられるブロックはいくつかあるのですが、 プロンプトの再生および顧客入力の取得 ブロックのドキュメントには上記文字制限についての言及がありました。

今回制限にかかったのは 顧客入力の保存 ブロックだったのですが、こちらには執筆時点で文字制限の記載がないようです。
内部仕様を正しく把握した上で制限の有無をきちんと確認する必要がありますね。

最近の Connect 関連ブログ

結構 Connect の情報発信も増えてきたので、最近の記事を軽くシェアさせていただきます。興味がある記事があればぜひご覧ください。