TTS API tts.user2168.space

Голос «Алёна» — модель обучена raiday • piper, ru-RU • 22 050 Гц, моно, 16 бит • WAV • сервис by user2168

Проверить прямо здесь

Синтез речи

POST/tts

JSON-запрос с полем text. Ответ — файл audio/wav.

curl -X POST https://tts.user2168.space/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "Привет, как дела?"}' \
  --output speech.wav

GET/tts?text=...

То же самое, но текст передаётся в query-параметре — удобно для браузера и тега <audio>. Кириллица в URL кодируется в 9 байт на символ, поэтому при длинных текстах (примерно от 800–900 символов) nginx отвечает 414 — для длинных текстов используй POST.

curl -G --data-urlencode "text=Привет, как дела?" \
  https://tts.user2168.space/tts --output speech.wav

Пример вставки на страницу:

<audio src="https://tts.user2168.space/tts?text=Привет!" controls></audio>

Интонация и ударение

Чтобы выделить отдельные слова, оберни их звёздочками прямо в тексте. Выделенное слово озвучивается чуть медленнее и громче, с короткими паузами вокруг — это приближённое логическое ударение, а не управление тоном.

РазметкаЭффект
*слово*лёгкое выделение — чуть медленнее и громче
**слово**сильное выделение — заметно медленнее и громче
curl -X POST https://tts.user2168.space/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "Я **очень** рад тебя видеть!"}' \
  --output speech.wav

Незакрытые звёздочки остаются обычным текстом. Если нужен символ умножения — пиши с пробелами: 2 * 3.

Параметры

ПараметрГдеОписание
textbody / queryТекст для озвучки, UTF-8. От 1 до 2000 символов.

Ответ

ПолеЗначение
Content-Typeaudio/wav
ФорматPCM 16 бит, 22 050 Гц, моно
Заголовок X-Sample-Rateчастота дискретизации (22050)

Ошибки

КодКогда
400Текст состоит только из пробелов
422Отсутствует поле text, пустой текст, невалидный JSON или текст длиннее 2000 символов
429Слишком частые запросы — общий лимит для всех клиентов ~4 запроса/с
502 / 504Сервис перезапускается или очень длинный текст

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

GET/health

curl https://tts.user2168.space/health
{"status":"ok","model":"alena_piper_ep119","language":"ru",
 "voice_author":"raiday","service_author":"user2168",
 "sample_rate":22050,"channels":1,"format":"wav","max_text_length":2000}

Ограничения и поведение