Loly 3.5
Batch generation
Waits until the audio is ready, then returns a URL to download it. A voice key already selects its voice; an account key must provide voice_id and pass its TTS and voice-scope permissions.
POST
/api/v1/tts/generateOn this page
Code examples
curl -X POST https://studio.evomlabs.com/api/v1/tts/generate \
-H "Authorization: Bearer vc_sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Xin chào, đây là bài test giọng nói.",
"language": "vi",
"format": "wav",
"cfg_value": 2.0,
"dit_steps": 10
}'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
{
"ok": true,
"data": {
"success": true,
"request_id": "cmp3sih7p0002v9o670rd59xc",
"voice_id": "clx8abc123def",
"audio_url": "https://cdn.example.com/v1_tts/user123/audio.wav",
"text": "Xin chào, đây là bài test giọng nói.",
"duration": null,
"status": "completed",
"chars_deducted": 34
}
}Errors
REST failures use the documented error envelope. Handle the error code instead of matching the human-readable message.
Error codesWas this page helpful?