一、自动打断
自动打断是指系统在检测到特定条件时,根据用户的音频输入自动触发,支持两种主要规则:基于音频时长的打断和基于语义的打断。
1. 基于音频时长的打断
·用户可动态配置打断时长,默认为500ms。
·可调范围:300ms(更灵敏)到5000ms(避免误打断)。
·建议:
·对于客服对话等高交互场景,设置较短时长(如300ms 或者 500ms)以提高响应速度。
·对于演讲或授课场景,设置较长时长(如1000ms)以避免误打断。
2. 基于语义的打断
基于语音活动检测(VAD)技术,当服务端检测到用户输入了一句语义完整的话时,会自动触发打断。
3. 自动打断与手动打断的配合
在自动打断模式下,仍可使用端上 SDK 发送自定义打断信令,实现特定的手动打断控制,提供更精细的交互体验。
二、手动打断
手动打断是指由用户主动发起,通过端上 SDK 发送自定义消息实现,为用户提供更直接的控制方式。通常依赖于用户界面上的按钮或快捷键。
1. 打断信令说明
手动打断使用如下 JSON 格式的自定义消息: 统一通过端上发送 TRTC 自定义消息,cmdID 固定是2。
{
"type": 20001, // 固定type
"sender": "user_a", // 发送者userid,服务端会验证有效性
"receiver": ["user_bot"], // 接收者userid列表,填写机器人userid
"payload": {
"id": "uuid", // 消息id,用于问题排查
"timestamp": 123 // 时间戳,用于问题排查
}
}
2. 使用方法
通过 Web SDK 的 sendCustomCmdMessage 或 Native SDK 的sendCustomCmdMsg 方法发送上述自定义消息即可实现手动打断。
三、应用场景示例
1. 客服对话:使用较短的自动打断时长,配合手动打断,实现快速响应和精准控制。
2. 在线教育:采用较长的自动打断时长,避免误打断学生发言,教师可使用手动打断进行必要干预。
3. 多人会议:结合自动打断和手动打断,灵活管理发言顺序和时长。