跳到主要内容

演示项目

为了帮助您快速上手 Runtime MetaHuman Lip Sync,我们提供了两个可直接使用的演示项目。这两个项目均基于 Unreal Engine 5.6+ 构建,仅使用蓝图(Blueprint),并支持跨平台运行,适用于 Windows、Mac、Linux、iOS、Android 以及基于 Android 的平台(包括 Meta Quest)。

可用的演示项目

一个完整的AI对话虚拟人工作流,将语音识别、AI聊天机器人(LLM)、文本转语音和音频播放与实时口型同步相结合——全部在单个项目中协同运行。适用于广泛的用例场景——包括游戏交互式自助终端虚拟制作博物馆装置数字助手培训模拟

管线概览

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

当LLM设置为流式模式时,其输出会逐句拆分,并在每句完成时发送至TTS,而非等待完整响应,以最大限度减少延迟。

TTS 与口型同步遵循相同原理:启用流式模式后,音频会随到达分块处理并驱动动画,而非等待完整片段生成完毕。

视频

快速预览(约30秒)

演示功能的简短展示。

完整指南

一份详细的指南,涵盖设置、配置以及完整的对话流程。

下载

必需与可选插件

演示项目是模块化的——你只需要为你想要使用的提供商安装相应的插件即可。

插件用途必需?
Runtime MetaHuman 口型同步口型同步动画✅ 始终
Runtime 音频导入器音频捕获与处理✅ 始终
Runtime 语音识别器离线语音识别(whisper.cpp)✅ 始终
Runtime AI 聊天机器人集成器外部 LLM(OpenAI、Claude、DeepSeek、Gemini、Grok、Ollama)和/或外部 TTS(OpenAI、ElevenLabs)🔶 可选
Runtime 本地 LLM通过 llama.cpp 进行本地 LLM 推理(Llama、Mistral、Gemma 等 GGUF 模型)🔶 可选
Runtime 文本转语音通过 Piper 和 Kokoro 实现本地 TTS🔶 可选
可选插件 - 提供商要求

虽然上述每个插件都是可单独选择的,但要让演示正常工作,你至少需要一个 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

如果你没有获取一个(或多个)可选插件,只需删除对应的文件夹。演示项目的基础资产(游戏实例、控件等)不会直接引用这些模块,因此删除它们不会导致资产引用错误。配置界面会自动隐藏任何文件夹缺失的提供者。

备注

这种模块化仅适用于 LLMTTS 提供商。语音识别(Runtime Speech Recognizer)和口型同步(Runtime MetaHuman Lip Sync)是基础演示项目的一部分,并且始终是必需的。

Modules folder structure

注意

首次启动时,Unreal 可能会询问是否禁用任何缺失的可选插件——点击。同时请确保您已删除对应的 Content/Modules/ 文件夹(见上文)。

捆绑扩展插件

Silero VAD、WebRTC AEC3 和标准口型同步扩展(点击展开)

演示的源版本在其 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(虚幻动态图形)构建,其目的纯粹是演示流程——语音识别 → LLM → TTS → 口型同步。你可以自由地重新设计或替换它,以匹配你项目的视觉设计、控制方案或平台(VR/AR、移动端、主机、自助终端等)。如果某些控件在你的使用场景中不需要,你也可以直接隐藏它们(例如,将其可见性设置为折叠隐藏)。

Annotated overview of the demo project main screen

Area这里有什么
中央MetaHuman 角色
左侧四个配置按钮(语音识别、AI 聊天机器人、文本转语音、动画),详见下文。
中央底部一个开始录音按钮。点击它即可开始语音对话:系统会捕获你的麦克风输入、将其转录、发送给 LLM,响应通过 TTS 合成,并配合口型同步播放,全程无需手动操作。
右侧中央一个对话历史小部件,显示你与 AI 之间的完整来回交流(包括用户和助手消息)。它还包含一个文本输入框,让你可以直接输入消息而无需使用语音识别,便于测试、无障碍使用或在没有麦克风时使用。
提示

你可以在同一会话中自由混合使用两种输入模式——有些消息用说的,有些用打的。

提示

如果口型同步在测试时间越长时,与音频的偏差持续增大(不仅仅是固定延迟),请参阅下方配置动画中的处理块大小

配置按钮

左侧的四个配置按钮会为流程的每个部分打开专属面板:

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. 配置文本转语音

选择您的TTS提供商并配置语音/模型:

  • 选择提供商(用于OpenAI/ElevenLabs的Runtime AI Chatbot Integrator,或用于本地Piper/Kokoro的Runtime Text To Speech)
  • 选择模式:常规或流式(控制音频是全部一次性返回还是边合成边返回)
  • 选择声音/模型
  • 调整提供商特定的参数

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)之间选择
  • 选择口型同步模型(标准或逼真)
  • 选择口型同步模型类型——高度优化、半优化或原始(参见模型类型
  • 调整处理块大小——控制口型同步推理的运行频率(参见处理块大小
    • 如果唇形同步在 CPU 负载下随时间推移进一步落后于音频,请将此值增加到 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设备),你可能需要:

  • 使用标准口型同步模型,而非逼真模型——请参阅模型对比
  • 切换到高度优化模型类型
  • 增大处理块大小以降低CPU负载
  • 选择更小的LLM / TTS模型

请参阅平台特定配置,了解在Android、iOS、Mac和Linux上的额外设置步骤。

像素流送支持

在 Pixel Streaming 上部署演示(点击展开)

AI 对话演示项目同样适用于 Pixel Streaming 环境,允许您将 MetaHuman 虚拟形象流式传输到远程客户端(例如网页浏览器),同时从客户端捕获用户的麦克风音频。只需对演示进行一处更改即可。

1. 为 Runtime Audio Importer 安装 Pixel Streaming 扩展。

Runtime Audio Importer 插件提供了一个免费扩展插件,用于从 Pixel Streaming 客户端捕获音频。根据你使用的 Pixel Streaming 基础设施版本,安装以下之一:

下载链接和安装步骤可在此处获取:像素流送音频捕获 - 扩展插件安装

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 WaveCreate 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]