本文介绍 Qwen-Audio-3.1-ASR-Flash-Message 实时语音识别服务通过 WebSocket 推送给客户端的服务端事件,包括 task-started、result-generated、task-finished、task-failed 四类事件的数据结构与字段含义。
task-started
任务启动成功,客户端可开始发送音频数据。
| 参数 | 类型 | 说明 |
|---|---|---|
| header | object | |
| header.task_id | string | 客户端生成的任务 ID(UUID 格式)。 |
| header.event | string | 事件类型,固定为 task-started。 |
| header.attributes | object | 附加属性(通常为空)。 |
| payload | object | 固定为{}。 |
result-generated
识别结果。默认返回句子最终识别文本(sentence_end=true);设置 intermediate_result_enabled=true 后还返回中间文本(sentence_end=false)。中间文本可能修订,应按 sentence_id 更新展示,不要直接拼接。句子开始事件可包含 sentence_begin=true,此时文本可能为空。
句子开始结果:
| 参数 | 类型 | 说明 |
|---|---|---|
| header | object | |
| header.task_id | string | 客户端生成的任务 ID(UUID 格式)。 |
| header.event | string | 事件类型,固定为 result-generated。 |
| payload | object | |
| payload.output | object | |
| payload.output.sentence | object | |
| payload.output.sentence.begin_time | integer | 句子开始时间(ms)。 |
| payload.output.sentence.end_time | integer | 句子结束时间(ms)。 |
| payload.output.sentence.text | string | 识别文本。 |
| payload.output.sentence.heartbeat | boolean | 若为 true,可跳过该结果(心跳包)。 |
| payload.output.sentence.sentence_begin | boolean | 用于标识句子开始。 |
| payload.output.sentence.sentence_end | boolean | 是否句子结束(true=最终结果,false=中间结果)。 |
| payload.output.sentence.sentence_id | integer | 句子的序号标识。正常识别结果中,sentence_id 从 1 开始递增。当 heartbeat 为 true 时(即心跳包),sentence_id 固定为 0。 |
| payload.output.sentence.words | array[object] | 字时间戳信息。 |
| payload.output.sentence.words.begin_time | integer | 字开始时间(ms)。 |
| payload.output.sentence.words.end_time | integer | 字结束时间(ms)。 |
| payload.output.sentence.words.text | string | 识别文本。 |
| payload.output.sentence.words.punctuation | string | 标点符号。 |
| payload.usage | object | 当前任务截至本事件的累计用量。 |
| payload.usage.duration | integer | 累计音频时长(秒),为兼容保留。 |
| payload.usage.input_tokens | integer | 累计输入 Token 数。 |
| payload.usage.output_tokens | integer | 累计输出 Token 数。 |
| payload.usage.total_tokens | integer | 累计 Token 总数,为 input_tokens 与 output_tokens 之和。 |
task-finished
任务正常结束,可关闭连接或复用连接。
| 参数 | 类型 | 说明 |
|---|---|---|
| header | object | |
| header.task_id | string | 客户端生成的任务 ID(UUID 格式)。 |
| header.event | string | 事件类型,固定为 task-finished。 |
| header.attributes | object | 附加属性(通常为空)。 |
| payload | object | 包含 output(空对象)和 usage(本任务最终累计用量)。usage 字段定义与 result-generated 一致。 |
task-failed
任务失败,连接会被关闭,无法复用。
| 参数 | 类型 | 说明 |
|---|---|---|
| header | object | |
| header.task_id | string | 客户端生成的任务 ID(UUID 格式)。 |
| header.event | string | 事件类型,固定为 task-failed。 |
| header.error_code | string | 错误类型描述。 |
| header.error_message | string | 具体错误原因。 |
| header.attributes | object | 附加属性(通常为空)。 |
| payload | object | 固定为{}。 |