Skip to main content
Chariot offers three ways to synthesize speech. They produce the same audio from the same voices. The difference is latency and how you deliver text.

Decision guide

REST (sync)

You have short, complete text and want one finished WAV file. Simplest to integrate.

HTTP streaming

You have one complete utterance but want playback to start as early as possible.

WebSocket

Text arrives incrementally (e.g. from an LLM), or you need a long, low-latency, interactive session.

Comparison

Rules of thumb

  • Start with REST. If you’re generating short clips and don’t need sub-second first audio, POST /v1/tts is the least code.
  • Reach for HTTP streaming when you already have the full sentence but want the user to hear audio sooner, for example reading a chat reply aloud.
  • Use the WebSocket when text is produced token-by-token (streaming from an LLM), when you’re driving a voice agent, or when a single utterance would exceed 500 characters. You send input.text messages as text becomes available, then input.flush to generate audio for what you have sent. See WebSocket streaming.
Concurrency limits are enforced per plan on the synchronous POST /v1/tts endpoint. If you need many simultaneous generations, see Rate limits & concurrency before choosing a transport.