ผมแก้บั๊กตัวพากย์เสียงโอเพนซอร์สได้อีกรอบแล้ว!
คราวนี้ก็ยังเป็นเรื่อง OmniVoice เหมือนเดิม เอาข้อสรุปก่อนเลยแล้วกัน ผมเจอบั๊กที่ทำให้แอปค้างไปได้ทั้งตัว แก้มันสำเร็จ แล้ววันรุ่งขึ้นตัวแก้ก็เข้าไปอยู่ในเวอร์ชันใหม่ (v0.3.15) พร้อมชื่อ GitHub ของผมในรีลีสโน้ตด้วย แต่กว่าจะมาถึงตรงนี้ ทางมันไม่ได้เรียบเท่าไหร่
พากย์สเปนอยู่ดีๆ ภาษาเกาหลีก็โผล่ออกมา
ผมกำลังพากย์คลิปภาษาเกาหลีเป็นภาษาสเปน แล้วมีอยู่หลายประโยคที่ออกมาเป็นต้นฉบับเป๊ะๆ ไม่ยอมแปล คือท่ามกลางเสียงพูดสเปนทั้งคลิป จู่ๆ ก็มีเสียงอ่านประโยคภาษาเกาหลีชัดถ้อยชัดคำโผล่ขึ้นมาดื้อๆ
ผมนั่งหาสาเหตุกับ Claude ก็เจอว่า เวลาแอปนี้จะเลียนเสียงใคร มันจะตัดเสียงท่อนสั้นๆ จากคลิปต้นฉบับมาใช้ แล้วแต่ละท่อนจะมีโน้ตแปะกำกับไว้ว่า “ตรงนี้พูดว่าอะไร” ทีนี้บางครั้งสองอย่างนี้มันเหลื่อมกันได้ เสียงตัดมาจากตรงนี้ แต่โน้ตดันเป็นเนื้อหาของอีกจุดที่คลาดไปครึ่งจังหวะ พอเสียงกับข้อความไม่ตรงกัน โมเดลก็งง แล้วแทนที่จะอ่านคำแปล มันเลยอ่านโน้ตนั้นออกมาตรงๆ เลย
ผมเรียบเรียงสาเหตุแล้วเปิดเป็น issue พร้อมส่ง PR ที่มีโค้ดแก้แนบไปด้วย ไอเดียคือทุกครั้งที่ตัดเสียงออกมาหนึ่งท่อน ให้ถอดเสียงท่อนนั้นใหม่อีกรอบ บังคับให้เสียงกับข้อความตรงกันเสมอ
PR ตัวแรกไม่ทันได้เข้า โดนปิดไปแบบเฉียดกันไม่กี่ชั่วโมง
เจ้าของโปรเจกต์เห็นแค่ issue ของผม แล้วลงมือแก้เองภายในไม่กี่ชั่วโมง เป็นการแก้แบบเดียวกันเลย โดยไม่ทันเห็นว่าผมส่ง PR รอไว้อยู่แล้ว PR ของผมเลยไม่ได้ถูกรับเข้าไป
ก็แอบเสียดายอยู่เหมือนกัน อุตส่าห์ทำวิธีแก้มาเป็นโค้ดเสร็จสรรพ แต่สุดท้ายกลายเป็นแค่คนแจ้งปัญหาไปซะงั้น ถึงอย่างนั้นตอนปิด PR เขาก็ทิ้งคอมเมนต์ไว้ให้ บอกว่ารายงานของผมจัดว่าชัดเจนที่สุดเท่าที่โปรเจกต์นี้เคยได้รับมาเลย แล้วก็ขอโทษด้วยว่าการที่ไม่ได้เช็ก PR ที่เปิดค้างอยู่เป็นความพลาดของเขาเอง แถมทิ้งท้ายไว้อีกอย่างนึง ว่าถ้าเมื่อไหร่ผมเจอจุดที่โค้ดของผมจัดการได้ดีกว่าตัวที่เข้าไปแล้ว ให้ส่งมาได้เลย เขาจะดูให้อย่างจริงจัง
คอมเมนต์ตอนปิด PR #1005
กลับไปอ่านโค้ดที่ถูกเลือก แล้วก็เจอรูรั่ว
เขาบอกว่าโค้ดของเขาทำงานได้เหมือนของผมทุกอย่าง ผมก็อยากรู้ว่ามันเหมือนจริงหรือเปล่า แล้วก็เพิ่งได้รับคำเชิญมาหมาดๆ ด้วยว่าถ้าเจอจุดต่างให้ส่งมา เลยเอาโค้ดสองตัวมาวางเทียบกันดูข้างๆ กัน ก็เจอจุดที่ต่างอยู่ที่นึงจริงๆ
ในแอปนี้มีเจ้าตัวถอดเสียงเป็นข้อความอยู่ตัวนึง ซึ่งมันมีโรคประจำตัว คือนานๆ ทีจะเงียบไปเฉยๆ ไม่ตอบอะไรกลับมาเลย เพราะงั้นเวลาสั่งให้มันถอดเสียง เขาจะตั้งเวลากำกับไว้เสมอ ถ้าเลยเวลาแล้วยังเงียบอยู่ก็ให้ยอมแพ้แล้วข้ามไป แต่ในโค้ดที่เพิ่งถูกรับเข้าไป มีอยู่จุดนึงที่ตัวจับเวลานี้หายไป ถ้ามันดันมาเงียบตรงจุดนั้นพอดี ทั้งแอปจะค้างนิ่งไปเหมือนตายเลย โค้ดของผมมีตัวจับเวลาอยู่ แต่ฝั่งที่ถูกเลือกไปไม่มี
รอบนี้ได้เข้าภายในวันเดียว
รอบนี้ผมส่ง PR ที่อัดทุกอย่างที่ต้องรู้ลงไปให้ครบ ทั้งปัญหาอยู่ตรงไหน ปล่อยไว้แล้วจะเกิดอะไรขึ้น แล้วก็เทสต์ที่รันไม่ผ่านก่อนแก้ แต่ผ่านหลังแก้
วันรุ่งขึ้น PR ก็ถูกรับเข้าไปทั้งดุ้น ไม่ต้องแก้อะไรสักจุด พร้อมคอมเมนต์ว่านี่คือรูรั่วของจริง โค้ดก็เขียนตามสไตล์เดิมของไฟล์เป๊ะ เทสต์นี่ระดับตำราเลย แล้วเขาก็ลองตรวจสอบเองอีกรอบด้วย แถมยังขอบคุณที่ผมเอาคำเชิญคราวก่อนมาทำแบบจริงจัง
คอมเมนต์ตอน merge PR #1031
แล้ววันเดียวกันนั้นเอง ชื่อผมก็ไปอยู่ในรีลีสโน้ตของ v0.3.15
ส่วนของรีลีสโน้ต v0.3.15 ที่มีชื่อ GitHub ของผม
ผมเอาคลิปที่เป็นต้นเรื่องทั้งหมดนี้มาพากย์ใหม่ด้วยเวอร์ชันใหม่ คราวนี้ไม่มีภาษาเกาหลีโผล่มาแล้ว
ต้นฉบับ (ภาษาเกาหลี)
เวอร์ชันที่มีบั๊ก: กลางคลิปมีภาษาเกาหลีหลุดออกมา
เวอร์ชันที่แก้แล้ว (v0.3.15): เป็นภาษาอังกฤษตลอดทั้งคลิป
ตัวอย่างนี้พากย์จากภาษาเกาหลีเป็นอังกฤษ บั๊กนี้เกิดไม่ว่าจะพากย์เป็นภาษาไหน
สิ่งที่ได้เรียนรู้
การแก้บั๊กรอบนี้สอนผมอย่างนึง คือ PR โดนปิดไม่ได้แปลว่าเรื่องจบ พอใจเย็นๆ กลับไปนั่งอ่านโค้ดที่ถูกรับเข้าไปอีกรอบ ก็เห็นจุดที่ทุกคนมองข้าม แล้วพอเอากลับไปเสนอแบบสุภาพๆ พร้อมหลักฐานครบ วันเดียวมันก็ได้เข้าเวอร์ชันทางการ ถ้าวันนั้นผมถอดใจเพราะ PR ไม่ได้เข้า ผมคงไม่กลับไปแตะโค้ดนั้นอีก แล้วของของผมก็คงไม่ได้อยู่ในเวอร์ชันทางการด้วย
การไล่แก้ issue โอเพนซอร์สทำให้ผมได้เรียนรู้อะไรหลายอย่างเลย คนตั้งเยอะช่วยกันสร้างเครื่องมือพวกนี้ขึ้นมา แล้วตอนนี้ผมก็เป็นหนึ่งในนั้นแล้วด้วย พอได้ใช้งานเองจริงๆ ก็เลยรู้ว่าตรงไหนคือบั๊ก ทำให้ยิ่งอยากช่วยมากขึ้นไปอีก แล้วยิ่งช่วยก็ยิ่งผูกพันขึ้นเรื่อยๆ อยากให้วงการโอเพนซอร์สคึกคักกว่านี้ มีคนเข้ามาช่วยกันเยอะๆ
นอกจากผมแล้ว มีใครช่วยงานโอเพนซอร์สอยู่เหมือนกันบ้างไหม เล่าประสบการณ์ให้ฟังในคอมเมนต์หน่อยนะ
ใครอยากดูโค้ด: นี่คือ PR #1031 ที่ถูก merge ส่วนเรื่องราวก่อนหน้านี้อยู่ในตอนที่ 1 กับ ตอนที่ 2
รับสรุปข่าวพากย์เสียงด้วย AI รายสัปดาห์
สรุปข่าวและเรื่องราวการพากย์เสียงด้วย AI สัปดาห์ละครั้ง ในภาษาที่คุณเลือก ไม่มีสแปม ยกเลิกได้ทุกเมื่อ
ความคิดเห็น (0)
ยังไม่มีความคิดเห็นเลย มาเป็นคนแรกกันไหมครับ