#はじめに
Amazon Connectで通話した音声を保存したいということで、Amazon Connectを介してユーザーとエージェントとの間の音声を取得する方法について確認してみました。
#音声取得方法
現状では次の二つの方法で音声を取得することが可能でした。
1.通話録音機能
2.Kinesis Video Stream
##1.通話録音機能
コンタクトフローに[通話記録動作の設定]ブロックを設定することで通話を録音することができます。
オプションとしては次の4つを指定することが可能です。
顧客とエージェントの通話が終了した後に、wav形式の音声データがS3に保存されます。
構成は次のような感じ。
数分程度の短い通話であればほぼ即時で作成されました。通話時間に比例して作成時間も長くなるようです。
通話記録機能のオプションで「エージェント AND 顧客」を選択した場合は1つのファイルとして保存されました。
採取した音声データを視聴したところ、ステレオ音声として保存されており、左チャネルに顧客側の音声が、右チャネルにエージェントの音声が保存されましたのでAWSドキュメントの通りでした。
片方が会話している際は基本的には(せっかちな方でなければ)もう片方の音声は保存されませんので音声のデータとしては長時間になると思われます。また、分析などを行う際はチャネルがどちらの会話を扱っているのか、会話の流れを正しく把握する部分に注意したほうがよさそうです。
##2.Kinesis Video Stream
Amazon Kinesis Video Streams を使用すると、分析、機械学習 (ML)、再生、およびその他の処理のために、接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。
Amazon Connectでは、コンタクトフローに[メディアストリーミングの開始]ブロックを設定することで通話をリアルタイムでストリーミングできます。
ユーザーとオペレータ―間の通話ごとにストリームが作成されました。
AWSマネジメントコンソールでは視聴することができませんでした。AWSドキュメントに従い、コンシューマで音声データを取得します。
構成は次のような感じ。
コンシューマで取得した音声ファイルはRAW形式のファイルとなり、最小単位は1024バイトでした。ストリームされる音声データは、Single 16bit PCM 8000HzのRAWデータで、バイトオーダーはリトルエンディアンでした。
動作確認では通話開始からおおよそ20sec後にストリームが流れ始めたためリアルタイムに状況を分析してフィードバックするような処理には向いていないと考えられ、扱い方は検討が必要そうです。
#まとめ
Amazon Connectにおけるユーザーとオペレータ―との間の音声の取得方法の確認結果は次の通りです。
通話録音機能
- 通話が完了した後にwavファイルが保存される
- 通話の時間に比例してwavファイルが保存される時間が長くなる(実測60secの通話でファイル作成まで10sec)
- 顧客とオペレータ両方の通話を保存する場合
- wavファイルは1つ作成される
- ステレオ音声の左チャネルに顧客側の音声が保存され、右チャネルにエージェントの音声が保存される
Kinesis Video Stream
- 音声データはコンシューマ(SDK開発が必要)を介してRAWファイルとして採取可能
- 通話が開始してからおおよそ20sec後に音声データが取得できる
- 取得できる音声データ
- Single 16bit PCM 8000HzのRAWデータ
- バイトオーダーはリトルエンディアン
- 最小単位は1024バイト