# Inworld Realtime TTS 2 > Inworld's most expressive TTS with natural-language steering — put bracketed instructions like [speak quickly] before the text. Real-time latency, 15+ languages, preset or cloned voices. - **Provider**: replicate - **Model ID**: inworld/realtime-tts-2 - **Category**: tts_voice - **Credits**: 59 per request - **Pricing Type**: token_based ## API Endpoint Base URL: https://api.core.today/v1 ### Create Prediction POST /predictions ### Get Status GET /predictions/{job_id} ### Cancel DELETE /predictions/{job_id} ## Authentication Header: `X-API-Key: YOUR_API_KEY` ## Input Parameters - `sample_rate` (integer, optional): Audio sample rate in Hz. (Default: `48000`; Options: `8000`, `16000`, `22050`, `24000`, `32000`, `44100`, `48000`) - `voice_id` (string, optional): The voice to use. Use a preset voice name (e.g. 'Ashley', 'Dennis', 'Alex', 'Darlene') or a custom cloned voice ID. (Default: `Ashley`) - `speaking_rate` (number, optional): Speaking speed multiplier. Set to 0 for normal speed (1.0). (Default: `0`; Range: min: 0, max: 1.5) - `temperature` (number, optional): Controls randomness when generating audio. Higher values produce more expressive results, lower values are more deterministic. Set to 0 to use the model default (1.1). (Default: `0`; Range: min: 0, max: 2) - `audio_format` (string, optional): Output audio format. (Default: `mp3`; Options: `mp3`, `wav`, `ogg_opus`, `flac`) - `language` (string, optional): Language of the input text. Use 'auto' to let the model detect the language. Supported production languages: English (en), Chinese (zh), Japanese (ja), Korean (ko), Russian (ru), Italian (it), Spanish (es), Portuguese (pt), French (fr), German (de), Polish (pl), Dutch (nl), Hindi (hi), Hebrew (he), Arabic (ar). (Default: `auto`; Options: `auto`, `en`, `zh`, `ja`, `ko`, `ru`, `it`, `es`, `pt`, `fr`, `de`, `pl`, `nl`, `hi`, `he`, `ar`) - `text_normalization` (string, optional): Controls whether numbers, dates, and abbreviations are expanded before synthesis. 'auto' lets the model decide, 'on' always normalizes, 'off' reads text as-is. (Default: `auto`; Options: `auto`, `on`, `off`) - `text` (string, **required**): The text to convert to speech. Maximum 2,000 characters. Supports natural-language steering with bracketed instructions placed before the text they apply to (e.g. `[say excitedly]`, `[whisper in a hushed style]`, `[say sadly with deliberate pauses in a low voice]`). Inline non-verbal tags are also supported (e.g. `[laugh]`, `[sigh]`, `[breathe]`, `[clear throat]`, `[cough]`, `[yawn]`). SSML break tags work for pauses (e.g. ``). Capitalize words for emphasis (e.g. `I told you NOT to do that`). ## Example Request ```json { "model": "inworld/realtime-tts-2", "input": { "voice_id": "Dennis", "audio_format": "mp3", "text": "[speak quickly with a clear and direct manner] Your confirmation number is 8 4 7 2 9. Your order will arrive by FRIDAY at 3:45 PM. Total charged: forty-nine ninety-nine." } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending", "provider": "replicate", "model": "black-forest-labs/flux-schnell", "created_at": "2026-01-01T00:00:00Z", "result": null, "error": null } ``` Status values: `pending`, `processing`, `completed`, `failed`, `cancelled` ## Usage Flow 1. POST /predictions with model and input → receive job_id 2. Poll GET /predictions/{job_id} until status is `completed` or `failed` 3. Result contains output URL(s) or data ## Output Type url ## Tags text-to-speech, tts, audio, voice-synthesis, inworld, real-time, steering, multilingual ## Documentation https://replicate.com/inworld/realtime-tts-2 ## Token Pricing - Input: 0.058125 credits/token - Output: 0.058125 credits/token