catalog: voxtral/qwen3-tts/kyutai-tts defaults from live server probes

Booted each service on irv-ml1 to capture the wrapper's actual voice
exposure, then took them back down. Initial state restored.

**Voxtral (v1 → v2)** — 20 native presets from live /v1/audio/voices:
neutral_{female,male}, casual_{female,male}, cheerful_female, plus
8 language-code variants ({ar,de,es,fr,hi,it,nl,pt}_{female,male}).
vLLM-Omni does NOT translate OpenAI aliases; `alloy` would 400. Default
flipped to `neutral_female` (matches Mistral docs).

**Qwen3-TTS (v1 → v2)** — 15 voices from live /v1/voices, NOT the 17
the upstream blog cites: 9 Qwen presets (vivian/serena/uncle_fu/ryan/
aiden/ono_anna/sohee/eric/dylan) + 6 OpenAI-compat aliases (alloy/
echo/fable/nova/onyx/shimmer). Default `vivian` matches the wrapper's
OpenAPI default. Catalog previously stated clone-only — wrong; the
wrapper does ship presets, the upstream blog list just doesn't match
the deployed wrapper. Cloning still works alongside via clone:<name>.

**Kyutai-TTS (v1 → v2)** — NillPointer wrapper does NOT expose any voice
listing endpoint (/v1/audio/voices 404; only /health + POST /v1/audio/
speech are wired). Voices are filesystem-discovered. Catalog now drops
the broken source_url, switches voice field to free-text with default
`unmute-prod-website/default_voice.wav` (upstream's named default).
Description lists the on-disk categories with counts + license posture
(vctk = CC BY 4.0 commercial-safe; expresso = CC BY-NC research-only).
This commit is contained in:
2026-05-12 22:51:33 -07:00
parent 51c77370b3
commit 108ac507ec
+85 -10
View File
@@ -348,7 +348,7 @@ services:
Alibaba's open English-first TTS (Apache 2.0). 10 languages, 97ms TTFB,
instruction-driven emotion, voice cloning.
category: tts
version: 1
version: 2
status: down
host: irv-ml1
lifecycle:
@@ -375,10 +375,37 @@ services:
- name: voice
type: select
label: Voice
source_url: http://10.100.79.3:8191/v1/voices
source_jsonpath: $.voices[*].id
default: vivian
options:
- vivian
- serena
- uncle_fu
- ryan
- aiden
- ono_anna
- sohee
- eric
- dylan
- alloy
- echo
- fable
- nova
- onyx
- shimmer
description: >
Built-in or cloned. For cloning: clone:<name> where <name> is a profile
dir under /worktank/qwen3-tts/voices/profiles/. Create via /voice-studio
web UI or manually (meta.json + reference.wav).
Wrapper ships 9 Qwen presets (vivian/serena/uncle_fu/ryan/aiden/
ono_anna/sohee/eric/dylan) + 6 OpenAI-compat aliases (alloy/echo/
fable/nova/onyx/shimmer) — verified live 2026-05-12 against
/v1/voices. Default `vivian` matches the wrapper's OpenAPI default
(case-normalized; the Qwen3-TTS blog cites "Vivian" with caps).
For cloning: clone:<name> where <name> is a profile dir under
/worktank/qwen3-tts/voices/profiles/. Create via /voice-studio web
UI or manually (meta.json + reference.wav). The 17-preset list
cited in the Qwen3-TTS upstream blog (Cherry/Ethan/Chelsie/...)
differs from what this wrapper exposes — the wrapper is the
source of truth.
- name: instructions
type: textarea
label: Emotion/Style Instructions
@@ -530,7 +557,7 @@ services:
Kyutai's bilingual streaming TTS (1.6B, 2.5M hours). Heritage from Mimi codec
+ Moshi dialogue framework. OpenAI-compat HTTP wrapper over Rust streaming core.
category: tts
version: 1
version: 2
status: down
host: irv-ml1
lifecycle:
@@ -555,9 +582,26 @@ services:
required: true
max_length: 5000
- name: voice
type: select
label: Voice
source_url: http://10.100.79.3:8198/v1/audio/voices
type: text
label: Voice (HF-relative path)
default: unmute-prod-website/default_voice.wav
description: >
Path relative to the `kyutai/tts-voices` HF repo, cached on
irv-ml1 at /worktank/kyutai-tts/hf_cache. NillPointer wrapper
does NOT expose /v1/audio/voices (404; only /health + POST
/v1/audio/speech are wired) — voices are specified by path.
Default `unmute-prod-website/default_voice.wav` is upstream's
named-default. Categories available locally (count):
vctk/* (212, CC BY 4.0 — commercial-safe)
ears/* (306)
voice-donations/* (291, mixed)
expresso/* (103, CC BY-NC — research-only)
cml-tts/* (70)
unmute-prod-website/* (6, incl. default)
alba-mackenna/* (4)
For commercial paths, prefer a vctk/* voice (e.g.,
`vctk/p225_023_mic1.wav`). Full repo:
https://huggingface.co/kyutai/tts-voices
- name: response_format
type: select
options: [wav, mp3, pcm]
@@ -573,6 +617,8 @@ services:
deterministic: true
notes: >
Wrapper adds Python overhead vs Kyutai's bare 220ms claim.
Voice list is filesystem-discovered, not API-exposed — the
NillPointer wrapper only wires /health + /v1/audio/speech.
estimated_latency:
cold_start_s: 4
warm_per_unit: "~220400ms TTFB (with wrapper)"
@@ -676,7 +722,7 @@ services:
Mistral AI's 4B multilingual streaming TTS (CC BY-NC — research/internal only).
8 languages, 70ms model latency, 9.7× realtime. Served via vLLM-Omni.
category: tts
version: 1
version: 2
status: down
host: irv-ml1
lifecycle:
@@ -704,7 +750,36 @@ services:
type: select
label: Voice
source_url: http://10.100.79.3:8197/v1/audio/voices
default: alloy
default: neutral_female
options:
- neutral_female
- neutral_male
- casual_female
- casual_male
- cheerful_female
- ar_male
- de_female
- de_male
- es_female
- es_male
- fr_female
- fr_male
- hi_female
- hi_male
- it_female
- it_male
- nl_female
- nl_male
- pt_female
- pt_male
description: >
Native Voxtral presets — vLLM-Omni does NOT translate OpenAI
aliases (verified 2026-05-12 live against /v1/audio/voices). Naming
shape is `<register>_<gender>` for English (neutral_*, casual_*,
cheerful_*) and `<lang>_<gender>` for non-English. Default
`neutral_female` matches Mistral docs' stated default. The full
list above was captured live from the running container; uploaded
user voices appear in /v1/audio/voices under `uploaded_voices`.
- name: response_format
type: select
options: [wav, mp3, pcm]