Inworld AI: Realtime TTS-2
Inworld's flagship text-to-speech model: 200+ languages and locales, natural-language steering with persistent bracketed instruction tags, word/character timestamps with phoneme and viseme detail, instant and professional voice cloning, and a reported 100 ms P90 server-side time to first audio byte.
Providers
Different providers can host the same model. Choose one provider when you need a fixed backend, or let routing select among them.
Supported languages
ar
zh
nl
en
fr
de
he
hi
it
ja
ko
pl
pt
ru
es
af
sq
am
hy
as
az
eu
be
bn
bg
my
yue
ca
ceb
hr
cs
da
yih
arz
et
fil
fi
gl
gbm
ka
el
gu
afb
ht
acw
hu
is
id
jv
kn
kk
kok
lo
lv
ayl
lt
lb
mk
mai
mg
ms
ml
mr
mn
ars
ne
uzn
nb
nn
or
acx
ps
fa
pms
pa
ro
sr
sd
si
sk
sl
sw
sv
ta
te
th
aeb
tr
uk
ur
uz
vi
vro
cy
Voices
Features
Generates spoken audio from text input.
text_to_speech
HTTP chunked streaming (POST /tts/v1/voice:stream, newline-delimited JSON with base64 audio) and a bidirectional WebSocket API.
streaming
Async job API (POST /tts/v1/voice:synthesizeAsync) accepts up to 100,000 characters per job (On-Demand accounts capped at 10,000) and stitches the audio server-side; the sync and streaming APIs cap text at 2,000 characters.
async_long_text
Batch job API (POST /tts/v1/voice:synthesizeBatch, marked Preview) accepts up to 10,000 items of 100,000 characters each, capped at 10,000 characters per whole batch on On-Demand accounts, and is metered 20% below realtime synthesis on every plan.
batch
timestampType=WORD returns timestampInfo.wordAlignment with per-token start and end times, and CHARACTER returns characterAlignment.
word_timestamps
WORD timestamps include phoneticDetails with IPA phone symbols, durations and viseme symbols for lip-sync.
visemes
High-quality instant voice cloning (IVC) is supported.
instant_voice_cloning
200+ languages and locales, with cross-lingual synthesis and voice localization.
multilingual
audioConfig.speakingRate accepts 0.5-1.5 (1.0 = native speed).
speed_control
Bracketed non-verbal sounds such as [laugh] and [sigh] work on both TTS-2 models.
non_verbal_tags
synthesisContext.previousRequests supplies prior turns' text as context.
synthesis_context
Bracketed instruction tags and the request-level instruction field direct delivery, and a tag persists until changed or [reset].
instruction_steering
deliveryMode (STABLE, BALANCED or CREATIVE) trades consistency against emotional range and defaults to BALANCED.
delivery_mode
Professional Voice Cloning is documented as supported on inworld-tts-2 only.
professional_voice_cloning
Code
ElevenLabs SDK streaming TTS
Routes the ElevenLabs SDK through allmodels and streams the audio response.
import { ElevenLabsClient } from "elevenlabs";
const client = new ElevenLabsClient({
apiKey: process.env.ALLMODELS_API_KEY,
baseUrl: "https://api.allmodels.io/el"
});
const stream = await client.textToSpeech.stream("voice_id", {
text: "I'm sorry, Dave. I'm afraid I can't do that.",
modelId: "inworld/inworld-tts-2",
outputFormat: "mp3_44100_128"
}, {
queryParams: {
provider: {
"only": [
"inworld"
]
}
}
});
const reader = stream.getReader();
for (;;) {
const { done, value } = await reader.read();
if (done) break;
// Write value to your response, file, or audio playback pipeline.
}
