Наука и технологии5 мин.

Российские программисты сделают аватары ИИ человечнее

Новая технология передачи мимики: теперь без кринжа
Многие спрашивают: а где же будущее? Стругацкие и Лем обещали нам прекрасное футуристичное далеко, а отцы киберпанка зловеще предрекали, что наша жизнь скатится в цифровую помойку. И хотя многие их предсказания, вроде смартфонов, роста способностей у искусственного интеллекта и полета к другим планетам начинают сбываться (пусть и медленно), один из основных их прогнозов — реалистичные человекоподобные роботы — все еще не сбылся. Но что, если я скажу вам, что российские ученые уже сейчас воплощают этот проект?

Виртуальные ассистенты вроде Алисы, Кортаны и других, уже стали частью повседневности для многих россиян. Эти боты помогают нам найти ответы на детские вопросы, составить оптимальный маршрут для путешествия на море и даже сделать божественный ужин для большой компании. Но одна беда все еще преследует этих виртуальных друзей человека: им самим недостает человечности. Мало того, что шаблоны их поведения ограничены заложенным в них кодом (хоть они и умнеют не по дням, а по часам), так они еще и безлики. Отдельные безумцы вроде китайских телевизионщиков дают своим ботам «реальные» лица, но без слез и отвращения на не взглянешь. Почему так? Зловещая долина!

Зловещая долина? Это такая туристическая достопримечательность?

Нет, к туризму или творчеству Тима Бертона этот термин никакого отношения не имеет, наоборот, он прямо связан с робототехникой.

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

Пример робота, способного вызвать «зловещую долину»

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

Чувствовали лютые приступы тошноты в музее мадам Тюссо? Поздравляю, вы словили зловещую долину!

С роботами у человека происходит то же самое: если вы видите, что робот косит под человека, но недостаточно хорошо, вы либо будете смеяться над ним, либо морщиться.

Зловещая долина — одно из главных препятствий для робототехников на пути внедрения роботов-андроидов (т.е. устроенных внешне как человек) в массовое использование в сфере обслуживания. Даже если на кассе будет уродливая, но живая кассирша, большинство людей предпочтут взять заказ у нее из рук, а не из рук «куклы». Это значит, что от зловещей долины надо как-то избавляться, иначе прогресс невозможен.

Именно этим занялись программисты из Московского физико-технического института.

Учим роботов симпатично улыбаться

Техники из МФТИ заморочились и решили помочь робототехникам сделать крутую, почти не отличимую от человеческой мимику у виртуальных помощников.

Чтобы процесс пошел бодрее, им потребовалось узнать, как схожие задачи выполняли до них.

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

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

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

Наши ученые, видя недостатки второго подхода, решили не фантазировать, не извращаться и взять за основу подход с автоматической генерацией по аудио.

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

Как эта модель генерации мимики устроена?

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

Для всех этих танцев с бубном программистам нужно сделать особую архитектуру модели генерации мимики. Она состоит из следующих модулей:

  • Модуль принятия запроса от пользователя (pre_processing) — подсистема, которая должна понять, что пользователю надо от робота, и обработать их так, чтобы бот понял
  • Модуль Wav2vec — эта штука анализирует аудиодорожку и возвращает их машине в специальном формате
  • Модуль Audio2pose — этот кусок кода создает позы для аватарки бота на основе существующей модели и расшифрованных входных и выходных данных
  • Модуль Audio2mouth — здесь робот формирует движения губ, которые потом будут использоваться в конечной анимации
  • Модуль постпроцессинга (post_processing) — вся данные из предыдущих модулей стекается сюда, чтобы собраться в готовое выступление анимированного болванчика и показаться пользователю

Как все это работает?

В начале модуль Pre_processing берет на себя «сырые» данные от пользователя.

Потом Wav2vec смотрит ответ робота и преобразует его аудио-часть в виземы, чтобы затем модуль Audio2mouth подсказал аватару робота, как нужно шевелить губами.

Параллельно с этим модуль Audio2pose подсказывает роботу, как правильно стоять и жестикулировать, чтобы не вызывать у пользователя отвращения.

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

Какие у этой разработки перспективы?

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

© nci

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

Вместе со сложными прикладными задачами этот модуль может помочь и индустрии медиа тоже. Разработчики видеоигр и фанаты цифровых развлечений уже давно мечтают о том, чтобы NPC (неигровые персонажи) были более живыми и самостоятельными, не зависели от «рельс», заготовленных разработчиками, и могли живо часами болтать о разных глупостях и серьезных вещах с игроками. Отдельные умельцы уже работают над подобными системами и дают неписям доступ к ChatGPT — но, согласитесь, результат будет еще крышесноснее, если неигровые персонажи будут не только складно говорить без суфлера, но еще и жестикулировать, как живые люди.

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