Inworld TTS 2 is available on Novita AI as a synchronous speech generation API. It fits products where the voice matters: you can steer delivery variation, clone a voice from a short sample, and get word- or character-level timestamps. Send one POST to https://api.novita.ai/v3/inworld-tts-2/tts/v1/voice and receive base64 audio in the same response, billed per million characters under SKU INWORLD_TTS_2.
Key Takeaways
- Inworld TTS 2 is live on Novita AI through native Inworld protocol endpoints. Synthesis and cloning are separate synchronous calls, so there is no task ID to poll.
deliveryModeis the main control.STABLEfavors consistency,BALANCEDis the default behavior, andCREATIVEwidens emotional range.temperatureis ignored on this model.- Voice cloning takes 10 to 30 seconds of audio. Longer samples are truncated, and the cloning call itself is not billed.
- Output is built for video work. Eight encodings and
WORDorCHARACTERtimestamp metadata cover captions, word highlighting, and lip sync. - Billing is per million characters, counted from the
textfield, with Chinese characters counted as two.
What Is Inworld TTS 2?
Inworld TTS 2 is Inworld AI’s text-to-speech model for expressive, low-latency speech, exposed on Novita AI under that name with a fixed model ID. Inworld’s documentation places it in the Realtime TTS-2 family; the API is a native Inworld protocol rather than an OpenAI-compatible wrapper, which is why the request body uses fields such as voiceId, deliveryMode, and audioConfig.
Two controls define the model. A delivery mode changes how much generated audio varies, and a cloning endpoint turns a short recording into a reusable voiceId. Both are per-request features, so the same endpoint can serve a stable narrator and a character voice without switching models.
Inworld TTS 2 Specs and Pricing on Novita AI
| Field | Details |
|---|---|
| Display name | Inworld TTS 2 |
| Model ID | inworld-tts-2 |
| Base URL | https://api.novita.ai |
| Speech synthesis endpoint | POST /v3/inworld-tts-2/tts/v1/voice |
| Voice cloning endpoint | POST /v3/inworld-tts-2/voices/v1/voices:clone |
| Text limit | 2,000 UTF-16 code units per request |
| Output | Base64 audioContent, up to 16 MB after decoding |
| Audio encodings | LINEAR16, MP3, OGG_OPUS, ALAW, MULAW, FLAC, PCM, WAV |
| Sample rate | 8,000 to 48,000 Hz |
| Speaking rate | 0.5 to 1.5; default 1.0 |
| Timestamps | WORD or CHARACTER alignment metadata |
| Pricing | Per million characters in the request text, SKU INWORLD_TTS_2 |
| Best fit | Expressive narration, character voices, and captioned video or avatar audio |
Specs from the Novita AI Inworld TTS 2 API reference and model page, checked October 23, 2026.
Pricing is metered: the per-million-character rate is multiplied by the characters in text and divided by one million, with Chinese characters counting as two. Check the model page for the current dollar rate.
Key Capabilities for Developers
Delivery Mode: Steering How Much the Voice Varies
deliveryMode describes a spectrum rather than three voices. STABLE optimizes for consistent delivery across sessions, which suits long-form narration and documentation. BALANCED is the behavior you get when the field is omitted, and it is the safe default for conversational agents. CREATIVE optimizes for emotional range, so repeated lines yield more distinct takes.
The field applies only to inworld-tts-2. Because temperature is accepted but ignored here, deliveryMode is the supported way to trade consistency for expressiveness. For character-driven products, CREATIVE with a cloned voice is what makes repeated lines sound like performances instead of reads.
Voice Cloning from 10 to 30 Seconds of Audio
Cloning uses a second endpoint. Send a displayName and one or more voiceSamples, each carrying base64 WAV or MP3 in audioData. Novita recommends 10 to 30 seconds per sample and truncates anything longer. The response returns voice.voiceId, which you pass directly as voiceId during synthesis.
Two details are easy to miss. audioProcessingConfig.removeBackgroundNoise strips background noise, but the documentation warns it can reduce quality on already-clean audio, so test it on a representative recording. Language detection is automatic: omit languageCode or set it to auto. The legacy langCode field uses an uppercase format such as EN_US and is mutually exclusive with languageCode.
Plan around two operational limits. Cloning is rate limited more strictly than synthesis, so back off on HTTP 429 during batch onboarding. A cloned voiceId is also shared among all callers using the same API key, and the system does not record who created which voice, so multi-tenant products need their own ownership layer.
Eight Audio Encodings and Word-Level Timestamps
audioConfig.audioEncoding accepts LINEAR16, MP3, OGG_OPUS, ALAW, MULAW, FLAC, PCM, and WAV, defaulting to MP3. audioConfig.bitRate defaults to 128,000 bit/s for compressed formats, sampleRateHertz spans 8,000 to 48,000 Hz, and speakingRate adjusts pace between 0.5 and 1.5.
The timestamp option is the more useful one for video. timestampType set to WORD returns timestampInfo.wordAlignment with start and end times per word; CHARACTER returns characterAlignment at character granularity. That is the metadata a subtitle renderer or lip-sync pipeline needs, delivered with the audio instead of through a separate forced-alignment pass. Request timestamps only when the consumer needs them, since they enlarge every response.
applyTextNormalization controls whether numbers, dates, and abbreviations are expanded before synthesis, and enhanceGeneration applies noise reduction to the output rather than the input. Both are worth testing on your own scripts because normalization changes pronunciation and character counts.
When to Use Inworld TTS 2
- Character dialogue and game NPC voices where
CREATIVEdelivery plus a cloned voice produces varied takes. - Audiobooks and long-form narration where
STABLEkeeps a consistent read across chapters. - Video and avatar pipelines that need timestamps for captions or lip sync in the same response.
- Products with an existing short recording that want cloning without a separate enrollment service.
- Workloads that prefer one synchronous call over task polling, with requests under 2,000 UTF-16 code units.
When Not to Use Inworld TTS 2
- You need streaming audio. This endpoint is synchronous and returns the full base64 audio in one response, up to 16 MB decoded. If first-audio streaming is part of your latency budget, choose a model whose Novita endpoint streams.
- Your scripts are long. At 2,000 UTF-16 code units per request, chapter-length narration requires splitting and stitching audio yourself.
- You need strict tenant isolation on cloned voices. Voices are shared among callers under one API key, so a multi-tenant deployment needs its own ownership layer.
- Your samples are very short or already studio-clean. Very short clips may not capture the voice well, and background-noise removal is not a quality improvement on clean recordings.
How Inworld TTS 2 Fits Your API Workflow
Clone a voice once, store the returned voiceId, and treat it like any catalog ID. At synthesis time, keep the model ID, endpoint, and delivery mode in configuration rather than hardcoding them. Match the encoding to the consumer: MP3 for web playback, WAV or LINEAR16 for editing pipelines, and OGG_OPUS where bandwidth matters. If a renderer needs timing data, set timestampType and parse the alignment object instead of running a separate alignment step.
For a broader first-call walkthrough of a Novita AI voice workflow, the GLM TTS and ASR API Quick Start shows how authentication and response parsing fit together. The MiniMax Speech 2.8 series launch is a useful comparison point for tone-tag-based expressiveness, and the Hailuo Speech 2.5 voice cloning post covers a stricter temporary voice ID lifecycle that Inworld TTS 2 does not impose. The Inworld TTS 2 API reference is the source of record for request fields and error responses.
Conclusion
Inworld TTS 2 on Novita AI is a good default when the voice is part of the product. Delivery mode trades consistency for emotional range, short-sample cloning removes a separate enrollment pipeline, and the encoding and timestamp options make output usable in video and avatar work without post-processing.
The tradeoffs are concrete: synthesis is synchronous and capped at 2,000 UTF-16 code units, cloned voices are shared per API key, and billing is per million characters. Test your own scripts, especially the delivery modes and the background-noise setting, and confirm the current rate on the model page before committing to a cost model.
FAQ
What is the model ID for Inworld TTS 2 on Novita AI?
The model ID is inworld-tts-2. Use it as the modelId field on POST /v3/inworld-tts-2/tts/v1/voice with your Novita AI API key.
How much does Inworld TTS 2 cost on Novita AI?
Novita AI bills Inworld TTS 2 per million characters, counted from the text field, with Chinese characters counting as two. Voice cloning is free. Check the model page for the current dollar rate before budgeting.
What do the delivery mode options do?
STABLE favors consistent delivery, BALANCED is the default behavior, and CREATIVE increases emotional range. The setting applies to Inworld TTS 2 only; temperature is ignored, so use deliveryMode to control variation.
How long should a voice cloning sample be?
Novita AI recommends 10 to 30 seconds of WAV or MP3 audio per sample, and longer samples are truncated. If the recording is noisy, audioProcessingConfig.removeBackgroundNoise can help, though it may reduce quality on already-clean audio.
Does Inworld TTS 2 return timestamps for captions?
Yes. Set timestampType to WORD or CHARACTER, and the response includes timestampInfo with start and end times for subtitle or lip-sync tooling.
Can I change the audio format and sample rate?
Yes. audioConfig.audioEncoding supports eight formats including MP3, WAV, and OGG_OPUS. sampleRateHertz accepts 8,000 to 48,000 Hz, and bitRate defaults to 128,000 bit/s for compressed formats.