Files
openclaw-voice/docker-compose.yml
gianni-dalerta ca620b4a83 Complete roadmap: VAD, streaming, Docker, React component
New features:
- VAD integration in WebSocket flow (sends speech_detected status)
- Streaming response module (sentence-by-sentence TTS)
- Dockerfile with NVIDIA GPU support (CUDA 12.1)
- docker-compose.yml (GPU + CPU profiles)
- React component package (@openclaw/voice-widget-react)

Roadmap progress:
 VAD
 Streaming responses
 Docker GPU support
 React component
 API key auth
 Continuous mode

Remaining:
- WebRTC
- Vue component
- Kubernetes Helm
- RunPod template

Tests: 25 passing
2026-01-30 13:43:27 -05:00

57 lines
1.5 KiB
YAML

version: '3.8'
services:
openclaw-voice:
build: .
ports:
- "8765:8765"
environment:
- OPENCLAW_HOST=0.0.0.0
- OPENCLAW_PORT=8765
- OPENCLAW_STT_MODEL=${OPENCLAW_STT_MODEL:-base}
- OPENCLAW_STT_DEVICE=${OPENCLAW_STT_DEVICE:-cuda}
- OPENCLAW_REQUIRE_AUTH=${OPENCLAW_REQUIRE_AUTH:-false}
- OPENCLAW_MASTER_KEY=${OPENCLAW_MASTER_KEY:-}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
volumes:
# Persist downloaded models
- whisper-models:/root/.cache/huggingface
- ./voices:/app/voices
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8765/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# CPU-only version (no GPU required)
openclaw-voice-cpu:
build: .
ports:
- "8766:8765"
environment:
- OPENCLAW_HOST=0.0.0.0
- OPENCLAW_PORT=8765
- OPENCLAW_STT_MODEL=${OPENCLAW_STT_MODEL:-tiny}
- OPENCLAW_STT_DEVICE=cpu
- OPENCLAW_REQUIRE_AUTH=${OPENCLAW_REQUIRE_AUTH:-false}
- OPENCLAW_MASTER_KEY=${OPENCLAW_MASTER_KEY:-}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
volumes:
- whisper-models:/root/.cache/huggingface
- ./voices:/app/voices
profiles:
- cpu
restart: unless-stopped
volumes:
whisper-models: