Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices. Covers TTS models (Kokoro, Qwen 3, xAI, Inworld, Chatterbox, Orpheus, ElevenLabs Turbo, MiniMax, Gemini Flash, Gradium), voices per family, cloned-voice handles, output formats (mp3/opus/aac/flac/wav/pcm), streaming, prompt/emotion styling, temperature/top_p, and language hints.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices. Covers TTS models (Kokoro, Qwen 3, xAI, Inworld, Chatterbox, Orpheus, ElevenLabs Turbo, MiniMax, Gemini Flash, Gradium), voices per family, cloned-voice handles, output formats (mp3/opus/aac/flac/wav/pcm), streaming, prompt/emotion styling, temperature/top_p, and language hints.
Venice TTS (/audio/speech)
POST /api/v1/audio/speech converts text to an audio stream or file. OpenAI-compatible — the OpenAI SDK's audio.speech.create() works as a drop-in.
Use when
You want narration, voice replies, or UI audio from text.
You need a specific voice family (ElevenLabs, Kokoro, xAI, Qwen 3, Orpheus, Chatterbox, MiniMax, Inworld, Gemini Flash).
You want streaming audio returned sentence-by-sentence.
You need style/emotion control on supported models.
Response is the raw audio (Content-Type matches response_format).
Request schema
Field
Type
Default
Notes
input
string
—
Required. Up to 4096 characters.
model
enum
tts-kokoro (OpenAPI schema default)
See model list below. tts-xai-v1 is the recommended frontier default; pick the model that fits your voice + language needs.
voice
string, ≤ 512
model-specific (e.g. eve for tts-xai-v1)
Voice is model-specific — wrong combo = 400. See voice families. Also accepts a cloned-voice handle (vv_…) from POST /audio/voices, paired with the same model that created it.
response_format
mp3 / opus / aac / flac / wav / pcm
mp3
pcm returns 24 kHz signed-16 LE for pipelines.
speed
number
1.0
Range 0.25–4.0.
streaming
bool
false
true → streamed sentence-by-sentence as audio continues to generate.
language
string
—
Optional hint. Accepted form depends on model (Qwen 3 = full names like English; xAI / ElevenLabs = ISO 639-1 like en; MiniMax = full names). Unsupported values silently ignored.
prompt
string, ≤ 500
—
Emotion / style cue. Only for models with supportsPromptParam (Qwen 3 currently). Examples: "Very happy.", "Sad and slow.".
temperature
0–2
—
Sampling temperature. Only for models with (Qwen 3, Orpheus, Chatterbox HD).
Models
Model ID
Family
Highlights
tts-xai-v1
xAI
Recommended default. Conversational style, ISO 639-1 language hints.
tts-kokoro
Kokoro
OpenAPI schema default. Multilingual, many voices across languages.
Multilingual across en/de/es/fr/pt, where the voice picks the language (there is no separate language parameter). Proprietary upstream, so capabilities.private is false.
Always inspect the entry for your model in GET /models?type=tts — model_spec.voices is the authoritative voice list. Per-model toggles like supportsPromptParam, supportsTemperatureParam, supportsTopPParam live on the internal model definitions but are not currently exposed on /models — treat the request schema below (instructions, temperature, top_p) as the support matrix.
The voice sample, multipart field name file. Accepted containers depend on the model. Aim for a clean speech recording of at least 5–10 seconds.
model
tts-chatterbox-hd (default) or tts-minimax-speech-02-hd.
Model
Containers
Persistence
Availability
tts-chatterbox-hd
MP3, WAV, FLAC, M4A
Zero-shot. No voice template is derived; the reference audio is stored with a TTL and re-read on every synthesis call. Handles expire after 7 days, full stop.
Regular users.
tts-minimax-speech-02-hd
MP3, WAV only
Persistent. The provider derives a voice template that survives across calls. Auto-deleted after 7 days without use; each successful TTS request resets the window.
A handle is bound to the model that created it. Pass a vv_… handle with a
different model on /audio/speech and the call fails.
Samples in a container outside the per-model allowlist are rejected with 400
before anything is uploaded. Beyond the shared TTS error codes, this endpoint
also returns 403 and 413 (sample too large).
Streaming
{"model":"tts-xai-v1","voice":"eve","input":"Hello, this is a long document to narrate. ...","streaming":true,"response_format":"mp3"}
With streaming: true, the HTTP body is a chunked audio stream. Decode as it arrives — useful for latency-sensitive UIs. response_format: pcm pairs well with browser Web Audio API for raw playback.
{"model":"tts-qwen3-1-7b","voice":"Vivian","input":"We did it!","prompt":"Excited and energetic.","temperature":0.9,"top_p":0.95}
For other families, emotion comes from the voice choice itself (e.g. Inworld Hades vs Pixie). prompt / temperature / top_p are silently ignored.
Errors
Code
Meaning
400
Bad voice/model combo, input too long (>4096), language hint rejected by a strict model, invalid voice for the chosen model.
401
Auth / Pro-only model.
402
Insufficient balance.
429
Rate limited.
500 / 503
Inference / capacity issue — retry with jitter.
Gotchas
input hard cap is 4096 chars. For books / long content, split on sentence boundaries and concatenate audio client-side.
streaming: true + SDKs: some OpenAI SDK versions don't expose streaming for audio.speech.create; call the REST endpoint directly and consume the HTTP body.
speed compounds with model internal speech rate — extreme values (0.25, 4.0) often sound unnatural; keep within 0.8–1.3 for narration.
Voice names are case-sensitive (eve ≠ EVE, af_sky ≠ AF_SKY).
Cloned voices expire. Chatterbox handles die 7 days after creation no matter what; MiniMax handles die after 7 days of no use. Re-clone rather than assuming a handle you stored last month still resolves.
Gradium has no language parameter. Pick the voice for the language you want.