Сделать говорящих NPC с ИИ можно без закрытых API: NPCTalk собирает пайплайн из трёх открытых моделей — распознавание речи, диалог и клонирование голоса — и держит ответ меньше секунды. Моддер под ником universal modder показал это на GTA V: каждый NPC отвечает в своём характере своим клонированным голосом и реагирует на то, что ему сказали.
Что такое NPCTalk и какую задачу он решает
NPCTalk — это мод, который даёт NPC любой игры настоящий голосовой диалог в реальном времени вместо заранее записанных реплик. Задача вечная: игроки годами хотят не выбирать из трёх кнопок, а говорить персонажу свободным текстом и получать ответ в образе.
Как это устроено по слоям:
- Слух. Транскрипция речи игрока на NVIDIA Nemotron ASR — модель превращает сказанное в текст.
- Мозг. Диалог ведёт Qwen 3.8 27B — она держит характер персонажа и решает, как он отреагирует.
- Голос. Клонированные голоса на Fish Audio Drama 3 — каждый NPC звучит по-своему.
- Железо. Всё self-hosted на serverless GPU, без привязки к одному серверу.
Автор утверждает, что собрал все навыки, которым научил Claude в работе над модом, в один репозиторий поверх открытых моделей. То есть это не один сервис, а связка из трёх специализированных моделей, где каждая делает свою часть.
Почему ответ меньше секунды — главное в такой задаче
Скорость решает, воспринимается ли NPC живым: пауза дольше пары секунд ломает иллюзию разговора. Заявленный результат — ответ меньше 1 секунды от реплики игрока до озвученного ответа персонажа в GTA V.
Чтобы уложиться в это время, пайплайн строят последовательно и максимально коротко: ASR → LLM → синтез голоса. Каждый этап — отдельная модель, и общая задержка складывается из трёх. Отсюда практические требования:
- Модели держат на GPU рядом, чтобы не гонять данные по сети между этапами.
- Диалоговая модель должна быть достаточно быстрой — 27B параметров здесь потолок, который ещё реально держать в реальном времени.
- Синтез голоса запускается сразу, не дожидаясь полного текста, если архитектура это позволяет.
Если планируете хостить модели локально, заранее посчитайте память: сколько нужно VRAM под модель такого размера, разбирали в материале Сколько VRAM нужно для локальной LLM.
Кому это нужно и чем отличается от обычных модов на диалоги
Это нужно тем, кто делает моды, игры и интерактивные сцены, где персонаж должен отвечать на свободную речь, а не на заготовленные фразы. Обычный мод на диалоги — это дерево заранее написанных реплик: игрок выбирает вариант, NPC выдаёт записанную озвучку. NPCTalk меняет саму модель: ответ генерируется на ходу, голос клонируется под конкретного персонажа, реакция зависит от того, что именно сказал игрок.
Ключевые отличия:
- Свободный ввод вместо меню. Игрок говорит текстом, а не жмёт кнопку.
- Голос под персонажа. Клонирование на Fish Audio Drama 3, а не общий синтезатор на всех.
- Реакция на смысл. Диалоговая модель учитывает сказанное и действует в рамках характера.
- Открытые модели. Пайплайн не завязан на один закрытый API, его можно поднять на своём сервере.
Как собрать такой пайплайн: шаги
Собрать говорящего NPC можно по той же схеме из трёх моделей — ниже порядок, в котором это делается. Конкретные команды установки зависят от репозитория, но логика шагов одна.
- Транскрипция. Поднимите NVIDIA Nemotron ASR и проверьте, что речь игрока распознаётся в текст с приемлемой задержкой.
- Диалог. Запустите Qwen 3.8 27B и задайте системный промт с характером персонажа: кто он, как говорит, что знает. Без этого модель отвечает «в среднем», а не в образе — почему это критично, разбирали в статье Системный промт: что это и зачем нужно ИИ-агенту.
- Голос. Подключите Fish Audio Drama 3 и привяжите к каждому NPC свой клонированный голос.
- Сборка. Соедините три этапа в одну цепочку ASR → LLM → синтез и замерьте полную задержку.
- Хостинг. Разверните всё на GPU-сервере, чтобы этапы не разъезжались по сети.
- Игра. Подключите пайплайн к игре через мод и проверьте на нескольких NPC с разными характерами.
Что может пойти не так
Основные риски — задержка и характер персонажа. Если хотя бы один этап тормозит, иллюзия живого разговора рассыпается; если в системном промте нет чёткого образа, NPC начинает отвечать одинаково и вне роли.
Типичные проблемы:
- Суммарная задержка. Три модели подряд легко выходят за секунду, если хоть одна работает на слабом железе.
- Потеря характера. Диалоговая модель без жёсткого промта уходит в общий вежливый тон.
- Голос не тот. Клонирование на неподходящих сэмплах даёт чужой тембр вместо голоса персонажа.
- Память GPU. 27B-модель плюс ASR плюс синтез — это заметный объём VRAM, его надо считать заранее.
Частые вопросы
На каких моделях работает NPCTalk? На трёх открытых: NVIDIA Nemotron ASR для транскрипции, Qwen 3.8 27B для диалога и Fish Audio Drama 3 для клонированных голосов. Всё self-hosted на serverless GPU.
Насколько быстро NPC отвечает? По заявлению автора — меньше 1 секунды от реплики игрока до озвученного ответа, проверено на NPC в GTA V.
Можно ли сделать такое без закрытых API? Да, весь пайплайн построен на открытых моделях, которые поднимаются на своём GPU-сервере.
Больше разборов по ИИ и автоматизации — в канале: @il_chum