qwen3-tts: wire optimized backend to /app/config.yaml so model registry actually loads
The wrapper's `optimized` backend (torch.compile + CUDA graphs + real-time streaming) reads its model registry from a YAML config: default path is ~/qwen3-tts/config.yaml inside the container, which doesn't exist. Without TTS_CONFIG set, the backend boots with an empty registry and every synthesis request fails with "Unknown model key: '<name>'. Available: []". The repo ships /app/config.yaml with all 4 model variants defined. Pointing TTS_CONFIG at it lets the optimized backend load cleanly. This is a prerequisite for benching the optimized backend properly — it's the path to the upstream's claimed 97 ms streaming TTFB. The default `official` backend uses naive HF transformers autoregressive generation that pegged GPU at only 27% utilization and gave us 8-12 s TTFB on bench (no recompile theory needed — same phrase repeated 4x plateaued at 8.5 s, ruling out shape-specific recompilation).
This commit is contained in:
@@ -52,6 +52,13 @@ services:
|
||||
- PORT=8880
|
||||
- TTS_BACKEND=${QWEN3_TTS_BACKEND:-official}
|
||||
- TTS_MODEL_NAME=${QWEN3_TTS_MODEL:-Qwen/Qwen3-TTS-12Hz-1.7B}
|
||||
# Only used when TTS_BACKEND=optimized — points the optimized backend
|
||||
# at the upstream config.yaml (which defines the model registry +
|
||||
# default model). Without this, the optimized backend looks at
|
||||
# ~/qwen3-tts/config.yaml inside the container, which doesn't exist
|
||||
# at runtime, leaving the model registry empty and synthesis fails
|
||||
# with "Unknown model key".
|
||||
- TTS_CONFIG=/app/config.yaml
|
||||
- TTS_WARMUP_ON_START=${QWEN3_TTS_WARMUP:-true}
|
||||
- TTS_MAX_CONCURRENT=${QWEN3_TTS_MAX_CONCURRENT:-1}
|
||||
- ENABLE_VOICE_STUDIO=${QWEN3_TTS_VOICE_STUDIO:-true}
|
||||
|
||||
Reference in New Issue
Block a user