# Оновлення ElevenLabs: огляд нових інструментів та управління голосом

> Повний посібник з генерації мовлення в ElevenLabs: огляд моделей (v3, Multilingual v2, Flash, Turbo), аудіо-теги інтонації, фонеми IPA/Arpabet, словники PLS та правила нормалізації тексту.

Останні оновлення платформи ElevenLabs кардинально розширили можливості штучного інтелекту в синтезі людського мовлення. Розробники отримали диференційовану лінійку моделей: від надреалістичної Eleven v3 з підтримкою тонких емоційних переходів до ультрашвидких Flash та Turbo для потокових сценаріїв у реальному часі.

У цьому практичному гайді розібрано всі ключові інструменти та методики роботи з голосом: вибір архітектури, управління емоційними аудіо-тегами, тонке налаштування темпу через SSML, робота з міжнародними фонетичними словниками (PLS) та обов'язкова нормалізація тексту перед відправкою в API.

---

## 1. Огляд моделей лінійки ElevenLabs

Сучасна екосистема ElevenLabs пропонує чотири ключові моделі синтезу мовлення, оптимізовані під різні інженерні вимоги.

### 1.1. Архітектурні особливості та призначення моделей

- **Eleven v3 (alpha):** флагманська модель із найвищою якістю та природністю мовлення. Головна перевага — нативна підтримка звукових тегів для вираження емоцій (радість, смуток, шепіт, крик, зітхання). Найкраще оптимізована для англомовного контенту та вимагає довших, контекстно насичених промптів.
- **Multilingual v2:** «золотий стандарт» для глобальних продуктів. Підтримує понад 30 мов (включаючи українську з високою точністю акцентів та діакритики). Забезпечує стабільну вимову складних речень, хоча має менш драматичний діапазон емоційних модуляцій, ніж v3.
- **Flash v2.5:** високошвидкісна модель із низькою затримкою (latency ~75 мс) та лімітом до 5 000 символів на один запит. Оптимальний баланс між якістю звучання та швидкістю для інтерактивних асистентів.
- **Turbo v2.5:** екстремально швидка модель для сценаріїв, де затримка є критичним фактором (телефонні голосові боти, синхронний переклад стрімів). Жертвує мікроінтонаціями заради миттєвого відгуку.

### 1.2. Зведена порівняльна таблиця характеристик

| Модель | Якість та виразність | Швидкість генерації | Підтримка мов | Ліміт символів | Оптимальне застосування |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Eleven v3 (alpha)** | Максимальна, жива емоційність | Помірна | Англійська (інші експериментально) | 15 000 | Подкасти, аудіокниги, кіноозвучення, сюжетні діалоги |
| **Multilingual v2** | Висока, стабільна | Середня | 30+ мов (вкл. українську) | 15 000 | Мультимовна локалізація, корпоративні відео, асистенти |
| **Flash v2.5** | Добра (збалансована) | Дуже висока | Англійська, частково інші | 5 000 | Чат-боти, стрімінг, ігрові NPC, живий переклад |
| **Turbo v2.5** | Базова утилітарна | Максимальна (~50 мс) | Базовий набір мов | 5 000 | IVR-системи, екстрені сповіщення, високонавантажені боти |

---

## 2. Критерії вибору моделі під сценарій

Вибір моделі визначається балансом між допустимою затримкою (latency), вартістю генерації та вимогами до емоційності.

### 2.1. Творче озвучення проти потокового стримінгу

:::tabs
=== Креативне озвучення (v3)
Для художніх аудіокниг, дубляжу трейлерів чи реклами обирайте **Eleven v3**. Вона здатна генерувати драматичні паузи, придих, сміх і зміну настрою всередині одного абзацу, створюючи повну ілюзію живого актора.
=== Багатомовність (Multilingual v2)
Якщо ваш проєкт орієнтований на міжнародну аудиторію чи українськомовні тексти, однозначний вибір — **Multilingual v2**. Вона не страждає на фонетичні збої при переході між латиницею та кирилицею і коректно відтворює локальні назви.
=== Реальний час (Flash / Turbo)
Для голосових інтерфейсів, підтримки клієнтів по телефону або інтерактивних NPC в іграх використовуйте **Flash v2.5** або **Turbo v2.5**. Вони забезпечують безшовний діалог без неприємних пауз між запитанням користувача та відповіддю системи.
:::

### 2.2. Багатомовна локалізація та синтез у реальному часі

> [!TIP]
> Для великих сервісів найефективніша гібридна архітектура: перші вітальні фрази користувачу генеруються через надшвидку **Flash v2.5**, а довгі розгорнуті довідки — через **Multilingual v2**.

---

## 3. Управління інтонацією, емоціями та аудіо-тегами

Головний прорив нових версій ElevenLabs — можливість керувати манерою мовлення безпосередньо через розмітку в тексті.

### 3.1. Можливості моделі Eleven v3 та звукові теги

Модель Eleven v3 розпізнає вбудовані аудіо-теги, які діють як режисерські ремарки для диктора:

- **Емоційні стани:** `<happy>`, `<sad>`, `<angry>`, `<excited>`, `<calm>`, `<sarcastic>`.
- **Звукові ефекти та реакції:** `<laugh>`, `<sigh>`, `<cough>`, `<gasp>`, `<whisper>`, `<shout>`.
- **Стильові переходи:** обгортання окремих реплік дозволяє змінювати настрій персонажа в реальному часі.

### 3.2. Вплив пунктуації, регістру та розривів на мелодику

Крім явних тегів, нейромережа чутливо реагує на стандартну текстову пунктуацію:
- **Крапка (`.`):** повноцінна пауза зі спадною інтонацією завершеної думки.
- **Кома (`,`):** коротка ритмічна затримка зі збереженням піднесеного тону.
- **Тире (`—`) або три крапки (`...`):** створюють ефект природного вагання чи задуми оповідача.
- **ВЕЛИКІ ЛІТЕРИ:** змушують модель виділити ключове слово наголосом та гучністю.

---

## 4. Практичні приклади інтонації та діалогів

Розглянемо правильне використання тегів на конкретних текстових шаблонах.

### 4.1. Сценарії монологу, діалогу та емоційних переходів

> 💡 **Приклад монологу з аудіо-тегами:**
```text
<laugh> It’s funny how life works sometimes. You think you’ve planned everything perfectly... but then <sigh> something unexpected happens.
```
*Результат: модель починає мову з природного короткого сміху, робить виразну паузу на трикрапці та видихає перед словом «something».*

> 💡 **Приклад драматичного діалогу двох персонажів:**
```text
<angry> "I told you never to open that door!" </angry>
<calm> "I know, but you don't understand what was inside..." </calm>
```
*Результат: перша репліка звучить гучно та агресивно, а відповідь — стишеним, заспокійливим тоном.*

### 4.2. Рекомендації: стабільність генерації, підбір голосу та баланс тегів

1. **Довжина контексту:** уникайте промптів з 1–2 слів. Для стабільної генерації передавайте фрази довжиною від 10 слів.
2. **Акустична сумісність голосу:** не всі клоновані голоси однаково добре реагують на тег `<shout>` чи `<whisper>`. Тестуйте промпт на 2–3 дикторах бібліотеки VoiceLab.
3. **Помірність тегів:** не комбінуйте більше трьох ефектів в одному реченні, щоб уникнути артефактів звукового спотворення.

---

## 5. Управління темпом, паузами та швидкістю мовлення

Для точної синхронізації мови з відеорядом чи анімацією використовують точні затримки та системні параметри швидкості.

### 5.1. SSML-теги пауз і пунктуаційні затримки

Для встановлення точної тривалості мовчання використовується SSML-тег розриву:

```xml
Hello there <break time="1.5s" /> welcome to our system.
```

- Підтримуються значення в секундах (`1.5s`) або мілісекундах (`500ms`).
- Діапазон тривалості однієї паузи зазвичай становить від `0.1s` до `3.0s`.

### 5.2. Параметр швидкості мовлення (speed) в API

Швидкість генерації задається в конфігурації запиту через параметр `speed`:
- `1.0` — еталонна швидкість обраного диктора.
- `0.8` — розмірений, спокійний темп для медитацій чи навчальних матеріалів.
- `1.2` — енергійна динамічна подача для реклами та новинних зведень.
- Допустимий робочий діапазон: від `0.5` до `2.0`.

---

## 6. Управління вимовою: фонеми, alias-теги та словники PLS

Коли модель стикається зі специфічними медичними термінами, акронімами чи рідкісними іменами, на допомогу приходять фонетичні правила.

### 6.1. Фонетична розмітка (IPA / CMU Arpabet) та alias-теги

За допомогою тегу `<phoneme>` можна задати точну транскрипцію слова за міжнародним алфавітом IPA:

```xml
<phoneme alphabet="ipa" ph="həˈləʊ">hello</phoneme>
```

Для простих скорочень зручно використовувати псевдоніми через тег `<alias>`:

```xml
<alias text="laugh out loud">LOL</alias>
```
*Модель озвучить повну розгорнуту фразу замість незрозумілої абревіатури.*

### 6.2. Корпоративні словники вимови (PLS)

Для великих проєктів ElevenLabs підтримує стандарт **Pronunciation Lexicon Specification (PLS)**. Ви можете завантажити XML-файл словника в налаштування робочої області (Workspace), і всі голоси системи автоматично вимовлятимуть назви брендів та товарів за вашим корпоративним стандартом.

### 6.3. Контекстні прийоми та діалогова подача

> [!NOTE]
> Якщо ви не хочете перевантажувати текст XML-тегами, використовуйте фонетичну транслітерацію: напишіть складне слово по складах українською або англійською (наприклад, *"Ne-o-bank"* замість *"Neobank"*).

---

## 7. Нормалізація тексту: числа, дати, валюти та скорочення

Нейромережі перетворюють символи в звук послідовно. Непідготовлений текст часто призводить до того, що дата `11/05` звучить як «одинадцять ділити на п'ять».

### 7.1. Чому моделі помиляються в числах і спеціальних символах

Моделі Text-to-Speech не завжди можуть автоматично визначити контекст: чи є число `1984` роком, сумою в гривнях, номером квартири чи телефонним кодом.

### 7.2. Три методи нормалізації: вибір моделі, промптинг і RegEx

1. **Вибір адаптивної моделі:** Multilingual v2 має вбудовані правила кращої нормалізації чисел, ніж експериментальна v3.
2. **Вербалізація в промпті:** пишіть числа словами безпосередньо у вихідному тексті.
3. **Програмний препроцесинг (RegEx):** перед викликом API регулярні вирази замінюють знаки валют і формати дат на словесні еквіваленти.

### 7.3. Довідкова таблиця нормалізації числових і текстових даних

| Категорія | Непідготовлений ввід | Нормалізований текст для API |
| :--- | :--- | :--- |
| **Номер телефону** | `+380 50 123 45 67` | `плюс три вісім нуль, п'ятдесят, сто двадцять три, сорок п'ять, шістдесят сім` |
| **Календарна дата** | `24.08.1991` | `двадцять четвертого серпня тисяча дев'ятсот дев'яносто першого року` |
| **Валюта** | `$250` | `двісті п'ятдесят доларів` (або `two hundred and fifty dollars`) |
| **Діапазон** | `10-15 кг` | `від десяти до п'ятнадцяти кілограмів` |
| **Абревіатура** | `НАТО` | `НАТО` (як слово) або `С-Е-О` (через дефіси, якщо потрібні літери) |

---

## 8. Інтеграція через API та приклади реалізації

Для надійного синтезу на сервері обов'язково надсилайте попередньо нормалізований текст із зазначенням параметрів стабільності голосу.

### 8.1. Формування запиту з нормалізованим текстом

> [!IMPORTANT]
> Параметри `stability` (стабільність) та `similarity_boost` (схожість) регулюють варіативність: значення стабільності `0.5` забезпечує живу емоційність, тоді як `0.8` робить голос більш строгим і дикторським.

### 8.2. Зразки коду для Python, TypeScript та cURL

:::tabs
=== Python SDK
```python
import requests

url = "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM"
headers = {
    "xi-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "text": "Двадцять четвертого серпня відбудеться презентація оновленої системи.",
    "model_id": "eleven_multilingual_v2",
    "voice_settings": {
        "stability": 0.5,
        "similarity_boost": 0.8,
        "speed": 1.0
    }
}

response = requests.post(url, headers=headers, json=data)
with open("output.mp3", "wb") as f:
    f.write(response.content)
```
=== TypeScript (Node.js)
```typescript
import fs from "fs";

const voiceId = "21m00Tcm4TlvDq8ikWAM";
const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`;

const payload = {
  text: "Двадцять четвертого серпня відбудеться презентація оновленої системи.",
  model_id: "eleven_multilingual_v2",
  voice_settings: {
    stability: 0.5,
    similarity_boost: 0.8,
    speed: 1.0
  }
};

async function generateSpeech() {
  const response = await fetch(url, {
    method: "POST",
    headers: {
      "xi-api-key": process.env.ELEVENLABS_API_KEY || "",
      "Content-Type": "application/json"
    },
    body: JSON.stringify(payload)
  });

  const arrayBuffer = await response.arrayBuffer();
  fs.writeFileSync("output.mp3", Buffer.from(arrayBuffer));
}

generateSpeech();
```
=== cURL (Bash)
```bash
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello! Welcome to the new ElevenLabs voice synthesis platform.",
    "model_id": "eleven_multilingual_v2",
    "voice_settings": {
      "stability": 0.5,
      "similarity_boost": 0.8
    }
  }' \
  --output output.mp3
```
:::