Skip to content

Voice Service

Микросервис синтеза речи (TTS) и распознавания речи (STT) платформы Unishift на базе движка sherpa-onnx (ONNX Runtime).

Основные возможности

  1. Синтез речи (TTS):

    • Базовая модель: sherpa-onnx-supertonic-3-tts-int8-2026-05-11.
    • Офлайн-инференс без сетевых запросов к внешним API.
    • Автоматическая расстановка ударений по словарю stress.txt для корректного звучания русской речи.
    • Препроцессинг текста: очистка Markdown, нормализация чисел/дат, транслитерация латиницы.
    • Поддержка выбора спикеров (sid), регулировки скорости речи (speed).
  2. Потоковый синтез через SSE (Server-Sent Events):

    • Эндпоинт POST /api/v1/tts/stream разбивает длинный текст на предложения и синтезирует каждый фрагмент независимо.
    • Аудио-чанки передаются в веб-клиент потоком через SSE, что позволяет браузеру начинать воспроизведение до завершения генерации всего текста.
  3. Распознавание речи (STT):

    • Поддержка моделей Whisper (whisper-base, whisper-turbo).
    • Транскрибация WAV-аудио в текст с автоопределением языка или фиксацией (ru, en).
    • Нормализация распознанного текста.
  4. 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-документация

Конфигурация и переменные окружения

ПеременнаяПо умолчаниюОписание
PORT8116Порт HTTP-сервера
HOST0.0.0.0Хост сервера
GIN_MODEreleaseРежим работы Gin (debug, release)
LOG_LEVELinfoУровень логирования (debug, info, warn, error)
LOG_FORMATjsonФормат логов (json, text)
VOICE_MODELS_DIRmodelsПуть к директории с ONNX-моделями
VOICE_DEFAULT_MODELsherpa-onnx-supertonic-3-tts-int8-2026-05-11TTS-модель по умолчанию
VOICE_STRESS_LEXICONstress.txtПуть к словарю ударений
VOICE_NUM_THREADS4Число потоков CPU инференса
VOICE_NUM_STEPS5Число шагов диффузии TTS
VOICE_STT_MODELsherpa-onnx-whisper-turboДефолтная STT-модель
VOICE_STT_LANGUAGEruЯзык распознавания по умолчанию
JWT_SECRETСекрет валидации JWT
SERVICE_TOKENТокен межсервисной аутентификации