Как мы строили Наговори: архитектура и безопасность
Как мы строили Наговори: архитектура и безопасность
Мы часто получаем вопросы: «Где обрабатываются мои записи?», «Кто имеет доступ к данным?», «Почему так быстро?». В этой статье расскажем об архитектуре сервиса — без лишних технических деталей, но достаточно подробно, чтобы вы понимали, как это работает.
Общая архитектура
Наговори — это веб-приложение с очередью обработки. Когда вы загружаете файл, происходит следующее:
- Загрузка — файл передаётся на сервер через зашифрованное соединение (HTTPS/TLS)
- Очередь — файл попадает в очередь обработки. Вы видите свою позицию и ориентировочное время ожидания
- Распознавание — воркер берёт файл из очереди, конвертирует в нужный формат и отправляет на модель распознавания
- Результат — текст сохраняется и становится доступен в вашем личном кабинете
Архитектура построена на микросервисах: веб-приложение, API-сервер, воркеры обработки и хранилище — это отдельные компоненты, которые масштабируются независимо.
Модели распознавания
Мы используем несколько моделей в зависимости от задачи:
- Основная модель — оптимизирована для русского языка, обеспечивает точность 95%+ на чистом звуке
- Мультиязычная модель — для записей на английском и других языках
- Лёгкая модель — для коротких голосовых сообщений, когда важна скорость
Модели работают на GPU-серверах с NVIDIA-картами. Это позволяет обрабатывать час аудио за 2–5 минут.
Безопасность данных
Шифрование
- Все данные передаются по HTTPS (TLS 1.3)
- Файлы в хранилище зашифрованы
- Соединение между внутренними сервисами защищено
Хранение
- Серверы расположены в России
- Файлы хранятся столько, сколько нужно для обработки, плюс доступны в истории пользователя
- Пользователь может удалить свои данные в любой момент
Доступ
- Доступ к данным пользователя имеет только сам пользователь
- Администраторы системы не имеют доступа к содержимому аудиофайлов и расшифровок
- Авторизация через защищённый сервис идентификации
Соответствие требованиям
- Обработка персональных данных в соответствии с ФЗ-152
- Политика конфиденциальности и условия использования доступны на сайте
- Данные не передаются третьим лицам для маркетинговых целей
Интеграции с мессенджерами
Боты для Telegram, VK и Max работают по одному принципу:
- Пользователь пересылает голосовое сообщение боту
- Бот получает файл через API мессенджера
- Файл отправляется в ту же очередь обработки, что и файлы из веб-интерфейса
- Результат возвращается пользователю в чат
Важно: бот не хранит сообщения, не читает переписку и не имеет доступа к чатам, в которых он не добавлен.
Синтез речи (TTS)
TTS работает по обратному принципу: пользователь вводит текст, система отправляет его на модель синтеза и возвращает аудиофайл. Доступно несколько голосов с разными характеристиками. TTS и транскрипция используют общий баланс минут.
Масштабирование
Очередь обработки позволяет справляться с пиковыми нагрузками. Если одновременно загружают файлы 100 пользователей, система не падает — файлы выстраиваются в очередь и обрабатываются последовательно. При росте нагрузки мы добавляем воркеры.
Что дальше
Мы работаем над:
- Ускорением обработки (цель — обработка часового файла за 1 минуту)
- Разделением дикторов (diarization) — чтобы различать, кто что сказал
- API для разработчиков — для интеграции транскрипции в сторонние продукты
Итог
Архитектура Наговори построена вокруг простоты для пользователя и безопасности данных. Загрузите файл, дождитесь результата, используйте текст — всё остальное происходит под капотом.