Multiplexed realtime TTS generation. The client opens one WebSocket and
may run many concurrent generations, each identified by a unique
`context_id`. Sending additional messages with `continue: true` on the
same `context_id` extends that context's generation while preserving
prosody. A `cancel: true` message stops a context's generation early.
Receive audio chunks, timestamps, and control messages for a context.
Messages
TtsGenerationRequest
TTS generation request
Content-Type: application/json
TtsCancelRequest
TTS cancel request
Content-Type: application/json
TtsAudioChunk
Streamed audio chunk
Content-Type: application/json
TtsWordTimestamps
Word-level timestamps
Content-Type: application/json
TtsPhonemeTimestamps
Phoneme-level timestamps
Content-Type: application/json
TtsFlushDone
Flush acknowledgement
Content-Type: application/json
TtsDone
Generation completion signal
Content-Type: application/json
TtsError
Error response
Content-Type: application/json
About AsyncAPI
The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.