AI 语音对话
约 1799 字大约 6 分钟
2026-10-16
先完成基础教程
先读 六阶段公共主线,再完成 MQTT 认证与基础报文。音频设备选 MQTT+UDP;视频、人际通话与 IPC 选 MQTT+WebRTC。不同媒体选择不改变接听和授权的业务规则;文字/异步分支不创建实时媒体。
按这条路径操作:①确认支持范围和当前配置;②按传输教程完成能力、创建或邀请、媒体连通;③进入下表指定步骤;④按分支观察实际业务效果;⑤分支结束返回原会话,整个会话结束则本地停机并 sessionEnd/sessionEnded。创建、接听、媒体与结束的具体报文以 完整基础流程与逐报文 和 会话契约 为准。不要把 HTTP 202、requestAck 或 sessionCreated 当成业务已完成。
基础操作:先跑通一轮 AI 语音
- 平台配置已启用的串联语音模型和设备权限;设备声明真实 udp、Opus 和 halfDuplex。没有实体 AEC 时不要声明 fullDuplex。
- 完成UDP 基础教程,取得选定参数并等 sessionEstablished。
- 使用新 inputId 发 audioStart,等 requestAck 后采集和上行;用户说完发 audioStop,保留最后有效帧序号。停止输入不等于关闭会话。
- 以 respId 关联识别、文字和音频;安装 respAudioStart 的回复边界,按已选能力回安装事实,随后解密、解码与播放。respAudioDone 是发送结束,respDone 是模型本轮终态,本地播放完成另记。
- 下一轮新 inputId;用户取消用目标 respId,清指定旧回复播放队列。整个会话退出先停本地输入输出,再 sessionEnd 并处理 sessionEnded。
图中音频控制字段见音频命令,文字与回复终态见内容命令及respDone。每条箭头的 Topic、等待与可复制 JSON 在串联教程。
{
"msgToken": "s02-22",
"method": "audioStart",
"sessionId": "s02-session",
"params": {
"inputId": "input-1",
"firstPacketSeq": 256
}
}串联、实时与双工怎么选择
| 云端链路/设备策略 | 输入与回复行为 | 从基础操作改变什么 |
|---|---|---|
| 串联+半双工 | 每轮收音后停止输入,识别→模型→合成回复 | 上述基础教程,不将串联称为淘汰模式 |
| 实时+半双工 | 云端原生实时处理,但设备按半双工策略管理输入输出 | 使用实时模型;输入起停和播放策略按选定 halfDuplex,不能边播边假定可上行 |
| 实时+全双工 | 输入持续,多轮生成;播放时仍可讲话 | 有真实 AEC 并被选定 fullDuplex;audioStop 只暂停输入,恢复新 inputId;插话清旧回复不关闭会话 |
实时教程完整画出持续输入、插话、暂停和恢复;WebRTC AI替换媒体建立和音轨传输,仍复用 AI 输入/回复生命周期。工具和附件只接入下面的业务分支,不再复制能力与建连流程。
分支从哪里进入、怎样回到主线
| 业务教程 | 进入位置 | 需要增加/改变的条件与操作 | 预期结果、返回与退出 |
|---|---|---|---|
| 人与AI串联语音 | 阶段5:建立后的每轮输入 | 平台串联模型+halfDuplex;每轮新 inputId,audioStart→Opus→audioStop | 等当前回复完成播放或按取消策略处理,再开始下一轮 |
| 人与AI实时语音 | 阶段5:实时输入 | 平台 Realtime;半双工与全双工分别求交;全双工如实声明 AEC | 同一输入持续多轮;audioStop 只暂停,恢复新 inputId;插话清指定旧 respId |
| WebRTC全双工AI与音视频关联 | 阶段4:改用 WebRTC 建媒体 | Opus 48kHz 等实际交集;完整 SDP 及媒体连通后按实时策略输入 | 不把 WebRTC 当自动全双工,结束关闭 Peer 和输入 |
| AI工具与设备执行 | 阶段5:模型产生工具调用 | MCP 权限与设备 action 已配置;实际 actionReply 决定结果续答 | 继续同一回复播报真实结果;取消不回滚已执行动作 |
| 客户端工具执行与回传 | 阶段5:客户端工具选择 | 仅声明已审核工具;当前主题 action 工具,不能任意注入执行代码 | 执行结果关联原调用与回复;取消/过期后迟到执行隔离 |
| 多模态输入与媒体表情回复 | 阶段5:文字或离散附件输入 | none 不建媒体;附件 Prepare→上传→Complete 后引用 ready 文件 | 回到同一回复流程;原生 Realtime 音频不直接接离散附件 |
每个链接内都有专属操作图、完整协议时序、关键 JSON、字段链接、失败与资源释放;不是“与前面类似”的省略步骤。实现状态须以 能力范围 及分支前置条件为准,设计待实现能力不因列入本教程而启用。
怎么确认本组接入成功
依次核对实际鉴权、能力交集、会话/邀请结果和媒体事实,再核分支的识别/实际执行/真实解码/产物状态。最后退出,确认本端已停止采集、播放或订阅,且其他仍授权会话不受影响。失败按 共通失败与恢复 处理,不伪造完成,也不重新执行结果未知的写动作。字段只在 协议参考 维护;逐条请求和应答在 完整报文示例。
更新日志
2026/10/17 03:27
查看所有更新日志
d04e1-docs(AI与音视频): 按公共主线与场景分支整合接入手册于
