经过部署测试,语音识别基本可以实时合成,语音合成速度比较慢,无法做到实时性合成。
# Qwen3 audio inference stack: TTS :8082, ASR :8001
# Switch TTS model: ./switch-tts-model.sh 0.6 or ./switch-tts-model.sh 1.7
# Models are mounted read-only; voice/config data lives under ./volumes.
services:
claves-qwen3-tts:
container_name: claves-qwen3-tts
image: ${claves_DOCKER:-}martinb78/faster-qwen3-tts-dgx-spark:latest-streaming
restart: always
init: true
ports:
- "8082:8000"
volumes:
- ./volumes/claves-modelscope/models/Qwen/Qwen3-TTS-12Hz-1.7B-Base:/models/Qwen3-TTS-1.7B:ro
- ./volumes/claves-modelscope/models/Qwen/Qwen3-TTS-12Hz-0.6B-Base:/models/Qwen3-TTS-0.6B:ro
- ./volumes/claves-qwen3-tts/config:/config:rw
command:
- python
- examples/openai_server.py
- --model
- ${QWEN_TTS_MODEL:-/models/Qwen3-TTS-1.7B}
- --voices
- /config/voices.json
- --port
- "8000"
- --max-seq-len
- "2048"
deploy:
resources:
limits:
cpus: "4"
memory: 16G
reservations:
memory: 1G
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
healthcheck:
test:
- CMD
- python3
- -c
- "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=3)"
interval: 30s
timeout: 5s
retries: 3
start_period: 90s
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"
claves-qwen3-asr:
container_name: claves-qwen3-asr
# Upstream vLLM omits the audio I/O dependencies; install pinned versions
# before starting the OpenAI-compatible transcription server.
image: ${claves_DOCKER:-}vllm/vllm-openai:v0.29.0
restart: always
init: true
shm_size: "2gb"
ports:
- "8001:8000"
volumes:
- ./volumes/claves-modelscope/models/Qwen/Qwen3-ASR-1.7B:/models/Qwen3-ASR-1.7B:ro
entrypoint: ["/bin/bash", "-lc"]
command:
- >-
python3 -m pip install --no-cache-dir -q
--index-url ${PIP_INDEX_URL:-https://pypi.tuna.tsinghua.edu.cn/simple}
soundfile==0.14.0 av==19.0.2 soxr==1.1.0 &&
exec vllm serve /models/Qwen3-ASR-1.7B
--host 0.0.0.0
--port 8000
--gpu-memory-utilization 0.12
--max-model-len 8192
--max-num-seqs 4
--max-num-batched-tokens 4096
--enforce-eager
deploy:
resources:
limits:
cpus: "4"
memory: 16G
reservations:
memory: 1G
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
healthcheck:
test:
- CMD
- python3
- -c
- "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=3)"
interval: 30s
timeout: 5s
retries: 3
start_period: 300s
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"