Home Blog

How to Use the TTS 2 Flash API

How to Use the TTS 2 Flash API

Sep 4, 2026

EmpirioLabs AI

TTS 2 Flash is available on EmpirioLabs. Inworld shipped the Realtime TTS-2 family to general availability, and Flash is the latency-first member of it. It holds a single voice identity across 200+ languages and locales, streams audio as it synthesises, and can return per-word or per-character timestamps. Realtime TTS-2, the quality-first model in the same family, is live on the platform alongside it.

What TTS 2 Flash supports

Flash takes text in and returns audio. It covers 200+ languages and locales with one voice identity, so the same voice ID keeps its character when you switch language, including switching partway through a generation. Output comes back as MP3, WAV, OGG, FLAC, PCM, A-law, or mu-law at sample rates from 8 kHz to 48 kHz.

The voice dropdown exposes 20 hand-picked presets. That is a convenience list, not the catalogue: pass any other voice ID, including regional and cloned voices, through voice_id, and call the voices endpoint to enumerate what is available.

How to call TTS 2 Flash

Use the OpenAI-compatible speech endpoint and set model to tts-2-flash:

curl https://api.empiriolabs.ai/v1/audio/speech \
  -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "tts-2-flash",
    "input": "Hello, and thank you for calling. How can I help you today?",
    "voice": "Ashley",
    "language": "en-US",
    "output_format": "MP3"
  }'

The response carries a signed URL for the generated audio plus a usage block with the character count that was billed. Billing is per character of input, so cost tracks the text you send rather than the length of the audio that comes back.

Streaming

For voice agents and anything that plays audio while it is still being produced, post to the streaming variant of the same endpoint. It returns Server-Sent Events: audio.chunk events carrying base64 audio as it is synthesised, optional audio.timestamps events when you asked for word or character timing, and a final audio.done event with a replay URL and the usage block. Set timestamp_type to WORD or CHARACTER when you are driving captions or a highlight UI.

Choosing between TTS 2 and TTS 2 Flash

Both models share the same request shape, the same voices, and the same language coverage, so switching is a one-word change to model. The difference that matters when you pick is delivery control.

Realtime TTS-2 accepts plain-English voice direction: open the text with a bracketed instruction and the model performs the line that way instead of reading the instruction aloud. It understands both short directives and free-form briefs.

{
  "model": "tts-2",
  "input": "[Speak warmly, like you are greeting an old friend] Good morning, it is good to see you again.",
  "voice": "Ashley"
}

TTS 2 Flash does not apply that direction. Send the same bracketed text to Flash and it is ignored, so reach for TTS 2 when the performance matters and for Flash when latency and volume matter. On Flash, shape delivery with the speed and temperature controls instead.

Notes worth knowing before your first call

  • Voice direction is TTS 2 only. Flash silently ignores a bracketed directive rather than rejecting it, so a prompt written for TTS 2 will run on Flash and simply come back undirected.
  • Direction text is billed. The bracketed instruction counts toward the character total for the request even though it is never spoken, so keep briefs short.
  • The per-request limit is 2,000 characters. Chunk longer copy at sentence boundaries on the client and concatenate the audio, rather than sending one long block.
  • Text normalization is on by default. Numbers, dates, and abbreviations are expanded into spoken form, which also means the billed character count can exceed the length of the string you sent. Turn it off if you have already normalized the text yourself.

Get started

Try TTS 2 Flash in the Playground, read the API reference, or see current rates on the model page.

Ready to use better endpoints?

Explore our models, or contact us about business inquiries, custom deployments, or anything else.