opendub.ai
#ai-dubbing#omnivoice#open-source#bug-fix

ผมลองพากย์เสียงวิดีโอด้วย OmniVoice (แล้วลงเอยด้วยการแก้บั๊ก)

เกาหลีเป็นอังกฤษล้มเหลวซ้ำๆ สุดท้ายกลายเป็นว่ามันเป็นบั๊ก ผมเลยเปิดโค้ดขึ้นมาดูกับ Claude แล้วแก้มัน และผู้ดูแลโปรเจกต์ก็รวมโค้ดของผมเข้าไป

opendub · 2026-06-16 · อ่าน 3 นาที

คราวนี้ผมลอง OmniVoice เครื่องมือพากย์เสียงโอเพนซอร์สตัวหนึ่ง

ผมรันมันบน MacBook Air ของผม และมันติดตั้งง่ายกว่าเครื่องมือโอเพนซอร์สตัวอื่นๆ ที่ผมเคยลองมาก ฟังดูเหมือนเรื่องเล็ก แต่มันเป็นเรื่องใหญ่ การติดตั้งเครื่องมือพวกนี้นั้น พูดตามตรงค่อนข้างยากสำหรับผม เพราะฉะนั้นแค่ทำให้ตัวหนึ่งรันได้ ก็เท่ากับเสร็จไปครึ่งหนึ่งแล้ว

นี่คือคลิปที่ผมอยากพากย์เสียง เป็นวิดีโอภาษาเกาหลีสั้นๆ ก่อนที่ OmniVoice จะแตะมัน:

ต้นฉบับ: คลิปภาษาเกาหลีที่ผมอยากพากย์เป็นภาษาอังกฤษ

พอรันได้แล้ว ผมเริ่มจากอังกฤษเป็นเกาหลีก่อน อันนั้นทำงานได้ดี ผมเลยลองกลับทางเป็นเกาหลีเป็นอังกฤษ และคราวนี้ทุกประโยคพ่นข้อผิดพลาดออกมา ผมรันอีกครั้งก็ได้แบบเดิม ตอนแรกผมนึกว่าเป็นเพราะเปิดอย่างอื่นไว้พร้อมกันเยอะเกินไป ผมเลยปิดทุกอย่างแล้วลองใหม่ มันก็ยังล้มเหลว

ตอนนั้นแหละที่ผมเปิดบันทึก (log) ขึ้นมาดู ปัญหาคือผมไม่ใช่นักพัฒนา ต่อให้จ้องบันทึกอยู่ ผมก็บอกไม่ได้ว่าจริงๆ แล้วอะไรผิด ผมเลยเอามันให้ Claude ดู แล้วถามว่าเกิดอะไรขึ้น และผมจะแก้มันยังไง

นี่คือสิ่งที่เราหาเจอด้วยกัน เครื่องมือนี้มีขั้นตอนหนึ่งที่ฟังเสียงแล้วคิดออกว่าเป็นภาษาอะไร และกับวิดีโอของผมมันก็ทายถูก ในบันทึกถึงขั้นเขียนว่าตรวจพบภาษาเกาหลีด้วยความมั่นใจ 98% แปลว่ามันรู้อยู่ชัดๆ แต่พอถึงตอนที่ทุกอย่างเดินทางมาถึงขั้นตอนแปล ข้อมูลนั้นกลับหายไปแล้ว ในเมื่อหาภาษาต้นทางไม่เจอ โค้ดก็เลยทำตามค่าเริ่มต้นที่ตั้งไว้สำหรับตอนที่ไม่รู้ คือเดาว่าเป็นภาษาอังกฤษ มันเลยพยายามแปลอังกฤษเป็นอังกฤษ และเพราะไม่มีชุดแปลอังกฤษเป็นอังกฤษอยู่จริงๆ ทุกประโยคเลยพังด้วยข้อผิดพลาดเดียวกันหมด มันรู้ว่าวิดีโอเป็นภาษาเกาหลี แล้วก็ลืมมันไปในอีกขั้นตอนถัดมา

พอเข้าใจตรงนั้นแล้ว ผมกับ Claude ก็มุดเข้าไปในโค้ดและหาจุดที่มันถอยกลับไปเดาว่าเป็นภาษาอังกฤษได้พอดี เราเลยใส่ตัวกันพลาดเล็กๆ ลงไปตรงนั้น คือถ้าไม่รู้ว่าเป็นภาษาอะไร ก็ให้ดูตัวอักษรในซับไตเติลแล้วเดาเอาว่าเป็นภาษาอะไร (เป็นตัวอักษรเกาหลีก็คือภาษาเกาหลี และก็ใช้แนวคิดเดียวกันกับภาษาญี่ปุ่น ภาษาจีน และอีกหลายภาษา)

มีอยู่เรื่องหนึ่งที่ทำผมเกือบบ้า ทุกครั้งที่ผมแก้โค้ดแล้วเปิดแอปขึ้นมาใหม่ การแก้ของผมก็หายไปเฉยๆ ผมใช้เวลาอยู่พักใหญ่กว่าจะรู้ว่าแอปมันเขียนโค้ดของตัวเองขึ้นมาใหม่ทุกครั้งที่เปิด ผมเลยแก้ผิดไฟล์มาตลอด พอผมหาเจอว่าต้องไปแก้ตรงไหน คราวนี้การแก้มันก็เลยอยู่ถาวร ไม่หายไปอีกเลย

หลังจากนั้นผมรันอีกครั้ง แล้วเกาหลีเป็นอังกฤษก็ทำงานได้

ผมคิดว่าคนอื่นก็คงเจอปัญหาเดียวกับผม ผมเลยโพสต์มันลง GitHub ทั้งในรูปแบบ issue และ pull request ผมเปิด pull request ไว้แบบไม่ได้คาดหวังอะไรมาก เผื่อมันจะได้รับการยอมรับจริงๆ แล้ว OmniVoice ก็รับการแก้ของผมเข้าไปจริงด้วย! ผมไม่ใช่นักพัฒนา เป็นแค่คนที่ชอบการพากย์เสียงด้วย AI คนหนึ่ง การได้มีส่วนร่วมกับโค้ดของคนอื่นจึงทำให้ผมดีใจจริงๆ

คุณดูมันได้บน GitHub: issue ที่ผมเปิด และ pull request ที่ถูกรวมเข้าไป

ผลลัพธ์ออกมาเป็นแบบนี้:

OmniVoice: พากย์เกาหลี → อังกฤษ พร้อมโคลนเสียงต้นฉบับ

พูดตามตรง ผลลัพธ์นี้ผมก็ยังไม่พอใจ ถ้าตั้งใจฟังดีๆ คุณจะได้ยินภาษาเกาหลีเล็ดลอดออกมานิดหน่อยตอนต้นของบางประโยค แต่การโคลนเสียงนั้นดีจริงๆ ถึงตอนนี้ผมลองเครื่องมือพากย์เสียงโอเพนซอร์สมาหลายตัวแล้ว และผมยังไม่เคยเห็นตัวไหนจับเสียงของผู้พูดต้นฉบับได้เหมือนขนาดนี้ ผมจะให้คุณดูในบทความหน้าว่าผมกำลังพยายามกำจัดเสียงที่เล็ดลอดออกมานั้นยังไง

คะแนน

ติดตั้งง่ายกว่าตัวอื่น · โคลนเสียงดีมาก

ความคิดเห็น (0)

ยังไม่มีความคิดเห็นเลย มาเป็นคนแรกกันไหมครับ