高级语音设置

本指南提供了语音功能的其他高级设置。您可以依次前往代理设置 > 语音和 IVR > Speech-to-Text > 高级语音设置,开启和关闭这些高级设置。

这些设置可在代理设置(适用于整个代理)、流设置(适用于整个流并会覆盖代理设置)、页面设置(适用于页面并会覆盖流和代理设置)以及执行设置(适用于执行并会覆盖页面、流和代理设置)中找到。每个级别都提供这些设置的一个子集,具体取决于设置与该级别的相关性。

如需在任何较低级别配置这些设置,请先在代理设置中选择启用高级语音设置。

如果在这些较低级别选择了自定义选项,则更新后的代理级设置不会传播到 flow、页面和 fulfillment 级别。如果自定义选项包含多项设置,而您只想更新其中部分设置,那么您可能还需要更新其他设置,以便它们与代理级设置保持一致。

如果您在某个流程中清除启用高级语音设置,则该流程不会继承代理语音或插话设置。在继承代理设置的流(例如 Default Start Flow)上,请保持选中此选项。

各级别可用的设置

下表指出了每个级别可用的高级语音设置:

设置名称 智能体 流 页面 履行情况
模型选择 (Speech-to-Text) ✔ ✔ ✔
结束语音识别的灵敏度 ✔ ✔ ✔
基于超时的高级结束语音识别灵敏度 ✔ ✔ ✔
启用智能端点 ✔
无语音超时 ✔ ✔ ✔
打断讲话 ✔ ✔ ✔
允许取消只答完一部分的回答播放 ✔
音频导出存储桶 ✔ ✔
DTMF ✔ ✔ ✔

模型选择 (Speech-to-Text)

可以在代理、流和页面级别进行设置。

设置用于语音识别的语音模型。此设置因语言而异,因此您可以为不同的语言选择不同的模型。您还可以选择替换请求级语音模型。此选项会应用代理、流或页面模型,而不是请求或 ConversationProfile 中的模型。

在双向流式会话 (BidiStreamingAnalyzeContent) 中,请在代理、流和页面中使用相同的 Speech-to-Text 版本。请勿在同一会话中将 Speech-to-Text V2 (chirp_3) 与 Speech-to-Text V1 模型(例如 telephony_short 或 latest_short)混用。

对于 Dialogflow CX 电话网关,请参阅限制。 如需了解详情,请参阅语音模型。

结束语音识别的灵敏度

可以在代理、流和页面级别进行设置。

控制在最终用户音频输入中识别语音结束的灵敏度。该值介于 0(低灵敏度,不太可能结束语音)到 100(高灵敏度,更有可能结束语音)之间。

请注意以下建议:

  • 使用 Speech-to-Text V2 chirp_3 时,请先将语音结束敏感度值设为 75,如果音频是嘈杂的 8 kHz 电话音频,则设为 80。请勿将该值设置为 100,否则可能会导致在嘈杂的线路上出现误识别。在控制台中,使启用基于超时的高级语音结束灵敏度保持启用状态。在 API 请求中,将 useTimeoutBasedEndpointing 设置为 true。
  • 如果您使用 ConversationProfile,请在代理、流程和页面设置中验证语音结束敏感度值。较低的值(例如 35)可能会增加数秒的端点延迟时间。

基于超时的高级结束语音识别灵敏度

可在代理级别设置,并在流和页面级别停用。

如果启用此设置,系统会使用语音结束敏感度设置值作为衡量标准,建立相对音频静音超时,以确定语音结束。如果此设置处于停用状态(默认),则系统会使用语音结束敏感度设置值,通过 Google Cloud Speech-to-Text 提供的机器学习模型来确定语音结束。

虽然结束语音识别的灵敏度设置默认仅支持 en-US 语言标记的 phone_call 语音模型,但启用基于超时的高级结束语音识别的灵敏度设置允许为 Dialogflow 支持的所有语言和语音模型配置结束语音识别的灵敏度。

启用智能端点

只能在代理级别设置。

如果启用此设置,Dialogflow CX 将分析部分用户输入,以确定语音结束。例如,如果用户说“我想”并暂停,Dialogflow CX 将等待用户继续说出句子。

这对于数字参数收集特别有用,因为用户可能会说“1234”,然后暂停,再说“5678”。如需为特定参数应用此设置,您必须在参数表单中设置智能端点。

此设置仅适用于 en-US 语言代码,默认处于停用状态。

无语音超时

可以在代理、流和页面级别进行设置。

Dialogflow CX 停止等待最终用户音频输入的时间(以秒为单位)。默认值为 5 秒,最大值为 60 秒。对于此超时,Dialogflow CX 会调用无输入事件。

使用 Speech-to-Text V2 chirp_3 时,我们建议将无语音超时设置为 8 秒。

打断讲话

可在代理、流和 fulfillment 级别进行设置。

启用后,最终用户可以打断 Dialogflow CX 的音频回答。当被中断时,Dialogflow CX 将停止发送音频,并处理下一个最终用户输入。

如果消息队列中有多条消息,并且某条消息是由与启用了插话功能的页面、流程或代理关联的执行方式排入队列的,那么队列中的所有后续消息也将启用插话功能。在这种情况下,集成将停止为所有启用了插话功能的已加入队列的消息播放音频。

如果您将插话功能与自定义电话或流式传输集成搭配使用,请遵循以下准则:

  • 每轮 StreamingAnalyzeContent 调用:在对话的每一轮中,在 InputAudioConfig 中包含 barge_in_config。如果您在后续轮次中省略 barge_in_config,则插话功能会在第一轮后停止运行。
  • 预录制的 .wav 提示:剪裁 <audio> 标记中预录制音频文件的尾随静音。尾随静音会延长播放时间,这可能会延迟插话资格和无语音超时。

允许取消只答完一部分的回答播放

只能在履单级别设置。

在代理设置 > 语音和 IVR 中选中启用高级语音设置复选框,并在执行级别启用只答完一部分的回答后,您可以启用此设置。此设置允许取消只答完一部分的回答播放。

如果消息队列中的消息是由允许取消的 fulfillment 创建的,那么当队列中添加了另一条消息时,系统会取消播放该消息。如果您希望初始消息开始播放,但如果工作中的 webhook 在初始消息播放完成之前生成另一条消息,则取消该播放,此功能非常有用。

音频导出存储桶

可在代理和 flow 级别设置。

如果提供,则与请求关联的所有音频数据都将保存到 Cloud Storage 存储桶:

音频已保存 适用的请求
最终用户音频输入 DetectIntent、StreamingDetectIntent、AnalyzeContent、StreamingAnalyzeContent
为回答合成的 Text-to-Speech (TTS) 音频 AnalyzeContent、StreamingAnalyzeContent

向项目中的以下服务账号授予 Storage Object Creator 角色:

  • 格式为 one-click@df-cx-ALPHANUMERIC_VALUE-ALPHANUMERIC_VALUE. 的服务账号(如果您使用合作伙伴内置电话集成)。

  • 格式为 service-PROJECT_NUMBER@gcp-sa-dialogflow. 的服务账号(如果您使用 Dialogflow CX 电话网关集成)。如需在 IAM 中查找此服务账号,请勾选包括 Google 提供的角色授权选项。

Chirp 3:高清语音的流式 Text-to-Speech

如要使用 Chirp3-HD 语音的流式 Text-to-Speech 功能,需要获得访问权限审批。 获得批准后,在代理设置 > 语音和 IVR > Text-to-Speech中选择启用流式 Text-to-Speech。流式合成使用 StreamingSynthesize 来减少较长回答的延迟时间。

请注意以下行为:

  • 如需将流式文字转语音与插话搭配使用,请使用 BidiStreamingAnalyzeContent。每轮 StreamingAnalyzeContent 调用不支持具有插话功能的流式文字转语音。
  • 在单个轮次中,Dialogflow CX 会将连续的文本 responseMessages 串联成一个文字转语音合成请求。

DTMF

如需详细了解此功能,请参阅 DTMF(双音多频信号)文档。

如果您的 StreamingDetectIntent 客户端拦截了带外 DTMF 数字,请勿取消活跃的 gRPC 音频串流。如果取消流而不半关闭,则服务器流会保持打开状态,直到无语音超时到期。而是应停止发送音频帧,在同一数据流上发送 DTMF queryInput,然后半关闭该数据流。