Skip to main content

Text-to-Speech

Basic Generation

Generate complete audio and receive it all at once:

Streaming Audio

Receive audio chunks as they are generated for lower latency:

Text Normalization

Text normalization converts numbers, dates, times, and other non-verbal text into spoken words:
  • “I have 3 apples” → “I have three apples”
  • “The meeting is at 2:30 PM” → “The meeting is at two thirty PM”
  • “€50.99” → “fifty euros and ninety-nine cents”

Supported Languages

Using .normalize(true) without .language(...) may cause incorrect normalizations, especially for short texts or languages that share similar vocabulary. Always specify language when you know it.

Spell Tags

Use <spell> tags to spell out text letter by letter — useful for email addresses, codes, and acronyms:
Special Characters: Characters like @, ., - are translated to language-specific words. For example, @ becomes “at” in English, “ät” in German, and “arobase” in French.
Model recommendation: use kugel-3 for the cleanest letter-by-letter pronunciation of spelled-out text.

Word Timestamps

Request word-level time alignments alongside audio for subtitle synchronization, lip-sync, or barge-in handling.

With Generate

With Streaming

Word timestamps add no extra audio latency. They arrive shortly after the corresponding audio chunk — see Latency for typical numbers.

Models

List Available Models

Error Handling


Next: LLM Sessions — real-time TTS for LLM token streams, barge-in, and multi-context sessions.