18 pontos por xguru 2022-12-28 | 1 comentários | Compartilhar no WhatsApp
  • No jogo, quando um personagem fala em um idioma estrangeiro, as legendas aparecem acima da cabeça dele no idioma original e depois são traduzidas em tempo real para o seu próprio idioma
  • Apresentação detalhada do código e do funcionamento de uma implementação desse recurso usando reconhecimento de fala profundo, reconhecimento facial etc.
  • OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg

Como funciona

  • Baixa um vídeo do YouTube com yt-dlp
  • Separa vídeo/áudio com ffmpeg
  • O áudio
    • é enviado ao Whisper para gerar transcrições e traduzido com DeepL
    • é enviado ao NeMo para extrair o ID do falante (quem está falando)
    • os dois são combinados com base em timestamps para gerar um texto com ID do falante
  • O vídeo
    • extrai a posição dos rostos com MTCNN/RetinaFace. Paralelizado com Modal para ser mais rápido.
    • extrai embeddings de cada rosto com DeepFace/Scikit-Learn e atribui um ID único
  • Faz o pareamento entre FaceID e SpeakerID com Jaccard Index
  • Usa os metadados dos frames gerados para adicionar anotações aos frames com PIL/OpenCV
  • Gera o vídeo com ffmpeg Writer

1 comentários

 
chicol 2022-12-28

O design do funcionamento está sensacional.