跳至主要内容

示範專案

為了協助您快速上手 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 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透過 llama.cpp 進行本機 LLM 推論(Llama、Mistral、Gemma 等 GGUF 模型)🔶 選用
Runtime Text To Speech透過 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

若您未取得其中一個(或多個)選用外掛,只需刪除對應的資料夾即可。示範專案的基本資產(遊戲實例、Widget 等)不會直接參照這些模組,因此刪除它們不會造成資產參照錯誤。設定介面會自動隱藏任何缺少資料夾的提供者。

備註

此模組化僅適用於 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、行動裝置、主機、資訊站等)。如果某些小工具在您的使用情境中不需要,您也可以直接將它們隱藏(例如將其可見性設為 CollapsedHidden)。

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 基礎架構版本,請安裝下列其中一項:

下載連結與安裝步驟可在此處取得: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]