Introdução geral
O LatentSync é uma estrutura inovadora de modelagem de difusão de potencial condicional de áudio de código aberto da ByteDance, projetada especificamente para permitir a sincronização labial de vídeo de alta qualidade. Ao contrário dos métodos tradicionais, o LatentSync usa uma abordagem de ponta a ponta para gerar diretamente efeitos de sincronização labial naturais e suaves sem representações de ação intermediárias. O projeto usa o modelo Whisper para converter a fala em áudio embeddings, que são integrados à U-Net por meio de uma camada de atenção cruzada para permitir a geração precisa de quadros de vídeo. O sistema não apenas oferece suporte ao processamento de vídeo real, mas também lida com a sincronização labial de personagens de anime, o que tem uma ampla gama de aplicações. O projeto é totalmente de código aberto, fornecendo código de inferência, fluxo de processamento de dados e código de treinamento, permitindo que pesquisadores e desenvolvedores reproduzam e aprimorem facilmente essa tecnologia. Finalmente, há uma solução além de Wav2Lip Uma alternativa ao
Lista de funções
- Geração de sincronização labial orientada por áudio de ponta a ponta
- Suporte à sincronização labial para vídeos de ação ao vivo e personagens de anime
- Alinhamento automático de áudio e vídeo e correção de sincronização
- Detecção e alinhamento de faces de alta qualidade
- Segmentação automática de cenas e processamento de segmentação de vídeo
- Avaliação e filtragem da qualidade do vídeo
- Fornecer um pipeline completo de processamento de dados
- Suporte para treinamento de modelos personalizados
Usando a Ajuda
Configuração do ambiente
- Requisitos do sistema:
- Requisito de memória da GPU: pelo menos 6,5 GB
- Placas de vídeo NVIDIA com suporte a CUDA
- Ambiente Python
- Etapas de instalação:
fonte setup_env.sh
Após uma instalação bem-sucedida, a estrutura do arquivo de ponto de verificação deve ser a seguinte:
. /checkpoints/
|-- Arquivo de modelo principal do # latentsync_unet.pt
|-- latentsync_syncnet.pt # Modelo de rede síncrona
|-- sussurro
| `-- tiny.pt Modelos de processamento de fala do #
|-- auxiliary/ Diretório de modelos auxiliares do #
Processo de uso
- Uso do raciocínio básico:
- estar em movimento
. /inference.sh
fazer inferências básicas - Isso pode ser feito ajustando o
escala_de_orientação
Parâmetro para 1,5 para melhorar a precisão da sincronização labial
- estar em movimento
- Fluxo de processamento de dados:
- Pré-processamento de vídeo:
- Corrige automaticamente a taxa de quadros do vídeo para 25 fps
- Reamostragem de áudio para 16000 Hz
- Detecção e segmentação automática de cenas
- Dividir o vídeo em segmentos de 5 a 10 segundos
- Processamento de faces:
- Detectar e filtrar o tamanho da face (>256 x 256 necessário)
- Remover cenas com várias faces
- Transformação afim baseada em pontos de características faciais
- Redimensionamento uniforme para 256 x 256
- Controle de qualidade:
- Triagem de escore de confiança sincronizada (limite de 3)
- Ajuste automático dos deslocamentos de áudio e vídeo
- Avaliação da qualidade da imagem usando o hyperIQA
- Pré-processamento de vídeo:
- Recursos avançados:
- Treinamento de modelos:
- Treinamento da U-Net: usando
. /train_unet.sh
- Treinamento da SyncNet: usando
. /train_syncnet.sh
- Treinamento da U-Net: usando
- Os parâmetros do arquivo de configuração podem ser ajustados conforme necessário, como o diretório de dados, o caminho para salvar o ponto de verificação etc.
- Treinamento de modelos:
advertência
- Assegure-se de que haja memória de vídeo suficiente ao fazer o raciocínio (pelo menos 6,5 GB)
- Verifique se o vídeo está em boa qualidade antes de processá-lo
- Recomenda-se fazer testes em pequena escala antes de processar grandes quantidades de vídeo
- Um fluxo completo de processamento de dados precisa ser concluído antes do treinamento de um modelo personalizado
- Cumpra os requisitos de licenciamento relevantes