all dispatches
Text to Speech APIOct 20, 20269 min read

Inworld TTS 1.5: 8 Things to Know Before You Build

Inworld TTS 1.5 is built for the half second that makes or breaks a voice conversation. Here are eight things to know about Max vs Mini, voices, formats and timing before you build.

Inworld TTS 1.5: 8 Things to Know Before You Build

Nobody notices a good voice. They notice the gap before it. Your agent finishes thinking, the user waits, and somewhere around the half-second mark the conversation stops feeling like one. Quality can't fix that. Neither can a nicer voice. The only fix is speech that starts sooner, and that's the whole pitch of Inworld TTS 1.5.

Inworld TTS 1.5 is Inworld's realtime text-to-speech generation, released on January 21, 2026, and it's live on each::labs. If you searched "Inworld AI" because a game studio or a voice agent team mentioned it, this is the model they mean. Below are eight things worth knowing before you wire it into anything, pulled from Inworld's own release notes and from the parameters the each::labs API actually accepts. No guesswork, no vibes.

1. Inworld TTS Ships as Two Models, and the Default Isn't the Flagship

Inworld TTS 1.5 comes in two flavors: inworld-tts-1.5-max and inworld-tts-1.5-mini. Inworld describes Max as its flagship, the one "ideal for most use cases, with the best balance of quality and speed." Mini is the latency-first option, for when getting the first sound out matters more than anything else.

Here's the detail people miss. On each::labs, the model_id field defaults to inworld-tts-1.5-mini. So if you send a request without thinking about it, you get the fast one, not the one Inworld recommends for most work. That's a sensible default for an API where people often build live agents first. It's the wrong default for a narrated product video.

Our take: decide per surface, not per project. A support bot answering in real time runs on Mini. The onboarding voiceover you'll render once and play ten thousand times runs on Max. Same voice, same parameters, one field changed. Treat the model choice as a property of the moment the audio is heard, and you'll stop arguing about which one is "better."

Listeners forgive a plain voice. They never forgive the pause.
Listeners forgive a plain voice. They never forgive the pause.

2. Inworld TTS Latency: What Under 130ms Actually Buys You

Inworld's release notes put the P90 time to first audio chunk at "under 250ms for our Max model and under 130ms for our Mini model," which it calls a 4x improvement over TTS-1. P90 is the number to care about here. Averages hide the slow requests, and the slow requests are the ones users remember.

Why does a first chunk matter more than total generation time? Because a listener only waits for the first syllable. Once audio is playing, the rest can keep arriving behind it. In a voice agent, your end-to-end delay is speech recognition plus the language model plus this number, so every millisecond you shave off speech is a millisecond you can spend on a smarter reply. In a game, it's the difference between an NPC who answers and one who seems to be loading.

Under 130ms is fast enough that the voice stops being the bottleneck in most pipelines. Under 250ms on Max is still comfortably conversational. Pick Mini when the voice is the last link in a live chain. Pick Max when you've got a little headroom and want the richer read.

A voice that skips a word is a bug with good diction.
A voice that skips a word is a bug with good diction.

3. It's More Expressive and Gets the Words Right More Often

Speed is the headline, but Inworld paired it with two quality claims. TTS 1.5 is "30% more expressive than prior generations" and shows "a 40% reduction in word error rates." Read the second one twice. Word error rate in TTS means the model said something other than what you wrote: a skipped word, a swapped one, a mangled name.

That's the failure that actually ships bugs. An expressive voice that drops "not" from "do not unplug the device" is worse than a flat voice that says it. A 40% drop in those errors is the kind of improvement you feel in QA, not in a demo. Expressiveness gets the applause. Accuracy keeps the support tickets down.

The same release added Hindi, Arabic and Hebrew, bringing Inworld TTS to 15 supported languages. If you're building for South Asia or the Middle East, that's the line in the changelog that matters most.

4. Pick a Voice Before You Tune Anything Else

The each::labs schema lists 113 named voices for voice_id, with Alex as the default. English options run from Ashley, Craig and Deborah to Olivia, Priya and Theodore, plus character-flavored names like Hades, Pixie and Snik that hint at what game teams use this for. Scroll further and you hit Hélène and Mathieu, Satoshi and Asuka, Minji and Hyunwoo, Wojciech, Lupita, Svetlana, Nour and Yael. The roster clearly isn't English with translations bolted on.

Spend your first hour here, not on sliders. A voice is a casting decision, and no amount of rate or temperature tuning will turn the wrong actor into the right one. Write two or three lines that sound like your real product (a greeting, a bad-news message, a number-heavy confirmation) and run them through a shortlist. The voice that handles the bad news well is usually your winner. Anyone sounds fine saying hello.

One practical rule: once you've cast a voice for a character or a brand, write the voice_id into config and never let it drift. Consistency across sessions is what makes a voice feel like someone.

Variability is a dial, not a virtue.
Variability is a dial, not a virtue.

5. Temperature and Speaking Rate Are Two Different Dials

The schema describes temperature as controlling "voice variability," with a range of 0 to 2. Think of it as how much the read is allowed to wander. Lower values keep delivery steady and repeatable, which is what you want for system prompts, IVR menus and anything a user hears over and over. Higher values loosen the read, which suits characters, storytelling and dialogue that should never sound identical twice.

Don't treat the top of the range as a goal. More variability isn't more emotion. It's more risk. Start near the middle, render the same line a few times, and move only if the takes sound either robotic or unpredictable.

speaking_rate runs from 0.5 to 1.5, with 1.0 as the default. It's pacing, not personality. Nudge it down a notch for dense instructions or older audiences, up a notch for short confirmations that shouldn't waste anyone's time. Big swings toward either end tend to sound like an effect rather than a person, so make small moves and judge them in context, next to the audio that plays before and after.

6. Decide Who Reads the Numbers

"Your order #4471 ships 03/11 for 2 items." How should that sound? Text normalization is the step that turns symbols, digits and dates into words a voice can say, and Inworld TTS 1.5 on each::labs exposes it as apply_text_normalization with ON, OFF or the unspecified default.

Turn it ON when your text comes raw from a database or a language model and you want the engine to make sensible spoken choices. Turn it OFF when you've already written everything out the way it should be spoken ("March eleventh," "four four seven one") and you don't want the engine second-guessing you. The worst setup is the one in between: half-normalized text from your own code, then the engine normalizing again on top.

Our position: own the normalization for anything with legal or financial weight, like order numbers, dates and phone numbers, and switch it OFF so the voice reads exactly what you wrote. Let the engine handle it for casual conversation where an odd reading of "2x" won't hurt anyone.

Render for the wire, not for the studio.
Render for the wire, not for the studio.

7. Match the Encoding to the Wire It Travels Over

The schema offers six formats for audio_encoding: MP3 (the default), LINEAR16, OGG_OPUS, FLAC, ALAW and MULAW. sample_rate goes from 8000 to 48000 Hz, and bit_rate takes MP3 values from 32000 up to 320000 bps. That's a lot of choice, and most of it is decided by where the audio ends up, not by taste.

Phone lines want MULAW or ALAW at 8000 Hz. Those are the G.711 telephony codecs, so you skip a conversion step and the audio sounds the way the carrier will deliver it anyway. Web and app playback is happy with MP3 or OGG_OPUS. Video and podcast production wants FLAC or LINEAR16 at 48000 Hz so your editor has clean, uncompressed material to mix.

The common mistake is generating at 48 kHz for a phone call. It doesn't sound better. It just gets downsampled somewhere you can't control. Render for the destination.

8. 2,000 Characters Per Request Means You Design the Chunks

The text field accepts up to 2,000 characters. For a live agent reply, that's plenty. For a five-minute explainer script, it means you're splitting the text, and how you split it shapes how it sounds.

Cut on paragraph breaks first, sentence ends second, and never mid-sentence. Keep the same voice_id, model_id, temperature and speaking rate across every chunk, or the narrator will audibly change between segments. A lower temperature helps here too, because steady delivery hides the seams. Then stitch the files in order. Shorter chunks also play to the model's speed: the first chunk is ready almost immediately, so playback can start while the rest render.

Bonus: Timestamps Turn Speech Into Captions and Lip Sync

The schema includes a timestamp_type field for timing metadata in the response. Inworld's documentation describes the parameter's two granularities, WORD and CHARACTER, and lists exactly the uses you'd expect: word highlighting, karaoke-style captions and lip sync.

This is where TTS becomes a video tool. Generate the line with Inworld TTS 1.5, take the audio into Sync 3 Lipsync with your video, and use the word timings to burn captions that land on the right syllable. We covered how Sync 3 handles a full scene in Sync 3: Lipsync That Reads the Whole Scene, and you can chain the steps into a repeatable pipeline with each::labs flows.

Inworld AI vs Other Text to Speech Models on each::labs

Inworld TTS 1.5 isn't the only voice in the text to voice catalog, and the differences are clear from the schemas alone. xAI Grok TTS accepts up to 15,000 characters per request, ships five voices (eve, ara, rex, sal, leo) and supports inline speech tags like [laugh], [sigh] and <whisper> for directed delivery. MiniMax Speech 2.8 HD takes up to 10,000 characters and gives you an explicit emotion field, pitch shifting, pause markers and broadcast loudness normalization.

So when do you reach for Inworld? When the first syllable has to arrive fast, when you want a big bench of named voices across 15 languages, and when you need telephony codecs and timing data without extra steps. Grok TTS and MiniMax are stronger picks for long single-request narration with scripted emotion. For the full field ranked by job, see our best AI text to speech models of 2026.

One more note on the lineup: Inworld has since released newer models of its own, including TTS-2 in May 2026, which are documented in Inworld's TTS release notes. On each::labs, the version you can run today is 1.5, and everything in this post applies to it.

Frequently Asked Questions

What is Inworld AI known for?

Realtime voice. Inworld builds text-to-speech for conversational products like voice agents and game characters, and its TTS 1.5 release focused on time to first audio, expressiveness and fewer word errors. You can run Inworld TTS 1.5 on each::labs through the same API as every other model in the catalog.

Should I use Inworld TTS 1.5 Max or Mini?

Let the listener decide. If someone is waiting live for a reply, Mini's P90 first chunk under 130ms keeps the exchange natural. If the audio is pre-rendered for video, onboarding or content, Max is Inworld's recommended flagship for most use cases. Remember that each::labs defaults to Mini, so set model_id explicitly when you want Max.

How many languages does Inworld TTS support?

Fifteen as of the 1.5 release, which added Hindi, Arabic and Hebrew. The each::labs voice list reflects that spread, with named voices for French, Japanese, Korean, Polish, Spanish and more alongside the English roster.

Can Inworld TTS handle long scripts?

Yes, in pieces. Each request takes up to 2,000 characters, so split long scripts on paragraph or sentence boundaries, keep every setting identical across chunks and join the files in order. Steady temperature makes the joins disappear.