Appearance
Voice Service
Микросервис синтеза речи (TTS) и распознавания речи (STT) платформы Unishift на базе движка sherpa-onnx (ONNX Runtime).
Основные возможности
Синтез речи (TTS):
- Базовая модель:
sherpa-onnx-supertonic-3-tts-int8-2026-05-11. - Офлайн-инференс без сетевых запросов к внешним API.
- Автоматическая расстановка ударений по словарю
stress.txtдля корректного звучания русской речи. - Препроцессинг текста: очистка Markdown, нормализация чисел/дат, транслитерация латиницы.
- Поддержка выбора спикеров (
sid), регулировки скорости речи (speed).
- Базовая модель:
Потоковый синтез через SSE (Server-Sent Events):
- Эндпоинт
POST /api/v1/tts/streamразбивает длинный текст на предложения и синтезирует каждый фрагмент независимо. - Аудио-чанки передаются в веб-клиент потоком через SSE, что позволяет браузеру начинать воспроизведение до завершения генерации всего текста.
- Эндпоинт
Распознавание речи (STT):
- Поддержка моделей Whisper (
whisper-base,whisper-turbo). - Транскрибация WAV-аудио в текст с автоопределением языка или фиксацией (
ru,en). - Нормализация распознанного текста.
- Поддержка моделей Whisper (
CLI-утилиты:
- В бинарник встроены консольные команды для синтеза (
tts), транскрибации (stt), инспекции моделей (models) и проверки жизнеспособности (healthcheck).
- В бинарник встроены консольные команды для синтеза (
Порты
- Native PM2:
8116 - Docker host:
18116(VOICE_PORT) - БД: не требуется (stateless)
HTTP API
Базовый префикс: /api/v1
| Метод | Путь | Описание |
|---|---|---|
POST | /api/v1/tts/synthesize | Генерация полного WAV-файла из текста |
POST | /api/v1/tts/stream | Потоковая генерация аудио по предложениям (SSE) |
POST | /api/v1/stt/transcribe | Транскрибация речи из WAV (multipart или binary) |
GET | /api/v1/voice/models | Список загруженных моделей и доступных спикеров |
GET | /health | Проверка готовности движков (Health check) |
GET | /swagger/*any | Интерактивная Swagger-документация |
Конфигурация и переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT | 8116 | Порт HTTP-сервера |
HOST | 0.0.0.0 | Хост сервера |
GIN_MODE | release | Режим работы Gin (debug, release) |
LOG_LEVEL | info | Уровень логирования (debug, info, warn, error) |
LOG_FORMAT | json | Формат логов (json, text) |
VOICE_MODELS_DIR | models | Путь к директории с ONNX-моделями |
VOICE_DEFAULT_MODEL | sherpa-onnx-supertonic-3-tts-int8-2026-05-11 | TTS-модель по умолчанию |
VOICE_STRESS_LEXICON | stress.txt | Путь к словарю ударений |
VOICE_NUM_THREADS | 4 | Число потоков CPU инференса |
VOICE_NUM_STEPS | 5 | Число шагов диффузии TTS |
VOICE_STT_MODEL | sherpa-onnx-whisper-turbo | Дефолтная STT-модель |
VOICE_STT_LANGUAGE | ru | Язык распознавания по умолчанию |
JWT_SECRET | — | Секрет валидации JWT |
SERVICE_TOKEN | — | Токен межсервисной аутентификации |