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

# TTS

> Convierte texto en habla natural utilizando modelos de IA; admite varios estilos de voz y formatos de salida

## Introducción

La API de texto a voz (TTS) se basa en modelos de IA generativa avanzados que pueden convertir el texto de entrada en audio de voz realista. Admite varios casos de uso:

* Narración de artículos de blog escritos
* Generación de audio de voz en múltiples idiomas
* Provisión de flujos de audio en tiempo real

## Modelos disponibles

### Modelos de OpenAI

* [gpt-4o-audio-preview](https://aihubmix.com/model/gpt-4o-audio-preview) — El modelo más reciente de generación de audio de OpenAI, compatible con la generación de audio conversacional
* [**gpt-4o-mini-tts**](https://aihubmix.com/model/gpt-4o-mini-tts) — El modelo preferido para aplicaciones inteligentes en tiempo real; admite control avanzado de voz y permite controlar diversas características vocales mediante prompts:
  1. Acento
  2. Rango emocional
  3. Entonación
  4. Imitaciones/estilo
  5. Velocidad del habla
  6. Tono
  7. Susurro
* [**tts-1-hd**](https://aihubmix.com/model/tts-1-hd) — Modelo TTS de generación anterior con calidad de audio de alta definición
* [**tts-1**](https://aihubmix.com/model/tts-1) — Modelo TTS estándar que equilibra calidad y velocidad

### Modelos de Gemini

* [**gemini-2.5-flash-preview-tts**](https://aihubmix.com/model/gemini-2.5-flash-preview-tts) — Modelo TTS rápido de Gemini, compatible con generación de audio de un solo locutor o múltiples locutores
* [**gemini-2.5-pro-preview-tts**](https://aihubmix.com/model/gemini-2.5-pro-preview-tts) — Modelo TTS profesional de Gemini, compatible con generación de audio de un solo locutor o múltiples locutores

**Recomendaciones de rendimiento:**

1. Para el tiempo de respuesta más rápido, se recomienda usar `wav` o `pcm` como formato de respuesta
2. Para audio de alta calidad, usa `tts-1-hd`
3. Para mayor velocidad de generación, usa `tts-1`
4. Para aplicaciones inteligentes de voz, se recomienda `gpt-4o-mini-tts`
5. Para escenarios que requieran diálogos de múltiples locutores, se recomiendan los modelos TTS de Gemini

## Endpoint de la API

### URL de la solicitud

```shellscript theme={null}
POST https://aihubmix.com/v1/audio/speech
```

### Cabeceras de la solicitud

```shellscript theme={null}
Authorization: Bearer $AIHUBMIX_API_KEY
Content-Type: application/json
```

### Parámetros de la solicitud

#### Parámetros estándar de TTS

Los parámetros estándar son aplicables a los siguientes modelos TTS: tts-1, tts-1-hd, gpt-4o-mini-tts, gemini-2.5-flash-preview-tts y gemini-2.5-pro-preview-tts.

| Parámetro        | Tipo   | Obligatorio | Descripción                                                                                                                                                                                                                      |
| :--------------- | :----- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| model            | string | Sí          | El ID del modelo a utilizar. Valores opcionales: `tts-1`, `tts-1-hd`, `gpt-4o-mini-tts`, `gemini-2.5-flash-preview-tts`, `gemini-2.5-pro-preview-tts`                                                                            |
| input            | string | Sí          | El texto a partir del cual generar el audio, con una longitud máxima de 4096 caracteres                                                                                                                                          |
| voice            | string | Sí          | La voz utilizada para la síntesis. Consulta la lista de voces a continuación.                                                                                                                                                    |
| response\_format | string | No          | Formato de salida del audio. Formatos de audio admitidos: `mp3`, `opus`, `aac`, `flac`, `wav`, `pcm`; por defecto `mp3`. `Nota: los modelos Gemini solo admiten los formatos wav y pcm.`                                         |
| speed            | number | No          | La velocidad del audio generado. Rango de 0.25 a 4.0, por defecto 1.0. Nota: los modelos `gpt-4o-mini-tts` y `Gemini` no admiten este parámetro, pero la velocidad puede controlarse mediante descripciones en lenguaje natural. |
| instructions     | string | No          | Instrucciones de generación de voz; permiten especificar en detalle el estilo de la voz, la entonación y las características emocionales; aplicable solo a los modelos `gpt-4o-mini-tts` y `Gemini`.                             |

#### Parámetros para gpt-4o-audio-preview

| Parámetro  | Tipo   | Obligatorio | Descripción                                                                 |
| :--------- | :----- | :---------- | :-------------------------------------------------------------------------- |
| model      | string | Sí          | Establecer en `gpt-4o-audio-preview`                                        |
| modalities | array  | Sí          | Establecer en `["text", "audio"]` para habilitar la salida de audio         |
| audio      | object | Sí          | Objeto de configuración de audio que contiene los campos `voice` y `format` |
| messages   | array  | Sí          | Array de mensajes de chat, similar al formato de chat estándar              |

## Lista de voces

### Voces de OpenAI

Admite las siguientes opciones de voz:

* **alloy** - Neutra, equilibrada
* **ash** - Clara, profesional
* **ballad** - Cálida, narrativa
* **coral** - Amistosa, cercana
* **echo** - Clara, brillante
* **fable** - Expresiva, dramática
* **onyx** - Profunda, autoritaria
* **nova** - Animada, enérgica
* **sage** - Madura, instruida
* **shimmer** - Suave, relajante
* **verse** - Clara, versátil
* **marin** - Natural, amistosa
* **cedar** - Estable, fiable

### Voces de Gemini

Admite las siguientes 30 opciones de voz:

| Nombre de voz | Estilo      | Nombre de voz     | Estilo       | Nombre de voz    | Estilo        |
| :------------ | :---------- | :---------------- | :----------- | :--------------- | :------------ |
| **Zephyr**    | *Brillante* | **Puck**          | *Animada*    | **Charon**       | *Informativa* |
| **Kore**      | *Firme*     | **Fenrir**        | *Excitable*  | **Leda**         | *Juvenil*     |
| **Orus**      | *Firme*     | **Aoede**         | *Aireada*    | **Callirrhoe**   | *Relajada*    |
| **Autonoe**   | *Brillante* | **Enceladus**     | *Susurrante* | **Iapetus**      | *Clara*       |
| **Umbriel**   | *Relajada*  | **Algieba**       | *Suave*      | **Despina**      | *Suave*       |
| **Erinome**   | *Clara*     | **Algenib**       | *Ronca*      | **Rasalgethi**   | *Informativa* |
| **Laomedeia** | *Animada*   | **Achernar**      | *Suave*      | **Alnilam**      | *Firme*       |
| **Schedar**   | *Uniforme*  | **Gacrux**        | *Madura*     | **Pulcherrima**  | *Decidida*    |
| **Achird**    | *Amistosa*  | **Zubenelgenubi** | *Casual*     | **Vindemiatrix** | *Apacible*    |
| **Sadachbia** | *Vivaz*     | **Sadaltager**    | *Instruida*  | **Sulafat**      | *Cálida*      |

### Mapeo de voces

Al usar los modelos Gemini, si se proporciona un nombre de voz de OpenAI, el sistema lo asignará automáticamente a la voz correspondiente de Gemini:

| Voz OpenAI | Voz Gemini | Voz OpenAI | Voz Gemini |
| :--------- | :--------- | :--------- | :--------- |
| alloy      | Kore       | ash        | Fenrir     |
| ballad     | Aoede      | coral      | Leda       |
| echo       | Puck       | fable      | Zephyr     |
| onyx       | Charon     | nova       | Orus       |
| sage       | Algieba    | shimmer    | Callirrhoe |
| verse      | Enceladus  | marin      | Despina    |
| cedar      | Iapetus    |            |            |

## Ejemplos de uso

### Modelo TTS estándar (OpenAI)

```curl theme={null}
curl https://aihubmix.com/v1/audio/speech \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "The quick brown fox jumped over the lazy dog.",
    "voice": "alloy"
  }' \
  --output speech.mp3
```

### Modelo TTS de Gemini (un solo locutor)

```curl theme={null}
curl https://aihubmix.com/v1/audio/speech \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-flash-preview-tts",
    "input": "Say cheerfully: Have a wonderful day!",
    "voice": "Kore",
    "response_format": "wav"
  }' \
  --output speech.wav
```

### Modelo TTS de Gemini (múltiples locutores, controlado mediante prompts)

```curl theme={null}
curl https://aihubmix.com/v1/audio/speech \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-flash-preview-tts",
    "input": "TTS the following conversation between Joe and Jane:\nJoe: How'\''s it going today Jane?\nJane: Not too bad, how about you?",
    "voice": "Kore",
    "response_format": "wav",
    "instructions": "Joe should sound firm and professional, Jane should sound upbeat and friendly"
  }' \
  --output conversation.wav
```

### Ejemplo en Python (SDK de OpenAI)

```python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="your-aihubmix-api-key",
    base_url="https://aihubmix.com/v1"
)

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="The quick brown fox jumped over the lazy dog."
)

response.stream_to_file("speech.mp3")
```

### Ejemplo en Python (TTS de Gemini)

```python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="your-aihubmix-api-key",
    base_url="https://aihubmix.com/v1"
)

# Single Speaker
response = client.audio.speech.create(
    model="gemini-2.5-flash-preview-tts",
    voice="Kore",
    input="Say cheerfully: Have a wonderful day!",
    extra_body={
        "response_format": "wav"
    }
)

response.stream_to_file("speech.wav")

# Multi-Speaker Dialogue
conversation_response = client.audio.speech.create(
    model="gemini-2.5-flash-preview-tts",
    voice="Kore",
    input="""TTS the following conversation between Joe and Jane:
    Joe: How's it going today Jane?
    Jane: Not too bad, how about you?""",
    extra_body={
        "response_format": "wav",
        "instructions": "Joe should sound firm, Jane should sound upbeat"
    }
)

conversation_response.stream_to_file("conversation.wav")
```

## Control del estilo de voz (modelos Gemini)

Los modelos TTS de Gemini admiten el control del estilo, el tono, el acento y la velocidad de la voz mediante prompts en lenguaje natural. Puedes proporcionar las indicaciones en los parámetros `input` o `instructions`.

### Control de estilo para un solo locutor

```json theme={null}
{
  "model": "gemini-2.5-flash-preview-tts",
  "input": "Say in a spooky whisper: By the pricking of my thumbs... Something wicked this way comes",
  "voice": "Enceladus",
  "response_format": "wav"
}
```

### Control de estilo con múltiples locutores

```json theme={null}
{
  "model": "gemini-2.5-flash-preview-tts",
  "input": "Speaker1: So... what's on the agenda today?\nSpeaker2: You're never going to guess!",
  "voice": "Kore",
  "response_format": "wav",
  "instructions": "Make Speaker1 sound tired and bored, and Speaker2 sound excited and happy"
}
```

### Recomendaciones de estructura para el prompt

Para obtener los mejores resultados, puedes usar el siguiente formato de prompt estructurado:

```json theme={null}
{
  "model": "gemini-2.5-flash-preview-tts",
  "input": "Your transcript here",
  "voice": "Kore",
  "instructions": "# AUDIO PROFILE: Character Name\n## Role Description\n\n## THE SCENE: Scene Name\nDescribe the environment and mood\n\n### DIRECTOR'S NOTES\nStyle: Describe the style\nPacing: Describe the pacing\nAccent: Specify the accent"
}
```

## Idiomas admitidos

Los modelos TTS detectan automáticamente el idioma de entrada. Se admiten los siguientes 24 idiomas:

| Idioma                    | Código BCP-47 | Idioma                  | Código BCP-47 |
| :------------------------ | :------------ | :---------------------- | :------------ |
| Árabe (Egipto)            | ar-EG         | Alemán (Alemania)       | de-DE         |
| Inglés (EE. UU.)          | en-US         | Español (EE. UU.)       | es-US         |
| Francés (Francia)         | fr-FR         | Hindi (India)           | hi-IN         |
| Indonesio (Indonesia)     | id-ID         | Italiano (Italia)       | it-IT         |
| Japonés (Japón)           | ja-JP         | Coreano (Corea del Sur) | ko-KR         |
| Portugués (Brasil)        | pt-BR         | Ruso (Rusia)            | ru-RU         |
| Neerlandés (Países Bajos) | nl-NL         | Polaco (Polonia)        | pl-PL         |
| Tailandés (Tailandia)     | th-TH         | Turco (Turquía)         | tr-TR         |
| Vietnamita (Vietnam)      | vi-VN         | Rumano (Rumanía)        | ro-RO         |
| Ucraniano (Ucrania)       | uk-UA         | Bengalí (Bangladés)     | bn-BD         |
| Inglés (India)            | en-IN & hi-IN | Maratí (India)          | mr-IN         |
| Tamil (India)             | ta-IN         | Telugu (India)          | te-IN         |

## Formatos de respuesta

### Formatos de audio

| Formato | Content-Type | Descripción                                    | Compatibilidad con modelos |
| :------ | :----------- | :--------------------------------------------- | :------------------------- |
| mp3     | audio/mpeg   | Formato predeterminado, ampliamente compatible | Modelos de OpenAI          |
| opus    | audio/opus   | Adecuado para streaming en internet            | Modelos de OpenAI          |
| aac     | audio/aac    | Compresión de audio digital                    | Modelos de OpenAI          |
| flac    | audio/flac   | Compresión de audio sin pérdidas               | Modelos de OpenAI          |
| wav     | audio/wav    | Audio WAV sin comprimir                        | Todos los modelos          |
| pcm     | audio/pcm    | Audio PCM en bruto (24kHz, mono, 16-bit)       | Todos los modelos          |

**Nota:** El modelo Gemini devuelve nativamente formato PCM (24kHz, mono, 16-bit), y el sistema lo convertirá automáticamente a formato WAV. Para otros formatos, se recomienda usar modelos de OpenAI.

### Cuerpo de la respuesta

Si tiene éxito, se devuelve un stream de audio (datos binarios), y Content-Type se establece según el parámetro `response_format`.

Si falla, se devuelve un mensaje de error en JSON:

```json theme={null}
{
  "error": {
    "message": "Error description",
    "type": "error_type",
    "code": "error_code"
  }
}
```

## Información de facturación

La API TTS se factura según el número de caracteres:

* El recuento de caracteres del texto de entrada es la unidad de facturación
* Diferentes modelos tienen distintos multiplicadores de precio
* Longitud máxima de entrada: 4096 caracteres

## Limitaciones

* Longitud máxima de entrada: 4096 caracteres
* Los modelos TTS de Gemini solo admiten los formatos de salida `wav` y `pcm`
* Los modelos TTS de Gemini no admiten el parámetro `speed` (se controla mediante prompts)
* Límite de la ventana de contexto: 32k tokens (modelos Gemini)

## Preguntas frecuentes

### P: ¿Cómo elegir el modelo adecuado?

* Necesitas generación rápida → `tts-1` o `gemini-2.5-flash-preview-tts`
* Necesitas audio de alta calidad → `tts-1-hd`
* Necesitas control inteligente de la voz → `gpt-4o-mini-tts` o modelos TTS de Gemini
* Necesitas diálogos con múltiples locutores → Modelos TTS de Gemini

### P: ¿Cuáles son las diferencias entre el TTS de Gemini y el TTS de OpenAI?

* **TTS de Gemini**: Admite el control del estilo de voz mediante prompts en lenguaje natural, admite múltiples locutores, pero solo en formatos WAV/PCM
* **TTS de OpenAI**: Admite múltiples formatos de audio, tiene opciones de voz fijas y la velocidad se puede controlar mediante parámetros

### P: ¿Cómo implemento diálogos con múltiples locutores?

Usa el modelo TTS de Gemini, formatea el `input` como un diálogo y especifica el estilo para cada locutor en `instructions`:

```json theme={null}
{
  "model": "gemini-2.5-flash-preview-tts",
  "input": "Speaker1: Hello!\nSpeaker2: Hi there!",
  "instructions": "Speaker1 should sound professional, Speaker2 should sound casual"
}
```

### P: ¿Se admite la salida en streaming?

## Actualmente, la API TTS devuelve archivos de audio completos y no admite la salida en streaming.

Última actualización: 2026-06-01
