- โมเดลแปลเสียงแบบสตรีมมิงเรียลไทม์จากเสียงเป็นเสียง (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 ความคิดเห็น
ดูเหมือนว่าฝั่งดีพลอยด้วย Rust จะใช้ candle นะครับ (Cargo.toml)
ภาษาที่ลำดับคำต่างกันโดยสิ้นเชิงน่าจะทำให้การแปลแบบเรียลไทม์ค่อนข้างยาก คงต้องลองไปอ่านงานวิจัยดูก่อนนะครับ