18 Punkte von xguru 2022-12-28 | 1 Kommentare | Auf WhatsApp teilen
  • Wenn ein Charakter im Spiel in einer Fremdsprache spricht, werden zunächst Untertitel in der Originalsprache über dem Kopf der Figur angezeigt und dann in Echtzeit in die eigene Sprache übersetzt
  • Detaillierte Vorstellung des Codes und der Funktionsweise, mit der diese Funktion mithilfe von DL-Spracherkennung, Gesichtserkennung usw. nachgebaut wurde
  • OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg

Funktionsweise

  • Mit yt-dlp wird ein YouTube-Video heruntergeladen
  • Mit ffmpeg werden Video und Audio getrennt
  • Audio wird
    • an Whisper übergeben, um Transkripte zu erzeugen, und mit DeepL übersetzt
    • an NeMo übergeben, um die Sprecher-ID (sprechende Person) zu extrahieren
    • beides wird auf Basis von Timestamps abgeglichen, um Text mit zugeordneter Sprecher-ID zu erzeugen
  • Video wird
    • mit MTCNN/RetinaFace nach Gesichtspositionen durchsucht; für mehr Geschwindigkeit per Modal parallelisiert
    • mit DeepFace/Scikit-Learn werden Embeddings für jedes Gesicht extrahiert und eindeutige IDs vergeben
  • Mit dem Jaccard-Index werden FaceID und SpeakerID abgeglichen
  • Mit den erzeugten Frame-Metadaten werden per PIL/OpenCV Annotationen in die Frames eingefügt
  • Mit dem ffmpeg-Writer wird das Video erzeugt

1 Kommentare

 
chicol 2022-12-28

Das Design der Funktionsweise ist wirklich genial.