РУКОВОДСТВО

Озвучка визуальной новеллы на Ren’Py голосами ИИ

Озвучка оживляет визуальную новеллу, но нанять актёров на тысячи реплик большинству инди-разработчиков не по карману. В Ren’Py уже есть всё, чтобы проигрывать файл на каждую реплику; не хватает только самого звука.

В этом руководстве — как устроена озвучка в Ren’Py по его документации, как автоматически привязать файлы к репликам и как бесплатно озвучить весь сценарий офлайн с SuperClonica, отдельным голосом для каждого персонажа.

Как Ren’Py проигрывает озвучку

В Ren’Py файл озвучки запускается оператором voice перед репликой, например voice "line0001.ogg". Для целой игры удобнее автоозвучка: задайте config.auto_voice = "voice/{id}.ogg", и Ren’Py подставит вместо {id} идентификатор реплики и проиграет файл, если он есть. Реплики без файла просто останутся без звука, так что озвучку можно добавлять постепенно.

Получите все реплики с идентификаторами

В лаунчере Ren’Py выберите Extract Dialogue и вариант с табуляцией. Получится dialogue.tab — он открывается в табличном редакторе и содержит реплики с их идентификаторами. Оставьте три столбца: id, voice и text — идентификатор, голос персонажа и саму реплику. Уберите из озвучиваемого текста теги в фигурных скобках вроде {w} или {i}.

Озвучьте весь сценарий офлайн

Поставьте бесплатный движок SuperClonica командой python -m pip install superclonica-cpu. В Python после import csv, from superclonica import Superclonica and tts = Superclonica(), then for row in csv.DictReader(open("lines.csv", encoding="utf-8")): audio, rate = tts.synthesize(row["text"], voice=row["voice"], lang="ru", seed=7); tts.save("game/voice/" + row["id"] + ".ogg", audio). В столбце voice может стоять стоковый голос вроде M2 или F3 либо файл голоса из каталога, а фиксированный seed сохраняет звучание персонажа во всех сценах. Движок работает офлайн на обычном процессоре без лимита символов, а файлы OGG занимают в игре мало места.

Персонажи, отключение и повтор

Дайте каждому Character параметр voice_tag — тогда игроки смогут отключать отдельных персонажей через SetVoiceMute или ToggleVoiceMute, а VoiceReplay повторит последнюю реплику. Подберите голоса: послушайте аниме-, игровые и дикторские голоса бесплатно на их страницах фразой на 30–100 символов или обучите голос главного героя в студии по чистой записи на 5–10 секунд.

Self-voicing — это другое

Клавиша v в игре на Ren’Py включает self-voicing — режим доступности, который читает текст и элементы интерфейса синтезатором речи операционной системы. Он рассчитан на слабовидящих игроков, а не на озвучку персонажей, и голос зависит от системы игрока. Заранее озвученные реплики звучат одинаково у всех.