はじめに
Amazon Connectで音声プロンプトを再生する際、「話すスピード」「ポーズの長さ」「声の高さ」などの声色を、顧客層に応じて柔軟に調整したいケースがあります。
このような調整は、プロンプトの再生ブロック中にSSMLにて声色の設定タグを記入することで実現できます。
ただし、各プロンプトの再生ブロックに声色の設定タグを直接記述すると、元々の目的の「客層に応じて柔軟に調整する」できないため、再現性が低くなりメンテナンスも煩雑になってしまいます。
そこで本記事では、SSMLタグ中の声色の設定タグの値をコンタクト属性を用いて柔軟に管理する方法を紹介します。
ねらい
コンタクト属性を用いることで、以下のメリットが得られます
- 再利用しやすい
複数のプロンプトブロックで同じコンタクト属性を参照できるため、調整箇所を1か所に集約できます - メンテナンス性の向上
声色の変更が必要な場合も、コンタクト属性を変更するだけで済み、フロー本体を修正する必要がありません
手順・方法
コンタクトフローの作成
Amazon ConnectでサポートされているSSMLタグについては公式ドキュメントを参照してください。
今回は例として音量、話す速度、ピッチを制御するprosody
タグを使用します。
※本記事では、ニューラル音声に対応している「Kazuha」ボイスを使用しています。
SSMLタグのパラメーターをコンタクト属性で管理・制御するために、以下のような構成のコンタクトフローを作成します。
コンタクト属性の設定
- ブロックライブラリの「設定」セクションから「コンタクト属性の設定」ブロックを選択します
- 属性の設定は「最新のコンタクト」で設定します
- 名前空間を「ユーザー定義済み」、以下のキーと値を手動で設定します
- 宛先キー:
talkSpeed
- 値:
200%
- 宛先キー:
プロンプトの設定
- ブロックライブラリの「インタラクション」セクションから「プロンプトの再生」ブロックを選択します
- 「テキスト読み上げまたはチャットテキスト」の「手動で設定」を選択します
- 「次として解釈」セクションでは
SSML
を選択します - 今回は以下のようなSSML構文を使用します
<speak>
<prosody rate="$.Attributes.talkSpeed">
SSMLの動作テストです。
</prosody>
</speak>
以上でコンタクトフローの設定は完了です。
動作確認
以下の手順で、SSMLタグ内のパラメーターをコンタクト属性で動的に制御する動作確認を行います。
- 手順・方法で作成したコンタクトフローを特定の電話番号に紐付け
- 対象番号に実際に発信し、音声出力を確認
- CloudWatch Logsから、
PlayPrompt
ブロックのパラメーターログを取得・確認
結果
CloudWatch Logsから、PlayPrompt
ブロックのParameters
要素を確認すると、prosody
タグ内のrate
属性に、コンタクト属性$.Attributes.talkSpeed
の値である200%
が反映されていました。音声も実際に、通常の2倍のスピードで再生されていることが確認できました。
(付録) コンタクト属性で管理できる他のSSMLタグ
-
break
タグ -
他にもサポートされているSSMLタグはありますが、日本語では使用不可能なものや文法的に使用する意味がないものが現時点では多い印象です
まとめ
Amazon Connectのプロンプトの再生ブロック中の声色を設定しているタグパラメーターをコンタクト属性で一元管理できることが確認できました。
この方法により、プロンプトの再利用性が向上し、運用時の変更対応も容易になります。特に prosody
やbreak
タグのように調整頻度が高いタグのパラメータ値は属性化と相性が良いため、Amazon Connectの音声体験を向上させたい場合はぜひ導入を検討してみてください。