Overview
Stream audio in real-time with the lowest latency. Perfect for interactive assistants and live applications.Passing numbers, IDs, dates, or currency as raw strings causes mispronunciations. See the Input Formatting Guide for correct formatting of phone numbers, account numbers, PINs, Aadhaar, vehicle registration numbers, GSTIN, currency, and more.
Models
Endpoint
Connection Headers
Pass all configuration as WebSocket upgrade headers. Headers cannot be changed mid-session — reconnect with new headers to change settings.Connection Flow
- Client connects — opens a WebSocket to
/api/v1/ttswith all required headers. - Client sends a synthesis message — JSON with
text,voice,model, andaudio_config. - Server streams audio — returns base64-encoded audio chunks as JSON messages.
- Server completes — sends a final message with
is_final: true. The client may send another request or close. - Either side closes — client or server may close the connection at any time.
Send one synthesis request at a time and consume audio chunks as they arrive for the lowest end-to-end latency.
Request Parameters
string
required
The text to synthesize into speech. Pass numbers, dates, and currency as spoken words to avoid mispronunciations — see Input Formatting Guide.
string
required
Set to
timbre-v2.5.string
required
Voice name from the Timbre v2.5 catalog. See the Voice Catalog for preferred voices by language. Example:
Nalini, Kaveri, Deepak.string
required
Language of the input text. Controls text normalization and routing.
number | string
default:"1.0"
Playback speed multiplier. Numeric range:
0.85 (slowest) to 1.15 (fastest). String shortcuts: "slow" = 0.85, "medium" = 1.0, "fast" = 1.15.object
Controls the format of the streamed audio chunks.
Audio Format Reference
Encoding aliases — produce identical output to the
container rows above:
bitrate only applies when container=mp3. container=mulaw/alaw override sample_rate to 8000 Hz.
When
container=ogg or encoding=oggopus is requested, all audio is encoded into a single OGG Opus file and delivered as one chunk after synthesis completes.Server Messages
start
Sent when the server begins synthesis for the current request.
Audio chunk
Each audio chunk arrives as a JSON message. Decodeaudio from base64 and append chunks in order.
complete
Sent when all audio for the current request has been streamed. is_final is true and audio is empty.
error
Sent when the server encounters an error. The connection remains open after recoverable errors.
Code Example
Available Voices
42 voices across 10 Indian languages, English, and Hinglish. See the full Voice Catalog for preferred voices by language, gender, persona, and description. Popular examples:Nalini (Hindi), Kaveri (English), Deepak (Hindi), Poorvi (Hinglish).