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