Sakhanda Wire
NVDA — MSFT — GOOGL — META — AMZN —
← До новин

nemotron-halloween

nemotron-halloween
Для підприємств + Стаття
Опубліковано 30 жовтня 2026 року
Створення будинку з привидами за допомогою відкритих моделей NVIDIA Nemotron

Точніше…

Бу! А тепер забирайся з моєї галявини!

BlogThumbnail

Коротко: MonsterHouse — це інтерактивна проєкція, яку я створив для Геловіну. Він слухає дітей, які ходять по домівках за солодощами, відповідає голосом сварливого старого піратського корабля і стає м’якшим, коли відвідувачі пам’ятають про гарні манери. Він працює на основі NVIDIA Nemotron Voice Agent з використанням Nemotron ASR від NVIDIA, Nemotron 3.5 Bolt E4B 4GB, Magpie TTS Zeroshot та Audio2Face-3D, і працює на одній робочій станції.

Я хотів, щоб діти, які прийдуть до мене на Геловін, взаємодіяли з будинком у веселий і незвичайний спосіб. Будинок мав керувати процесом і роздавати частування, але бути радше сварливим, ніж страшним. Зрештою моїм рішенням стало додати гаражним воротам рот і навчити його скаржитися.

Так з’явився MonsterHouse: сварлива стара будівля з піратськими історіями, вогняною посмішкою та підозрілою слабкістю до слова «будь ласка». NVIDIA Nemotron Voice Agent забезпечує основу для розмови. Nemotron Speech слухає, Bolt E4B є мозком, NVIDIA Magpie TTS Zeroshot — живим голосом, а NVIDIA Audio2Face-3D змушує дерев’яний рот говорити.

Як працює Monster House

  • Слухання: NVIDIA Nemotron Speech ASR перетворює мовлення відвідувачів на текст. [ПІДТВЕРДЖЕНО: nemotron-speech-streaming-en-0.6b.q8_0.gguf ]
  • Мислення: NVIDIA Nemotron 3.5 Bolt E4B 4GB — відкрита мала мовна модель для розмовних агентів, яка створює кожну відповідь. Адаптер LoRA додає особистість.
  • Мовлення: NVIDIA Magpie TTS Zeroshot озвучує кожну відповідь на основі короткого еталонного запису голосу персонажа.
  • Анімація: NVIDIA Audio2Face-3D перетворює чисте мовлення на анімацію рота в Unreal Engine 5.
  • Зір: NVIDIA Nemotron 3 Nano Omni описує костюми, а YOLO і ByteTrack підраховують та відстежують відвідувачів.
  • Запуск: NVIDIA Nemotron Voice Agent координує все на одній робочій станції з NVIDIA RTX PRO 6000 Blackwell Max-Q і NVIDIA RTX PRO 4000 Blackwell.

Посмішка, повна трісок

Рот з’явився першим. Я уявляв, як дерев’яні дошки гаражних воріт розколюються на зубчасті губи, а палаюче пекельне полум’я щоразу освітлює під’їзну доріжку з-за дверей, коли він відкриває свій проклятий рот. Він мав виглядати стародавнім, виразним і трохи ображеним самим існуванням відвідувачів.

fireMouthКілька виразів будинку, якому є що сказати.

Створення власного анімаційного риґу було однією з найтрудомісткіших частин проєкту. Після тривалого налаштування я зміг експортувати форми виразів обличчя, які згодом міг анімувати Audio2Face-3D. Персонажний SkelMesh було створено в Autodesk Maya, а потім експортовано в Unreal Engine, де за дверима додали віртуальний вогонь і ефекти. Без очей, брів і моргання він виявився напрочуд економним монстром.

Поки тривала вся ця безглузда робота над персонажем, NVIDIA створювала Nemotron Voice Agent. Те, що мало бути найскладнішою частиною проєкту, зрештою стало доволі веселим, ітеративним і простим. Я одразу отримав основу для слухання, розмови й мовлення. У будинку вже був рот. Тепер він нарешті міг знайти, на що поскаржитися.

Навчання поганих манер

Будинку була потрібна така ж сварлива історія, як і його характер, тому я вигадав передісторію: будинок збудували з деревини затонулого піратського корабля, якого переслідувало його бурхливе минуле. Морські скарги тепер мали пояснення. Це був корабель, перевтілений у нерухомість і не надто задоволений цим.

Виставі потрібен був план — шлях від привітання до прощання, під час якого відвідувачі отримували б частування. Спочатку будинок мав відмахуватися від них репліками на кшталт «Я зайнятий бурчанням, ідіть чіпляйтеся до сусідів!». Але наполегливість мала поступово його виснажити. Слово «будь ласка» могло одразу пробити його захист, а «дякую» приносило тепле прощання. Коли відвідувач підкорював його, я хотів, щоб він залишався прихильним. Ніхто не хоче двічі домовлятися з тими самими гаражними воротами.

Саме тут Voice Agent справді розкривається. Ви можете обрати будь-яку LLM. Оскільки я хотів, щоб система працювала автономно й була повністю самодостатньою, у мене були обмеження щодо пам’яті та обчислювальних ресурсів.

Персонажу потрібно більше, ніж промпт «будь сварливим». Він мав дотримуватися основного сценарію розмови, відповідати на те, що насправді говорили відвідувачі, відстежувати стан взаємодії та залишати достатньо обчислювальних ресурсів для решти конвеєра.

Після тестування понад дюжини моделей я зупинився на Bolt E4B для забезпечення діалогу в реальному часі. Це відкрита мала мовна модель, спеціально створена для локальних розмовних агентів та інтерактивних персонажів, що цілком відповідає опису гаражних воріт, які розмовляють. За замовчуванням я використовую 4-бітний квантизований випуск (саме на це вказує «4GB» у назві), а контрольна точка BF16 доступна для порівняння.

Якщо це ще не очевидно, я працюю в NVIDIA, і завдяки цьому зміг протестувати Bolt E4B до публічного релізу. Я виявив, що це надійний варіант із меншим обсягом ресурсів, ніж інші лідери — Qwen3 30B-A3B і Qwen 3.6 35B-A3B.

Він працює всередині конвеєра Nemotron Voice Agent, перетворюючи слова відвідувачів на наступну, відповідно неохочу відповідь.

Bolt забезпечує основу для розмови. Мої промпти, логіка застосунку та адаптер LoRA, навчений на тисячах перевірених прикладів діалогів, формують із нього саме цього впертого корабля.

Створення набору даних із понад 5000 багатокрокових діалогів дало мені змогу навчити LoRA для кожної моделі, яку я вважав достатньо доброю для використання. Деякі навчалися близько години, деякі — кілька годин. Локальний агент запускав усе й оцінював результати. Спочатку цей агент і дуже велика LLM створили та оцінили набір даних. Це відбувалося вночі або під час моєї основної роботи.

Після підключення LoRA я перевіряю відповіді на послідовність, таймінг і тон, порівнюю моделі та адаптери за якістю, повторюваністю і швидкістю, а потім слухаю результат. Зрештою будинок має поступитися, але не перетворитися на веселого консьєржа. Певний опір — частина його чарівності. Нескінченна суперечка з гаражними воротами — ні.

Голос, на який варто почекати

imageДва скорочені шляхи, два результати. Створений заздалегідь текст пропускає генерацію нового діалогу, а збережене аудіо — синтез. Чисте мовлення окремо керує анімацією, тоді як ефекти для аудиторії додаються окремо.

Будинок із привидами втрачає авторитет, якщо надто довго готується до скарги. Конвеєр видає текст, придатний для озвучення, ще до завершення всієї відповіді, тож будинок може почати говорити, поки решта речення ще формується. Підготовлені привітання та жарти про цукерки охоплюють знайомі ситуації: банк текстів заощаджує роботу мовної моделі, а кешовані записи — синтез мовлення. Навіть старому буркотуну корисно репетирувати.

медіанний час від завершення мовлення до аудіо з Bolt Q4 і TTS = 1,70 секунди
медіанний час від завершення мовлення до аудіо для кешованих відповідей = 0,72 секунди
(примітка: виявлення завершення мовлення наразі очікує 300 мс тиші)

NVIDIA Magpie TTS Zeroshot перетворює текст на англійську вимову королеви. Його безприкладне налаштування голосу використовує короткий еталонний запис замість навченого голосу; мій запис задає образ сварливого пірата. У будинку є сім настроїв — від сварливого й загрозливого до веселого та захопленого, — а теги емоцій, визначені шаблоном промпту й надані LLM, обирають спосіб подачі кожної репліки. Оскільки для кожної емоції потрібен окремий голосовий запис тривалістю 3–10 секунд, я додав на вкладку інструментів інтерфейсу блок «Зразок вашого голосу». Після цього я міг прочитати й записати зразок тексту своїм найкращим веселим або сердитим піратським голосом. Коли настає час «Почати», Bolt E4B вирішує, що сказати, а Magpie перетворює цей текст на мовлення з належною радістю чи відчаєм.

Наступним елементом конвеєра є Audio2Face-3D і сцена 3D-персонажа, яку я створив в Unreal Engine від Epic. Стандартні ваги моделі найкраще працюють із чистим нейтральним чоловічим або жіночим голосом — не надто низьким і не надто високим (обирайте модель відповідної статі для свого випадку використання). Я хотів, щоб будинок мав дуже глибокий демонічний голос із луною та ефектом приміщення. У цьому випадку те, що мої голосові зразки не мають такої театральної сили, насправді є перевагою. Audio2Face-3D отримує чисте мовлення зі зразків, а другий аудіопотік додає регульовані вокальні ефекти в реальному часі, які відтворюються через динаміки.

Щоб усе працювало безперебійно, я розділив завдання між двома GPU: конвеєр мовної та голосової моделей працює на NVIDIA RTX PRO 6000 Blackwell Max-Q, а графіка Unreal Engine разом із Audio2Face-3D — на NVIDIA RTX PRO 4000 Blackwell. Пам’ять не є проблемою, проблема — обчислення. Я хочу зберігати стабільну частоту кадрів анімації незалежно від того, які обчислення виконує конвеєр агента.

Голос, анімація й ефекти мають синхронно поєднуватися. Переконливому монстру потрібна не лише швидка відповідь — він має звучати так, ніби скарга належить самій будівлі. У моєму випадку саме так і є. Доступні налаштування синхронізації аудіо. Я виявив, що можу встановити їх і більше не повертатися до цього. (100 мс компенсують буферизацію Audio2Face-3D)

У монстра є пульт керування

У якийсь момент «змусити будинок говорити» означало створити інтерфейс, переповнений елементами керування. Я можу прослуховувати кешовані репліки, налаштовувати початковий настрій, стежити за розмовою, змінювати обробку голосу та регулювати анімацію рота. Вкладки охоплюють розмови, вибір моделей, записи, промпти, моніторинг продуктивності й відеопотоки з камер, а звукова панель і поле власних реплік дають змогу вкладати слова йому в рот. Є також елементи керування завантаженням моделей та індикатор підключення Unreal Engine, адже іноді монстр не хандрить. Він просто відключений.

imageПульт керування MonsterHouse зі звуковою панеллю, власними репліками, початковим настроєм і перебігом розмови.

Вогонь і сяйво також долучилися до вистави. Редаговані правила пов’язують візуальні сигнали зі способом подачі: живі сигнали починаються разом із мовленням, а записані виступи можуть відтворюватися за збереженою часовою шкалою. Я можу спрямувати зміну настрою, не перебудовуючи сцену.

Живий режим запускає персонажа, який зустрічає дітей із частуваннями. Деморежим переконує будинок пояснити себе. Режим мікрофона дає змогу говорити безпосередньо через будинок, оминаючи розпізнавання, генерацію діалогу та синтез мовлення. Мій чистий голос керує ротом, а аудиторія чує оброблену версію. Будинок вважає це одержимістю. Я вважаю це корисним запасним варіантом.

Наступний стукіт у двері

NVIDIA Nemotron 3 Nano Omni — це VLM, яка дає будинку візуальний контекст. Як необов’язковий спостерігач, вона інтерпретує зображення з камер і описує видимі костюми, щоб персонаж мав на що конкретно реагувати. Не намагаючись винаходити велосипед, я обрав популярні моделі виявлення та відстеження об’єктів YOLO і ByteTrack для підрахунку та відстеження людей у полі зору. Розділення цих завдань дає будинку змогу помічати групу, не змушуючи Omni описувати кожен кадр.

Для відповідно безглуздого тесту я дав Omni відео з п’ятьма вівцями в костюмах біля дверей. Її збережений аналіз визначив костюми пірата, вампіра, відьми, гарбуза й привида. Саме такий візуальний контекст я хочу, щоб використовував будинок. Виявляється, навіть худоба має складніші плани на Геловін, ніж я.

imageП’ятеро дуже пухнастих учасників гри «цукерки або витівки» у синтетичному тестовому відтворенні. Позначки костюмів походять зі збереженого аналізу Omni; рамки та ідентифікатори треків наведено для ілюстрації.

Вівці — це синтетичний тест, а не свідчення успішної ночі Геловіну. Реальні групи на під’їзній доріжці, костюми й нічне освітлення ще потрібно протестувати. Виявлення справді запускає автоматичні привітання, але я побоююся, що розпізнавання модних костюмів і достатньо дотепні відповіді потребуватимуть додаткового навчання. Оскільки в будинку немає очей, він називає свою обізнаність про відвідувачів ехолокацією. Я дозволяю йому так думати.

Попереду ще багато роботи: анімацію завжди можна покращувати, повне тестування продуктивності потребує реальних відвідувачів, а цукерки одного дня роздаватимуться автоматично. Я ще не досяг початкової мети — залишити його працювати на Геловін, поки я вирушу з родиною подивитися на інших привидів у нашому районі. Але саме в цьому й полягає задум. Одного дня дитина зустріне сварливий старий будинок, спробує проявити трохи доброти й дізнається, що в старої деревини є м’яке місце. І що вона роздає шоколадні батончики.

Створіть власного безглуздого персонажа

Сам код MonsterHouse не підготовлений до випуску, але кожна модель NVIDIA, яку він використовує, уже доступна, а NVIDIA Nemotron Voice Agent допоможе пройти більшу частину шляху. Ось як я діяв би.

  1. Почніть із голосового конвеєра. Клонуйте NVIDIA Nemotron Voice Agent і запустіть приклад Generic Assistant. Ви отримаєте каскадний конвеєр із Nemotron Speech ASR, LLM і Magpie TTS, а також виявленням голосової активності та обробкою завершення висловлювання, тож ваш персонаж знатиме, коли говорити.
  2. Зробіть Bolt E4B мозком. Voice Agent містить профілі Bolt E4B для хмарних, серверних розгортань і розгортань на одному GPU. Спочатку модель можна випробувати на build.nvidia.com. Спробуйте режим розмови для коротких відповідей, готових до озвучення, і вимкніть міркування для простіших обмінів репліками.
  3. Додайте йому особистість. Почніть із системного промпту та кількох пов’язаних прикладів діалогів. Зберігайте стан розмови, наприклад інформацію про те, хто вже сказав «будь ласка», у своєму застосунку, а не просіть модель запам’ятовувати це. Коли промптингу недостатньо, навчіть адаптер LoRA; NVIDIA NeMo AutoModel має рецепт LoRA для Bolt E4B.
  4. Додайте йому голос. Magpie TTS Multilingual є стандартним варіантом Voice Agent. Для власного персонажа Magpie TTS Zeroshot працює з коротким еталонним записом. Спробуйте його на build.nvidia.com і запросіть доступ для самостійного запуску. [ПІДТВЕРДИТИ: спосіб отримання доступу та посилання] Використовуйте лише голоси, на які маєте дозвіл.
  5. Додайте йому обличчя. NVIDIA Audio2Face-3D перетворює мовлення на анімацію обличчя вашого персонажа. Подавайте йому чисте мовлення, а ефекти додавайте після цього.
  6. Необов’язково: додайте очі. Приклад Nemotron Omni Assistant Subagents у Voice Agent додає розуміння зображення з вебкамери в реальному часі за допомогою Nemotron 3 Nano Omni. Якщо вам потрібен підрахунок, поєднайте її з легкою системою відстеження людей.

Банк кешованих відповідей і збережене аудіо для найпоширеніших реплік зроблять навіть повільного монстра швидким. Насправді, якщо ваші обчислювальні ресурси обмежені, ніщо не заважає створити живу версію, яка використовує лише Nemotron Speech ASR, маршрутизатор діалогів на Python і все кешоване аудіо. Ви можете заздалегідь згенерувати сотні відповідей за допомогою конвеєра Bolt E4B і Magpie, а під час вистави використовувати кеш. Саме так я зроблю для інтерактивних гарбузів.

Ресурси

Моделі, згадані в цій статті 3

Спільнота

Завантажуйте зображення, аудіо та відео, перетягуючи їх у поле введення тексту, вставляючи або натискаючи тут.
Натисніть або вставте сюди, щоб завантажити зображення

· Зареєструйтеся або увійдіть, щоб залишити коментар

Моделі, згадані в цій статті 3

Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.

Вперше опубліковано виданням Hugging Face

Читати оригінал на Hugging Face ↗

Текст і зображення належать Hugging Face і наводяться тут із зазначенням авторства та посиланням на оригінальну публікацію.

← До новин

Ще новини

Усі останні новини