Skip to main content
This page documents the original speech endpoint (/tts/v1, model mira-tts-v51, separate key). New integrations should start at the TTS quickstart instead — the current endpoint lives at /v1/audio/speech, uses model mira-tts, streams, and takes the same sk_live_ key as the rest of the API. This endpoint keeps working for existing callers.
The speech endpoint is the voice from our agents, on its own. Send text, get a WAV back. It takes the same request shape as the OpenAI audio API, so any OpenAI SDK works by swapping base_url and the key. This is a separate key from your sk_live_ API key — ask us for one; it is not minted from the dashboard. The engine speaks Hindi, English and the Hinglish in between. Six more languages — Telugu, Tamil, Marathi, Kannada, Gujarati and Bengali — arrive over the next two months: see the language roadmap.

Quickstart

The response body is the audio: audio/wav, 48 kHz mono PCM16. On a 400-character input expect roughly 3 seconds end to end — the whole file is rendered before the first byte is sent, so this endpoint is built for generating clips, not for driving a live conversation. For interactive latency, use an agent and place a call.

Request

model is a stable public name, not the build number. It always points at the current production voice, which we upgrade underneath you — so a clip you generate today may sound better than one from last month without your code changing.

The rewrite pass

Raw text is rarely speech-ready. 97% should be read as “ninety-seven percent”, a product name should not be transliterated, and a bare URL should not be spelled out character by character. By default we run your text through a rewrite that fixes exactly that, preserving meaning, before it reaches the engine. Every response carries a header naming what happened: fallback is a degradation, never an error: you still get audio and still get a 200. If you are debugging pronunciation and the header says fallback, the rewrite is not what shaped that clip.
Skip the rewrite

Listing models

Errors

Errors use the same envelope as the rest of the API — see Errors.
404 Not Found

Using an OpenAI SDK

The shape matches, so point the client at us and keep your code:
lexicon, numbers, instructions and speech_ready are ours, not OpenAI’s. SDKs that validate their request body may reject them — send those with a plain HTTP client, or use extra_body where your SDK supports it.