跳至正文

Deepgram Voice Agent API:如何接入实时 AI 数字人

Deepgram Voice Agent 语音驱动 Spatius 本地渲染实时数字人

**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 ,或查看集成.。

让你的智能体拥有一张会回应的脸。

开始构建