本指南提供了语音功能的其他高级设置。您可以依次前往代理设置 > 语音和 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,然后半关闭该数据流。