Discord Voice Using Deepgram
Voice-channel conversations in Discord using Deepgram streaming STT + low-latency TTS
adriel1006
@adriel1006
What This Skill Does
Connects an AI agent to a Discord voice channel using Deepgram's streaming speech-to-text and low-latency text-to-speech. Users speak into the channel, the agent transcribes the audio, processes the command, and speaks the response back in real time.
Replaces typing-based Discord interactions by enabling hands-free, voice-driven conversations with an AI agent in a voice channel.
When to Use It
- Join a Discord voice channel and start a voice conversation with the agent
- Allow another user to speak to the agent using a voice command like 'openclaw allow <name>'
- Lock the agent to only listen to the primary user again with 'openclaw only me'
- Switch the active speaker via a tool action or slash command
- Check the current voice channel status and who the agent is listening to
Install
$ openclaw skills install @adriel1006/discord-voice-deepgramDeepgram 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 (
/v1/speakstreamed HTTP Ogg/Opus) - 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
-
primaryUser(recommended): Who the bot listens to by default.- Best: your Discord user ID (numeric)
- Also supported: username/display name (e.g.,
atechy) if unique in-channel
-
allowVoiceSwitch: Iftrue, the primary user can switch who is allowed by voice. -
wakeWord: Prefix for voice control commands. Default:openclaw. -
deepgram.sttModel: Defaultnova-2. -
deepgram.language: Optional BCP‑47 language tag (e.g.,en-US,es,es-EC). -
ttsVoice: Deepgram Aura voice model (e.g.,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:
action=joinwith thechannelId - 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)
allow_speakerwithuser(id / @mention / name)only_mestatus
Notes
- Lowest latency comes from
streamingSTT=trueandstreamingTTS=true. - Deepgram TTS is streamed over HTTP in Ogg/Opus so Discord can play it immediately.
Top skills in this category
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Slack
@steipeteUse when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
PollyReach
@pollyreachPollyReach gives every AI agent a phone number and the ability to get things done over the phone — finding contacts, making calls, and completing tasks. Just...
imap-smtp-email
@gzlicanyiRead and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Supports multiple accounts. Works with any IMAP/SMTP server including Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, and vip
Answer Overflow
@rhyssullivanSearch indexed Discord community discussions via Answer Overflow. Find solutions to coding problems, library issues, and community Q&A that only exist in Discord conversations.