- 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
Das Design der Funktionsweise ist wirklich genial.