**Deepgram 可以运行语音智能体的听、想、说闭环,Spatius 则为它增加视觉层。**把 Deepgram 流式输出的智能体语音同时发送到播放器和 Spatius Motion Server,再用 AvatarKit 渲染返回的运动数据。会话状态、工具、打断策略和故障恢复仍由你的应用控制。
**独立指南:**Spatius 与 Deepgram 不存在本文声称的隶属、背书或官方集成伙伴关系。本文依据双方公开 API 与文档说明一种互操作架构,不代表现成的原生连接器。
最后核验:2026 年 9 月 30 日。
两套系统分别负责什么?
Deepgram Voice Agent API通过一条 WebSocket 组合语音识别、LLM 编排和语音合成。它接收用户音频,生成转录和智能体事件,并以二进制音频返回合成语音。
Spatius Direct Mode从智能体已经确定回答内容之后开始工作。AvatarKit 把这段语音发送给 Motion Server,接收运动数据,并在客户端渲染数字人。
| 责任 | Deepgram Voice Agent 应用 | Spatius |
|---|---|---|
| 用户语音与轮次检测 | 负责 | 不负责 |
| LLM、Prompt、工具与业务规则 | 负责 | 不负责 |
| 智能体语音 | 输出音频 | 接收已经确认的回答语音 |
| 面部运动 | 无需负责 | Motion Server 生成运动数据 |
| 数字人渲染 | 不负责 | AvatarKit 在客户端渲染 |
| 产品界面、降级、分析与人工转接 | 应用负责 | 不负责 |
本文与已有的 Deepgram 语音识别集成不同。后者把 Deepgram 当作多供应商链路中的听觉组件;本文从完整的 Deepgram Voice Agent API 出发,把最终回答语音接入独立数字人层。
参考架构
用户实际听到的音频,应与数字人呈现的音频来自同一个智能体输出。
用户麦克风
↓
Deepgram Voice Agent WebSocket
├─ STT、LLM 编排、工具与轮次事件
└─ 二进制智能体输出音频
↓
有序应用音频队列
├─ 用户播放
└─ Spatius Motion Server
↓ 运动数据
客户端 AvatarKit
↓
本地渲染数字人
不要为数字人重新合成第二段回答,也不要只根据最终文本估算动画。第二条 TTS 链路可能改变发音、停顿和时长。最可靠的同步源就是用户实际听到的音频。
如果需要先判断更大的产品边界,可阅读如何给现有 SaaS AI Agent 增加数字人和 Spatius 集成目录。
第一步:建立 Deepgram 智能体连接
Deepgram 文档当前使用 wss://agent.deepgram.com/v1/agent/converse 建立 Voice Agent WebSocket。消息流程指南要求客户端先等待 Welcome,发送 Settings,再等待 SettingsApplied,之后才开始推送麦克风音频。
Settings 定义输入输出格式,以及 Listen、Think、Speak 所使用的供应商。官方示例使用 24 kHz 的原始 linear16 输出,但这只是示例,不代表所有 Spatius SDK 的统一要求。实施前应核对当前 SDK 支持的音频格式。
先在没有数字人的情况下跑通语音智能体,确认正常轮次、工具调用、打断、关闭和重连都正常。这样接入视觉层后,才能把故障定位到正确环节。
第二步:只分发一次输出音频
Deepgram 会按顺序返回智能体语音帧。先把它们放进一个受控队列,再分别提供给播放器和数字人适配层。
收到 Deepgram 智能体音频:
保持顺序和时间关系
把已确认语音送到用户播放器
把同一段语音送到 Spatius 数字人链路
智能体音频结束:
完成当前数字人说话轮次
如果播放器需要重采样、缓冲或封装媒体格式,应在独立分支中处理。不要让一个消费者修改另一个消费者所需的源流。队列还需要保留足够的序号和会话信息,以便在打断或重连后丢弃过期音频。
AvatarKit 的具体方法以当前 SDK 为准。实施时应参考官方 Spatius 音频概念和生命周期文档,不要照搬博客中未经验证的方法名。
第三步:同时处理中断后的音频和动作
当用户在智能体说话时开始插话,Deepgram 会发送 UserStartedSpeaking。官方指南要求客户端立即停止语音播放;可视化智能体还必须停止呈现已经取消的回答。
收到 UserStartedSpeaking 后 | 产品需要执行的动作 |
|---|---|
| 播放器 | 停止并清除排队中的智能体音频 |
| 数字人适配层 | 停止发送已取消语音并清除待处理任务 |
| 数字人界面 | 回到聆听或空闲状态,不继续旧动作 |
| 工具流程 | 仅取消产品策略允许取消的工作 |
| 日志 | 保留被打断轮次与事件时间 |
停止扬声器不会自动清空数字人状态,应用必须统一协调。产品设计可参考什么时候应该允许用户打断 AI 数字人。
第四步:保留纯语音降级路径
如果数字人初始化、资产加载、运动传输或客户端渲染失败,语音智能体仍应尽量可用。停止过期动画,明确显示当前状态,并在业务允许时继续纯语音会话。
这个降级路径也让可观测性边界更清楚:Deepgram 可能正常而数字人链路异常,反之亦然。应把 Deepgram 的服务端事件与播放队列、数字人会话和客户端渲染状态一起记录。
第五步:测试完整轮次
同时测量用户说完到第一段可理解回答音频、以及第一帧正确数字人动作的时间。测试长回答、第一段音频期间打断、接近回答结束时打断、工具成功、工具失败、重连和仅数字人失败。
除非同时说明地区、设备、网络、模型、语音、样本量和计时边界,否则不要发布单一延迟数字。Deepgram 的 Voice Agent 产品页和 Spatius 价格页覆盖的是不同技术层,总成本还应包含应用基础设施。
这种架构适合谁?
如果希望 Deepgram 负责统一语音闭环,产品继续控制工具和用户体验,同时让数字人成为可替换的展示层,这种架构较合适。
如果最快获得托管式角色比保留模块化语音架构更重要,可以评估捆绑云端视频数字人的 Agent。若更看重技术栈控制、客户端渲染、设备覆盖,或者以后能独立更换语音与数字人供应商,则更适合组件化方案。
Deepgram 实时数字人常见问题
Deepgram Voice Agent API 是否包含数字人?
不包含。它提供实时语音智能体链路;Spatius 这类视觉层需要单独接收智能体最终语音并渲染数字人。
同一段 Deepgram 音频可以同时用于播放和口型同步吗?
可以。把同一个有序音频流分发给两个消费者,不要为数字人重新生成第二段 TTS,否则发音与时间可能不同。
谁负责用户打断?
Deepgram 检测用户开始说话并发送事件,但应用需要停止播放、清除已取消的数字人任务、更新界面状态,并执行自己的工具取消策略。
这与 Deepgram STT 集成相同吗?
不同。STT 集成只把 Deepgram 用于多供应商链路中的转录;本文使用统一 Voice Agent API 负责听、思考编排和说话,再由 Spatius 添加视觉输出。
Spatius 是否需要用户麦克风音频?
数字人链路需要的是它要呈现的已确认智能体语音,而不是用户原始麦克风音频。用户数据应只进入真正需要它的系统。
给现有 Deepgram 智能体增加视觉层
准备一段代表性的 Deepgram Voice Agent 对话、音频格式、目标设备、打断要求和预期并发,我们将帮助你评估数字人边界,而不替换现有语音智能体。 申请演示, or ,或查看集成.。