nemotron-halloween
Или по-скоро…
Буу! Сега се махай от моравата ми!Накратко: MonsterHouse е интерактивна проекция, която създадох за Хелоуин. Той слуша децата, които обикалят за лакомства, отговаря с гласа на намусен стар пиратски кораб и омеква, когато посетителите си спомнят добрите маниери. Изграден е върху NVIDIA Nemotron Voice Agent с NVIDIA Nemotron ASR, 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.
Усмивка, пълна с трески
Устата беше на първо място. Представях си как дървените дъски на гаражната врата се разцепват на назъбени устни, а пламъците на ада осветяват алеята отвъд нея всеки път, когато той отваряше проклетата си уста. Трябваше да изглежда древен, изразителен и леко раздразнен от самото съществуване на посетители.
Няколко изражения от къща, която има какво да каже.
Създаването на персонализиран анимационен риг беше една от най-трудоемките части на проекта. След като го подчиних, можех да експортирам формите на лицевите изражения, които по-късно 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 адаптерът е готов, проверявам отговорите за последователност, времетраене и тон, сравнявам моделите и адаптерите за качество, повторяемост и скорост, а после слушам изпълнението. Къщата трябва в крайна сметка да отстъпи, без да се превръща в жизнерадостен портиер. Малко съпротива е част от чара. Безкраен спор с гаражна врата — не.
Глас, който си струва чакането
Два преки пътя, два резултата. Авторският текст пропуска генерирането на нов диалог, а запазеното аудио пропуска синтеза. Чистата реч задвижва анимацията отделно от ефектите за публиката.
Къща с духове губи авторитет, ако ѝ отнема твърде много време да се оплаче. Конвейерът предоставя текст за произнасяне, преди целият отговор да е завършен, така че къщата може да започне да говори, докато останалата част от изречението все още е на път. Подготвените поздрави и шегите за бонбони покриват познатите срещи: текстовата банка спестява работа на езиковия модел, а кешираните записи спестяват синтез на реч. Дори на един древен мърморко му е от полза да репетира.
медианно време от края на речта до аудиото с Bolt Q4 & TTS = 1.70 секунди
медианно време от края на речта до аудиото при кеширани отговори = 0.72 секунди
(забележка: откриването на края на речта в момента изчаква 300 мс тишина )
NVIDIA Magpie TTS Zeroshot превръща текста в реч на кралицата. Неговото zero-shot управление на гласа използва кратка референтна извадка вместо обучен глас; моята извадка осигурява гласа на намусения пиратски герой. Къщата има седем настроения — от намусено и заплашително до развеселено и възхитено — а етикетите за емоции, зададени от шаблона на подканата и предоставени от LLM, определят как се произнася всеки ред. Тъй като всяка емоция изисква различна гласова извадка от 3–10 секунди, добавих блок „Изпробвайте гласа си“ в раздела с инструменти на потребителския интерфейс. Така можех да прочета и запиша примерен текст с най-добрия си щастлив или ядосан пиратски глас. Когато дойде време за „Старт“, Bolt E4B решава какво да каже, а Magpie превръща текста в реч с подходящата радост или отчаяние.
Следва Audio2Face-3D и 3D сцената на героя, която създадох в Unreal Engine на Epic. Теглата на модела по подразбиране работят най-добре с чист, неутрален мъжки или женски глас — не прекалено дълбок и не прекалено висок (изберете подходящия модел според пола за вашия случай на употреба). Исках къщата да има много дълбок и демоничен глас с ехо и резонанс. В този случай фактът, че гласовите ми извадки нямат такъв театрален обем, всъщност е предимство. Audio2Face-3D получава чиста реч от извадките, а втори аудиопоток добавя регулируеми гласови ефекти в реално време, които се възпроизвеждат през високоговорителите.
За да поддържам всичко да работи гладко, разделих задачите между два графични процесора: конвейерът за езиковия и гласовия модел работи на NVIDIA RTX PRO 6000 Blackwell Max-Q, а графиката на Unreal Engine с Audio2Face-3D — на NVIDIA RTX PRO 4000 Blackwell. Паметта не е проблемът, изчислителната мощ е. Искам да поддържам постоянна честота на кадрите на анимацията независимо от обработката, която извършва конвейерът на агента.
Гласът, анимацията и ефектите трябва да се синхронизират. Убедителното чудовище се нуждае от повече от бърз отговор; то трябва да звучи така, сякаш оплакването принадлежи на сградата. В моя случай е така. Налични са настройки за синхронизиране на аудиото. Установих, че мога да ги настроя и да ги забравя. (100 мс компенсират буферирането на Audio2Face-3D)
Чудовището има пулт за управление
В някакъв момент „накарай къщата да говори“ изискваше интерфейс, пълен с контроли. Мога да прослушвам кеширани реплики, да настройвам началното настроение, да следя разговора, да променям обработката на гласа и да настройвам анимацията на устата. Разделите обхващат разговори, избор на модел, записи, подкани, мониторинг на производителността и видеопотоци от камери, а звуковият пулт и полето за персонализиран диалог ми позволяват да му сложа думи в устата. Има и контроли за зареждане на модели и индикатор за връзка с Unreal Engine, защото понякога чудовището не се цупи. То е изключено.
Пултът за управление на MonsterHouse със звуковия пулт, персонализираните реплики, началното настроение и потока на разговора.
Огънят и сиянието също се включиха в представлението. Редактируеми правила свързват визуалните сигнали с начина на произнасяне: сигналите на живо започват с речта, докато записаните изпълнения могат да следват запазена времева линия. Мога да насоча промяна на настроението, без да изграждам сцената отново.
Режимът на живо управлява героя, който раздава лакомства. Демонстрационният режим убеждава къщата да се обясни. Режимът с микрофон ми позволява да говоря директно през къщата, заобикаляйки разпознаването, генерирането на диалог и синтеза на реч. Чистият ми глас задвижва устата, а публиката чува обработената версия. Къщата смята това за обсебване. Аз го смятам за полезен резервен вариант.
Следващото почукване на вратата
NVIDIA Nemotron 3 Nano Omni е VLM, който дава на къщата визуален контекст. Като незадължителен наблюдател той интерпретира изображенията от камерата и описва видимите костюми, така че героят да има нещо конкретно, на което да реагира. Без да се опитвам да преоткривам всяко колело, избрах популярните модели за откриване и проследяване на обекти YOLO и ByteTrack, за да броя и проследявам хората, които в момента са в полезрението. Разделянето на тези задачи позволява на къщата да забелязва група, без да кара Omni да разказва за всеки кадър.
За подходящо абсурден тест дадох на Omni видео на пет костюмирани овце пред вратата. Запазеният му анализ идентифицира костюмите на пират, вампир, вещица, тиква и призрак. Именно такъв визуален контекст искам къщата да използва. Очевидно дори добитъкът има по-сложни планове за Хелоуин от мен.
Пет много пухкави деца, обикалящи за лакомства, в синтетична тестова повторна прожекция. Етикетите на костюмите идват от запазения анализ на Omni; рамките и идентификаторите за проследяване са илюстративни.
Овцете са синтетичен тест, а не доказателство за успешна Хелоуинска нощ. Истинските групи на алеята, костюмите и нощното осветление все още трябва да бъдат тествани. Откриването задейства автоматични поздрави, но се опасявам, че идентифицирането на модерни костюми и подходящо остроумните отговори ще изискват допълнително дообучаване. Тъй като къщата няма очи, той нарича осъзнаването на посетителите си ехолокация. Оставям му тази измислица.
Има още работа: анимацията винаги може да се подобри, цялостното тестване на производителността изисква реални посетители, а бонбоните един ден ще се раздават автоматично. Все още не съм постигнал първоначалната цел да оставя къщата да управлява Хелоуин, докато тръгна със семейството си да видя таласъмите от другите квартали. Но именно това е смисълът на всичко. Един ден едно дете ще срещне намусена стара къща, ще прояви малко доброта и ще открие, че старото дърво има меко място в сърцето си. И раздава шоколадови блокчета.
Създайте свой собствен неразумен герой
Самият код на MonsterHouse не е пакетиран за публикуване, но всеки използван от него модел на NVIDIA е наличен днес, а NVIDIA Nemotron Voice Agent ви отвежда почти до края. Ето по кой път бих поел.
- Започнете с гласовия конвейер. Клонирайте NVIDIA Nemotron Voice Agent и стартирайте примера Generic Assistant. Получавате каскаден конвейер с Nemotron Speech ASR, LLM и Magpie TTS, както и откриване на гласова активност и обработка на края на изказването, така че героят ви да знае кога да говори.
- Направете Bolt E4B мозъка. Voice Agent включва профили на Bolt E4B за облачни, сървърни и внедрявания с един графичен процесор. Първо можете да изпробвате модела на build.nvidia.com. Изпробвайте разговорния режим за кратки отговори, готови за произнасяне, и изключете разсъждението за по-прости разговори.
- Дайте му характер. Започнете със системна подкана и няколко свързани примерни диалога. Съхранявайте състоянието на разговора, например кой вече е казал „моля“, в приложението си, вместо да карате модела да го помни. Когато подканите не са достатъчни, обучете LoRA адаптер; NVIDIA NeMo AutoModel разполага с рецепта за LoRA за Bolt E4B.
- Дайте му глас. Magpie TTS Multilingual е стандартният вариант на Voice Agent. За персонализиран герой Magpie TTS Zeroshot работи с кратка референтна извадка. Изпробвайте го на build.nvidia.com и поискайте достъп, за да го стартирате сами. [ПОТВЪРДЕТЕ: пътя за достъп и връзката] Използвайте само гласове, които имате право да използвате.
- Дайте му лице. NVIDIA Audio2Face-3D превръща речта в лицева анимация за вашия герой. Подайте му чиста реч и добавете ефектите след това.
- По избор: дайте му очи. Примерът Nemotron Omni Assistant Subagents на Voice Agent добавя разбиране на изображения от уебкамера на живо с Nemotron 3 Nano Omni. Сдвоете го с лек инструмент за проследяване на хора, ако са ви нужни бройки.
Банка с кеширани отговори и запазено аудио за най-често използваните ви реплики ще направят дори бавното чудовище да изглежда бързо. Всъщност, ако сте ограничени от изчислителната мощ, няма причина да не разполагате с версия на живо, която използва само Nemotron Speech ASR, Python маршрутизатор за разговори и изцяло кеширано аудио. Можете да използвате конвейера Bolt E4B и Magpie, за да генерирате стотици отговори офлайн, а след това да използвате кеша за представлението. Ще направя това за интерактивните тикви.
Ресурси
Модели, споменати в тази статия 3
Още от този автор
Общност
· Регистрирайте се или влезте, за да коментирате
Модели, споменати в тази статия 3
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.


