Replace XTTS with Qwen3-TTS
This commit is contained in:
+20
-22
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user