API для обработки текста в речь (TTS)

https://api-tts-it.rooms.netcraze.pro

Получить список голосов

Метод и путь: GET /voices

Ответ: JSON со списком имён голосов и голосом по умолчанию.

Пример ответа (200 OK):

{
  "availableVoices": ["irina", "dmitri", "denis", "ruslan"],
  "defaultVoice": "irina"
}

Пример через curl:

curl -s "https://api-tts-it.rooms.netcraze.pro/voices"

Синтез речи

Метод и путь: POST /text_to_speech

Поддерживаются тела запроса:

  • application/json (рекомендуется);
  • application/x-www-form-urlencoded.

Поля тела запроса

Поле Обязательное По умолчанию Описание
text да Текст для озвучки
voice нет ruslan Имя голоса из списка availableVoices (GET /voices)
api да true Режим «API»: обязательно
user да true Имеет смысл только при api === true

При отправке JSON используйте настоящие булевы значения true / false, а не строки "true" / "false", иначе сервер может интерпретировать их как истину.

Сценарии ответа (флаги api и user)

Поведение после успешной генерации WAV:

Условие Что происходит
api === true и user === true В ответ отдаётся файл WAV (sendFile).

Примеры запросов

JSON: отдать WAV клиенту (api: true, user: true)

curl -s -X POST "https://api-tts-it.rooms.netcraze.pro/text_to_speech" \
  -H "Content-Type: application/json" \
  -d "{\"text\":\"Тест\",\"voice\":\"ruslan\",\"api\":true,\"user\":true}" \
  -o speech.wav

Ответ — бинарный WAV; сохраняется в файл speech.wav.

Форма urlencoded

curl -s -X POST "https://api-tts-it.rooms.netcraze.pro/text_to_speech" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "text=Здравствуйте" \
  --data-urlencode "voice=irina" \
  --data-urlencode "api=false"

Типичные ошибки

HTTP Причина (упрощённо)
400 Неверное имя голоса, отсутствует text
404 Файл модели голоса не найден на диске сервера
500 Ошибка TTS, не создан WAV, ошибка воспроизведения или отправки на внешний URL

Тело ошибки обычно в формате JSON, например:

{ "error": "Текст обязателен" }

Замечания по окружению

  • Голоса и пути к TTS задаются на стороне сервера; клиенту доступны только имена из GET /voices.
← Все сервисы