Синтетический голос, реагирующий на эмоции: как озвучивали диалоги для Celeste
Система анализирует портрет персонажа и выдаёт звук, соответствующий его настроению.
Саунд-дизайнер Celeste Кевин Регейми опубликовал в Твиттере тред, в котором рассказал, как создавал озвучку персонажей в игре. Для этого он использовал систему, основанную на формантах. Выбрали из треда главное.
Сначала команда экспериментировала с synth-звуками, чтобы найти подходящий тембр голоса персонажа. После саунд-дизайнер подбирал разный тон, чтобы понять, как голос будет меняться во время разговора.
Используя параметрический эквалайзер в FL Studio, команда смоделировала «форманты» — естественные спектральные пики в человеческих гласных звуках.
Затем они расположили частотные положения этих пиков на таймлайне, чтобы это напоминало человеческий голос, переходящий от одного гласного звука к другому.
Затем команда выделила несколько основных эмоций персонажей и определила, как они влияют на звучание голоса.
Разработчики должны были выяснить, как меняется скорость, высота и другие показатели голоса у персонажа, испытывающего разные эмоции.
Саунд-дизайнеру приходилось много раз перечитывать сценарий и самостоятельно произносить реплики, чтобы понять, как должны звучать разные интонации.
Когда вся подготовительная работа была выполнена, команда приступила к записи. Для этого саунд-дизайнер запустил последователь формант в FL Studio, а затем «сыграл» разные эмоции на миди-клавиатуре.
Команда разделила полученные записи на три категории:
- обычные слоги;
- слоги с ударением;
- окончания предложений.
Используя FMOD Studio, команда сделала систему событий, которая управляется эмоциями. У всех персонажей есть по одному звуковому событию, которое воспроизводится без остановки в течение всего разговора.
Когда персонаж говорит, в FMOD передаётся информация о том, в каком состоянии находится портрет персонажа в диалоге (так определяется, какую эмоцию он показывает). Далее FMOD добавляет нужный аудиофайл на таймлайн диалога.
В промежутках между эмоциями звучит набор случайных слогов.
В FMOD нет удобного способа реализовать такое решение. Поэтому саунд-дизайнеру пришлось вручную размещать каждый слог на временной шкале и настраивать «хаб перехода».
У последовательности слогов было два ключевых правила: один и тот же слог не мог воспроизводиться дважды подряд, а вероятность воспроизведения ударных слогов была снижена.
Когда текст в UI диалога заканчивается, FMOD входит в режим ожидания до следующего разговора.