Видеозвонки: платформа с ИИ реального времени

Автор: Николай СапуновОбновлено: август 202633 мин чтения
Содержание статьи +

TL;DR

Этот итоговый проект превращает весь «конференц-блок» курса в собираемый продукт: рабочую платформу видеовстреч, где у каждого участника на его собственном устройстве размывается фон и чистится микрофон, по ходу речи появляются живые субтитры и перевод, а в комнату заходит ИИ-ассистент и ведёт заметки – и всё это собрано из конкретного стека 2026 года, а не из списка пожеланий. Хребет сборки – один open-source медиасервер плюс «паттерн агента»: небольшая программа заходит в каждую встречу как обычный участник, слушает звук и публикует субтитры и резюме обратно в комнату. Мы даём точный список компонентов с вердиктом «строить или купить» по каждому, схему развёртывания, которую можно отдать команде инфраструктуры, модель затрат с показанной арифметикой 2026 года и план из пяти майлстоунов, который выкатывает рабочий продукт уже на первой неделе. Там, где итоговый проект главы 6 объяснял, как думать об ИИ-звонке, этот – проект, который вы реально выполняете от начала до конца, вплоть до чек-листа запуска.

Почему это важно

Статья для основателя или продакт-менеджера, который решил строить продукт «ИИ-видеовстречи» и теперь должен понять, сколько настоящая система стоит, сколько занимает и какие части покупаются, а какие пишутся – и для инженера, который прочитал отдельные уроки и хочет увидеть их сваренными в одну развёртываемую систему с названными технологиями и числами. Она предполагает, что с базовыми идеями вы уже знакомы: итоговый проект собирает, а не выводит заново, и перекрёстные ссылки ведут к каждому опорному уроку, когда нужны детали. К концу вы сможете нарисовать продакшен-архитектуру на доске, назвать конкретную технологию 2026 года в каждом блоке, защитить стоимость часа встречи перед финансами и выстроить сборку так, чтобы первая готовая для клиента версия вышла за недели. Сначала прочитайте итоговый проект главы 6 про трёхплоскостную архитектуру, если нужна концептуальная карта; эта статья – её инженерная половина.

Что именно вы строите

Сначала зафиксируйте продукт, потом технологии. Вы строите многопользовательское приложение видеовстреч – представьте сфокусированный Zoom или Google Meet – с пятью ИИ-функциями поверх обычного звонка: размытие и замена фона, шумоподавление микрофона, живые субтитры, перевод этих субтитров на другой язык и ИИ-ассистент, который после встречи выдаёт резюме со списком задач. Ни одна из этих пяти функций в 2026 году не экзотична; инженерная работа – заставить все пять работать одновременно, на одной встрече, не делая звонок медленным и не позволяя облачному счёту расти вместе с числом молчащих слушателей.

«Реальное время» – ограничение, которое формирует каждое последующее решение, и у него есть измеримый смысл. Разговор ощущается естественным, только пока промежуток между «один договорил» и «другой отреагировал» короткий. Исследования и продакшен-практика помещают комфортный двусторонний звук под примерно 200 миллисекунд в одну сторону – миллисекунда, ms, это тысячная доля секунды, так что 200 ms это одна пятая секунды – а практический потолок для ИИ-ассистента «услышать вопрос и начать отвечать» около 800 ms, прежде чем он начнёт казаться медленным. Каждая добавленная функция тратит часть одного из этих двух бюджетов. Искусство сборки – добавлять интеллект, оставаясь внутри них.

Полезный образ: встреча – это эстафета, где палочка это разговор, а каждая ИИ-функция – ещё один бегун, которого вы ставите на дорожку. Добавляйте бегунов небрежно – и команда отстаёт: звонок тормозит, люди говорят поверх друг друга, ассистент отвечает на такт позже. Вся архитектура ниже существует, чтобы уместить больше бегунов на дорожке, не уронив палочку.

Хребет: один медиасервер и паттерн агента

Две идеи несут на себе всю сборку. Сделайте их правильно – и всё остальное станет деталями.

Первая – медиасервер, конкретно его разновидность под названием SFU (Selective Forwarding Unit, «модуль выборочной пересылки»). Во встрече больше чем на два-три человека участники не шлют видео напрямую друг другу, потому что это заставило бы каждый ноутбук выгружать свою камеру всем сразу, сажая батареи и забивая домашний интернет. Вместо этого каждый шлёт одну копию своего звука и видео на сервер посередине, а тот пересылает каждый поток остальным. «Выборочная пересылка» – это и есть вся работа: он ретранслирует потоки и, когда полоса узкая, выбирает, какой слой качества переслать, но никогда не декодирует и не перекодирует видео, а это и есть дорогая часть. Поскольку он не перекодирует, один скромный SFU обслуживает большую комнату дёшево. Все серьёзные платформы 2026 года используют эту модель.

Вторая идея – ИИ-агент как участник. Вместо того чтобы вшивать ML-модели во внутренности сервера, вы пишете небольшую программу, которая заходит в комнату встречи точно так же, как человек: подписывается на звук и видео, запускает модели и публикует результаты – субтитры, переведённый голос, текущее резюме – обратно в комнату. Это паттерн, который формализует фреймворк LiveKit Agents, определяя агента как любую программу на Python или Node.js, добавленную в комнату как полноценный real-time-участник. Выигрыш – в разделении: агент масштабируется независимо от медиасервера, его пишет ваша продуктовая команда, а не команда инфраструктуры, и вы запускаете ровно одного на встречу, ни разу не трогая медиа-водопровод.

Держите эти две идеи вместе – и у платформы появляется чистая форма. SFU гоняет пиксели и звук между людьми. Агенты добавляют интеллект, заходя в комнаты. Всё остальное в статье – это решения, что куда поместить, что строить, а что купить, и как оно масштабируется. За более глубоким обоснованием этого разделения – мысленной моделью «трёх плоскостей» медиа, ИИ и управления – обращайтесь к итоговому проекту главы 6; здесь мы берём её как решённую и строим поверх.

Производственная архитектура, блок за блоком

Реальное развёртывание – это больше, чем SFU и агент. Шесть видов компонентов встречаются в каждой конференц-платформе, что мы выпускали, и точно назвать их – это первый час любого проекта.

Клиент – вкладка браузера или мобильное приложение, которым пользуется каждый участник. Он захватывает камеру и микрофон, запускает on-device-ИИ (размытие фона, шумоподавление), кодирует медиа и отрисовывает остальных. Здесь живёт чувствительная к приватности работа на каждого человека, потому что сырые кадры камеры и сырой звук микрофона существуют только на захватившем их устройстве.

Сервер токенов – небольшой бэкенд-сервис, который вы пишете. Прежде чем кто-то войдёт в комнату, ваше приложение решает, можно ли ему, и выдаёт короткий подписанный пропуск – токен, который медиасервер примет. Это ваша бизнес-логика: аутентификация, кто может вести встречу, кто только смотреть. Он не несёт медиа, поэтому дёшев и легко масштабируется, а держать его отдельно от медиасервера – это то, что позволяет менять правила доступа, не трогая real-time-инфраструктуру.

SFU – медиасервер, описанный выше. В продакшене он работает не как одна машина, а как пул экземпляров, обычно на Kubernetes – open-source-системе для запуска и автоматического масштабирования контейнеров по множеству серверов, – так что в час пик поднимается больше мощности SFU, а тихой ночью она сворачивается обратно.

TURN-сервер решает сетевую проблему, которая топит примерно 15–20% соединений, если её игнорировать. Многие корпоративные файрволы и сети мобильных операторов отказываются пропускать прямое соединение между двумя устройствами. TURN-сервер (название от «Traversal Using Relays around NAT») – это ретранслятор, до которого обе стороны всегда дотянутся, так что у медиа есть путь даже через враждебную сеть. Стандартная open-source-реализация – coturn, реализующий стандарты TURN и STUN (IETF RFC 8656 и RFC 8489). Пропустите его – и каждый пятый пользователь просто не сможет подключиться; сбой выглядит случайным и сводит с ума при отладке.

Агент-воркеры – пул программ, которые заходят в комнаты делать ИИ. Один воркер ведёт распознавание речи для субтитров, перевод и заметки; вы запускаете их как собственный автомасштабируемый пул, потому что их профиль стоимости и нагрузки полностью отличается от профиля SFU. Когда встреча начинается, диспетчер назначает ей агента; когда заканчивается – агент уходит и его слот освобождается.

Хранилище и бэкенд приложения держат всё, что переживает встречу: учётные записи, историю комнат, транскрипты и резюме от заметочника. Это обычная веб-территория – база данных, API, объектное хранилище для записей – и она намеренно скучная, потому что трудные real-time-задачи решены в другом месте.

Рисунок 1. Производственное развёртывание. Два автомасштабируемых пула – SFU-медиасерверы и ИИ-агент-воркеры – сидят между тонкими клиентами и скучным надёжным бэкендом. Каждый блок соответствует конкретной технологии 2026 года из следующего раздела.

Build vs Buy: вердикт 2026 года, по компонентам

Толковая команда не пишет всё это с нуля и не покупает всё целиком. В 2026 году граница лежит в довольно стабильном месте, и нащупать её правильно – это разница между «выкатили за квартал» и «сожгли год». Эвристика: берите готовой тяжёлую real-time-инфраструктуру, покупайте быстро меняющиеся модели и стройте только то, что и есть ваш продукт.

КомпонентСтроить или купитьКонкретный выбор 2026Почему
Медиасервер (SFU)Взять open source или купить managedLiveKit (Apache 2.0), mediasoup или managed video SDKУ real-time-медиа длинный хвост сетевых краевых случаев
Фреймворк агентовВзятьLiveKit Agents (встроены turn detection и шумоподавление)Решает определение конца реплики и потоковый речевой конвейер
Распознавание речи (STT)Купить как сервисDeepgram, AssemblyAI или OpenAI Whisper APIМодели улучшаются ежемесячно; self-host окупается лишь на большом объёме
ПереводКупить как сервисFrontier-LLM или специализированный MT APIТа же логика; качество движется быстро
On-device-размытиеСтроить на бесплатной моделиMediaPipe Selfie Segmentation на WebGPUДолжно работать на сырых кадрах на устройстве; модель бесплатна
ШумоподавлениеСтроить на модели или купитьDeepFilterNet (open, 48 кГц) или Krisp (платный SDK с мая 2026)Работает на сыром звуке; выбор по объёму и бюджету
TURN-ретрансляторВзять open sourcecoturn (RFC 8656 / 8489)Решённая стандартизованная задача; никогда не пишите свою
Сервер токенов, бэкенд, UXСтроитьВаш стекЭто ваш продукт – правила доступа, фичи вертикали и опыт отличают вас

Две ячейки заслуживают пометки, потому что изменились в 2026 году. Шумоподавление стало дороже покупать: Krisp перевёл свой SDK подавления фоновых голосов на платный учёт с 1 мая 2026 года, а RNNoise – старая бесплатная палочка-выручалочка – не поддерживается с 2024 года и плохо справляется с современным шумом. Open-source и бесплатный выбор, который ещё держится, – DeepFilterNet, deep-learning-подавитель, работающий на устройстве на полном качестве звука 48 кГц. А медиа-слой теперь настоящий commodity, который вы берёте готовым: сервер LiveKit лицензирован под Apache 2.0 и self-hostable, поэтому вопрос уже не «строить или купить», а «self-host или managed-облако» – решение по стоимости, к которому мы вернёмся ниже. Помодельное обоснование build-vs-buy для аудио-функций – тема урока 6.6 про Krisp, Maxine и Dolby.

Рисунок 2. Что строить, а что брать готовым. Паттерн устойчив: берите инфраструктуру, покупайте модели, стройте продукт. Всё, что вы строите и что не является вашим отличием, – это обуза.

Прослеживаем одну встречу: от клика до резюме

Числа и блоки становятся конкретными, когда вы проводите одну встречу через систему. Проследим за одной участницей, Марией, заходящей на стендап команды из шести человек.

Мария кликает ссылку встречи. Её браузер спрашивает у бэкенда приложения, можно ли ей войти; тот проверяет её логин и зовёт сервер токенов, который чеканит подписанный токен с именем её комнаты и правами. Ничто из этого не касается медиа – это обычный веб-трафик, и он завершается заметно меньше чем за секунду.

Её браузер использует токен, чтобы соединиться с SFU. Если файрвол офиса блокирует прямой путь, соединение автоматически откатывается через TURN-ретранслятор; так или иначе медиа-путь открывается. Прежде чем её видео покинет ноутбук, отрабатывает on-device-конвейер: модель размытия фона решает, пиксель за пикселем, какие части кадра – это Мария, а какие – стена за ней, и размывает стену; параллельно модель шумоподавления убирает гул кондиционера из её микрофона. Только очищенные, сжатые потоки уходят на SFU, который пересылает их остальным пятерым. Важно: SFU также делает потоки доступными ещё одному «участнику», зашедшему в начале встречи, – агенту.

Агент-воркер подписывается на звук. Он ведёт потоковое распознавание речи – модель выдаёт слова по мере их произнесения, а не ждёт конца предложений, что и делает субтитры живыми, – и шлёт получившийся текст субтитров обратно в комнату, где каждый клиент его накладывает. Тот же транскрипт питает ещё два шага: модель перевода отображает субтитры по-испански для единственного удалённого коллеги, который так предпочитает, а заметочник тихо накапливает полный транскрипт. Когда встреча кончается, агент делает финальный проход по этому транскрипту, выдавая резюме и задачи, а ваш бэкенд сохраняет результат на команду Марии, чтобы любой мог прочитать позже.

Заметьте симметрию. Тяжёлая работа с пикселями и звуком на каждого человека идёт на устройствах, где живёт сырой сигнал и где каждый новый участник приносит собственный процессор. Работа с языком идёт в одном агенте, где модель видит весь разговор. SFU посередине остаётся тонким, пересылая без перекодирования. Эта форма – не украшение; именно она держит систему внутри её бюджетов времени и стоимости.

Рисунок 3. Одна встреча от начала до конца. Аутентификация и токены – обычный веб-трафик; медиа течёт через SFU; агент слушает и публикует результаты по языку обратно в ту же комнату.

Два бюджета, которые нельзя нарушать

Единого числа задержки у этой платформы нет, потому что одновременно крутятся два цикла с разными потолками. Команды, что их путают, оптимизируют не то.

Бюджет интерактивного медиа определяет, говорят ли люди поверх друг друга: сколько голос Марии идёт до ушей остальных пятерых. Цель – держать звук в одну сторону под примерно 200 ms. On-device-функции тратят прямо из этого бюджета – подавитель, добавляющий 20 ms, и размытие на 15 ms оба в живом пути. Арифметика беспощадна. Пусть сеть в одну сторону стоит 120 ms. Тогда остаток бюджета – 200 − 120 = 80 ms, и эти 80 ms должны покрыть захват, on-device-ИИ, кодирование и воспроизведение вместе. Поэтому on-device-модели должны быть маленькими, и поэтому вы не складываете четыре подряд без замеров.

Бюджет ИИ-голосового цикла определяет, кажется ли ассистент отзывчивым: сколько он берёт «услышать вопрос и начать отвечать». Его практический потолок – около 800 ms. Репрезентативная разбивка 2026 года, взятая из продакшен-платформ голосовых агентов: определение голосовой активности и конца реплики 50 ms, финальное распознавание речи 150 ms, время до первого слова языковой модели 400 ms, первый аудио-кусок синтеза речи 150 ms и сеть 50 ms. Сложите: 50 + 150 + 400 + 150 + 50 = 800 ms, бюджет потрачен полностью, без запаса. Выше 800 ms ассистент кажется медленным; за 1500 ms собеседники сообщают, что разговор «сломался».

Рычаг, который прячется на виду, – определение конца реплики: решить, что человек действительно договорил, а не просто сделал паузу. Топорный детектор добавляет сотни миллисекунд задержки, которой нет ни в одном бенчмарке модели, потому что время теряется на ожидании, а не на вычислении. Современные фреймворки заменяют старый фиксированный таймер тишины маленькой моделью, обученной предсказывать конец реплики по самим словам: стек LiveKit 2026 года сочетает акустический детектор голосовой активности с языковой моделью примерно на 135 миллионов параметров, которая работает локально и судит, звучит ли фраза законченной. Потоковость каждого этапа – частичные транскрипты в модель, слова модели в синтезатор речи до конца предложения – это то, что держит хороший цикл под секундой. Урок 6.1 про бюджет задержки до 100 ms разбирает эти числа по этапам.

Масштабирование: три уровня, три разные сборки

Как вы разворачиваете систему, почти целиком зависит от того, сколько людей одновременно в комнате, и скачок между уровнями – это место, где наивные дизайны валятся.

Ниже 100 участников одну комнату держит один экземпляр SFU. Это покрывает подавляющее большинство деловых встреч, занятий и консультаций. Вы всё равно держите пул экземпляров SFU ради надёжности и чтобы хостить много одновременных комнат, но ни одной комнате не нужно больше одного. Это уровень, с которого стоит запускаться; не проектируйте под другие, пока у вас нет в них клиентов.

От 100 до примерно 1000 участников комната перерастает единый путь пересылки для видео, и вы опираетесь на два приёма. Simulcast означает, что каждая камера шлёт несколько версий качества сразу, так что SFU может пересылать низкое разрешение тем, кому нужна лишь миниатюра, и резкую копию тем, кому нужна деталь. SVC (scalable video coding) упаковывает эти слои в один поток эффективнее. Вместе они позволяют одному SFU обслуживать большую аудиторию в основном смотрящих участников, пока публикуют видео лишь единицы. Хорошо настроенный узел open-source SFU держит на этом уровне примерно 500–800 одновременных видеоучастников.

Выше 1000 участников вы попадаете в распределённую территорию: комната охватывает несколько экземпляров SFU, часто в разных регионах, связанных в mesh так, что медиа входит на сервер ближайший к говорящему и ретранслируется на серверы ближайшие к каждой части аудитории. Этот «каскад» не даёт далёким зрителям платить полный сетевой штраф на каждом кадре, и дизайн LiveKit трактует ретрансляционную связь как ещё одного участника. Для самых крупных вещательных событий команды часто переводят смотрящее большинство целиком на стриминговый протокол и оставляют WebRTC только для активных спикеров – гибрид, описанный в инженерном плейбуке по конференц-связи.

Пул агентов масштабируется по другой оси: по минутам обработанной речи, а не по числу голов. На all-hands из 200 человек с одним говорящим за раз вы распознаёте один поток, а не 200. Эта асимметрия – ключ к модели затрат, на которой тихо ломаются многие бизнес-планы.

Рисунок 4. Масштаб по размеру комнаты сверху; стоимость по месту работы снизу. On-device-работа бесплатна оператору, минуты SFU масштабируются на участника, а стоимость агента следует за минутами речи – не за числом участников.

Модель затрат с показанной арифметикой

Правильно оценить эту платформу – значит понять, что затраты приходят в трёх формах и только одна из них растёт с числом участников. Пройдём конкретный пример: часовая встреча на 25 человек со всеми пятью включёнными ИИ-функциями.

On-device-функции – размытие фона и шумоподавление – работают на каждом из 25 ноутбуков. Это 25 работающих моделей, но каждая на железе своего владельца и стоит вам, оператору, ноль. Это тихая суперсила on-device-размещения: оно масштабируется бесплатно с числом участников, потому что каждый новый участник приносит свой процессор.

Медиа-минуты – это то, что стоит SFU. На managed-платформе в 2026 году обычное соединение человек-человек стоит примерно $0,0004–0,0005 за участника-минуту. Для нашей встречи: 25 участников × 60 минут × $0,0005 = $0,75 медиа за час. Self-host SFU заменяет это сырой стоимостью серверов и трафика, что дешевле на большом стабильном объёме и дороже, как только вы учтёте инженеров, которые это держат.

Агент- и модель-минуты – это ИИ-стоимость, и она следует за речью, а не за участием. С одним говорящим за раз вы прогоняете около 60 минут потокового распознавания речи, 60 минут перевода и проход резюме. Потоковая транскрипция в 2026 году стоит около $0,0077 за минуту (Deepgram Nova-3), так что 60 × $0,0077 = $0,46. Сама сессия агента на managed-платформе стоит около $0,01 за минуту: 60 × $0,01 = $0,60. Перевод и финальное резюме через frontier-модель добавляют ещё несколько центов. Округлим весь ИИ-слой до примерно $1,20 за час.

Сложим: около $0 on-device + $0,75 медиа + $1,20 AI ≈ меньше $2,00 за полностью ИИ-усиленный час встречи на 25 человек на managed-инфраструктуре, до ваших наценок и бэкенда приложения. Форма важнее точной цифры: продукт, гоняющий всё в облаке, платил бы за 25 слотов GPU там, где нужен был один агент. Поймите форму – и вы правильно ценообразуете и масштабируете. Полный набор рычагов стоимости – от точки окупаемости self-host до выбора модели – тема урока 8.4 про оптимизацию затрат на video-AI.

Одна точка окупаемости, которую стоит запомнить: self-host медиасервера начинает обыгрывать managed-облако примерно на 500 и более устойчивых одновременных сессиях – там, где сэкономленные поминутные платежи перевешивают стоимость команды, держащей Kubernetes и дежурство по медиасерверам. Ниже – managed-облако дешевле, как только учтено инженерное время. Решайте это осознанно, а не рефлекторно.

Частая ошибка: вшить облачный счёт в архитектуру

Сбой, который нас чаще всего зовут чинить на конференц-продуктах, – не плохая модель, а хороший дизайн, поместивший работу не туда и теперь масштабирующий собственную стоимость. Повторяются три версии, и все три решаются на этапе архитектуры, а не в тюнинге.

Первая – гнать ИИ на каждого человека в облаке вместо устройства. Команда ставит размытие фона на сервер «чтобы поддержать старые телефоны», а потом обнаруживает, что каждому участнику теперь нужен ломтик облачного GPU на всю встречу и счёт растёт с числом участников. Размытие и шумоподавление принадлежат устройству, захватившему сырой сигнал; это размещение бесплатно оператору и даёт сильнейшую позицию по приватности, потому что неизменённый поток камеры никогда не покидает комнату.

Вторая – заставить SFU декодировать видео, чтобы запустить модель внутри потока. Вся эффективность SFU идёт от пересылки без перекодирования. В момент, когда вы заставляете его декодировать каждую камеру, чтобы запустить, скажем, модель модерации, вы пересобрали дорогой микширующий сервер, который SFU был придуман заменить, и ваша стоимость на комнату умножается. Лечение – паттерн агента: отведите копию потока отдельному воркеру, который декодирует и гоняет модель, оставив SFU тонким. Модерация в реальном времени как раз принадлежит этому ответвлению – тема урока 6.12.

Третья – гонять два шумоподавителя сразу. Браузеры везут бесплатный встроенный подавитель; если вы добавляете свой, не выключив встроенный, два дерутся и выдают роботизированный «подводный» голос. Ровно один подавитель в цепочке, на сыром звуке, до сжатия – это самый частый аудио-баг, что мы видим, и это однострочная правка конфигурации, на которую команды тратят дни. Деталь интеграции – в уроке 6.5 про шумоподавление.

План сборки: пять майлстоунов, ценность на каждом шаге

Вы не строите это всё разом и не строите в порядке, в котором нарисована схема. Вы строите так, чтобы рабочий продукт существовал после первого майлстоуна, а каждый следующий выкатывался независимо, – это держит проект финансируемым, а команду мотивированной.

Майлстоун 1 – простой надёжный звонок. Поднимите SFU, сервер токенов и TURN-ретранслятор и выпустите встречу, которая просто работает: твёрдые звук и видео, переподключение после обрыва сети, стабильность на устройствах, которые реально есть у ваших пользователей. Пока без ИИ. Всё остальное крепится к этому фундаменту, и если он шаткий, никакой ИИ продукт не спасёт. Здесь же вы делаете выбор self-host против managed для медиа-слоя.

Майлстоун 2 – on-device-очистка. Добавьте размытие фона и шумоподавление в клиент. Это функции, которые пользователь замечает в первые десять секунд, они ничего не стоят оператору на участника и не требуют нового бэкенд-сервиса. Это лучшее соотношение ценности к усилию во всей системе, поэтому они идут раньше всего облачного. Толпа «как размыть мой фон» конвертируется здесь; урок 6.3 – глубокий разбор.

Майлстоун 3 – агент субтитров. Поднимите одного агента, который заходит в комнату и выдаёт живые субтитры через потоковое распознавание речи. Это момент, когда продукт становится по-настоящему «ИИ-усиленным», и он закрепляет паттерн агента, который переиспользует каждая последующая языковая функция. Урок 6.9 про fan-out субтитров на стороне SFU разбирает паттерн доставки.

Майлстоун 4 – перевод и заметки как расширения того же агента. Когда субтитры работают, перевод – небольшое добавление: транскрипт уже есть, вы добавляете шаг перевода и публикуете вторую дорожку субтитров (урок 6.11). Заметочник переиспользует тот же накопленный транскрипт, выдавая резюме после встречи, – территория урока 6.14 про ассистента встреч на LiveKit и урока 6.18 о том, как устроены коммерческие заметочники. Один агент, три языковые функции, один транскрипт.

Майлстоун 5 – регулируемое и специализированное. Модерация контента, аватары в звонке и доменные ассистенты идут последними, потому что они выше по усилию, уже по охвату или несут вес комплаенса. Модерация особенно касается и модели доверия, и – на регулируемых рынках – закона. Стройте её осознанно, а не наспех.

Рисунок 5. Лестница сборки. Каждая ступень выпускает рабочий продукт, так что ценность накапливается, а не ждёт одного большого запуска – и финансирование с моралью переживают проект.

Эксплуатация: наблюдаемость, безопасность и закон

Встреча, которая работает в демо, – ещё не продукт. Три сквозные заботы отделяют прототип от того, что можно продавать.

Наблюдаемость означает, что вы можете увидеть, почему звонок пошёл не так, уже после его конца. Real-time-медиа ломается способами, которых нет у обычных веб-приложений: участник на плохой сети, регион с потерей пакетов, отставший агент. Вам нужны метрики качества на сессию (время соединения, потеря пакетов, уровень звука, задержка агента), собираемые централизованно, чтобы поддержка отвечала «почему моя встреча рвалась?» без угадывания. Встройте это с Майлстоуна 1; дооснащать живую медиа-систему телеметрией больно.

Безопасность начинается с уже построенного сервера токенов. Медиа в WebRTC по умолчанию шифруется в транзите, но контроль доступа – на вас: подписанные короткоживущие токены, серверные проверки кто может вести или записывать, и ограниченные по времени учётные данные на TURN-ретрансляторе, чтобы его не использовали как открытый прокси. Для встреч, что этого требуют, – телемедицина, финансы – вы добавляете сквозное шифрование, чтобы даже SFU не мог читать медиа, и выбираете self-host, чтобы данные не покидали вашу инфраструктуру. Режимы комплаенса вроде SOC 2 и, для медицинских данных, HIPAA достижимы на этой архитектуре; это конфигурация и процесс, а не другой дизайн.

Закон имеет новый датированный дедлайн, под который надо планировать. AI Act Евросоюза, Регламент (ЕС) 2024/1689, вводит правила прозрачности по Статье 50 с применением с 2 августа 2026 года. Правило, которое касается этой платформы: там, где ваш продукт генерирует или существенно изменяет изображение или голос человека – ИИ-аватар, клонированный или синтезированный голос, перевод, произнесённый собственным голосом пользователя, – участникам нужно сообщить, что контент создан искусственно. Встройте это раскрытие с самого начала; это маленькая функция рано и дорогое дооснащение поздно. Полная регуляторная картина, включая биометрические правила, – в уроке 8.5 про инженерию EU AI Act. Это инженерный контекст, а не юридическая консультация – уточняйте детали у юриста для вашего рынка.

Где здесь Фора Софт

Фора Софт строит real-time-видеософт с 2005 года, и описанная здесь платформа – SFU для медиа, паттерн агента для AI, on-device-очистка и скучный надёжный бэкенд – это костяк конференц-, e-learning- и телемедицинских продуктов, что мы выпускаем. Мы держим продакшен-развёртывания LiveKit, сочетающие SFU с фреймворком Agents на задержке менее 300 миллисекунд, масштабируем их горизонтально на Kubernetes и поднимаем под ожидания SOC 2 и, где речь о медицинских данных, HIPAA. Порядок сборки и вердикты build-versus-buy в этой статье – не теория для нас; это чек-лист, который мы применяем при оценке конференц-продукта, потому что это разница между функцией, которая выходит, и той, что тихо делает каждую встречу хуже или каждый счёт больше. Наши вертикали здесь – видеоконференцсвязь, e-learning, телемедицина и видеонаблюдение, где real-time-ИИ на живом видео – это ядро продукта, а не украшение.

Ключевые выводы

  • Хребет – один SFU-медиасервер плюс паттерн агента: программа заходит в каждую комнату как участник.
  • Берите инфраструктуру, покупайте модели, стройте только продукт. Остальное построенное – обуза.
  • Работу на каждого человека (размытие, шумоподавление) кладите на устройство: бесплатно оператору и лучше для приватности.
  • Одновременно крутятся два бюджета: интерактивное медиа (~200 ms в одну сторону) и ИИ-голосовой цикл (~800 ms).
  • Стоимость агента следует за минутами речи, а не за числом участников – один агент тянет all-hands на 200 человек.
  • Выпускайте пятью майлстоунами, каждый – рабочий продукт; раскрытие по AI Act – до любого синтетического голоса или лица.

Что почитать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.