设备文档更新 2436/2 2436/head 2437/target/1
authorluozheng <1732036298@qq.com>
Mon, 29 Sep 2025 03:36:24 +0000 (11:36 +0800)
committerluozheng <1732036298@qq.com>
Mon, 29 Sep 2025 03:36:24 +0000 (11:36 +0800)
code/sdk/zhihui/leiniao/设备API接口文档.md

index c4c298b..60418e0 100644 (file)
@@ -936,7 +936,7 @@ sequenceDiagram
       "eyesColor": "green",\r
       "hairStyle": "side-parted-comma",\r
       "eyesShape": "calm-eyes",\r
-      "screenImage": "https://example.com/avatar.jpg",\r
+      "deviceScreen": "https://example.com/avatar.bin",\r
       "screenImageAsEmoji": false\r
     }\r
   }\r
@@ -1359,6 +1359,12 @@ sequenceDiagram
             end\r
             Server->>Device: WebSocket推送<br/>{"command": "VoiceChatResponse", "data": {"finished": true}}\r
             \r
+        and 语音对话打断\r
+            Device->>Device: 用户中断语音输入或检测到新输入\r
+            Device->>Server: WebSocket发送<br/>{"command": "VoiceChatInterrupt", "data": {"chatId": "...", "reason": "用户主动打断"}}\r
+            Server->>Server: 停止当前对话处理\r
+            Note over Server: 中断对应chatId的语音处理流程\r
+            \r
         and 角色切换\r
             MiniProgram->>Server: 用户在小程序切换角色\r
             Server->>Device: WebSocket推送<br/>{"command": "CharacterChange", "data": {...}}\r
@@ -1447,7 +1453,7 @@ WebSocket连接需要设备Token认证,有以下两种方式传递Token:
 \r
 ### 客户端业务消息\r
 \r
-客户端可以通过WebSocket连接发送业务消息给服务端,目前支持心跳、语音对话分片传输、语音选择故事和随机故事请求。\r
+客户端可以通过WebSocket连接发送业务消息给服务端,目前支持心跳、语音对话分片传输、语音对话打断、语音选择故事和随机故事请求。\r
 \r
 #### 心跳请求 (Ping)\r
 **命令描述**:客户端发送心跳请求,保持WebSocket连接活跃\r
@@ -1606,6 +1612,61 @@ WebSocket连接需要设备Token认证,有以下两种方式传递Token:
 | npcEmotion | String | NPC情感状态,如"happy"等 |\r
 \r
 \r
+#### 语音对话打断 (VoiceChatInterrupt)\r
+**命令描述**:客户端发送语音对话打断请求,用于中断当前正在进行的语音对话\r
+**协议说明**:\r
+- 当用户需要中断当前正在进行的语音对话时,客户端发送此命令\r
+- 命令中必须包含需要中断的对话ID(chatId)\r
+- 服务端收到打断请求后会停止当前对话的处理流程\r
+- 可选择提供打断原因,便于调试和统计分析\r
+\r
+**消息格式**:\r
+```json\r
+{\r
+  "deviceId": "设备ID",\r
+  "timestamp": 1640995200,\r
+  "messageId": "消息ID",\r
+  "command": "VoiceChatInterrupt",\r
+  "data": {\r
+    "chatId": "对话ID,用于标识需要中断的对话",\r
+    "reason": "打断原因(可选)"\r
+  }\r
+}\r
+```\r
+\r
+**请求示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995204,\r
+  "messageId": "msg_interrupt_001",\r
+  "command": "VoiceChatInterrupt",\r
+  "data": {\r
+    "chatId": "chat_12345",\r
+    "reason": "用户主动打断"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 必填 | 描述 |\r
+|--------|------|------|------|\r
+| chatId | String | 是 | 需要中断的对话ID,必须与正在进行的对话ID一致 |\r
+| reason | String | 否 | 打断原因,用于统计分析,如"用户主动打断"、"超时中断"等 |\r
+\r
+**使用场景**:\r
+1. 用户在语音对话过程中主动打断\r
+2. 检测到新的语音输入时中断当前对话\r
+3. 系统超时或异常情况下的对话中断\r
+4. 切换对话模式时中断当前对话\r
+\r
+**服务端处理**:\r
+- 服务端收到打断请求后会停止对应chatId的语音处理流程\r
+- 如果对话已完成或不存在,打断请求将被忽略\r
+- 服务端不会对打断请求发送响应消息\r
+\r
+\r
 #### 语音选择故事请求 (ChooseStoryRequest)\r
 **命令描述**:客户端发送语音选择故事请求,用户通过语音表达故事偏好,系统根据语音内容选择相应故事\r
 **协议说明**:\r