- Trong game, khi nhân vật nói bằng ngoại ngữ, phụ đề bằng ngôn ngữ gốc sẽ hiện phía trên đầu nhân vật rồi được dịch theo thời gian thực sang ngôn ngữ của người chơi
- Giới thiệu chi tiết về mã nguồn và cách hoạt động của một bản triển khai tính năng này bằng nhận dạng giọng nói/h nhận dạng khuôn mặt bằng DL
- OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg
Cách hoạt động
- Dùng
yt-dlp để tải video YouTube
- Dùng
ffmpeg để tách video/âm thanh
- Với âm thanh
- Đưa vào Whisper để tạo transcript và dịch bằng DeepL
- Đưa vào NeMo để trích xuất speaker ID (người nói)
- Ghép hai kết quả theo timestamp để tạo văn bản có gắn speaker ID
- Với video
- Dùng MTCNN/RetinaFace để trích xuất vị trí khuôn mặt. Tăng tốc bằng cách song song hóa với Modal.
- Dùng DeepFace/Scikit-Learn để trích xuất embedding cho từng khuôn mặt và gán ID duy nhất
- Dùng Jaccard Index để ghép FaceID với SpeakerID
- Dùng metadata khung hình đã tạo để gắn chú thích lên frame bằng PIL/OpenCV
- Tạo video bằng ffmpeg Writer
1 bình luận
Thiết kế cơ chế hoạt động quá đỉnh.