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. Tous deux sont conçus avec Unreal Engine 5.6+, sont uniquement en Blueprint et fonctionnent sur plusieurs plateformes : Windows, Mac, Linux, iOS, Android et les plateformes basées sur Android (y compris Meta Quest).
Projets de démonstration disponibles
- NPC conversationnel IA / Avatar interactif
- Démo de base de synchronisation labiale
Un flux de travail complet d’avatar conversationnel IA combinant la reconnaissance vocale, un chatbot IA (LLM), la synthèse vocale et la lecture audio avec synchronisation labiale en temps réel - le tout fonctionnant ensemble dans un seul projet. Adapté à 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 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.
La TTS et la synchronisation labiale suivent le même principe : avec le mode Streaming activé, l'audio est traité et animé par segments au fur et à mesure qu'il arrive, plutôt que d'attendre le clip complet.
Vidéos
Aperçu rapide (~30 sec)
Une courte démonstration du projet en action.
Parcours complet
Un guide détaillé couvrant l’installation, 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.
| Plugin | Fonction | Requis ? |
|---|---|---|
| Runtime MetaHuman Lip Sync | Animation de synchronisation labiale | ✅ Toujours |
| Runtime Audio Importer | Capture et traitement audio | ✅ Toujours |
| Runtime Speech Recognizer | Reconnaissance vocale hors ligne (whisper.cpp) | ✅ Toujours |
| Runtime AI Chatbot Integrator | LLM externes (OpenAI, Claude, DeepSeek, Gemini, Grok, Ollama) et/ou TTS externes (OpenAI, ElevenLabs) | 🔶 Facultatif |
| Runtime Local LLM | Inférence LLM locale via llama.cpp (Llama, Mistral, Gemma, etc., modèles GGUF) | 🔶 Facultatif |
| Runtime Text To Speech | TTS local via Piper et Kokoro | 🔶 Facultatif |
Bien que chaque plugin ci-dessus soit individuellement optionnel, 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 exemple, 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 assets de base du projet de démonstration (instance de jeu, widgets, etc.) ne référencent pas directement ces modules, donc les supprimer ne provoquera pas d'erreurs de référence d'assets. L'interface de configuration masquera automatiquement tout fournisseur dont le dossier est manquant.
Cette modularité s'applique uniquement aux fournisseurs LLM et TTS. La reconnaissance vocale (Runtime Speech Recognizer) et la synchro labiale (Runtime MetaHuman Lip Sync) font partie du projet de démonstration de base et sont toujours requises.

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 ci-dessus).
Extensions de plugins groupées
Extensions Silero VAD, WebRTC AEC3 et 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 neuronal), RuntimeAudioImporterWebRTCAEC3 (annulation d'écho), et RuntimeMetaHumanLipSync_Standard (modèle de synchronisation labiale Standard).
Les binaires fournis sont précompilés pour UE 5.6. Pour UE 5.7 / 5.8, soit compilez-les à partir des sources (voir la documentation de chaque extension), soit utilisez 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.
Disposition du projet 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 → synchronisation labiale. Vous êtes libre de la redessiner 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 également simplement les masquer (par exemple, définir leur visibilité sur Collapsed ou Hidden).

| Area | Ce qu'il y a |
|---|---|
| Centre | Le personnage MetaHuman. |
| Côté gauche | Quatre boutons de configuration (Reconnaissance vocale, Chatbot IA, Synthèse vocale, Animations), décrits en détail ci-dessous. |
| Centre en bas | Un bouton Démarrer l'enregistrement. Cliquez dessus pour lancer une conversation vocale : votre microphone est capturé, transcrit, envoyé au LLM, la réponse est synthétisée via la TTS, puis lue avec synchronisation labiale, entièrement mains libres. |
| Centre droit | Un widget d'historique de conversation affichant l'intégralité des échanges entre vous et l'IA (messages de l'utilisateur et de l'assistant). Il comprend également un champ de saisie de texte, vous permettant de saisir des messages directement sans utiliser la reconnaissance vocale, utile pour les tests, pour l'accessibilité ou lorsqu'un microphone n'est pas disponible. |
Vous pouvez mélanger librement les deux modes de saisie dans la même session — prononcez certains messages, tapez les autres.
Si la synchronisation labiale continue de décaler de plus en plus derrière l’audio plus 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
Configurez comment 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 l’AEC (annulation d’écho acoustique)
- Configurer la VAD (détection d’activité vocale)

2. Configurer le chatbot IA
Choisissez votre fournisseur de LLM et configurez-le :
- Sélectionnez le fournisseur (Runtime AI Chatbot Integrator ou Runtime Local LLM)
- Sélectionnez le mode : Régulier ou Streaming (dépend du fournisseur, le Streaming permet le transfert de TTS phrase par phrase, voir Aperçu du pipeline)
- Pour les fournisseurs externes : jeton d'authentification, nom du modèle, etc.
- Pour le 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.
La liste déroulante des fournisseurs n'affiche que les fournisseurs dont le dossier de module de plugin est présent dans Content/Modules/.


3. Configurer la synthèse vocale
Choisissez votre fournisseur TTS et configurez les voix/modèles :
- Sélectionnez le fournisseur (Runtime AI Chatbot Integrator pour OpenAI/ElevenLabs, ou Runtime Text To Speech pour Piper/Kokoro local)
- Sélectionnez le mode : Régulier ou Streaming (contrôle si l'audio est renvoyé d'un coup ou au fur et à mesure de sa synthèse)
- Sélectionnez la voix/le modèle
- Ajustez les paramètres spécifiques au fournisseur


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 lip sync (Standard ou Realistic)
- Sélectionnez le type de modèle de lip sync - Hautement optimisé, Semi-optimisé ou Original (voir Type de modèle)
- Ajustez la taille du bloc de traitement - contrôle la fréquence d'inférence du lip sync (voir Taille du bloc de traitement)
- Si la synchronisation labiale prend de plus en plus de retard sur l’audio au fil du temps sous charge CPU, augmentez cette valeur à 480 ou 640.
- Sélectionnez une animation d’inactivité à jouer sur le MetaHuman pendant la conversation.

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 de ne pas avoir à les ressaisir à chaque exécution :
| What | Où |
|---|---|
| Paramètres généraux (modèle de lip sync, 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 LLM local (Runtime Local LLM) | Content/Modules/RuntimeLocalLLM/RuntimeLocalLLM_Provider |
| Paramètres TTS local (Runtime Text To Speech) | 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émonstration fonctionne également sur toutes ces plateformes. Cela le rend adapté au déploiement dans une grande variété d'environnements - des jeux et bornes de bureau aux applications mobiles, casques VR autonomes et configurations de production virtuelle sur plateau.
Pour les appareils moins puissants (mobile, VR autonome), vous voudrez peut-être :
- Utilisez le modèle de synchronisation labiale standard au lieu du modèle Realistic - voir la comparaison des modèles
- Passez au type de modèle Highly Optimized
- Augmentez la taille des blocs de traitement pour réduire la charge 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 du Pixel Streaming
Déploiement de la démo sur Pixel Streaming (cliquer pour développer)
Le projet de démo conversationnel IA fonctionne également dans un environnement Pixel Streaming, vous permettant 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 nécessaire.
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 depuis un client Pixel Streaming. Selon la version de l’infrastructure Pixel Streaming que vous utilisez, installez l’un des éléments suivants :
- Pixel Streaming extension (pour le plugin Pixel Streaming original), ou
- Pixel Streaming 2 extension (pour le plugin Pixel Streaming 2 plus récent)
Les liens de téléchargement et les étapes d’installation sont disponibles ici : Installation du plugin d’extension Pixel Streaming Audio Capture.
2. Remplacez le nœud de forme d'onde sonore capturable dans LipSyncSTSGameInstance
Après l’installation du plugin d’extension :
- Dans le Content Browser, naviguez vers
/All/Gameet ouvrez l'assetLipSyncSTSGameInstance. - Passez à l'Event Graph.
- Localisez Event Init et suivez le flux d'exécution jusqu'à trouver la paire de nœuds :
Create Capturable Sound Wave→Set Capturable Sound Wave. - Remplacez l'appel
Create Capturable Sound WaveparCreate Pixel Streaming Capturable Sound WaveouCreate Pixel Streaming 2 Capturable Sound Wave, selon la version de l'infrastructure Pixel Streaming que vous ciblez. - 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 le lip sync 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émonstration est livré avec trois personnages MetaHuman d'exemple (Aera, Ada, Orlando), mais vous pouvez importer votre propre MetaHuman et l'utiliser dans la démonstration.
📺 Tutoriel vidéo : Ajout d’un personnage MetaHuman personnalisé au projet de démonstration
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 personnages personnalisés). 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.
Un projet de démonstration ciblé présentant la fonctionnalité lip sync sur une gamme de sources audio. Le lip sync fonctionne lui-même avec toute entrée audio en streaming, dans n'importe quelle langue, et la traite morceau par morceau en temps réel.
Vidéo à la une
Téléchargements
Ce qui est inclus
Cette démo présente les flux de travail de base du lip sync :
- Microphone (temps réel) - synchronisation labiale en direct pendant que vous parlez
- Microphone (lecture) - enregistrez d'abord, puis lisez avec synchronisation labiale
- Synthèse vocale (locale) - synchronisation labiale pilotée par un modèle linguistique local
- Synthèse vocale (externe) - synchronisation labiale pilotée par les voix d'OpenAI ou d'ElevenLabs (Runtime AI Chatbot Integrator prend également en charge Google Cloud TTS et Azure TTS, et peut être personnalisé davantage - la synchronisation labiale fonctionne avec toute source audio en streaming)
- Fichier audio - synchronisation labiale générée à partir d'un fichier audio importé
Plugins requis et facultatifs
| Plugin | Fonction | Requis ? |
|---|---|---|
| Runtime MetaHuman Lip Sync | Animation de synchronisation labiale | ✅ Requis |
| Runtime Audio Importer | Import et capture audio | ✅ Requis |
| Runtime Text To Speech | TTS local pour la scène de démonstration TTS | 🔶 Optionnel |
| Runtime AI Chatbot Integrator | Fournisseurs TTS externes (OpenAI, ElevenLabs) | 🔶 Optionnel |
Extensions de plugins groupées
Extension de synchronisation labiale standard (cliquer pour déplier)
La version source est livrée avec l'extension RuntimeMetaHumanLipSync_Standard pré-intégrée dans Plugins/, qui ajoute la prise en charge du modèle de synchronisation labiale Standard. Les binaires sont pré-compilés pour UE 5.6 ; pour UE 5.7 / 5.8, utilisez les archives pré-compilées (UE 5.7 · UE 5.8) ou compilez à partir du code source - pour installer, supprimez le dossier existant de Plugins/ et extrayez le contenu de l'archive à sa place. Supprimez le dossier sans le remplacer si vous n'avez pas besoin du modèle Standard.
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 :
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].