- 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
O design do funcionamento está sensacional.