Российские программисты сделают аватары ИИ человечнее
Виртуальные ассистенты вроде Алисы, Кортаны и других, уже стали частью повседневности для многих россиян. Эти боты помогают нам найти ответы на детские вопросы, составить оптимальный маршрут для путешествия на море и даже сделать божественный ужин для большой компании. Но одна беда все еще преследует этих виртуальных друзей человека: им самим недостает человечности. Мало того, что шаблоны их поведения ограничены заложенным в них кодом (хоть они и умнеют не по дням, а по часам), так они еще и безлики. Отдельные безумцы вроде китайских телевизионщиков дают своим ботам «реальные» лица, но без слез и отвращения на не взглянешь. Почему так? Зловещая долина!
Зловещая долина? Это такая туристическая достопримечательность?
Нет, к туризму или творчеству Тима Бертона этот термин никакого отношения не имеет, наоборот, он прямо связан с робототехникой.
Зловещая долина, если простыми словами — это ситуация, когда человек смотрит на робота, который старается косить под человека, и вместо симпатии к нему испытывает сильнейший дискомфорт, а то и рвотные позывы. Отчего так происходит?
Психологи объясняют этот феномен тем, что человеческий глаз и мозг, несмотря на то, что люди частенько этого не осознают, очень наблюдателен и щепетилен ко всему, что касается индивидуальности других людей. Мозг способен улавливать малейшие несоответствия естественному, любую фальшь — а потому хорошо видит, когда какая-то вещь лишь стремится походить на человека.
Чувствовали лютые приступы тошноты в музее мадам Тюссо? Поздравляю, вы словили зловещую долину!
С роботами у человека происходит то же самое: если вы видите, что робот косит под человека, но недостаточно хорошо, вы либо будете смеяться над ним, либо морщиться.
Зловещая долина — одно из главных препятствий для робототехников на пути внедрения роботов-андроидов (т.е. устроенных внешне как человек) в массовое использование в сфере обслуживания. Даже если на кассе будет уродливая, но живая кассирша, большинство людей предпочтут взять заказ у нее из рук, а не из рук «куклы». Это значит, что от зловещей долины надо как-то избавляться, иначе прогресс невозможен.
Именно этим занялись программисты из Московского физико-технического института.
Учим роботов симпатично улыбаться
Техники из МФТИ заморочились и решили помочь робототехникам сделать крутую, почти не отличимую от человеческой мимику у виртуальных помощников.
Чтобы процесс пошел бодрее, им потребовалось узнать, как схожие задачи выполняли до них.
Они выяснили, что основных подхода по созданию процедурно генерируемых анимаций у айтишников два.
Первый из них — автоматическая генерация по аудио— этот подход основан на том, что компьютеру показывают соответствие между различными звуками, которые произносит бот (т.н. фонемы), и движениями губ, головы и лица (эта часть называется виземами). Чтобы этот подход хорошо себя показывал, робота нужно обучить и дать ему свободу в мимике — ведь настоящий человек никогда не говорит одинаково, он постоянно в мелочах меняет свою мимику в зависимости от ситуации и громкости голоса: может орать, бормотать что-то неразборчиво или декламировать пафосные речи, подражая Маяковскому.
Второй подход — это генерация (создание на лету) полигональных сеток с помощью нейросети. Здесь все интереснее: заранее заданных движений лица и головы у бота нет, он создает гибкую модель поведения после процедуры интенсивного машинного обучения, после чего в режиме реального времени создает свое «живое» лицо. Этот подход достаточно молодой и вполне перспективный, но пока он ограничен возможностями нейросеток, которые, как мы знаем, до сих пор бывают непредсказуемы и часто руководствуются «инопланетной» логикой.
Наши ученые, видя недостатки второго подхода, решили не фантазировать, не извращаться и взять за основу подход с автоматической генерацией по аудио.
Чтобы разработка была интереснее, они дали модели возможность работать с уже знакомыми нам синтетическими голосами, и вдобавок добавили ей потенциал для работы в реальном времени после оптимизации.
Как эта модель генерации мимики устроена?
Для того, чтобы хорошо генерировать мимику, роботу нужно разобраться с тремя основными блоками ужимок: движениями губ, головы и лица. Все эти жесты нужно синхронизировать с аудиодорожкой, тогда это будет выглядеть естсественно.
Для всех этих танцев с бубном программистам нужно сделать особую архитектуру модели генерации мимики. Она состоит из следующих модулей:
- Модуль принятия запроса от пользователя (pre_processing) — подсистема, которая должна понять, что пользователю надо от робота, и обработать их так, чтобы бот понял
- Модуль Wav2vec — эта штука анализирует аудиодорожку и возвращает их машине в специальном формате
- Модуль Audio2pose — этот кусок кода создает позы для аватарки бота на основе существующей модели и расшифрованных входных и выходных данных
- Модуль Audio2mouth — здесь робот формирует движения губ, которые потом будут использоваться в конечной анимации
- Модуль постпроцессинга (post_processing) — вся данные из предыдущих модулей стекается сюда, чтобы собраться в готовое выступление анимированного болванчика и показаться пользователю
Как все это работает?
В начале модуль Pre_processing берет на себя «сырые» данные от пользователя.
Потом Wav2vec смотрит ответ робота и преобразует его аудио-часть в виземы, чтобы затем модуль Audio2mouth подсказал аватару робота, как нужно шевелить губами.
Параллельно с этим модуль Audio2pose подсказывает роботу, как правильно стоять и жестикулировать, чтобы не вызывать у пользователя отвращения.
Все эти кусочки пазла собираются на постпроцессинге, и живой собеседник бота видит перед собой пусть и машину, но говорящую через дисплей как человек.
Какие у этой разработки перспективы?
Самое очевидное использование наработок для данного модуля — это прокачка голосовых ассистентов. Пользователям, имеющим дело с той же Алисой, будет куда приятнее говорить с «живой», анимированной девушкой, а не с куском пластика в виде умной колонки (да, со стороны разговоры за жизнь с умной колонкой выглядят гораздо страннее, чем с «живой» аватаркой).
В идеале эти модули можно будет потом добавить к заматеревшим нейросеткам вроде ChatGPT, чтобы общение с ними было комфортнее для людей, а в еще более далеком будущем эти аватарки можно будет прикрутить к настоящему, самостоятельному искусственному интеллекту.
Вместе со сложными прикладными задачами этот модуль может помочь и индустрии медиа тоже. Разработчики видеоигр и фанаты цифровых развлечений уже давно мечтают о том, чтобы NPC (неигровые персонажи) были более живыми и самостоятельными, не зависели от «рельс», заготовленных разработчиками, и могли живо часами болтать о разных глупостях и серьезных вещах с игроками. Отдельные умельцы уже работают над подобными системами и дают неписям доступ к ChatGPT — но, согласитесь, результат будет еще крышесноснее, если неигровые персонажи будут не только складно говорить без суфлера, но еще и жестикулировать, как живые люди.
Одно ясно точно уже сейчас: будущее уже тут, и разработка мимики для роботов — лишь один из многих кирпичиков грядущего футуризма.