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.