Демонстрационные проекты
Чтобы помочь вам быстро начать работу с Runtime MetaHuman Lip Sync, доступны два готовых к использованию демонстрационных проекта. Оба созданы на Unreal Engine 5.6+, являются Blueprint-only и работают кроссплатформенно на Windows, Mac, Linux, iOS, Android и платформах на базе Android (включая Meta Quest).
Доступные демонстрационные проекты
- Интерактивный NPC с ИИ / Интерактивный аватар
- Базовое демо синхронизации губ
Полный рабочий процесс ИИ-аватара для разговоров, объединяющий распознавание речи, ИИ-чат-бота (LLM), синтез речи и воспроизведение аудио с синхронизацией губ в реальном времени — всё это работает вместе в одном проекте. Подходит для широкого спектра сценариев использования, включая игры, интерактивные киоски, виртуальное производство, музейные инсталляции, цифровых ассистентов и тренировочные симуляции.
Обзор конвейера
🎤 Microphone → Speech Recognition → 💬 LLM Chatbot → 🔊 Text-to-Speech → 👄 Lip Sync + Playback
Когда LLM работает в режиме потоковой передачи, его вывод разбивается на предложения и отправляется в TTS по мере завершения каждого предложения, а не после получения полного ответа, чтобы минимизировать задержку.
TTS и липсинк работают по одному и тому же принципу: при включенном режиме потоковой передачи аудио обрабатывается и анимируется порциями по мере поступления, а не после ожидания полного клипа.
Видео
Быстрый предпросмотр (~30 сек)
Краткая демонстрация работы демо-проекта.
Полное пошаговое руководство
Подробное пошаговое руководство, охватывающее настройку, конфигурацию и полный конвейер диалогового взаимодействия.
Загрузки
Обязательные и опциональные плагины
Демонстрационный проект модульный — вам нужны только плагины для тех провайдеров, которые вы хотите использовать.
| Плагин | Назначение | Обязательно? |
|---|---|---|
| Runtime MetaHuman Lip Sync | Анимация синхронизации губ | ✅ Всегда |
| Runtime Audio Importer | Захват и обработка аудио | ✅ Всегда |
| Runtime Speech Recognizer | Офлайн-распознавание речи (whisper.cpp) | ✅ Всегда |
| Runtime AI Chatbot Integrator | Внешние LLM (OpenAI, Claude, DeepSeek, Gemini, Grok, Ollama) и/или внешний TTS (OpenAI, ElevenLabs) | 🔶 Необязательно |
| Runtime Local LLM | Локальный вывод LLM через llama.cpp (Llama, Mistral, Gemma и др., модели GGUF) | 🔶 Необязательно |
| Runtime Text To Speech | Локальный TTS через Piper и Kokoro | 🔶 Необязательно |
Хотя каждый из плагинов выше по отдельности необязателен, для работы демо вам понадобится как минимум один LLM-провайдер и как минимум один TTS-провайдер. Комбинируйте их свободно (например, локальный LLM + ElevenLabs TTS или OpenAI LLM + локальный TTS).
Модульная архитектура
В папке Content вы найдёте папку Modules, которая содержит три подпапки:
Content/
└── Modules/
├── RuntimeAIChatbotIntegrator/ ← External LLMs and/or external TTS
├── RuntimeLocalLLM/ ← Local LLM via llama.cpp
└── RuntimeTextToSpeech/ ← Local TTS via Piper/Kokoro
Если вы не приобрели один (или несколько) дополнительных плагинов, просто удалите соответствующие папки. Базовые ассеты демо-проекта (экземпляр игры, виджеты и т. д.) не ссылаются напрямую на эти модули, поэтому их удаление не вызовет ошибок ссылок на ассеты. Интерфейс конфигурации автоматически скроет любого провайдера, чья папка отсутствует.
Эта модульность применима только к провайдерам LLM и TTS. Распознавание речи (Runtime Speech Recognizer) и Липсинк (Runtime MetaHuman Lip Sync) являются частью базового демонстрационного проекта и всегда обязательны.

При первом запуске Unreal может спросить, нужно ли отключить отсутствующие дополнительные плагины — нажмите Да. Убедитесь, что вы также удалили соответствующую папку Content/Modules/ (см. выше).
Встроенные плагины-расширения
Расширения Silero VAD, WebRTC AEC3 и стандартного Lip Sync (нажмите, чтобы развернуть)
Исходная версия демо поставляется с тремя бесплатными плагинами расширения, предустановленными в её папке Plugins/: RuntimeAudioImporterSileroVAD (нейронный VAD), RuntimeAudioImporterWebRTCAEC3 (подавление эха) и RuntimeMetaHumanLipSync_Standard (стандартная модель липсинка).
Встроенные бинарные файлы предварительно собраны для UE 5.6. Для UE 5.7 / 5.8 либо соберите их из исходного кода (см. документацию каждого расширения), либо используйте готовые бинарные файлы: UE 5.7 · UE 5.8. Для установки: удалите три существующие папки из Plugins/, затем распакуйте содержимое архива в Plugins/ на их место.
Все три опциональны — если они вам не нужны, просто удалите их папки из Plugins/ перед запуском.
Макет демонстрационного проекта
Пользовательский интерфейс, показанный ниже, полностью создан с помощью UMG (Unreal Motion Graphics) и предназначен исключительно для демонстрации конвейера — распознавание речи → LLM → TTS → синхронизация губ. Вы можете свободно изменить стиль или заменить его, чтобы он соответствовал визуальному дизайну вашего проекта, схеме управления или платформе (VR/AR, мобильные устройства, консоли, киоски и т. д.). Если какие-то виджеты не нужны в вашем сценарии использования, вы также можете просто скрыть их (например, установить их видимость в значение Collapsed или Hidden).

| Area | Что здесь находится |
|---|---|
| Центр | Персонаж MetaHuman. |
| Левая сторона | Четыре кнопки конфигурации (Распознавание речи, AI-чатбот, Синтез речи, Анимации), подробно описанные ниже. |
| Центр внизу | Кнопка Начать запись. Нажмите её, чтобы начать голосовой разговор: ваш микрофон захватывается, речь распознаётся, отправляется в LLM, ответ синтезируется через TTS и воспроизводится с синхронизацией губ, полностью без использования рук. |
| Справа по центру | Виджет истории разговора, показывающий весь диалог между вами и ИИ (сообщения и пользователя, и ассистента). Он также включает поле ввода текста, позволяющее отправлять сообщения напрямую без распознавания речи — это удобно для тестирования, для доступности или когда микрофон недоступен. |
Вы можете свободно смешивать оба режима ввода в одном сеансе — произносить одни сообщения, а вводить другие.
Если синхронизация губ всё больше отстаёт от аудио по мере тестирования (а не просто фиксированная задержка), см. раздел Размер обрабатываемого фрагмента в разделе Настройка анимаций ниже.
Кнопки конфигурации
Четыре кнопки конфигурации слева открывают отдельные панели для каждой части конвейера:
1. Настройте распознавание речи
Настройте, как захватывается и транскрибируется голос пользователя:
- Выберите язык
- Настройте параметры распознавания речи (настройки модели Whisper)
- Настройте AEC (подавление акустического эха)
- Настройте VAD (определение голосовой активности)

2. Настройте AI-чатбот
Выберите вашего провайдера LLM и настройте его:
- Выберите провайдера (Runtime AI Chatbot Integrator или Runtime Local LLM)
- Выберите режим: Обычный или Потоковый (зависит от провайдера; потоковый режим обеспечивает передачу TTS по предложениям, см. Обзор конвейера)
- Для внешних провайдеров: токен авторизации, имя модели и т. д.
- Для локальной LLM: выберите модель GGUF, задайте размер контекста и другие параметры вывода. Вы также можете загрузить свою собственную модель GGUF во время выполнения прямо из демо-версии (например, по URL) и использовать её немедленно без пересборки проекта.
Комбобокс провайдера показывает только тех провайдеров, чья папка модуля плагина присутствует в Content/Modules/.


3. Настройте Text To Speech
Выберите вашего TTS-провайдера и настройте голоса/модели:
- Выберите провайдера (Runtime AI Chatbot Integrator для OpenAI/ElevenLabs или Runtime Text To Speech для локальных Piper/Kokoro)
- Выберите режим: обычный или потоковый (определяет, возвращается ли аудио сразу целиком или по мере синтеза)
- Выберите голос/модель
- Настройте параметры, специфичные для провайдера


4. Настройка анимаций
Управляйте визуальными эффектами вашего AI-аватара:
- Выберите одного из 3 предзагруженных персонажей MetaHuman (Aera, Ada, Orlando)
- Выберите модель липсинка (Standard или Realistic)
- Выберите тип модели липсинка — Highly Optimized, Semi-Optimized или Original (см. Тип модели)
- Настройте Processing Chunk Size — определяет, как часто выполняется инференс липсинка (см. Processing Chunk Size)
- Если синхронизация губ со временем всё больше отстаёт от аудио при нагрузке на процессор, увеличьте это значение до 480 или 640.
- Выберите анимацию бездействия для воспроизведения на MetaHuman во время разговора.

Предварительная настройка демо-проекта в редакторе
При работе с исходной версией вы можете заранее заполнить значения по умолчанию прямо в редакторе, чтобы не вводить их заново при каждом запуске:
| What | Где |
|---|---|
| Общие настройки (модель липсинка, анимация бездействия, класс персонажа, распознавание речи и т. д.) | Content/LipSyncSTSGameInstance |
| Внешний LLM / Внешний TTS — настройки (Runtime AI Chatbot Integrator) | Content/Modules/RuntimeAIChatbotIntegrator/RuntimeAIChatbotIntegrator_Provider |
| Локальный LLM — настройки (Runtime Local LLM) | Content/Modules/RuntimeLocalLLM/RuntimeLocalLLM_Provider |
| Локальный TTS — настройки (Runtime Text To Speech) | Content/Modules/RuntimeTextToSpeech/RuntimeTextToSpeech_Provider |
Кроссплатформенные заметки
Все плагины, используемые в демо, поддерживают Windows, Mac, Linux, iOS, Android и платформы на базе Android (включая Meta Quest), поэтому демо-проект также работает на всех этих системах. Это делает его подходящим для развертывания в самых разных средах — от игр и настольных киосков до мобильных приложений, автономных VR-гарнитур и систем виртуального продакшена на съемочной площадке.
Для более слабых устройств (мобильных, автономных VR) вы можете:
- Используйте стандартную модель синхронизации губ вместо реалистичной — см. сравнение моделей
- Переключитесь на высокооптимизированный тип модели
- Увеличьте размер обрабатываемого фрагмента, чтобы снизить нагрузку на ЦП
- Выбирайте модели LLM / TTS меньшего размера
См. Конфигурация для конкретных платформ для дополнительных шагов настройки на Android, iOS, Mac и Linux.
Поддержка Pixel Streaming
Развертывание демо на Pixel Streaming (нажмите, чтобы развернуть)
Демонстрационный проект AI Conversational также работает в среде Pixel Streaming, позволяя транслировать аватара MetaHuman удаленному клиенту (например, веб-браузеру), одновременно захватывая аудио с микрофона пользователя на стороне клиента. Для этого требуется лишь одно изменение в демо-проекте.
1. Установите расширение Pixel Streaming для Runtime Audio Importer
Плагин Runtime Audio Importer предоставляет бесплатный плагин-расширение, который позволяет захватывать аудио с клиента Pixel Streaming. В зависимости от того, какую версию инфраструктуры Pixel Streaming вы используете, установите одну из следующих:
- Pixel Streaming расширение (для оригинального плагина Pixel Streaming), или
- Pixel Streaming 2 расширение (для более нового плагина Pixel Streaming 2)
Ссылки для скачивания и шаги по установке доступны здесь: Pixel Streaming Audio Capture — установка плагина расширения.
2. Замените узел захватываемой звуковой волны в LipSyncSTSGameInstance
После установки плагина расширения:
- В Content Browser перейдите в
/All/Gameи откройте ассетLipSyncSTSGameInstance. - Переключитесь на Event Graph.
- Найдите Event Init и проследуйте по потоку выполнения, пока не найдёте пару узлов:
Create Capturable Sound Wave→Set Capturable Sound Wave. - Замените вызов
Create Capturable Sound WaveнаCreate Pixel Streaming Capturable Sound WaveилиCreate Pixel Streaming 2 Capturable Sound Wave— в зависимости от того, какую версию инфраструктуры Pixel Streaming вы используете. - Подключите его выход к тому же узлу
Set Capturable Sound Wave.
После этого проект готов к развертыванию на Pixel Streaming — распознавание речи, LLM, TTS и липсинк будут работать как и раньше, но с захватом аудио с удаленного клиента вместо локального микрофона.
Приведение собственного персонажа
Демонстрационный проект поставляется с тремя образцами персонажей MetaHuman (Aera, Ada, Orlando), но вы можете импортировать собственного MetaHuman и использовать его в демо.
📺 Видеоурок: Добавление пользовательского персонажа MetaHuman в демонстрационный проект
Сам плагин Runtime MetaHuman Lip Sync поддерживает множество других систем персонажей помимо MetaHuman (персонажи на основе ARKit, Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe и т. д. — см. Руководство по настройке пользовательских персонажей). Независимо от того, создаете ли вы игрового NPC, виртуального ведущего, сотрудника киоска или цифрового человека для виртуального продакшена, плагин адаптируется к вашему конвейеру персонажей.
Сфокусированный демонстрационный проект, демонстрирующий функцию липсинка на различных аудиоисточниках. Сам липсинк работает с любым потоковым аудиовходом, на любом языке, и обрабатывает его фрагмент за фрагментом в реальном времени.
Популярное видео
Загрузки
Что включено
Эта демонстрация показывает базовые рабочие процессы синхронизации губ:
- Микрофон (в реальном времени) — синхронизация губ вживую, пока вы говорите
- Микрофон (воспроизведение) — сначала запись, затем воспроизведение с синхронизацией губ
- Text-to-Speech (локальный) — синхронизация губ на основе локальной языковой модели
- Text-to-Speech (внешний) — синхронизация губ с использованием голосов OpenAI или ElevenLabs (Runtime AI Chatbot Integrator также поддерживает Google Cloud TTS и Azure TTS и может быть дополнительно настроен — сама синхронизация губ работает с любым потоковым аудиоисточником)
- Аудиофайл — синхронизация губ, созданная из импортированного аудиофайла
Обязательные и опциональные плагины
| Плагин | Назначение | Обязательно? |
|---|---|---|
| Runtime MetaHuman Lip Sync | Анимация синхронизации губ | ✅ Обязательно |
| Runtime Audio Importer | Импорт и захват аудио | ✅ Обязательно |
| Runtime Text To Speech | Локальный TTS для демо-сцены TTS | 🔶 Необязательно |
| Runtime AI Chatbot Integrator | Внешние TTS-провайдеры (OpenAI, ElevenLabs) | 🔶 Необязательно |
Встроенные плагины расширений
Стандартное расширение синхронизации губ (нажмите, чтобы развернуть)
Исходная версия поставляется с предустановленным расширением RuntimeMetaHumanLipSync_Standard в папке Plugins/, которое добавляет поддержку стандартной модели липсинка. Бинарные файлы предварительно собраны для UE 5.6; для UE 5.7 / 5.8 используйте предварительно собранные архивы (UE 5.7 · UE 5.8) или соберите из исходного кода — для установки удалите существующую папку из Plugins/ и распакуйте содержимое архива на её место. Удалите папку без замены, если вам не нужна стандартная модель.
Нужна помощь?
Если у вас возникнут какие-либо проблемы при настройке или запуске демонстрационных проектов, не стесняйтесь обращаться:
Для запросов на индивидуальную разработку (например, расширение демо-проекта собственной логикой, адаптация под конкретную платформу или пайплайн персонажей) обращайтесь по адресу [email protected].