Skip to content

Клонирование голоса

Персональный голос создаётся асинхронно. API сразу возвращает ресурс с status: "PENDING", после чего запись очищается, распознаётся и превращается в референс для синтеза.

Поддерживаемые стили

Получите актуальные допустимые значения поля style перед созданием или изменением голоса:

bash
curl https://api.genvoice.ru/v1/api/voices/styles \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Ответ 200 OK:

json
{
  "styles": [
    "нейтральный",
    "дикторский",
    "тёплый",
    "энергичный",
    "спокойный",
    "новостной",
    "дружелюбный",
    "глубокий",
    "мягкий",
    "деловой",
    "аудиокниги",
    "подкасты",
    "обучение",
    "реклама",
    "документальный",
    "автоответчик",
    "звонки",
    "книги",
    "персонажи",
    "asmr",
    "медитации",
    "детский"
  ]
}

Порядок элементов стабилен. Передавайте одно из этих значений в поле style; для другого значения API вернёт 422 Unprocessable Entity.

Лимит голосов

Чтобы узнать текущий тариф и использование лимита персональных голосов:

bash
curl https://api.genvoice.ru/v1/api/voices/limits \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Ответ:

json
{
  "account_tier": "pro",
  "used": 2,
  "limit": 10
}

Удалённые и временные голоса не занимают лимит.

Создание

Передайте запись и метаданные как multipart/form-data:

bash
curl -X POST https://api.genvoice.ru/v1/api/voices \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -F "file=@speaker.wav" \
  -F "name=Голос диктора" \
  -F "lang=ru" \
  -F "gender=male" \
  -F "style=дикторский"

Поддерживаются WAV, MP3, OGG, FLAC, MP4/M4A, WebM, AAC, Opus, AMR и WMA. Размер файла — до 50 МБ, длительность — от 3 секунд до 5 минут.

Ответ 201 Created:

json
{
  "id": "37f29c58-e57a-4131-8918-62dc1c296606",
  "name": "Голос диктора",
  "transcription": null,
  "lang": "ru",
  "gender": "male",
  "style": "дикторский",
  "status": "PENDING",
  "created_at": "2026-08-11T10:00:00Z",
  "updated_at": "2026-08-11T10:00:00Z"
}

Количество персональных голосов ограничено тарифом. При исчерпании лимита API возвращает 403 с кодом custom_voice_limit_reached.

Успешное создание ограничено 60 запросами в минуту на аккаунт. Все попытки, включая неуспешные, дополнительно ограничены 60 запросами в минуту на API-ключ и IP-адрес; смена невалидного ключа не обходит защиту. Число одновременно активных задач клонирования не может превышать доступное на тарифе число персональных голосов: например, 1 для тарифа с одним голосом и 50 для тарифа с 50 голосами. При превышении одного из этих ограничений API возвращает 429 Too Many Requests с заголовком Retry-After.

Проверка готовности

Опрашивайте ресурс по полученному id:

bash
curl https://api.genvoice.ru/v1/api/voices/VOICE_ID \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Поле status принимает одно из четырёх значений:

  • PENDING — задача ожидает обработки;
  • PROCESSING — запись обрабатывается;
  • COMPLETED — голос готов к синтезу;
  • FAILED — обработка окончательно завершилась ошибкой.

Опрашивайте ресурс, пока статус не станет терминальным: COMPLETED или FAILED. У готового голоса transcription содержит распознанный текст голосового референса. При FAILED не продолжайте бесконечный опрос: этот голос нельзя использовать для синтеза.

Используйте голос в /api/tts только при status: "COMPLETED". Для любого другого статуса синтез и получение аудио возвращают 409 Conflict с пояснением.

Для прослушивания готового референса запросите временную ссылку:

bash
curl https://api.genvoice.ru/v1/api/voices/VOICE_ID/audio-url \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Изменение

bash
curl -X PATCH https://api.genvoice.ru/v1/api/voices/VOICE_ID \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Новый диктор","transcription":"Исправленный текст","style":"реклама"}'

Можно изменять name, transcription, lang, gender и style. Редактирование разрешено только в терминальном статусе COMPLETED или FAILED. Во время PENDING и PROCESSING API возвращает 409 Conflict, чтобы изменение транскрипции не конфликтовало с результатом фонового клонирования.

Удаление

bash
curl -X DELETE https://api.genvoice.ru/v1/api/voices/VOICE_ID \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Успешный ответ — 204 No Content. Удалённый голос пропадает из списка и больше не принимается синтезом. Чужой, удалённый или несуществующий voice_id всегда возвращает 404.