Introdução geral
O Ultralight Digital Human é um projeto de código aberto que visa desenvolver um modelo humano digital ultraleve que possa ser executado em tempo real em dispositivos móveis. O projeto consegue uma operação suave em dispositivos móveis otimizando algoritmos e estruturas de modelos para uma variedade de cenários, como aplicativos sociais, jogos e realidade virtual. Os usuários podem facilmente treinar e implementar seus próprios modelos humanos digitais para desfrutar de experiências personalizadas e imersivas.
Quanto ao fato de que ele funciona bem no celular, basta alterar o número de canais desse modelo atual para um pouco menor e usar o wenet para os recursos de áudio, e tudo ficará bem.
Lista de funções
- operação em tempo realModelos: Os modelos podem ser executados em tempo real em dispositivos móveis e são responsivos.
- Design leveEstrutura de modelo otimizada para dispositivos móveis com recursos limitados.
- projeto de código abertoCódigo-fonte: O código e o modelo são totalmente abertos e podem ser modificados e usados livremente pelos usuários.
- aplicativo com vários cenáriosAdequado para uma variedade de cenários, como aplicativos sociais, jogos, realidade virtual e muito mais.
- Extração de recursos de áudioSuporte a esquemas de extração de recursos de áudio wenet e hubert.
- rede síncronaSincronização labial aprimorada com a tecnologia syncnet.
- Tutorial detalhadoTreinamento detalhado e tutoriais de uso são fornecidos para ajudar os usuários a começar rapidamente.
Usando a Ajuda
Processo de instalação
- Preparação ambiental::
- Instale o Python 3.10 ou superior.
- Instale o PyTorch 1.13.1 e outras dependências:
conda create -n dh python=3.10 conda activate dh conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia conda install mkl=2024.0 pip install opencv-python transformers numpy==1.23.5 soundfile librosa onnxruntime
- Baixar arquivos de modelo::
- Faça o download do arquivo wenet encoder.onnx no link a seguir e coloque-o no diretório
dados_utils/
Catálogo: link para download
- Faça o download do arquivo wenet encoder.onnx no link a seguir e coloque-o no diretório
Processo de uso
- Preparar o vídeo::
- Prepare um vídeo de 3 a 5 minutos, certificando-se de que cada quadro tenha uma exposição facial completa e que o som esteja claro e sem ruídos.
- Coloque o vídeo em uma nova pasta.
- Extração de recursos de áudio::
- Use os seguintes comandos para extrair recursos de áudio:
cd data_utils python process.py SEU_VIDEO_PATH --asr hubert
- Use os seguintes comandos para extrair recursos de áudio:
- Modelos de treinamento::
- Treine o modelo syncnet para obter melhores resultados:
cd ... python syncnet.py ---save_dir . /syncnet_ckpt/ --dataset_dir . /data_dir/ --asr hubert
- Treine o modelo humano digital usando o ponto de verificação de menor perda:
python train.py --dataset_dir . /data_dir/ ---save_dir . /checkpoint/ --asr hubert --use_syncnet --syncnet_checkpoint syncnet_ckpt
- Treine o modelo syncnet para obter melhores resultados:
- inferência::
- Extração de recursos de áudio de teste:
python extract_test_audio.py YOUR_TEST_AUDIO_PATH --asr hubert
- Raciocínio em execução:
python inference.py --dataset . /data_dir/ --audio_feat . /seu_teste_audio_hu.npy ---save_path . /output.mp4 --checkpoint . /checkpoint/best_model.pth
- Extração de recursos de áudio de teste:
advertência
- Certifique-se de que a taxa de quadros do vídeo corresponda ao esquema de extração de recursos de áudio escolhido: 20 fps para wenet e 25 fps para hubert.
- Durante o processo de treinamento e inferência, o valor de perda do modelo é monitorado regularmente e o ponto de verificação ideal é selecionado para o treinamento.