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

# Ondersteuning voor meerdere stemmen

## Overzicht

Met ondersteuning voor meerdere stemmen kan je ElevenLabs-agent tijdens één gesprek dynamisch schakelen tussen verschillende ElevenLabs-stemmen. Deze krachtige functie maakt het volgende mogelijk:

* **Verhalen met meerdere personages**: Verschillende stemmen voor verschillende personages in verhalen
* **Taalbegeleiding**: Stemmen van moedertaalsprekers voor verschillende talen
* **Emotionele agents**: Stemwijzigingen op basis van emotionele context
* **Rollenspelscenario's**: Onderscheidende stemmen voor verschillende persona's

![Configuratie-interface voor meerdere stemmen](/docs/_fern-img/a421eaed65575340ef34c1209a30d97ca2594a5fb48ee57b02c8349930191727.webp)

## Hoe het werkt

Wanneer ondersteuning voor meerdere stemmen is ingeschakeld, kan je agent XML-achtige markup gebruiken om tijdens het genereren van tekst tussen geconfigureerde stemmen te schakelen. De agent keert automatisch terug naar de standaardstem wanneer er geen specifieke stem is opgegeven.

**`Voorbeeld van stemwisselingen`**

```xml title="Voorbeeld van stemwisselingen"
The teacher said, <spanish>¡Hola estudiantes!</spanish> 
Then the student replied, <student>Hello! How are you today?</student>
```

**`Dialoog met meerdere personages`**

```xml title="Dialoog met meerdere personages"
<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>
```

## Configuratie

### Ondersteunde stemmen toevoegen

Elke ondersteunde stem heeft de volgende eigenschappen:

* **Stemlabel**: Unieke identificatie (bijv. "Joe", "Spaans", "Blij")
* **Stem**: Selecteer uit je beschikbare ElevenLabs-stemmen
* **Modelfamilie**: Kies Turbo, Flash of Multilingual (optioneel)
* **Taal**: Overschrijf de standaardtaal voor deze stem (optioneel)
* **Beschrijving**: Wanneer de agent deze stem moet gebruiken

#### Bijwerken via het dashboard

Open je agent in het dashboard, ga naar het tabblad **Voice** en zoek de sectie **Ondersteuning voor meerdere stemmen**. Klik op **Stem toevoegen** om een nieuwe ondersteunde stem te configureren.

![Configuratie-interface voor meerdere stemmen](/docs/_fern-img/e7a6e86ed58abb54f75e884214e6bc056c85e85fc60176924fb2683e16250aa1.webp)

#### Bijwerken via de CLI

#### De agentconfiguratie ophalen

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

#### \`agent\_configs/\<agent-name>.json\` bewerken

Stel `conversation_config.tts.supported_voices` in:

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

#### Je wijzigingen pushen

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

#### Bijwerken via de 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",
        },
      ],
    },
  },
});
```

### Stemeigenschappen

#### Stemlabel

Een unieke identificatie die de LLM gebruikt om naar deze stem te verwijzen. Kies beschrijvende labels zoals: -
Namen van personages: "Alice", "Bob", "Verteller" - Talen: "Spaans", "Frans", "Duits" -
Emoties: "Blij", "Verdrietig", "Enthousiast" - Rollen: "Docent", "Student", "Gids"

#### Modelfamilie

Overschrijf de standaardmodelfamilie van de agent voor deze specifieke stem: - **Flash**: Snelste generatie,
geoptimaliseerd voor realtimegebruik - **Turbo**: Gebalanceerde snelheid en kwaliteit - **Multilingual**: Hoogste
kwaliteit, het beste voor niet-Engelse talen - **Zelfde als agent**: Gebruik de standaardinstelling van de agent

#### Taaloverschrijving

Geef een andere taal op voor deze stem, handig voor: - Meertalige gesprekken - Toepassingen voor
taalbegeleiding - Regiospecifieke uitspraken

#### Beschrijving

Geef context voor wanneer de agent deze stem moet gebruiken.
Voorbeelden:

* "Voor Spaanse woorden of zinnen"
* "Wanneer de inhoud van het bericht vrolijk of enthousiast is"
* "Wanneer het personage Joe spreekt"

## Implementatie

### XML-markupsyntaxis

Je agent gebruikt XML-achtige tags om tussen stemmen te schakelen:

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

**Belangrijke punten:**

* Vervang `VOICE_LABEL` door het exacte label dat je hebt geconfigureerd
* Tekst buiten tags gebruikt de standaardstem
* Tags zijn hoofdlettergevoelig
* Geneste tags worden niet ondersteund

### Integratie met system prompts

Wanneer je ondersteunde stemmen configureert, voegt het systeem automatisch instructies toe aan de prompt van je agent:

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

### Voorbeeldgebruik

#### Taalbegeleiding

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

#### Verhalen vertellen

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

## Best practices

#### Stemselectie

* Kies stemmen die duidelijk onderscheid maken tussen personages of contexten
* Test stemcombinaties om te zorgen dat ze goed samenwerken
* Houd rekening met de emotionele toon en persoonlijkheid van elke stem
* Zorg dat stemmen bij de taal en het accent passen wanneer je van taal wisselt

#### Labels benoemen

* Gebruik beschrijvende, intuïtieve labels die de LLM kan begrijpen
* Houd labels kort en gemakkelijk te onthouden
* Vermijd speciale tekens of spaties in labels

#### Prestaties optimaliseren

* Beperk het aantal ondersteunde stemmen tot wat je daadwerkelijk nodig hebt
* Gebruik waar mogelijk dezelfde modelfamilie om de overhead van schakelen te beperken
* Test met je verwachte gesprekspatronen
* Monitor reactietijden bij meerdere stemwisselingen

#### Richtlijnen voor content

* Geef duidelijke beschrijvingen van wanneer elke stem moet worden gebruikt
* Test edge cases waarin stemwisselingen onduidelijk kunnen zijn
* Houd rekening met fallbackgedrag wanneer stemlabels dubbelzinnig zijn
* Zorg dat stemwisselingen het gesprek verbeteren en niet afleiden

## Beperkingen

> **Note**
>
> * Maximaal 10 ondersteunde stemmen per agent (inclusief standaardstem)
> * Stemwisselingen voegen tijdens het genereren minimale latentie toe
> * XML-tags moeten correct zijn opgemaakt en gesloten
> * Stemlabels in markup zijn hoofdlettergevoelig
> * Geneste stemtags worden niet ondersteund

## Veelgestelde vragen

#### Wat gebeurt er als ik een niet-gedefinieerd stemlabel gebruik?

Als de agent een stemlabel gebruikt dat niet is geconfigureerd, wordt de tekst uitgesproken met de
standaardstem. De XML-tags worden genegeerd.

#### Kan ik midden in een zin van stem wisselen?

Ja, je kunt binnen één reactie van stem wisselen. Elke getagde sectie gebruikt de opgegeven
stem, terwijl tekst zonder tags de standaardstem gebruikt.

#### Hebben stemwisselingen invloed op de gesprekslatentie?

Stemwisselingen voegen minimale overhead toe. Het eerste gebruik van elke stem in een gesprek kan
iets meer latentie hebben wanneer de stem wordt geïnitialiseerd.

#### Kan ik dezelfde stem met verschillende labels gebruiken?

Ja, je kunt meerdere labels configureren die dezelfde ElevenLabs-stem gebruiken, maar met verschillende
modelfamilies, talen of contexten.

#### Hoe leer ik mijn agent om stemwisselingen effectief te gebruiken?

Geef duidelijke voorbeelden in je system prompt en test grondig. Je kunt specifieke
scenario's opnemen waarin stemwisselingen moeten plaatsvinden en voorbeelden van de XML-markupindeling.