13 คะแนน โดย xguru 2025-02-11 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • โมเดลแปลเสียงแบบสตรีมมิงเรียลไทม์จากเสียงเป็นเสียง (Speech-to-Speech Translation) ที่มีความเที่ยงตรงสูง (High Fidelity)
  • ต่างจากการแปลออฟไลน์ทั่วไป ระบบจะ "สร้างเสียงที่แปลแล้วแบบเรียลไทม์" ระหว่างที่ผู้ใช้กำลังพูด
  • มีการแปลข้อความให้ด้วย และยังรวมความสามารถแปลงเสียงโดยคงสไตล์ของเสียงต้นฉบับไว้

สถาปัตยกรรม

  • เป็น "โมเดลแบบ decoder-only" ที่ออกแบบมาสำหรับการแปลเสียงพร้อมกัน
  • ใช้ สถาปัตยกรรมมัลติสตรีม (multistream) ของ Moshi เพื่อโมเดลเสียงต้นฉบับและเสียงที่แปลพร้อมกัน
  • สร้าง สตรีมเอาต์พุตแบบต่อเนื่อง ที่อัตราเฟรมคงที่ 12.5Hz ต่อวินาที และมีการแปลข้อความพร้อม timestamp ให้ด้วย

วิธีการฝึก

  • ต้องใช้ข้อมูลที่มีการจัดแนวระหว่างเสียงและข้อความของต้นฉบับกับคำแปล แต่ในความเป็นจริงข้อมูลลักษณะนี้มีไม่มาก
  • ดังนั้นจึงทำการฝึกด้วย ข้อมูลสังเคราะห์ (synthetic data)
  • ใช้ระบบแปลภาษาด้วยเครื่อง MADLAD เพื่อ จัดแนวข้อความต้นฉบับและคำแปลแบบ weakly supervised
  • ใช้ กฎการจัดแนว เพื่อให้คำปรากฏขึ้นเฉพาะเมื่อคำแปลนั้นเริ่มคาดเดาได้จากต้นฉบับ
    • วิธีที่ 1: การแทรกความเงียบ (silence insertion)
    • วิธีที่ 2: การสังเคราะห์เสียงที่คำนึงถึงการจัดแนว (alignment-aware TTS)

การอนุมาน (Inference)

  • Hibiki เข้ารหัสเสียงต้นฉบับแบบเรียลไทม์และสร้างเสียงที่แปลแล้ว
  • โดยไม่ต้องใช้วิธีอนุมานที่ซับซ้อน ใช้เพียง temperature sampling ซึ่งเข้ากันได้กับการประมวลผลแบบแบตช์
  • สามารถปรับค่าสัมประสิทธิ์ของ Classifier-Free Guidance เพื่อควบคุมความคล้ายของเสียงได้
    • ยิ่งค่าสูง เสียงที่สร้างจะยิ่งคล้ายต้นฉบับ แต่ถ้าสูงเกินไปคุณภาพการแปลอาจลดลง
  • ปัจจุบัน Hibiki รองรับเฉพาะการแปล ภาษาฝรั่งเศส → ภาษาอังกฤษ
  • โมเดลขนาดเบา Hibiki-M สามารถรันบนสมาร์ตโฟนได้

วิธีรันโมเดล

  • รันได้บน PyTorch, Rust, MLX (macOS), MLX-Swift (iOS)
  • โค้ดของ Hibiki แทบจะเหมือนกับโปรเจกต์ Moshi และสามารถดูการติดตั้งใช้งานจริงได้ที่รีโพซิทอรี kyutai-labs/moshi
  • ขณะนี้มีให้ใช้งานเพียง 2 โมเดลที่รองรับการแปล ภาษาฝรั่งเศส → ภาษาอังกฤษ (FR → EN)
    • Hibiki 2B: โครงสร้าง Transformer ที่ลึกกว่า, 16 RVQ ต่อสตรีม
    • Hibiki 1B: เวอร์ชันน้ำหนักเบา, 8 RVQ ต่อสตรีม, รองรับการรันบนอุปกรณ์ (on-device)

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

 
sftblw 2025-02-11

ดูเหมือนว่าฝั่งดีพลอยด้วย Rust จะใช้ candle นะครับ (Cargo.toml)

 
dbs0829 2025-02-11

ภาษาที่ลำดับคำต่างกันโดยสิ้นเชิงน่าจะทำให้การแปลแบบเรียลไทม์ค่อนข้างยาก คงต้องลองไปอ่านงานวิจัยดูก่อนนะครับ