mcpField
A
api

api

github.com/deepgram开发26456 次安装4 周前更新
代码仓库

关于 api

面向开发者的 Deepgram 语音与音频 API 参考技能,涵盖转写、语音合成、语音 Agent 和音频智能接口,并说明名称相近的 Flux 产品之间的区别。

主要功能

  1. 01Nova 与 Flux STT 接口指南
  2. 02Aura 与 Flux TTS 接口指南
  3. 03Voice Agent API 参考
  4. 04区域端点与主机说明
  5. 05认证与 API 域名信息

适用场景

  1. 01为录制媒体或实时音频选择转写接口
  2. 02构建对话式语音 Agent 流程
  3. 03为流式或批量音频选择语音合成方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/deepgram/skills --skill api

安装后在 Claude Code 中输入/api确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
agent.md
auth.md
listen.md
models.md
projects.md
read.md
self-hosted.md
speak.md

详细介绍

Deepgram API

使用 Deepgram 的语音转文本、文本转语音、语音 Agent 和音频智能 API 进行构建。

**“Flux” 指两个独立的产品。**Flux STT 是 /v2/listen 上的对话式语音转文本(model=flux-general-en)。Flux TTS 是 /v2/speak 上的轮次式语音合成(model=flux-{voice}-{language})。它们共用一个名称和一种设计理念——感知轮次、为语音 Agent 打造——但它们是不同的端点,具有不同的模型、参数和消息。当请求只说 “Flux” 时,请确认它是关于转写音频还是生成音频。

快速开始

所有 API 请求都需要通过 API key 或 JWT 进行认证:

  • API Key:Authorization: Token <API_KEY>
  • JWT:Authorization: Bearer <JWT>

基础服务器:

  • REST 与 STT/TTS WebSocket:https://api.deepgram.com
  • Voice Agent WebSocket 以及 GET /v1/agent/settings/think/models:https://agent.deepgram.com

GET /v1/agent/settings/think/models 也位于 agent. 主机上,而不是 api.:它在 api.deepgram.com 上返回 404,在 agent.deepgram.com 上返回 200。其他所有 REST 都留在 api.deepgram.com 上。

区域端点

要将处理保留在某个地理区域内,请替换主机。相同的 API key、相同的路径、相同的 SDK——只有基础 URL 改变。请求绝不会被路由到区域之外:如果该区域不可用,请求会失败而不会回退。

区域主机
EUapi.eu.deepgram.com
澳大利亚api.au.deepgram.com
印度api.in.deepgram.com

**数据平面是区域性的;Projects 管理 API 不是。**在所有三个区域主机上:

端点是否区域化
POST /v1/listen、wss://…/v1/listen是
wss://…/v2/listen是
POST /v1/speak、wss://…/v1/speak是
POST /v2/speak、wss://…/v2/speak是
POST /v1/read是
wss://…/v1/agent/converse是
GET /v1/models是
POST /v1/auth/grant是
/v1/projects/*(keys、members、usage、billing)否——404

两条容易让人踩坑的主机规则:

  1. **Voice Agent 在区域上迁移到 api. 主机。**不存在 agent.eu.deepgram.com(该名称无法解析)。请使用 wss://api.eu.deepgram.com/v1/agent/converse。GET /v1/agent/settings/think/models 也随之迁移。在全球范围内它仍留在 agent.deepgram.com 上。
  2. **将管理调用保留在 api.deepgram.com 上。**把某个客户端的管理调用指向区域主机,/v1/projects 会返回 404,因此如果你的应用既做转写又管理 key,请按调用类型拆分基础 URL。

Whisper 模型在这三个区域中的任何一个都不提供服务——请在那里使用 Nova 或 Flux STT 模型。

关于 Deepgram Dedicated 和可自托管主机,请参阅 自定义端点; 关于完整的按区域功能矩阵和 SDK 代码片段,请参阅 区域端点。

Deepgram 的 API 如何协同工作

                   ┌──────────────────────────────┐
                   │       api.deepgram.com        │
                   └──────────────────────────────┘
                                │
  ┌───────────┬───────────┬─────┴─────┬───────────┬───────────┐
  ▼           ▼           ▼           ▼           ▼           ▼
  /v1/listen  /v2/listen  /v1/speak   /v2/speak   /v1/read    /v1/projects/*
  Nova — STT  Flux — STT  Aura — TTS  Flux — TTS  Text AI     Management
  REST + WSS  WSS only    REST + WSS  REST + WSS  REST only   REST only

                   ┌──────────────────────────────┐
                   │      agent.deepgram.com       │
                   └──────────────────────────────┘
                                │
                                ▼
                   /v1/agent/converse
                   WebSocket only
                   audio ──▶ STT ──▶ LLM ──▶ TTS ──▶ audio
                   (Deepgram orchestrates the full pipeline)

我应该使用哪个 API?

Audio → text (transcription)?
├─ General-purpose transcription (captions, batch, call logs, live streams with custom turn logic)
│  └─ Nova models via /v1/listen
│     ├─ Pre-recorded file    →  REST  POST https://api.deepgram.com/v1/listen?model=nova-3
│     └─ Live stream          →  WSS   wss://api.deepgram.com/v1/listen?model=nova-3
│
└─ Conversational audio / voice-agent-style turn detection
   └─ Flux STT models via /v2/listen
      └─ Live stream          →  WSS   wss://api.deepgram.com/v2/listen?model=flux-general-en

Text → audio (speech synthesis)?
├─ General-purpose TTS (broadest voice catalog, compressed/containerized audio)
│  └─ Aura models via /v1/speak
│     ├─ One-shot             →  REST  POST https://api.deepgram.com/v1/speak?model=aura-2-thalia-en
│     └─ Low-latency stream   →  WSS   wss://api.deepgram.com/v1/speak?model=aura-2-thalia-en
│
└─ Voice-agent TTS (turn-based lifecycle, barge-in, cross-turn consistency)
   └─ Flux TTS models via /v2/speak  — model is REQUIRED, and must be flux-*
      ├─ Pre-render a block   →  REST  POST https://api.deepgram.com/v2/speak?model=flux-alexis-en
      └─ Live conversation    →  WSS   wss://api.deepgram.com/v2/speak?model=flux-alexis-en

Full conversational voice agent (audio in, audio out)?
└─ WSS wss://agent.deepgram.com/v1/agent/converse
   Deepgram handles STT + your configured LLM + TTS internally

Analyze text for insights?
└─ REST POST /v1/read
   (summaries, sentiment, topics, intents)

语音转文本:Nova(/v1/listen)与 Flux STT(/v2/listen)

两个模型系列都在积极维护,且处于行业领先地位。它们解决的是不同的问题——请选择与你的用例相匹配的那个。

Nova(/v1/listen)Flux STT(/v2/listen)
端点/v1/listen/v2/listen
可用模型nova-3(还有 nova-3-medical、nova-3-pharma)、nova-2、nova、enhanced、baseflux-general-en、flux-general-multi
最适合通用转写——字幕、说明文字、通话记录、批处理对话音频——语音 Agent、交互式助手、轮次交替 UI
输出连续的转写流结构化的轮次事件 + 转写(内置轮次状态机)
轮次检测手动(utterance_end_ms、VAD 事件)内置(EOT、eager-EOT、turn_index)
传输方式REST + WebSocket仅 WebSocket
智能叠加功能支持——summarize、sentiment、topics、intents、diarize_model、redact 等不支持——参数集更小、更聚焦;没有 smart_format / diarize_model / punctuate
会话中途重新配置不支持(需重新连接才能更改)支持(Configure 消息可实时更新 EOT 阈值、关键词、语言提示和 numerals)

在以下情况选择 Nova(/v1/listen、model=nova-3):

  • 为录制的媒体生成字幕、说明文字或转写
  • 对文件进行批处理转写(REST)
  • 你需要分析叠加功能(summarize、sentiment、topics、intents、diarize_model、redact)
  • 你希望使用 WebSocket 流式传输并搭配自己的轮次检测逻辑

在以下情况选择 Flux STT(/v2/listen、model=flux-general-en):

  • 构建交互式语音 Agent 或助手
  • 你希望结束轮次检测由系统自动处理
  • 你需要低延迟的轮次信号和打断(barge-in)支持
  • 你希望在不重新连接的情况下,在会话中途更新 EOT 阈值、关键词、语言提示或 numerals

正在从 Nova 3 迁移到 Flux STT?请参阅官方 Nova 3 → Flux 迁移指南。

文本转语音:Aura(/v1/speak)与 Flux TTS(/v2/speak)

两个 TTS 系列均在积极维护中。/v2/speak 是一个新端点,而非替代品 —— /v1/speak 保持不变,不存在别名、重定向或弃用。这两个系列互不重叠:Aura 语音仅在 /v1/speak 上提供,Flux TTS 语音仅在 /v2/speak 上提供。

Aura(/v1/speak)Flux TTS(/v2/speak)
端点/v1/speak/v2/speak
模型aura-2-*(en、es、de、nl、fr、it、ja)、aura-*flux-{voice}-{language},例如 flux-alexis-en —— 发布时仅支持英语
model 参数可选(默认为 aura-asteria-en)必填;传入 aura-* 字符串会被拒绝
最适用于最广泛的语音目录、多语言、压缩音频、一次性合成语音 Agent —— 流式 LLM 输出、打断、多轮对话
心智模型文本缓冲区 → 音频流流式优先、基于轮次的对话
轮次生命周期无每轮:SpeechStarted → 音频 → Flushed → SpeechMetadata(服务端分配的 speech_id)
跨轮次上下文无(重新连接即重置)韵律自动跨轮次保持 —— 无需 API 交互
传输方式REST + WebSocketREST(批处理)+ WebSocket(流式)
流式编码linear16、mulaw、alawlinear16、mulaw、alaw —— 仅原始音频
批处理编码mp3、opus、flac、aac、linear16、mulaw、alaw + container / bit_rate相同 —— 但仅限批处理;WebSocket 会拒绝这些编码
中断Clear 丢弃缓冲区,无反馈Interrupt → SpeechInterrupted,附带 text_spoken / text_remaining
流中途重新配置否(连接时固定)是 —— Configure 仅更新 speed
speed0.7 至 1.5,仅 Aura-2、英语和西班牙语0.5 至 1.5,以 0.05 为步长;当文本带有停顿标记时上限为 1.15(超过则报 PAUSE_SPEED_CAP_EXCEEDED);发音规则见内联控制
expressivity不支持-2…2,默认 0(beta;连接期间固定)
内联控制发音 \{"word":"...","pronounce":"<IPA>"\}(Aura-2 正式可用,英语和西班牙语,输入最多 2000 个字符,可与 speed 组合使用);无停顿控制发音(抢先体验,两种传输方式均支持)仅在 speed 恰好为 1.0 时可用:批处理报 CONTROL_COMBINATION_INVALID,WebSocket 报 DATA-0002;停顿 \{pause:500ms\} 仅限批处理,500 至 3000 ms,以 100 ms 为步长,每个请求最多 8 个
Voice Agent provider.versionv1(指定提供方时的默认值)v2(必填)

在以下情况选择 Aura(/v1/speak):

  • 你需要英语之外的语言,或特定的 Aura 语音
  • 你需要在 Voice Agent 中使用压缩输出(mp3、opus、flac、aac),而 Flux TTS 会返回 INVALID_SETTINGS;在批处理 REST 上,两个系列均支持这些编码
  • 你已经在使用 Aura,且 Flux TTS 中没有任何功能吸引你迁移 —— v1 保持不变

在以下情况选择 Flux TTS(/v2/speak):

  • 构建语音 Agent、电话助手或客服机器人
  • 你正在将 LLM token 实时流式传输到扬声器,并希望获得最低的首音频延迟
  • 用户可能在响应中途打断,而你需要知道他们实际听到了什么
  • 你希望语气跨轮次保持,而无需自行管理状态
  • 你正在使用 Flux TTS 语音预渲染固定音频(IVR 提示词、通知)—— 请使用批处理 REST 传输

正在从 Aura 迁移?请参阅官方从 Aura 迁移到 Flux TTS指南和批处理与流式。

API 域

域RESTWebSocket参考
Listen v1 — STT,Nova 模型POST /v1/listenwss://api.deepgram.com/v1/listenlisten.md
Listen v2 — STT,Flux STT(对话式)—wss://api.deepgram.com/v2/listenlisten.md
Speak v1 — TTS,Aura 模型POST /v1/speakwss://api.deepgram.com/v1/speakspeak.md
Speak v2 — TTS,Flux TTS(轮次式)POST /v2/speakwss://api.deepgram.com/v2/speakspeak.md
Voice AgentGET agent.deepgram.com/v1/agent/settings/think/models;可复用的 agent 配置位于 /v1/projects/{project_id}/agents(GET、POST)和 /v1/projects/{project_id}/agents/{agent_id}(GET、PUT、DELETE);agent 变量位于 /v1/projects/{project_id}/agent-variables(GET、POST)和 /v1/projects/{project_id}/agent-variables/{variable_id}(GET、PATCH、DELETE)wss://agent.deepgram.com/v1/agent/converseagent.md
Read(Intelligence)POST /v1/read—read.md
ModelsGET /v1/models、GET /v1/models/{model_id}、GET /v1/projects/{project_id}/models、GET /v1/projects/{project_id}/models/{model_id};在任一列表调用中加上 include_outdated=true 还会返回非最新版本的模型无models.md
Projects/v1/projects/*—projects.md
AuthPOST /v1/auth/grant—auth.md
Self-Hosted/v1/projects/*/self-hosted/*—self-hosted.md

常见错误及避免方法

所有 API
  1. 功能开关是查询参数,但 Voice Agent 和 v2 的会话中途更新除外。 对于 /v1/listen、/v2/listen、/v1/speak 和 /v2/speak,初始选项放在 URL 上。对于 Listen,请求体携带音频(REST)或音频帧(WebSocket);对于 Speak,请求体携带文本(REST JSON 的 text 字段或 WebSocket 的 Speak 消息)。例外情况:/v1/agent/converse 完全没有 URL 查询参数(所有配置都放在 Settings 消息中);/v2/listen 支持在连接后发送 Configure 消息,以便在会话中途更新 EOT 阈值、关键词、语言提示和 numerals;/v2/speak 支持发送 Configure 消息,仅更新 speed。另请注意,/v2/listen 的参数集比 /v1/listen 小得多:smart_format、diarize_model 和 punctuate 等开关不可用。

  2. 速率限制是并发连接数,而不是总请求数。 429 意味着同时打开的连接过多,而不是请求量过高。说话人分离和其他计算密集型功能会进一步减少你的并发配额。限制按项目应用,而不是按 API key 应用,并且因区域而异;API Rate Limits 页面提供了各区域的并发数表格。

STT WebSocket (/v1/listen)
  1. 以文本帧而非二进制帧发送 KeepAlive。 连接在 10 秒无音频后关闭。静默期间每 3–5 秒以文本(JSON)帧发送 {"type":"KeepAlive"}。以二进制帧发送会导致转写延迟——音频管道会阻塞——而不是静默无操作。

  2. 绝不要发送空字节负载。 向 /v1/listen 发送零长度二进制帧会被视为关闭——它会终止连接。发送前务必检查音频包是否有长度。

  3. encoding 必须与实际音频格式匹配。 如果 encoding=linear16 但你发送的是 opus,你会得到 DATA-0000 错误或乱码输出。发送容器化格式(mp3、wav、ogg)时完全省略 encoding——Deepgram 会自动检测它们。

  4. 重连时时间戳会重置。 每个新的 WebSocket 连接都会将时间戳重新从 00:00:00 开始。对于实时应用,请在重连之间维护时间戳偏移,否则你会悄无声息地破坏转写时间线。

TTS WebSocket (/v1/speak)
  1. 不要发送空文本。 text 字段为空的 Speak 消息会返回 400 错误。发送前务必验证输入。

  2. 字符速率限制(DATA-0001)意味着放慢速度,而不是重试。 如果你遇到此问题,请降低提交文本块的速度——不要立即重试,否则会使问题加剧。

Flux TTS(/v2/speak)
  1. model 为必填项,且必须是 flux-* 音色。 与 /v1/speak 不同,这里没有默认值——不带 model 的连接或请求会被拒绝。Aura 字符串在 /v2/speak 上会被拒绝,而 Flux 音色不由 /v1/speak 提供;这两个系列从不混用。模型字符串格式为 flux-{voice}-{language},例如 flux-alexis-en。没有版本段——各代模型在稳定的名称背后滚动更新,与 Flux STT 相同。

  2. Flush 结束本轮对话——它不是 v1 风格的缓冲区刷新。 没有 Finalize;它已并入 Flush。音频会在你 flush 之前自行开始流式传输,所以不要等着才发送文本。请使用本轮的 SpeechMetadata(而非 Flushed)作为轮次结束信号——它在轮次的所有音频发送完毕后到达,并携带计费和计时计数,因此你可以省去客户端的字符数或时长跟踪。服务器会分配本轮的 speech_id;切勿自行发送。

  3. 流式传输仅支持原始音频,并会拒绝任何它无法识别的参数。 WebSocket 发出的是非容器化音频,因此 encoding 仅限于 linear16(默认)、mulaw 或 alaw。压缩和容器化编码(mp3、opus、flac、aac)以及 container、bit_rate、callback、callback_method 和 priority 参数仅限批处理——将它们发送到 socket 会导致连接失败,任何未知或拼写错误的参数也是如此。需要压缩输出时,请使用批处理 REST 传输。

  4. 在两次独立生成之间插入空白,因为服务器不会这么做。 文本规范化在合成前运行,但连续的 Speak 消息会按原样拼接。先发送 "Hello world." 再发送 "How are you?" 会被处理为 "Hello world.How are you?",从而产生句子边界伪影。当你把一条回复、一个工具调用结果和另一条回复拼接在一起时,请添加一个空格(或非空白语言对应的正确分隔符)。请发送纯文本:SSML 不会被解释,Flux TTS 唯一支持的标记是其自有的转义内联控制。发音覆盖 \{"word":"...","pronounce":"<IPA>"\} 在两种传输上均受支持(Early Access),但仅在 speed 为 1.0 时有效,而暂停标记 \{pause:500ms\} 仅限批处理。在 socket 上使用暂停标记,或在 speed 不为 1.0 的 socket 上使用发音控制,会导致连接失败并返回 DATA-0002。在批处理 POST /v2/speak 上,同样的违规行为会返回 400,其 err_code 会指明所违反的规则:CONTROL_COMBINATION_INVALID(发音与暂停同时使用,或与不为 1.0 的 speed 同时使用)、PAUSE_SPEED_CAP_EXCEEDED(暂停标记与高于 1.15 的 speed 同时使用)、BREAK_OUT_OF_RANGE(暂停超出 500 至 3000 ms)、BREAK_INCREMENT_INVALID(暂停未落在 100 ms 的网格上)、BREAKS_LIMIT_EXCEEDED(超过 8 个暂停标记,或两个暂停标记之间没有文本),以及 BREAK_SYNTAX_INVALID(标记格式错误,例如不带反斜杠的简单标记或转义的结构化标记)。恰好为 1.0 的 speed 从不算作速度控制,因此不会触发上述任何一项。参见 Speed, Pause, Pronunciation。

Voice Agent (/v1/agent/converse)
  1. 在任何音频之前先发送 Settings 消息。 Agent 在收到并确认 Settings 配置之前会忽略一切内容。消息顺序是严格要求的。

  2. agent.speak.provider.version 选择 TTS 系列——而省略 agent.speak 现在会让你得到 Flux TTS。 将 version 设为 v2 使用 Flux TTS,或设为 v1 使用 Aura;当你指定了 provider 但省略 version 时,它默认为 v1。但如果你完全省略 agent.speak,Agent 会默认使用 Flux TTS 及 flux-kit-en 语音。要切换系列,需同时更改 version 和 model——v1 下使用 flux-* 模型,或 v2 下使用 aura-* 模型,都是无效的:

    { "agent": { "speak": { "provider": { "type": "deepgram", "version": "v2", "model": "flux-alexis-en" } } } }
    
  3. GET /v1/agent/settings/think/models 位于 agent.deepgram.com,而不是 api.deepgram.com。 GET /v1/agent/settings/think/models,即你可以在 agent.think.provider 中指定的 LLM 列表,在 api.deepgram.com 上返回 404,在 agent.deepgram.com 上返回 200。相同的密钥,相同的路径;只有主机不同,因此一个硬编码了单一 base URL 的客户端会静默地收到 404,看起来像是缺少某个功能。三个区域性的 api.* 主机也提供该接口。

Flux STT 模型 (/v2/listen)
  1. 使用 /v2/listen 和 flux-general-* 模型。 提供两个模型:flux-general-en(英语)和 flux-general-multi(多语言,也是唯一接受 language_hint / language_hints 的模型)。/v1/listen 不支持 Flux STT,且仅 model=flux 不是有效值。对于容器化音频,不要包含 language 或 encoding 参数。

  2. 使用 Configure 在会话中途更新 EOT 阈值、关键术语、语言提示和 numerals。 与 /v1/listen 不同,Flux STT 支持连接后进行实时重新配置,因此无需重新连接即可更改轮次检测灵敏度、添加新的关键术语、重新偏置语言检测(仅 language_hints、flux-general-multi),或为 PIN 码或订单号开启 numerals:

    { "type": "Configure", "thresholds": { "eot_threshold": 0.8, "eot_timeout_ms": 3000 }, "keyterms": ["Deepgram"] }
    

    服务器会以 ConfigureSuccess 响应,它会回显完整的活动配置(包括 numerals),而不仅仅是你发送的字段;或者以 ConfigureFailure 响应,其中携带 code 和 description 来标识被拒绝的配置。省略的阈值字段保持其当前值。

  3. 在轮次之外调用 ForceEndTurn 是一个 Warning,而不是错误,且套接字保持打开。 在没有进行中的轮次时发送 {"type":"ForceEndTurn"} 会返回 {"type":"Warning","code":"FORCE_END_TURN_NO_ACTIVE_TURN","description":"Received ForceEndTurn while no turn was active; the request was ignored."},连接会继续。不要将其视为致命错误或重新连接。references/listen.md 展示了消息结构(ListenV2Warning:code、description、request_id、sequence_id);其中的 code 是自由字符串,因此像 FORCE_END_TURN_NO_ACTIVE_TURN 这样的各个代码来自 Force End Turn 文档。当 ForceEndTurn 确实在轮次中途生效时,产生的 TurnInfo 会带有 event: "EndOfTurn" 及 trigger: "manual"。trigger 为 model | manual | timeout,它出现在 EndOfTurn 上而不出现在其他任何地方,并且它是一个开放枚举,因此要容忍你不认识的值。

Nova 说话人分离(/v1/listen)
  1. 使用 diarize_model,切勿将其与 diarize 一同发送。 diarize 已弃用。diarize_model 既可启用说话人分离,又能选择版本,因此无需再传 diarize=true——同时发送两者会导致请求失败:400 "diarize_model cannot be used together with diarize or diarize_version."。批处理场景的取值为 latest、v1 和 v2(latest 当前即 v2),流式场景的取值为 latest 或 v1。启用说话人分离后,metadata.diarize_info 会报告实际运行的是哪个模型({"model_uuid": …, "arch": "v2"}),这是判断 latest 解析结果的唯一方式。
文本与音频智能(/v1/read、/v1/listen)
  1. /v1/read 上 language 为必填项,且会先于其他所有内容进行校验。 没有默认值:省略它会返回 400 INVALID_QUERY_PARAMETER,消息为 "Failed to deserialize query parameters: missing field language",这会掩盖请求中的所有其他问题。仅支持英语:language=multi 会被拒绝,en-US 会被接受但回显为 en。还有两种 /v1/read 的形态值得了解:JSON 正文需传入 text 或 url 中的恰好一个(两者都传或都不传会给出 PAYLOAD_ERROR,且 url 必须指向纯文本文档,因为音频会给出 REMOTE_CONTENT_ERROR),并且它仅支持 POST(GET 和 WebSocket 升级均返回 405)。/v1/read 上的 summarize 除 true 外还接受 v2。结果路径因端点而异:/v1/read 返回 results.summary.text,/v1/listen 返回 results.summary.short,因此同时处理两者的代码必须分支处理。(sentiment 在两个端点上均映射到 results.sentiments。)

  2. 在 Nova 流式套接字上,只有 detect_entities 可用——另外四项以三种不同方式失败。 支持 detect_entities=true,它会把 entities 放在每条 Results 消息的顶层,与 channel 并列,而不是放在 channel.alternatives[0] 内。另外四项仅适用于预录音频:summarize 会在握手阶段失败并返回 400 "Summarization is not available for streaming.";topics 和 intents 会在握手阶段失败并返回 403 UNAUTHORIZED_FEATURES_REQUESTED,这看起来像是密钥权限问题,即便同一密钥的预录音频 topics/intents 调用返回 200;sentiment 则是陷阱——握手成功,从不发送错误,但结果中根本不会出现 sentiment。

身份验证
  1. JWT TTL 仅适用于初始握手。 Token 默认 30 秒。一旦 WebSocket 连接建立,Token 过期不会关闭连接——Token 仅在升级请求时需要。

SDK 专属技能

本 api 技能涵盖各 SDK 完全一致的产品契约(端点、查询参数、消息结构)。如需符合语言习惯的代码——导入、异步模式、构建器 API、常见错误——请安装 SDK 专属技能。每个 Deepgram SDK 都会发布 7 个产品技能,命名为 deepgram-{lang}-{product}(例如 deepgram-python-speech-to-text、deepgram-js-voice-agent)。当你安装来自多个 SDK 的技能时,deepgram-{lang}- 前缀可避免冲突。

# Install all skills from a specific SDK
npx skills add deepgram/deepgram-python-sdk     # Python
npx skills add deepgram/deepgram-js-sdk         # JavaScript / TypeScript
npx skills add deepgram/deepgram-java-sdk       # Java
npx skills add deepgram/deepgram-go-sdk         # Go
npx skills add deepgram/deepgram-rust-sdk       # Rust
npx skills add deepgram/deepgram-dotnet-sdk     # C# / .NET

# Or install a specific product skill from one SDK (note the deepgram-{lang}- prefix)
npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-speech-to-text
npx skills add deepgram/deepgram-js-sdk     --skill deepgram-js-voice-agent

Swift 和 Kotlin SDK 技能未列出,因为这些仓库不公开,npx skills add 无法访问。如需浏览器相关工作,请打开 browser-agent 技能:它涵盖 npm 上发布的四个 Browser Agent SDK 包(@deepgram/agents、@deepgram/react、@deepgram/ui、@deepgram/agents-widget)。

相关 Deepgram 技能

技能用途
recipes每种语言每个功能的最小可运行代码片段
examples与第三方平台(Twilio、LiveKit 等)的完整集成示例
starters可运行的入门应用(框架 × 功能矩阵)
docs浏览 Deepgram 文档
audio-intelligence/v1/listen 上的 summarize、sentiment、topics、intents 和 detect_entities 参数
text-intelligence用于处理已有文本的 POST /v1/read
browser-agent用于在浏览器中运行 Agent 的 Browser Agent SDK 包
cli用于 shell 和 CI 工作的 deepctl
self-hosted在你自己的 GPU 上运行 Deepgram
setup-mcp安装 Deepgram MCP 服务

文档

评论

支持 Markdown