拡張ストリーミング

拡張ストリーミング機能を使用すると、音声コンテンツを 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 ステージでのみサポートされています。会話 ステージをご覧ください。この機能を使用するには:

  1. streamingAnalyzeContent メソッドを呼び出し、次のフィールドを設定します。
    • StreamingAnalyzeContentRequest.audio_config.audio_encoding: AUDIO_ENCODING_LINEAR_16 または AUDIO_ENCODING_MULAW
    • enable_extended_streaming: true
  2. 最初の streamingAnalyzeContent リクエストは、ストリームを準備し、音声構成を設定します。
  3. 後続のリクエストでは、音声バイトをストリームに送信します。
  4. 音声を送信し続ける限り、提案を受け取ることができます。ストリームを手動で閉じる必要はありません。Agent Assist が発話の停止を検出すると、自動的に閉じられます。
  5. 次のような場合は、ストリームを再起動します(最初の音声構成の再送信を含む)。
    • ストリームが破損している(ストリームが停止するはずのないときに停止した)。
    • 音声データが 3 分の自動タイムアウトに近づいている。
    • 再試行可能なエラーを受け取った。最大 3 回まで再試行できます。