Перейти к основному содержимому

Демонстрационные проекты

Чтобы помочь вам быстро начать работу с Runtime MetaHuman Lip Sync, доступны два готовых к использованию демонстрационных проекта. Оба созданы на Unreal Engine 5.6+, являются Blueprint-only и работают кроссплатформенно на Windows, Mac, Linux, iOS, Android и платформах на базе Android (включая Meta Quest).

Доступные демонстрационные проекты

Полный рабочий процесс ИИ-аватара для разговоров, объединяющий распознавание речи, ИИ-чат-бота (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) являются частью базового демонстрационного проекта и всегда обязательны.

Modules folder structure

warning

При первом запуске 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).

Annotated overview of the demo project main screen

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

Вы можете свободно смешивать оба режима ввода в одном сеансе — произносить одни сообщения, а вводить другие.

подсказка

Если синхронизация губ всё больше отстаёт от аудио по мере тестирования (а не просто фиксированная задержка), см. раздел Размер обрабатываемого фрагмента в разделе Настройка анимаций ниже.

Кнопки конфигурации

Четыре кнопки конфигурации слева открывают отдельные панели для каждой части конвейера:

1. Настройте распознавание речи

Настройте, как захватывается и транскрибируется голос пользователя:

  • Выберите язык
  • Настройте параметры распознавания речи (настройки модели Whisper)
  • Настройте AEC (подавление акустического эха)
  • Настройте VAD (определение голосовой активности)

Speech recognition configuration screen

2. Настройте AI-чатбот

Выберите вашего провайдера LLM и настройте его:

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

Комбобокс провайдера показывает только тех провайдеров, чья папка модуля плагина присутствует в Content/Modules/.

AI chatbot configuration - Runtime AI Chatbot Integrator (external LLM)

AI chatbot configuration - Runtime Local LLM (local GGUF)

3. Настройте Text To Speech

Выберите вашего TTS-провайдера и настройте голоса/модели:

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

TTS configuration - Runtime AI Chatbot Integrator (external TTS)

TTS configuration - Runtime Local Text To Speech (local 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 во время разговора.

Animations configuration screen

Предварительная настройка демо-проекта в редакторе

При работе с исходной версией вы можете заранее заполнить значения по умолчанию прямо в редакторе, чтобы не вводить их заново при каждом запуске:

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 Audio Capture — установка плагина расширения.

2. Замените узел захватываемой звуковой волны в LipSyncSTSGameInstance

После установки плагина расширения:

  1. В Content Browser перейдите в /All/Game и откройте ассет LipSyncSTSGameInstance.
  2. Переключитесь на Event Graph.
  3. Найдите Event Init и проследуйте по потоку выполнения, пока не найдёте пару узлов: Create Capturable Sound WaveSet Capturable Sound Wave.
  4. Замените вызов Create Capturable Sound Wave на Create Pixel Streaming Capturable Sound Wave или Create Pixel Streaming 2 Capturable Sound Wave — в зависимости от того, какую версию инфраструктуры Pixel Streaming вы используете.
  5. Подключите его выход к тому же узлу 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, виртуального ведущего, сотрудника киоска или цифрового человека для виртуального продакшена, плагин адаптируется к вашему конвейеру персонажей.

Нужна помощь?

Если у вас возникнут какие-либо проблемы при настройке или запуске демонстрационных проектов, не стесняйтесь обращаться:

Join our Discord
online · support

Для запросов на индивидуальную разработку (например, расширение демо-проекта собственной логикой, адаптация под конкретную платформу или пайплайн персонажей) обращайтесь по адресу [email protected].