Lovely RouterДокументация
Получить ключ
Справочник API

Эндпоинты аудио

POST /v1/audio/speech превращает текст в речь (формат запроса OpenAI плюс дизайн голоса, клонирование, язык и эмоции), а /v1/audio/voices сохраняет образцы голоса для клонирования — создание, список, получение, переименование, скачивание и удаление.

Синтез речи следует speech API от OpenAI, поэтому официальные SDK работают с https://lovelyrouter.com/v1. Руководство с моделями, их голосами и примерами — Синтез речи. Аутентифицируйтесь своим API-ключом в виде Authorization: Bearer $LOVELY_API_KEY (Аутентификация).

Синтез речи#

POST/v1/audio/speech

Озвучивает input и возвращает аудиофайл. Длительность в секундах передаётся в заголовке x-lovely-audio-seconds, а id вызова — в x-lovely-request-id. Оплата за каждую секунду созданного аудио (не меньше одной секунды); неудачный запрос не оплачивается.

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

modelstringОбязательно

qwen3-tts или zonos2 (GET /v1/models перечисляет их с ценами).

inputstringОбязательно

Текст для озвучивания, до 4 096 символов.

voicestring or object

Предустановленный голос модели, имя голоса OpenAI (alloy, nova, onyx, … сопоставляются с предустановленными) или id сохранённого голоса (voice_…, также в виде {"id": "voice_…"}). Необязательно: без него модель выбирает предустановленный голос для language, или qwen3-tts создаёт голос по instructions.

instructionsstring

Только для qwen3-tts, до 1 000 символов. С голосом — как говорить (эмоция, темп, громкость, шёпот). Без голоса — описание голоса, который нужно создать.

languagestring

Код ISO (en, zh, ja, ko, de, fr, pt-br, …) или auto (по умолчанию). Указание языка помогает с короткими текстами и числами.

response_formatstringПо умолчанию mp3

mp3, opus, aac, flac, wav или pcm (16 бит, 24 кГц, моно).

speednumberПо умолчанию 1.0

От 0,25 до 4,0; высота голоса не меняется.

emotionstring or object

Только для zonos2: happy, sad, angry или surprised либо веса от 0 до 1, например {"happy": 0.7}.

seedinteger

Для воспроизводимого результата, от 0 до 2147483647.

reference_audiostring

Разовый голос для клонирования: URL https, URL data: или base64 фрагмента длиной 3–15 с (WAV, MP3, M4A, OGG, FLAC или WebM, до 10 МБ). Не вместе с voice.

reference_textstring

Что говорится в reference_audio (с ним qwen3-tts клонирует точнее).

consentboolean

Обязателен с reference_audio: вы подтверждаете, что голос ваш или у вас есть разрешение говорящего.

Ошибки имеют обычную форму: 400 invalid_request_error с param, указывающим поле (неизвестный голос, instructions для zonos2, emotion для qwen3-tts, отсутствующий consent), 402 при нехватке баланса, 404 для неизвестной модели или чужого голоса, 502, если синтез не удался (ничего не списывается).

curl https://lovelyrouter.com/v1/audio/speech \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-tts",
    "input": "Hello! Nice to meet you.",
    "voice": "serena",
    "instructions": "Friendly and upbeat"
  }' \
  --output hello.mp3

Объект голоса#

Атрибуты

idstring

voice_ и 24 символа. Используйте его как voice.

objectstring

Всегда voice.

namestring

До 80 символов.

transcriptstring | null

Что говорится в образце.

typestring

Формат образца, например audio/wav.

bytesinteger

Размер образца.

audio_urlstring

Скачивает образец (с вашим API-ключом).

created_atinteger

Секунды Unix.

The voice object
{
  "id": "voice_8f2c4a1e9b7d3f60a5c2e1d4",
  "object": "voice",
  "name": "Narrator",
  "transcript": "Thanks for listening. See you next week on the show.",
  "type": "audio/wav",
  "bytes": 482044,
  "audio_url": "https://lovelyrouter.com/v1/audio/voices/voice_8f2c4a1e9b7d3f60a5c2e1d4/audio",
  "created_at": 1792915200
}

Сохранение голоса#

POST/v1/audio/voices

Сохраняет образец голоса и возвращает 201 с объектом голоса. Отправляйте multipart (образец как file) или JSON (audio как URL https или data:). Бесплатно; до 100 голосов на учётную запись, хранятся, пока вы их не удалите.

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

namestringОбязательно

До 80 символов.

filefile (or `audio` string)Обязательно

От 3 до 15 секунд чёткой речи одного человека без музыки: WAV, MP3, M4A, OGG/Opus, FLAC или WebM, до 10 МБ.

transcriptstring

Что говорится в образце, до 1 000 символов.

consentbooleanОбязательно

true: голос ваш, или у вас есть разрешение говорящего на его клонирование.

cURL
curl https://lovelyrouter.com/v1/audio/voices \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F name="Narrator" \
  -F transcript="Thanks for listening. See you next week on the show." \
  -F consent=true \
  -F file=@narrator.wav

Список голосов#

GET/v1/audio/voices

Ваши сохранённые голоса, сначала новые: {"object": "list", "data": [voice, …]}.

Получение голоса#

GET/v1/audio/voices/{id}

Один объект голоса. На голос другой учётной записи возвращается 404.

Скачивание образца#

GET/v1/audio/voices/{id}/audio

Образец в том виде, в каком вы его загрузили.

Изменение голоса#

PATCH/v1/audio/voices/{id}

JSON с name и/или transcript (null очищает значение). Возвращает объект голоса.

Удаление голоса#

DELETE/v1/audio/voices/{id}

Безвозвратно удаляет голос и его образец: {"id": "voice_…", "object": "voice", "deleted": true}. Персонажи, которые его использовали, остаются без голоса.