18 คะแนน โดย xguru 2022-12-28 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ในเกม เมื่อตัวละครพูดเป็นภาษาต่างประเทศ จะมีซับไตเติลเป็นภาษาต้นฉบับแสดงเหนือศีรษะของตัวละครก่อน แล้วจึงแปลเป็นภาษาของผู้เล่นแบบเรียลไทม์
  • แนะนำโค้ดที่ลองสร้างฟีเจอร์นี้ด้วย DL การรู้จำเสียง/การรู้จำใบหน้า ฯลฯ พร้อมอธิบายรายละเอียดของวิธีการทำงาน
  • OpenAI Whisper + NVDIA NeMo + DeepL + RetinaFace + DeepFace + Sckikit-learn + Gradio + Modal + PIL/OpenCV + ffpmpeg

วิธีการทำงาน

  • ดาวน์โหลดวิดีโอ YouTube ด้วย yt-dlp
  • แยกวิดีโอ/เสียงด้วย ffmpeg
  • สำหรับเสียง
    • ป้อนเข้า Whisper เพื่อสร้าง transcripts แล้วแปลด้วย DeepL
    • ป้อนเข้า NeMo เพื่อดึง Speaker ID (ผู้พูด)
    • จับคู่ทั้งสองอย่างตาม timestamp เพื่อสร้างข้อความที่มี Speaker ID กำกับ
  • สำหรับวิดีโอ
    • ใช้ MTCNN/RetinaFace เพื่อดึงตำแหน่งใบหน้า และเร่งความเร็วด้วยการประมวลผลขนานบน Modal
    • ใช้ DeepFace/Scikit-Learn เพื่อดึง embedding ของแต่ละใบหน้าและกำหนด unique ID
  • จับคู่ FaceID กับ SpeakerID ด้วย Jaccard Index
  • ใช้ metadata ของเฟรมที่สร้างขึ้นมาเพื่อใส่ annotation ลงบนเฟรมด้วย PIL/OpenCV
  • สร้างวิดีโอด้วย ffmpeg Writer

1 ความคิดเห็น

 
chicol 2022-12-28

การออกแบบวิธีการทำงานนี่เจ๋งมากเลย