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

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

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

Доступные демо-проекты

Полный рабочий процесс разговорного AI-аватара, объединяющий распознавание речи, AI-чат-бота (LLM), синтез речи и воспроизведение аудио с синхронизацией губ в реальном времени — все работает вместе в одном проекте. Подходит для широкого круга сценариев использования, включая игры, интерактивные киоски, виртуальное производство, музейные инсталляции, цифровые ассистенты и тренировочные симуляции.

Обзор пайплайна

🎤 Microphone → Speech Recognition → 💬 LLM Chatbot → 🔊 Text-to-Speech → 👄 Lip Sync + Playback

Когда LLM переведён в потоковый режим, его вывод разбивается на предложения и отправляется в TTS по мере завершения каждого из них, а не после получения полного ответа, чтобы минимизировать задержку.

Видео

Быстрый просмотр (~30 сек)

Краткий показ демо в действии.

Полное прохождение

Подробное пошаговое руководство, охватывающее установку, настройку и полный диалоговый конвейер.

Загрузки

Обязательные и необязательные плагины

Демонстрационный проект модульный — вам нужны только плагины для тех провайдеров, которые вы хотите использовать.

ПлагинЦельОбязательно?
Runtime MetaHuman Lip SyncЛипсинк-анимация✅ Всегда
Runtime Audio ImporterЗахват и обработка аудио✅ Всегда
Runtime Speech RecognizerОфлайн-распознавание речи (whisper.cpp)✅ Всегда
Runtime AI Chatbot IntegratorВнешние LLMs (OpenAI, Claude, DeepSeek, Gemini, Grok, Ollama) и/или Внешние TTS (OpenAI, ElevenLabs)🔶 Необязательно
Runtime Local LLMЛокальный инференс LLM через llama.cpp (Llama, Mistral, Gemma и т.д., модели GGUF)🔶 Необязательно
Синтез речи в рантаймеЛокальный 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/ перед запуском.

Структура демонстрационного проекта

UI предназначен для демонстрационных целей.

Пользовательский интерфейс, показанный ниже, полностью создан с помощью UMG (Unreal Motion Graphics) и предназначен исключительно для демонстрации конвейера — распознавание речи → LLM → TTS → синхронизация губ. Вы можете свободно изменить стиль или заменить его, чтобы соответствовать визуальному дизайну вашего проекта, схеме управления или платформе (VR/AR, мобильные устройства, консоли, киоски и т. д.). Если какие-то виджеты не нужны в вашем сценарии, вы также можете просто скрыть их (например, установив для их видимости значение Collapsed или Hidden).

Annotated overview of the demo project main screen

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

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

подсказка

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

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

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

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

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

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

Speech recognition configuration screen

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

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

  • Выберите провайдера (Runtime AI Chatbot Integrator или Runtime Local LLM)
  • Выберите режим: Regular или Streaming (зависит от провайдера; Streaming обеспечивает пофразовую передачу 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. Настройка преобразования текста в речь

Выберите поставщика 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)
  • Выберите модель липсинка (Стандартная или Реалистичная)
  • Выберите тип модели липсинка — Высокооптимизированная, Полуоптимизированная или Оригинальная (см. Тип модели)
  • Настройте размер обрабатываемого фрагмента — управляет тем, как часто выполняется инференс липсинка (см. Размер обрабатываемого фрагмента)
    • Если синхронизация губ со временем всё больше отстаёт от аудио при нагрузке на процессор, увеличьте это значение до 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. В браузере контента перейдите в /All/Game и откройте ассет LipSyncSTSGameInstance.
  2. Переключитесь на граф событий.
  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 поддерживает множество других систем персонажей, помимо MetaHumans (персонажи на основе ARKit, Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe и т. д. — см. Руководство по настройке пользовательских персонажей). Создаёте ли вы игрового NPC, виртуального ведущего, сотрудника киоска или цифрового человека для виртуального продакшена — плагин адаптируется к вашему пайплайну персонажей.

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

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

Join our Discord
online · support

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