Amazon Q in Connect セルフサービスでは、電話での音声スピードを調整できますか
はじめに
Amazon Q in Connect セルフサービスを電話で利用する際、AIの返答の音声スピードが速いと感じることがあります。
そのため、音声をもう少しゆっくりとしたペースにしたいと考えています。
Amazon ConnectやAmazon Lexで一般的に利用できる音声合成マークアップ言語(SSML)などを使用して、Amazon Q in Connect セルフサービスの音声スピードを調整することは可能でしょうか?
回答
Amazon Q in Connect セルフサービスの場合、SSMLも含め音声のスピードを変更させる方法はありません。
通常のAmazon Lexボットでは、プロンプトの詳細設定から、以下のようにSSMLを使用して音声スピードをゆっくりさせることが可能です。
<speak>
<prosody rate="slow">
ご要件、お名前、住所の3点をお伝え下さい。
</prosody>
無音の状態が一定時間ある場合、録音が切れますので、ご了承ください。
</speak>
しかし、調査したところ、AWS公式ドキュメントには明示的な記載はありませんが、Amazon Q in ConnectのセルフサービスのLexボット(スロットタイプ:AMAZON.QInConnectIntent)では、このようなSSMLの設定ができませんでした。
別案
別案として、Q in ConnectのセルフサービスのLexボット(スロットタイプ:AMAZON.QInConnectIntent)は利用せず、別のインテントを利用したLexボットを作成することでSSMLを利用した音声スピード調整が可能です。
具体的には、以下のような構成が考えられます。
- Lexボット(スロットタイプ:AMAZON.FreeFormInput)で顧客の質問を受け取る
- AWS LambdaとAmazon Bedrockなどの生成AIで回答を生成
- Amazon Connectのフローで回答をSSMLタグを利用して音声再生
以下のブログは、Lexボット、Lambda、生成AIを組み合わせた構成の参考になります(ただし、SSMLによる音声スピード調整については言及していません)
実装例
実装例としては、以下のようなフローが考えられます。
- [顧客の入力を取得する]ブロックでLexボットを起動し、顧客の質問をヒアリング
- LambdaとBedrockを利用して回答を生成し、Lexのセッション属性(answer)に保存
- この時点では顧客に音声での回答は行わない
- 次の[コンタクト属性の設定]ブロックで、セッション属性の回答をユーザー定義属性(answer)として保存
- 次の[プロンプトの再生]ブロックで、SSMLを利用してゆっくりとした音声で回答
<speak>
<prosody rate="slow">
$.Attributes.answer
</prosody>
</speak>
Lexのセッション属性の参照方法については、以下のAWSドキュメントを参照してください。
なお、実装手順例の3を以下のテキストにすると、2については、省略できます。直接Lexのセッション属性を参照しています。
<speak>
<prosody rate="slow">
$.Lex.SessionAttributes.answer
</prosody>
</speak>