mirror of
https://github.com/Purple-Horizons/openclaw-voice.git
synced 2026-08-14 00:58:01 +00:00
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
57 lines
1.5 KiB
YAML
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:
|