---
title: "Áudio"
description: "Texto para voz, cobrado por mil caracteres."
source_url: "https://hypio.doti.gg/docs/audio"
updated: "2026-11-11"
---

# Áudio

Texto para voz, cobrado por mil caracteres.

`kind: "audio"`. O `prompt` é o texto falado. O preço é por mil caracteres.

## Requisição

cURL:

```bash
curl -X POST https://hypio.doti.gg/api/v1/generations \
  -H "Authorization: Bearer $HYPIO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "kind": "audio",
  "model": "eleven-v4",
  "prompt": "Olá! Este áudio foi gerado pela API.",
  "voice": "9BWtsMINqrJLrRacOk9x"
}'

curl https://hypio.doti.gg/api/v1/generations/<id> \
  -H "Authorization: Bearer $HYPIO_API_KEY"
```

JavaScript:

```javascript
const API = "https://hypio.doti.gg/api/v1";
const headers = {
  Authorization: `Bearer ${process.env.HYPIO_API_KEY}`,
  "Content-Type": "application/json",
};

let generation = await fetch(`${API}/generations`, {
  method: "POST",
  headers: { ...headers, "Idempotency-Key": crypto.randomUUID() },
  body: JSON.stringify({
    "kind": "audio",
    "model": "eleven-v4",
    "prompt": "Olá! Este áudio foi gerado pela API.",
    "voice": "9BWtsMINqrJLrRacOk9x"
  }),
}).then((res) => res.json());

while (generation.status === "queued" || generation.status === "running") {
  await new Promise((resolve) => setTimeout(resolve, 5000));
  generation = await fetch(`${API}/generations/${generation.id}`, { headers })
    .then((res) => res.json());
}

console.log(generation.status, generation.outputs);
```

Python:

```python
import os, time, uuid
import requests

API = "https://hypio.doti.gg/api/v1"
headers = {"Authorization": f"Bearer {os.environ['HYPIO_API_KEY']}"}

generation = requests.post(
    f"{API}/generations",
    headers={**headers, "Idempotency-Key": str(uuid.uuid4())},
    json={
      "kind": "audio",
      "model": "eleven-v4",
      "prompt": "Olá! Este áudio foi gerado pela API.",
      "voice": "9BWtsMINqrJLrRacOk9x"
    },
).json()

while generation["status"] in ("queued", "running"):
    time.sleep(5)
    generation = requests.get(f"{API}/generations/{generation['id']}", headers=headers).json()

print(generation["status"], generation["outputs"])
```

## Parâmetros

## Vozes

| `model` | Limite | Vozes (`voice`) |
| --- | --- | --- |
| `eleven-v4` | 2000 caracteres | `9BWtsMINqrJLrRacOk9x`, `EXAVITQu4vr4xnSDxMaL`, `FGY2WhTYpPnrIDTdsKH5`, `XB0fDUnXU5powFXDhCwa`, `Xb7hH8MSUJpSbSDYk0k2`, `XrExE9yKIg1WjnnlVkGX`, `cgSgspJ2msm6clMCkdW9`, `pFZP5JQG7iQjIQuC4Bku`, `21m00Tcm4TlvDq8ikWAM`, `JBFqnCBsd6RMkjVDRZzb`, `CwhRBWXzGAHq8TQ4Fs17`, `IKne3meq5aSn9XLyUdCD`, `N2lVS1w4EtoT3dr4eOWO`, `TX3LPaxmHKxFdv7VOQHJ`, `bIHbv24MWmeRgasZH58o`, `cjVigY5qzO86Huf0OWal`, `iP95p4xoKVk53GoZ742B`, `nPczCjzI2devNBz1zQrb`, `onwK4e9ZLuTAKqWW03F9`, `pqHfZKP75CvOlQylNhV4` |
| `eleven-v3` | 2000 caracteres | `9BWtsMINqrJLrRacOk9x`, `EXAVITQu4vr4xnSDxMaL`, `FGY2WhTYpPnrIDTdsKH5`, `XB0fDUnXU5powFXDhCwa`, `Xb7hH8MSUJpSbSDYk0k2`, `XrExE9yKIg1WjnnlVkGX`, `cgSgspJ2msm6clMCkdW9`, `pFZP5JQG7iQjIQuC4Bku`, `21m00Tcm4TlvDq8ikWAM`, `JBFqnCBsd6RMkjVDRZzb`, `CwhRBWXzGAHq8TQ4Fs17`, `IKne3meq5aSn9XLyUdCD`, `N2lVS1w4EtoT3dr4eOWO`, `TX3LPaxmHKxFdv7VOQHJ`, `bIHbv24MWmeRgasZH58o`, `cjVigY5qzO86Huf0OWal`, `iP95p4xoKVk53GoZ742B`, `nPczCjzI2devNBz1zQrb`, `onwK4e9ZLuTAKqWW03F9`, `pqHfZKP75CvOlQylNhV4` |
| `eleven-multilingual-v2` | 2000 caracteres | `9BWtsMINqrJLrRacOk9x`, `EXAVITQu4vr4xnSDxMaL`, `FGY2WhTYpPnrIDTdsKH5`, `XB0fDUnXU5powFXDhCwa`, `Xb7hH8MSUJpSbSDYk0k2`, `XrExE9yKIg1WjnnlVkGX`, `cgSgspJ2msm6clMCkdW9`, `pFZP5JQG7iQjIQuC4Bku`, `21m00Tcm4TlvDq8ikWAM`, `JBFqnCBsd6RMkjVDRZzb`, `CwhRBWXzGAHq8TQ4Fs17`, `IKne3meq5aSn9XLyUdCD`, `N2lVS1w4EtoT3dr4eOWO`, `TX3LPaxmHKxFdv7VOQHJ`, `bIHbv24MWmeRgasZH58o`, `cjVigY5qzO86Huf0OWal`, `iP95p4xoKVk53GoZ742B`, `nPczCjzI2devNBz1zQrb`, `onwK4e9ZLuTAKqWW03F9`, `pqHfZKP75CvOlQylNhV4` |
| `eleven-flash-v2.5` | 2000 caracteres | `9BWtsMINqrJLrRacOk9x`, `EXAVITQu4vr4xnSDxMaL`, `FGY2WhTYpPnrIDTdsKH5`, `XB0fDUnXU5powFXDhCwa`, `Xb7hH8MSUJpSbSDYk0k2`, `XrExE9yKIg1WjnnlVkGX`, `cgSgspJ2msm6clMCkdW9`, `pFZP5JQG7iQjIQuC4Bku`, `21m00Tcm4TlvDq8ikWAM`, `JBFqnCBsd6RMkjVDRZzb`, `CwhRBWXzGAHq8TQ4Fs17`, `IKne3meq5aSn9XLyUdCD`, `N2lVS1w4EtoT3dr4eOWO`, `TX3LPaxmHKxFdv7VOQHJ`, `bIHbv24MWmeRgasZH58o`, `cjVigY5qzO86Huf0OWal`, `iP95p4xoKVk53GoZ742B`, `nPczCjzI2devNBz1zQrb`, `onwK4e9ZLuTAKqWW03F9`, `pqHfZKP75CvOlQylNhV4` |
| `qwen3-tts-flash` | 600 caracteres | `Cherry`, `Serena`, `Maia`, `Katerina`, `Sonrisa`, `Ethan`, `Andre`, `Neil`, `Ryan`, `Arthur` |

| Campo | Tipo | Regra |
| --- | --- | --- |
| `kind` | string | `"audio"` |
| `model` | string | Um dos modelos abaixo. |
| `prompt` | string | Obrigatório. O texto a falar, até o limite do modelo. |
| `voice` | string | Obrigatório. Um `id` de voz do modelo. |
| `stability` | número | `0`, `0.5`, `1`. Padrão `0.5`. |
| `similarity` | número | De `0` a `1`. Padrão `0.75`. |

## Modelos

| Modelo | `model` | A partir de |
| --- | --- | --- |
| Eleven v4 | `eleven-v4` | R$ 0,72 |
| Eleven v3 | `eleven-v3` | R$ 0,72 |
| Eleven Multilingual v2 | `eleven-multilingual-v2` | R$ 0,72 |
| Eleven Flash v2.5 | `eleven-flash-v2.5` | R$ 0,36 |
| Qwen3 TTS Flash | `qwen3-tts-flash` | R$ 0,09 |

## Preços

O preço sai do mesmo catálogo que cobra a geração. Ele fica reservado no envio e é devolvido se a geração falhar.

| `model` | Preço |
| --- | --- |
| `eleven-v4` | R$ 0,72 por 1.000 caracteres |
| `eleven-v3` | R$ 0,72 por 1.000 caracteres |
| `eleven-multilingual-v2` | R$ 0,72 por 1.000 caracteres |
| `eleven-flash-v2.5` | R$ 0,36 por 1.000 caracteres |
| `qwen3-tts-flash` | R$ 0,09 por 1.000 caracteres |
