diff --git a/docs/asset-engine/services.yaml b/docs/asset-engine/services.yaml index ccdf881..e194624 100644 --- a/docs/asset-engine/services.yaml +++ b/docs/asset-engine/services.yaml @@ -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: where 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: where 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 `_` for English (neutral_*, casual_*, + cheerful_*) and `_` 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]