catalog: vibevoice v1 -> v2 — fix model options, voice list, response_format enum

Sweep round caught vibevoice catalog drift in three dimensions; all
verified against the live OpenAPI + endpoint exercise, NOT against
documentation (which is what produced the bad values originally).

model:
  was: options=[vibevoice], default=vibevoice
  now: options=[tts-1, tts-1-hd, vibevoice], default=tts-1
  why: the wrapper accepts all three (OpenAI-compat aliases all map
  to VibeVoice internally per upstream README); wire default is tts-1
  per /openapi.json. Catalog over-constrained users to a single value.

voice:
  was: default=Carter; description listed [Carter, Davis, Emma, Frank,
       Grace, Mike, Samuel] as built-ins
  now: default=en-Carter_man; options enumerated:
       OpenAI: alloy, echo, fable, onyx, nova, shimmer
       VibeVoice: en-Alice_woman, en-Carter_man, en-Frank_man,
                  en-Mary_woman_bgm, en-Maya_woman, in-Samuel_man,
                  zh-Anchen_man_bgm, zh-Bowen_man, zh-Xinran_woman
  why: discovered by hitting the endpoint with the catalog's claimed
  "Carter" — wrapper returned 400 with the actual valid list inline
  in the error body. The previous catalog values were fabrications,
  not derived from any real source.

response_format:
  was: options=[wav, mp3]
  now: options=[wav, mp3, opus, flac, pcm]; default mp3 (was wav)
  why: probed all 7 plausible formats; 5 return audio (200), aac and
  m4a return 500. Catalog was over-restrictive; an earlier sweep
  draft over-claimed [wav, mp3, opus, aac, flac, pcm, m4a] from
  documentation that I refused to apply unverified. Now matches the
  empirically-confirmed set.

Bumped vibevoice version 1 -> 2. catalog_version stays at 1.

Lesson reinforced: the only source-of-truth for catalog values is
the live wire. /openapi.json doesn't enumerate enums (returns bare
"string"); error responses from the endpoint with bad inputs are
the most reliable enum-discovery mechanism.
This commit is contained in:
vh
2026-05-11 16:25:37 -07:00
parent f020049769
commit a0d09edc42
+35 -9
View File
@@ -545,7 +545,7 @@ services:
Microsoft's diffusion-based long-form multi-speaker TTS. Multi-minute scripts
with speaker switching. Not for low-latency single-line use.
category: tts
version: 1
version: 2
host: irv-ml1
endpoint: http://10.100.79.3:8194/v1/audio/speech
method: POST
@@ -557,8 +557,11 @@ services:
fields:
- name: model
type: select
options: [vibevoice]
default: vibevoice
options: [tts-1, tts-1-hd, vibevoice]
default: tts-1
description: >
OpenAI-compatibility aliases all map to VibeVoice internally.
Wire default is tts-1 (verified against /openapi.json).
- name: input
type: textarea
label: "Text (or Speaker N: ... script)"
@@ -569,15 +572,38 @@ services:
- name: voice
type: select
label: Voice
default: Carter
default: en-Carter_man
description: >
Built-in: Carter, Davis, Emma, Frank, Grace, Mike, Samuel.
Custom: drop WAV/MP3/FLAC/M4A into /worktank/vibevoice/voices/, restart container.
Voice cloning training NOT released by Microsoft.
OpenAI presets: alloy, echo, fable, onyx, nova, shimmer.
VibeVoice presets: en-Alice_woman, en-Carter_man, en-Frank_man,
en-Mary_woman_bgm, en-Maya_woman, in-Samuel_man, zh-Anchen_man_bgm,
zh-Bowen_man, zh-Xinran_woman.
Custom: drop WAV/MP3/FLAC/M4A into /worktank/vibevoice/voices/,
restart container. Voice cloning training NOT released by Microsoft.
options:
- alloy
- echo
- fable
- onyx
- nova
- shimmer
- en-Alice_woman
- en-Carter_man
- en-Frank_man
- en-Mary_woman_bgm
- en-Maya_woman
- in-Samuel_man
- zh-Anchen_man_bgm
- zh-Bowen_man
- zh-Xinran_woman
- name: response_format
type: select
options: [wav, mp3]
default: wav
options: [wav, mp3, opus, flac, pcm]
default: mp3
description: >
Wire default is mp3 (verified /openapi.json). All five values
confirmed by exercising the endpoint 2026-05-11; aac and m4a
fail with 500 despite OpenAPI not enforcing an enum, so excluded.
- name: stream
type: bool
default: false