Aller au contenu principal

Projets de démonstration

Pour vous aider à démarrer rapidement avec Runtime MetaHuman Lip Sync, deux projets de démonstration prêts à l'emploi sont disponibles. Les deux sont construits avec Unreal Engine 5.6+, sont exclusivement en Blueprint, et fonctionnent sur plusieurs plateformes : Windows, Mac, Linux, iOS, Android, ainsi que les plateformes basées sur Android (y compris Meta Quest).

Projets de démo disponibles

Un flux de travail complet d’avatar conversationnel IA combinant reconnaissance vocale, chatbot IA (LLM), synthèse vocale et lecture audio avec synchronisation labiale en temps réel – le tout fonctionnant ensemble dans un seul projet. Convient à un large éventail de cas d’utilisation – notamment les jeux, les bornes interactives, la production virtuelle, les installations muséales, les assistants numériques et les simulations de formation.

Aperçu du pipeline

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

Lorsque le LLM est réglé sur le mode de streaming, sa sortie est divisée phrase par phrase et envoyée au TTS dès que chaque phrase est terminée, plutôt que d'attendre la réponse complète, afin de minimiser la latence.

Vidéos

Aperçu rapide (~30 sec)

Un court aperçu de la démo en action.

Guide complet

Un guide détaillé couvrant la mise en place, la configuration et l'ensemble du pipeline conversationnel.

Téléchargements

Plugins requis et facultatifs

Le projet de démonstration est modulaire - vous n'avez besoin que des plugins pour les fournisseurs que vous souhaitez utiliser.

PluginButRequis ?
Runtime MetaHuman Lip SyncAnimation de synchronisation labiale✅ Toujours
Runtime Audio ImporterCapture et traitement audio✅ Toujours
Runtime Speech RecognizerReconnaissance vocale hors ligne (whisper.cpp)✅ Toujours
Runtime AI Chatbot IntegratorLLM externes (OpenAI, Claude, DeepSeek, Gemini, Grok, Ollama) et/ou TTS externes (OpenAI, ElevenLabs)🔶 Optionnel
Runtime Local LLMInférence LLM locale via llama.cpp (Llama, Mistral, Gemma, etc., modèles GGUF)🔶 Optionnel
Runtime Text To SpeechTTS local via Piper et Kokoro🔶 Optionnel
Plugins optionnels - Prérequis du fournisseur

Bien que chaque plugin ci-dessus soit individuellement facultatif, vous avez besoin d'au moins un fournisseur LLM et d'au moins un fournisseur TTS pour que la démo fonctionne. Mélangez et associez librement (par ex. LLM local + TTS ElevenLabs, ou LLM OpenAI + TTS local).

Architecture modulaire

Dans le dossier Content, vous trouverez un dossier Modules qui contient trois sous-dossiers :

Content/
└── Modules/
├── RuntimeAIChatbotIntegrator/ ← External LLMs and/or external TTS
├── RuntimeLocalLLM/ ← Local LLM via llama.cpp
└── RuntimeTextToSpeech/ ← Local TTS via Piper/Kokoro

Si vous n'avez pas acquis un (ou plusieurs) des plugins optionnels, supprimez simplement le(s) dossier(s) correspondant(s). Les ressources de base du projet de démo (game instance, widgets, etc.) ne référencent pas ces modules directement, leur suppression ne provoquera donc pas d'erreurs de référence de ressources. L'interface de configuration masquera automatiquement tout fournisseur dont le dossier est manquant.

remarque

Cette modularité s'applique uniquement aux fournisseurs LLM et TTS. Reconnaissance vocale (Runtime Speech Recognizer) et synchro labiale (Runtime MetaHuman Lip Sync) font partie du projet de démonstration de base et sont toujours requises.

Modules folder structure

attention

Au premier lancement, Unreal peut demander s'il faut désactiver les plugins optionnels manquants - cliquez sur Oui. Assurez-vous également d'avoir supprimé le dossier Content/Modules/ correspondant (voir plus haut).

Plugins d’extension inclus

Silero VAD, WebRTC AEC3 et extensions Standard Lip Sync (cliquer pour développer)

La version source de la démo est livrée avec trois plugins d'extension gratuits pré-inclus dans son dossier Plugins/ : RuntimeAudioImporterSileroVAD (VAD neuronale), RuntimeAudioImporterWebRTCAEC3 (annulation d'écho) et RuntimeMetaHumanLipSync_Standard (modèle Standard de synchronisation labiale).

Les binaires fournis sont précompilés pour UE 5.6. Pour UE 5.7 / 5.8, soit les compiler depuis le code source (voir la documentation de chaque extension), soit utiliser les binaires précompilés : UE 5.7 · UE 5.8. Pour installer : supprimez les trois dossiers existants de Plugins/, puis extrayez le contenu de l'archive dans Plugins/ à leur place.

Les trois sont facultatifs - si vous n'en avez pas besoin, supprimez simplement leurs dossiers de Plugins/ avant de lancer.

Structure du projet de démo

L'UI est à des fins de démonstration.

L'interface utilisateur présentée ci-dessous est entièrement construite avec UMG (Unreal Motion Graphics) et vise uniquement à démontrer le pipeline - reconnaissance vocale → LLM → TTS → synchro labiale. Vous êtes libre de la restyler ou de la remplacer pour l'adapter au design visuel, au schéma de contrôle ou à la plateforme de votre projet (VR/AR, mobile, console, borne, etc.). Si certains widgets ne sont pas nécessaires dans votre cas d'utilisation, vous pouvez simplement les masquer (par exemple, définir leur visibilité sur Collapsed ou Hidden).

Annotated overview of the demo project main screen

AreaQu'y a-t-il
CentreLe personnage MetaHuman.
Côté gaucheQuatre boutons de configuration (Reconnaissance vocale, Chatbot IA, Synthèse vocale, Animations), décrits en détail ci-dessous.
En bas au centreUn bouton Commencer l’enregistrement. Cliquez dessus pour démarrer une conversation vocale : votre microphone est capturé, transcrit, envoyé au LLM, la réponse est synthétisée via TTS, puis lue avec synchronisation labiale, entièrement en mains libres.
Centre droitUn widget d'historique de conversation affichant l'intégralité des échanges entre vous et l'AI (messages de l'utilisateur et de l'assistant). Il comprend également un champ de saisie de texte, afin que vous puissiez saisir des messages directement sans utiliser la reconnaissance vocale, utile pour les tests, pour l'accessibilité ou lorsqu'un microphone n'est pas disponible.
astuce

Vous pouvez combiner librement les deux modes de saisie dans la même session - prononcez certains messages, tapez les autres.

astuce

Si la synchronisation labiale prend de plus en plus de retard sur l'audio à mesure que vous testez (pas seulement un délai fixe), consultez Taille du bloc de traitement sous Configurer les animations ci-dessous.

Boutons de configuration

Les quatre boutons de configuration sur la gauche ouvrent des panneaux dédiés pour chaque partie du pipeline :

1. Configurer la reconnaissance vocale

Configurer la manière dont la voix de l'utilisateur est capturée et transcrite :

  • Sélectionner la langue
  • Ajuster les paramètres de reconnaissance vocale (paramètres du modèle Whisper)
  • Configurer AEC (Annulation d'écho acoustique)
  • Configurer VAD (Détection d'activité vocale)

Speech recognition configuration screen

2. Configurer le chatbot AI

Choisissez votre fournisseur LLM et configurez-le :

  • Sélectionnez fournisseur (Runtime AI Chatbot Integrator ou Runtime Local LLM)
  • Sélectionnez mode : Régulier ou Streaming (selon le fournisseur, Streaming permet le transfert TTS phrase par phrase, voir Aperçu du pipeline)
  • Pour les fournisseurs externes : jeton d'authentification, nom du modèle, etc.
  • Pour LLM local : sélectionnez un modèle GGUF, définissez la taille du contexte et d'autres paramètres d'inférence. Vous pouvez également télécharger votre propre modèle GGUF à l'exécution directement depuis la démo (par exemple via une URL) et l'utiliser immédiatement sans reconstruire le projet.
astuce

La liste déroulante des fournisseurs n'affiche que les fournisseurs dont le dossier de module de plugin est présent dans Content/Modules/.

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

AI chatbot configuration - Runtime Local LLM (local GGUF)

3. Configurer la synthèse vocale

Choisissez votre fournisseur TTS et configurez les voix/modèles :

  • Sélectionnez fournisseur (Runtime AI Chatbot Integrator pour OpenAI/ElevenLabs, ou Runtime Text To Speech pour Piper/Kokoro en local)
  • Sélectionnez mode : Normal ou Streaming (contrôle si l'audio est renvoyé en une seule fois ou au fur et à mesure de sa synthèse)
  • Sélectionnez voix/modèle
  • Ajustez les paramètres spécifiques au fournisseur

TTS configuration - Runtime AI Chatbot Integrator (external TTS)

TTS configuration - Runtime Local Text To Speech (local Piper/Kokoro)

4. Configurer les animations

Contrôlez les visuels de votre avatar IA :

  • Choisissez parmi 3 personnages MetaHuman pré-téléchargés (Aera, Ada, Orlando)
  • Sélectionnez le modèle de synchronisation labiale (Standard ou Réaliste)
  • Sélectionnez le type de modèle de synchronisation labiale - Hautement optimisé, Semi-optimisé ou Original (voir Type de modèle)
  • Ajustez la taille des blocs de traitement - contrôle la fréquence d'exécution de l'inférence de synchronisation labiale (voir Taille des blocs de traitement)
    • Si la synchronisation labiale prend du retard sur l’audio au fil du temps sous charge CPU, augmentez cette valeur à 480 ou 640.
  • Sélectionnez une animation d'attente à jouer sur le MetaHuman pendant la conversation.

Animations configuration screen

Préconfiguration de la démo dans l’éditeur

Lorsque vous travaillez avec la version source, vous pouvez pré-remplir les valeurs par défaut directement dans l'éditeur afin qu'elles n'aient pas besoin d'être ressaisies à chaque exécution :

What
Paramètres généraux (modèle de synchronisation labiale, animation d'inactivité, classe de personnage, reconnaissance vocale, etc.)Content/LipSyncSTSGameInstance
Paramètres LLM externe / TTS externe (Runtime AI Chatbot Integrator)Content/Modules/RuntimeAIChatbotIntegrator/RuntimeAIChatbotIntegrator_Provider
Paramètres du LLM local (Runtime Local LLM)Content/Modules/RuntimeLocalLLM/RuntimeLocalLLM_Provider
Paramètres Local TTS (Synthèse vocale à l'exécution)Content/Modules/RuntimeTextToSpeech/RuntimeTextToSpeech_Provider

Notes multiplateformes

Tous les plugins utilisés par la démo prennent en charge Windows, Mac, Linux, iOS, Android et les plateformes basées sur Android (y compris Meta Quest), donc le projet de démo fonctionne également sur toutes ces plateformes. Cela le rend adapté au déploiement dans une grande variété d'environnements - des jeux et des bornes de bureau aux applications mobiles, aux casques VR autonomes et aux configurations de production virtuelle sur plateau.

Pour les appareils plus faibles (mobile, VR autonome), vous voudrez peut-être :

  • Utilisez le modèle Standard de synchronisation labiale au lieu du modèle Realistic - consultez la comparaison des modèles
  • Passez au type de modèle hautement optimisé
  • Augmentez la taille des blocs de traitement pour réduire la charge du CPU
  • Choisissez des modèles LLM / TTS plus petits

Voir Configuration spécifique à la plateforme pour des étapes de configuration supplémentaires sur Android, iOS, Mac et Linux.

Prise en charge de Pixel Streaming

Déploiement de la démo sur Pixel Streaming (cliquer pour développer)

Le projet de démo AI Conversationnel fonctionne également dans un environnement Pixel Streaming, ce qui vous permet de diffuser l'avatar MetaHuman vers un client distant (par exemple un navigateur web) tout en capturant l'audio du microphone de l'utilisateur côté client. Une seule modification de la démo est requise.

1. Installez l'extension Pixel Streaming pour Runtime Audio Importer.

Le plugin Runtime Audio Importer fournit un plugin d'extension gratuit qui permet de capturer l'audio d'un client Pixel Streaming. Selon la version de l'infrastructure Pixel Streaming que vous utilisez, installez l'un des éléments suivants :

Les liens de téléchargement et les étapes d'installation sont disponibles ici : Capture audio Pixel Streaming - Installation du plugin d'extension.

2. Remplacez le nœud d'onde sonore capturable dans LipSyncSTSGameInstance

Après l'installation du plugin d'extension :

  1. Dans le navigateur de contenu, accédez à /All/Game et ouvrez l'actif LipSyncSTSGameInstance.
  2. Passez au graphe d'événements.
  3. Localisez Event Init et suivez le flux d'exécution jusqu'à ce que vous trouviez la paire de nœuds : Create Capturable Sound WaveSet Capturable Sound Wave.
  4. Remplacez l'appel Create Capturable Sound Wave par Create Pixel Streaming Capturable Sound Wave ou Create Pixel Streaming 2 Capturable Sound Wave, selon la version de l'infrastructure Pixel Streaming que vous ciblez.
  5. Connectez sa sortie au même nœud Set Capturable Sound Wave.

Après cela, le projet est prêt à être déployé sur Pixel Streaming : la reconnaissance vocale, le LLM, la TTS et la synchronisation labiale fonctionneront tous comme avant, mais avec l'audio capturé depuis le client distant au lieu d'un microphone local.

Apporter votre propre personnage

Le projet de démo est fourni avec trois personnages MetaHuman d'exemple (Aera, Ada, Orlando), mais vous pouvez importer votre propre MetaHuman et l'utiliser dans la démo.

📺 Tutoriel vidéo: Ajout d'un personnage MetaHuman personnalisé au projet de démonstration

remarque

Le plugin Runtime MetaHuman Lip Sync lui-même prend en charge de nombreux autres systèmes de personnages au-delà des MetaHumans (personnages basés sur ARKit, Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc. — voir le Guide de configuration de personnage personnalisé). Que vous créiez un PNJ de jeu, un présentateur virtuel, un agent de borne interactive ou un humain numérique pour la production virtuelle, le plugin s'adapte à votre pipeline de personnages.

Besoin d'aide ?

Si vous rencontrez des problèmes lors de la configuration ou de l'exécution des projets de démonstration, n'hésitez pas à nous contacter :

Join our Discord
online · support

Pour les demandes de développement personnalisé (par exemple, étendre la démo avec votre propre logique, l'adapter à une plateforme ou à un pipeline de personnages spécifique), contactez [email protected].