Думаю некоторые мододелы сталкивались с проблемой необходимости войса для персонажей своего мода, но кандидатов-актеров не было, или при войсинге строк возникала проблема выговаривания с необходимой интонацией. К счастью, мы живем в прекрасное время, когда мы все ближе к искусственному интеллекту, когда необходимый инструментарий и знания стали общедоступны для любого человека, а люди из Data Science перестали быть собственностью закрытых отделов транснациональных корпораций и могут использовать свои знания для вклада в культуру видеоигр. Так появился xVASynth - нейронка-синтезатор речи, которая при помощи инструментов машинного обучения генерирует весьма недурные озвученные строки на основе заранее подготовленных моделей. В основном, представленные модели из игр компании Тодда, но недавно туда добавились и Киберпанк с голосом наратора из Цивилизации. Целями проекта является создание моделей по всем играм, где есть возможность. На текущий момент, моделей сгенерированно что-то около ~50 и большая их часть относится к Скайриму или Fallout 4 (у последнего доминирование). В этой же статье я вкратце расскажу как пользоваться всем этим на нормальном, что важно, языке со скринами и примерами. Итак, приступим же!
Установка
1. Необходимо определиться, какую версию качать, так как у приложения есть аж 2 версии
- С использованием CPU или же процессора вашего компьютера;
- С использованием "комбинации" CPU+GPU, т.е. процессор + видеокарта.
И на этом моменте нужно внести ясность насчет второй версии, так как она, понятное дело, она разительно отличается от первой. Главным её преимуществом является распараллеленная генерация озвучки при помощи CUDA-ядер, что так же является и главным недостатком, так как такие ядра имеются только в видеокартах Nvidia, начиная с 2007 года (не повезло владельцам AMD). Генерация осуществляется немного другим путем, а именно заранее прописанной таблицей, которую еще нужно уметь заполнять, о чем мы попозже поговорим.
2. Нужно снова заранее сказать, что версии, выложенные на нексусе для разных игр Тодда или других, отличаются лишь моделями, выложенными под основным файлом, так что можно качать основную программу откуда угодно. Однако, некоторые игры у автора имеют приоритет, а потому будут получения обновления раньше остальных.
3. Перейдем же непосредственно к скачиванию:
- Выбираем версию CPU или CPU+GPU (только владельцы видеокарт Nvidia) и начинаем долго скачивать архив с файлообменника нексуса;
- (Опционально) Так же скачиваем в основной секции, ниже под двумя основными версиями, голосовые вокодеры (и снова только для владельцев Nvidia), которые лучше смягчают голоса, делая их чуть качественнее;
- Скачиваем любые модели любой имеющейся игры (находятся ниже в секции по основными файлами как опциональные).
4. Теперь установка:
- Разархивируем скачанную версию куда Вам угодно;
- (Опционально) Разархивируем скачанные вокодеры в корневую папку основной версии программы;
- Так же разархивируем папку \resources скачанной модели голоса в корневую папку;
- Отлично! Самое нудное позади, теперь перейдем к непосредственному использованию программы!
Использование
Запускаем программу на правах администратора через файл xVASynth.exe в корневой папке. На будущее стоит сделать ярлык и выставить запуск на правах администратора для облегчения своей жизни. Далее нас встречает окно, которое мы рассмотрим поподробнее, где выделения красным означают точку интереса:
Основное окно:
Привыкайте к новому рабочему месту
Справа сверху отображены кнопки, вот они слева направо: Batch synthesis, Changelog / Check updates, FAQ / Hotkeys, Patreon and thanks, Settings:
Ими Вы редко или вряд ли будете пользоваться, но рассмотреть их надо
Batch synthesis или же распараллеленная генерация озвучки, о ней по порядку:
На самом деле не так сложно, как может показаться на первый взгляд
Сперва, Вам нужно иметь файл-таблицу формата ".csv" по пути \resources\app\batch (пример можно сгенерировать, нажав кнопку "Generate Sample", а быстрый доступ в папку для файлов-таблиц можно осуществить нажав кнопку "Open Output"), где должно быть расписано следующее: "game_id" или же ID игры, из которой используемая модель голоса (все ID игр можно найти по пути \resources\app\models), "voice_id" или же ID самой модели используемого голоса (ID голосов можно узнать зайдя в папки игр по пути указанном ранее), "text" или же необходимый к озвучиванию текст. Всё это должно перечисляться в отдельных столбцах (для каждого параметра) одной строки для каждого запроса по отдельности. Так же имеются дополнительные опции, которые необязательны, но я, все же, рекомендую их использовать, если не хотите на выходе получить задницу без обработки, то внимательно изучите эти "аргументы": "vocoder" или же используемый вокодер для постобработки получившейся озвученной строки (присутствуют следующие вокодеры: "waveglow", "waveglowBIG", "quickanddirty" и "hifi", последний имеется не во всех моделях, а потому при отсутствии поддержки будет выставлен вокодер по умолчанию, т.е. "waveglow"), "out_path" или же выходной путь, нужен для указывания папки-выхода для специфичных языковых моделей и, если он не указан, то будет применен путь по умолчанию \resources\app\output\other, для остальных моделей тоже самое, только уже для их игр, "pacing" или же "шаг", забегая наперед, это дополнительный множитель длинны проговаривания каждой буквы в фразе (минимальное значение 0,5, максимальное 2), для идеального баланса, чтобы лишний раз не искажать фразу выставляйте всегда 1.
Так же есть возможность использовать текстовой файл формата .txt для входного файла, предварительно щёлкнув на необходимую модель в основном меню.
Всё еще выглядит не так сложно, верно?)
Далее рассмотрим опции и кнопки в окне распараллеленной генерации. Batch size отвечает за количество параллельных генераций, здесь все ограничивается только видеокартой, по умолчанию стоит 1, если убрать число, то оно будет использоваться по умолчанию. Ниже путь в корневой папке, указанный по умолчанию как /resources/app/batch является путем к исполняемому файлу-таблице или же текстовому документу (обязательно проверьте, чтобы он соответствовал реальному). Далее опции: "Clear out the directory list" очищает папки сгенерированных выходных озвученных строк перед генерацией новых, а "Skip existing output" пропускает генерацию озвучивания строк, имеющих тот же текст, что и уже сгенерированные строки. "Drag and drop .csv files here" это область, куда нужно перетащить мышкой исполняемый файл-таблицу формата ".csv" или же текстовик формата ".txt" (можно закинуть туда только один файл).
Далее, после закинутого файла-таблицы в области "Drag and drop .csv files here" появляется Ваша таблица со строками, а так же новые кнопки. "Clear" очищает область выбранной таблицы, выгружая её.
Чтобы начать работу с другим исполняемым файлом, а "Synthesize batch" при нажатии начинает генерацию озвучки строк и в нижней части окна заменяются кнопки на "Pause" - т.е. паузу процесса генерации и "Stop", чтобы полностью остановить процесс. Прогресс отображен в процентах, так же обратите внимание, что в таблице добавилась колонка "Status", отображающая статус выполнения генерации: "Ready" означает готовность к генерации, "Running" выполнение генерации, а "Done" - завершение озвучивания строки. Так же прогресс выполнения отображается в панеле задач на значке программы. После полного выполнения можете закрыть окно или очистить область, чтобы продолжить работу с генерацией.
Далее мы подробнее остановимся на окне "Settings" или настроек и разберём каждый пункт по отдельности.
- "Use GPU (requires CUDA)" - использование GPU видеокарты (если стоит соответствующая версия приложения) для генерации озвучки. Как уже было ранее сказано, требуется наличие CUDA-ядер, которые есть только на кристалах GPU компании Nvidia, помимо распараллеленной генерации озвучки, эта опция так же ускоряет её генерацию;
- "Autoplay generated audio" - тут всё просто, после генерации озвучки, она воспроизводится;
- "Default to loading the HiFi vocoder on voice change if available" выставляет стандартным для генерации озвучки вокодером HiFi (самый лучший), если он доступен для голосовой модели;
- "Keep the same pacing value on new text generations" отвечает за шаг (длину каждой буквы в строке озвучки) при одиночной генерации строк;
- "Show the slider tooltip" отображение конкретного число, при перемещении ползунка параметра;
- "Dark mod text prompt" просто делает поле ввода текста при одиночной генерации тёмным, вместо светлого;
- "Uses ffmpeg post-processing" использование набора библиотек для постобработки выходящей озвучки, требуется версия 4,3 и выше;
(Опционально) Гайд по установке библиотек "ffmpeg":
1. Переходите на сайт и под секцией "Download" выбираем используемую операционную систему и качаем:
2. В скачанном архиве переходим по пути \корневая папка\bin и копируем три файла "ffprobe.exe", "ffplay.exe" и "ffmpeg.exe", далее создаём папку где угодно (но я рекомендую зайти в системный диск C и создать там папку) с любым названием на английском без пробелов попутно закинув туда те три файла;
3. Далее нажимаем "Пуск" и вводим "Панель управления", переходим в раздел "Система";
4. Там переходим во вкладку "Дополнительные параметры системы";
5. Далее нажимаем на кнопку "Переменные среды...";
6. Затем под разделом "Системные переменные" нажимаем кнопку "Изменить..."
7. В очередном всплывшем окне нажимаем кнопку "Создать" и вводим путь к папке где находятся те три файла библиотек ffmpeg и нажимаем кнопку "Ок" и закрываем оставшиеся окна;
8. Всё, чтобы удостовериться, что всё правильно встало, можно в консоли прописать ffmpeg, если там отобразить много текста, то всё встало правильно и Вы великолепны!
- "Audio format" общий формат (любой известный Вам аудио) для всех сохраняемых озвученных файлов, по умолчанию выставлен "wav";
- "Audio sample rate" общая частота для всех сохраняемых озвученных файлов, по умолчанию выставлено "22050";
- " Silence padding start" общее время перед началом проигрывания сгенерированного голоса для всех сохраняемых озвученных файлов, по умолчанию выставлено "0";
- "Silence padding end" общее время перед окончанием проигрывания сгенерированного голоса для всех сохраняемых озвученных файлов, по умолчанию выставлено "0";
- "Audio bit depth" общая глубина звука в битах для всех сохраняемых озвученных файлов, доступно два варианта: "pcm_s16le" или же глубина в 16 битов и "pcm_s32le", что соответствует глубине в 32 бита, по умолчанию выставлено "pcm_s32le";
- "Amplitude multiplier" дополнительный множитель амплитуды
- "Use fast mode for Batch synth" по идее, использует вокодер "Quick and Dirty", при генерации множества файлов озвучки одновременно;
- "Models path" путь к папке голосовых моделей выбранной игры;
- "Output path" путь к папке выходных озвученных строк выбранной игры.
Итак, настройки и массовую генерацию, вместе с некоторыми важными уточнениями мы разобрали, теперь, мы более детально рассмотрим одиночную генерацию. Для начала снова вернемся к стартовому экрану и рассмотрим его повнимательнее. Здесь Вы видите множество разных полей и так же кнопок, изучим их (сверху вниз) в процессе непосредственной одиночной генерации. В самом верху находится поле, куда надо вписать необходимый для озвучивания текст. Давайте впишем туда что-нибудь:
Хорошо, с текстом мы определились, теперь необходимо выбрать голосовую модель, которая будет озвучивать сам текст и тут нужно сделать небольшое уточнение, что все модели придется скачивать отдельно от основной программы по одиночке, поэтому всё и сразу скачать не выйдет. Более того, голосовые модели необходимой игры находятся в опциональных файлах на нексусе по играм, это значит, что, например, голосовые модели Fallout 3 и New Vegas находятся на разных страницах, что так же справедливо и для остальных моделей. Ладно, вернемся к генерации, справа сверху под названием игры есть кнопка переключения голосовых моделей по играм.
При нажатии кнопки всплывает окно с выбором игры. С помощью строки сверху можно искать игру, где лежат необходимые голосовые модели. Чуть ниже эти же игры расположены по сетке по три столбца. Для удобства поиска все они имеют баннеры, так же слева сверху в самом банере указанно количество голосовых моделей, а слева снизу название самой игры.
В Гугл-Таблице представлен список имеющихся (на момент написания статьи, хотя я планирую тесно за этим следить) голосовых моделей а так же наличие у них поддержки высококачественных вокодеров и продвинутой тренировки (то, где проходит обучение голосовых моделей, помимо стандартной для всех моделей FastPitch):
Открывая нужную игру у Вас во-первых меняется задний баннер и цвет некоторых элементов интерфейса под цвет выбранной игры, а во-вторых в левой области появились голосовые модели. Так же имеет строка поиска среди имеющихся голосов.
У меня их, пока две
Далее, необходимо выбрать одну из представленных моделей для озвучивания, если необходимо прослушать до теста, то можно щелкнуть по ней правой кнопкой мыши. После того, как Вы определились с выбором, необходимо щёлкнуть по кнопке "Load model" (чтобы загрузить модель) и дождаться загрузки.
Нажимаем кнопку "Generate Voice", чтобы сгенерировать озвучивание строки, либо изменит текст на любой другой в поле ввода.
На этом тоже, пока, всё, выдохся перечислять модели в гугл-таблице.
Изменено пользователем Rexschwert
- 11
- 1