Amazon Connect の通話記録を良い感じに 文字起こしする

昨日 JAWS-UG Osaka の勉強会で Amazon Connect の通話音声を良い感じに Transcribe する という内容で LT をさせていただきました。先般からの新型コロナウイルスの影響もあり、ゆっくりお話しすることは出来なかったのですが、資料はこちらにアップしてあります。ここでは当日触れられなかった点を中心に全体的に補足させていただきます。

Amazon Connect と 通話内容の文字起こし

Amazon Connect は クラウドベースでコンタクトセンターを構築できるサービスで、AWSの歴史の中で最も急速に成長しているサービスの一つだそうです。
AWS re:Invent 2019 — Andy Jassy による基調講演より)

コンタクトセンターだけでなく、会社の代表電話を Amazon Connect に置き換えた事例 もあります。
Amazon Connect を使えば、電話で行われているやり取りを可視化することができます。
さらに AWSが提供している他のサービスや kintone, Salesforce 等と連携させることにより、 CRM をこれまでになかった新たな次元へ進めることができます。

Amazon Connect の通話記録を Amazon Transcribe を使用して文字起こしする構成図Amazon Connect の通話記録を Amazon Transcribe を使用して文字起こしする構成図
Amazon Connect の通話記録を Amazon Transcribe を使用して文字起こししてみた構成図

kintone内に埋め込んだ Amazon Connect のソフトフォン(問い合わせコントロールパネル、CCPと呼びます)から電話をかけると「コンタクトID」が発行されます。
通話の内容を終話後に S3 に保存するように Amazon Connect で設定すると /年/月/日/[コンタクトID]_[時刻].wav というパスで保存されるため、コンタクトIDで紐付けることができます。

Amazon Connect が録音ファイルを S3に出力し終えたということを通知してくれるインターフェースが現状はないようなので、S3イベントでファイルの作成を検出して Lambda を起動するようにしています。Amazon Connect が Amazon EventBridge をサポートしてくれたら EventBridge を介して後続処理を行うようにできるかもしれません。

一方で Amazon Transcribe は Amazon EventBridge をサポートしているので、文字起こしが完了したというイベントを EventBridge で受け取ることができます。文字起こしには概ね対象の音声(通話時間)と同程度の時間を要しますので、文字起こしが行われている間に他の作業を行えるようにし、完了したら通知して文字起こし結果を表示するようにしています。

Contact Lens for Amazon Connect (Preview)

Contact Lens for Amazon Connect (Preview) https://www.youtube.com/watch?v=uC2jIRm0eAM&t=7555sContact Lens for Amazon Connect (Preview) https://www.youtube.com/watch?v=uC2jIRm0eAM&t=7555s
Contact Lens for Amazon Connect (Preview) https://www.youtube.com/watch?v=uC2jIRm0eAM&t=7555s

昨年の re:Invent 基調講演で Andy Jassy が Contact Lens for Amazon Connect (Preview) という新しい機能を発表しました。
これまでに AWSが提供してきた AIサービスのいくつか(ビルディングブロック)を高いレベルで統合し、簡単に使用できるようにしています。

問い合わせの自動分類やテーマ検出、可視化といった高度な機能がアナウンスされていますが、日本語で使用できるようになるにはもう少し時間がかかると思われます。

Contact Lens for Amazon Connect (Preview) | Amazon Web Services

しかし、現時点でも AWSが提供しているサービスを自分で組み合わせれば Contact Lens for Amazon Connect (Preview) 相当の体験を実現することはできるのです。

文字起こし用の 辞書(カスタム語彙 (vocabulary) )を kintone で編集できるようにする

カスタム語彙 (vocabulary) を kintone上で編集し、アップロードできるようにするカスタム語彙 (vocabulary) を kintone上で編集し、アップロードできるようにする
カスタム語彙 (vocabulary) を kintone上で編集し更新できるようにする

Amazon Transcribeカスタム語彙 (vocabulary) をメンテナンスするには 定められたフォーマットでテキストファイルを作成して登録する必要がありますが、エンジニアでもない方に AWSのマネージメントコンソール画面を使って操作していただく というのは非常に無理があります。

かと言って、カスタム語彙 (vocabulary) をメンテナンスするためだけに専用の Webシステムを作るというのも Undifferentiated Heavy Lifting (付加価値を生まず、他との差別化につながらない重労働)であり、昨今許容できるものではありません。こういった機能は普段お使いになっているシステムへ “簡単に” 統合できる必要があります。

gusuku Customine はプログラミングの必要なく kintone をカスタマイズして様々な価値ある機能を組み込むことができます。

※ これについては後日続編を書きました

kintone に AWS Lambda関数を実行するボタンを付けるkintone に AWS Lambda関数を実行するボタンを付ける
AWS の Lambda関数を実行するボタンを kintone に付ける

例えば「文字起こしをやり直す」ボタンを付ける場合、コンタクトIDを指定して Lambda 関数を呼び出す機能が必要です。
Amazon Connect が保存した音声を kintone上で聞きたい場合、Lambda 関数で S3の署名付きURLを生成・返却し、受け取った URLのファイルを再生する機能を実装する必要があります。

gusuku Customine を使用すれば、あらかじめ用意されたパーツ(条件・やること)を組み合わせていくだけで やりたいことを実現できます。現状は呼び出し先の Lambda関数は自分で用意してやる必要がありますが、Serverless Application Repository を活用するといった方法で自らプログラムを書かなくても対応できるようになります。

kintone を ノーコードでカスタマイズ

gusuku Customine の Amazon Connect サポート

gusuku Customine は Amazon Connect を積極的にサポートしています。

以下の条件・やることを組み合わせれば kintone と Amazon Connect を統合することができます。

Amazon Connect と gusuku Customine の連携

Amazon Transcribe は汎用的な文字起こしサービスですが、活かせるシチュエーション、使い方を見極める必要があります。工夫できる点は工夫し賢く使っていければと思います。

投稿者プロフィール

アバター画像
うっちー
kintone認定カイゼンマネジメントエキスパート(KME), アプリデザイン/カスタマイズ スペシャリスト