Инструкция по установке и эксплуатации экземпляра ПО «Sasha AI Audio»

Документ описывает порядок развёртывания экземпляра ПО для проведения экспертной проверки и для промышленной эксплуатации.


1. Состав поставки

Экземпляр ПО предоставляется в виде архива с исходным кодом и файлами сборки контейнеров (либо в виде доступа по SSH к развёрнутому экземпляру). Структура:

sasha-ai-tts/
├── docker-compose.yml          # описание всех сервисов
├── .env.example                # пример переменных окружения
├── apps/
│   ├── backend/                # API (NestJS)
│   ├── frontend/               # веб-интерфейс (Next.js)
│   └── tts-silero/             # движок синтеза Silero (Python)
└── docs/                       # документация

2. Требования к окружению

  • ОС семейства Linux (Astra Linux, РЕД ОС, Ubuntu и совместимые).
  • Установленные Docker (версии 24+) и Docker Compose (v2).
  • 2 vCPU, 4+ ГБ ОЗУ, 5+ ГБ свободного места.
  • Доступ в интернет требуется только на этапе первой сборки образов (загрузка зависимостей и модели Silero). После сборки движок Silero работает автономно.

3. Установка

  1. Распакуйте архив и перейдите в каталог проекта:

    cd sasha-ai-tts
    
  2. Создайте файл переменных окружения:

    cp .env.example .env
    
  3. При необходимости задайте параметры в .env:

    • POSTGRES_PASSWORD, JWT_SECRET — смените на собственные значения;
    • YANDEX_API_KEY, YANDEX_FOLDER_ID — заполните, если планируется использование движка Yandex SpeechKit (необязательно; движок Silero работает без этих параметров).
  4. Соберите и запустите все сервисы:

    docker compose up -d --build
    

    Первая сборка может занять время из-за загрузки модели синтеза Silero.

  5. Дождитесь запуска (статус сервисов healthy/running):

    docker compose ps
    

4. Проверка работоспособности

  1. Проверка доступности API:

    curl http://localhost:4000/api/health
    # {"status":"ok","service":"sasha-ai-tts", ...}
    
  2. Откройте веб-интерфейс в браузере: http://localhost:3000.

  3. Зарегистрируйте пользователя (кнопка «Начать бесплатно»).

  4. В разделе «Синтез» введите текст, выберите движок Silero и голос, нажмите «Озвучить» — будет воспроизведён синтезированный аудиофайл.

  5. Спецификация API (Swagger): http://localhost:4000/api/docs.

5. Доступ для экспертной проверки

Для проверки экземпляра эксперту предоставляются:

  • адрес веб-интерфейса и учётные данные (логин/пароль) тестового пользователя;
  • адрес и спецификация API (Swagger);
  • при необходимости — доступ по SSH к серверу с развёрнутым экземпляром.

Движок Silero обеспечивает синтез без доступа в интернет, поэтому проверка базовой функциональности возможна в изолированном окружении.

6. Эксплуатация

6.1. Создание API-ключа

Личный кабинет → «API-ключи» → задать название → «Создать». Ключ отображается один раз, сохраните его.

6.2. Синтез через API

curl -X POST "http://localhost:4000/api/v1/synthesize" \
  -H "X-Api-Key: sk_live_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"text":"Здравствуйте!","provider":"silero","voice":"baya","format":"mp3"}' \
  --output result.mp3

6.3. Обновление и остановка

docker compose pull        # при использовании готовых образов
docker compose up -d --build
docker compose down        # остановка

6.4. Резервное копирование

Данные хранятся в Docker-томах pgdata (база данных) и audiodata (кэш аудио). Резервное копирование выполняется штатными средствами Docker/файловой системы.

7. Контакты технической поддержки

ООО «Полезный звонок». Поддержка осуществляется силами правообладателя на территории Российской Федерации.