# Send Voice Assistant to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "voice-assistant",
    "name": "Voice Assistant",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/charantejmandali18/voice-assistant",
    "canonicalUrl": "https://clawhub.ai/charantejmandali18/voice-assistant",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/voice-assistant",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voice-assistant",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "pyproject.toml",
      "scripts/__init__.py",
      "scripts/server.py",
      "static/index.html"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "voice-assistant",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T10:28:19.733Z",
      "expiresAt": "2026-05-11T10:28:19.733Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voice-assistant",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=voice-assistant",
        "contentDisposition": "attachment; filename=\"voice-assistant-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "voice-assistant"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/voice-assistant"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/voice-assistant",
    "downloadUrl": "https://openagent3.xyz/downloads/voice-assistant",
    "agentUrl": "https://openagent3.xyz/skills/voice-assistant/agent",
    "manifestUrl": "https://openagent3.xyz/skills/voice-assistant/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/voice-assistant/agent.md"
  }
}
```
## Documentation

### Voice Assistant

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.

### Architecture

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.

### Quick Start

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

### STT (Speech-to-Text)

ProviderModelLatencyNotesDeepgramnova-2 (streaming)~200-300msWebSocket streaming, best accuracy/speedElevenLabsScribe v1~300-500msREST-based, good multilingual

### TTS (Text-to-Speech)

ProviderModelLatencyNotesDeepgramaura-2~200msWebSocket streaming, low costElevenLabsTurbo v2.5~300msBest voice quality, streaming

### Configuration

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

### Provider Combinations

SetupBest ForDeepgram STT + ElevenLabs TTSBest quality voice outputDeepgram STT + Deepgram TTSLowest latency, single vendorElevenLabs STT + ElevenLabs TTSBest multilingual support

### How It Works

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

### Interruption Handling (Barge-In)

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

### Usage Examples

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

### Troubleshooting

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

### Latency Budget

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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: charantejmandali18
- Version: 0.1.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-04T10:28:19.733Z
- Expires at: 2026-05-11T10:28:19.733Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/voice-assistant)
- [Send to Agent page](https://openagent3.xyz/skills/voice-assistant/agent)
- [JSON manifest](https://openagent3.xyz/skills/voice-assistant/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/voice-assistant/agent.md)
- [Download page](https://openagent3.xyz/downloads/voice-assistant)