Przewodnik przetwarzania dźwięku
Ten przewodnik obejmuje konfigurację różnych metod wprowadzania dźwięku do przekazywania danych audio do generatorów synchronizacji ust. Upewnij się, że ukończyłeś Przewodnik konfiguracji przed kontynuowaniem.
Przetwarzanie wejścia audio
Musisz skonfigurować metodę przetwarzania wejścia audio. Istnieje kilka sposobów w zależności od źródła dźwięku.
- Mikrofon (Rzeczywisty czas)
- Mikrofon (Odtwarzanie)
- Text-to-Speech (Lokalny)
- Text-to-Speech (Zewnętrzne API)
- Z pliku/bufora audio
- Strumieniowy bufor audio
To podejście wykonuje synchronizację ust w czasie rzeczywistym podczas mówienia do mikrofonu:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Utwórz Capturable Sound Wave za pomocą Runtime Audio Importer
- Przed rozpoczęciem przechwytywania dźwięku, podłącz się do delegata
OnPopulateAudioData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Runtime Viseme Generator - Rozpocznij przechwytywanie dźwięku z mikrofonu
Model realistyczny używa tego samego przepływu pracy przetwarzania dźwięku co model standardowy, ale ze zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Model z obsługą nastroju używa tego samego przepływu pracy przetwarzania dźwięku, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
To podejście przechwytuje dźwięk z mikrofonu, a następnie odtwarza go z synchronizacją ust:
- Model Standardowy
- Model Realistyczny
- Model Realistyczny z Nastrojem
- Utwórz Capturable Sound Wave używając Runtime Audio Importer
- Rozpocznij przechwytywanie dźwięku z mikrofonu
- Przed odtworzeniem przechwytywanej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Runtime Viseme Generator
Model Realistyczny używa tego samego przepływu pracy przetwarzania dźwięku co Model Standardowy, ale ze zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Model z Nastrojem używa tego samego przepływu pracy przetwarzania dźwięku, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
- Regular
- Streaming
To podejście syntetyzuje mowę z tekstu przy użyciu lokalnego TTS i wykonuje synchronizację warg:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Użyj Runtime Text To Speech, aby wygenerować mowę z tekstu
- Użyj Runtime Audio Importer, aby zaimportować zsyntetyzowany dźwięk
- Przed odtworzeniem zaimportowanej fali dźwiękowej, przypisz do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Runtime Viseme Generator
Lokalny TTS dostarczany przez wtyczkę Runtime Text To Speech nie jest obecnie obsługiwany z regularnym modelem Realistic z powodu konfliktów środowiska wykonawczego ONNX. Dla text-to-speech z regularnym modelem Realistic, rozważ:
- Użycie zewnętrznych usług TTS (ElevenLabs, OpenAI, itp.)
- Użycie zewnętrznych lokalnych rozwiązań TTS (TTS oparty na Pythonie, systemowe API TTS lub inne lokalne rozwiązania nie korzystające z ONNX)
- Użycie Standard Model lub Mood-Enabled Realistic Model zamiast tego, które obsługują wtyczkę Runtime Text To Speech
- Użyj Runtime Text To Speech, aby wygenerować mowę z tekstu
- Użyj Runtime Audio Importer, aby zaimportować zsyntetyzowany dźwięk
- Przed odtworzeniem zaimportowanej fali dźwiękowej, przypisz do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Mood-Enabled Lip Sync Generator - Skonfiguruj ustawienia nastroju na podstawie treści tekstu lub pożądanego wyrazu emocjonalnego
TTS z integracją nastroju:
- Ustaw odpowiednie nastroje przed lub podczas generowania TTS
- Dostosuj intensywność nastroju, aby pasowała do emocjonalnego tonu tekstu
- Używaj różnych nastrojów dla różnych sekcji dłuższej treści tekstowej
To podejście wykorzystuje strumieniową syntezę mowy na tekst z synchronizacją ust w czasie rzeczywistym:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Użyj Runtime Text To Speech, aby wygenerować strumieniową mowę z tekstu
- Użyj Runtime Audio Importer, aby zaimportować zsyntetyzowany dźwięk
- Przed odtworzeniem strumieniowej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W podłączonej funkcji, wywołaj
ProcessAudioData
ze swojego Runtime Viseme Generator
Lokalny TTS dostarczany przez wtyczkę Runtime Text To Speech nie jest obecnie obsługiwany z regularnym modelem Realistic z powodu konfliktów środowiska wykonawczego ONNX. W przypadku syntezy mowy na tekst z regularnym modelem Realistic, rozważ:
- Użycie zewnętrznych usług TTS (ElevenLabs, OpenAI, itp.)
- Użycie zewnętrznych lokalnych rozwiązań TTS (TTS oparte na Pythonie, systemowe API TTS lub inne lokalne rozwiązania nie korzystające z ONNX)
- Użycie zamiast tego Standard Model lub Mood-Enabled Realistic Model, które obsługują wtyczkę Runtime Text To Speech
- Użyj Runtime Text To Speech, aby wygenerować strumieniową mowę z tekstu
- Użyj Runtime Audio Importer, aby zaimportować zsyntetyzowany dźwięk
- Przed odtworzeniem strumieniowej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W podłączonej funkcji, wywołaj
ProcessAudioData
ze swojego Mood-Enabled Lip Sync Generator - W razie potrzeby dostosuj ustawienia nastroju dynamicznie podczas strumieniowania
- Regular
- Streaming
To podejście wykorzystuje wtyczkę Runtime AI Chatbot Integrator do generowania zsyntetyzowanej mowy z usług AI (OpenAI lub ElevenLabs) i wykonywania synchronizacji ust:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Użyj Runtime AI Chatbot Integrator do generowania mowy z tekstu przy użyciu zewnętrznych API (OpenAI, ElevenLabs, itp.)
- Użyj Runtime Audio Importer do zaimportowania zsyntetyzowanych danych audio
- Przed odtworzeniem zaimportowanej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Runtime Viseme Generator
Realistic Model używa tego samego przepływu pracy przetwarzania audio co Standard Model, ale ze zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Mood-Enabled Model używa tego samego przepływu pracy przetwarzania audio, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
To podejście wykorzystuje wtyczkę Runtime AI Chatbot Integrator do generowania syntetyzowanej mowy strumieniowej z usług AI (OpenAI lub ElevenLabs) i wykonywania synchronizacji ust:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Użyj Runtime AI Chatbot Integrator do połączenia z interfejsami API strumieniowego TTS (takimi jak ElevenLabs Streaming API)
- Użyj Runtime Audio Importer do zaimportowania syntetyzowanych danych audio
- Przed odtworzeniem strumieniowej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
z twojego Runtime Viseme Generator
Realistic Model używa tego samego przepływu pracy przetwarzania audio co Standard Model, ale ze zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Mood-Enabled Model używa tego samego przepływu pracy przetwarzania audio, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
To podejście wykorzystuje wstępnie nagrane pliki audio lub bufory audio do synchronizacji ust:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime Audio Importer, aby zaimportować plik audio z dysku lub pamięci
- Przed odtworzeniem zaimportowanej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData
- W powiązanej funkcji, wywołaj
ProcessAudioData
ze swojego Runtime Viseme Generator - Odtwórz zaimportowaną falę dźwiękową i obserwuj animację synchronizacji ust
Model Realistyczny używa tego samego przepływu pracy przetwarzania audio co Model Standardowy, ale z zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Model z Obsługą Nastroju używa tego samego przepływu pracy przetwarzania audio, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
Do strumieniowania danych audio z bufora, potrzebujesz:
- Model standardowy
- Realistic Model
- Mood-Enabled Realistic Model
- Dane audio w formacie float PCM (tablica próbek zmiennoprzecinkowych) dostępne ze źródła strumieniowania (lub użyj Runtime Audio Importer, aby obsłużyć więcej formatów)
- Częstotliwość próbkowania i liczbę kanałów
- Wywołaj
ProcessAudioData
ze swojego Runtime Viseme Generator z tymi parametrami, gdy fragmenty audio staną się dostępne
Model Realistyczny wykorzystuje ten sam przepływ pracy przetwarzania dźwięku co Model Standardowy, ale ze zmienną RealisticLipSyncGenerator
zamiast VisemeGenerator
.
Model z Włączonym Nastrojem wykorzystuje ten sam przepływ pracy przetwarzania dźwięku, ale ze zmienną MoodMetaHumanLipSyncGenerator
i dodatkowymi możliwościami konfiguracji nastroju.
Uwaga: Podczas korzystania ze strumieniowych źródeł dźwięku upewnij się, że odpowiednio zarządzasz czasem odtwarzania dźwięku, aby uniknąć zniekształconego odtwarzania. Więcej informacji znajdziesz w dokumentacji Streaming Sound Wave.
Wskazówki Dotyczące Wydajności Przetwarzania
-
Rozmiar Porcji: Jeśli chcesz przetwarzać dane audio w mniejszych porcjach dla bardziej responsywnej synchronizacji ust, dostosuj obliczenia w funkcji
SetNumSamplesPerChunk
. Na przykład, podzielenie częstotliwości próbkowania przez 150 (przesyłanie strumieniowe co ~6,67 ms) zamiast przez 100 (przesyłanie strumieniowe co 10 ms) zapewni częstsze aktualizacje synchronizacji ust. -
Zarządzanie Buforem: Model z włączonym nastrojem przetwarza dźwięk w klatkach o wielkości 320 próbek (20 ms przy 16 kHz). Upewnij się, że czasowanie twojego wejścia audio jest z tym zsynchronizowane dla optymalnej wydajności.
-
Ponowne Tworzenie Generatora: Dla niezawodnej pracy z modelami Realistic, odtwórz generator za każdym razem, gdy chcesz przekazać nowe dane audio po okresie bezczynności.
Następne Kroki
Gdy już skonfigurujesz przetwarzanie dźwięku, możesz chcieć:
- Dowiedzieć się więcej o Opcjach konfiguracji, aby dostroić zachowanie synchronizacji ust
- Dodać animację śmiechu dla zwiększonej ekspresyjności
- Połączyć synchronizację ust z istniejącymi animacjami twarzy przy użyciu technik warstwowania opisanych w przewodniku konfiguracyjnym