95 lines
3.4 KiB
YAML
95 lines
3.4 KiB
YAML
# ════════════════════════════════════════════════
|
|
# ARIA XTTS v2 — GPU TTS Server
|
|
# Laeuft auf dem Gaming-PC (RTX 3060)
|
|
# Verbindet sich zum RVS fuer TTS-Requests
|
|
# ════════════════════════════════════════════════
|
|
#
|
|
# Voraussetzungen:
|
|
# - Docker Desktop mit WSL2
|
|
# - NVIDIA Container Toolkit
|
|
# - .env mit RVS-Verbindungsdaten
|
|
#
|
|
# Start: docker compose up -d
|
|
# Test: curl http://localhost:8000/docs
|
|
# ════════════════════════════════════════════════
|
|
|
|
services:
|
|
|
|
# ─── XTTS v2 API Server (GPU) ─────────────────
|
|
xtts:
|
|
image: daswer123/xtts-api-server:latest
|
|
container_name: aria-xtts
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
ports:
|
|
- "8000:8020"
|
|
volumes:
|
|
- xtts-models:/app/xtts_models # Model-Cache (~2GB)
|
|
- ./voices:/voices # Custom Voice Samples
|
|
environment:
|
|
- COQUI_TOS_AGREED=1
|
|
# Local-Modus statt default "apiManual": Modell bleibt im GPU-VRAM,
|
|
# Render startet sofort, /tts_stream funktioniert.
|
|
# Default-CMD des Images liest diese ENV: -ms ${MODEL_SOURCE:-"apiManual"}
|
|
- MODEL_SOURCE=local
|
|
# Speaker-Folder auf unsere gemounteten voices zeigen lassen
|
|
- EXAMPLE_FOLDER=/voices
|
|
restart: unless-stopped
|
|
|
|
# ─── XTTS Bridge (verbindet zu RVS) ───────────
|
|
xtts-bridge:
|
|
build: .
|
|
container_name: aria-xtts-bridge
|
|
depends_on:
|
|
- xtts
|
|
volumes:
|
|
- ./voices:/voices # Shared mit XTTS-Server
|
|
environment:
|
|
- XTTS_API_URL=http://xtts:8020
|
|
- RVS_HOST=${RVS_HOST}
|
|
- RVS_PORT=${RVS_PORT:-443}
|
|
- RVS_TLS=${RVS_TLS:-true}
|
|
- RVS_TLS_FALLBACK=${RVS_TLS_FALLBACK:-true}
|
|
- RVS_TOKEN=${RVS_TOKEN}
|
|
restart: unless-stopped
|
|
|
|
# ─── Whisper STT (GPU) ────────────────────────
|
|
# Faster-Whisper auf der Gamebox statt auf der VM (CPU) —
|
|
# deutlich schneller. Verbindet sich selbst per WebSocket an
|
|
# den RVS und nimmt dort stt_request Nachrichten der aria-bridge
|
|
# entgegen, antwortet mit stt_response. Laedt das Modell beim
|
|
# Start vor; auf Config-Broadcasts (Diagnostic → whisperModel)
|
|
# wird zur Laufzeit hot-swapped.
|
|
whisper-bridge:
|
|
build: ./whisper
|
|
container_name: aria-whisper-bridge
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
environment:
|
|
- RVS_HOST=${RVS_HOST}
|
|
- RVS_PORT=${RVS_PORT:-443}
|
|
- RVS_TLS=${RVS_TLS:-true}
|
|
- RVS_TLS_FALLBACK=${RVS_TLS_FALLBACK:-true}
|
|
- RVS_TOKEN=${RVS_TOKEN}
|
|
- WHISPER_MODEL=${WHISPER_MODEL:-small}
|
|
- WHISPER_DEVICE=${WHISPER_DEVICE:-cuda}
|
|
- WHISPER_COMPUTE_TYPE=${WHISPER_COMPUTE_TYPE:-float16}
|
|
- WHISPER_LANGUAGE=${WHISPER_LANGUAGE:-de}
|
|
volumes:
|
|
- whisper-models:/root/.cache/huggingface # Model-Cache persistieren
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
xtts-models:
|
|
whisper-models:
|