一、连接机器人
注意:调用前需已通过 connect 连接该机器人,详细接入方法见:(客户端)接收 AI 机器人状态。
二、发起打断
调用 TRTCCloud.callExperimentalAPI:
{ "api": "aiConversation", "params": { "command": "interrupt", "robotid": "ai_bot_001" }}
robotid 填当前已连接的 AI 机器人 UserId。
打断成功不回调。失败时通过 TRTCCloudListener.onExperimentalEvent 回调,eventName 为 onAIConversationEvent,params 为:
{ "event": "onCommand", "robotid": "ai_bot_001", "command": "interrupt", "errCode": 1004, "errMsg": "invalid state"}
| errCode | 含义 |
| -2 | 参数错误,缺少 robotid。 |
| -3 | 传入的 robotid 与当前连接的机器人不一致。 |
| 1001 | 任务已结束,不再响应。 |
| 1002 | 服务端处理失败,可再次调用。 |
| 1003 | 指令参数非法。 |
| 1004 | 当前状态不允许打断。例如 AI 未在播报、任务已结束、会话尚未开始等状态。 |
三、与打断模式的关系
创建任务时,DialogConfig.InterruptMode 决定什么情况下由服务端自动打断。客户端 interrupt 和服务端 ControlVoiceConversation 的 Interrupt 都是主动强制打断,不受该模式限制。
| InterruptMode | 说明 |
| 0(默认) | 自动打断。识别到用户说话即打断当前播报,最短语音时长由 InterruptSpeechDuration 控制,范围 200~3000 毫秒,默认 200。 |
| 1 | 手动打断。只在收到服务端 Interrupt 或客户端 interrupt 时打断。 |
| 2 | 关键词打断。用户说出 InterruptKeywords 中的词(最多 128 个)时打断。 |