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

# Voiceovers

> Create narration, ad reads and spoken translations as downloadable MP3 or WAV files.

Use `generate_speech` to turn your script into audio. Charges use your Developer Balance.

## Try it

```text theme={null}
Use NinjaChat to create a voiceover for this script:
"A little less ordinary. A little more you. Meet your new everyday."
Use Onyx and return an MP3. Quote the exact script with TTS HD
and wait for approval before generating.
```

For another language, ask your agent to translate the script first and let you review it before generation.

## Models and voices

| Model                | Price per 1,000 characters |
| -------------------- | -------------------------- |
| `tts-1`              | \$0.015                    |
| `tts-1-hd` (default) | \$0.030                    |

Voices: `alloy`, `ash`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`, `shimmer`. Default: `nova`.

## Tool calls

Your agent sends these as tool arguments. First call `estimate_cost`:

```json theme={null}
{
  "tool": "generate_speech",
  "model": "tts-1-hd",
  "input": "A little less ordinary. A little more you."
}
```

After approval, call `generate_speech`:

```json theme={null}
{
  "model": "tts-1-hd",
  "input": "A little less ordinary. A little more you.",
  "voice": "onyx",
  "response_format": "mp3",
  "speed": 1,
  "max_spend_cents": 1,
  "idempotency_key": "campaign-voiceover-001"
}
```

| Parameter         | Accepted values                                                                               |
| ----------------- | --------------------------------------------------------------------------------------------- |
| `input`           | Required, literal script; 1–4,096 characters.                                                 |
| `model`           | `tts-1` or `tts-1-hd`.                                                                        |
| `voice`           | One of the nine voices above.                                                                 |
| `response_format` | `mp3` (default) or `wav`.                                                                     |
| `speed`           | `0.25`–`4`; default `1`.                                                                      |
| `max_spend_cents` | Optional ceiling, greater than `0` and at most `100`; fractional cents accepted.              |
| `idempotency_key` | Required, 1–128 characters. Reuse for the same retry; use a new value for each new recording. |

The response includes a generation ID, an audio URL and the charged cost. Recover earlier recordings with `search_creations(kind: "audio")` or `get_creation`.

## Use with video

Approve the script, generate the voiceover, then combine it with your clips in an editor or an agent environment that can edit media. NinjaChat returns a **separate audio track**; it does not automatically mix audio into video.

Text is read literally. Voice cloning, music, sound effects and emotion instructions are not supported by these speech tools. Tell listeners the voice is AI-generated.
