# Eleven Multilingual v2 — синтез речи, ElevenLabs, через API СОЮЗа

> Идентификатор для поля `model`: `eleven-multilingual-v2`. Страница: https://souz.ai/models/eleven-multilingual-v2. Текст → Речь. Выпущена 22 августа 2023.

СОЮЗ — единый API к нейросетям разных вендоров: один ключ, общий баланс в рублях, списание только за успешный запрос. Эта модель вызывается по контракту ниже.

Eleven Multilingual v2 — ровная подача длинного текста на 29 языках. Для аудиокниг, лекций и роликов с одним рассказчиком.

## Цены

Неуспешный запрос не тарифицируется. В ответах API итог — `price` у задачи и `usage.cost` у чата — целые микроединицы валюты платформы (1 единица = 1 000 000 микро), а сама валюта приезжает рядом полем `currency` (сейчас `RUB`). У незавершённой задачи `price: null`.

- Символы текста — 11 492 ₽ за 1M

Цены и типичное время пресетов роутинга — поле `routing`: `cheap` «Дешевле», `balanced` «Баланс» (по умолчанию), `fast` «Быстрее». Пресет задаёт порядок каналов; где пресеты начинают с одного канала, цена у них общая. Потолок `max_price_multiplier` (`1.5`, `2`, `3`, `5`, `10`) не даёт пробовать каналы дороже цены пресета больше чем во столько раз.

- Цена по каналам: Красный (`red`) — 11 492 ₽ за 1M символов.

Цена не зависит от канала; скорость и стабильность каждого — в блоке «Каналы».

## Каналы

Канал — постоянный цвет внутри модели: у каждого свои ставки, задержка, скорость и стабильность. Цвет не означает «дешёвый» или «быстрый», одинаковый цвет у другой модели — другой канал. Задержка и скорость — медиана за последний час, стабильность — доля успешных вызовов за 7 дней; «нет данных» — замеров пока мало, а не ноль.

Каналов: 1. Данные на момент сборки страницы; свежие — `GET https://api.souz.ai/v1/models/eleven-multilingual-v2/channels` без ключа (там же HEX цвета, пределы входа и p90).

| Канал (`id`) | Название | Доступен | Ставки | Время ответа, p50 за сутки | Стабильность, 7 дней |
| --- | --- | --- | --- | --- | --- |
| `red` | Красный | да | 11 492 ₽ за 1M символов | нет данных | нет данных |

Как выбрать канал:

- По умолчанию канал выбирает Авто-роутинг: пресет `routing` (`cheap`, `balanced`, `fast`) задаёт порядок каналов, при отказе запрос переходит к следующему.
- На один запрос — поле `routing_options`: `{"only": ["red"]}` — только этот канал, без запасных; `{"order": ["red"]}` — сначала он, затем остальные; `"allow_fallbacks": false` — только каналы из `order`; `{"ignore": [...]}` — исключить; `{"sort": "price"}` (`latency`) — порядок по критерию вместо пресета; `max_price` — пределы ставок. SDK OpenAI — через `extra_body`.
- Бесплатная проверка без запуска: `POST https://api.souz.ai/v1/models/eleven-multilingual-v2/routing/preview` с теми же `routing`, `routing_options` и `params` — каналы в порядке попыток (`channels`) и оценка `estimated_price`; пустой `channels` — с такими условиями запрос не выполнить.
- Закрепить по умолчанию для всех запросов аккаунта к модели: `PATCH https://api.souz.ai/v1/settings` ключом управления с `{"routing_options": {"eleven-multilingual-v2": {"only": ["red"]}}}`. PATCH заменяет всю карту — сначала прочитайте `GET https://api.souz.ai/v1/settings` и сохраните настройки других моделей. Запрос без `routing_options` наследует настройку; `{}` в запросе — автоматический выбор на один вызов.
- MCP: https://api.souz.ai/mcp — инструменты `list_channels`, `compare_channels`, `preview_routing`, `pin_channel`, `unpin_channel`. Подключение в Claude Code: `claude mcp add --transport http souz https://api.souz.ai/mcp --header "Authorization: Bearer $SOUZ_API_KEY"`.
- Каким каналом выполнен запрос — поле `channel` в ответе (у чата — и в каждом чанке потока), в задаче, вебхуке и истории запросов; `attempt_count` — сколько было попыток.

## Подключение по API

- Адрес: `POST https://api.souz.ai/v1/audio/speech`
- Авторизация: заголовок `Authorization: Bearer <ключ>`. Ключ создаётся в кабинете: https://souz.ai/keys.
- Тело запроса — JSON, `Content-Type: application/json`, поле `model` — `eleven-multilingual-v2`.
- Ответ — байты звука в родном формате модели, id задачи — в заголовке `X-Job-Id` (так ждёт SDK OpenAI). С `Accept: application/json` — объект задачи: звук в `data[0].url`, `usage.seconds`, `usage.billed_characters` и итог `price`.
- Ошибки — JSON вида `{ "error": { "type", "code", "message", "detail" } }` с кодом HTTP 4xx/5xx; ветвиться — по `type` и `code`. `401` — неверный ключ; `402` с кодом `insufficient_balance` — не хватает средств на балансе, `key_spend_limit_exceeded` или `member_spend_limit_exceeded` — исчерпан лимит трат ключа или участника, повтор не поможет; `400` с кодом `capability_mismatch` или `invalid_request` — запрос не подходит модели, в `error.detail[]` — поле (`path`), причина (`reason`) и что подойдёт (`allowed`); `503 model_unavailable` — модель сейчас недоступна, повторите после `Retry-After`.
- Руководство по API целиком: https://souz.ai/docs, спецификация OpenAPI: https://api.souz.ai/openapi.json.

## Параметры запроса

Отправляются поля из этой таблицы. Кроме них — общие поля задач `routing`, `routing_options`, `max_price_multiplier`, `store`, `callback_url` и `user`. Незнакомое поле — `400 invalid_request` с `detail[].reason: unsupported_field`; значение, которое у модели ничего не меняет, принимается молча. Вся схема тела машинно — `input_schema` в карточке `GET /v1/models/eleven-multilingual-v2` (JSON Schema).

| Поле | Тип | Обязательное | Значения | По умолчанию | Описание |
| --- | --- | --- | --- | --- | --- |
| `input` | строка | да | текст, до 10 000 символов | — | Текст |
| `voice` | перечисление | нет | george, sarah, adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, harry, jessica, laura, liam, lily, matilda, river, roger, will | `george` | Голос |
| `response_format` | перечисление | нет | mp3, wav | `mp3` | Формат звука |

## Примеры запроса

### cURL

```bash
curl https://api.souz.ai/v1/audio/speech \
  -H "Authorization: Bearer $SOUZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "eleven-multilingual-v2",
    "input": "Добро пожаловать в СОЮЗ. Ваше аудио готово.",
    "voice": "george",
    "response_format": "mp3"
  }' \
  --output speech.mp3
```

### Python

```python
import os
import requests

SOUZ_API_KEY = os.environ["SOUZ_API_KEY"]

response = requests.post(
    "https://api.souz.ai/v1/audio/speech",
    headers={"Authorization": f"Bearer {SOUZ_API_KEY}"},
    json={
      "model": "eleven-multilingual-v2",
      "input": "Добро пожаловать в СОЮЗ. Ваше аудио готово.",
      "voice": "george",
      "response_format": "mp3"
    },
)
response.raise_for_status()
with open("speech.mp3", "wb") as audio:
    audio.write(response.content)
print(response.headers["X-Job-Id"])
```

### TypeScript

```typescript
import { writeFile } from "node:fs/promises";

const response = await fetch("https://api.souz.ai/v1/audio/speech", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SOUZ_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "eleven-multilingual-v2",
    "input": "Добро пожаловать в СОЮЗ. Ваше аудио готово.",
    "voice": "george",
    "response_format": "mp3"
  }),
});
await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));
console.log(response.headers.get("X-Job-Id"));
```

### Канал

```bash
curl https://api.souz.ai/v1/audio/speech \
  -H "Authorization: Bearer $SOUZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "eleven-multilingual-v2",
    "input": "Добро пожаловать в СОЮЗ. Ваше аудио готово.",
    "voice": "george",
    "response_format": "mp3",
    "routing_options": {
      "only": [
        "red"
      ]
    }
  }' \
  --output speech.mp3
```

## Примеры ответа

### Звук

```
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Job-Id: job_01voice

<байты звука>
```

### Accept: application/json

```json
{
  "id": "job_01voice",
  "object": "job",
  "created": 1774170000,
  "created_at": "2026-03-22T09:00:00Z",
  "completed_at": "2026-03-22T09:00:09Z",
  "model": "eleven-multilingual-v2",
  "modality": "speech",
  "status": "completed",
  "routing": "cheap",
  "max_price_multiplier": null,
  "routing_options": null,
  "attempt_count": 1,
  "channel": "red",
  "price": 494156,
  "currency": "RUB",
  "usage": {
    "characters": 43,
    "billed_characters": 43,
    "seconds": 3.2
  },
  "data": [
    {
      "id": "file_01voice",
      "object": "file",
      "kind": "result",
      "type": "audio",
      "role": "result",
      "url": "https://media.souz.ai/v1/files/file_01voice/souz_eleven-multilingual-v2_01voice.mp3?exp=1774774809&sig=…",
      "content_type": "audio/mpeg",
      "filename": "souz_eleven-multilingual-v2_01voice.mp3",
      "bytes": 51200,
      "created_at": "2026-03-22T09:00:09Z",
      "expires_at": "2026-03-29T09:00:09Z",
      "expired": false
    }
  ],
  "error": null
}
```

## Вопросы и ответы

**Что такое Eleven Multilingual v2?**

Eleven Multilingual v2 — ровная подача длинного текста на 29 языках. Для аудиокниг, лекций и роликов с одним рассказчиком. Доступна в СОЮЗе по единому API и в плейграунде на этой странице.

**Сколько стоит Eleven Multilingual v2?**

Eleven Multilingual v2 стоит 11 492 ₽ за 1M. Цена не зависит от канала; скорость и стабильность каждого — в блоке «Каналы». Списывается только успешный запрос, неудачный не стоит ничего.

**Что Eleven Multilingual v2 принимает на вход и что отдаёт?**

Eleven Multilingual v2 принимает текст и отдаёт речь.

**Какие форматы поддерживает Eleven Multilingual v2?**

Eleven Multilingual v2 поддерживает: голос — George, Sarah, Adam, Alice, Bella, Bill, Brian, Callum, Charlie, Chris, Daniel, Eric, Harry, Jessica, Laura, Liam, Lily, Matilda, River, Roger или Will, по умолчанию George; формат звука — MP3 или WAV, по умолчанию MP3.

**Как вызвать Eleven Multilingual v2 через API?**

Запросом POST https://api.souz.ai/v1/audio/speech с полем model: "eleven-multilingual-v2" и ключом СОЮЗа в заголовке Authorization: Bearer. Ответ — готовый звук, id задачи — в заголовке X-Job-Id; с заголовком Accept: application/json приходит объект задачи со ссылкой на файл, длительностью, числом символов и итоговой ценой. Примеры на cURL, Python и TypeScript — в разделе «Подключение по API».

**Что такое каналы Eleven Multilingual v2 и как выбрать конкретный?**

Eleven Multilingual v2 выполняется через один канал — «Красный» (red). У каждого канала свои ставки, задержка, скорость и стабильность за 7 дней — они в блоке «Каналы» на этой странице и в GET https://api.souz.ai/v1/models/eleven-multilingual-v2/channels. Цвет не означает «дешёвый» или «быстрый», а одинаковый цвет у другой модели — другой канал. По умолчанию канал выбирает Авто-роутинг по пресету «Дешевле», «Баланс» или «Быстрее». Конкретный канал задаёт поле routing_options: {"only": ["red"]} — только этот канал, {"order": ["red"]} — сначала он, затем остальные. Чтобы закрепить канал для всех запросов к модели, сохраните ту же настройку в аккаунте: PATCH https://api.souz.ai/v1/settings ключом управления или в кабинете. Каким каналом выполнен запрос, видно в поле channel ответа и в истории.

**Можно ли попробовать Eleven Multilingual v2 без кода?**

Да: плейграунд на этой странице запускает Eleven Multilingual v2 с теми же параметрами, что и API. Нужен аккаунт СОЮЗа. Итоговая стоимость появляется после готового и сохранённого аудио. Пока запрос выполняется, в истории вместо цены стоит прочерк; итог появляется только после завершения.

**Когда вышла Eleven Multilingual v2?**

Eleven Multilingual v2 выпущена ElevenLabs 22 августа 2023.

## Ссылки

- Страница модели: https://souz.ai/models/eleven-multilingual-v2
- Каталог моделей: https://souz.ai/models
- Все модели одним файлом: https://souz.ai/llms.txt
- Кабинет (ключи, баланс, история запросов): https://souz.ai/overview
