Summary
Add Deepgram Aura TTS as a first-class provider alongside OpenAI, ElevenLabs, and Edge TTS. Deepgram offers competitive pricing and low-latency speech synthesis via their Aura-2 voice models.
Motivation
- Deepgram is already used for STT (
runtime.stt.transcribeAudioFile), so users may already have API keys
- Aura-2 voices are high quality at lower cost than OpenAI/ElevenLabs
- Deepgram natively supports PCM output ideal for telephony (voice-call plugin)
- Community requests for more TTS provider options
Scope
Full parity with existing providers across all surfaces:
- Config:
messages.tts.deepgram block with apiKey, baseUrl, model
- Runtime:
deepgramTTS() function with Token auth, auto-selection cascade (openai > elevenlabs > deepgram > edge)
- Output formats: MP3 (default), Opus (Telegram), linear16 PCM (telephony)
- Commands:
/tts provider deepgram, /tts status shows Deepgram key status
- Gateway RPC:
tts.status, tts.setProvider, tts.providers include Deepgram
- Model directives:
[[tts:deepgram_model=...]] override support
- SecretRef: 3 credential paths for
secrets configure/secrets apply
- Docs: TTS guide, config reference, voice-call plugin, plugin docs
API details
- Endpoint:
POST {baseUrl}/v1/speak?model={model}&encoding={format}
- Auth:
Authorization: Token {apiKey} (NOT Bearer)
- Body:
{"text": "..."}
- Default model:
aura-2-thalia-en
- Env fallback:
DEEPGRAM_API_KEY
Summary
Add Deepgram Aura TTS as a first-class provider alongside OpenAI, ElevenLabs, and Edge TTS. Deepgram offers competitive pricing and low-latency speech synthesis via their Aura-2 voice models.
Motivation
runtime.stt.transcribeAudioFile), so users may already have API keysScope
Full parity with existing providers across all surfaces:
messages.tts.deepgramblock withapiKey,baseUrl,modeldeepgramTTS()function with Token auth, auto-selection cascade (openai > elevenlabs > deepgram > edge)/tts provider deepgram,/tts statusshows Deepgram key statustts.status,tts.setProvider,tts.providersinclude Deepgram[[tts:deepgram_model=...]]override supportsecrets configure/secrets applyAPI details
POST {baseUrl}/v1/speak?model={model}&encoding={format}Authorization: Token {apiKey}(NOT Bearer){"text": "..."}aura-2-thalia-enDEEPGRAM_API_KEY