拡張ストリーミング

拡張ストリーミング機能を使用すると、音声コンテンツを Dialogflow にストリーミングし、人間のエージェントの提案をストリーミングで返すことができます。

通常、ストリームを半分閉じたり、ストリームを終了するタイミングを Dialogflow API に伝えたりして、最終的な文字起こしと Agent Assist の候補を生成します。これは、会話のターンで発生します。このとき、API は認識結果 StreamingAnalyzeContentResponse.recognition_result からパラメータ is_final=true を受け取ります。

拡張ストリーミングにより、会話のターンでハーフクローズする必要性が軽減されます。接続タイムアウトが 3 分に延長され、その間はハーフクローズせずに音声ストリームを送信できます。Dialogflow API は、最終的な文字起こしとエージェント アシストの提案をストリームに自動的に返送します。ストリームはタイムアウトした場合にのみ再起動します。

ストリーミングの基本

Agent Assist の拡張ストリーミング機能は、CCAI 文字起こしの音声ストリーミングに似ています。システムは音声データを API にストリーミングし、Dialogflow は StreamingAnalyzeContentResponse データをストリーミングで返します。返されるデータには、人間のエージェント向けの提案が含まれます。

拡張ストリーミングを使用するには、streamingAnalyzeContent メソッドを呼び出します。

拡張ストリーミングは、エージェント アシスト ステージのみをサポートします。会話ステージをご覧ください。この機能を使用するには:

  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 回まで可能です。