Loly 3.5
Text-to-Speech (SSE)
Uses the same JSON fields as batch generation and returns progressive text/event-stream events.
POST
/api/v1/tts/sseOn this page
Code examples
curl -N -X POST https://studio.evomlabs.com/api/v1/tts/sse \
-H "Authorization: Bearer vc_sk_live_YOUR_KEY" \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-d '{"text":"Xin chào","language":"vi"}'Request
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
text | string | Yes | - | Text to speak, not empty, up to 5,000 characters. |
voice_id | string | No | - | Required with an account key. Omit with a voice key; if provided, it must match the key-bound voice. |
language | string | No | auto | auto, or one code or full name from the 646-language catalog. |
format | "mp3" | "wav" | No | mp3 | Exactly mp3 or wav. The returned container and MIME match this value. |
speed | number | No | 1.0 | Playback rate, clamped to 0.5 to 1.5. |
cfg_value | number | No | 2.0 | How closely to follow the reference voice. A finite number from 0.0 to 4.0, including 0. |
dit_steps | integer | No | 10 | Diffusion steps. An integer from 0 to 64, including 0. |
The allowance is deducted up front by text.length, including any whitespace in the string you send.
Response
JSON
event: start
data: {"sample_rate":24000,"channels":1,"format":"pcm_s16le","encoding":"base64"}
event: audio
data: {"sequence":1,"audio":"<base64 PCM16 little-endian>"}
event: done
data: {"chunks":12,"duration_ms":5230,"elapsed_ms":6100}Important
Exactly one start event comes first, then one or more audio events in increasing sequence order, then one done event. An error event has code GENERATION_FAILED and replaces done if generation fails after the stream begins.
Errors
REST failures use the documented error envelope. Handle the error code instead of matching the human-readable message.
Error codesWas this page helpful?