Guia de Processamento de Áudio
Este guia aborda como configurar diferentes métodos de entrada de áudio para alimentar dados de áudio para seus geradores de sincronização labial. Certifique-se de ter concluído o Guia de Configuração antes de prosseguir.
Processamento de Entrada de Áudio
Você precisa configurar um método para processar a entrada de áudio. Existem várias maneiras de fazer isso, dependendo da sua fonte de áudio.
- Microfone (Tempo real)
- Microfone (Reprodução)
- Texto-para-Fala (Local)
- Texto-para-Fala (APIs Externas)
- De Arquivo/Buffer de Áudio
- Buffer de Áudio em Streaming
Esta abordagem realiza a sincronização labial em tempo real enquanto se fala no microfone:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Crie uma Capturable Sound Wave usando Runtime Audio Importer
- Para Linux com Pixel Streaming, use Pixel Streaming Capturable Sound Wave em vez disso
- Antes de começar a capturar áudio, vincule-se ao delegado
OnPopulateAudioData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator - Comece a capturar áudio do microfone

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Esta abordagem captura áudio de um microfone e, em seguida, o reproduz com sincronização labial:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Crie uma Capturable Sound Wave usando Runtime Audio Importer
- Para Linux com Pixel Streaming, use Pixel Streaming Capturable Sound Wave em vez disso
- Inicie a captura de áudio do microfone
- Antes de reproduzir a capturable sound wave, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

- Regular
- Streaming
Esta abordagem sintetiza fala a partir de texto usando TTS local e realiza sincronização labial:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Use Runtime Text To Speech para gerar fala a partir de texto
- Use Runtime Audio Importer para importar o áudio sintetizado
- Antes de reproduzir a sound wave importada, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Esta abordagem usa síntese de texto-para-fala em streaming com sincronização labial em tempo real:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Use Runtime Text To Speech para gerar fala em streaming a partir de texto
- Use Runtime Audio Importer para importar o áudio sintetizado
- Antes de reproduzir a sound wave de streaming, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

- Regular
- Streaming
Esta abordagem usa o plugin Runtime AI Chatbot Integrator para gerar fala sintetizada a partir de serviços de IA (OpenAI ou ElevenLabs) e realizar sincronização labial:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Use Runtime AI Chatbot Integrator para gerar fala a partir de texto usando APIs externas (OpenAI, ElevenLabs, etc.)
- Use Runtime Audio Importer para importar os dados de áudio sintetizados
- Antes de reproduzir a sound wave importada, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Esta abordagem usa o plugin Runtime AI Chatbot Integrator para gerar fala sintetizada em streaming a partir de serviços de IA (OpenAI ou ElevenLabs) e realizar sincronização labial:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Use Runtime AI Chatbot Integrator para conectar-se a APIs de TTS em streaming (como a API de Streaming da ElevenLabs)
- Use Runtime Audio Importer para importar os dados de áudio sintetizados
- Antes de reproduzir a sound wave de streaming, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Esta abordagem usa arquivos de áudio pré-gravados ou buffers de áudio para sincronização labial:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Use Runtime Audio Importer para importar um arquivo de áudio do disco ou da memória
- Antes de reproduzir a sound wave importada, vincule-se ao seu delegado
OnGeneratePCMData - Na função vinculada, chame
ProcessAudioDatado seu Runtime Viseme Generator - Reproduza a sound wave importada e observe a animação de sincronização labial

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Para dados de áudio em streaming de um buffer, você precisa:
- Modelo Padrão
- Modelo Realista
- Modelo Realista com Humor
- Dados de áudio em formato PCM float (um array de amostras de ponto flutuante) disponíveis da sua fonte de streaming (ou use Runtime Audio Importer para suportar mais formatos)
- A taxa de amostragem e o número de canais
- Chame
ProcessAudioDatado seu Runtime Viseme Generator com esses parâmetros conforme os chunks de áudio se tornam disponíveis

O Modelo Realista usa o mesmo fluxo de trabalho de processamento de áudio que o Modelo Padrão, mas com a variável RealisticLipSyncGenerator em vez de VisemeGenerator.

O Modelo com Humor usa o mesmo fluxo de trabalho de processamento de áudio, mas com a variável MoodMetaHumanLipSyncGenerator e capacidades adicionais de configuração de humor.

Nota: Ao usar fontes de áudio em streaming, certifique-se de gerenciar o tempo de reprodução de áudio adequadamente para evitar reprodução distorcida. Consulte a documentação de Streaming Sound Wave para mais informações.
Dicas de Desempenho de Processamento
-
Tamanho do Chunk: Se você quiser processar dados de áudio em chunks menores para uma sincronização labial mais responsiva, ajuste o cálculo na função
SetNumSamplesPerChunk. Por exemplo, dividir a taxa de amostragem por 150 (streaming a cada ~6,67 ms) em vez de 100 (streaming a cada 10 ms) fornecerá atualizações de sincronização labial mais frequentes. -
Gerenciamento de Buffer: O modelo com humor processa áudio em quadros de 320 amostras (20ms a 16kHz). Certifique-se de que o tempo da sua entrada de áudio esteja alinhado com isso para um desempenho ideal.
-
Recriação do Gerador: Para operação confiável com modelos Realistas, recrie o gerador cada vez que quiser alimentar novos dados de áudio após um período de inatividade.
Próximos Passos
Depois de configurar o processamento de áudio, você pode querer:
- Aprender sobre opções de Configuração para ajustar o comportamento da sua sincronização labial
- Adicionar animação de risada para maior expressividade
- Combinar sincronização labial com animações faciais existentes usando as técnicas de camadas descritas no guia de Configuração