18 puntos por xguru 2022-12-28 | 1 comentarios | Compartir por WhatsApp
  • En el juego, cuando un personaje habla en un idioma extranjero, primero se muestran subtítulos en el idioma original sobre su cabeza y luego se traducen en tiempo real al propio idioma del jugador
  • Presentación detallada del código y del funcionamiento de una implementación de esta función usando reconocimiento de voz profundo, reconocimiento facial y más
  • OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg

Cómo funciona

  • Descargar un video de YouTube con yt-dlp
  • Separar video y audio con ffmpeg
  • El audio
    • Se procesa con Whisper para generar transcripciones y se traduce con DeepL
    • Se procesa con NeMo para extraer el ID del hablante (quién está hablando)
    • Ambos se emparejan con base en timestamps para generar texto con el ID del hablante adjunto
  • El video
    • Extraer la posición de los rostros con MTCNN/RetinaFace. Se paraleliza con Modal para hacerlo más rápido.
    • Extraer embeddings de cada rostro con DeepFace/Scikit-Learn y asignar un ID único
  • Emparejar FaceID y SpeakerID con Jaccard Index
  • Usar los metadatos de los frames generados para agregar anotaciones a los frames con PIL/OpenCV
  • Generar el video con ffmpeg Writer

1 comentarios

 
chicol 2022-12-28

El diseño de cómo funciona está buenísimo.