Files
openclaw-openclaw/docs/providers/deepgram.md
Peter Steinberger f7d7148cf0 docs: rewrite published docs grounded in current source (#100142)
Source-grounded rewrite of 529 published docs pages with per-unit information-loss verification: 1,713 factual corrections cited to src/**, generated surfaces regenerated, frontmatter titles preserved for i18n, release notes pages untouched. All docs gates green.

Closes #100141
2026-07-05 00:32:47 -04:00

6.1 KiB

summary, read_when, title
summary read_when title
Deepgram transcription for inbound voice notes
You want Deepgram speech-to-text for audio attachments
You want Deepgram streaming transcription for Voice Call
You need a quick Deepgram config example
Deepgram

Deepgram is a speech-to-text API. OpenClaw uses it for inbound audio/voice-note transcription through tools.media.audio and for Voice Call streaming STT through plugins.entries.voice-call.config.streaming.

Batch transcription uploads the complete audio file to Deepgram and injects the transcript into the reply pipeline ({{Transcript}} + [Audio] block). Voice Call streaming forwards live G.711 u-law frames over Deepgram's WebSocket listen endpoint and emits partial/final transcripts as Deepgram returns them.

Detail Value
Website deepgram.com
Docs developers.deepgram.com
Auth DEEPGRAM_API_KEY
Default model nova-3

Getting started

```bash DEEPGRAM_API_KEY=dg_... ``` ```json5 { tools: { media: { audio: { enabled: true, models: [{ provider: "deepgram", model: "nova-3" }], }, }, }, } ``` Send an audio message through any connected channel. OpenClaw transcribes it via Deepgram and injects the transcript into the reply pipeline.

Configuration options

Option Path Description
model tools.media.audio.models[].model Deepgram model id (default: nova-3)
language tools.media.audio.models[].language Language hint (optional)

providerOptions.deepgram merges extra query params directly into the Deepgram /listen request, so any Deepgram-supported param name works (for example detect_language, punctuate, smart_format):

```json5 { tools: { media: { audio: { enabled: true, models: [{ provider: "deepgram", model: "nova-3", language: "en" }], }, }, }, } ``` ```json5 { tools: { media: { audio: { enabled: true, providerOptions: { deepgram: { detect_language: true, punctuate: true, smart_format: true, }, }, models: [{ provider: "deepgram", model: "nova-3" }], }, }, }, } ```

Voice Call streaming STT

The bundled deepgram plugin also registers a realtime transcription provider for the Voice Call plugin.

Setting Config path Default
API key plugins.entries.voice-call.config.streaming.providers.deepgram.apiKey Falls back to DEEPGRAM_API_KEY
Model ...deepgram.model nova-3
Language ...deepgram.language (unset)
Encoding ...deepgram.encoding mulaw
Sample rate ...deepgram.sampleRate 8000
Endpointing ...deepgram.endpointingMs 800
Interim results ...deepgram.interimResults true
{
  plugins: {
    entries: {
      "voice-call": {
        config: {
          streaming: {
            enabled: true,
            provider: "deepgram",
            providers: {
              deepgram: {
                apiKey: "${DEEPGRAM_API_KEY}",
                model: "nova-3",
                endpointingMs: 800,
                language: "en-US",
              },
            },
          },
        },
      },
    },
  },
}
Voice Call receives telephony audio as 8 kHz G.711 u-law. The Deepgram streaming provider defaults to `encoding: "mulaw"` and `sampleRate: 8000`, so Twilio media frames can be forwarded directly.

Notes

Authentication follows the standard provider auth order. `DEEPGRAM_API_KEY` is the simplest path. Override endpoints or headers with `tools.media.audio.baseUrl` and `tools.media.audio.headers` when using a proxy. Output follows the same audio rules as other providers (size caps, timeouts, transcript injection). Audio, image, and video processing pipeline overview. Full config reference including media tool settings. Common issues and debugging steps. Frequently asked questions about OpenClaw setup.