Skills deepgram-discord-voice
Voice-channel conversations in Discord using Deepgram streaming STT + low-latency TTS
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adriel1006/discord-voice-deepgram" ~/.claude/skills/clawdbot-skills-deepgram-discord-voice && rm -rf "$T"
manifest:
skills/adriel1006/discord-voice-deepgram/SKILL.mdsource content
Deepgram Discord Voice (Clawdbot/OpenClaw Plugin)
This plugin lets you talk to your agent only from a Discord voice channel.
Pipeline (low latency):
- Discord voice audio → Deepgram streaming STT (WebSocket)
- Transcript → your agent
- Agent reply → Deepgram TTS (
streamed HTTP Ogg/Opus)/v1/speak - Audio played back into the voice channel
Requirements
- A Discord bot token (
)DISCORD_TOKEN - A Deepgram API key (
)DEEPGRAM_API_KEY - Discord bot permissions in your server:
- Connect
- Speak
- Use Voice Activity
Install
Option A: Install from ClawHub
- In your OpenClaw/Clawdbot dashboard, open Skills/Plugins.
- Add/install deepgram-discord-voice.
- Set the required environment variables.
Option B: Manual install
- Copy this folder into your extensions/plugins directory.
- Run:
npm install
- Restart OpenClaw/Clawdbot.
Configuration
Key settings
-
(recommended): Who the bot listens to by default.primaryUser- Best: your Discord user ID (numeric)
- Also supported: username/display name (e.g.,
) if unique in-channelatechy
-
: IfallowVoiceSwitch
, the primary user can switch who is allowed by voice.true -
: Prefix for voice control commands. Default:wakeWord
.openclaw -
: Defaultdeepgram.sttModel
.nova-2 -
: Optional BCP‑47 language tag (e.g.,deepgram.language
,en-US
,es
).es-EC -
: Deepgram Aura voice model (e.g.,ttsVoice
).aura-2-thalia-en
Example config
{ "plugins": { "entries": { "deepgram-discord-voice": { "enabled": true, "config": { "streamingSTT": true, "streamingTTS": true, "primaryUser": "atechy", "allowVoiceSwitch": true, "wakeWord": "openclaw", "ttsVoice": "aura-2-thalia-en", "vadSensitivity": "medium", "bargeIn": true, "deepgram": { "sttModel": "nova-2", "language": "en-US" } } } } } }
Usage
Join a voice channel
Use the plugin tool or slash command (depends on your OpenClaw setup):
- Join:
with theaction=joinchannelId - Leave:
action=leave
Talk (voice channel)
Once the bot is connected, just speak.
Safeguard: only listen to you (default)
When
primaryUser is set, the plugin will only listen to that user unless you allow someone else.
Let someone else talk (voice commands)
As the primary user, say:
openclaw allow <name>openclaw listen to <name>
To lock it back:
openclaw only meopenclaw reset
Switch via tool actions (optional)
withallow_speaker
(id / @mention / name)useronly_mestatus
Notes
- Lowest latency comes from
andstreamingSTT=true
.streamingTTS=true - Deepgram TTS is streamed over HTTP in Ogg/Opus so Discord can play it immediately.