> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Guía de inicio rápido de Texto a Diálogo

Esta guía te mostrará cómo generar diálogos inmersivos y naturales a partir de texto con la API de Texto a Diálogo.

> **Warning**
>
> Mantén la longitud total de todos los valores de `inputs[].text` en 2000 caracteres o menos por solicitud para
> obtener una generación fiable. Divide los guiones más largos en fragmentos y une el audio en el cliente.

## Uso de la API de Texto a Diálogo

#### Crear una clave de API

[Crea una clave de API en el panel aquí](https://elevenlabs.io/app/settings/api-keys), que usarás para [acceder a la API](/docs/es/api-reference/authentication) de forma segura.

Guarda la clave como un secreto gestionado y pásala a los SDK como variable de entorno mediante un archivo `.env` o directamente en la configuración de tu aplicación, según prefieras.

**`.env`**

```js title=".env"
ELEVENLABS_API_KEY=<your_api_key_here>
```

#### Instalar el SDK

#### SDK

También usaremos la biblioteca `dotenv` para cargar nuestra clave de API desde una variable de entorno.

```python
pip install elevenlabs
pip install python-dotenv
```

```typescript
npm install @elevenlabs/elevenlabs-js
npm install dotenv
```

#### CLI

Instala la CLI de ElevenLabs. Recomendamos Homebrew (macOS) y Scoop (Windows).

**`Homebrew (macOS)`**

```bash title="Homebrew (macOS)"
brew install elevenlabs/tap/elevenlabs
```

**`Scoop (Windows)`**

```powershell title="Scoop (Windows)"
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs
```

**`npm`**

```bash title="npm"
npm install -g @elevenlabs/cli
```

**`curl`**

```bash title="curl"
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh
```

> **Tip**
>
> ¿Trabajas con un asistente de programación con IA? Ejecuta `elevenlabs generate-skills` en tu proyecto para crear un
> `SKILL.md` para cada grupo de comandos en `skills/`, para que tu asistente conozca todas las funciones de la CLI
> sin que tengas que pegar la documentación. Usa `--output-dir` para guardarlos en otro lugar. Esto lee la definición de la API
> integrada en la propia CLI, por lo que no necesita una clave de API y funciona sin conexión; además, se mantiene al día con
> la versión de la CLI que tengas instalada.

Después, autentícate; se abrirá el navegador para autorizar la CLI:

```bash
elevenlabs auth login
```

#### Hacer la solicitud a la API

#### SDK

Crea un archivo llamado `example.py` o `example.mts`, según el lenguaje que prefieras, y añade el siguiente código.
Añade etiquetas de audio dentro de cada valor de `text` para guiar la entonación de ese hablante. El `voice_id`
selecciona la voz del hablante para el mismo elemento de entrada.

```python focus={12-21} maxLines=0
# example.py
import os

from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play

load_dotenv()

elevenlabs = ElevenLabs(
  api_key=os.getenv("ELEVENLABS_API_KEY"),
)

audio = elevenlabs.text_to_dialogue.convert(
    inputs=[
        {
            "text": "[cheerfully] Hello, how are you?",
            "voice_id": "9BWtsMINqrJLrRacOk9x",
        },
        {
            "text": "[stuttering] I'm... I'm doing well, thank you.",
            "voice_id": "IKne3meq5aSn9XLyUdCD",
        }
    ]
)

play(audio)
```

```typescript focus={7-17} maxLines=0
// example.mts
import { ElevenLabsClient, play } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

const audio = await elevenlabs.textToDialogue.convert({
    inputs: [
        {
            text: "[cheerfully] Hello, how are you?",
            voiceId: "9BWtsMINqrJLrRacOk9x",
        },
        {
            text: "[stuttering] I'm... I'm doing well, thank you.",
            voiceId: "IKne3meq5aSn9XLyUdCD",
        },
    ],
});

play(audio);
```

Después, ejecútalo:

```python
python example.py
```

```typescript
npx tsx example.mts
```

Deberías oír cómo se reproduce el audio del diálogo.

#### CLI

Pasa las entradas del diálogo como una matriz JSON y guarda el audio en un archivo:

```bash
elevenlabs text-to-dialogue convert \
  --output dialogue.mp3 \
  --inputs '[
    { "text": "[cheerfully] Hello, how are you?", "voice_id": "9BWtsMINqrJLrRacOk9x" },
    { "text": "[stuttering] I... I am doing well, thank you.", "voice_id": "IKne3meq5aSn9XLyUdCD" }
  ]'
```

Abre `dialogue.mp3` para escuchar el resultado.

## Streaming con WebSocket

Para diálogos incrementales mediante una conexión de larga duración con modelos **Eleven v3**, sigue la guía de [Texto a Diálogo en Tiempo Real](/docs/es/eleven-api/guides/how-to/websockets/realtime-tdd). Para comparar este WebSocket con el WebSocket TTS estándar, consulta [WebSockets de Texto a Voz y Texto a Diálogo](/docs/es/eleven-api/guides/how-to/websockets/tts-vs-ttd-websockets).

## Próximos pasos

#### [Explorar voces](https://elevenlabs.io/app/voice-library)

Explora más de 10 000 voces para asignarlas a cada hablante del diálogo

#### [Texto a Voz](/docs/es/eleven-api/guides/cookbooks/text-to-speech)

Genera voz a partir de una única voz con la API de Texto a Voz

#### [Referencia de la API](/docs/es/api-reference/text-to-dialogue/convert)

Explora todos los parámetros y formatos de respuesta de Texto a Diálogo