Amazon Connect AIエージェントが受け取る文字起こし結果が、コンタクト詳細ページと異なる理由(Contact LensとLexの違い)
困っていること
Amazon ConnectのAIエージェントを利用した音声ボットを構築しています。
テストや運用の中で、顧客が特定の専門用語や固有名詞(例:「デプロイ」や「クラスメソッド」など)を発話した際、コンタクト詳細ページの「録音とトランスクリプト」では正しく文字起こしされているにもかかわらず、AIエージェントが「回答がありませんでした」と返してしまう事象が発生しました。
コンタクト詳細ページ上では正しく認識されているのに、なぜAIエージェントは回答できないのでしょうか?
回答
結論として、コンタクト詳細ページとAIエージェントでは、使用している音声認識エンジンが異なるためです。
それぞれ以下の仕組みで文字起こしが行われています。
- コンタクト詳細ページ: Contact Lens による文字起こしが行われている
- AIエージェント: 内部で利用している Amazon Lex を経由して文字起こしが行われている
つまり、コンタクト詳細ページではContact Lensのエンジンによって専門用語が正しく認識(補正)されていても、リアルタイム処理を行うLex側では別の言葉として誤認識されてしまうケースがあります。
その結果、Lexが誤認識したテキストがそのままAI(LLM)に渡されてしまい、正しいナレッジ検索ができずに「回答がありませんでした」となっていました。
公式ドキュメント
以下の公式ドキュメントにも記載されている通り、コンタクト詳細ページのトランスクリプトはContact Lensの会話分析機能によって生成されています。
Contact Lens の会話分析機能は、顧客との会話の文字起こし、感情分析、および会話の特性(通話の無音時間や被りなど)を提供します。
Amazon Connect Contact Lens を使用した会話の分析 - Amazon Connect
一方で、AIエージェントの裏側で稼働しているAmazon Lexは、独自の音声認識モデル(標準モデルやニューラルモデルなど)を使用してユーザーの発話をテキスト化しています。Lexの音声認識モデルの仕様やカスタマイズについては、以下のドキュメントをご参照ください。
注意点(ログの確認方法)
現在、コンタクト詳細ページやConnectの管理画面上から「AIエージェントが実際に受け取ったテキスト(Lexの文字起こし結果)」を直接確認する機能は提供されていません。
そのため、AIがなぜ回答できなかったのかを調査する際は、コンタクト詳細ページのトランスクリプトだけを鵜呑みにせず、CloudWatch Logsに出力されるAIエージェントのログ(utterance フィールド)を確認し、AIにどのようなテキストが渡っていたかを突き合わせる必要があります。
ログの設定方法は、以下をご確認ください。
例えば、顧客が「クラスメソッド」と発話したケースを想定します(あくまでも説明のための架空の例です)。
コンタクト詳細ページ(Contact Lens)のトランスクリプトでは正しく「クラスメソッド」と文字起こしされていても、AIエージェントのログを確認すると、以下のようにLex側では「暗めそう」と誤認識されます。
【AIエージェントのログ出力例(CloudWatch Logs)】
{
"assistant_id": "af781af2-81bb-4f84-9667-9b63ee75ae7b",
"event_timestamp": 1773044926559,
"event_type": "TRANSCRIPT_UTTERANCE",
"session_id": "abb7e07e-d5dc-42a4-8f02-4e6e282d902a",
"utterance": "[CUSTOMER] 暗めそう",
"session_event_id": "a19cd1b6-8857-7267-9b22-8c709d470bab"
}
このように、utterance フィールドに記録されているテキストが、実際にAI(LLM)に渡されて処理される内容となります。調査の際はこのフィールドを確認してください。
画面上の表示とAIの認識にズレが生じるという点は、トラブルシューティング時に非常に混乱しやすいポイントですので、ご注意ください。
なお、このLexの誤認識に対する具体的な解決策(AIプロンプトでの補正や、Lexカスタム語彙の活用)については、以下の別記事で解説していますので、ご参考ください。






