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

# Supporto multi-voce

## Panoramica

Il supporto multi-voce consente al tuo agente ElevenLabs di passare dinamicamente da una voce ElevenLabs all'altra durante un'unica conversazione. Questa potente funzionalità consente:

* **Narrazione con più personaggi**: voci diverse per personaggi diversi nelle storie
* **Insegnamento delle lingue**: voci di madrelingua per lingue diverse
* **Agenti emotivi**: cambi di voce in base al contesto emotivo
* **Scenari di gioco di ruolo**: voci distinte per personaggi diversi

![Interfaccia di configurazione multi-voce](/docs/_fern-img/a421eaed65575340ef34c1209a30d97ca2594a5fb48ee57b02c8349930191727.webp)

## Come funziona

Quando il supporto multi-voce è abilitato, il tuo agente può usare markup in stile XML per passare da una voce configurata all'altra durante la generazione del testo. L'agente torna automaticamente alla voce predefinita quando non viene specificata una voce particolare.

**`Esempio di cambio voce`**

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

**`Dialogo con più personaggi`**

```xml title="Dialogo con più personaggi"
<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>
```

## Configurazione

### Aggiungere voci supportate

Ogni voce supportata ha le seguenti proprietà:

* **Etichetta vocale**: identificatore univoco (ad es. "Joe", "Spagnolo", "Felice")
* **Voce**: seleziona tra le voci ElevenLabs disponibili
* **Famiglia di modelli**: scegli Turbo, Flash o Multilingual (facoltativo)
* **Lingua**: sostituisci la lingua predefinita per questa voce (facoltativo)
* **Descrizione**: quando l'agente deve usare questa voce

#### Aggiorna dalla dashboard

Apri il tuo agente nella dashboard, vai alla scheda **Voce** e individua la sezione **Supporto multi-voce**. Fai clic su **Aggiungi voce** per configurare una nuova voce supportata.

![Interfaccia di configurazione multi-voce](/docs/_fern-img/e7a6e86ed58abb54f75e884214e6bc056c85e85fc60176924fb2683e16250aa1.webp)

#### Aggiorna tramite la CLI

#### Recupera la configurazione dell'agente

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

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

Imposta `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"
        }
      ]
    }
  }
}
```

#### Invia le modifiche

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

#### Aggiorna tramite 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",
        },
      ],
    },
  },
});
```

### Proprietà della voce

#### Etichetta vocale

Un identificatore univoco che l'LLM usa per fare riferimento a questa voce. Scegli etichette descrittive come: -
Nomi dei personaggi: "Alice", "Bob", "Narratore" - Lingue: "Spagnolo", "Francese", "Tedesco" -
Emozioni: "Felice", "Triste", "Entusiasta" - Ruoli: "Insegnante", "Studente", "Guida"

#### Famiglia di modelli

Sostituisci la famiglia di modelli predefinita dell'agente per questa voce specifica: - **Flash**: generazione più rapida,
ottimizzata per l'uso in tempo reale - **Turbo**: equilibrio tra velocità e qualità - **Multilingual**: qualità più
elevata, ideale per le lingue diverse dall'inglese - **Uguale all'agente**: usa l'impostazione predefinita dell'agente

#### Sostituzione della lingua

Specifica una lingua diversa per questa voce, utile per: - Conversazioni multilingue - Applicazioni per
l'insegnamento delle lingue - Pronunce specifiche per regione

#### Descrizione

Fornisci il contesto per indicare quando l'agente deve usare questa voce.
Esempi:

* "Per qualsiasi parola o frase in spagnolo"
* "Quando il contenuto del messaggio è gioioso o entusiasta"
* "Ogni volta che parla il personaggio Joe"

## Implementazione

### Sintassi del markup XML

Il tuo agente usa tag in stile XML per passare da una voce all'altra:

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

**Punti chiave:**

* Sostituisci `VOICE_LABEL` con l'etichetta esatta che hai configurato
* Il testo esterno ai tag usa la voce predefinita
* I tag distinguono tra maiuscole e minuscole
* I tag nidificati non sono supportati

### Integrazione con il system prompt

Quando configuri voci supportate, il sistema aggiunge automaticamente istruzioni al prompt del tuo 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
```

### Esempi di utilizzo

#### Insegnamento delle lingue

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

#### Narrazione

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

#### Selezione delle voci

* Scegli voci che distinguano chiaramente personaggi o contesti diversi
* Testa le combinazioni di voci per assicurarti che funzionino bene insieme
* Considera il tono emotivo e la personalità di ogni voce
* Assicurati che le voci corrispondano alla lingua e all'accento quando cambi lingua

#### Denominazione delle etichette

* Usa etichette descrittive e intuitive che l'LLM possa comprendere
* Mantieni le etichette brevi e facili da ricordare
* Evita caratteri speciali o spazi nelle etichette

#### Ottimizzazione delle prestazioni

* Limita il numero di voci supportate a quelle di cui hai effettivamente bisogno
* Usa la stessa famiglia di modelli quando possibile per ridurre l'overhead del cambio di voce
* Esegui test con i pattern di conversazione previsti
* Monitora i tempi di risposta con più cambi di voce

#### Linee guida per i contenuti

* Fornisci descrizioni chiare di quando usare ogni voce
* Testa i casi limite in cui il cambio di voce potrebbe non essere chiaro
* Considera il comportamento di fallback quando le etichette vocali sono ambigue
* Assicurati che i cambi di voce migliorino la conversazione anziché distrarre

## Limitazioni

> **Note**
>
> * Massimo 10 voci supportate per agente, inclusa quella predefinita
> * Il cambio di voce aggiunge una latenza minima durante la generazione
> * I tag XML devono essere formattati e chiusi correttamente
> * Le etichette vocali nel markup distinguono tra maiuscole e minuscole
> * I tag vocali nidificati non sono supportati

## Domande frequenti

#### Cosa succede se uso un'etichetta vocale non definita?

Se l'agente usa un'etichetta vocale che non è stata configurata, il testo verrà pronunciato con la
voce predefinita. I tag XML verranno ignorati.

#### Posso cambiare voce a metà frase?

Sì, puoi cambiare voce all'interno di una singola risposta. Ogni sezione con tag userà la voce specificata,
mentre il testo senza tag usa la voce predefinita.

#### I cambi di voce influiscono sulla latenza della conversazione?

Il cambio di voce aggiunge un overhead minimo. Il primo utilizzo di ogni voce in una conversazione può avere
una latenza leggermente maggiore durante l'inizializzazione della voce.

#### Posso usare la stessa voce con etichette diverse?

Sì, puoi configurare più etichette che usano la stessa voce ElevenLabs ma con famiglie di modelli,
lingue o contesti diversi.

#### Come posso addestrare il mio agente a usare efficacemente il cambio di voce?

Fornisci esempi chiari nel system prompt ed esegui test approfonditi. Puoi includere scenari specifici
in cui dovrebbe avvenire il cambio di voce ed esempi del formato del markup XML.