【Amazon Connect+Salesforce】Voice IDによる音声認証フロー例

記事タイトルとURLをコピーする

Amazon Connect のVoice ID機能を使って音声による本人確認を試してみます。
電話サポートなどで、生年月日や登録電話番号を本人確認として聞かれることがあると思いますが、この部分を音声(声紋)で実施する、ということになります。

概要

まず、顧客(利用者)同意の上で、音声情報(声紋)を登録します。
顧客IDと音声情報の組み合わせがシステム(Voice ID)へ登録されます。

登録後は、Voice IDが音声を識別し、本人であることを判定します。
顧客IDと識別された音声情報が一致していれば本人認証OK、ということになります。

この2つを設定し、動作を確認してみます。

構成

Voice IDは顧客IDと音声情報のセットで管理します。
顧客IDは顧客管理システム(CRM)のキー情報を利用するケースが一般的かと思います。

今回はCRMとして、セールスフォース、セールスフォースとAmazon Connectの連携部分に Amazon Connect CTI Adapter for Salesforce を用いた構成で動作を確認します。

今回は、セールスフォースはDeveloperEdition、CTIアダプターは v5.18(Lightning) を利用しています。

設定手順

CTI Adapter for Salesforceを設定する

下記リンクより手順を参照して設定します。

amazon-connect.github.io

Amazon Connect、AWS、Salesforceと連携する設定となるため、すこし難易度が高いかもしれません。
注意点について記載した下記記事もご参照ください。
(CTIアダプター自体のアップデートも多いため、最新情報にご注意ください)

blog.serverworks.co.jp

セールスフォース:取引先責任者へカスタム項目を追加

セールスフォースの標準オブジェクトである 取引先責任者(Contact)を顧客マスタとして使用します。
顧客自身も認識できる会員番号を使う想定とし、カスタム項目「会員番号(CustomerId)」を作成します。
この会員番号の値をVoiceIDにおける 顧客IDとします。

f:id:swx-shinsaka:20220302120955p:plain

顧客レコードの登録

動作確認のための取引先責任者を登録します。
会員番号を 10234 、お名前を 鈴木太郎さんとしました。

f:id:swx-shinsaka:20220302122316p:plain

Voice IDを有効化する

下記ドキュメントに従ってVoiceIDを有効化します。
AWSマネジメントコンソールから、Amazon Connect のページへアクセスすることになります。

docs.aws.amazon.com

問い合わせフロー

Amazon Connectの管理画面より、着信時の問い合わせフローを作成します。
VoiceID機能を使うための仕組みをブロックで定義します。
ポイントとなるブロックについてコメントします。

f:id:swx-shinsaka:20220301190643p:plain

  • No.5 AWS Lambda関数を呼び出す
    • CTIアダプター Lambda Packageに含まれる sfInvokeAPI 関数を使用します
    • 顧客の電話番号でセールスフォースを検索し、該当の取引先責任者情報を取得します
    • 具体的には、上記で設定した 会員番号(CustomerId)を取得します
  • No.6 コンタクト属性の設定
    • No.5で取得した会員番号を Amazon Connectのシステム属性 顧客ID へセットします
  • No.7 音声IDの設定
    • VoiceID機能の設定を行います
  • No.8 音声IDを確認
    • [登録ステータス]機能を指示し、VoiceID機能へ会員番号が登録されているか否か確認します
    • 未登録の場合は No.13へ遷移し、オペレーター通話フローへ誘導します
    • 登録されている場合は No.9へ遷移します
  • No.9 顧客の入力を保存する
    • 通常はDTMF入力のためのブロックですが、ここでは音声識別のために顧客に発話してもらうステップとなります
    • 今回は 「音声認証します。お客様のご住所をお願いします」 とプロンプトし、10秒タイムアウト設定としました。
    • 顧客に一定以上発話してもらうことが目的なので内容はなんでも良いと思いますが、迷わず、スムーズに読み上げられると思われる住所を要求してみました
  • No.10 音声IDを確認
    • [音声認証]機能を指示します
    • No.9で顧客が発話した音声によってVoicdIDが認証判定した結果で分岐します
  • No.11、No.12 プロンプトの再生
    • 音声認証結果を顧客へお知らせしています
  • No.13 ~ No.15
    • 最終的にはオペレーターと通話するフローです
    • 今回は、音声認証結果にかかわらずオペレーターと会話するフローとしました

動作確認

音声情報登録フロー

まずはVoiceIDへ登録されていない状態で架電します。
問い合わせフローの No.8 で[未登録] へ分岐し、オペレーターへ着信します。
オペレーターは音声認証目的で音声情報を登録することについて承諾を得た上で、CCPの [Voice ID: 登録する] をクリックし、顧客と会話します。
登録が完了すると、[Voice ID: 登録済み] 表示となります。

f:id:swx-shinsaka:20220301182412p:plain

登録のためには30秒の発話が必要になります。実際には、顧客だけが絶え間なく発話している、というわけにもいかないと思いますので、少なくとも1分ぐらいの会話は必要かな、という印象です。

Voice ID を使用したリアルタイムの発信者認証の使用 - Amazon Connect

登録結果の確認

CTIアダプターを指示通りセットアップしてある場合、VoiceIDの登録・認証結果をセールスフォース画面上で確認することができます。

f:id:swx-shinsaka:20220302130638p:plain

カスタムオブジェクト [AC_VoiceIdChannel] へ情報が格納され、取引先責任者と関連付けられていますので、レコードページで詳細を確認することもできます。
[Speaker Id] 部分に 10234 と表示されており、設定した通りの顧客について認証成功していることがわかります。

f:id:swx-shinsaka:20220302130929p:plain

VoiceID API (CLI) でも登録を確認できました。
[CustomerSpeakerId] が 10234 になっていますね。

f:id:swx-shinsaka:20220302131605p:plain

音声認証フロー

次に、VoiceIDへ音声情報が登録された状態で架電してみます。
問い合わせフローの No.9 で発話を促され、認証判定によって分岐、最終的にオペレーターへ着信します。

問い合わせフロー内で認証された場合は [Voice ID: 認証済み] 表示となります。オペレーターは本人確認済みである前提で対応することになります。スムーズですね。

問い合わせフロー内で認証できなかった場合は [音声が不十分です。発信者に話し続けてもらうように依頼してください。] 表示となります。
このメッセージを閉じて会話を続けることで、再度音声認証を試みることができます。
会話・音声認証再試行し、認証されれば[認証済み]表示となります。

f:id:swx-shinsaka:20220302133817p:plain

また、セールスフォース画面上で認証結果の履歴が確認できます。

f:id:swx-shinsaka:20220302134525p:plain

まとめ

電話での本人確認は、本人しか知りえない情報を口頭で確認することになります。
確認する情報の条件としては、本人しか知らない情報、かつ、忘れずにパっと言える情報がベターですが、なかなか難しいですよね。
Amazon ConnectならVoice IDを利用することで簡単に声紋認証が可能です。
もちろん、登録や認証時の発声など、少しハードルはありますが、従来の方法と併用する等、選択肢のひとつとしてご検討してみてはいかがでしょうか。

以上、ご参考になれば幸いです。