Worder API

Генерируйте речь настоящих, подтверждённых человеческих голосов программно. Оплата за секунду сгенерированного аудио.

Почему стоит строить на Worder?

Голоса из этичных источников

Каждый голос загружен и подтверждён на видео самим актёром озвучивания. Никаких собранных без спроса данных.

Оплата за секунду

Каждый актёр устанавливает свою цену за секунду. Платите только за сгенерированное аудио или экономьте с тарифами подписки.

Актёры получают 90%

После комиссий за обработку карт и ИИ-генерацию актёры озвучивания получают 90% с каждой продажи. Выплаты проходят через Stripe Connect.

Быстрый старт

1. Получите API-ключ и пополните кредиты

Создайте аккаунт, затем откройте Личный кабинет → API для разработчиков и создайте ключ. Пополните кредиты (минимум $5) — каждая генерация списывается с вашего баланса или с подписки на актёра озвучивания.

2. Найдите голос и образец

curl https://worder.com/api/v1/voices \
  -H "Authorization: Bearer wdr_YOUR_API_KEY"

Возвращает голоса с идентификаторами, образцами, языками, ценами за секунду и тарифами подписки. Или откройте маркетплейс и скопируйте ID голоса и образца со страницы любого образца → «Сгенерировать через API».

3. Сгенерируйте речь

curl -X POST https://worder.com/api/v1/generate \
  -H "Authorization: Bearer wdr_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_id": "VOICE_ID",
    "sample_id": "SAMPLE_ID",
    "text": "[happy] Hello, this is a test of the Worder API. [pause 1] [calm] Now let us discuss the details."
  }'

Возвращает подписанный URL сгенерированного WAV, число произведённых секунд, списанную сумму и признак того, списана ли она с подписки или с кредитов.

Типы голосов

Одноэмоциональный

Один образец записи. Весь текст генерируется в одном тоне. Теги направления недоступны. Подходит для дикторского текста, объявлений и контента в едином стиле.

Многоэмоциональный

13 эмоциональных стилей, записанных актёром озвучивания. Покупатели используют теги направления вроде [happy], [angry], [calm], чтобы переключать эмоции по ходу текста. Подходит для рекламы, историй, персонажей и динамичного контента.

Доступные теги: normal, excited, happy, confident, fast, calm, surprised, angry, thoughtful, sad, annoyed, scared, nervous.

Поле voiceType в ответе API показывает тип голоса. Используйте descriptiveTags (до 5 ключевых слов вроде «низкий», «тёплый», «профессиональный»), чтобы искать голоса с нужными качествами.

Справочник API

GET/api/v1/voices

Список голосов, подтверждённых на видео и имеющих хотя бы один образец.

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

language — Фильтр по языку (например, "English")

search — Поиск по имени без учёта регистра

limit — Результатов на страницу (по умолчанию 20, максимум 100)

offset — Смещение для постраничной выборки

Ответ

{
  "voices": [
    {
      "id": "...",
      "name": "Professional Narrator",
      "language": "English (United States)",
      "accent": null,
      "voiceType": "MULTI_EMOTION",
      "descriptiveTags": ["deep", "warm", "professional"],
      "samples": [
        { "id": "...", "label": "normal" },
        { "id": "...", "label": "happy" },
        { "id": "...", "label": "angry" }
      ],
      "user": {
        "id": "...",
        "name": "Sarah Mitchell",
        "pricePerSecondCents": 5,
        "volumeDiscounts": [
          { "threshold": 3600, "discountPercent": 20 }
        ],
        "storefront": { "slug": "sarahmitchell" }
      }
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}
POST/api/v1/generate

Генерирует речь выбранным голосом. Если у вас есть активная подписка на этого актёра озвучивания, секунды списываются с подписки. Иначе кредиты списываются по цене актёра за секунду.

Тело запроса (JSON)

voice_id обязательно — ID голоса

sample_id — Образец по умолчанию для текста без тегов (по умолчанию — первый образец)

text обязательно — Текст для синтеза (от 30 до 5 000 символов). Поддерживает теги направления и теги паузы (см. ниже).

Теги направления

Заключите части текста в квадратные скобки с именем тега, совпадающим с одной из меток образцов голоса. Worder генерирует каждый фрагмент соответствующим образцом, а затем склеивает аудио.

"text": "[happy] Welcome to the show! [confident] Now let's talk business."

Доступные теги зависят от голоса — смотрите поле samples[].label в ответе /api/v1/voices. Текст без тегов использует указанный sample_id или первый образец. У многоэмоционального голоса тег, не совпадающий ни с одним образцом, возвращает 422 со списком доступных тегов — ничего не генерируется и не списывается. Тексты с 13 стандартными тегами работают на любом голосе, который их предлагает.

Тег паузы

Вставляет тишину между фрагментами. Укажите длительность в секундах (целое или дробное число, максимум 30). Текст после паузы продолжается в стиле предыдущего тега.

"text": "[excited] Big news! [pause 2] [calm] But let's take it one step at a time."
"text": "[calm] Take a breath. [pause 1.5] Now continue."
"text": "[happy] Hola! [pausa 3] [calm] Ahora hablemos con calma."

Поддерживаются и [pause N], и [pausa N] (работает на любом языке).

Тег акцента

Используйте [emphasize], чтобы усилить громкость следующего фрагмента. Стиль голоса не меняется — используется тот же образец, что и у предыдущего тега. Текст после [emphasize] продолжается в стиле предыдущего тега.

"text": "[calm] Take a deep breath. [emphasize] Now give it everything you've got!"

Также поддерживаются: [emphasis], [enfatizar], [énfasis].

Переопределение произношения

Используйте {written|spoken}, чтобы управлять произношением отдельных слов. Движок TTS получает вариант «spoken»; проверка качества сравнивает результат с вариантом «written».

"text": "{Pulse|Pols} es la energía que necesitas. {Nike|Naiki} también lo sabe."

Полезно для названий брендов, иностранных слов и технических терминов, которые TTS произносит неправильно.

Требования к фрагментам

Каждый фрагмент с тегом должен содержать не менее 30 символов. Более короткие фрагменты дают ненадёжный результат. Если слишком коротких фрагментов несколько, API возвращает все ошибки сразу.

После генерации Worder расшифровывает результат с помощью Whisper и сравнивает его с исходным текстом. Если совпадение ниже 90%, генерация отклоняется (422) — плата не взимается.

Ответ

{
  "audio_url": "https://...",
  "voice_id": "...",
  "sample_id": "...",
  "seconds_generated": 12,
  "cost_cents": 60,
  "charged_via": "credits",
  "subscription_id": null,
  "balance_cents": 9940
}

Коды ошибок

400 — Ошибка валидации (слишком короткий текст, несовпадение языка, слишком короткий фрагмент). Может содержать несколько ошибок, разделённых переводами строки.

401 — Неверный или отсутствующий API-ключ

402 — Недостаточно кредитов (ответ содержит required_cents, balance_cents)

404 — Голос или образец не найден

422 — Проверка качества не пройдена (ответ содержит similarity, transcript, quality_failed: true). Плата не взимается.

502 — Ошибка генерации (ошибка сервиса TTS)

Цены

Оплата за секунду — каждый актёр озвучивания устанавливает свою цену (минимум $0.01/с). Вы платите только за фактически произведённые секунды аудио.

Подписки — месячный пакет секунд (1, 10 или 100 часов) со скидкой 20–60% от цены за секунду. Подписки покупаются в интерфейсе сайта и применяются автоматически при вызовах API.

Кредиты — разовые пополнения аккаунта, минимум $5. Кредиты списываются, когда генерацию не покрывает подписка.

Распределение выручки — комиссии за обработку карт и ИИ-генерацию вычитаются первыми. Из оставшегося актёры озвучивания получают 90% (через Stripe Connect), а Worder — 10%.