session_type:meeting 参数即可进入会议模式。##START\x01[taskID][seqID]JWT_TOKEN##session_type:meeting##mode:vad##[可选参数]...##END| 参数名 | 类型 | 说明 |
|---|---|---|
session_type | meeting | 固定值,进入会议模式 |
mode | vad | 会议模式必须使用 VAD 模式 |
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
device_id | string | — | 设备 ID,推荐填写 |
meeting_id | string | — | 填写已有 meeting_id 可续会 |
summary_template | string | — | 纪要模板全文(YAML);不填则自动选择 |
input_audio_format | pcm | opus | pcm | 上行音频格式 |
##START\x05[taskID]0000##INFO:认证成功,NPCID: <npcid>, 模式: vad##END##START\x04[taskID]0000{"type":"meeting_started","meeting_id":"<uuid>"}##END⚠️ 客户端必须等到收到 meeting_started帧后,再发送LISTEN:start并开始推流音频。
##START\x08[taskID]0000{"state":"start"}##END##START\x05[taskID][seqID]##TRANSCRIPT:<json>##END{
"type": "transcript",
"meeting_id": "3b1cddf9-0832-43fa-bf0a-f36fb9790b8b",
"text": "大家好,欢迎参加本次产品评审会议。",
"seq": 1,
"timestamp": "00:00:05",
"is_final": true
}| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 固定 "transcript" |
meeting_id | string | 会议 UUID |
text | string | 识别文本(支持中英文混合) |
seq | int | 本次会议内递增序号(从 1 开始) |
timestamp | string | 相对会议开始的时间 HH:MM:SS |
is_final | bool | 固定 true(VAD 模式只下发最终结果) |
stop-and-summarize 后,纪要生成完成时服务器向客户端推 送以下帧序列:##START\x05[taskID]0000##summary_start:##END##START\x05[taskID]0000##summary_delta:<增量文本>##END##START\x05[taskID]0000##summary_done:<json>##END{
"type": "summary_done",
"summary": "**主题**:本季度财务回顾\n\n**核心内容**:..."
}##START\x05[taskID]0000##summary_error:<错误描述>##ENDmeeting_id 恢复会议,转写序号自动 延续:##START\x01[taskID][seqID]JWT_TOKEN##session_type:meeting##mode:vad##meeting_id:3b1cddf9-0832-43fa-bf0a-f36fb9790b8b##ENDongoing 状态(未调用 stop-and-summarize)。# 1. 客户端认证
C→S: ##START\x01000000000000<JWT>##session_type:meeting##mode:vad##device_id:device-001##END
# 2. 服务器:认证成功
S→C: ##START\x05000000000000##INFO:认证成功,NPCID: <npcid>, 模式: vad##END
# 3. 服务器:会议创建通知(TEXT 帧)
S→C: ##START\x04000000000000{"type":"meeting_started","meeting_id":"027ff465-..."}##END
# 4. 客户端:启动 VAD 监听
C→S: ##START\x08<taskID>0000{"state":"start"}##END
# 5. 客户端:持续推流 PCM 音频(16kHz 单声道 16bit)
C→S: ##START\x02<taskID>xxxx<PCM 音频数据>##END
C→S: ##START\x02<taskID>xxxx<PCM 音频数据>##END
...
# 6. 服务器:每句话识别完成下发 TRANSCRIPT
S→C: ##START\x05<taskID>xxxx##TRANSCRIPT:{"type":"transcript","meeting_id":"027ff465-...","text":"大家好...","seq":1,"timestamp":"00:00:05","is_final":true}##END
S→C: ##START\x05<taskID>xxxx##TRANSCRIPT:{"type":"transcript","meeting_id":"027ff465-...","text":"本季度增长超过预期...","seq":2,"timestamp":"00:00:23","is_final":true}##END
...
# (会议进行中,持续推流 + 接收 TRANSCRIPT)
# 7. 客户端:调用 REST API 触发纪要(见第 3 节)
# POST https://api.adventists.cn/meeting/v2/meeting/027ff465-.../stop-and-summarize
# 8. 服务器:纪要生成完成后推送
S→C: ##START\x05000000000000##summary_start:##END
S→C: ##START\x05000000000000##summary_delta:**主题**:##END
S→C: ##START\x05000000000000##summary_delta:本季度产品评审##END
...
S→C: ##START\x05000000000000##summary_done:{"type":"summary_done","summary":"**主题**:本季度..."}##ENDhttps://api.adventists.cn/meetingContent-Type: application/json。说明: 通过 TCP 认证进入会议模式时,服务器会自动创建会议并通过 meeting_started帧下发meeting_id,客户端无需手动调用此接口。此接口适用于纯 REST 场景(如服务端预建会议)。
POST /v2/meeting{
"org_id": "WOQSOC",
"device_id": "device-001",
"summary_template": null
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
org_id | string | ✅ | 组织 ID |
device_id | string | ✅ | 设备 ID |
summary_template | string | null | ❌ | 纪要模板全文(YAML);不填则自动选择 |
{
"meeting_id": "3b1cddf9-0832-43fa-bf0a-f36fb9790b8b",
"status": "created"
}GET /v2/meeting/{meeting_id}{
"meeting_id": "3b1cddf9-0832-43fa-bf0a-f36fb9790b8b",
"org_id": "WOQSOC",
"device_id": "device-001",
"status": "done",
"created_at": "2026-07-05T05:42:54Z",
"started_at": "2026-07-05T05:43:01Z",
"ended_at": "2026-07-05T05:50:08Z",
"transcript_count": 15,
"summary": "**主题**:本季度财务表现\n\n**核心内容**:...",
"error": null
}| 字段 | 说明 |
|---|---|
status | 见 会议状态机 |
transcript_count | 已识别的句子总数 |
summary | 最终纪要(Markdown 格式,done 状态时有值) |
error | 错误描述(failed 状态时有值) |
POST /v2/meeting/{meeting_id}/stop-and-summarize{
"meeting_id": "3b1cddf9-0832-43fa-bf0a-f36fb9790b8b",
"status": "summarizing"
}| 状态码 | 说明 |
|---|---|
| 404 | 会议不存在 |
| 409 | 会议已处于终态(done / failed),请使用 retry 接口 |