Skip to main content
Use <break> tags to insert an explicit silence at a specific point: before a verification code, between list items, or wherever punctuation alone doesn’t give you the pause you want.

Syntax

Use the self-closing form with at most one attribute. Attribute values may use single or double quotes. A tag with both time and strength is not recognized and stays in the text, and an unknown strength value becomes the default 200 ms pause.

Durations are snapped

The model is trained on three discrete pause lengths: 200 ms, 400 ms, and 500 ms. Whatever you request is snapped to the nearest trained value (ties resolve to the longer pause), so the effective pauses are: Need a silence longer than 500 ms? Chain tags: <break time="500ms"/><break time="500ms"/> ≈ 1 s.

Example

Break tags work the same in streaming: send them inline with your text; tags split across token boundaries are reassembled by the server’s text buffer.

Notes & limits

  • Breaks survive normalization. The text around a break is normalized independently and the pause is re-inserted afterwards, so normalize: true and break tags compose.
  • Model support: kugel-3 supports break tags (see Models). Most legacy model IDs do not: on those, break tags are stripped and synthesis continues without the pause. Use kugel-3.
  • Punctuation first. For natural rhythm, commas/periods/ellipses are usually better; see Punctuation as pacing. Breaks are for deliberate silences of a specific length.
  • Inside <spell> blocks, don’t place break tags. Use the spell tag’s group attribute for paced codes instead.

Next steps

Speed

Slow down or speed up a whole request or a span

Spell tags

Paced, character-by-character codes and emails

Pronunciation & IPA

Fix how specific words are spoken

Streaming

Send tagged text from an LLM token stream
Last modified on September 22, 2026