Ultimas do CanalQb

Python - DeepFake - Sincronizando fala ao labio

DeepFake - Sincronizando fala ao labio
Canal Qb

Estou sincronizando 13 segundos de audio e vídeo em um computador com as seguintes configurações
Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz   2.60 GH
16,0 GB (8+8GB de 1600)
Placa de vídeo onboard Intel(R) HD Graphics 4000
HUSKY SSD 128GB
Notebook N8510 sem TPM
Se você não tiver uma placa de vídeo boa, o processo pode não adiantar nada, é por isso que este tipo de serviço é tão caro, pois além de um bom hardware, a pessoa ainda precisa programar os frames de sincronizados com o audio e expressão faciais, mas neste caso apenas vamos sincronizar os labios.

Agora vamos a grande verdade, apesar de ser um notebook ainda usual, a renderização destes 13 segundos me levou mais de 4 horas para criar o arquivo.

Estou usando o Windows 10 22H2 - 19045.3086 com Python 3.8.10.
O processo de instalação recomenda o python 3.6 e o conda (mas eu sou do contra)

Bom os módulos de instalação são
librosa==0.7.0
numpy==1.17.1
opencv-contrib-python>=4.2.0.34
opencv-python==4.1.0.25
torch==1.1.0
torchvision==0.3.0
tqdm==4.45.0
numba==0.48
Salvos no requirements.txt
Basta usar o comando
pip install -r requirements.txt

Eu não vou reapresentar todo o processo de instalação, mas informe que durante a tentativa de instalação dos requerimentos, o numpy não permitiu instalar nesta versão, muito menos os opencv

Então fiz a instalação inidividual de cada um, sem me prender a versão do requerimentos.

pip install librosa
pip install numpy
pip install opencv-contrib-python
pip install opencv-python
pip install torch
pip install torchvision
pip install tqdm
pip install numba
Dois modulos causaram o problema de CLI 14.0 que para resolver é preciso instalar os seguintes arquivos MS C++ 2015 Redistributable - 14.0.23026 (32 e 64), mas para conseguir instalar, você precisa remover qualquer outro superior que esteja instalado em sua maquina, depois você pode reinstalar aqueles removidos.

Por fim, você irá instalar alguns modulos opcionais do vs_buildtools 2017 para poder instalar o CLI funcional para estes modulos do python.
Eu ensino isso no post https://bit.ly/3K05lnW

Com este primeiro processo resolvido, chega a hora de testar script para começar a criar seu DeepFake

Mas antes deste passo, você precisa ter o ffmpeg instalado em sua maquina, neste link aqui estou mostrando o processo para windows https://bit.ly/3rrigJ3

Olhe abaixo, neste momento o processo está funcionando normalmente, mas ainda podemos sofrer devido as configurações de hardware da maquina, por isso fiz questão de mostrar meus hardwares pra vocês.


Abra o CMD e digite

python inference.py --checkpoint_path C:\Users\Qb\Desktop\Wav2Lip\checkpoints\wav2lip_gan.pth --face C:\Users\Qb\Desktop\Wav2Lip\a\video.mp4 --audio C:\Users\Qb\Desktop\Wav2Lip\a\meu2.wav --outfile C:\Users\Qb\Desktop\Wav2Lip\output\result_voice.mp4


  • Onde: C:\Users\Qb\Desktop\Wav2Lip\a\video.mp4 é a pasta que eu coloquei o vídeo que quero sincronizar com a voz do arquivo WAV
  • Onde: C:\Users\Qb\Desktop\Wav2Lip\a\meu2.wav é meu arquivo de voz
  • Onde C:\Users\Qb\Desktop\Wav2Lip\output\result_voice.mp4 será o arquivo criado para exibição

Erro:
Traceback (most recent call last):
  File "inference.py", line 280, in <module>
    main()
  File "inference.py", line 225, in main
    mel = audio.melspectrogram(wav)
  File "C:\Users\Qb\Desktop\Wav2Lip\audio.py", line 47, in melspectrogram
    S = _amp_to_db(_linear_to_mel(np.abs(D))) - hp.ref_level_db
  File "C:\Users\Qb\Desktop\Wav2Lip\audio.py", line 95, in _linear_to_mel
    _mel_basis = _build_mel_basis()
  File "C:\Users\Qb\Desktop\Wav2Lip\audio.py", line 100, in _build_mel_basis
    return librosa.filters.mel(hp.sample_rate, hp.n_fft, n_mels=hp.num_mels,
TypeError: mel() takes 0 positional arguments but 2 positional arguments (and 3 keyword-only arguments) were given

Resolve com
pip install librosa==0.9.1

 FutureWarning: Pass sr=16000, n_fft=800 as keyword args. From version 0.10 passing these as positional arguments will result in an error

Erro:
Traceback (most recent call last):
  File "inference.py", line 280, in <module>
    main()
  File "inference.py", line 252, in main
    model = load_model(args.checkpoint_path)
  File "inference.py", line 171, in load_model
    checkpoint = _load(path)
  File "inference.py", line 164, in _load
    checkpoint = torch.load(checkpoint_path,
  File "C:\Users\Qb\AppData\Roaming\Python\Python38\site-packages\torch\serialization.py", line 791, in load
    with _open_file_like(f, 'rb') as opened_file:
  File "C:\Users\Qb\AppData\Roaming\Python\Python38\site-packages\torch\serialization.py", line 271, in _open_file_like
    return _open_file(name_or_buffer, mode)
  File "C:\Users\Qb\AppData\Roaming\Python\Python38\site-packages\torch\serialization.py", line 252, in __init__
    super().__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Qb\\Desktop\\Wav2Lip\\checkpoints\\wav2lip_gan.pth'

Arquivo de renderização de face ausente, resolve com  procurar um arquivo wav2lip_gan.pth compativel com a etnia da pessoa e colocar na pasta checkpoints

Link para Download: https://cb.run/dU40

Eu realmente queria postar um vídeo na integra, mas devido as limitações do meu computador, consigo chegar até aqui, quem tiver uma maquina superior, por favor, finalize e em caso de erro, comente, e vamos trabalhar juntos para sanar.

Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.