Совет директоров, переговорная на двенадцать человек. Душно. Маркер скрипит по доске, кто-то постоянно кашляет в микрофон спикерфона, два топ-менеджера яростно перебивают друг друга, обсуждая сокращение квартальных бюджетов. Через два часа все расходятся с легким чувством выполненного долга. Через неделю выясняется, что миграцию серверов даже не начали. Почему? Потому что продакт-оунер думал, что за это отвечает инфраструктура, а инфры ждали апрува от службы безопасности. Протокол встречи никто не вел, потому что «мы же всё обсудили и поняли». Запись звонка, конечно, лежит на корпоративном сервере, но давайте смотреть правде в глаза: пересматривать двухчасовое видео ради одной минуты ускользнувшего контекста не будет никто. Бизнесу нужен инструмент.
Именно в этот момент на столе ИТ-директора появляется запрос на ИИ-протоколирование совещаний: расшифровка и саммари встреч без отправки записей наружу. Но как только дело доходит до тестирования модных коробочных SaaS-решений, всплывает неприятная деталь. Оказывается, что хваленый корпоративный ИИ-бот требует добавить его в звонок в качестве участника или отправить аудиофайл по API на чужие серверы. Безопасник молча разворачивает проект, и все возвращаются к ручному вводу в блокноты.
«Да ладно, сейчас весь энтерпрайз сидит в облаках. Зачем разводить паранойю? Тот же Zoom, Teams или специализированные сервисы вроде Otter отлично делают саммари. Какая разница, где физически лежит транскрипт?»
Разница огромная. На закрытых встречах вы обсуждаете M&A, предстоящие увольнения, слияния, невыпущенные продукты, финансовые дыры и архитектурные уязвимости. Отправить сырую аудиозапись совета директоров в публичное облако — это должностное преступление. Сертификаты SOC2 и договоры NDA защищают вас только на бумаге. Когда произойдет утечка, облачный провайдер извинится и вернет вам стоимость подписки за месяц. А ваши планы по реструктуризации компании будут лежать в публичных телеграм-каналах. Вы добровольно отдаете наружу не просто текст. Вы отдаете биометрию: голоса, интонации, паттерны поведения руководства. Сегодня это просто транскрипция для протокола, а завтра на основе этих данных генерируется дипфейк голоса вашего CEO, который звонит финансовому директору с требованием срочно перевести средства на резервный счет контрагента. Поэтому записи совещаний держат on-prem. Это абсолютная догма. Либо инференс происходит на железе строго внутри закрытого контура компании, без доступа в интернет, либо вы играете в русскую рулетку с комплаенсом.
Архитектура инхаус-решения: почему одного Whisper недостаточно
«Окей, я вас услышал. Покупаю сервер с мощной видеокартой, разворачиваю open-source Whisper от OpenAI локально, и у меня свой бесплатный протоколист. Делов на два дня работы одного джуниора».
Попробуйте. Вы получите великолепное, грамматически выверенное, огромное полотно текста, в котором совершенно непонятно, кто с кем спорит. Whisper — это система распознавания речи, ASR. Его задача превращать звук в буквы. Ему плевать, что говорят три человека одновременно. Ему плевать на контекст диалога. А бизнесу нужен не монолитный текст. Бизнесу нужен протокол встречи нейросетью, где четко структурировано: вот здесь говорит технический директор, здесь его перебивает тимлид, а здесь вмешивается аккаунт-менеджер. Схема пайплайна протоколирования выглядит гораздо сложнее, чем вызов одного метода у готовой модели.
| Этап пайплайна | Используемая технология | Ключевая задача и специфика на проде |
|---|---|---|
| Шумоподавление | DSP-фильтры, нейросетевой Denoise | Срезание гула кондиционера, скрипа стульев и эха переговорной без искажения частот голоса. |
| Voice Activity Detection | Silero VAD или аналоги | Нарезка сырого потока на фрагменты с полезной речью. Тишина просто выбрасывается, экономя такты GPU. |
| Диаризация | Pyannote Audio, кластеризация векторов | Группировка речи по спикерам. Нейросеть понимает, что в комнате 5 человек, и размечает таймкоды для каждого. |
| Транскрибация | Whisper, NeMo, специализированные ASR | Превращение очищенных и размеченных аудиофрагментов в текст с сохранением пунктуации и таймингов. |
Самое болезненное место в этой таблице — диаризация. Это процесс разделения говорящих. Качество на нескольких спикерах и шуме — это то самое ребро, о которое ломаются почти все open-source решения из коробки. Диаризация критически чувствительна к акустике помещения. Если два человека говорят одновременно, возникает overlap, и базовая система сходит с ума, сливая две реплики в одну бессмысленную кашу. Если в переговорке стоит дешевый всенаправленный микрофон, который ловит эхо от стеклянных стен, векторы голосов смазываются. Мы решаем это либо хардкорным тюнингом моделей разделения источников звука, либо на уровне железа: забираем многоканальный звук с профессиональных микрофонных массивов, где каждый канал уже привязан к зоне стола. Только после того, как аудио размечено по спикерам и очищено, куски отправляются в ASR-модель. И только тогда на выходе формируется читаемый размеченный диалог.
От стенограммы к решениям: как LLM вытаскивает суть
«Допустим, диалог мы получили. Но читать сорок страниц расшифровки всё равно никто не будет. Нам нужно саммари, решения и поручения автоматически. Локальные LLM же тупые и с малым контекстом, они с этим не справятся без галлюцинаций».
Доля правды в этом упреке есть. Если вы просто возьмете 20 тысяч токенов сырого, неструктурированного корпоративного трепа и бросите их в маленькую локальную модель на 8 миллиардов параметров, она захлебнется. Она забудет, с чего начиналась встреча, перепутает спикеров и начнет галлюцинировать, придумывая поручения, которых никто никому не давал. Решение проблемы кроется не в раздувании размера модели, а в правильной инженерии данных и каскадном промптинге. Мы не просим нейросеть сделать всё за один проход. Мы строим жесткий конвейер обработки текста. Сначала применяется подход Map-Reduce. Первая LLM читает диалог небольшими блоками и формирует краткое содержание каждого фрагмента. Это позволяет сжать объем текста на порядок, сохранив все смысловые узлы и технические детали. Затем, уже по сжатому тексту, запускается этап извлечения фактов. Другой промпт жестко требует от модели найти конкретные артефакты: достигнутые договоренности, открытые вопросы, перенесенные дедлайны и экшен-айтемы с указанием того, кто, что и к какому числу должен сделать.
Справляются ли с этим локальные модели в закрытом контуре? Да. Современные модели уровня Llama 3 или Qwen, заквантованные до 4 или 8 бит, отлично крутятся на одной потребительской видеокарте или скромном сервере, выдавая качество аналитики, полностью сопоставимое с тяжелыми облачными API. Весь фокус в том, чтобы дать им четкую системную инструкцию. Вы можете дообучить модель так, чтобы она знала ваш внутренний сленг. Облако никогда не поймет, что фраза «перекинь таску по фронту на красную команду» означает конкретное действие в конкретной Jira. А ваша локальная система, получив словарь терминов через RAG, распарсит это идеально.
Интеграция с таск-трекером: смерть рутины
Стенограмма готова, саммари сгенерировано, задачи выделены. Что происходит дальше? В 90% компаний это всё просто умирает в общих чатах, куда файл скинул секретарь или ассистент. Интеграция с таск-трекером — это единственное, что превращает дорогую игрушку с искусственным интеллектом в реальный рабочий инструмент операционного директора. Как только локальная нейросеть распарсила список задач, автоматика должна дернуть API вашего трекера. Пайплайн завершается тем, что в корпоративной базе знаний создается родительская страница. На ней лежит краткое резюме встречи, список решений, а полная транскрибация убрана под кат для любителей копаться в деталях. Одновременно с этим найденные поручения падают в бэклог с тегом «из протокола» и автоматически назначаются на тех сотрудников, которые в ходе совещания произнесли слова подтверждения.
Естественно, машине нельзя доверять создание задач вслепую. Контекст бывает слишком размыт, а ирония или сарказм спикеров пока плохо улавливаются алгоритмами. Поэтому перед отправкой тикетов в систему инициатор встречи получает черновик в корпоративный мессенджер. Он пробегается глазами по списку, удаляет мусор, нажимает кнопку подтверждения, и только после этого шестеренки приходят в движение.
«Это звучит как сложный интеграционный проект. Проще нанять еще одного человека в штат».
Человек устает. Человек уходит на больничный, прослушивает половину технических терминов, путает микросервисы и стабильно требует зарплату первого и пятнадцатого числа. Железка в серверной стойке окупает свою стоимость за несколько месяцев. Она работает без перерывов на кофе и, что самое главное, никогда не рассказывает конкурентам о том, что услышала за закрытыми дверями.