Deepgram 是一家总部位于美国旧金山的语音 AI 公司,提供全托管的语音转写(STT)、语音合成(TTS)与语音 Agent API。它的核心卖点是流式语音转写的尾字延迟低于 300ms——用户说完一句话,约 300ms 内就能拿到最终识别文本,这是目前主流 ASR API 中的第一梯队水平。除了低延迟,Deepgram 还提供说话人分离(diarization)、智能格式化(数字、日期、标点自动处理)、热词加权(keyterm boosting),以及针对语音对话场景的 Voice Agent API——把「转写→大模型生成→语音合成」整条链路封装成一个接口,端到端语音响应延迟官方口径可低至 800ms 以内。 本文面向正在选型或准备上手的语音工程师:先给速览卡和安装步骤,然后用可运行示例跑通批处理转写、流式转写与语音合成,再拆解四大核心能力(流式 STT、批处理 STT、Aura TTS、Voice Agent API),接着落在生产部署、用量监控与避坑清单,最后附同类选型对比、版本迭代、典型场景、常见误区与面试题。
掌握 Deepgram,等于拿到语音交互链路中最关键的低延迟转写与合成能力——这是语音 Agent、实时字幕、呼叫中心质检等场景的硬通货技能。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Deepgram:通用 ASR 延迟高、后处理靠拼装、语音 Agent 链路长
自建或选用通用 ASR 方案时,三个问题最突出。第一是延迟:多数开源模型或云 ASR 的流式尾字延迟在 1 秒以上,实时字幕、语音对话场景下用户体感明显卡顿;第二是后处理成本:标点、数字规范化、说话人分离、热词纠错这些“转写之后”的工作通常要再串三四个模块,自己实现既费工时又难调好;第三是语音 Agent 的链路:STT→LLM→TTS 三段都要独立对接并控制延迟,任何一个环节慢半拍,整体响应就会超过用户可接受的 1 秒门槛。
Deepgram 把这三件事收进一个托管 API。流式 STT 官方口径尾字延迟低于 300ms;批处理转写通过 smart_format、diarize、utterances 等参数开箱即得规范文本;Voice Agent API 则用一套 WebSocket 会话把「转写→LLM→合成」跑完,官方口径端到端延迟低于 800ms。工程师不再需要关心音频特征提取、端点检测和断句策略——这些由服务端处理,客户端只负责发音频、收文本或播放音频。
与同类工具相比,Deepgram 的气质是“实时优先 + 全栈语音”。AssemblyAI 更强调批处理准确率与内容理解,Azure Speech 更偏企业云生态,Whisper 是可私有化的开源模型——而 Deepgram 在流式低延迟和语音 Agent 一体化上走得最靠前。
安装与环境配置:3 步就绪
第一步,注册拿 Key。访问 console.deepgram.com 用邮箱注册,新账号自动获赠 $200 免费额度。在 Console 的 API Keys 页面创建一把 Key 并复制保存。
第二步,安装官方 Python SDK。包名为 deepgram-sdk,注意不是 deepgram 或 deepgram-ai。
第三步,配置环境变量并验证连通性。用官方示例音频跑一次 REST 批转写,能返回 JSON 即完成验证。
若输出为一段可读的英文访谈文本,说明 Key、网络与模型参数全部正常。注意鉴权头写法是 Authorization: Token <key>,前缀是 Token 而不是 Bearer。
# 1) 安装官方 Python SDKpip install deepgram-sdk # 2) 配置 API Key(去 console.deepgram.com 创建)export DEEPGRAM_API_KEY="你的_API_KEY" # 3) 验证:官方示例音频批转写curl -s -X POST "https://api.deepgram.com/v1/listen?model=nova-3&smart_format=true" \ -H "Authorization: Token $DEEPGRAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://static.deepgram.com/examples/interview-script.mp3"}' \ | jq '.results.channels[0].alternatives[0].transcript'
快速上手:30 分钟跑通转写 + 合成最小闭环
最小闭环的思路:先用 REST 把一段现成音频转成文本,再把文本交给 TTS 合成回语音,验证 STT 与 TTS 两条链路。步骤如下:
1. 在 Console → API Keys 创建 Key,复制到环境变量。
2. 确认 deepgram-sdk 已安装。
3. 新建 transcribe_demo.py,粘贴下方 Python 批转写代码,填入 Key 后运行,观察输出 JSON。
4. 把输入换成自己的音频(支持 mp3/wav/flac/m4a 等格式;REST 也支持传公网 URL 或二进制字节)。
5. 用下方 TTS 命令把一句文本合成 MP3,本地播放验证音质。
6. 进阶:换成 WebSocket 流式接口,边发音频边打印实时识别结果(代码见“核心能力详解”支柱一)。
运行后,results.channels[0].alternatives[0].transcript 即是全文,words 数组带每个词的开始/结束时间戳,可直接生成字幕。随后执行 TTS 验证合成链路:
from deepgram import DeepgramClient, PrerecordedOptions API_KEY = "YOUR_DEEPGRAM_API_KEY" client = DeepgramClient(API_KEY) with open("audio.wav", "rb") as f: payload = {"buffer": f.read()} # 批转写:识别 + 标点/数字规范化 + 说话人分离options = PrerecordedOptions( model="nova-3", smart_format=True, # 自动加标点、规范化数字日期货币 diarize=True, # 说话人分离,适合多人会议)res = client.listen.prerecorded.v("1").transcribe_file(payload, options)print(res.to_json(indent=2))
curl -s -X POST "https://api.deepgram.com/v1/speak?model=aura-2-athena-en&encoding=mp3" \ -H "Authorization: Token $DEEPGRAM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"text": "This audio was generated by Deepgram Aura."}' \ -o output.mp3
核心能力详解:4 大支柱
支柱一:WebSocket 流式转写(Streaming STT)。这是 Deepgram 的招牌能力。客户端建立 wss://api.deepgram.com/v1/listen?model=nova-3 长连接后持续发送音频字节,服务端边接收边产出结果。开启 interim_results=true 可拿到边听边出的中间结果(适合实时字幕);endpointing=300 表示检测到 300ms 静音即判定一句话结束并返回最终结果;vad_events=true 可拿到语音开始/结束事件。若发送的是原始 PCM 数据,必须声明 encoding=linear16&sample_rate=16000&channels=1,否则识别内容会乱码。Python 示例:
支柱二:REST 批处理转写与智能后处理。POST /v1/listen 接收公网 URL 或二进制音频,适合离线文件。常用参数:smart_format=true 一次性完成标点、数字、日期、货币、邮箱的格式化;diarize=true 做说话人分离,配合 utterances=true 按话轮切分;keywords=某词:2 对自定义词加权,大幅降低人名、产品名的误识别;profanity_filter=true 过滤敏感词。另支持 callback 参数——服务端转写完成后把结果 POST 到你的回调地址,适合大批量异步处理。
支柱三:Aura 语音合成(TTS)。POST /v1/speak 把文本合成语音,模型名如 aura-2-athena-en、aura-2-zeus-en 等,支持英、中、西、法、德等多语言音色,可调 rate(语速)、volume(音量)、pitch(音高)。输出编码用 encoding 参数指定(mp3/wav/ogg/linear16 等)。WebSocket 版 /v1/speak 支持边合成边下发音频块,显著降低首包延迟,适合实时播报。
支柱四:Voice Agent API(语音 Agent)。client.agent 系列接口把 STT→LLM→TTS 整条链路封装成单路 WebSocket 会话:服务端负责转写、调用你指定的大模型(支持 OpenAI、Anthropic、Gemini 等,通过 persona 配置供应商与系统提示词),再把回复合成语音下发。官方口径语音到语音端到端延迟低于 800ms,比自行串联三段 API 更易守住体验底线,是 IVR 客服、外呼营销、语音助手的直接基础设施。
from deepgram import DeepgramClient, LiveOptions, LiveTranscriptionEvents client = DeepgramClient("YOUR_DEEPGRAM_API_KEY")conn = client.listen.live.v("1") def on_transcript(_self, result, **kwargs): text = result.channel.alternatives[0].transcript if text: print(f"[实时] {text}") conn.on(LiveTranscriptionEvents.Transcript, on_transcript) options = LiveOptions( model="nova-3", language="zh", interim_results=True, endpointing=300,)conn.start(options) with open("audio.wav", "rb") as f: while chunk := f.read(4096): conn.send(chunk) conn.finish()
生产部署与监控:从上线到运维
部署方式一:批处理任务走 callback 异步化。不要对每个文件同步等结果。把 callback 参数指向你自己的接收端点,Deepgram 转写完成后向该地址 POST 结果,回调侧做校验与落库;配合指数退避重试应对 5xx 与超时。大批量任务可再通过 GET /v1/usage 系列接口按项目对账分钟数。
部署方式二:流式场景按并发连接水平扩展。每个 WebSocket 连接对应一路实时音频,客户端维护连接池并按业务并发峰值预估规模。鉴权一律走服务端:浏览器或移动端只连你的后端,由后端持有 API Key 并转发音频流,避免密钥泄漏;数据主权敏感场景可咨询企业版区域部署选项。
可观测性。Console 的 Usage 页面按项目聚合每日分钟数与费用,支持设置预算告警;GET /v1/projects/{project_id}/usage/requests 可拉取每次请求的明细(时长、模型、费用)。服务状态查看 status.deepgram.com。常见错误码:401/403 为 Key 无效或权限不足,429 为超限流(指数退避重试),400 多为音频编码或参数不匹配(先检查 encoding/language/model)。
<p class="para-label">避坑清单:</p>
<ul class=“dash-list“><li>API Key 严禁放前端:浏览器直连会暴露密钥且受 CORS 拦截,务必由你的后端持有 Key 并代理转发音频流。</li><li>流式原始 PCM 必须声明 encoding/sample_rate/channels(如 linear16@16000 单声道),漏声明会导致乱码或高延迟;带 WAV 头的文件可省略。</li><li>Python SDK v2→v3 API 不兼容:连接从 client.listen.prerecorded 变为 client.listen.prerecorded.v(”1”),升级前看迁移文档,别直接复制旧代码。</li><li>$200 免费额度用完后自动转计费,在 Console 提前设置账单告警或硬限额,避免一次批量跑量产生意外费用。</li><li>endpointing 值决定断句节奏:设太小(如 50ms)一句话会被切碎,设太大(如 2000ms)最终结果迟迟不出,实时对话建议 200-500ms。</li></ul>
| 维度 | Deepgram | AssemblyAI | Azure Speech | OpenAI Whisper |
|---|---|---|---|---|
| 定位 | STT+TTS+语音 Agent 全栈 API | 托管语音识别与理解平台 | 微软云语音套件(含 TTS) | 开源 ASR 模型(可自托管) |
| 实时延迟 | 流式尾字延迟 <300ms(官方口径) | 流式可用,主打准确率 | 流式可用,延迟中规中矩 | 取决于设备与模型大小 |
| 语言覆盖 | Nova-3 覆盖 40+ 语言 | Universal-2 覆盖 90+ 语言 | 140+ 语言 | 99 种语言 |
| 智能后处理 | smart_format、说话人分离、热词加权 | 说话人分离、标签、LeMUR 摘要 | 说话人分离、字幕、翻译 | 无,需自行开发 |
| TTS 能力 | 内置 Aura 多语言 TTS | 无原生 TTS | 500+ 音色、情感控制 | 无 |
| 语音 Agent | Voice Agent API(<800ms 端到端) | 无原生 Agent 层 | 需自行编排 STT+LLM+TTS | 无 |
| License/部署 | 托管 SaaS,按分钟计费,注册赠 $200 | 托管 SaaS,按分钟计费 | 云服务或容器部署 | Apache-2.0,可私有化 |
| 适合谁 | 实时语音 Agent、字幕、低延迟转写 | 批量化转写与内容理解 | 微软生态、企业合规 | 数据不出域、预算敏感团队 |
选型建议:做实时语音对话(Agent/客服/字幕)优先 Deepgram,低延迟与内置 Agent API 是最大差异;纯离线批量转写且需要摘要、标签等理解能力,AssemblyAI 更顺手;企业合规与微软生态场景选 Azure Speech;数据必须留在内网或预算极为敏感时,用 Whisper 自托管,但要自建标点、说话人分离等后处理链路。
版本迭代
Deepgram 的产品主线是“更快、更多语言、更全链路”。2022 年 Nova-2 确立了亚 300ms 低延迟与行业领先准确率,2023 年补齐多语言转写与 Aura 语音合成,2024 年推出 Voice Agent API 把语音 Agent 做成开箱产品,2025 年 Aura-2 与 Nova-3 分别升级 TTS 与 STT 的准确率、语言覆盖与速度。
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| Nova-2 | 2022-11 | STT 核心模型换代 | 官方称错误率较前代降 30%,流式尾字延迟 <300ms |
| Nova-2 多语言 | 2023-03 | 新增多语言支持 | 覆盖 en/es/fr/de/hi/ja/ko/pt/ru/zh 共 10 种语言 |
| Aura TTS | 2023-06 | 推出语音合成产品线 | 首批十余种音色,可调语速/音量/音高 |
| Voice Agent API | 2024-05 | 端到端语音 Agent 能力 | 封装 STT→LLM→TTS,voice-to-voice <800ms |
| Aura-2 | 2025-02 | TTS 模型升级 | 多语言音色扩充,自然度与稳定性提升 |
| Nova-3 | 2025-05 | STT 新一代旗舰模型 | 语言覆盖扩展至 40+,多语言准确率与抗噪提升,幻觉率下降 |
| 基准 | Nova-2 | Nova-3 | |
|---|---|---|---|
| 官方内部测试集 WER(%) | 8.4 | — | 同口径仅 Nova-2 发布时公布,Nova-3 未披露 |
| 同基准·Whisper large 对照(%) | 8.9 | — | Deepgram 官方发布时的对照数据 |
| 同基准·AssemblyAI 对照(%) | 10.1 | — | Deepgram 官方发布时的对照数据 |
版本主线的规律是“模型迭代 + 产品化并行”——Nova 系列解决“听得准、回得快”,Aura 解决“说得好”,Voice Agent API 则把两者与 LLM 封装成产品。选型时建议直接使用最新模型:批转写与流式默认选 nova-3,TTS 默认 aura-2 系列音色;若遇兼容性顾虑再回退 nova-2(多语言场景 Nova-2 需显式指定语言代码)。
AI 应用场景
场景 1:实时语音客服与销售外呼 Agent
阶段:Agent 编排 / 语音交互
解决的问题:传统 IVR 按键菜单路径长、用户挂断率高;自行串联 STT→LLM→TTS 往往端到端延迟超过 1.5 秒,体验不达标。Deepgram Voice Agent API 把三段链路封装成单条 WebSocket 会话,官方口径 voice-to-voice 延迟低于 800ms,同时支持热词加权(产品名、人名自定义),降低关键信息误听。
具体案例:某电商客服机器人用 Voice Agent 处理售后退款咨询,用户说完诉求后约 1 秒内得到回复,无需等待按键菜单;全程转写文本留痕用于质检与争议回溯。相比人工客服 3-5 分钟的响应周期,机器人首响时间缩短到秒级,可 24 小时不间断承接(效果按官方口径估算)。
场景 2:会议转写与智能纪要
阶段:RAG 管道构建 / 文档智能
解决的问题:人工整理 1 小时会议纪要通常要花 2-4 小时。用 Deepgram 批处理转写(diarize + smart_format + utterances)先拿到带说话人、带时间戳、标点规范的逐字稿,再交给大模型生成纪要与待办项,整个流程从“小时级”压缩到“分钟级”。
具体案例:某咨询团队每周 8 场会议,原来每人每场花约 1.5 小时整理纪要;接入 Deepgram 后,会后 10 分钟内得到结构化纪要初稿,人工只做校对。转写稿还可入库做语义搜索,解决“上次会议谁说了什么”查不到的问题。
场景 3:视频字幕与音视频内容检索
阶段:RAG 管道构建 / 文档智能
解决的问题:长视频/播客加字幕与做检索,手工听打成本极高。Deepgram REST 转写支持 mp3/wav/m4a 等常见格式,返回逐词时间戳,可直接生成 SRT 字幕;配合 keywords 热词保证节目专有名词的准确性。
具体案例:某播客制作方每期 1 小时节目,原来外包听打费用高、返稿要 1-2 天;改用 Deepgram 批转写后分钟级出稿,字幕生成与全文搜索同步上线,历史节目库全部完成结构化,站内搜索命中率明显提升。
常见误区
误区我听说 Deepgram 就是一家做语音转写的公司,我用它只是把音频变成文字,别的功能好像跟我没关系。
正解Deepgram 目前是“转写 + 合成 + 语音 Agent”三位一体:Aura TTS 可做多语言语音合成(含流式边合成边播);Voice Agent API 直接把转写、大模型对话、合成封装成一路接口。做语音客服、语音助手、实时字幕时,这 3 个能力往往需要组合使用,只盯着 STT 会错过最省事的方案。
为何常见:早期 Deepgram 的对外宣传几乎全部围绕 STT 准确率与延迟,Aura、Voice Agent 是后来才补齐的产品线,容易让人停留在旧印象。
误区官方说亚 300ms,那我们语音对话应用的总延迟应该也是 300ms 左右吧。
正解亚 300ms 指的是“用户说完最后一个字到服务端返回该句最终识别文本”这一段的尾字延迟(last-word latency)。完整链路还包括:语音采集、网络上行、服务端处理、LLM 生成、TTS 合成、网络下行与播放。Deepgram 官方口径 Voice Agent 的 voice-to-voice 端到端延迟是低于 800ms,这才是可对外宣称的体验指标。
为何常见:厂商通常拿最亮眼的单段指标宣传,而应用开发者更关心全链路体感,两者口径不一致导致误读。
误区我在网上找到的旧教程写 `client.listen.prerecorded(...)`,直接抄过来应该也能跑吧?
正解deepgram-sdk v3 全面重写了客户端 API:批量转写要写成 client.listen.prerecorded.v("1").transcribe_file(...),流式连接要写成 client.listen.live.v("1"),TTS 走 client.speak.v("1")。旧代码直接迁移大概率报错,升级前先读官方迁移指南,并按当前文档核对方法签名。
为何常见:SDK 大版本升级属于破坏性变更,旧教程与问答社区中的示例仍大量停留在 v2 写法,搜索时难以区分新旧。
误区直接调用默认参数,我中文音频识别出来一堆英文或者乱码,肯定是 Deepgram 效果不行。
正解不传 language 时默认按英文处理;中文等语言需显式 language=zh(Nova-3 支持 40+ 语言),且流式传输原始 PCM 时必须声明 encoding=linear16&sample_rate=16000&channels=1 等参数。格式与语言都匹配后,识别质量才有意义。
为何常见:开发者习惯了“开箱即用”的 API 直觉,忽略了语音领域强依赖采样率、编码、语种声明这些前置条件。
误区注册送了 $200 额度,随便跑测试就行,等快用完再管。
正解额度耗尽后会自动转为按量计费。大批量批处理任务(比如一次性离线转写数万分钟音频)可能在几小时内消耗完额度并产生账单。应在 Console 的 Usage/Alert 中提前设置预算告警,或为测试项目单独使用一把 Key 并限定用途。
为何常见:SaaS 按量计费模式下,免费额度会让人忽略“计费开关始终开启”这个事实,只有收到账单才意识到。
面试题
Q1. Deepgram 官方对外主打的流式转写延迟指标是多少?
- A.尾字延迟低于 300ms← 正确答案
- B.端到端延迟低于 300ms
- C.首包延迟低于 50ms
- D.全链路延迟低于 800ms
答案:A。官方口径是流式 STT 的尾字延迟(last-word latency)低于 300ms;D 的 800ms 是 Voice Agent 端到端(voice-to-voice)指标,两者口径不同。B 把单段指标误当成全链路,C 的 50ms 无此官方说法,故选 A。
Q2. 安装 Deepgram 官方 Python SDK 的正确命令是?
- A.pip install deepgram
- B.pip install deepgram-sdk← 正确答案
- C.pip install deepgram-api
- D.npm install @deepgram/sdk
答案:B。官方 Python 包名是 deepgram-sdk,对应 PyPI 上的同名项目。A、C 均为不存在的包名,D 是 Node.js 的安装命令,与题干"Python"不符,故选 B。
Q3. Deepgram API 的鉴权 HTTP 头写法是?
- A.Authorization: Bearer <key>
- B.Authorization: Token <key>← 正确答案
- C.Authorization: Basic <key>
- D.Authorization: Digest <key>
答案:B。Deepgram 统一使用 Authorization: Token <API_KEY>,与常见的 Bearer 不同。A 是 OpenAI 等厂商习惯,C、D 为其他认证机制,均不符合 Deepgram 文档,故选 B。
Q4. 要让转写结果自动带标点并把数字、日期规范化为可读格式,应开启哪个参数?
- A.punctuate—仅标点
- B.smart_format—全格式化← 正确答案
- C.numerals—数字处理
- D.utterances—话轮切分
答案:B。smart_format 是集成了标点、数字、日期、货币等规范化的“一键格式化”参数;punctuate 只加标点不含数字规范,numerals 只处理数字读法转写法,utterances 是话轮切分与格式化无关,故选 B。
Q5. 建立 Deepgram WebSocket 流式识别连接后,第一条消息应该是什么?
- A.直接发送音频字节开始识别
- B.先发送 Settings 消息完成鉴权← 正确答案
- C.发送 HTTP GET 请求建立会话
- D.发送空字符串等待服务端响应
答案:B。Deepgram 的 WSS 协议要求连接建立后先发送 {"type": "Settings", "authorization": "Token <key>"} 完成鉴权与参数确认,之后才能发送音频。直接发音频会导致连接被拒绝或返回鉴权错误,故选 B。
Q6. Deepgram 中用于一句话结束时快速返回最终结果的主要参数是?
- A.endpointing—断句阈值← 正确答案
- B.interim_results—中间结果
- C.diarize—说话人分离
- D.keywords—热词加权
答案:A。endpointing 指定静音多久判定一句话结束(如 300ms),触发最终结果返回并开启新一轮识别;interim_results 控制中间结果输出,diarize 是说话人分离,keywords 是热词加权,均与断句时机无关,故选 A。
Q7. 在 Deepgram Voice Agent API 中,控制大模型行为(供应商、系统提示词)的配置项是?
- A.persona—身份人设配置← 正确答案
- B.settings—音频参数配置
- C.profile—档案设置项
- D.context—上下文配置
答案:A。Voice Agent API 通过 persona 指定 LLM 供应商(如 OpenAI、Anthropic、Gemini)与系统提示词等行为;settings 用于音频参数,profile 与 context 不是官方配置入口,故选 A。
Q8. 以下哪些属于 Deepgram 对外提供的 API 能力?
- A.REST 批处理转写← 正确答案
- B.WebSocket 流式转写← 正确答案
- C.Aura 语音合成← 正确答案
- D.Whisper 模型微调训练
答案:ABC。Deepgram 提供 REST 批转写、WSS 流式转写与 Aura TTS;Whisper 是 OpenAI 的开源模型,Deepgram 不提供其微调训练服务,故选 ABC。
Q9. 关于 Deepgram Nova-3,以下说法正确的有哪些?
- A.是新一代 STT 旗舰模型← 正确答案
- B.语言覆盖较 Nova-2 大幅扩展← 正确答案
- C.仅支持英文单一语种识别
- D.多语言准确率与抗噪能力提升← 正确答案
答案:ABD。Nova-3 于 2025-05 发布,是新一代旗舰 STT 模型,语言覆盖扩展至 40+,官方宣传强调多语言准确率、抗噪与低幻觉改进;C 与多语言覆盖矛盾,故选 ABD。
Q10. 生产环境中安全、正确地使用 Deepgram 的做法有哪些?
- A.把 Key 放前端 JS 直连调用
- B.由后端持有 Key 并代理转发← 正确答案
- C.对 429 限流响应做指数退避← 正确答案
- D.在 Console 设置用量告警← 正确答案
答案:BCD。生产实践要求 Key 只存在于服务端、对限流做退避重试、设置用量告警防止超支;前端直连会泄露 Key 且受 CORS 限制,故选 BCD。
参考来源
- webpageDeepgram 官网产品总览、定价与客户案例