О клиенте
Российская телекоммуникационная группа, которая развивает инфраструктурные и цифровые сервисы для бизнеса и государственных организаций.
В компании работает несколько тысяч специалистов, распределенных между центральным офисом и региональными подразделениями.
*Из-за соглашения о конфиденциальности (NDA) название компании не раскрывается.
Ситуация до начала проекта
В компании регулярно проходят онлайн-встречи с заказчиками, партнерами и коллегами, записи которых используются в дальнейшей работе. До начала проекта видео хранились в корпоративной системе, но найти конкретную информацию можно было только вручную. Если сотруднику нужно было вспомнить, что обсуждали на встрече, какое решение приняли или кто взял задачу в работу, приходилось открывать запись и просматривать ее целиком или перематывать в поисках нужного фрагмента.
Это создавало несколько проблем:
- сотрудники тратили время на просмотр длинных видеозаписей встреч;
- найти реплику было сложно без точного понимания, на какой встрече она прозвучала;
- накопленный архив практически не использовался как источник информации.
- автоматическое формирование отчетности и сбор аналитики в формате дашбордов для руководства предприятия.
Заказчику нужен был инструмент, который превращал бы видеозаписи в текст и позволял быстро находить нужные данные. Для этого компания обратилась к нам.
Цель и задачи проекта
Цель проекта – создать единый сервис для автоматической обработки записей встреч и поиска нужной информации по их содержанию.
Задачи:
- Автоматизировать загрузку видеозаписей, извлечение аудио и транскрибацию речи.
- Реализовать поиск по содержанию встреч по смысловому контексту.
- Создать интерфейс для просмотра транскрибаций и найденных фрагментов.
- Развернуть решение внутри корпоративной инфраструктуры компании.
Решение
Мы спроектировали систему как связку из трех основных компонентов: сервиса фоновой обработки, веб-приложения для пользователей и векторной базы данных.
Автоматическая обработка записейПользователь загружает видеозапись встречи на диск проекта в Битрикс24. После появления новой записи в корпоративной системе ее обработка запускается автоматически. Фоновый сервис через API получает необходимые данные и скачивает видео на сервер. Затем из файла извлекается аудиодорожка, которая передается на распознавание речи.
После завершения транскрибации система сохраняет не только сам текст, но и данные, необходимые для дальнейшего поиска и работы с исходной записью. Обработка проходит без участия сотрудника: пользователю не нужно скачивать видео, отдельно загружать его в сервис транскрибации и вручную переносить полученный текст.
Главная функция системы – поиск информации непосредственно внутри расшифрованных записей. Пользователь вводит запрос в веб-интерфейсе, а система находит релевантные фрагменты среди обработанных встреч.
В результате поиска отображаются:
- найденный фрагмент текста;
- время, на котором он находится в записи;
- информация об исходном файле;
- ссылка для скачивания или открытия соответствующей записи.
Для поиска мы использовали векторное представление текста. Это позволяет искать информацию не только по точному совпадению отдельных слов, но и по смыслу запроса.
Например, сотрудник может искать информацию о сроках запуска проекта, даже если во встрече использовалась другая формулировка. При поиске система сопоставляет запрос пользователя с сохраненными фрагментами и выдает наиболее релевантные результаты.
Пользователю достаточно описать, что именно он ищет и перейти к подходящему фрагменту
Поиск – не единственный способ работы с записью. Пользователь может открыть конкретный файл и просмотреть его полную транскрибацию. Текст представлен непосредственно в веб-приложении.
При необходимости в расшифровке можно уточнить имена спикеров. Это особенно полезно для встреч с большим количеством участников, когда автоматическая транскрибация определяет реплики, но не может достоверно установить, кому именно они принадлежат. Для каждой реплики в транскрибации предусмотрено поле с именем спикера.
При следующем открытии файла система отображает последние назначенные имена спикеров.
Пользовательский интерфейс мы сделали максимально простым: сотруднику не нужно знать, какая модель выполняет транскрибацию, где хранится файл или как устроен поиск. Основной сценарий сводится к двум действиям: найти нужную информацию или открыть конкретную запись.
В веб-приложении доступны:
- поиск по содержимому;
- просмотр результатов с привязкой ко времени;
- переход к исходному видео;
- просмотр полной расшифровки;
- уточнение имен спикеров;
- сохранение изменений.
Работа с записями не требует специальных навыков: сотрудник в одном интерфейсе может быстро найти нужный фрагмент, проверить его по видео и при необходимости внести уточнения.
Локальное развертывание и безопасностьОтдельным требованием проекта был контроль над данными на всех этапах работы системы. Поскольку в записях могли содержаться рабочие и конфиденциальные материалы, было важно исключить их передачу во внешние сервисы и сохранить обработку внутри инфраструктуры заказчика.
Мы развернули решение на выделенном сервере с GPU. В итоге обработка и хранение записей происходит внутри ИТ-инфраструктуры компании.
Результат
Мы разработали внутренний ИИ-сервис, который превращает архив видеозаписей встреч в структурированную базу знаний с поиском по содержимому. На основе транскрибации можно быстро узнать, что обсуждалось на встрече, выделять важные решения и договоренности, фиксировать задачи и быстро находить нужную информацию.
Теперь сотрудникам не нужно помнить, в какой именно встрече обсуждался нужный вопрос. Достаточно сформулировать запрос, и сервис найдет подходящие фрагменты и покажет, где они находятся в записи. Кроме того, руководитель может быстро получить представление о том, что обсуждалось на встрече, ознакомиться с ключевыми решениями, договоренностями и задачами. Это позволяет экономить время и оперативно погружаться в результаты встреч без просмотра всей видеозаписи.
Docker
FastAPI
Python
ReactJS
WhisperX