Руководство по обработке аудио
Это руководство охватывает настройку различных методов ввода аудио для передачи аудиоданных вашим генераторам Lip Sync. Убедитесь, что вы завершили Руководство по настройке, прежде чем продолжить.
Обработка ввода аудио
Вам необходимо настроить метод обработки аудиовхода. Существует несколько способов сделать это в зависимости от вашего источника аудио.
- Микрофон (Реальное время)
- Microphone (Playback)
- Text-to-Speech (Локальный)
- Text-to-Speech (External APIs)
- From Audio File/Buffer
- Streaming Audio Buffer
Этот подход выполняет Lip Sync в реальном времени во время разговора в микрофон:
- Стандартная модель
- Реалистичная модель
- Реалистичная модель с поддержкой настроения
- Создайте Capturable Sound Wave с помощью Runtime Audio Importer
- Перед началом захвата аудио привяжитесь к делегату
OnPopulateAudioData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator - Начните захват аудио с микрофона
Реалистичная модель использует тот же рабочий процесс обработки аудио, что и Стандартная модель, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Модель с поддержкой настроения использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
Этот подход захватывает аудио с микрофона, затем воспроизводит его с синхронизацией губ:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Создайте Capturable Sound Wave с помощью Runtime Audio Importer
- Начните захват аудио с микрофона
- Перед воспроизведением capturable sound wave, привяжитесь к его делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Mood-Enabled Model использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
- Regular
- Streaming
Этот подход синтезирует речь из текста с использованием локального TTS и выполняет синхронизацию губ:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Используйте Runtime Text To Speech для генерации речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением импортированной звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается с обычной реалистичной моделью из-за конфликтов среды выполнения ONNX. Для преобразования текста в речь с обычной реалистичной моделью рассмотрите использование внешних решений TTS или используйте стандартную модель вместо этого.
- Используйте Runtime Text To Speech для генерации речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением импортированной звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Mood-Enabled Lip Sync Generator - Настройте параметры настроения на основе содержания текста или желаемого эмоционального выражения
TTS с интеграцией настроения:
- Устанавливайте соответствующие настроения до или во время генерации TTS
- Настраивайте интенсивность настроения в соответствии с эмоциональным тоном текста
- Используйте разные настроения для разных разделов длинного текстового контента
Этот подход использует потоковый синтез речи с синхронизацией губ в реальном времени:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Используйте Runtime Text To Speech для генерации потоковой речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением потоковой звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Локальный TTS, предоставляемый плагином Runtime Text To Speech, в настоящее время не поддерживается с обычной моделью Realistic из-за конфликтов среды выполнения ONNX. Для синтеза речи с обычной моделью Realistic рассмотрите использование внешних TTS-сервисов или используйте модель Standard.
- Используйте Runtime Text To Speech для генерации потоковой речи из текста
- Используйте Runtime Audio Importer для импорта синтезированного аудио
- Перед воспроизведением потоковой звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Mood-Enabled Lip Sync Generator - При необходимости динамически настраивайте параметры настроения во время потоковой передачи
- Regular
- Streaming
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной речи из AI-сервисов (OpenAI или ElevenLabs) и выполнения синхронизации губ:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Используйте Runtime AI Chatbot Integrator для генерации речи из текста с помощью внешних API (OpenAI, ElevenLabs и т.д.)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением импортированной звуковой волны привяжитесь к ее делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Mood-Enabled Model использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
Этот подход использует плагин Runtime AI Chatbot Integrator для генерации синтезированной потоковой речи от AI-сервисов (OpenAI или ElevenLabs) и выполнения lip sync:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Используйте Runtime AI Chatbot Integrator для подключения к потоковым TTS API (таким как ElevenLabs Streaming API)
- Используйте Runtime Audio Importer для импорта синтезированных аудиоданных
- Перед воспроизведением потоковой звуковой волны привяжитесь к ее делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Mood-Enabled Model использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
Этот подход использует предварительно записанные аудиофайлы или аудиобуферы для синхронизации губ:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Используйте Runtime Audio Importer для импорта аудиофайла с диска или из памяти
- Перед воспроизведением импортированной звуковой волны привяжитесь к её делегату
OnGeneratePCMData
- В привязанной функции вызовите
ProcessAudioData
из вашего Runtime Viseme Generator - Воспроизведите импортированную звуковую волну и наблюдайте анимацию синхронизации губ
Realistic Model использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Mood-Enabled Model использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
Для потоковой передачи аудиоданных из буфера вам потребуется:
- Standard Model
- Realistic Model
- Mood-Enabled Realistic Model
- Аудиоданные в формате float PCM (массив сэмплов с плавающей точкой), доступные из вашего потокового источника (или используйте Runtime Audio Importer для поддержки больше форматов)
- Частота дискретизации и количество каналов
- Вызывайте
ProcessAudioData
из вашего Runtime Viseme Generator с этими параметрами по мере поступления аудиочанков
Модель Realistic использует тот же рабочий процесс обработки аудио, что и Standard Model, но с переменной RealisticLipSyncGenerator
вместо VisemeGenerator
.
Модель Mood-Enabled использует тот же рабочий процесс обработки аудио, но с переменной MoodMetaHumanLipSyncGenerator
и дополнительными возможностями настройки настроения.
Примечание: При использовании потоковых источников аудио обязательно управляйте временем воспроизведения аудио соответствующим образом, чтобы избежать искаженного воспроизведения. См. документацию Streaming Sound Wave для получения дополнительной информации.
Советы по производительности обработки
-
Размер чанка: Если вы хотите обрабатывать аудиоданные меньшими порциями для более отзывчивой Lip Sync, скорректируйте расчет в функции
SetNumSamplesPerChunk
. Например, деление частоты дискретизации на 150 (потоковая передача каждые ~6,67 мс) вместо 100 (потоковая передача каждые 10 мс) обеспечит более частые обновления Lip Sync. -
Управление буфером: Модель с поддержкой настроения обрабатывает аудио кадрами по 320 сэмплов (20 мс при 16 кГц). Убедитесь, что время вашего аудиовхода синхронизировано с этим для оптимальной производительности.
-
Пересоздание генератора: Для надежной работы с Realistic моделями пересоздавайте генератор каждый раз, когда вы хотите подать новые аудиоданные после периода бездействия.
Следующие шаги
После настройки обработки аудио вы можете:
- Изучить параметры конфигурации для тонкой настройки поведения Lip Sync
- Добавить анимацию смеха для повышения выразительности
- Комбинировать Lip Sync с существующими лицевыми анимациями, используя методы наслоения, описанные в руководстве по конфигурации