您可以使用扩展流式传输功能将音频内容流式传输到 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 阶段。请参阅对话阶段。如需使用此功能,请执行以下操作:
- 调用
streamingAnalyzeContent
方法并设置以下字段:StreamingAnalyzeContentRequest.audio_config.audio_encoding
:AUDIO_ENCODING_LINEAR_16
或AUDIO_ENCODING_MULAW
enable_extended_streaming
:true
。
- 第一个
streamingAnalyzeContent
请求用于准备直播并设置音频配置。 - 在后续请求中,您将音频字节发送到流中。
- 只要您继续发送音频,就会一直收到建议。 您无需手动关闭流。当 Agent Assist 检测到用户停止说话后,该窗口会自动关闭。
- 在以下情况下,重新启动数据流(包括重新发送初始音频配置):
- 数据流中断(数据流在不应停止时停止)。
- 您的音频数据即将达到 3 分钟的自动超时时间。
- 您收到了可重试的错误。您最多可以重试 3 次。