docs/providers/deepgram.md
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 |
| 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):
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",
},
},
},
},
},
},
},
}