Update docker-compose configuration for Qwen3-TTS services with improved command structure and health check adjustments
This commit is contained in:
@@ -5,14 +5,15 @@
|
|||||||
# voicedesign → :8092 (создание голоса по текстовому описанию)
|
# voicedesign → :8092 (создание голоса по текстовому описанию)
|
||||||
# base → :8093 (клонирование голоса из ~3 сек. аудио)
|
# base → :8093 (клонирование голоса из ~3 сек. аудио)
|
||||||
#
|
#
|
||||||
# Запуск всех сервисов: docker compose up -d
|
# Запуск всех сервисов: docker compose --profile all up -d
|
||||||
# Только один сервис: docker compose up -d qwen3-tts-customvoice
|
# Только один сервис: docker compose --profile customvoice up -d
|
||||||
# Логи: docker compose logs -f qwen3-tts-customvoice
|
# Логи: docker compose logs -f qwen3-tts-customvoice
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
x-tts-common: &tts-common
|
x-tts-common: &tts-common
|
||||||
image: vllm/vllm-omni:v0.18.0
|
image: vllm/vllm-omni:v0.18.0
|
||||||
ipc: host
|
ipc: host
|
||||||
|
entrypoint: ["vllm", "serve"]
|
||||||
ulimits:
|
ulimits:
|
||||||
memlock: -1
|
memlock: -1
|
||||||
stack: 67108864
|
stack: 67108864
|
||||||
@@ -22,77 +23,80 @@ x-tts-common: &tts-common
|
|||||||
reservations:
|
reservations:
|
||||||
devices:
|
devices:
|
||||||
- driver: nvidia
|
- driver: nvidia
|
||||||
count: ${GPU_COUNT:-1} # кол-во GPU на сервис (см. .env)
|
count: ${GPU_COUNT:-1}
|
||||||
capabilities: [gpu]
|
capabilities: [gpu]
|
||||||
volumes:
|
volumes:
|
||||||
- ${HF_CACHE_DIR:-./hf_cache}:/root/.cache/huggingface
|
- ${HF_CACHE_DIR:-./hf_cache}:/root/.cache/huggingface
|
||||||
- ./output_audio:/output_audio # сохранение WAV-файлов
|
- ./output_audio:/output_audio
|
||||||
environment:
|
environment:
|
||||||
HF_TOKEN: ${HF_TOKEN:-} # токен Hugging Face (если нужен)
|
HF_TOKEN: ${HF_TOKEN:-}
|
||||||
VLLM_USE_V1: "0" # офлайн-режим совместимости
|
VLLM_USE_V1: "0"
|
||||||
VLLM_WORKER_MULTIPROC_METHOD: spawn # требуется для TTS-воркеров
|
VLLM_WORKER_MULTIPROC_METHOD: spawn
|
||||||
CUDA_VISIBLE_DEVICES: ${CUDA_VISIBLE_DEVICES:-0}
|
CUDA_VISIBLE_DEVICES: ${CUDA_VISIBLE_DEVICES:-0}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "python3", "-c",
|
test: ["CMD", "python3", "-c",
|
||||||
"import urllib.request; urllib.request.urlopen('http://localhost:${_PORT:-8091}/health')"]
|
"import urllib.request; urllib.request.urlopen('http://localhost:8091/health')"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 5
|
retries: 5
|
||||||
start_period: 120s # модель грузится долго
|
start_period: 120s
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
services:
|
services:
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# CustomVoice — готовые голоса (Vivian, Ryan и др.)
|
||||||
# 1. CustomVoice — готовые голоса (Vivian, Ryan и др.)
|
|
||||||
# POST /v1/audio/speech { "input": "...", "voice": "Vivian" }
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
qwen3-tts-customvoice:
|
qwen3-tts-customvoice:
|
||||||
<<: *tts-common
|
<<: *tts-common
|
||||||
container_name: qwen3-tts-customvoice
|
container_name: qwen3-tts-customvoice
|
||||||
ports:
|
ports:
|
||||||
- "${CUSTOMVOICE_PORT:-8091}:8091"
|
- "${CUSTOMVOICE_PORT:-8091}:8091"
|
||||||
command: >
|
command:
|
||||||
--model ${MODEL_SIZE:-Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice}
|
- "${MODEL_CUSTOMVOICE:-Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice}"
|
||||||
--port 8091
|
- "--omni"
|
||||||
--gpu-memory-utilization ${GPU_MEM_UTIL:-0.90}
|
- "--port"
|
||||||
--max-model-len ${MAX_MODEL_LEN:-4096}
|
- "8091"
|
||||||
|
- "--gpu-memory-utilization"
|
||||||
|
- "${GPU_MEM_UTIL:-0.90}"
|
||||||
|
- "--max-model-len"
|
||||||
|
- "${MAX_MODEL_LEN:-4096}"
|
||||||
profiles:
|
profiles:
|
||||||
- customvoice
|
- customvoice
|
||||||
- all
|
- all
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# VoiceDesign — синтез голоса по описанию на естественном языке
|
||||||
# 2. VoiceDesign — синтез голоса по описанию на естественном языке
|
|
||||||
# POST /v1/audio/speech { "input": "...", "voice": "a calm female voice" }
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
qwen3-tts-voicedesign:
|
qwen3-tts-voicedesign:
|
||||||
<<: *tts-common
|
<<: *tts-common
|
||||||
container_name: qwen3-tts-voicedesign
|
container_name: qwen3-tts-voicedesign
|
||||||
ports:
|
ports:
|
||||||
- "${VOICEDESIGN_PORT:-8092}:8091"
|
- "${VOICEDESIGN_PORT:-8092}:8091"
|
||||||
command: >
|
command:
|
||||||
--model ${MODEL_VOICEDESIGN:-Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign}
|
- "${MODEL_VOICEDESIGN:-Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign}"
|
||||||
--port 8091
|
- "--omni"
|
||||||
--gpu-memory-utilization ${GPU_MEM_UTIL:-0.90}
|
- "--port"
|
||||||
--max-model-len ${MAX_MODEL_LEN:-4096}
|
- "8091"
|
||||||
|
- "--gpu-memory-utilization"
|
||||||
|
- "${GPU_MEM_UTIL:-0.90}"
|
||||||
|
- "--max-model-len"
|
||||||
|
- "${MAX_MODEL_LEN:-4096}"
|
||||||
profiles:
|
profiles:
|
||||||
- voicedesign
|
- voicedesign
|
||||||
- all
|
- all
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# Base — клонирование голоса из референс-аудио
|
||||||
# 3. Base — клонирование голоса из референс-аудио
|
|
||||||
# POST /v1/audio/speech { "input": "...", + ref_audio файл }
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
qwen3-tts-base:
|
qwen3-tts-base:
|
||||||
<<: *tts-common
|
<<: *tts-common
|
||||||
container_name: qwen3-tts-base
|
container_name: qwen3-tts-base
|
||||||
ports:
|
ports:
|
||||||
- "${BASE_PORT:-8093}:8091"
|
- "${BASE_PORT:-8093}:8091"
|
||||||
command: >
|
command:
|
||||||
--model ${MODEL_BASE:-Qwen/Qwen3-TTS-12Hz-1.7B-Base}
|
- "${MODEL_BASE:-Qwen/Qwen3-TTS-12Hz-1.7B-Base}"
|
||||||
--port 8091
|
- "--omni"
|
||||||
--gpu-memory-utilization ${GPU_MEM_UTIL:-0.90}
|
- "--port"
|
||||||
--max-model-len ${MAX_MODEL_LEN:-4096}
|
- "8091"
|
||||||
|
- "--gpu-memory-utilization"
|
||||||
|
- "${GPU_MEM_UTIL:-0.90}"
|
||||||
|
- "--max-model-len"
|
||||||
|
- "${MAX_MODEL_LEN:-4096}"
|
||||||
profiles:
|
profiles:
|
||||||
- base
|
- base
|
||||||
- all
|
- all
|
||||||
Reference in New Issue
Block a user