Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Real-time voice assistant for OpenClaw. Streams mic audio through configurable STT (Deepgram or ElevenLabs) into your OpenClaw agent, then speaks the response via configurable TTS (Deepgram Aura or ElevenLabs). Sub-2s time-to-first-audio with full streaming at every stage.
Real-time voice assistant for OpenClaw. Streams mic audio through configurable STT (Deepgram or ElevenLabs) into your OpenClaw agent, then speaks the response via configurable TTS (Deepgram Aura or ElevenLabs). Sub-2s time-to-first-audio with full streaming at every stage.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Real-time voice interface for your OpenClaw agent. Talk to your agent and hear it respond β with configurable STT and TTS providers, full streaming at every stage, and sub-2 second time-to-first-audio.
Browser Mic β WebSocket β STT (Deepgram / ElevenLabs) β Text β OpenClaw Gateway (/v1/chat/completions, streaming) β Response Text β TTS (Deepgram Aura / ElevenLabs) β Audio chunks β Browser Speaker The voice interface connects to your running OpenClaw gateway's OpenAI-compatible endpoint. It's the same agent with all its context, tools, and memory β just with a voice.
cd {baseDir} cp .env.example .env # Fill in your API keys and gateway URL uv run scripts/server.py # Open http://localhost:7860 and click the mic
ProviderModelLatencyNotesDeepgramnova-2 (streaming)~200-300msWebSocket streaming, best accuracy/speedElevenLabsScribe v1~300-500msREST-based, good multilingual
ProviderModelLatencyNotesDeepgramaura-2~200msWebSocket streaming, low costElevenLabsTurbo v2.5~300msBest voice quality, streaming
All configuration is via environment variables in .env: # === Required === OPENCLAW_GATEWAY_URL=http://localhost:4141/v1 # Your OpenClaw gateway OPENCLAW_MODEL=claude-sonnet-4-5-20250929 # Model your gateway routes to # === STT Provider (pick one) === VOICE_STT_PROVIDER=deepgram # "deepgram" or "elevenlabs" DEEPGRAM_API_KEY=your-key-here # Required if STT=deepgram ELEVENLABS_API_KEY=your-key-here # Required if STT=elevenlabs # === TTS Provider (pick one) === VOICE_TTS_PROVIDER=elevenlabs # "deepgram" or "elevenlabs" # Uses the same API keys as above # === Optional Tuning === VOICE_TTS_VOICE=rachel # ElevenLabs voice name/ID VOICE_TTS_VOICE_DG=aura-2-theia-en # Deepgram Aura voice VOICE_VAD_SILENCE_MS=400 # Silence before end-of-turn (ms) VOICE_SAMPLE_RATE=16000 # Audio sample rate VOICE_SERVER_PORT=7860 # Server port VOICE_SYSTEM_PROMPT="" # Optional system prompt override
SetupBest ForDeepgram STT + ElevenLabs TTSBest quality voice outputDeepgram STT + Deepgram TTSLowest latency, single vendorElevenLabs STT + ElevenLabs TTSBest multilingual support
Browser captures mic audio via Web Audio API and streams raw PCM over a WebSocket Server receives audio and pipes it to the configured STT provider's streaming endpoint STT returns partial transcripts in real-time; on end-of-utterance the full text is sent to the OpenClaw gateway OpenClaw gateway streams the LLM response token-by-token via SSE (Server-Sent Events) Tokens are accumulated into sentence-sized chunks and streamed to the TTS provider TTS returns audio chunks that are immediately forwarded to the browser over the same WebSocket Browser plays audio using the Web Audio API with a jitter buffer for smooth playback
When the user starts speaking while the agent is still talking: Current TTS audio is immediately cancelled The agent stops its current response New STT session begins capturing the user's interruption
User: "Hey, set up my voice assistant" β OpenClaw runs: cd {baseDir} && cp .env.example .env β Opens .env for the user to fill in API keys β Runs: uv run scripts/server.py User: "Start a voice chat" β Opens http://localhost:7860 in the browser User: "Switch TTS to Deepgram" β Updates VOICE_TTS_PROVIDER=deepgram in .env β Restarts the server
No audio output? Check that your TTS API key is valid and the provider is set correctly High latency? Use Deepgram for both STT and TTS; ensure your gateway is on the same network Cuts off speech? Increase VOICE_VAD_SILENCE_MS to 600-800ms Echo/feedback? Use headphones, or enable the built-in echo cancellation in the browser UI
StageTargetActual (typical)Audio capture + VAD<200ms~100-150msSTT transcription<400ms~200-400msOpenClaw LLM first token<1500ms~500-1500msTTS first audio chunk<400ms~200-400msTotal first audio<2.5s~1.0-2.5s
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.