POST Audio Speech

Синтез речи из текста (Text-to-Speech)

POST Audio Speech

Синтез речи из текста (Text-to-Speech).

Этот эндпоинт совместим с OpenAI SDK и подходит для быстрой миграции существующего кода. Для синтеза речи рекомендуется именно dedicated-эндпоинт /v1/audio/speech: здесь доступен полный диапазон speed (0.25–4.0) и согласованный набор параметров под каждое семейство моделей. Те же возможности доступны и через общий Media API, но там часть параметров (speed, instructions, ElevenLabs-only поля) ведёт себя иначе или ограничена.

Доступные модели

МодельIDОписание
TTSopenai/tts-1OpenAI стандарт (по умолчанию)
TTS HDopenai/tts-1-hdOpenAI HD
GPT-4o Mini TTSopenai/gpt-4o-mini-ttsOpenAI, управляемый интонацией, поддерживает instructions
ElevenLabs Multilingual v2elevenlabs/text-to-speech-multilingual-v2ElevenLabs многоязычный
ElevenLabs Turbo v2.5elevenlabs/text-to-speech-turbo-2-5ElevenLabs Turbo (единственный с language_code)

Разрешение голоса по семействам

Параметр voice интерпретируется в зависимости от семейства модели. Передача голоса «не из своего» семейства не приводит к ошибке тихо — голос приводится к дефолту семейства:

СемействоДефолтДопустимые значения
openai/*alloyalloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse
elevenlabs/*Rachelvoice_id из аккаунта ElevenLabs (например pNInz6obpgDQGcFmaJgB) или имя пресета (Rachel, Aria, Roger, Sarah...). Стандартный OpenAI-голос будет отклонён с ошибкой 400

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

ПараметрТипОбязательныйОписание
modelstringНетМодель TTS (по умолчанию openai/tts-1)
inputstringДаТекст для озвучки, до 5000 символов
voicestringДаИмя голоса (см. таблицу выше)
response_formatenumНетmp3 (по умолчанию), opus, aac, flac, wav, pcm
speednumberНетСкорость речи, 0.25–4.0 (по умолчанию 1.0). Только OpenAI-модели
instructionsstringНетГолосовые инструкции, до 4096 символов. Только openai/gpt-4o-mini-tts. Не работает у tts-1/tts-1-hd
stream_formatenumНетsse или audio. Не поддерживается для tts-1/tts-1-hd
userstringНетИдентификатор конечного пользователя

Параметры ElevenLabs

ПараметрТипОписание
stabilitynumber (0–1)Стабильность голоса (меньше = экспрессивнее)
similarity_boostnumber (0–1)Схожесть с оригинальным голосом
stylenumber (0–1)Эмоциональность
timestampsbooleanПосимвольный alignment в ответе (characters, character_start_times_seconds, character_end_times_seconds)
previous_textstringТекст перед текущим фрагментом (контекст), до 5000 символов
next_textstringТекст после текущего фрагмента (контекст), до 5000 символов
language_codestringISO-639-1 (ru, en...). Только elevenlabs/text-to-speech-turbo-2-5

Примеры

curl -X POST "https://api.usellm.ru/v1/audio/speech" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/tts-1",
    "input": "Привет! Это usellm!",
    "voice": "alloy"
  }'

Пример с ElevenLabs + timestamps

curl -X POST "https://api.usellm.ru/v1/audio/speech" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/text-to-speech-multilingual-v2",
    "input": "Привет, как дела?",
    "voice": "Rachel",
    "timestamps": true
  }'

Ответ (200)

{
  "audio": "SUQzBAAAAAAAI1RTU0UAAA...",
  "contentType": "audio/mpeg",
  "model": "openai/tts-1",
  "duration": 3.5,
  "usage": {
    "characters": 25,
    "cost_rub": 0.50,
    "cost": 0.50
  }
}
ПолеТипОписание
audiostringАудио в формате base64-строки (не бинарный поток) — декодируйте и сохраняйте с расширением по contentType
contentTypestringMIME-тип (например, audio/mpeg, audio/wav, audio/ogg)
modelstringИспользованная модель
durationnumberДлительность в секундах, если известна
usageobjectИспользование: characters (для посимвольных моделей), cost_rub, cost
alignmentobjectПосимвольные тайминги (только ElevenLabs при timestamps: true)

Поле usage.characters присутствует для посимвольных моделей (tts-1/tts-1-hd); для токенных (gpt-4o-mini-tts) состав usage иной.

Пример ответа ElevenLabs с alignment

{
  "audio": "...",
  "contentType": "audio/mpeg",
  "model": "elevenlabs/text-to-speech-multilingual-v2",
  "alignment": {
    "characters": ["П", "р", "и"],
    "character_start_times_seconds": [0.0, 0.05, 0.11],
    "character_end_times_seconds": [0.05, 0.11, 0.18]
  }
}

Генерация звуковых эффектов

Также доступна генерация звуков по текстовому описанию через тот же эндпоинт.

Параметры

ПараметрТипОбязательныйОписание
modelstringДаМодель генерации звуков
inputstringДаОписание звука на английском
duration_secondsnumberНетДлительность (0.5-10 сек)
loopbooleanНетЗацикленность
output_formatstringНетФормат аудио
prompt_influencenumberНетВлияние промпта

Форматы вывода

  • mp3_22050_32 — MP3 22050Hz 32kbps
  • mp3_44100_32 — MP3 22050Hz 32kbps
  • mp3_44100_64 — MP3 44100Hz 64kbps
  • mp3_44100_128 — MP3 44100Hz 128kbps (рекомендуется)
  • mp3_44100_192 — MP3 44100Hz 192kbps

Пример

curl -X POST "https://api.usellm.ru/v1/audio/speech" \
  -H "Authorization: Bearer <USELLM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "elevenlabs/sound-effect-v2",
    "input": "sound of guitar strumming",
    "duration_seconds": 2.5,
    "loop": false,
    "output_format": "mp3_44100_128",
    "prompt_influence": 0.3
  }'

Описание звуковых эффектов должно быть на английском языке.