Обновлено: 27 марта 2025 года
1. Нейрострим.Перевод
В проекте системы синхронного перевода речи мы реализуем решение, обеспечивающее автоматический перевод устной речи в реальном времени с минимальной задержкой и максимально возможной точностью. Система ориентирована на работу с несколькими источниками звука (доклады, вебинары, конференции), поддерживает перевод в несколько языков одновременно и строится как модульное масштабируемое решение, состоящее из пяти ключевых компонентов.
Клиент
Клиентская часть системы реализована на Python и выполняет несколько задач:
- захват звука с микрофона в реальном времени,
- нормализация аудиопотока и передача его по WebSocket-протоколу в диспетчер,
- прием синтезированной речи и воспроизведение,
- управление всеми этапами перевода через пользовательский интерфейс,
- генерация отчетов и расчет метрик качества перевода.
Для этих задач используются sounddevice, vad, numpy, soxr, pydub, а также websocket-client и python-socketio для транспортного уровня. Отчеты формируются с применением jinja2, pyyaml, matplotlib и networkx.
Диспетчер
Диспетчер — центральный компонент системы, координирующий взаимодействие между всеми сервисами. Он:
- принимает аудиопоток от клиента,
- передает его чанками в сервис ASR (Automatic Speech Recognition),
- обрабатывает транскрибированный текст, определяя логические блоки перевода,
- отправляет текст в LLM для перевода и подготовки к озвучке,
- направляет результат в TTS (Text-to-Speech) для синтеза речи,
- и возвращает готовый аудиофрагмент обратно клиенту.
Используются технологии gRPC и WebSocket, а также библиотеки loguru, librosa, ffmpeg-python, faster-whisper, mosestokenizer и ctranslate2 для обработки и анализа звука, текста и перевода.
ASR
Сервис распознавания речи (ASR) получает аудиофрагменты от диспетчера, использует VAD (определение голосовой активности), буферизацию и модели Whisper для:
- автоматического определения языка,
- транскрибации устной речи в текст.
Результат передается обратно в диспетчер для дальнейшей обработки. В основе лежат библиотеки openai-whisper, stable-ts, silero-vad, ffmpeg-python, torch, librosa, jiwer и другие.
LLM
Компонент LLM (Large Language Model) выполняет перевод текста с одного языка на другой, а также предварительную подготовку фраз для озвучивания. Он решает, какую часть текста переводить, как сохранить структуру речи и где установить логические паузы. В продакшене используется llamacpp с моделями, развёрнутыми локально без внешних API.
TTS
Сервис синтеза речи (TTS) принимает текст и параметры синтеза по gRPC, производит генерацию аудиофрагмента и возвращает результат в диспетчер. Поддерживается выбор языка, спикера и движка синтеза. Также компонент может рассчитывать метрики качества озвучивания, включая MOS, STOI и PESQ.
В реализации задействованы onnxruntime-gpu, piper-phonemize-cross, pesq, pystoi, librosa, resemble-enhance и другие специализированные библиотеки.
Вся система построена с учетом требований к низкой задержке, высокой стабильности и возможности масштабирования под многопоточную нагрузку. Наш стек подобран с акцентом на производительность и гибкость, что позволяет использовать систему синхронного перевода как в рамках онлайн-конференций, так и в корпоративных решениях для международной коммуникации.
2. Нейрострим.Редактор
Фронтенд сервиса реализован на JavaScript с использованием современного стека библиотек и инструментов, направленных на создание удобного, безопасного и отзывчивого интерфейса. DOMPurify обеспечивает защиту от XSS-атак, предотвращая небезопасную вставку пользовательского контента. Для поддержки многоязычности используется i18next, что позволяет адаптировать интерфейс под различные языковые группы. Работа с серверными данными и кэшированием реализована с помощью react-query, что обеспечивает высокую стабильность и плавность интерфейса. Zustand используется для управления локальным состоянием, позволяя гибко настраивать поведение компонентов. Встроенное воспроизведение аудио- и видеоконтента обеспечивается через react-player, а маршрутизация между экранами реализована с использованием react-router.
Бэкенд сервиса разработан на языке Python с применением FastAPI, что позволяет обрабатывать запросы асинхронно и с минимальной задержкой. В качестве ключевого инфраструктурного компонента используется Supabase — полнофункциональная open source-платформа, на базе которой реализованы аутентификация пользователей, хранение файлов (через объектное хранилище, совместимое с S3), а также база данных PostgreSQL с расширением pgvector для работы с векторными представлениями текста. ORM-слой построен на SQLAlchemy с асинхронным драйвером, а миграции базы данных управляются через Alembic.
Для обработки аудио- и видеоматериалов применяются ffmpeg, torchaudio и librosa — это позволяет точно извлекать звуковые фрагменты, работать с временными метками и проводить предварительную очистку аудиосигнала. Преобразование текста в векторы реализовано с помощью sentence-transformers, что позволяет эффективно строить смысловые связи между фрагментами и выполнять быстрый поиск. Также используется связка llama-index и langchain для генерации аннотаций и структурного анализа текста.
Наш стек технологий спроектирован с упором на открытость, совместимость и гибкость. Он обеспечивает стабильную работу как в облачных окружениях, так и в условиях ограниченного доступа, позволяя использовать Редактор в защищённых контурах без потери ключевой функциональности.
3. Нейрострим.ЭкспоКонтроль
В проекте ЭкспоКонтроль, направленном на автоматический анализ видеопотоков с камер наблюдения на объектах, используется современный технологический стек, позволяющий не только выявлять нарушения техники безопасности и иные аномалии, но и производить подсчет посетителей, а также оперативно уведомлять ответственных сотрудников через удобные каналы связи.
Система состоит из нескольких ключевых компонентов, каждый из которых отвечает за отдельный этап обработки и взаимодействия с данными.
Фронтенд и бэкенд управления объектами
Для организации структуры объектов, помещений, камер и видеопотоков используется веб-интерфейс, реализованный с помощью React, и серверная часть на FastAPI.
- React обеспечивает быстрый и адаптивный пользовательский интерфейс для администраторов и операторов.
- Сервер на FastAPI управляет логикой взаимодействия с базой данных и выполняет все CRUD-операции по объектам и видеопотокам.
- В качестве хранилища используется PostgreSQL через psycopg3, что обеспечивает высокую надежность и масштабируемость при работе с большим объемом данных.
Обработчик видеопотоков
Ключевой компонент проекта — обработчик видеопотоков, отвечающий за подключение к IP-камерам, обработку видео в реальном времени и регистрацию событий.
- Система построена на базе torch, torchvision, torchaudio и ultralytics, где используются предобученные модели компьютерного зрения (включая YOLO) для распознавания ситуаций, требующих внимания: отсутствие касок, нахождение в опасной зоне, падения, работа на высоте и прочие нарушения техники безопасности.
- Потоки с камер сжимаются и при необходимости записываются локально или в облачное хранилище.
- В случае обнаружения события, данные фиксируются в базе и инициируется уведомление ответственных лиц.
Бот-сервис и внешний интерфейс
Для взаимодействия с системой через мессенджеры и предоставления данных сотрудникам службы безопасности используется отдельный бот-сервис с веб-интерфейсом.
Фронтенд построен на стеке:
- react-telegram-web-app — интеграция с Telegram Web App,
- antd, react-bootstrap, zustand — для построения интерфейса и управления состоянием,
- axios и react-router-dom — для взаимодействия с API и маршрутизации.
Бэкенд реализован на FastAPI и включает:
- aiogram — для создания и поддержки Telegram-бота,
- aiocron — для задач по расписанию (например, регулярные отчеты),
- sqlalchemy, alembic, psycopg — для работы с БД,
- pyjwt — для авторизации пользователей,
- pillow, python-multipart, jinja2 — для обработки медиафайлов и генерации отчетов.
Таким образом, система ЭкспоКонтроль — это комплексное решение, предназначенное для предприятий, где требуется непрерывный визуальный мониторинг, автоматическая фиксация нарушений и удобная система оповещения. Подобранный технологический стек позволяет достичь высокой точности распознавания, минимальной задержки в реакции на события и полной интеграции с привычными инструментами работы сотрудников.