Руководство по обработке аудио
Это руководство охватывает настройку различных методов ввода аудио для передачи аудиоданных вашим генераторам синхронизации губ. Убедитесь, что вы завершили Руководство по настройке перед продолжением.
Обработка аудиовхода
Вам необходимо настроить метод обработки аудиовхода. Существует несколько способов сделать это в зависимости от вашего источника аудио.
- Микрофон (Реальное время)
- Микрофон (Воспроизведение)
- Преобразование текста в речь (Локальное)
- Преобразование текста в речь (Внешние API)
- Из аудиофайла/буфера
- Потоковый аудиобуфер
Этот подход выполняет синхронизацию губ в реальном времени во время разговора в микрофон:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Создайте Capturable Sound Wave с помощью Runtime Audio Importer
- Для Linux с Pixel Streaming используйте Pixel Streaming Capturable Sound Wave вместо этого
- Перед началом захвата аудио привяжитесь к делегату
OnPopulateAudioData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator - Начните захват аудио с микрофона

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Этот подход захватывает аудио с микрофона, затем воспроизводит его с синхронизацией губ:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Создайте Capturable Sound Wave с помощью Runtime Audio Importer
- Для Linux с Pixel Streaming используйте Pixel Streaming Capturable Sound Wave вместо этого
- Начните захват аудио с микрофона
- Перед воспроизведением capturable sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

- Обычное
- Потоковое
Этот подход синтезирует речь из текста с использованием локального TTS и выполняет синхронизацию губ:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Используйте Runtime Text To Speech для генерации речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением импортированного sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Этот подход использует потоковый синтез речи из текста с синхронизацией губ в реальном времени:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Используйте Runtime Text To Speech для генерации потоковой речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением потокового sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

- Обычное
- Потоковое
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной речи из AI-сервисов (OpenAI или ElevenLabs) и выполнения синхронизации губ:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Используйте Runtime AI Chatbot Integrator для генерации речи из текста с использованием внешних API (OpenAI, ElevenLabs и т.д.)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением импортированного sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной потоковой речи из AI-сервисов (OpenAI или ElevenLabs) и выполнения синхронизации губ:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Используйте Runtime AI Chatbot Integrator для подключения к потоковым TTS API (таким как ElevenLabs Streaming API)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением потокового sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Этот подход использует предварительно записанные аудиофайлы или аудиобуферы для синхронизации губ:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Используйте Runtime Audio Importer для импорта аудиофайла с диска или из памяти
- Перед воспроизведением импортированного sound wave привяжитесь к его делегату
OnGeneratePCMData - В привязанной функции вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator - Воспроизведите импортированный sound wave и наблюдайте анимацию синхронизации губ

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Для потоковых аудиоданных из буфера вам необходимо:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Аудиоданные в формате float PCM (массив сэмплов с плавающей точкой), доступные из вашего потокового источника (или используйте Runtime Audio Importer для поддержки больше форматов)
- Частота дискретизации и количество каналов
- Вызовите
ProcessAudioDataиз вашего Runtime Viseme Generator с этими параметрами по мере поступления аудиофрагментов

Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator вместо VisemeGenerator.

Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator и дополнительными возможностями настройки настроения.

Примечание: При использовании потоковых источников аудио убедитесь, что вы правильно управляете временем воспроизведения аудио, чтобы избежать искаженного воспроизведения. Подробнее см. в документации Streaming Sound Wave.
Советы по производительности обработки
-
Размер фрагмента: Если вы хотите обрабатывать аудиоданные меньшими фрагментами для более отзывчивой синхронизации губ, отрегулируйте расчет в функции
SetNumSamplesPerChunk. Например, деление частоты дискретизации на 150 (потоковая передача каждые ~6,67 мс) вместо 100 (потоковая передача каждые 10 мс) обеспечит более частые обновления синхронизации губ. -
Управление буфером: Модель с поддержкой настроения обрабатывает аудио кадрами по 320 сэмплов (20 мс при 16 кГц). Убедитесь, что время вашего аудиовхода соответствует этому для оптимальной производительности.
-
Пересоздание генератора: Для надежной работы с Реалистичными моделями пересоздавайте генератор каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия.
Следующие шаги
После настройки обработки аудио вы можете:
- Узнать о параметрах конфигурации для тонкой настройки поведения синхронизации губ
- Добавить анимацию смеха для улучшенной выразительности
- Объединить синхронизацию губ с существующими лицевыми анимациями, используя техники наслоения, описанные в руководстве по конфигурации