[アップデート] Amazon Transcribeの「Call Analytics」機能がリアルタイムの通話分析に対応しました #reinvent

医療分野に特化した「Amazon Transcribe Medical」に続いて、コールセンター業界に対応した新機能の登場です。
2022.12.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

みなさん、こんにちは!
福岡オフィスの青柳です。

音声からテキストへの変換、いわゆる「文字起こし」サービスであるAmazon Transcribeに、コールセンターでの通話内容の分析に特化した「Call Analytics」という機能があります。

この「Call Analytics」機能、これまでは「通話終了後のバッチ処理で通話分析」のみに対応していたのですが、今回新たに「リアルタイムの通話分析」にも対応しました。

Amazon Transcribeの「Call Analytics」機能とは

「Call Analytics」は、Amazon Transcribeの基本的な機能である「文字起こし」に加えて、コールセンターでの通話内容の分析に役立つ以下のような機能を備えています。

  • 顧客とオペレーターの音声が左右のチャンネルに録音されたマルチチャンネル音声データを処理できる
  • 通話内容を分析して、オペレーター対応の品質を測定する
    • 一方の発言を他方が割り込んで話を始めたか
    • 声が大き過ぎたり小さ過ぎたりしないか
    • 話す速度が速すぎなかったか
    • 長い無音時間が無かったか (顧客を待たせていなかったか)
    • オペレーター・顧客の通話時間のバランスは妥当か (一方的に話し続けていないか)
  • 予め定義されたキーワードが通話中に発生したこと (または発生しなかったこと) を検出する
  • 顧客の感情 (ポジティブ、ネガティブ、ニュートラル) を分析する
  • 通話内容の要約を行う (※日本語は未対応)
  • 通話中に発生した機密情報・個人情報を特定する (※日本語は未対応)

また、これらの機能を組み合わせて、通話内容が予め定義した条件に合致した場合にラベルを付けることもできます。
例えば、以下のような条件を設定することができます。

  • 通話中に顧客の発言をオペレーターが遮って話を始めた場合
  • 通話中にオペレーターが「ありがとうございました」と1度も言わなかった場合
  • 通話中に顧客の感情がだんだんと悪くなっていった場合
  • 通話中に5分以上の無音時間があった場合

このような通話を、後から見つけて分析することができます。

(感情分析や機密情報・個人情報特定など、Amazon Comprehendサービスが提供する機能の一部を取り込んでいる感じがしますね)

「リアルタイムの通話分析」で出来ること

今回新たに対応した「リアルタイムの通話分析」では、概ね「通話終了後のバッチ処理での通話分析」と同様の分析が行えますが、「通話内容を分析して、オペレーター対応の品質を測定する」には未対応です。

つまり、以下のようなことが行えます。

  • 顧客とオペレーターの音声が左右のチャンネルに録音されたマルチチャンネル音声データを処理できる
  • 予め定義されたキーワードが通話中に発生したこと (または発生しなかったこと) を検出する
  • 顧客の感情 (ポジティブ、ネガティブ、ニュートラル) を分析する
  • 通話内容の要約を行う (※日本語は未対応)
  • 通話中に発生した機密情報・個人情報を特定する (※日本語は未対応)

また、「ラベル付け」の条件としては「キーワードの検出」のみに対応しています。

例えば、通話中に顧客またはオペレーターが「上司」「責任者」と発言した場合にラベルを付けることで、スーパーバイザーなどの上位者が問題に気付くことができます。

「リアルタイムの通話分析」を行う方法

Amazon Transcribeでリアルタイムの文字起こし処理を行うには、音声ストリーミングをプログラムで処理する必要があります。

Call Analyticsの場合は「StartCallAnalyticsStreamTranscription」APIを使用して処理を行います。

StartCallAnalyticsStreamTranscription - Transcribe

音声ストリーミングを処理する方法としては、HTTP/2またはWebSocketを使用する方法が案内されています。

Starting a real-time Call Analytics transcription - Amazon Transcribe
Setting up an HTTP/2 stream - Amazon Transcribe
Setting up a WebSocket stream - Amazon Transcribe

なお、いくつかのプログラミング言語については、AWS SDKも対応しているようです。
例えば、C++、Go、Javaなどは対応しているようですが、JavaScriptやPythonには未対応のようでした。

(残念ながら、音声ストリーミング処理に関する技術的な知見を持ち合わせていないため、ドキュメントへのリンクの案内に留めさせて頂きます)

「リアルタイムの通話分析」のデモ

「リアルタイムの通話分析」を実際に利用するには前述の通りプログラミング開発の知識が無ければ難しいのですが、AWSマネジメントコンソールからシンプルな「デモ」を体験することができます。

ノーマルなTranscribeの「リアルタイム文字起こし」機能では、マネジメントコンソールからマイクに話し掛けた内容をリアルタイムで文字起こしすることが可能です。
一方、Call Analyticsではユーザーの用意したデータを使って機能を試すことは対応しておらず、AWSが用意した「サンプルの通話音声データ」(英語のみ) を使ってリアルタイム通話分析を行う様子を確認することができます。

デモを体験する手順ですが、マネジメントコンソールから「Amazon Transcribe」へアクセスして、以下のように操作します。

  • (1) 左側のメニューから「Amazon Transcribe Call Analytics」の「Real-time Analytics」を選択する
  • (2) 「Step 1: Specify input audio」からサンプルの通話音声データ (2種類のうちのどれか) を選択する
  • (3) 「Start streaming」をクリックする

サンプルの通話音声データは「Insurance complaints」(保険業の問い合わせ窓口の会話) と「Hospitality complaints」(宿泊業の問い合わせ窓口の会話) が用意されています。

なお、「Step 2: Revire call categories」「Step 3: Configure output」の設定も可能ですが、とりあえず設定しなくてもデモを体験することができます。

「Start streaming」をクリックすると、「Transcription output」に文字起こしの結果がリアルタイムに表示されます。

デモの一連の動作を動画キャプチャーしてみました。

右側がオペレーター、左側が顧客の発言となっています。

どうやら、顧客が「おたくのホテルに宿泊したのにポイント付いてないじゃないか」と苦情を言ってきているようです。

顧客の感情が「ネガティブ」であることを示すアイコンが表示され、「Issue (問題)」と識別されたワードに下線が引かれています。

最後まで通話内容を見ていくと、オペレーターが具体的な提案ができないまま、顧客は電話を切ってしまいました。
(ということで、これは良くない対応の例ということですね、きっと)

ちなみに、もう一方のサンプル「Insurance complaints」の方では、顧客からの保険契約の至急の問い合わせに対して、オペレーターが「上司から折り返し連絡させる」と対応して、顧客が満足していることが分かります。

このように、Amazon Transcribeの「リアルタイムの通話分析」がどのように利用できるのかについて、良く分かるデモとなっています。

おわりに

Amazon Transcribeの「Call Analytics」機能は、コールセンターの通話分析のために用意された機能ですが、Amazon Connectに組み込まれたものではなくAmazon Transcribeサービスの一機能として外部から利用できるものとなっています。

しがたって、クラウドあるいはオンプレミスのコールセンターシステムと組み合わせることで、AWSのAI/MLサービスを利用した通話分析を行うことができます。

もちろん、Amazon ConnectとAmazon Transcribe Call Analyticsを組み合わせることも可能です。
ただ、Amazon Connectにはサービスに統合された「Contact Lens for Amazon Connect」機能があり、こちらを使うとプログラム開発を行わずに様々な分析を行うことができます。

もしかすると、Contact Lens for Amazon Connectでは実現できない細かな機能のカスタマイズは、Amazon Transcribe Call Analyticsの利用とプログラム開発によって実現できる場合があるかもしれません。
いろいろと可能性を感じる今回の新機能に期待したいところです。