Что такое NVidia RTX Voice и как эта технология изменит компьютерные игры

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com (подробнее »)
| Обзор | Компьютерные и мобильные игры

Последняя конференция NVidia произвела много шума, а новые видеокарты стали технологическим прорывом года. Но пока большинство людей смотрит всего лишь на прирост производительности в играх и улучшение графики, они упускают то, что сделает новое поколение видеокарт настоящим прорывом — программные решения на основе тензорных ядер. NVidia представила целый ряд перспективных технологий, которые они будут развивать в будущем поколении. Я постараюсь пройтись по всем продемонстрированным технологиям, но в данной статье хотел бы подробнее рассмотреть NVidia RTX Voice.

Доступ к данном программе NVidia предоставила ещё весной и на данный момент уже имеется множество статей и видео, которые ярко демонстрируют возможности данной программы. Так что же в ней такого особенного, почему она работает лучше любых других программ шумоподавления, причём тут RTX в названии, и что эта технология даст играм?

Ответом на первую часть вопросов будет — снова нейронные сети. Да, они затесались даже сюда. Правда, на этот раз это очень специфическая и крайне интересная архитектура сетей, название которой — вариационный автоэнкодер (или же автокодировщик). 

Обычные нейронные сети имеют множество нейронов в своих скрытых слоях. Это необходимо для того, чтобы установить все взаимосвязи между входными и выходными параметрами в сети. Ведь, по сути, каждый нейрон скрытого слоя является отображением «понятия», которое связывает между собой входные и выходные параметры. И чем сильнее вес связи этого нейрона, тем сильнее это «понятие» оказывает влияние на эти самые параметры. В качестве примера можно рассмотреть условную сеть, которая распознаёт листья деревьев на фотографии. Один условный нейрон такой сети будет определять, является ли предмет на фотографии зелёным и если да, именно этот нейрон будет считать, что это лист. Другой условный нейрон будет проверять, является ли предмет овальным. Третий будет проверять текстуру объекта, четвёртый наличие черешка и так далее. И такая сеть распознает лист, если большинство нейронов ответят, что они считают объект листом. Но «мнения» нейронов неравнозначны. Ведь цвет и форма важнее наличия черешка. С другой стороны, лягушки тоже могут быть зелёными, а листья могут быть оранжевыми и красными, поэтому исключительно на цвет такая сеть не полагается, а учитывает совокупность мнений всех нейронов. И именно поэтому подобные сети имеют множество скрытых нейронов, что бы охватить все возможные «понятия», которые связывают между собой входные и выходные параметры. А вот автоэнкодер устроен по другому.

Своё название автоэнкодер получил от название классов задач, которые он решает в процессе работы — кодировка и декодировка сигнала. И устроен он ровно противоположным образом — в скрытых слоях у него нейронов существенно меньше, чем входных и выходных параметров. Казалось бы, какой в этом смысл?

А вот тут и начинается магия. Автоэнкодер «запоминает» не все ключевые особенности, чтобы распознать в точности какой то объект. Вместо этого он «выбрасывает» все данные, которые не являются обязательными для распознавания. Он запоминает только ключевые «понятия». То есть, он убирает из данных весь шум. И вот на этом моменте, полагаю, некоторые уже начали правильно догадываться, как использует автоэнкодеры NVidia RTX Voice (очевидно, в их случае это намного более сложная модель). Именно так — сеть NVidia обучалась на распознавание человеческого голоса. Но, поскольку эта не классическая сеть, она обучалась так, что «выбрасывала» из звуковой дорожки все те звуки, которые не относятся к человеческому голосу. И запустив такую сеть «в обратную сторону» можно добиться от неё не распознавания голоса, а фильтрацию звуковой дорожки. Магия работает, остаются только звуки человеческой речи.

Но автоэнкодер всё ещё остаётся нейронной сетью, со всеми своими недостатками. В частности, у него всё ещё очень специфические вычисления, которые не характерны для классического процессора и хорошо работают только на тензорных ядрах. Более детально специфику работы нейронных сетей я описал в одной из предыдущих своих статей. Для автоэнкодера все ограничения те же самые и поэтому NVidia RTX Voice требует для работы именно видеокарты с RTX.

Это всё конечно же очень интересно, но что за кликбейт в заголовке? Причём тут непосредственно игры? А для объяснения этого стоит рассмотреть ещё одну магию автоэнкодеров. Они ведь запоминают лишь ключевые особенности, но при этом отсеивают все детали. Но совсем не обязательно, что эти детали должны полностью отрезаться. Их можно достраивать случайным образом. При этом автоэнкодеры совершенно не привязаны к аудио данным, они могут работать с чем угодно. И вот тут мы приходим к идее случайного генератора нового поколения.

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

А ведь генерация карт это только первое, что приходит на ум. Генерация персонажей, генерация транспорта, генерация игровых сценариев, действительно уникальные и живые миры. И кто знает, какие варианты использования данной технологии ещё придумают. NVidia уже продемонстрировала, что на современных видеокартах спокойно можно запустить сложные автоэнкодеры, которые работают лучше классических алгоритмов. И, возможно, когда технология RTX и аналогичные плотнее войдут в повседневную жизнь, большинство игр станут немного «рогаликами» (где мир перестраивается после смерти героя).

9 комментариев

T
Автоэнкодер для генерации не пойдет толком, для этого есть более адекватные решения, на основе GAN. Ну для примера генерация лиц от той же nVidia.
Далее, генератор чего-то на основе случайных чисел давно используется в играх. Для генерации совершенно не обязательно городить нейросеть, даже в древней Elite это уже было. Сейчас в No man sky по полной используют.
Arguzd
По поводу GAN согласен, но и подвиды вариационных автоэнкодеров вполне себе используют для генерации. К примеру https://arxiv.org/abs/1903.07137. А про генераторы на основе случайных числе я и говорю, что они есть давно, но они именно что случайны. А те же автоэнкодеры (и GAN тоже) не генерируют что то случайное, они восстанавливают данные с погрешностью. То есть, сгенерированная, к примеру, карта будет выглядеть как усреднённая карта из тысяч реальных, на которых сеть обучалась. Но каждая новая сгенерированная карта всё равно будет отличаться в деталях.
T
Проблема энкодера в том, что невозможно толком понять какой элемент вектора за что отвечает, сейчас есть подвижки в этом направлении в виде disentangled autoencoder. То есть чтобы добавить больше воды на карту, хрен ты разберешь что именно увеличивать и в каком параметре. В этом отношении GAN немного более удобны, там можно получить градиент изменения конкретного параметра.
-
Генераторы же делают примерно такое же преобразование, по заданному случайному вектору генерится нечто. При этом полученное нечто всегда будет на 100% таким же для одного и того же вектора. Процедурная генерация и все такое.
Syncaine
Если говорить именно о RTX Voice, то это больше игрушка. Пробовал, если за стеной работает перфоратор, то получится его вырезать вместе с частью голоса. Но при отсутствии шума голос все равно подвергается обрезке. То есть, наличие нормального микрофона это вам не заменит. Ну а если у соседей ремонт, то качество голоса будет таким, что лучше запись отложить и перенести.
Д
То есть в будущем игроделы будут не нужны — каждый пользователь сам сможет сгенерировать себе игру по своему вкусу?)
N
это и сейчас можно без нейросетей
многие хорошие игры так и сделаны
T
Что касается именно Voice — технология, как и многие другие «продвинутые» дико сырая.
Отожрать 3Gb памяти? Легко!
Срезать громкость звука в динамиках (даже если для них не используется)? Запросто!
Металлический голос и неразборчивость речи? Да пожалуйста!
Поигрался и удалил.
115714461586402090162@google
RTX Voice никак не изменит работу с микрофоном для стримеров — как пользовались шумодавами в той же OBS, так и пользуются.
RTX Voice жрет ресурсы, которые пригодились бы для игры — поэтому и геймеры положат болт на эту технологию.
Сыро, проприетарно и особо не нужно — в общем, как обычно у Nvidia.
Что касается генерации карт — это могут делать в облаках, да еще и быстрее, качественнее, чем одна дорогущая домашняя железяка.

Добавить комментарий