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

# Prise en charge de plusieurs voix

## Vue d’ensemble

La prise en charge de plusieurs voix permet à votre agent ElevenLabs de passer dynamiquement d’une voix ElevenLabs à l’autre au cours d’une même conversation. Cette fonctionnalité permet notamment :

* **Narration avec plusieurs personnages** : différentes voix pour différents personnages dans les récits
* **Apprentissage des langues** : voix de locuteurs natifs pour différentes langues
* **Agents émotionnels** : changements de voix selon le contexte émotionnel
* **Scénarios de jeu de rôle** : voix distinctes pour différentes personnalités

![Interface de configuration de plusieurs voix](/docs/_fern-img/a421eaed65575340ef34c1209a30d97ca2594a5fb48ee57b02c8349930191727.webp)

## Fonctionnement

Lorsque la prise en charge de plusieurs voix est activée, votre agent peut utiliser un balisage de type XML pour passer d’une voix configurée à l’autre pendant la génération de texte. L’agent revient automatiquement à la voix par défaut lorsqu’aucune voix précise n’est indiquée.

**`Exemple de changement de voix`**

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

**`Dialogue avec plusieurs personnages`**

```xml title="Dialogue avec plusieurs personnages"
<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>
```

## Configuration

### Ajouter des voix prises en charge

Chaque voix prise en charge possède les propriétés suivantes :

* **Libellé de voix** : identifiant unique, par exemple « Joe », « Spanish », « Happy »
* **Voix** : sélectionnez parmi vos voix ElevenLabs disponibles
* **Famille de modèles** : choisissez Turbo, Flash ou Multilingual, facultatif
* **Langue** : remplacez la langue par défaut pour cette voix, facultatif
* **Description** : indiquez quand l’agent doit utiliser cette voix

#### Mettre à jour via le Dashboard

Ouvrez votre agent dans le Dashboard, accédez à l’onglet **Voice**, puis repérez la section **Multi-voice support**. Cliquez sur **Add voice** pour configurer une nouvelle voix prise en charge.

![Interface de configuration de plusieurs voix](/docs/_fern-img/e7a6e86ed58abb54f75e884214e6bc056c85e85fc60176924fb2683e16250aa1.webp)

#### Mettre à jour via la CLI

#### Récupérer la configuration de l’agent

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

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

Définissez `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"
        }
      ]
    }
  }
}
```

#### Envoyer vos modifications

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

#### Mettre à jour via l’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",
        },
      ],
    },
  },
});
```

### Propriétés des voix

#### Libellé de voix

Identifiant unique que le LLM utilise pour référencer cette voix. Choisissez des libellés descriptifs, par exemple :
noms de personnages : « Alice », « Bob », « Narrator » ; langues : « Spanish », « French », « German » ;
émotions : « Happy », « Sad », « Excited » ; rôles : « Teacher », « Student », « Guide ».

#### Famille de modèles

Remplacez la famille de modèles par défaut de l’agent pour cette voix précise : **Flash** : génération la plus rapide,
optimisée pour une utilisation en temps réel ; **Turbo** : vitesse et qualité équilibrées ; **Multilingual** : qualité maximale,
idéal pour les langues autres que l’anglais ; **Same as agent** : utilise le réglage par défaut de l’agent.

#### Remplacement de la langue

Spécifiez une autre langue pour cette voix, ce qui est utile pour : les conversations multilingues, l’apprentissage des langues
et les prononciations propres à une région.

#### Description

Indiquez le contexte dans lequel l’agent doit utiliser cette voix.
Exemples :

* « Pour tous les mots ou expressions en espagnol »
* « Lorsque le contenu du message est joyeux ou enthousiaste »
* « Chaque fois que le personnage Joe parle »

## Mise en œuvre

### Syntaxe du balisage XML

Votre agent utilise des balises de type XML pour changer de voix :

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

**Points clés :**

* Remplacez `VOICE_LABEL` par le libellé exact que vous avez configuré
* Le texte en dehors des balises utilise la voix par défaut
* Les balises sont sensibles à la casse
* Les balises imbriquées ne sont pas prises en charge

### Intégration au prompt système

Lorsque vous configurez des voix prises en charge, le système ajoute automatiquement des instructions au prompt de votre 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
```

### Exemples d’utilisation

#### Apprentissage des langues

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

#### Narration

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

## Bonnes pratiques

#### Sélection des voix

* Choisissez des voix qui différencient clairement les personnages ou les contextes
* Testez les combinaisons de voix pour vous assurer qu’elles fonctionnent bien ensemble
* Tenez compte du ton émotionnel et de la personnalité de chaque voix
* Assurez-vous que les voix correspondent à la langue et à l’accent lors du changement de langue

#### Nommage des libellés

* Utilisez des libellés descriptifs et intuitifs que le LLM peut comprendre
* Gardez les libellés courts et faciles à retenir
* Évitez les caractères spéciaux et les espaces dans les libellés

#### Optimisation des performances

* Limitez le nombre de voix prises en charge à ce dont vous avez réellement besoin
* Utilisez la même famille de modèles lorsque possible afin de réduire la surcharge liée aux changements de voix
* Testez avec les schémas de conversation attendus
* Surveillez les temps de réponse avec plusieurs changements de voix

#### Consignes de contenu

* Indiquez clairement quand chaque voix doit être utilisée
* Testez les cas limites où le changement de voix peut manquer de clarté
* Prévoyez le comportement de secours lorsque les libellés de voix sont ambigus
* Assurez-vous que les changements de voix enrichissent la conversation au lieu de la distraire

## Limites

> **Note**
>
> * Maximum de 10 voix prises en charge par agent, y compris la voix par défaut
> * Le changement de voix ajoute une latence minimale pendant la génération
> * Les balises XML doivent être correctement formatées et fermées
> * Les libellés de voix sont sensibles à la casse dans le balisage
> * Les balises de voix imbriquées ne sont pas prises en charge

## FAQ

#### Que se passe-t-il si j’utilise un libellé de voix non défini ?

Si l’agent utilise un libellé de voix qui n’a pas été configuré, le texte est prononcé avec la
voix par défaut. Les balises XML sont ignorées.

#### Puis-je changer de voix au milieu d’une phrase ?

Oui, vous pouvez changer de voix au sein d’une même réponse. Chaque section balisée utilise la voix indiquée,
tandis que le texte non balisé utilise la voix par défaut.

#### Les changements de voix affectent-ils la latence de conversation ?

Le changement de voix ajoute une surcharge minimale. La première utilisation de chaque voix dans une conversation peut présenter
une latence légèrement supérieure pendant l’initialisation de la voix.

#### Puis-je utiliser la même voix avec différents libellés ?

Oui, vous pouvez configurer plusieurs libellés utilisant la même voix ElevenLabs, mais avec différentes familles de modèles,
langues ou contextes.

#### Comment entraîner mon agent à utiliser efficacement le changement de voix ?

Fournissez des exemples clairs dans votre prompt système et testez minutieusement. Vous pouvez inclure des scénarios précis
dans lesquels un changement de voix doit se produire, ainsi que des exemples du format de balisage XML.