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

# Obsługa wielu głosów

## Omówienie

Obsługa wielu głosów pozwala twojemu agentowi ElevenLabs dynamicznie przełączać się między różnymi głosami ElevenLabs w trakcie jednej rozmowy. Ta funkcja umożliwia:

* **Historie z wieloma postaciami**: Różne głosy dla różnych postaci w narracji
* **Naukę języków**: Głosy rodzimych użytkowników różnych języków
* **Agentów emocjonalnych**: Zmiany głosu zależnie od kontekstu emocjonalnego
* **Scenariusze role-play**: Osobne głosy dla różnych person

![Interfejs konfiguracji wielu głosów](/docs/_fern-img/a421eaed65575340ef34c1209a30d97ca2594a5fb48ee57b02c8349930191727.webp)

## Jak to działa

Gdy obsługa wielu głosów jest włączona, twój agent może używać znaczników w stylu XML, aby przełączać się między skonfigurowanymi głosami podczas generowania tekstu. Gdy nie określono konkretnego głosu, agent automatycznie wraca do głosu domyślnego.

**`Przykład przełączania głosów`**

```xml title="Przykład przełączania głosów"
The teacher said, <spanish>¡Hola estudiantes!</spanish> 
Then the student replied, <student>Hello! How are you today?</student>
```

**`Dialog wielu postaci`**

```xml title="Dialog wielu postaci"
<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>
```

## Konfiguracja

### Dodawanie obsługiwanych głosów

Każdy obsługiwany głos ma następujące właściwości:

* **Etykieta głosu**: Unikalny identyfikator (np. „Joe”, „Spanish”, „Happy”)
* **Głos**: Wybierz spośród dostępnych głosów ElevenLabs
* **Rodzina modeli**: Wybierz Turbo, Flash lub Multilingual (opcjonalnie)
* **Język**: Zastąp język domyślny dla tego głosu (opcjonalnie)
* **Opis**: Kiedy agent powinien używać tego głosu

#### Aktualizacja w panelu

Otwórz agenta w panelu, przejdź do karty **Voice** i znajdź sekcję **Multi-voice support**. Kliknij **Add voice**, aby skonfigurować nowy obsługiwany głos.

![Interfejs konfiguracji wielu głosów](/docs/_fern-img/e7a6e86ed58abb54f75e884214e6bc056c85e85fc60176924fb2683e16250aa1.webp)

#### Aktualizacja przez CLI

#### Pobierz konfigurację agenta

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

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

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

#### Wyślij zmiany

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

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

### Właściwości głosu

#### Etykieta głosu

Unikalny identyfikator, którego LLM używa do wskazania tego głosu. Wybieraj opisowe etykiety, takie jak: -
Nazwy postaci: „Alice”, „Bob”, „Narrator” - Języki: „Spanish”, „French”, „German” -
Emocje: „Happy”, „Sad”, „Excited” - Role: „Teacher”, „Student”, „Guide”

#### Rodzina modeli

Zastąp domyślną rodzinę modeli agenta dla tego konkretnego głosu: - **Flash**: Najszybsze generowanie,
zoptymalizowane do użycia w czasie rzeczywistym - **Turbo**: Zrównoważona szybkość i jakość - **Multilingual**: Najwyższa
jakość, najlepsza dla języków innych niż angielski - **Same as agent**: Użyj domyślnego ustawienia agenta

#### Zastąpienie języka

Określ inny język dla tego głosu. Przydatne w przypadku: - Rozmów wielojęzycznych - Nauki języków

* Wymowy specyficznej dla regionu

#### Opis

Podaj kontekst, kiedy agent powinien używać tego głosu.
Przykłady:

* „Dla dowolnych hiszpańskich słów lub fraz”
* „Gdy treść wiadomości jest radosna lub podekscytowana”
* „Gdy mówi postać Joe”

## Implementacja

### Składnia znaczników XML

Twój agent używa tagów w stylu XML do przełączania głosów:

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

**Najważniejsze informacje:**

* Zastąp `VOICE_LABEL` dokładną skonfigurowaną etykietą
* Tekst poza tagami używa głosu domyślnego
* W tagach wielkość liter ma znaczenie
* Zagnieżdżone tagi nie są obsługiwane

### Integracja z promptem systemowym

Gdy skonfigurujesz obsługiwane głosy, system automatycznie doda instrukcje do promptu agenta:

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

### Przykład użycia

#### Nauka języków

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

#### Opowiadanie historii

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

## Dobre praktyki

#### Wybór głosu

* Wybieraj głosy, które wyraźnie odróżniają postacie lub konteksty
* Testuj kombinacje głosów, aby upewnić się, że dobrze ze sobą współgrają
* Uwzględnij ton emocjonalny i osobowość każdego głosu
* Przy zmianie języka zadbaj, by głosy pasowały do języka i akcentu

#### Nazewnictwo etykiet

* Używaj opisowych, intuicyjnych etykiet, które LLM zrozumie
* Etykiety powinny być krótkie i łatwe do zapamiętania
* Unikaj znaków specjalnych i spacji w etykietach

#### Optymalizacja wydajności

* Ogranicz liczbę obsługiwanych głosów do tych, których naprawdę potrzebujesz
* Gdy to możliwe, używaj tej samej rodziny modeli, aby ograniczyć narzut przełączania
* Testuj z przewidywanymi schematami rozmów
* Monitoruj czas odpowiedzi przy wielu zmianach głosu

#### Wytyczne dotyczące treści

* Podaj jasne opisy, kiedy należy używać każdego głosu
* Testuj przypadki brzegowe, w których zmiana głosu może być niejasna
* Uwzględnij zachowanie awaryjne, gdy etykiety głosów są niejednoznaczne
* Upewnij się, że zmiany głosu wzbogacają rozmowę, a nie rozpraszają

## Ograniczenia

> **Note**
>
> * Maksymalnie 10 obsługiwanych głosów na agenta (w tym domyślny)
> * Przełączanie głosów dodaje minimalne opóźnienie podczas generowania
> * Tagi XML muszą mieć poprawny format i być zamknięte
> * W znacznikach etykiety głosów rozróżniają wielkość liter
> * Zagnieżdżone tagi głosów nie są obsługiwane

## FAQ

#### Co się stanie, jeśli użyję niezdefiniowanej etykiety głosu?

Jeśli agent użyje etykiety głosu, która nie została skonfigurowana, tekst zostanie wypowiedziany
głosem domyślnym. Tagi XML zostaną zignorowane.

#### Czy mogę zmienić głos w środku zdania?

Tak, możesz przełączać głosy w jednej odpowiedzi. Każda oznaczona sekcja użyje określonego
głosu, a tekst bez tagów użyje głosu domyślnego.

#### Czy zmiana głosu wpływa na opóźnienie rozmowy?

Przełączanie głosów dodaje minimalny narzut. Pierwsze użycie każdego głosu w rozmowie może mieć
nieco większe opóźnienie podczas inicjalizacji głosu.

#### Czy mogę używać tego samego głosu z różnymi etykietami?

Tak, możesz skonfigurować wiele etykiet używających tego samego głosu ElevenLabs, ale z różnymi rodzinami
modeli, językami lub kontekstami.

#### Jak nauczyć agenta skutecznego przełączania głosów?

Podaj jasne przykłady w prompcie systemowym i dokładnie przetestuj działanie. Możesz uwzględnić konkretne
scenariusze, w których powinna nastąpić zmiana głosu, oraz przykłady formatu znaczników XML.