> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kugelaudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Breaks

> Insert explicit pauses with SSML-style break tags — syntax, accepted values, and how durations are snapped.

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.

```text theme={null}
Your total is <break time="400ms"/> forty-two euros.
```

## Syntax

| Form                         | Meaning                                                                         |
| ---------------------------- | ------------------------------------------------------------------------------- |
| `<break time="300ms"/>`      | Explicit duration in milliseconds                                               |
| `<break time="1.5s"/>`       | Explicit duration in seconds (decimals allowed)                                 |
| `<break strength="medium"/>` | SSML strength preset (`none`, `x-weak`, `weak`, `medium`, `strong`, `x-strong`) |
| `<break/>`                   | Default pause (200 ms)                                                          |

Use the self-closing form. Attribute values may use single or double quotes.

## 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:

| You write                                   | You get                            |
| ------------------------------------------- | ---------------------------------- |
| `time="0ms"`                                | no pause                           |
| More than `0ms`, less than `300ms`          | 200 ms                             |
| `300ms` to less than `450ms`                | 400 ms (300 ms ties → 400 ms)      |
| `450ms` and up                              | 500 ms (450 ms ties → 500 ms)      |
| `strength="x-weak"` / `"weak"` / `"medium"` | 200 ms                             |
| `strength="strong"` / `"x-strong"`          | 500 ms                             |
| `strength="none"`                           | no pause inserted (not snapped up) |

Need a silence longer than 500 ms? Chain tags:
`<break time="500ms"/><break time="500ms"/>` ≈ 1 s.

## Example

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    audio = client.tts.generate(
        text='Welcome to KugelAudio. <break time="400ms"/> How can I help you today?',
        model_id="kugel-3",
        voice_id=1071,
        language="en",
    )
    ```
  </Tab>

  <Tab title="JavaScript">
    ```typescript theme={null}
    const audio = await client.tts.generate({
      text: 'Welcome to KugelAudio. <break time="400ms"/> How can I help you today?',
      modelId: 'kugel-3',
      voiceId: 1071,
      language: 'en',
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST https://api.kugelaudio.com/v1/tts/generate \
      -H "Authorization: Bearer $KUGELAUDIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "text": "Welcome to KugelAudio. <break time=\"400ms\"/> How can I help you today?",
        "model_id": "kugel-3",
        "voice_id": 1071,
        "language": "en"
      }' \
      --output output.pcm
    ```
  </Tab>
</Tabs>

Break tags work the same in [streaming](/streaming/overview) — 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](/models#capabilities)). On models without break support the tags
  are stripped and synthesis continues without the pause.
* **Punctuation first.** For natural rhythm, commas/periods/ellipses are
  usually better — see
  [Punctuation as pacing](/prompting/overview#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](/prompting/spell#grouping) for paced codes instead.
