Guide de Traitement Audio
Ce guide explique comment configurer différentes méthodes d'entrée audio pour alimenter vos générateurs de synchronisation labiale. Assurez-vous d'avoir terminé le Guide de Configuration avant de continuer.
Traitement de l'Entrée Audio
Vous devez configurer une méthode pour traiter l'entrée audio. Il existe plusieurs façons de procéder selon votre source audio.
- Microphone (Temps réel)
- Microphone (Playback)
- Text-to-Speech (Local)
- Text-to-Speech (External APIs)
- From Audio File/Buffer
- Streaming Audio Buffer
Cette approche effectue la synchronisation labiale en temps réel pendant que vous parlez dans le microphone :
- Modèle Standard
- Modèle Réaliste
- Modèle Réaliste avec Humeur
- Créez une Capturable Sound Wave en utilisant Runtime Audio Importer
- Avant de commencer à capturer l'audio, liez-vous au délégué
OnPopulateAudioData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator - Commencez à capturer l'audio depuis le microphone
Le Modèle Réaliste utilise le même flux de travail de traitement audio que le Modèle Standard, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le Modèle avec Humeur utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
Cette approche capture l'audio d'un microphone, puis le lit avec la synchronisation labiale :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Créez une Capturable Sound Wave en utilisant Runtime Audio Importer
- Démarrez la capture audio du microphone
- Avant de lire la capturable sound wave, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator
Le Realistic Model utilise le même flux de travail de traitement audio que le Standard Model, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le Mood-Enabled Model utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
- Regular
- Streaming
Cette approche synthétise la parole à partir de texte en utilisant TTS local et effectue la synchronisation labiale :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Utilisez Runtime Text To Speech pour générer la parole à partir du texte
- Utilisez Runtime Audio Importer pour importer l'audio synthétisé
- Avant de lire l'onde sonore importée, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator
Le TTS local fourni par le plugin Runtime Text To Speech n'est actuellement pas pris en charge avec le modèle Realistic régulier en raison de conflits du runtime ONNX. Pour le text-to-speech avec le modèle Realistic régulier, envisagez d'utiliser des solutions TTS externes ou utilisez plutôt le modèle Standard.
- Utilisez Runtime Text To Speech pour générer la parole à partir du texte
- Utilisez Runtime Audio Importer pour importer l'audio synthétisé
- Avant de lire l'onde sonore importée, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Mood-Enabled Lip Sync Generator - Configurez les paramètres d'humeur en fonction du contenu textuel ou de l'expression émotionnelle souhaitée
TTS avec intégration d'humeur :
- Définissez des humeurs appropriées avant ou pendant la génération TTS
- Ajustez l'intensité de l'humeur pour correspondre au ton émotionnel du texte
- Utilisez différentes humeurs pour différentes sections de contenu textuel plus long
Cette approche utilise la synthèse vocale en streaming avec synchronisation labiale en temps réel :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Utilisez Runtime Text To Speech pour générer de la parole en streaming à partir de texte
- Utilisez Runtime Audio Importer pour importer l'audio synthétisé
- Avant de lire l'onde sonore en streaming, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator
Le TTS local fourni par le plugin Runtime Text To Speech n'est actuellement pas pris en charge avec le modèle Realistic standard en raison de conflits du runtime ONNX. Pour la synthèse vocale avec le modèle Realistic standard, envisagez d'utiliser des services TTS externes ou utilisez plutôt le modèle Standard.
- Utilisez Runtime Text To Speech pour générer de la parole en streaming à partir de texte
- Utilisez Runtime Audio Importer pour importer l'audio synthétisé
- Avant de lire l'onde sonore en streaming, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Mood-Enabled Lip Sync Generator - Ajustez les paramètres d'humeur dynamiquement pendant le streaming si nécessaire
- Regular
- Streaming
Cette approche utilise le plugin Runtime AI Chatbot Integrator pour générer une parole synthétisée à partir de services d'IA (OpenAI ou ElevenLabs) et effectuer la synchronisation labiale :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Utilisez Runtime AI Chatbot Integrator pour générer la parole à partir de texte en utilisant des API externes (OpenAI, ElevenLabs, etc.)
- Utilisez Runtime Audio Importer pour importer les données audio synthétisées
- Avant de lire l'onde sonore importée, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator
Le Realistic Model utilise le même flux de travail de traitement audio que le Standard Model, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le Mood-Enabled Model utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
Cette approche utilise le plugin Runtime AI Chatbot Integrator pour générer une parole synthétisée en streaming à partir de services d'IA (OpenAI ou ElevenLabs) et effectuer la synchronisation labiale :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Utilisez Runtime AI Chatbot Integrator pour vous connecter aux API TTS en streaming (comme l'API de streaming ElevenLabs)
- Utilisez Runtime Audio Importer pour importer les données audio synthétisées
- Avant de lire la forme d'onde audio en streaming, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator
Le Realistic Model utilise le même flux de travail de traitement audio que le Standard Model, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le Mood-Enabled Model utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
Cette approche utilise des fichiers audio pré-enregistrés ou des tampons audio pour la synchronisation labiale :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Utilisez Runtime Audio Importer pour importer un fichier audio depuis le disque ou la mémoire
- Avant de lire la forme d'onde importée, liez-vous à son délégué
OnGeneratePCMData
- Dans la fonction liée, appelez
ProcessAudioData
depuis votre Runtime Viseme Generator - Lisez la forme d'onde importée et observez l'animation de synchronisation labiale
Le Realistic Model utilise le même flux de travail de traitement audio que le Standard Model, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le Mood-Enabled Model utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
Pour les données audio en streaming depuis un tampon, vous avez besoin de :
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Des données audio au format PCM float (un tableau d'échantillons en virgule flottante) disponibles depuis votre source de streaming (ou utilisez Runtime Audio Importer pour prendre en charge plus de formats)
- Le taux d'échantillonnage et le nombre de canaux
- Appelez
ProcessAudioData
depuis votre Runtime Viseme Generator avec ces paramètres au fur et à mesure que les segments audio deviennent disponibles
Le modèle réaliste utilise le même flux de travail de traitement audio que le modèle standard, mais avec la variable RealisticLipSyncGenerator
au lieu de VisemeGenerator
.
Le modèle avec humeur utilise le même flux de travail de traitement audio, mais avec la variable MoodMetaHumanLipSyncGenerator
et des capacités de configuration d'humeur supplémentaires.
Remarque : Lorsque vous utilisez des sources audio en streaming, assurez-vous de gérer le timing de la lecture audio de manière appropriée pour éviter une lecture déformée. Consultez la documentation Streaming Sound Wave pour plus d'informations.
Conseils de performance de traitement
-
Taille des blocs : Si vous souhaitez traiter les données audio en blocs plus petits pour une synchronisation labiale plus réactive, ajustez le calcul dans la fonction
SetNumSamplesPerChunk
. Par exemple, diviser la fréquence d'échantillonnage par 150 (streaming toutes les ~6,67 ms) au lieu de 100 (streaming toutes les 10 ms) fournira des mises à jour de synchronisation labiale plus fréquentes. -
Gestion du tampon : Le modèle avec humeur traite l'audio en trames de 320 échantillons (20 ms à 16 kHz). Assurez-vous que le timing de votre entrée audio s'aligne sur cela pour des performances optimales.
-
Recréation du générateur : Pour un fonctionnement fiable avec les modèles réalistes, recréez le générateur chaque fois que vous souhaitez envoyer de nouvelles données audio après une période d'inactivité.
Prochaines étapes
Une fois que vous avez configuré le traitement audio, vous pouvez :
- Découvrir les options de configuration pour affiner le comportement de votre synchronisation labiale
- Ajouter une animation de rire pour une expressivité améliorée
- Combiner la synchronisation labiale avec des animations faciales existantes en utilisant les techniques de superposition décrites dans le guide de configuration