> 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.

# Compatibilidad con varias voces

## Descripción general

La compatibilidad con varias voces permite que tu agente de ElevenLabs cambie dinámicamente entre distintas voces de ElevenLabs durante una misma conversación. Esta potente función permite:

* **Narración con varios personajes**: voces diferentes para personajes distintos en las narraciones
* **Enseñanza de idiomas**: voces de hablantes nativos para diferentes idiomas
* **Agentes emocionales**: cambios de voz según el contexto emocional
* **Escenarios de juego de rol**: voces distintas para diferentes personajes

![Interfaz de configuración de varias voces](/docs/_fern-img/a421eaed65575340ef34c1209a30d97ca2594a5fb48ee57b02c8349930191727.webp)

## Cómo funciona

Cuando la compatibilidad con varias voces está activada, tu agente puede usar marcado de estilo XML para cambiar entre las voces configuradas durante la generación de texto. El agente vuelve automáticamente a la voz predeterminada cuando no se especifica una voz concreta.

**`Ejemplo de cambio de voz`**

```xml title="Ejemplo de cambio de voz"
The teacher said, <spanish>¡Hola estudiantes!</spanish> 
Then the student replied, <student>Hello! How are you today?</student>
```

**`Diálogo con varios personajes`**

```xml title="Diálogo con varios personajes"
<narrator>Once upon a time, in a distant kingdom...</narrator>
<princess>I need to find the magic crystal!</princess>
<wizard>The crystal lies beyond the enchanted forest.</wizard>
```

## Configuración

### Añadir voces compatibles

Cada voz compatible tiene las siguientes propiedades:

* **Etiqueta de voz**: identificador único (por ejemplo, "Joe", "Spanish", "Happy")
* **Voz**: selecciona una de las voces de ElevenLabs disponibles
* **Familia de modelos**: elige Turbo, Flash o Multilingual (opcional)
* **Idioma**: anula el idioma predeterminado para esta voz (opcional)
* **Descripción**: cuándo debe usar el agente esta voz

#### Actualizar desde el panel

Abre tu agente en el panel, ve a la pestaña **Voz** y busca la sección **Compatibilidad con varias voces**. Haz clic en **Añadir voz** para configurar una nueva voz compatible.

![Interfaz de configuración de varias voces](/docs/_fern-img/e7a6e86ed58abb54f75e884214e6bc056c85e85fc60176924fb2683e16250aa1.webp)

#### Actualizar mediante la CLI

#### Descarga la configuración del agente

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Edita \`agent_configs/\<agent-name>.json\`

Configura `conversation_config.tts.supported_voices`:

```json
{
  "conversation_config": {
    "tts": {
      "supported_voices": [
        {
          "label": "Spanish",
          "voice_id": "<voice-id>",
          "language": "es",
          "description": "For any Spanish words or phrases"
        }
      ]
    }
  }
}
```

#### Envía tus cambios

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Actualizar mediante la API

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "tts": {
            "supported_voices": [
                {
                    "label": "Spanish",
                    "voice_id": "<voice-id>",
                    "language": "es",
                    "description": "For any Spanish words or phrases",
                }
            ]
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    tts: {
      supportedVoices: [
        {
          label: "Spanish",
          voiceId: "<voice-id>",
          language: "es",
          description: "For any Spanish words or phrases",
        },
      ],
    },
  },
});
```

### Propiedades de voz

#### Etiqueta de voz

Un identificador único que el LLM utiliza para hacer referencia a esta voz. Elige etiquetas descriptivas como: -
Nombres de personajes: "Alice", "Bob", "Narrator" - Idiomas: "Spanish", "French", "German" -
Emociones: "Happy", "Sad", "Excited" - Roles: "Teacher", "Student", "Guide"

#### Familia de modelos

Anula la familia de modelos predeterminada del agente para esta voz específica: - **Flash**: generación más rápida,
optimizada para uso en tiempo real - **Turbo**: equilibrio entre velocidad y calidad - **Multilingual**: máxima
calidad, ideal para idiomas distintos del inglés - **Igual que el agente**: usa la configuración predeterminada del agente

#### Anulación de idioma

Especifica un idioma diferente para esta voz; resulta útil para: - Conversaciones multilingües - Aplicaciones de
enseñanza de idiomas - Pronunciaciones específicas de una región

#### Descripción

Indica el contexto en el que el agente debe usar esta voz.
Ejemplos:

* "Para cualquier palabra o frase en español"
* "Cuando el contenido del mensaje sea alegre o entusiasta"
* "Siempre que hable el personaje Joe"

## Implementación

### Sintaxis de marcado XML

Tu agente usa etiquetas de estilo XML para cambiar entre voces:

```xml
<VOICE_LABEL>text to be spoken</VOICE_LABEL>
```

**Puntos clave:**

* Sustituye `VOICE_LABEL` por la etiqueta exacta que configuraste
* El texto fuera de las etiquetas usa la voz predeterminada
* Las etiquetas distinguen entre mayúsculas y minúsculas
* No se admiten etiquetas anidadas

### Integración con el prompt del sistema

Cuando configuras voces compatibles, el sistema añade automáticamente instrucciones al prompt de tu agente:

```
When a message should be spoken by a particular person, use markup: "<CHARACTER>message</CHARACTER>" where CHARACTER is the character label.

Available voices are as follows:
- default: any text outside of the CHARACTER tags
- Joe: Whenever Joe is speaking
- Spanish: For any Spanish words or phrases
- Narrator: For narrative descriptions
```

### Ejemplos de uso

#### Enseñanza de idiomas

```
Teacher: Let's practice greetings. In Spanish, we say <Spanish>¡Hola! ¿Cómo estás?</Spanish>
Student: How do I respond?
Teacher: You can say <Spanish>¡Hola! Estoy bien, gracias.</Spanish> which means Hello! I'm fine, thank you.
```

#### Narración

```
Once upon a time, a brave princess ventured into a dark cave.
<Princess>I'm not afraid of you, dragon!</Princess> she declared boldly. The dragon rumbled from
the shadows, <Dragon>You should be, little one.</Dragon>
But the princess stood her ground, ready for whatever came next.
```

## Recomendaciones

#### Selección de voces

* Elige voces que diferencien claramente entre personajes o contextos
* Prueba las combinaciones de voces para asegurarte de que funcionan bien juntas
* Ten en cuenta el tono emocional y la personalidad de cada voz
* Asegúrate de que las voces coincidan con el idioma y el acento al cambiar de idioma

#### Nombres de las etiquetas

* Usa etiquetas descriptivas e intuitivas que el LLM pueda entender
* Mantén las etiquetas breves y fáciles de recordar
* Evita caracteres especiales o espacios en las etiquetas

#### Optimización del rendimiento

* Limita el número de voces compatibles a las que realmente necesites
* Usa la misma familia de modelos cuando sea posible para reducir la sobrecarga de los cambios
* Haz pruebas con los patrones de conversación que esperas tener
* Supervisa los tiempos de respuesta con varios cambios de voz

#### Directrices de contenido

* Proporciona descripciones claras sobre cuándo debe usarse cada voz
* Prueba casos límite en los que el cambio de voz pueda no estar claro
* Ten en cuenta el comportamiento alternativo cuando las etiquetas de voz sean ambiguas
* Asegúrate de que los cambios de voz mejoren la conversación en lugar de distraer

## Limitaciones

> **Note**
>
> * Máximo de 10 voces compatibles por agente (incluida la predeterminada)
> * El cambio de voz añade una latencia mínima durante la generación
> * Las etiquetas XML deben tener el formato correcto y estar cerradas
> * Las etiquetas de voz del marcado distinguen entre mayúsculas y minúsculas
> * No se admiten etiquetas de voz anidadas

## Preguntas frecuentes

#### ¿Qué ocurre si uso una etiqueta de voz no definida?

Si el agente usa una etiqueta de voz que no se ha configurado, el texto se pronunciará con la
voz predeterminada. Las etiquetas XML se ignorarán.

#### ¿Puedo cambiar de voz a mitad de una frase?

Sí, puedes cambiar de voz dentro de una misma respuesta. Cada sección etiquetada usará la voz
especificada, mientras que el texto sin etiqueta usará la voz predeterminada.

#### ¿Los cambios de voz afectan a la latencia de la conversación?

El cambio de voz añade una sobrecarga mínima. El primer uso de cada voz en una conversación puede tener
una latencia ligeramente mayor mientras se inicializa la voz.

#### ¿Puedo usar la misma voz con etiquetas diferentes?

Sí, puedes configurar varias etiquetas que usen la misma voz de ElevenLabs, pero con distintas familias de
modelos, idiomas o contextos.

#### ¿Cómo entreno a mi agente para que use el cambio de voz de forma eficaz?

Proporciona ejemplos claros en el prompt del sistema y haz pruebas exhaustivas. Puedes incluir escenarios
específicos en los que deba producirse un cambio de voz y ejemplos del formato de marcado XML.