Amazon Connect AIエージェントのセルフサービスタイプが回答中に、咳や物音により読み上げが中断されユーザー発話待ちになる現象と対策
はじめに
Amazon Connect AIエージェントのセルフサービスタイプ(レガシーセルフサービス)のAIエージェントが回答を読み上げている最中に、鼻をすする音や咳などの非発話音が入ると、読み上げが中断されユーザーからの発話があるまで無音が長時間続く挙動を確認しました。
また、QUESTIONツールで自動回答する際、一時回答後に本回答が生成されるまでの無音時間中に同様の現象が発生することも確認しています。
本記事では、この現象の原因とログ、および対策を紹介します。
原因
バージインの発生
バージインとは、AIエージェントが音声を再生している最中にユーザーの音声入力を検知し、再生を中断して割り込み処理を行う動作のことです。
AIエージェントが読み上げを行っている最中に、鼻をすする音などの非発話音が入ると、Amazon Lexの音声アクティビティ検出(VAD: Voice Activity Detection)レベルでユーザーの発話開始として検知されます。
実際のLexログには、このとき以下のように記録されていました。
"bargeIn": "true",
"inputTranscript": "",
"missedUtterance": true
各フィールドの意味は以下のとおりです。
bargeIn: true:読み上げ中に音声入力を検知し、割り込みが発生したことを示すinputTranscript: "":文字起こし結果が空であり、発話内容として認識されていないことを示すmissedUtterance: true:有効な発話として処理されなかったことを示す
文字起こしされていないにもかかわらず読み上げが中断されるのは、Lexが音声再生完了(PlaybackCompletionイベント)前に音声入力を検出した時点で、割り込み(バージイン)として処理するためです。ドキュメントでは、この動作について以下のように説明されています。
ボットは、アプリケーションが PlaybackCompletion イベントを送信する前にユーザー入力を検出すると、ユーザーがプロンプトを中断したことを知ることができます。ユーザーがボットを中断すると、ボットは PlaybackInterruptionEvent を送信します。
https://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/interrupt-bot.html
バージインが発生した場合、以下の動作が実施されます。
- 現在再生中の音声が停止される
- 再生待ちの応答(生成済みだがまだ再生されていないもの)が破棄される
- ボットが次のユーザー発話を待機する状態に遷移する
したがって、鼻をすする音のような非発話音声であっても、VADレベルで発話として検知されると上記の動作が発生し、ユーザー発話を待機する状態となります。
セルフサービスタイプでの長時間無音
さらに、セルフサービスタイプでは x-amz-lex:audio:start-timeout-ms が反映されないという制約があります。このセッション属性は「顧客は話さないと見なすまでの待ち時間」を制御するものですが、セルフサービスタイプでは設定が反映されず、数十分、ユーザーからの入力を待ち続ける動作になります。これが、非発話音で中断された後に長時間の無音が発生する原因です。
なお、オーケストレーションタイプでは x-amz-lex:audio:start-timeout-ms が正常に反映され、設定した秒数の無音が続いた場合にAIエージェントから再度問いかけが行われます。
対策
1. 割り込みによる中断を無効にする方法
AIの読み上げ中に咳払い・物音・鼻をすする音などが入っても、中断されないようにする方法です。
ただし、QUESTIONツールで自動回答する際、一時回答後に本回答が生成されるまでの無音時間は音声再生中ではないため、この設定の適用外です。その無音時間中の割り込みは防止できません。
2. オーケストレーションタイプのAIエージェントを利用する方法
オーケストレーションタイプでは x-amz-lex:audio:start-timeout-ms が有効に機能し、一定時間無音であればAIエージェントから再度問いかける動作が可能です。
ただし、現在利用中のセルフサービスタイプとは構成が異なるため、単純な設定変更のみでは対応できず、プロンプトの見直しを含めた対応が必要になります。
3. Lexのノイズ耐性設定を調整する方法
背景雑音に対する耐性を上げることで、物音などの影響を抑えられる可能性があります。
ただし、感度を上げすぎると声が小さい場合に一部の発話を聞き取れなくなる可能性があります。
4. 一時回答を長めにする方法
QUESTIONツール使用時、検索・回答生成のあいだに挟む一時回答をやや長めにする方法も考えられます。
この対策は、対策1の割り込みによる中断の無効化と組み合わせることを前提としています。
割り込み防止を設定済みの場合、一時回答中に咳払い・物音・短い発話があっても中断されません。そのため、回答生成完了までの待機時間を一時回答でより多く埋めることができ、結果としてその後の無音時間を短くできます。
無音時間が短くなれば、咳払い等が無音中に検知されて意図しない割り込みとして扱われる余地も減るため、応答が止まりにくくなることが期待されます。
5. 運用面での周知
質問後や回答待ちの無音時間中は、不要な発話や物音をできるだけ避けていただくよう、利用者向けに周知することも有効です。
必要に応じて、Connectの案内文に「回答中・待機中は発話せずそのままお待ちください」といった注意喚起を加えることも検討できます。
まとめ
Amazon Connect AIエージェントのセルフサービスタイプで、鼻をすする音や咳などの非発話音が読み上げ中断を引き起こす原因は以下のとおりです。
- LexのVADが非発話音を発話として検知し、バージイン(
bargeIn=true)として処理する - セルフサービスタイプ(レガシーセルフサービス)では
x-amz-lex:audio:start-timeout-msが反映されず、中断後に長時間ユーザーの発話を待ち続ける
根本的な対策としては、割り込みによる中断を無効にするか、オーケストレーションタイプへの移行が有効です。オーケストレーションタイプへの移行が難しい場合は、Lexのノイズ耐性調整や一時回答の長さ調整など、複数の対策を組み合わせて対応することをご検討ください。




