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:
@@ -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: "~220–400ms 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]
|
||||
|
||||
Reference in New Issue
Block a user