扩展流式传输

您可以使用扩展流式传输功能将音频内容流式传输到 Dialogflow,并流式传输人工客服建议。

通常,您会半关闭或告知 Dialogflow API 何时结束流,以生成最终转写内容和 Agent Assist 建议。这种情况发生在对话轮次中,即 API 从识别结果 StreamingAnalyzeContentResponse.recognition_result 中接收参数 is_final=true

扩展的流式传输减少了在对话回合中进行半关闭的需求。它将连接超时时间延长至 3 分钟,在此期间,您可以发送音频流,而无需半关闭。Dialogflow API 会自动将最终转写内容和 Agent Assist 建议发送回流。只有在数据流超时时,您才需要重启数据流。

流式传输基础知识

Agent Assist 扩展的流式传输功能类似于 CCAI 转写中的音频流式传输。您的系统将音频数据流式传输到 API,而 Dialogflow 会将 StreamingAnalyzeContentResponse 数据流式传输回来。返回的数据包括针对人工客服的建议。

如需使用扩展流式传输,请调用 streamingAnalyzeContent 方法。

扩展流式传输仅支持 Agent Assist 阶段。请参阅对话阶段。如需使用此功能,请执行以下操作:

  1. 调用 streamingAnalyzeContent 方法并设置以下字段:
    • StreamingAnalyzeContentRequest.audio_config.audio_encodingAUDIO_ENCODING_LINEAR_16AUDIO_ENCODING_MULAW
    • enable_extended_streamingtrue
  2. 第一个 streamingAnalyzeContent 请求用于准备直播并设置音频配置。
  3. 在后续请求中,您将音频字节发送到流中。
  4. 只要您继续发送音频,就会一直收到建议。 您无需手动关闭流。当 Agent Assist 检测到用户停止说话后,该窗口会自动关闭。
  5. 在以下情况下,重新启动数据流(包括重新发送初始音频配置):
    • 数据流中断(数据流在不应停止时停止)。
    • 您的音频数据即将达到 3 分钟的自动超时时间。
    • 您收到了可重试的错误。您最多可以重试 3 次。