TTS 2 Flash

TTS 2 Flash
Inworld · Audio Generation
POST /v1/audio/speech

Latency-first realtime voice synthesis holding one voice identity across 200+ languages, tuned for high-volume streaming workloads.

At a glance

FieldValue
Model idtts-2-flash
Model release date2026-09-02
Input modalitiesText
Output modalitiesAudio
Context window-
Weight precision-
Featuresmulti_speaker, real_time, low_latency, streaming, word_timestamps, character_timestamps, multilingual
Native inferenceNo
NewYes
Supported endpointsPOST /v1/audio/speech, POST /v1/audio/speech:stream, GET /v1/voices
Alternate model idsinworld-tts-2-flash

Pricing

ChargeSpecRate
Synthesisper 1M characters$10.50 (was $15.00)

Example request

$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 from EmpirioLabs."}'

Parameters

ParameterTypeRequiredDefaultDescription
inputstringyes-Text to synthesize. Max 2,000 characters per request; chunk longer copy at sentence boundaries on the client. This model does not apply bracketed delivery direction; use TTS 2 when you need it. · Max: 2000
voiceenumno"Sarah"Voice preset. 20 hand-picked voices covering English, Spanish, Portuguese, Hindi, and various accents. For the full voice catalog (including cloned voices), use voice_id instead. · Allowed: Sarah, Olivia, Elizabeth, Ashley, Wendy, Julia, Priya, Pixie, Deborah, Alex, Mark, Edward, Theodore, Ronald, Dennis, Timothy, Shaun, Craig, Hades, Heitor
voice_idstringno-Free-form voice ID. Overrides voice when set. Use this to address any voice beyond the curated 20-preset list, including cloned and regional voices. Pass any voice name from GET /v1/voices. Example: Ashley, Mark.
languageenumno"en-US"BCP-47 language code. This model holds one voice identity across 200+ languages and locales, so you can pass any supported code here even if it is not in the dropdown. · Allowed: en-US, en-GB, es-ES, es-MX, fr-FR, de-DE, it-IT, pt-BR, pt-PT, nl-NL, pl-PL, ru-RU, ja-JP, ko-KR, zh-CN, hi-IN, ar-EG, he-IL, tr-TR, vi-VN, th-TH, id-ID, uk-UA, el-GR, cs-CZ, sv-SE
output_formatenumno"WAV"Audio container/codec. WAV = LINEAR16 inside RIFF (ubiquitous). MP3 / OGG = compressed. PCM = headerless raw, useful for chunked real-time playback. FLAC = lossless. · Allowed: MP3, WAV, OGG, FLAC, PCM, ALAW, MULAW
sample_rateenumno"24000"Output sample rate in Hz. 24000 is Inworld’s default and what their voice models train at; raise to 48000 for broadcast quality. · Allowed: 8000, 16000, 22050, 24000, 32000, 44100, 48000
speednumberno1.0Speaking rate multiplier. 0.5 = half speed, 1.5 = 50% faster. · Range: 0.5 – 1.5
temperaturenumberno1.0Voice expressiveness / variability. Lower = more consistent / “flat”; higher = more expressive but more variation between renders. · Range: 0.1 – 2.0
bit_ratenumberno128000Bitrate in bps for MP3 / OGG_OPUS. Ignored for other encodings. · Range: 32000 – 320000
apply_text_normalizationenumno"ON"When ON, Inworld expands numbers / abbreviations / dates into spoken form (“USD 5” → “five US dollars”). · Allowed: ON, OFF
timestamp_typeenumno"NONE"If non-NONE, the response includes per-word or per-character timestamps in timestamp_info. Useful for caption / highlight UIs. · Allowed: NONE, WORD, CHARACTER

Notes

Limits

  • Max input: 2,000 characters per request (chunk longer text at sentence boundaries)
  • WebSocket: 20 concurrent connections, 5 contexts/connection
  • Per-WS message: 1,000 characters

Voice direction

  • This model does not apply bracketed plain-English delivery direction. Use TTS 2 when you need it, or shape delivery here with the speed and temperature controls.

Latency

  • p90 TTFB: under 25 ms (Inworld benchmark)

Voices

  • One voice identity held across 200+ languages and locales, including switching language mid-generation
  • Curated presets in the dropdown; pass any other voice ID via voice_id

Machine-readable schema: GET https://api.empiriolabs.ai/v1/models/tts-2-flash.