Speech API
Render up to 50 speaker blocks into one audio result.
Use POST /speech with generations:write scope. Speech is asynchronous and uses the same workspace credits as app generation.
Models and voices
verbatik/speech-lite: preset voices from the Speech Lite catalog.fal-ai/minimax/speech-2.8-turbo: Speech Cloning presets and workspace custom voices.
Use GET /voices/catalog for preset IDs. For custom voices, use the resource ID returned by /voices with the Speech Cloning model.
Create speech
Each request contains 1–50 blocks. Each block requires non-empty text and can provide a voice. The total text across the request is limited to 25,000 characters for Speech Lite and 5,000 for Speech Cloning. Split longer scripts into smaller requests.
Settings
| Setting | Range or default |
|---|---|
speed | 0.5–2, default 1 |
volume | 0.1–10, default 1 |
loudness_normalization | Default true |
text_normalization | Default false |
tag_compatible | Default true |
These are JSON fields, not legacy X-Voice-ID headers. Use supported expressive tags for the model; do not send an old SSML request body to this endpoint.
Retrieve the result
Creation returns 202. Poll GET /speech/{id} with generations:read, or inspect the job through GET /jobs/{id}. Read the completed outputs and any errors before using the audio.
A new request creates a new charged generation. Reuse the same idempotency key and body when retrying the same request after a network failure.