拡張ストリーミング機能を使用すると、音声コンテンツを Dialogflow にストリーミングし、人間のエージェントの提案をストリーミングで返すことができます。
通常、ストリームを半分閉じたり、ストリームを終了するタイミングを Dialogflow API に伝えたりして、最終的な文字起こしと Agent Assist の候補を生成します。これは、会話のターンで発生します。このとき、API は認識結果 StreamingAnalyzeContentResponse.recognition_result
からパラメータ is_final=true
を受け取ります。
拡張ストリーミングにより、会話のターンでハーフクローズする必要性が軽減されます。接続タイムアウトが 3 分に延長され、その間はハーフクローズせずに音声ストリームを送信できます。Dialogflow API は、最終的な文字起こしとエージェント アシストの提案をストリームに自動的に返送します。ストリームはタイムアウトした場合にのみ再起動します。
ストリーミングの基本
Agent Assist の拡張ストリーミング機能は、CCAI 文字起こしの音声ストリーミングに似ています。システムは音声データを API にストリーミングし、Dialogflow は StreamingAnalyzeContentResponse
データをストリーミングで返します。返されるデータには、人間のエージェント向けの提案が含まれます。
拡張ストリーミングを使用するには、streamingAnalyzeContent
メソッドを呼び出します。
拡張ストリーミングは、エージェント アシスト ステージのみをサポートします。会話ステージをご覧ください。この機能を使用するには:
streamingAnalyzeContent
メソッドを呼び出し、次のフィールドを設定します。StreamingAnalyzeContentRequest.audio_config.audio_encoding
:AUDIO_ENCODING_LINEAR_16
またはAUDIO_ENCODING_MULAW
enable_extended_streaming
:true
- 最初のリクエスト
streamingAnalyzeContent
は、ストリームを準備し、音声構成を設定します。 - 後続のリクエストでは、音声バイトをストリームに送信します。
- 音声を送信し続ける限り、候補が表示されます。ストリームを手動で閉じる必要はありません。発話が停止したことを Agent Assist が検出すると、自動的に閉じます。
- 次の場合は、ストリームを再開します(最初の音声構成の再送信を含む)。
- ストリームが中断された(ストリームが停止するはずのないときに停止した)。
- 音声データは 3 分で自動的にタイムアウトします。
- 再試行可能なエラーが発生しました。再試行は 3 回まで可能です。