В рамках DevBoy/Codenik разработали собственную систему для записи и расшифровки встреч. Она объединяет получение аудио, загрузку частей записи, хранение, распознавание речи и доступ к материалам из рабочей среды.
Для записи доступны браузерное расширение и бот-участник. Готовые аудиофайлы также можно загрузить отдельно. Записи и расшифровки связаны с проектами и доступны через API и MCP.
Задача
Собрать управляемый процесс сохранения разговоров, чтобы команда и AI-агенты могли обращаться к материалам встречи после её завершения.
- Поддержать несколько способов получения записи.
- Обрабатывать длинные встречи и обрывы загрузки.
- Хранить аудио и расшифровки в связанной структуре.
- Учитывать доступ организации к материалам.
- Предоставить API и MCP для дальнейшей работы с контекстом встречи.
Проблема
После встречи часть контекста остаётся в памяти участников, часть — в заметках или внешнем сервисе. Чтобы восстановить договорённость, приходится искать запись и пересматривать разговор.
Технически запись длинной встречи тоже требует отдельного процесса. Нельзя рассчитывать на одну непрерывную загрузку большого файла: соединение может оборваться, вкладка — закрыться, а обработка — завершиться с ошибкой.
Решение
Разделили запись, загрузку, хранение и распознавание на связанные компоненты. Запись передаётся частями, а обработка имеет собственный жизненный цикл и статусы.
Пользователь получает материалы в рабочей среде, агентские клиенты обращаются к ним через MCP. Для команды сохраняется связь между встречей, записью, текстом и проектом.
Что реализовали
Браузерное расширение и бота
Добавили запись через расширение и браузерного бота-участника. Chrome-расширение поддерживает сценарии Google Meet, Zoom и Телемоста. Возможности отдельных браузеров и платформ различаются.
Загрузку аудиофайлов
Готовую запись можно передать в систему отдельно от онлайн-встречи. После загрузки она проходит общий процесс хранения и распознавания.
Работу с длинными записями
Использовали запись частями и прямую загрузку в S3-совместимое хранилище. В Chrome недогруженные части сохраняются локально для последующего восстановления загрузки.
Конвейер распознавания
Связали обработку звука, выполнение распознавания и сохранение расшифровки. Состояние обработки доступно отдельно от самой записи, что позволяет разбирать сбои по этапам.
API, MCP и доступ организации
Материалы встреч доступны через программные интерфейсы. Агенты могут находить записи и получать расшифровки, а доступ к ним учитывает организационный контекст.
Техническая основа
Архитектура включает браузерные компоненты, API, S3-совместимое хранение и отдельные ресурсы распознавания речи. Система использует готовые компоненты и модели; разработка объединяет их в общий продукт записи и обработки встреч.
Размещение внутри инфраструктуры компании предполагает перенос всех необходимых компонентов, хранилища и моделей в выбранный контур.
Результат
Реализована система, в которой запись и текст разговора доступны в рабочем контексте, а материалы можно подключать к агентским сценариям через API и MCP.
Что получили
- Несколько способов записи и загрузки встреч.
- Передачу длинных записей частями.
- Хранение аудио и конвейер расшифровки.
- Связь материалов с проектами.
- Доступ для сотрудников и AI-агентов через API и MCP.