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

# Emotion Tags

> Direct how a voice sounds with inline emotion and sound tags, or let Enhance place them for you

## Overview

Write a tag in square brackets and the voice changes how it speaks from that point on. Add a sound tag and the voice laughs, sighs or pauses right there.

```text theme={null}
[apologetic] I'm really sorry about the delay. [calm] Let me check your order right now. [happy] Good news, it's already out for delivery!
```

Tags are never read aloud. A tag that is not on the lists below is silently dropped, so a typo never gets spoken, but it does nothing either.

> [!NOTE]
>
> Tags work on [`POST /tts-synthesize`](https://docs.60db.ai/api-reference/tts/text-to-speech) and in the Text to Speech page of the dashboard. They are not applied by [`POST /tts-stream`](https://docs.60db.ai/api-reference/tts/text-to-speech-stream).

## Two kinds of tags

> **Emotion tags**
>
> Change how the **following sentences** sound. The emotion stays on until the next emotion tag. `[neutral]` switches it off.

> **Sound tags**
>
> Insert a **non-verbal sound** at that spot, such as a laugh or a sigh. They do not change the current emotion.

Tags are case-insensitive: `[Happy]`, `[HAPPY]` and `[happy]` are the same. Text with no tags is still read with natural emotion; explicit tags always win.

## Emotion tags

Tuned for Hindi, Indian English, Tamil, Telugu, Bengali, Marathi, Gujarati, Kannada, Malayalam, Punjabi and Odia. Emotions sound best when the text language matches the voice's language.

| Tag | Use it for |
| - | - |
| `[happy]` | Good news, thanks, warm greetings |
| `[excited]` | Big news, offers, celebrations |
| `[calm]` | Explanations, instructions, reassurance |
| `[empathetic]` | Listening to a problem, showing you care |
| `[apologetic]` | Apologies, delays, mistakes |
| `[sad]` | Bad news, loss, disappointment |
| `[serious]` | Important or urgent information, warnings |
| `[emphasize]` | Key points, firm statements |
| `[curious]` | Questions, showing interest |
| `[surprised]` | Unexpected information |
| `[playful]` | Light jokes, teasing, casual chat |
| `[sarcastic]` | Dry irony, mock enthusiasm (playful contexts only; runs at reduced strength so the voice stays the same speaker) |
| `[nervous]` | Hesitation, uncertainty, awkward moments |
| `[frustrated]` | Mild annoyance |
| `[angry]` | Strong displeasure (use rarely in customer-facing speech) |
| `[tired]` | Late-night, worn-out, bored tone |
| `[whisper]` | Secrets, quiet asides |
| `[laughing]` | Speaking **while laughing** (the words are said through laughter) |
| `[crying]` | Speaking through tears |
| `[neutral]` | Back to the normal voice |

## Sound tags

| Tag | Sound |
| - | - |
| `[laugh]` | A short laugh |
| `[sigh]` | A sigh |
| `[gasp]` | A sharp, surprised breath, about 0.5 s |
| `[mm-hmm]` | Agreeing "mm-hmm" |
| `[hmm?]` | Questioning "hmm?" |
| `[hmph]` | Unimpressed "hmph" |
| `[oh]` | Sudden realisation "oh!" |
| `[wow]` | Impressed "wow!" |
| `[clears throat]` | Throat clear |
| `[breath]` | Audible breath |
| `[hum]` | Thinking hum |
| `[cough]` | A cough |
| `[sniff]` | A sniff |
| `[yawn]` | A yawn |
| `[pause]` | Silence, 350 ms |
| `[pause 500ms]`, `[pause 1s]` | Silence of a set length, from 80 ms to 5 s |

## Combining tags

* **Blend two emotions** in one tag, separated by a comma: `[sad, calm]`. The first emotion sets the speaking speed. Keep blends to two emotions; more gets muddy.
* **Good blends:** `[empathetic, calm]`, `[apologetic, calm]`, `[happy, excited]`, `[serious, calm]`, `[curious, playful]`, `[surprised, happy]`.
* **Avoid opposites** such as `[happy, sad]` or `[angry, calm]`. They cancel each other out.
* **Never put an emotion and a sound in one bracket.** In `[laugh, happy]` the emotion is ignored. Write two tags: `[happy] [laugh] That's great!`

## Placement rules

**1. Put every tag at the start of a sentence**

`[happy] Your refund has been approved!` Change emotion at sentence boundaries, not mid-sentence.

**2. Sound tags go before the words**

`[laugh] That's a good one!` Don't put a sound tag in the middle of a sentence.

**3. Go easy on sounds**

At most one sound tag per sentence, and about one per two or three sentences.

**4. Leave a space after a tag**

`[happy] Hello`, not `[happy]Hello`. Anything inside `[...]` is removed from the speech, so never put words you want spoken inside brackets.

## Using tags through the API

Put the tags straight in `text`:

**cURL**

```bash theme={null}
curl -X POST https://api.60db.ai/tts-synthesize \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_id": "YOUR_VOICE_ID",
    "text": "[apologetic] I am sorry for the wait. [calm] Your ticket is now resolved. [happy] [laugh] Have a great day!"
  }'
```

**JavaScript**

```javascript theme={null}
const res = await fetch('https://api.60db.ai/tts-synthesize', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.SIXTYDB_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    voice_id: 'YOUR_VOICE_ID',
    text: '[apologetic] I am sorry for the wait. [calm] Your ticket is now resolved. [happy] [laugh] Have a great day!',
  }),
});
```

Tags count toward the 5,000-character `text` limit.

## Enhance: let AI place the tags

Don't want to place tags by hand? **Enhance** reads your text and inserts emotion and sound tags where they fit. It only adds tags: your words, spelling, numbers, names, punctuation, spacing and language stay exactly as you wrote them. Sentences you already tagged are left alone.

| Your text | After Enhance |
| - | - |
| `Your order is delayed. We will deliver it tomorrow.` | `[apologetic] Your order is delayed. [calm] We will deliver it tomorrow.` |

In the dashboard, click **Enhance** above the text box. Review the result, edit it freely, use **Undo enhance** to go back, or **Remove tags** to take every tag out again. To add a single tag by hand, click **Add emotion**.

Enhance is also available as an endpoint: see [Enhance Text](https://docs.60db.ai/api-reference/tts/enhance-text.md).

> [!TIP]
>
> Enhance never runs automatically and never charges credits. Only the speech you generate afterwards does.

## Tips

> **Tone for customer service**
>
> Prefer `calm`, `empathetic`, `apologetic`, `happy` and `serious`. Save `angry`, `crying`, `frustrated`, `tired`, `whisper` and `sarcastic` for text that clearly calls for them, and never use `sarcastic` toward a customer's complaint.

> **Too many tags sound unnatural**
>
> Two to four emotion changes is plenty for a short script. If an enhanced script has a tag on every sentence, delete some or use **Remove tags** and add a few back.

> **Enhance never edits your wording**
>
> Enhance can't change, add or remove a word, so names, amounts and dates are safe. It only chooses where tags go, so read the result before generating and delete any tag you don't want.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.