Тред про game audio: Как синтезировать речь персонажа из простых звуков

Тред про game audio: Как синтезировать речь персонажа из простых звуков

Перевод треда Kevin Regameyk с рассказом, как он смог синтезировать речь Селесты из одноименной игры.

Создание диалогов Селесты — тема вопросов №1, когда дело касается звука в игре. Расскажу о том, как мы их создавали.

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

По сути, используя параметрический эквалайзер в FL Studio, мы смоделировали так называемые «форманты» — то есть естественные спектральные пики в человеческих гласных звуках. У этих спектральных пиков есть определенные частотные положения и отношения, и они выглядели примерно так:

Даже когда нет слов, можно выразить эмоции звуками

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

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

Портреты Селесты с разными эмоциями

Эмоции обычно высокие или низкие? Они однородны или сильно изменяются? Речь идет медленно и осторожно или быстро и отрывисто? Какую высоту звука мы должны слышать и какие предложения представляют собой эти звуки?

Описание особенностей разных эмоций, как бы они выглядели в спектре

Попросту, я часто читал сценарий и «переигрывал» диалоги.

Кусочек сценария с диалогами из игры

Затем мы нажали PLAY в FL Studio (чтобы запустить автоматизацию формант) и после этого «исполнили» эмоции на миди-клавиатуре пианино, возясь с колесом высоты тона в попытке достичь всех тех характеристик, которые изложили выше.

Мы записали аудиовыход этого выступления на отдельный компьютер, а затем просмотрели и выбрали «хорошие дубли». Эти хорошие результаты были разделены на 3 основные категории по эмоциям:

  • Быстрое прохождение слогов (20)
  • Слоги с ударением (10)
  • Окончания предложений (10)

Используя @fmodstudio, мы настроили систему событий, управляемую эмоциями (на самом деле изображениями эмоций персонажа)… У нас было одно звуковое событие для каждого персонажа, и каждое диалоговое событие воспроизводится без остановки в течение всего разговора данного персонажа в игре.

Код, который отправляет на определенную часть звуковой дорожки

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

Еще одна вспомогательная таблица, чтобы синтезировать речь Селесты

Когда мы достигаем данной эмоции, мы проходим через случайную последовательность слогов с помощью построенной нами системы переходов. Ее создание было довольно утомительным, потому что при перемещении по случайной последовательности аудиофайлов FMOD не может отлично обрабатывать такую степень точности.

Если нужно синтезировать речь с настоящими словами, те шли бы не в случайном порядке. Но здесь можно и так.

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

Маркеры слогов из которых можно синтезировать речь

Хаб также сделал тривиальной настройку интервала между слогами (поскольку мы могли перемещать всю позицию хаба, а не сорок отдельных маркеров перехода).

Время между слогами

В любом случае, как только отрисовка текста в пользовательском интерфейсе игры заканчивается, FMOD получает уведомление о том, что речь должна завершиться. Затем ползунок возвращается в режим ожидания следующего изображения / эмоции. (Он либо проигрывает последний слог перед возвратом, либо сразу же возвращается, если был на подчеркнутом слоге).

Вот и все! Надеюсь, вы узнали что-нибудь о #gameaudio! Если хотите увидеть подробную разбивку того, как работает диалоговое событие, можете посмотреть его здесь:

https://www.twitch.tv/videos/248998904?sr=a&t=1250s

Вы также можете скачать и попробовать всю @celeste_game

Проект FMOD (со всеми исходными звуками и музыкой — спасибо @kuraine!) доступен на сайте. https://fmod.com/resources/documentation-studio?version=2.00&page=appendix-a-celeste.html

Всем привет!

Ссылка на тред: https://twitter.com/regameyk/status/1416483668869062656

Понравилась статья? Поделиться с друзьями:
Автор natalya
Переводит для Вас самые интересные статьи про разработку игр. По образованию физик-программист. Техническими переводами начала подрабатывать еще на старших курсах и постепенно это переросло в основное занятие. Интересуется гуманитарными технологиями, пробует себя в журналистике.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *