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,
|
Alibaba's open English-first TTS (Apache 2.0). 10 languages, 97ms TTFB,
|
||||||
instruction-driven emotion, voice cloning.
|
instruction-driven emotion, voice cloning.
|
||||||
category: tts
|
category: tts
|
||||||
version: 1
|
version: 2
|
||||||
status: down
|
status: down
|
||||||
host: irv-ml1
|
host: irv-ml1
|
||||||
lifecycle:
|
lifecycle:
|
||||||
@@ -375,10 +375,37 @@ services:
|
|||||||
- name: voice
|
- name: voice
|
||||||
type: select
|
type: select
|
||||||
label: Voice
|
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: >
|
description: >
|
||||||
Built-in or cloned. For cloning: clone:<name> where <name> is a profile
|
Wrapper ships 9 Qwen presets (vivian/serena/uncle_fu/ryan/aiden/
|
||||||
dir under /worktank/qwen3-tts/voices/profiles/. Create via /voice-studio
|
ono_anna/sohee/eric/dylan) + 6 OpenAI-compat aliases (alloy/echo/
|
||||||
web UI or manually (meta.json + reference.wav).
|
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
|
- name: instructions
|
||||||
type: textarea
|
type: textarea
|
||||||
label: Emotion/Style Instructions
|
label: Emotion/Style Instructions
|
||||||
@@ -530,7 +557,7 @@ services:
|
|||||||
Kyutai's bilingual streaming TTS (1.6B, 2.5M hours). Heritage from Mimi codec
|
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.
|
+ Moshi dialogue framework. OpenAI-compat HTTP wrapper over Rust streaming core.
|
||||||
category: tts
|
category: tts
|
||||||
version: 1
|
version: 2
|
||||||
status: down
|
status: down
|
||||||
host: irv-ml1
|
host: irv-ml1
|
||||||
lifecycle:
|
lifecycle:
|
||||||
@@ -555,9 +582,26 @@ services:
|
|||||||
required: true
|
required: true
|
||||||
max_length: 5000
|
max_length: 5000
|
||||||
- name: voice
|
- name: voice
|
||||||
type: select
|
type: text
|
||||||
label: Voice
|
label: Voice (HF-relative path)
|
||||||
source_url: http://10.100.79.3:8198/v1/audio/voices
|
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
|
- name: response_format
|
||||||
type: select
|
type: select
|
||||||
options: [wav, mp3, pcm]
|
options: [wav, mp3, pcm]
|
||||||
@@ -573,6 +617,8 @@ services:
|
|||||||
deterministic: true
|
deterministic: true
|
||||||
notes: >
|
notes: >
|
||||||
Wrapper adds Python overhead vs Kyutai's bare 220ms claim.
|
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:
|
estimated_latency:
|
||||||
cold_start_s: 4
|
cold_start_s: 4
|
||||||
warm_per_unit: "~220–400ms TTFB (with wrapper)"
|
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).
|
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.
|
8 languages, 70ms model latency, 9.7× realtime. Served via vLLM-Omni.
|
||||||
category: tts
|
category: tts
|
||||||
version: 1
|
version: 2
|
||||||
status: down
|
status: down
|
||||||
host: irv-ml1
|
host: irv-ml1
|
||||||
lifecycle:
|
lifecycle:
|
||||||
@@ -704,7 +750,36 @@ services:
|
|||||||
type: select
|
type: select
|
||||||
label: Voice
|
label: Voice
|
||||||
source_url: http://10.100.79.3:8197/v1/audio/voices
|
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
|
- name: response_format
|
||||||
type: select
|
type: select
|
||||||
options: [wav, mp3, pcm]
|
options: [wav, mp3, pcm]
|
||||||
|
|||||||
Reference in New Issue
Block a user