[Amazon Connect]ランダムでプロンプトを再生

2019.01.21

こんにちは、中村です。
Amazon Connectには、「プロンプトの再生」という機能があります。これは、登録しているプロンプト再生・テキスト入力による音声合成などが可能です。今回は、登録しているプロンプトからランダムに「プロンプトの再生」を行う機能を実装します。

はじめに

今回の実装は、下記の順序で進めていきます。

  • 音声プロンプト登録
  • Lambda作成
  • インスタンス設定
  • 問い合わせフロー設定

ランダム再生機能

問い合わせフローの完成形は、このようになります。

音声プロンプト登録

ルーティングプロンプトから登録ができます。ファイルタイプは.wavのみです。 ファイルをアップロードするとプロンプトの一覧に表示されます。登録したプロンプトのIDをあとで利用するのでメモしておいてください。

Lambda作成

今回は他のAWSサービスを利用しないため、IAMについては最小権限で大丈夫です。またランタイムはnode.js 8.10を想定しています。 LambdaのARNをあとで利用するので、メモしておいてください。

exports.handler = async (event) => {
    let audioList = [
        'arn:aws:connect:ap-northeast-1:XXXXXXX:instance/XXXXXXXXX/prompt/xxxxxx',
        'arn:aws:connect:ap-northeast-1:XXXXXXX:instance/XXXXXXXXX/prompt/xxxxxx',
        'arn:aws:connect:ap-northeast-1:XXXXXXX:instance/XXXXXXXXX/prompt/xxxxxx',
        'arn:aws:connect:ap-northeast-1:XXXXXXX:instance/XXXXXXXXX/prompt/xxxxxx',
        'arn:aws:connect:ap-northeast-1:XXXXXXX:instance/XXXXXXXXX/prompt/xxxxxx'
    ];
    
    let random = Math.floor(Math.random() * 6);
    console.log(random);
  
    return { AudioPrompt: audioList[random]};
};

インスタンス設定

Amazon Connectインスタンスの設定で問い合わせフロー上でLambdaを呼び出せる権限を追加します。インスタンス設定から問い合わせフローAWS Lambdaにて関数を選択し、Lambda関数の追加をしましょう。

問い合わせフロー設定

AWS Lambda関数を呼び出すブロック内で、先ほど作成したLambda関数のARNを入力し保存します。

プロンプトの再生ブロック内で、プロンプトライブラリより選択します。を選び、動的に選択をするにします。タイプ外部で、属性AudioPromptにしましょう。(これによりLambdaからのreturnと紐付けます。)

保存して発行し、電話番号と問い合わせフローを紐付けます。登録から数分後、電話するとフローが適用されます。
実際にテストしてみましょう!

まとめ

いかがでしたでしょうか。
問い合わせフロー上で分散を利用したランダム再生も可能ですが、複雑になり保守が難しくなるのでこういう表現方法も可能かなと思います。

また音声を中心とした各種ソリューションの開発支援も行なっております。