Как сделать говорящих NPC с ИИ: разбор NPCTalk
Как сделать говорящих NPC с ИИ: разбор NPCTalk

Как сделать говорящих NPC с ИИ: разбор NPCTalk

Сделать говорящих 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 → синтез голоса. Каждый этап — отдельная модель, и общая задержка складывается из трёх. Отсюда практические требования:

  1. Модели держат на GPU рядом, чтобы не гонять данные по сети между этапами.
  2. Диалоговая модель должна быть достаточно быстрой — 27B параметров здесь потолок, который ещё реально держать в реальном времени.
  3. Синтез голоса запускается сразу, не дожидаясь полного текста, если архитектура это позволяет.

Если планируете хостить модели локально, заранее посчитайте память: сколько нужно VRAM под модель такого размера, разбирали в материале Сколько VRAM нужно для локальной LLM.

Кому это нужно и чем отличается от обычных модов на диалоги

Это нужно тем, кто делает моды, игры и интерактивные сцены, где персонаж должен отвечать на свободную речь, а не на заготовленные фразы. Обычный мод на диалоги — это дерево заранее написанных реплик: игрок выбирает вариант, NPC выдаёт записанную озвучку. NPCTalk меняет саму модель: ответ генерируется на ходу, голос клонируется под конкретного персонажа, реакция зависит от того, что именно сказал игрок.

Ключевые отличия:

  • Свободный ввод вместо меню. Игрок говорит текстом, а не жмёт кнопку.
  • Голос под персонажа. Клонирование на Fish Audio Drama 3, а не общий синтезатор на всех.
  • Реакция на смысл. Диалоговая модель учитывает сказанное и действует в рамках характера.
  • Открытые модели. Пайплайн не завязан на один закрытый API, его можно поднять на своём сервере.
Больше разборов по ИИ и автоматизации — в канале @il_chum

Как собрать такой пайплайн: шаги

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

  1. Транскрипция. Поднимите NVIDIA Nemotron ASR и проверьте, что речь игрока распознаётся в текст с приемлемой задержкой.
  2. Диалог. Запустите Qwen 3.8 27B и задайте системный промт с характером персонажа: кто он, как говорит, что знает. Без этого модель отвечает «в среднем», а не в образе — почему это критично, разбирали в статье Системный промт: что это и зачем нужно ИИ-агенту.
  3. Голос. Подключите Fish Audio Drama 3 и привяжите к каждому NPC свой клонированный голос.
  4. Сборка. Соедините три этапа в одну цепочку ASR → LLM → синтез и замерьте полную задержку.
  5. Хостинг. Разверните всё на GPU-сервере, чтобы этапы не разъезжались по сети.
  6. Игра. Подключите пайплайн к игре через мод и проверьте на нескольких 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