Echtzeitübersetzung aus Cyberpunk 2077 nachbauen
(github.com/elanmart)- 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-dlpwird ein YouTube-Video heruntergeladen - Mit
ffmpegwerden 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.