跳到主要内容

演示项目

为了帮助您快速上手 Runtime MetaHuman Lip Sync,我们提供了两个开箱即用的演示项目。这两个项目均基于 Unreal Engine 5.6+ 构建,采用 纯蓝图,并可在 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通过 llama.cpp 进行本地 LLM 推理(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

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

备注

这种模块化仅适用于 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(Unreal Motion Graphics)构建,其目的纯粹在于演示流程——语音识别 → 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 提供商并配置语音/模型:

  • 选择 提供商(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)之间选择
  • 选择 口型同步模型(标准或写实)
  • 选择 口型同步模型类型 - 高度优化、半优化或原始(参见 模型类型
  • 调整 处理块大小 - 控制口型同步推理的运行频率(参见 处理块大小
    • 如果口型同步在 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 设置(运行时文本转语音)Content/Modules/RuntimeTextToSpeech/RuntimeTextToSpeech_Provider

跨平台注意事项

演示所用的所有插件都支持 Windows、Mac、Linux、iOS、Android 以及基于 Android 的平台(包括 Meta Quest),因此演示项目也同样适用于所有这些平台。这使得它适合部署在各种环境中——从游戏、桌面自助终端到移动应用、独立 VR 头显,以及现场虚拟制作设置。

对于性能较弱的设备(移动端、独立VR设备),你可能需要:

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

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

Pixel Streaming 支持

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

AI 对话演示项目也可以在 Pixel Streaming 环境中运行,允许你将 MetaHuman 角色流式传输到远程客户端(例如网页浏览器),同时从客户端捕获用户的麦克风音频。只需对演示进行一处更改。

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

Runtime Audio Importer 插件提供了一个免费扩展插件,用于从 Pixel Streaming 客户端捕获音频。根据你正在使用的 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]