Replace XTTS with Qwen3-TTS

This commit is contained in:
Mikei386
2026-09-05 13:30:14 +02:00
parent 44e1c1c50e
commit cc416150a8
12 changed files with 144 additions and 57 deletions
+20 -22
View File
@@ -722,9 +722,9 @@ services:
retries: 30
start_period: 120s
xtts:
image: ${XTTS_IMAGE:-ghcr.io/coqui-ai/xtts-streaming-server:latest-cuda121@sha256:f7fb3b1f9d4bc88af94da1b5959d8002f1e0b003c97557164034eb8a29f01b90}
container_name: mike-ai-xtts
qwen3-tts:
image: ${QWEN3_TTS_IMAGE:-ghcr.io/malaiwah/qwen3-tts-server:latest@sha256:b363a01d08b1bbecbfc3ca6f585368fae2cfdc591f9ecca6643738369f9a9d98}
container_name: mike-ai-qwen3-tts
restart: unless-stopped
deploy:
resources:
@@ -732,30 +732,33 @@ services:
devices:
- driver: nvidia
device_ids:
- ${XTTS_GPU_DEVICE:-GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b}
- ${QWEN3_TTS_GPU_DEVICE:-GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b}
capabilities: [gpu]
read_only: true
shm_size: 1g
tmpfs:
- /tmp:size=1g,mode=1777
- /root/.cache:size=2g,mode=0700
volumes:
- "${XTTS_CACHE_DIR:-/data/models/xtts-v2-cache}:/root/.local/share/tts"
- "${QWEN3_TTS_CACHE_DIR:-/data/models/qwen3-tts-cache}:/root/.cache/huggingface"
- "${QWEN3_TTS_VOICES_DIR:-/data/models/qwen3-tts-voices}:/data/voices"
environment:
COQUI_TOS_AGREED: "1"
NVIDIA_VISIBLE_DEVICES: ${XTTS_GPU_DEVICE:-GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b}
NVIDIA_VISIBLE_DEVICES: ${QWEN3_TTS_GPU_DEVICE:-GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b}
NVIDIA_DRIVER_CAPABILITIES: compute,utility
CUDA_VISIBLE_DEVICES: "0"
NUM_THREADS: "4"
HF_HOME: /root/.cache/huggingface
NUMBA_CACHE_DIR: /tmp/numba
QWEN3_TTS_MODEL_ID: Qwen/Qwen3-TTS-12Hz-1.7B-Base
QWEN3_TTS_DEFAULT_VOICE: serena
QWEN3_TTS_VOICES_DIR: /data/voices
networks: [frontend]
security_opt: ["no-new-privileges:true"]
cap_drop: [ALL]
healthcheck:
test: [CMD, curl, -fsS, "http://127.0.0.1/languages"]
test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8001/health', timeout=2)"]
interval: 10s
timeout: 5s
retries: 36
start_period: 240s
retries: 60
start_period: 600s
tts-gateway:
build:
@@ -769,22 +772,17 @@ services:
environment:
TTS_GATEWAY_HOST: 0.0.0.0
TTS_GATEWAY_PORT: "8085"
XTTS_URL: http://xtts:80
QWEN_TTS_URL: http://qwen3-tts:8001
QWEN_TTS_MODEL: tts-1
QWEN_TTS_VOICE: serena
QWEN_TTS_LANGUAGE: German
QWEN_TTS_TIMEOUT: "120"
PIPER_URL: http://piper:8085
TTS_VOICE_ALIAS: alloy
XTTS_SPEAKER: Annmarie Nele
TTS_DEFAULT_LANGUAGE: de
# Mixed-language clip stitching caused long pauses and unintelligible
# transitions. Keep full sentences in one stable German voice.
TTS_CODE_SWITCH_ENABLED: "false"
XTTS_QUEUE_TIMEOUT: "15"
XTTS_TIMEOUT: "120"
# Keep normal sentences intact for natural prosody. This is only the
# safety ceiling for unusually long sentences.
XTTS_CHUNK_CHARS: "420"
# XTTS occasionally inserts multi-second silence inside a phrase.
XTTS_INTERNAL_SILENCE_TRIGGER_MS: "650"
XTTS_INTERNAL_SILENCE_KEEP_MS: "220"
PIPER_TIMEOUT: "120"
networks: [frontend]
depends_on: