Озвучка визуальной новеллы на 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 — режим доступности, который читает текст и элементы интерфейса синтезатором речи операционной системы. Он рассчитан на слабовидящих игроков, а не на озвучку персонажей, и голос зависит от системы игрока. Заранее озвученные реплики звучат одинаково у всех.