981ae4e6a1
Wrapper /v1/audio/speech now accepts OmniVoice's whole surface: - voice (clone, now OPTIONAL) and/or instruct (voice DESIGN). instruct is a CONTROLLED vocabulary (gender/age/pitch/accent/whisper tags, comma-separated), not free prose — discoverable at the new /v1/audio/instruct-items endpoint (23 items). - language (Auto + 647, new /v1/audio/languages endpoint), speed, duration. - diffusion controls: num_step, guidance_scale, denoise, preprocess_prompt, postprocess_output; plus a generation_overrides JSON passthrough for expert GenerationConfig knobs (t_shift, layer_penalty_factor, position/class temperature, audio_chunk_*). - at least one of voice/instruct required (else 400). Catalog (services.yaml): omnivoice v1 -> v2, 13 schema-valid fields; instruct as a controlled-vocab text field sourced from the items endpoint. Verified live on irv-ml1: clone, voice-design (instruct-only), and tuned-param synths all -> 24 kHz PCM_16 WAV; 647 languages; 23 instruct items.