- Saat karakter di dalam game berbicara dalam bahasa asing, subtitle dalam bahasa aslinya ditampilkan di atas kepala karakter tersebut lalu diterjemahkan secara real-time ke bahasa pemain
- Pengenalan mendetail tentang kode dan cara kerjanya untuk mengimplementasikan fitur ini menggunakan pengenalan suara/wajah berbasis DL, dll.
- OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg
Cara kerja
- Mengunduh video YouTube dengan
yt-dlp
- Memisahkan video/audio dengan
ffmpeg
- Untuk audio
- Dimasukkan ke Whisper untuk membuat transkrip lalu diterjemahkan dengan DeepL
- Dimasukkan ke NeMo untuk mengekstrak speaker ID (orang yang berbicara)
- Keduanya dicocokkan berdasarkan timestamp untuk menghasilkan teks yang diberi speaker ID
- Untuk video
- Mengekstrak posisi wajah dengan MTCNN/RetinaFace. Dipercepat dengan paralelisasi melalui Modal.
- Mengekstrak embedding untuk tiap wajah dengan DeepFace/Scikit-Learn dan memberi ID unik
- Mencocokkan FaceID dan SpeakerID dengan Jaccard Index
- Menambahkan anotasi ke frame dengan PIL/OpenCV berdasarkan metadata frame yang dibuat
- Membuat video dengan ffmpeg Writer
1 komentar
Desain cara kerjanya keren banget.