Audio-Verarbeitungsleitfaden
Dieser Leitfaden behandelt, wie Sie verschiedene Audio-Eingabemethoden einrichten, um Audiodaten an Ihre Lippen-Sync-Generatoren zu senden. Stellen Sie sicher, dass Sie den Einrichtungsleitfaden abgeschlossen haben, bevor Sie fortfahren.
Audio-Eingabeverarbeitung
Sie müssen eine Methode zur Verarbeitung der Audioeingabe einrichten. Es gibt mehrere Möglichkeiten, je nach Ihrer Audioquelle.
- Mikrofon (Echtzeit)
- Mikrofon (Wiedergabe)
- Text-to-Speech (Lokal)
- Text-to-Speech (Externe APIs)
- Von Audiodatei/Puffer
- Streaming-Audiopuffer
Dieser Ansatz führt Lippen-Sync in Echtzeit durch, während Sie in das Mikrofon sprechen:
- Standardmodell
- Realistisches Modell
- Stimmungsfähiges realistisches Modell
- Erstellen Sie eine Capturable Sound Wave mit Runtime Audio Importer
- Binden Sie sich an den
OnPopulateAudioData
-Delegaten, bevor Sie mit der Audioaufnahme beginnen - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf - Starten Sie die Audioaufnahme vom Mikrofon
Das realistische Modell verwendet den gleichen Audio-Verarbeitungs-Workflow wie das Standardmodell, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Das stimmungsfähige Modell verwendet den gleichen Audio-Verarbeitungs-Workflow, jedoch mit der MoodMetaHumanLipSyncGenerator
-Variable und zusätzlichen Stimmungskonfigurationsmöglichkeiten.
Dieser Ansatz erfasst Audio von einem Mikrofon und gibt es dann mit Lippen-Sync wieder:
- Standardmodell
- Realistisches Modell
- Stimmungsfähiges Realistisches Modell
- Erstellen Sie eine Capturable Sound Wave mit Runtime Audio Importer
- Starten Sie die Audioaufnahme vom Mikrofon
- Binden Sie sich vor der Wiedergabe der erfassbaren Schallwelle an ihren
OnGeneratePCMData
-Delegaten - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das realistische Modell verwendet den gleichen Audioverarbeitungs-Workflow wie das Standardmodell, aber mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Das stimmungsfähige Modell verwendet den gleichen Audioverarbeitungs-Workflow, aber mit der MoodMetaHumanLipSyncGenerator
-Variable und zusätzlichen Stimmungskonfigurationsfähigkeiten.
- Regulär
- Streaming
Dieser Ansatz synthetisiert Sprache aus Text unter Verwendung von lokalem TTS und führt Lippenbewegungen durch:
- Standardmodell
- Realistisches Modell
- Stimmungsaktiviertes Realistic-Modell
- Verwende Runtime Text To Speech, um Sprache aus Text zu generieren
- Verwende Runtime Audio Importer, um das synthetisierte Audio zu importieren
- Binde vor der Wiedergabe der importierten Schallwelle an ihren
OnGeneratePCMData
-Delegaten - Rufe in der gebundenen Funktion
ProcessAudioData
von deinem Runtime Viseme Generator auf
Lokales TTS, das vom Runtime Text To Speech Plugin bereitgestellt wird, wird derzeit aufgrund von ONNX-Laufzeitkonflikten nicht mit dem regulären Realistic-Modell unterstützt. Für Text-to-Speech mit dem regulären Realistic-Modell ziehe in Betracht:
- Externe TTS-Dienste zu verwenden (ElevenLabs, OpenAI, etc.)
- Externe lokale TTS-Lösungen zu verwenden (Python-basiertes TTS, System-TTS-APIs oder andere nicht-ONNX-lokale Lösungen)
- Stattdessen das Standardmodell oder das stimmungsaktivierte Realistic-Modell zu verwenden, die das Runtime Text To Speech Plugin unterstützen
- Verwende Runtime Text To Speech, um Sprache aus Text zu generieren
- Verwende Runtime Audio Importer, um das synthetisierte Audio zu importieren
- Binde vor der Wiedergabe der importierten Schallwelle an ihren
OnGeneratePCMData
-Delegaten - Rufe in der gebundenen Funktion
ProcessAudioData
von deinem Mood-Enabled Lip Sync Generator auf - Konfiguriere Stimmungseinstellungen basierend auf dem Textinhalt oder dem gewünschten emotionalen Ausdruck
TTS mit Stimmungsintegration:
- Setze geeignete Stimmungen vor oder während der TTS-Generierung
- Passe die Stimmungsintensität an, um sie dem emotionalen Ton des Textes anzupassen
- Verwende verschiedene Stimmungen für verschiedene Abschnitte längerer Textinhalte
Dieser Ansatz verwendet Streaming-Text-zu-Sprache-Synthese mit Echtzeit-Lippensynchronisation:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Verwenden Sie Runtime Text To Speech, um Streaming-Sprache aus Text zu generieren
- Verwenden Sie Runtime Audio Importer, um die synthetisierte Audio zu importieren
- Binden Sie sich vor der Wiedergabe der Streaming-Soundwelle an ihren
OnGeneratePCMData
-Delegaten - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Lokale TTS, bereitgestellt durch das Runtime Text To Speech Plugin, wird derzeit mit dem regulären Realistic Model aufgrund von ONNX Runtime-Konflikten nicht unterstützt. Für Text-zu-Sprache mit dem regulären Realistic Model ziehen Sie in Betracht:
- Externe TTS-Dienste zu verwenden (ElevenLabs, OpenAI, etc.)
- Externe lokale TTS-Lösungen zu verwenden (Python-basierte TTS, System-TTS-APIs oder andere nicht-ONNX lokale Lösungen) Das Standard Model oder Mood-Enabled Realistic Model stattdessen zu verwenden, die das Runtime Text To Speech Plugin unterstützen
- Verwenden Sie Runtime Text To Speech, um Streaming-Sprache aus Text zu generieren
- Verwenden Sie Runtime Audio Importer, um die synthetisierte Audio zu importieren
- Binden Sie sich vor der Wiedergabe der Streaming-Soundwelle an ihren
OnGeneratePCMData
-Delegaten - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Mood-Enabled Lip Sync Generator auf - Passen Sie bei Bedarf die Stimmungseinstellungen während des Streamings dynamisch an
- Regulär
- Streaming
Dieser Ansatz verwendet das Runtime AI Chatbot Integrator Plugin, um synthetisierte Sprache von KI-Diensten (OpenAI oder ElevenLabs) zu generieren und Lippenbewegungen zu synchronisieren:
- Standardmodell
- Realistisches Modell
- Stimmungsfähiges Realistisches Modell
- Verwenden Sie Runtime AI Chatbot Integrator, um Sprache aus Text mit externen APIs (OpenAI, ElevenLabs, etc.) zu generieren
- Verwenden Sie Runtime Audio Importer, um die synthetisierten Audiodaten zu importieren
- Binden Sie vor der Wiedergabe der importierten Schallwelle an deren
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das realistische Modell verwendet den gleichen Audio-Verarbeitungs-Workflow wie das Standardmodell, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Das stimmungsfähige Modell verwendet den gleichen Audio-Verarbeitungs-Workflow, jedoch mit der MoodMetaHumanLipSyncGenerator
-Variable und zusätzlichen Stimmungskonfigurationsfähigkeiten.
Dieser Ansatz verwendet das Runtime AI Chatbot Integrator Plugin, um synthetisierte Streaming-Sprache von KI-Diensten (OpenAI oder ElevenLabs) zu generieren und Lippen-Sync durchzuführen:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Verwenden Sie Runtime AI Chatbot Integrator, um eine Verbindung zu Streaming-TTS-APIs (wie der ElevenLabs Streaming API) herzustellen
- Verwenden Sie Runtime Audio Importer, um die synthetisierten Audiodaten zu importieren
- Binden Sie sich vor der Wiedergabe der Streaming-Soundwelle an deren
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das Realistic Model verwendet den gleichen Audio-Verarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Das Mood-Enabled Model verwendet den gleichen Audio-Verarbeitungs-Workflow, jedoch mit der MoodMetaHumanLipSyncGenerator
-Variable und zusätzlichen Mood-Konfigurationsfähigkeiten.
Dieser Ansatz verwendet voraufgezeichnete Audiodateien oder Audiopuffer für die Lippenanimation:
- Standardmodell
- Realistisches Modell
- Stimmungsfähiges Realistisches Modell
- Verwenden Sie den Runtime Audio Importer, um eine Audiodatei zu importieren (von der Festplatte oder aus dem Speicher)
- Binden Sie sich vor der Wiedergabe der importierten Schallwelle an deren
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf - Spielen Sie die importierte Schallwelle ab und beobachten Sie die Lippenanimations-Synchronisation
Das realistische Modell verwendet den gleichen Audioverarbeitungs-Workflow wie das Standardmodell, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Das stimmungsfähige Modell verwendet den gleichen Audioverarbeitungs-Workflow, jedoch mit der MoodMetaHumanLipSyncGenerator
-Variable und zusätzlichen Stimmungskonfigurationsfähigkeiten.
Für das Streamen von Audiodaten aus einem Puffer benötigen Sie:
- Standardmodell
- Realistic Model
- Mood-Enabled Realistic Model
- Audiodaten im Float-PCM-Format (ein Array von Gleitkomma-Samples), verfügbar von Ihrer Streaming-Quelle (oder verwenden Sie den Runtime Audio Importer, um weitere Formate zu unterstützen)
- Die Abtastrate und die Anzahl der Kanäle
- Rufen Sie
ProcessAudioData
von Ihrem Runtime Viseme Generator mit diesen Parametern auf, sobald Audioblöcke verfügbar werden
Das Realistische Modell verwendet den gleichen Audio-Verarbeitungs-Workflow wie das Standardmodell, jedoch mit der Variable RealisticLipSyncGenerator
anstelle von VisemeGenerator
.
Das Mood-Enabled-Modell verwendet den gleichen Audio-Verarbeitungs-Workflow, jedoch mit der Variable MoodMetaHumanLipSyncGenerator
und zusätzlichen Mood-Konfigurationsfähigkeiten.
Hinweis: Wenn Sie Streaming-Audioquellen verwenden, stellen Sie sicher, dass Sie die Audio-Wiedergabezeit angemessen verwalten, um verzerrte Wiedergabe zu vermeiden. Weitere Informationen finden Sie in der Streaming Sound Wave-Dokumentation.
Tipps zur Verarbeitungsleistung
-
Chunk-Größe: Wenn Sie Audiodaten in kleineren Chunks für responsiveres Lip Sync verarbeiten möchten, passen Sie die Berechnung in der Funktion
SetNumSamplesPerChunk
an. Wenn Sie beispielsweise die Abtastrate durch 150 teilen (Streaming alle ~6,67 ms) anstatt durch 100 (Streaming alle 10 ms), erhalten Sie häufigere Lip Sync-Aktualisierungen. -
Buffer-Verwaltung: Das Mood-Enabled-Modell verarbeitet Audio in 320-Sample-Frames (20ms bei 16kHz). Stellen Sie sicher, dass Ihre Audio-Eingabezeit damit übereinstimmt, um optimale Leistung zu erzielen.
-
Generator-Neuerstellung: Für einen zuverlässigen Betrieb mit Realistic-Modellen erstellen Sie den Generator jedes Mal neu, wenn Sie nach einer Phase der Inaktivität neue Audiodaten zuführen möchten.
Nächste Schritte
Sobald Sie die Audio-Verarbeitung eingerichtet haben, möchten Sie vielleicht:
- Erfahren Sie mehr über Konfigurationsoptionen, um Ihr Lip Sync-Verhalten fein abzustimmen
- Lach-Animation für verbesserte Ausdruckskraft hinzufügen
- Lip Sync mit bestehenden Gesichtsanimationen kombinieren, indem Sie die im Konfigurationshandbuch beschriebenen Layering-Techniken verwenden