Realtime TTS‑2 updates: reasoning, speed and consistency
Realtime TTS-2 now thinks before it speaks, generates faster and holds a voice steady across long sessions. Same model ID, no integration changes.
- 1st
- speech model with reasoning: it decides how to say a line before saying it
- ~13%
- faster generation on short utterances, ~9% on mid-length
- 46 ms
- median first audio for Realtime TTS-2 Flash, ranked fastest of 27 models by Cekura (full text sent upfront)
- 93.4%
- of hard items read correctly by Realtime TTS-2
Today we're shipping two updates to Realtime TTS-2. Reasoning makes it the first speech model that decides how to say a line before saying it: TTS-2 reads the text and any context you send, writes a short delivery direction, then performs it. An updated model generates speech faster, matches reference voices more closely and holds steady across long sessions and long text.
Both run behind the same public model ID, inworld-tts-2. The update reaches existing integrations automatically as it rolls out by serving region; Reasoning is opt-in, one field on the request.
Reasoning
Realtime TTS‑2 reads a line and its context, decides how it should sound, then performs it.
01How it works
Speech models read the text they're given, and nothing tells them how it should sound. In a consumer app, your LLM generates every reply at runtime, so there's no one to add that direction by hand. A line like "I can't believe you did that." can mean delight, hurt or disbelief, and without context the model gives each of them the same neutral read.
Reasoning adds one step before synthesis, inside the same TTS-2 request:
- 1 · You send
“I can’t believe you did that.”
Context, never spoken
A friend has arranged an unexpected reunion.
- 2 · Reasoning
TTS-2 reasons about the line and its context, then writes a direction.
warm, delighted, speaking through a smile
- 3 · TTS-2 performs
Audio, plus the direction it chose, in the response.
Your callExplicit instructions and inline tags always override the direction Reasoning writes.
There's no extra service to call or host. The reasoning step is a language model whose only job is to write the delivery direction for TTS-2. The direction comes back in the API response, and any instructions or tags you set yourself take precedence.
02Why it beats emotion tags
Emotion tags are a fixed list. Something has to pick a label like [happy] for each line, usually your own LLM following prompt rules, and the voice plays that label. Reasoning writes a free-form direction instead, like warm, delighted, speaking through a smile, so a single read can set emotion, tone and pacing together, based on the context you pass.
[happy] I can’t believe you did that.
One label from a fixed list, chosen for each line. It sounds the same in every scene, and someone has to choose it.
A betrayal needs a different tag, and a different rule in your prompt to pick it.
“I can’t believe you did that.”
A friend has arranged an unexpected reunion.
warm, delighted, speaking through a smile
- Tone
- warm
- Emotion
- delighted
- Delivery
- through a smile
A partner has just admitted a betrayal.
quiet, hurt, with restrained disbelief
- Volume
- quiet
- Emotion
- hurt
- Delivery
- restrained disbelief
No tag vocabulary in your prompt, no rules to maintain, no scripts to tag by hand. Enable it and pass the context you already have.
Each line gets a direction based on its context, so delivery varies the way a person's does instead of switching between a few preset emotions.
03Try it today
Enable Reasoning in the request and pass context in its own field. Context shapes the delivery but is never spoken. The response includes the generated direction, so you can log it alongside the input and adjust your context when a read is off.
curl -X POST https://api.inworld.ai/tts/v1/voice \
-H "Authorization: Basic $INWORLD_API_KEY" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"text": "I can't believe you did that.",
"voiceId": "Reed",
"modelId": "inworld-tts-2",
"synthesisContext": {
"reasoning": "REASONING_ON",
"reasoningContext": "A friend has arranged an unexpected reunion."
}
}
JSON{
"audioContent": "UklGRiQAAABXQVZFZm10...",
"usage": { "processedCharactersCount": 29, "modelId": "inworld-tts-2" },
"reasoningInstruction": "Breathless and stunned, like a friend seeing a long-lost face."
}Reasoning runs on TTS-2 synthesis, streaming and async requests. That suits audio you generate per message or ahead of time, like voice messages from a companion, generated stories and lessons, audiobooks, or pre-generated character lines. WebSocket streaming, duplex (including the Realtime API) and batch synthesis are coming soon.
- Synthesis and streaming with TTS-2One request, one line of audio
- Async synthesisLong-form audio, such as audiobooks
- Voice messages and check-insFrom a companion or coach
- Stories, recaps and lessonsGenerated per user
- Pre-generated character linesFor games and social apps
- WebSocket streaming
- Duplex, including the Realtime API
- Batch synthesis
For parameters and limits, see the Reasoning documentation.
An updated model
Faster generation, closer voice matches and steadier long sessions, behind the same model ID at the same price.
04Faster generation across utterance lengths
The updated model addresses the failures that become apparent across real workloads. A voice application can move from a short acknowledgment to a detailed explanation, then read a date or confirmation code aloud. A companion might continue that exchange for an entire session. Across those, a voice can gradually change, a word can be skipped in a long passage, or a consonant lost at the end of a sentence.
In our comparisons with the previous version of TTS-2, short utterances are about 13% faster to generate, and mid-length utterances are about 9% faster. Generation speed is also more consistent across input lengths. That matters for applications whose responses vary in length: a voice agent may acknowledge a request in a few words before giving a longer explanation, and a tutor may move between a quick correction and a full worked example.
These figures describe TTS generation performance. The response delay a listener experiences also depends on turn detection, language model generation, network transit, and playback buffering. Measure those components separately when evaluating your application's latency.
- Turn detectionhears the pause
- LLMwrites the reply
- TTSturns it into speech
- Networkcarries the audio
- Playbackbuffers and plays
The updated model speeds up the TTS step. Measure each step when you evaluate latency.
05More consistent voices and more reliable speech
The updated model improves voice similarity in Stable mode, particularly for voices that have been difficult to clone accurately, and reduces voice drift during long duplex sessions. Custom voices stay closer to the reference speaker, while companions and voice agents maintain a more consistent identity as the conversation develops.
It also fixes cases where TTS-2 skipped words in long utterances or dropped plosives on some word endings. Preserving these consonants, such as /p/, /t/, and /k/, makes affected word endings clearer. For audiobooks and articles read aloud, complete readings preserve the source text; for language learners and callers, clear pronunciation makes spoken details easier to understand.
Creative mode now produces more natural delivery, with light built-in steering. For interactive characters and companions, this improves how a line is performed as well as how the voice sounds. Use Stable mode when voice consistency is the priority, and test Creative mode where a more expressive performance fits the experience. The audio generation documentation explains the available delivery modes.
Evaluate these improvements across full passages and extended sessions, with the lines your application actually generates. Compare cloned voices with their references, listen to samples from the beginning and end of a conversation for drift, and check generated speech against the source for omitted words or unclear endings. Assess these separately from naturalness and expressiveness.
06Independent benchmarks for speed and accuracy
Cekura's independent benchmark provides context for the TTS-2 family. Its results, updated October 28, 2026, distinguish TTS-2 from Realtime TTS-2 Flash:
- Realtime TTS-2 Flash: 46 ms median, 73 ms p90 to the first audible sound, with the complete text supplied upfront. Cekura ranks that the fastest of the 27 models it tested in the non-streaming category. Its word-by-word input test is a separate measure.
- Realtime TTS-2: 93.4% of difficult items read correctly, across numbers and shorthand, codes and addresses, words that depend on context, and medical terms.
Cekura times the first result from the moment the full sentence is sent to the first audible sound. The accuracy result is estimated from speech-to-text transcripts rather than human listening. Every model read the same 104 agent sentences, three times each, from one US East cloud region; see the methodology. These are results for the models Cekura tested, before this update and without Reasoning. The 13% and 9% speed improvements above come from our comparison of the updated and previous models.
07Keep your integration and hear the difference
If you already use inworld-tts-2, continue using your existing integration. The update rolls out behind that identifier, with no API migration and no price change. Reasoning is opt-in: nothing changes in your audio until you enable it on a request.
Try the updated model on the inputs that matter to your product: a difficult reference voice in Stable mode, an extended duplex conversation, or a long passage that previously lost words. If you have saved baseline audio, use the same text, voice, and settings to make the comparison useful. Then enable Reasoning on a few lines with the context your app already has, and compare the reads.
For a repeatable evaluation, the Inworld TTS Open Evaluation Toolkit provides per-sample measurements and reports that let you inspect the errors behind aggregate scores. Combine transcript checks with listening tests on your production voices and languages.