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