Przewodnik przetwarzania dźwięku
Ten przewodnik obejmuje konfigurację różnych metod wprowadzania dźwięku w celu dostarczania 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 (w czasie rzeczywistym)
- Mikrofon (odtwarzanie)
- Zamiana tekstu na mowę (lokalna)
- Zamiana tekstu na mowę (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
- Dla systemu Linux z Pixel Streaming, użyj zamiast tego Pixel Streaming Capturable Sound Wave
- Przed rozpoczęciem przechwytywania dźwięku, podłącz się do delegata
OnPopulateAudioData - W powiązanej funkcji, wywołaj
ProcessAudioDataz 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 obsługą nastroju
- Utwórz Capturable Sound Wave za pomocą Runtime Audio Importer
- Dla systemu Linux z Pixel Streaming, użyj zamiast tego Pixel Streaming Capturable Sound Wave
- 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
ProcessAudioDataz 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 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.

- Zwykła
- Streaming
To podejście syntetyzuje mowę z tekstu przy użyciu lokalnej TTS i wykonuje synchronizację ust:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime Text To Speech do wygenerowania mowy z tekstu
- Użyj Runtime Audio Importer do zaimportowania syntetyzowanego dźwięku
- Przed odtworzeniem zaimportowanej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData - W powiązanej funkcji, wywołaj
ProcessAudioDataz 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 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 używa strumieniowej syntezy zamiany tekstu na mowę z synchronizacją ust w czasie rzeczywistym:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime Text To Speech do wygenerowania strumieniowej mowy z tekstu
- Użyj Runtime Audio Importer do zaimportowania syntetyzowanego dźwięku
- Przed odtworzeniem strumieniowej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData - W powiązanej funkcji, wywołaj
ProcessAudioDataz 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 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.

- Zwykła
- Streaming
To podejście używa wtyczki Runtime AI Chatbot Integrator do generowania syntetyzowanej mowy z usług AI (OpenAI lub ElevenLabs) i wykonania synchronizacji ust:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime AI Chatbot Integrator do wygenerowania mowy z tekstu przy użyciu zewnętrznych API (OpenAI, ElevenLabs, itp.)
- Użyj Runtime Audio Importer do zaimportowania danych dźwiękowych syntezy
- Przed odtworzeniem zaimportowanej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData - W powiązanej funkcji, wywołaj
ProcessAudioDataz 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 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 używa wtyczki Runtime AI Chatbot Integrator do generowania syntetyzowanej strumieniowej mowy z usług AI (OpenAI lub ElevenLabs) i wykonania synchronizacji ust:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime AI Chatbot Integrator do połączenia ze strumieniowymi API TTS (jak ElevenLabs Streaming API)
- Użyj Runtime Audio Importer do zaimportowania danych dźwiękowych syntezy
- Przed odtworzeniem strumieniowej fali dźwiękowej, podłącz się do jej delegata
OnGeneratePCMData - W powiązanej funkcji, wywołaj
ProcessAudioDataz 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 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 używa wcześniej nagranych plików audio lub buforów audio do synchronizacji ust:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Użyj Runtime Audio Importer do zaimportowania pliku 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
ProcessAudioDataz twojego 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 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.

Dla strumieniowych danych audio z bufora, potrzebujesz:
- Model standardowy
- Model realistyczny
- Model realistyczny z obsługą nastroju
- Dane audio w formacie PCM float (tablica próbek zmiennoprzecinkowych) dostępne ze źródła strumieniowego (lub użyj Runtime Audio Importer do obsługi więcej formatów)
- Częstotliwość próbkowania i liczba kanałów
- Wywołaj
ProcessAudioDataz twojego Runtime Viseme Generator z tymi parametrami w miarę dostępności fragmentów audio

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.

Uwaga: Podczas używania strumieniowych źródeł audio, upewnij się, że odpowiednio zarządzasz czasem odtwarzania dźwięku, aby uniknąć zniekształconego odtwarzania. Zobacz dokumentację Streaming Sound Wave po więcej informacji.
Wskazówki dotyczące wydajności przetwarzania
-
Rozmiar fragmentu: Jeśli chcesz przetwarzać dane audio w mniejszych fragmentach dla bardziej responsywnej synchronizacji ust, dostosuj obliczenia w funkcji
SetNumSamplesPerChunk. Na przykład, dzieląc częstotliwość próbkowania przez 150 (strumieniowanie co ~6,67 ms) zamiast 100 (strumieniowanie co 10 ms) zapewni częstsze aktualizacje synchronizacji ust. -
Zarządzanie buforem: Model z obsługą nastroju przetwarza audio w klatkach 320-próbkowych (20ms przy 16kHz). Upewnij się, że czasowanie twojego wejścia audio jest z tym zsynchronizowane dla optymalnej wydajności.
-
Ponowne tworzenie generatora: Dla niezawodnej pracy z modelami realistycznymi, odtwórz generator za każdym razem, gdy chcesz dostarczyć nowe dane audio po okresie bezczynności.
Następne kroki
Po skonfigurowaniu przetwarzania audio, możesz chcieć:
- Dowiedzieć się o opcjach konfiguracji aby dostroić zachowanie synchronizacji ust
- Dodać animację śmiechu dla zwiększonej ekspresji
- Połączyć synchronizację ust z istniejącymi animacjami twarzy przy użyciu technik warstwowania opisanych w przewodniku konfiguracji