qwen3-tts: switch default to -CustomVoice variant; chatterbox: fix paralinguistic tag list in README

qwen3-tts: deploy was using the -Base checkpoint, which sounds like
the right one ("supports voice cloning") but the upstream wrapper's
only synthesis path goes through generate_custom_voice. The -Base
variant doesn't expose that, so every request — including ones with
the wrapper's listed built-in voices like Ryan/Vivian — errored with
"does not support generate_custom_voice". The -CustomVoice variant
exposes both the cloning machinery and the preset voices, and is
what the wrapper actually needs.

The .env.example comments had the variant labels backward; fixed in
this commit. Live host already updated to -CustomVoice via direct
.env edit (model downloaded on container restart).

chatterbox README listed [whisper] and [breath] as supported tags —
those are in the base Chatterbox tag set but NOT in the Turbo set
that's actually loaded. Replaced with the canonical 9-tag list
verified against /api/model-info: laugh, chuckle, sigh, gasp, cough,
clear throat, sniff, groan, shush.
This commit is contained in:
vh
2026-04-27 21:54:13 -07:00
parent ad2b0e97aa
commit 9835fd47eb
2 changed files with 23 additions and 12 deletions
+8 -4
View File
@@ -30,12 +30,16 @@ real-time voice-agent use cases.
- **Zero-shot voice cloning from ~5 s reference** (base Chatterbox - **Zero-shot voice cloning from ~5 s reference** (base Chatterbox
needs ~10 s; Turbo cuts that in half). needs ~10 s; Turbo cuts that in half).
- **Native paralinguistic tags inline in text** — drop these into your - **Native paralinguistic tags inline in text** — drop these into your
prompt and the model honors them: prompt and the model honors them. Turbo ships exactly **9** tags
(verified against the live model at `/api/model-info`):
``` ```
[laugh] [cough] [sigh] [gasp] [whisper] [breath] [laugh] [chuckle] [sigh] [gasp] [cough] [clear throat] [sniff] [groan] [shush]
``` ```
Different shape from IndexTTS-2's 8-vector emotion control: cleaner Note: base Chatterbox docs list `[whisper]` and `[breath]` — those
for "say it like this" markup directly in the prompt. are NOT in the Turbo set, ignore them or you'll burn time wondering
why nothing happens. Different shape from IndexTTS-2's 8-vector
emotion control: cleaner for "say it like this" markup directly in
the prompt.
- **Mandatory PerTh watermark** on outputs (Resemble policy, cannot - **Mandatory PerTh watermark** on outputs (Resemble policy, cannot
be disabled). Non-issue for internal use; mention it if you ever be disabled). Non-issue for internal use; mention it if you ever
ship Chatterbox-generated audio externally. ship Chatterbox-generated audio externally.
+15 -8
View File
@@ -26,15 +26,22 @@ QWEN3_TTS_BIND=0.0.0.0
QWEN3_TTS_BACKEND=official QWEN3_TTS_BACKEND=official
# Model variant. Upstream publishes four checkpoints on HF: # Model variant. Upstream publishes four checkpoints on HF:
# Qwen/Qwen3-TTS-12Hz-1.7B-Base — flagship, supports voice cloning # Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice — flagship, supports voice cloning + preset voices (RECOMMENDED)
# Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice — flagship, preset voices only # Qwen/Qwen3-TTS-12Hz-1.7B-Base — flagship, foundation only — REJECTS all synthesis through this wrapper
# Qwen/Qwen3-TTS-12Hz-0.6B-Base — lightweight, supports voice cloning # Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice — lightweight cloning-capable variant
# Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice — lightweight, preset voices only # Qwen/Qwen3-TTS-12Hz-0.6B-Base — lightweight foundation only
# 1.7B = ~6–8 GB VRAM bfloat16, best quality. 0.6B = ~2–3 GB. # 1.7B = ~6–8 GB VRAM bfloat16, best quality. 0.6B = ~2–3 GB.
# `voice="clone:<name>"` only works with the -Base variants — that's #
# what the upstream wrapper enforces. Earlier versions of this file # IMPORTANT: the wrapper's only synthesis code path goes through the
# had the variant labels reversed; corrected 2026-04-24. # voice cloning machinery. The -Base variants do NOT expose
QWEN3_TTS_MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-Base # generate_custom_voice; they error with "does not support
# generate_custom_voice" on every request, no matter what voice you
# specify (built-ins like Ryan, Vivian etc. count as custom voices).
# Use -CustomVoice. The Base variant is foundation-model territory
# that needs a different harness to be useful.
# (This file had the labels backwards through 2026-04-27 — fixed
# after the 2026-04-27 voice-fleet bench surfaced the failure mode.)
QWEN3_TTS_MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice
# Warm the model on container start so the first synthesis request # Warm the model on container start so the first synthesis request
# doesn't pay the load latency. Adds ~30 s to startup. Recommended. # doesn't pay the load latency. Adds ~30 s to startup. Recommended.