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

# Voice Delivery Tags

> Control emotion, pacing, and non-verbal sounds in agent speech with inworld-tts-2 instruction tags.

When an agent uses Inworld with the `inworld-tts-2` model, its replies can carry **delivery tags** — natural-language directions in square brackets that the voice acts out:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
[sound concerned] I understand, that sounds really painful. [say warmly] Let me get you booked in today.
```

The platform handles the mechanics automatically. On every voice call with `inworld-tts-2`, the agent is taught how tags work, when a human would use them, and how to keep them in English regardless of the conversation language. You do not need to explain tags in your agent prompt — you only steer them.

<Note>
  Delivery tags are supported only by `inworld-tts-2`. Other Inworld models and other TTS providers ignore this feature. In text chat mode tags are suppressed entirely.
</Note>

***

## What the platform does for you

With `inworld-tts-2` selected, every voice conversation automatically gets:

* **Tag mechanics** — the agent knows the tag syntax, keeps tags in English even when speaking another language, and repeats tags on consecutive sentences (each sentence is synthesized separately, so an untagged sentence falls back to neutral delivery).
* **Human-like defaults** — warm greetings and farewells, a light playful touch when the caller jokes, an apologetic and measured delivery with irritated or busy callers, and clear articulation when confirming times, addresses, and numbers. Plain informational sentences stay untagged.
* **Speech-friendly writing** — numbers, dates, times, and phone numbers are written out in words, punctuation stays conversational, and markdown or special symbols are kept out of spoken text.

If that default behavior fits your use case, you are done — no prompt changes needed.

***

## Steering delivery from your agent prompt

There are three levels of control, from loose to exact. All of them work in any prompt language — the emitted tags stay in English.

### 1. Describe the voice

Add a short natural-language description of how your agent should sound. The agent maps it to tag moods on its own:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
VOICE
Warm and very friendly, with a light playful touch, but never overfamiliar.
When the caller jokes, it is fine to answer playfully with a soft laugh.
With an irritated or busy caller the playfulness switches off completely —
speak gently, apologetically, at a measured pace. Pronounce times, addresses,
and other key details clearly and warmly.
```

A persona described this way measurably changes which tags the agent picks — for example, playful tags appear on jokes only when the description allows playfulness, and never leak into conversations with irritated callers.

### 2. Map situations to tags

For precise control, write a policy in `situation → tag` form and include the tag literally. The agent uses your exact tag at the right moment:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
TAG POLICY
Greeting and discount pitch → [say warmly with a smile and a light playful tone]
Caller is irritated, busy, or asks where you got their number → [sound apologetic with a soft tone and measured pace]
Confirming a booking, time, or address → [articulate clearly with a warm tone]
Farewell after a refusal → [say warmly, without playfulness]
```

### 3. Script exact moments

Flow rules can trigger a specific delivery at a specific moment. Write the tag inline in the rule:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
SPECIAL SITUATIONS
If asked whether you are a robot — start the reply with [laugh] and say of course not.
If the caller says they already bought elsewhere — start the reply with [sigh] [sound sad], thank them, and wish them a good day.
```

A literal tag written in a rule passes through verbatim, every time. A loose stage direction ("laugh it off and deny it") also works, but only for the action itself: the agent will reliably emit `[laugh]`, while the surrounding delivery drifts toward the agent's persona. When the exact mood matters, write the delivery tag too — for example `[laugh] [say playfully]`.

Non-verbal tags are fixed sound effects: use them exactly as listed — `[laugh]`, `[sigh]`, `[breathe]` — without modifiers. A modified non-verbal like `[laugh sinisterly]` is not recognized. To color the moment, pair the bare non-verbal with a separate delivery tag for the sentence.

***

## Tag reference

Tags are free-form natural language, not a fixed list. These categories are good building blocks:

| Category     | Examples                                                                   |
| ------------ | -------------------------------------------------------------------------- |
| Emotion      | `[say excitedly]`, `[sound sad]`, `[sound concerned]`                      |
| Articulation | `[say with force]`, `[articulate clearly]`, `[say with deliberate pauses]` |
| Intonation   | `[say with a falling pitch]`, `[say with a rising pitch]`                  |
| Volume       | `[very quiet]`, `[very loud]`                                              |
| Pitch        | `[say in a low tone]`, `[say in a high pitch]`                             |
| Range        | `[say playfully]`, `[say with no pitch variation]`                         |
| Speed        | `[very fast]`, `[very slow]`                                               |
| Vocal style  | `[whisper in a hushed style]`, `[give a nasal quality]`                    |
| Non-verbals  | `[laugh]`, `[sigh]`, `[clear throat]`, `[breathe]`, `[cough]`              |

Combining qualities in one instruction produces a more convincing performance than a bare tag: `[say sadly with deliberate pauses in a low voice]` layers mood, rhythm, and pitch.

<Warning>
  Write non-verbal tags with spaces and without modifiers, exactly as documented — `[clear throat]`, not `[clear_throat]` or `[laugh sinisterly]`. Do not combine opposing directions in one tag (`[whisper in a hushed style]` together with `[very loud]`), and do not apply a tag that contradicts the text it introduces.
</Warning>

***

## Emphasis and stress

To stress a single word, capitalize it — the voice emphasizes capitalized words:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
It comes with the FULL warranty, no extra cost.
```

Use this sparingly, on whole words only. Inworld does not document accent-mark stress (for example, combining diacritics on Russian words), so verify such conventions on your actual voice before relying on them.

***

## Configuration

Delivery tags require no extra configuration beyond selecting the model:

<Accordion title="Inworld TTS-2 configuration example">
  ```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  ttsConfig: {
    vendor: "Inworld",
    voiceId: "inworld-voice-id",
    model: "inworld-tts-2",
    speed: 1.0
  }
  ```
</Accordion>

***

## Related

<CardGroup cols={2}>
  <Card title="TTS Providers" icon="waveform-lines" href="/docs/create/tts-providers">
    Full Inworld configuration reference
  </Card>

  <Card title="Voice & Speech" icon="volume-high" href="/docs/create/voice-and-speech">
    Basic voice configuration
  </Card>
</CardGroup>
