TTS 2 API

Realtime voice model with plain-English voice direction, one voice identity across 100+ languages, and sub-200ms streaming time-to-first-audio.

InworldAudio GenerationReleased May 5, 2026Proprietary EndpointNew

About TTS 2

Realtime voice model with plain-English voice direction, one voice identity across 100+ languages, and sub-200ms streaming time-to-first-audio.

Also known as Inworld TTS 2, TTS-2

multi speakerreal timelow latencystreamingword timestampscharacter timestampsmultilingualexpressive prosody

TTS 2 specs

Model ID
tts-2
Provider
Inworld
Category
Audio Generation
Released
May 5, 2026
Input
Text
Output
Audio
Endpoints
POST/v1/audio/speechPOST/v1/audio/speech:streamGET/v1/voices
Alternate model IDs
inworld-tts-2

TTS 2 API pricingSave up to 12%

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
Synthesis
per 1M characters
$25.00$22.00
Compare on the full pricing page

How to call the TTS 2 API

TTS 2 serves speech through POST /v1/audio/speech and returns playable audio. Send the text to speak as input with the model id tts-2. Get an API key from the EmpirioLabs dashboard.

cURL
curl https://api.empiriolabs.ai/v1/audio/speech \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-2",
    "input": "Welcome to EmpirioLabs. Your build just finished."
  }' \
  --output speech.mp3
Python
import requests

response = requests.post(
    "https://api.empiriolabs.ai/v1/audio/speech",
    headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    json={"model": "tts-2", "input": "Welcome to EmpirioLabs."},
)
with open("speech.mp3", "wb") as f:
    f.write(response.content)
Full TTS 2 API reference

TTS 2 API parameters

Request parameters supported by the TTS 2 API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
inputstring-max 2000Text to synthesize. Max 2,000 characters per request; chunk longer copy at sentence boundaries on the client.
voiceenumSarahSarah, Olivia, Elizabeth, Ashley, Wendy, Julia, Priya, Pixie,...Voice preset. 20 hand-picked voices covering English, Spanish, Portuguese, Hindi, and various accents. For the full voice catalog (including cloned voices), use...
voice_idstring--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...
languageenumen-USen-US, en-GB, es-ES, es-MX, fr-FR, de-DE, it-IT, pt-BR, pt-PT...BCP-47 language code. This model holds one voice identity across 100+ languages; pass any supported code here even if it is not in the dropdown.
output_formatenumWAVMP3, WAV, OGG, FLAC, PCM, ALAW, MULAWAudio container/codec. WAV = LINEAR16 inside RIFF (ubiquitous). MP3 / OGG = compressed. PCM = headerless raw, useful for chunked real-time playback. FLAC = lossless.
sample_rateenum240008000, 16000, 22050, 24000, 32000, 44100, 48000Output sample rate in Hz. 24000 is Inworld's default and what their voice models train at; raise to 48000 for broadcast quality.
speednumber10.5 to 1.5Speaking rate multiplier. 0.5 = half speed, 1.5 = 50% faster.
temperaturenumber10.1 to 2Voice expressiveness / variability. Lower = more consistent / "flat"; higher = more expressive but more variation between renders.
bit_ratenumber12800032000 to 320000Bitrate in bps for MP3 / OGG_OPUS. Ignored for other encodings.
apply_text_normalizationenumONON, OFFWhen ON, Inworld expands numbers / abbreviations / dates into spoken form ("USD 5" → "five US dollars").
timestamp_typeenumNONENONE, WORD, CHARACTERIf non-NONE, the response includes per-word or per-character timestamps in timestamp_info. Useful for caption / highlight UIs.

Good to know

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

Latency

  • p90 TTFB: under 200 ms (Inworld benchmark)

Voices

  • One voice identity held across 100+ languages
  • Curated presets in the dropdown; pass any other voice ID via voice_id
  • Plain-English voice direction to steer tone and delivery

TTS 2 API: common questions

How much does the TTS 2 API cost?

On EmpirioLabs, TTS 2 is billed pay as you go. The live rate card on this page always matches what the API charges.

Which endpoint does TTS 2 use?

TTS 2 is served through POST /v1/audio/speech on api.empiriolabs.ai with standard bearer-token authentication.

Can I try TTS 2 in the browser before integrating?

Yes. The EmpirioLabs playground runs TTS 2 in the browser with the same parameters the API exposes, so you can test prompts before writing code.

How do I get a TTS 2 API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.