Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Голосовой агент NVIDIA Nemotron оживил интерактивный фасад на Хэллоуин: разбор проекта MonsterHouse

К празднику разработчик Рик Гранди из компании NVIDIA представил интерактивный проект MonsterHouse на Хэллоуин — цифрового персонажа, проецируемого прямо на гаражные ворота. Установка способна слушать подходящих гостей, поддерживать живую беседу хриплым голосом старого пиратского судна, требовать соблюдения этикета за сладости и при этом работать полностью автономно на одном компьютере без подключения к облаку.

В основу системы лег открытый голосовой агент NVIDIA Nemotron, связавший воедино несколько локальных нейросетей: модуль распознавания речи, малую языковую модель для генерации реплик, нейросетевой синтезатор голоса и алгоритм процедурной лицевой анимации в реальном времени.

Архитектура и составные части системы MonsterHouse

Проект объединяет несколько независимых моделей в единый реактивный конвейер, где каждый компонент отвечает за конкретную модальность восприятия или генерации:

Реклама
  • Слух: потоковая модель Nemotron Speech ASR (nemotron-speech-streaming-en-0.6b в квантовании Q8_0) преобразует живую речь гостей в текст с минимальной задержкой.
  • Мышление: малая открытая языковая модель Nemotron 3.5 Bolt E4B с объемом контекста 4 ГБ генерирует осмысленные ответы в рамках заданной роли.
  • Голос: модуль Magpie TTS Zeroshot озвучивает текст с нулевой выборкой, копируя интонации и тембр по короткому референсному аудиофайлу.
  • Мимика: инструмент NVIDIA Audio2Face-3D считывает чистый аудиопоток и транслирует движения губ в скелетную сетку внутри движка Unreal Engine 5.
  • Зрение: мультимодальная модель Nemotron 3 Nano Omni анализирует кадры с камеры и определяет костюмы гостей, а связка алгоритмов YOLO и ByteTrack отвечает за детекцию и подсчет людей перед входом.
  • Аппаратная база: весь комплекс вычислений выполняется локально на одной рабочей станции с двумя профессиональными видеокартами: NVIDIA RTX PRO 6000 Blackwell Max-Q и NVIDIA RTX PRO 4000 Blackwell.

Создание 3D-модели и процедурной мимики

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

Скелетная сетка (SkelMesh) была смоделирована в Autodesk Maya, где автор настроил нестандартный риг анимации для последующего экспорта блендшейпов, совместимых с Audio2Face-3D. Поскольку у персонажа отсутствуют глаза и брови, мимика получилась экономичной с точки зрения нагрузки на вычисления. Окончательная сцена собрана в Unreal Engine, где за виртуальной пастью было добавлено объемное освещение и эффект огня.

Диалоговый сценарий и языковая модель Bolt E4B

Для персонажа придумали предысторию: гараж якобы построен из обломков затонувшего пиратского фрегата, вынужденного коротать век в виде недвижимости. Это логично объясняет его грубый морской жаргон и недовольство прохожими.

Общий вид фасада дома с горящими глазами и зубастой пастью MonsterHouse
Горящая пасть персонажа освещает подъездную дорожку во время диалога.
Сетка блендшейпов и различных мимических выражений деревянного рта MonsterHouse
Набор выражений лица, подготовленный в Autodesk Maya для управления через Audio2Face-3D.

Сценарий интерактивного общения строится по определенному маршруту: сначала дом пытается прогнать гостей репликами вроде предложения уйти к соседям, однако вежливая просьба со словом «пожалуйста» мгновенно смягчает его характер, а «спасибо» гарантирует получение конфет. Важно было зафиксировать смену настроения в логике программы, чтобы посетителю не приходилось повторно уламывать упрямые ворота.

Схема конвейера обработки диалога с путями кэширования текста и звука
Схема ускорения ответов: использование заготовленного текста и готовых аудиофайлов сокращает задержку отклика.

Выбор модели и тонкая настройка через LoRA

Поскольку система проектировалась автономной, ключевым ограничением выступал бюджет оперативной и видеопамяти. Автор протестировал более дюжины компактных моделей и остановился на 4-битной версии Nemotron 3.5 Bolt E4B (также сопоставляя ее с BF16-чекпоинтом). Модель показала меньший объем занимаемой памяти по сравнению с альтернативами уровня Qwen3 30B-A3B и Qwen 3.6 35B-A3B при высоком качестве диалогов.

Пользовательский интерфейс панели управления MonsterHouse с вкладками моделей и саундбордом
Интерфейс оператора для мониторинга диалогов, переключения режимов и ручного воспроизведения фраз.

Для придания характеру нужной пиратской стилистики был сгенерирован датасет из более чем 5000 многошаговых диалогов с помощью крупной внешней LLM. На этих данных подготовили адаптеры LoRA в среде NVIDIA NeMo AutoModel. Обучение отдельных версий адаптеров занимало от одного до двух часов на локальном стенде.

Кадр распознавания костюмов моделью Nemotron Omni на пяти овцах
Тестирование зрительного модуля: модель Omni успешно распознала костюмы ведьмы, пирата, тыквы, призрака и вампира.

Оптимизация задержек и синтез речи в Magpie TTS

Главная проблема интерактивных систем реального времени — паузы между концом фразы человека и реакцией персонажа. Если диалоговый агент отвечает слишком долго, эффект присутствия пропадает. В проекте MonsterHouse пайплайн начинает отправку текстовых токенов на озвучивание до того, как языковая модель закончит формирование всего предложения.

Реклама

Кроме того, для стандартных приветствий и шуток была задействована база заготовленных реплик. Разница во времени отклика оказалась показательной:

  • Полная генерация через связку Bolt Q4 и потоковый TTS занимает в среднем 1,70 секунды (с учетом ожидания 300 мс тишины для подтверждения окончания фразы).
  • Воспроизведение кэшированного ответа занимает всего 0,72 секунды.

Разделение аудиопотоков для озвучки и анимации

Синтезатор Magpie TTS Zeroshot генерирует британский акцент с пиратским оттенком на основе коротких образцов голоса длительностью от 3 до 10 секунд. Персонажу назначено семь базовых эмоциональных состояний (от угрожающего до веселого), и языковая модель автоматически проставляет теги настроения в тексте ответа.

Для корректной работы Audio2Face-3D требуется чистый, нейтральный тембр без посторонних искажений. Чтобы дом звучал как демонический корабль, звук разделили на две ветки: чистая сухая дорожка отправляется напрямую в драйвер лицевой анимации с фиксированным смещением буфера в 100 мс, а на внешние динамики подается сигнал, обработанный пространственной реверберацией и понижающим высоту питч-шифтером.

Аппаратную нагрузку распределили между графическими ускорителями: обработка языка и генерация звука выделены на RTX PRO 6000 Blackwell Max-Q, тогда как рендеринг Unreal Engine и Audio2Face-3D выполняются на RTX PRO 4000 Blackwell. Такое разделение предотвращает просадку кадровой частоты анимации при пиковых нагрузках на нейросети.

Пульт управления и варианты демонстрации

Для управления взаимодействием разработчик собрал интерфейс с несколькими функциональными вкладками: выбор моделей, мониторинг очередей запросов, журнал беседы, прямой ввод текста и панель быстрых звуковых фраз (саундборд). Система поддерживает три основных режима работы:

  • Live: полностью автоматический интерактив с посетителями.
  • Demo: режим самопрезентации, в котором дом самостоятельно рассказывает об архитектуре своего проекта.
  • Microphone: резервный ручной режим, позволяющий оператору говорить в микрофон напрямую, минуя ASR и LLM. Собственный голос оператора управляет анимацией челюсти, а слушатели слышат измененный низкий тембр.

Распознавание образов через Nemotron 3 Nano Omni

Чтобы реплики были контекстными, к комплексу подключили видеокамеру. За постоянный мониторинг сцены и подсчет гостей отвечают алгоритмы YOLO и ByteTrack. Когда перед домом останавливается группа, мультимодальная модель Nemotron 3 Nano Omni получает отдельный стоп-кадр для классификации костюмов.

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

Рекомендации по созданию собственного интерактивного персонажа

Хотя сам исходный код инсталляции MonsterHouse не публиковался в виде готового дистрибутива, все примененные нейросетевые блоки открыты для использования через репозиторий NVIDIA Nemotron Voice Agent:

  1. Базовый голосовой пайплайн: разверните шаблон Generic Assistant из репозитория Voice Agent, где уже настроены детекция активности голоса (VAD), Nemotron Speech ASR и Magpie TTS.
  2. Диалоговое ядро: подключите малую модель Bolt E4B в режиме conversational без активации цепочки рассуждений (reasoning), чтобы сократить латентность ответов.
  3. Управление состоянием: фиксируйте важные переменные (например, здоровался ли гость и произнес ли слово «пожалуйста») на уровне внешнего скрипта, не перегружая контекстное окно модели. При необходимости дообучите LoRA через NeMo AutoModel.
  4. Анимация лица: подключите Audio2Face-3D к вашему 3D-мешу, передавая в него необработанный аудиопоток, а акустические спецэффекты накладывайте параллельно на мастер-шину звука.
  5. Оптимизация производительности: если вычислительные мощности ограничены одной потребительской видеокартой, создайте банк предварительно сгенерированных реплик. В этом случае модель Nemotron Speech ASR будет распознавать намерение посетителя, а питоновский роутер — мгновенно отдавать готовый аудиофайл из кэша.
01.