1 คะแนน โดย GN⁺ 2025-07-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อป้อนไฟล์ wav ที่เงียบสนิทแบบสมบูรณ์ให้กับโมเดล Whisper จะเกิดอาการ hallucination โดยแสดงข้อความเดิมเสมอเป็นภาษาอาหรับคือ "ترجمة نانسي قنقر" (Translation by Nancy Qunqar)
  • หากสร้างเสียงเงียบด้วย ffmpeg แล้วรัน Whisper โดยระบุภาษาอาหรับและโมเดล large-v3 ก็จะได้ผลลัพธ์เดิมทุกครั้ง
  • ปัญหานี้ดูเหมือนว่าโมเดล Whisper ถูกฝึกมาให้ตีความเสียงเงียบเป็นข้อความบางอย่างโดยเฉพาะ
  • ในโมเดลรุ่นก่อนหน้า (small เป็นต้น) ยังพอระงับได้ระดับหนึ่งด้วยการปรับพารามิเตอร์อย่าง suppress_tokens, initial prompt, logprob_threshold แต่ใน v3 (โดยเฉพาะ large-v3) แทบไม่ได้ผล
  • มีการเสนอวิธีเลี่ยงอย่าง "ใช้ VAD(Voice Activity Detection)" หรือกรองช่วงที่เป็นความเงียบของเสียงออกล่วงหน้า

อาการของปัญหา

  • มีรายงานปัญหาว่าใน Whisper large-v3 เมื่อเจอเสียงเงียบ จะ hallucination เป็นประโยคภาษาอาหรับ "ترجمة نانسي قنقر" ออกมาเสมอ
  • สร้างไฟล์ wav เงียบ 30 วินาทีด้วย ffmpeg ตามด้านล่าง
    ffmpeg -f lavfi -i anullsrc=r=44100\:cl=stereo -t 30 silence.wav
  • ตัวอย่างการรันคำสั่ง Whisper
    whisper ./silence.wav --language Arabic --model large-v3
  • ผลลัพธ์:
    \[00:00.000 --> 00:29.980] ترجمة نانسي قنقر

สาเหตุและการวิเคราะห์

  • โมเดล Whisper รุ่นใหม่อย่าง large-v3 มีแนวโน้มสร้างผลลัพธ์ hallucination แบบสุ่มสำหรับเสียงเงียบ แทนแนวทางเก่าอย่างการอธิบายเสียง
  • โมเดลก่อนหน้า (small เป็นต้น) ก็สร้างผลลัพธ์จิปาถะจากเสียงเงียบเช่นกัน แต่ยังควบคุมได้บางส่วนด้วยตัวเลือกอย่าง suppress_tokens, initial prompt, logprob_threshold
  • ใน v3 วิธีข้างต้นแทบใช้ไม่ได้ และเกิดเป็น ผลลัพธ์ hallucination แบบตายตัว

ข้อเสนอสำหรับการเลี่ยงและการแก้ปัญหา

  • ใช้ VAD(Voice Activity Detection): ส่งเข้า Whisper เฉพาะช่วงที่มีเสียงพูดจริง และไม่นำช่วงเงียบเข้าไปเลย
  • ปรับพารามิเตอร์อย่าง suppress_tokens, initial prompt, logprob_threshold: มีผลกับบางโมเดล แต่แทบไม่มีนัยสำคัญกับ large-v3
  • สำหรับเสียงที่เงียบสนิทหรือมีสัญญาณอ่อนมาก อาจต้องใช้การประมวลผลภายหลังด้วยวิธีอื่นแทน Whisper

ประเด็นอภิปรายอื่น ๆ

  • มีการพูดถึงเพิ่มเติมว่ามีโมเดลที่ดีกว่า large-v3 สำหรับภาษาอาหรับหรือไม่ แต่ยังไม่มีการเสนอโมเดลทางเลือกที่ชัดเจน

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

 
GN⁺ 2025-07-23
ความคิดเห็นบน Hacker News
  • ตอนถอดเสียงภาษาจีนด้วย whisper-large-v3 เคยเจอหลายครั้งว่าช่วงที่เงียบกลับถูกถอดเป็นประโยคแปลกๆ อย่าง “กดไลก์ แชร์ และเพิ่มรายการโปรดด้วยนะ” เลยสงสัยว่าตอนฝึกโมเดลน่าจะสุ่มเก็บข้อมูลจากวิดีโอ YouTube โดยไม่ได้คัดเฉพาะข้อมูลที่มีประโยชน์

    • ในการถอดเสียงภาษาจีนยังเห็นว่ามักมีข้อความอย่าง "ซับไตเติลนี้มีไว้เพื่อการวิจัย/การเรียนรู้ กรุณาลบภายใน 48 ชั่วโมง" ถูกเพิ่มเข้ามาด้วย ซึ่งเป็นข้อความปฏิเสธความรับผิดที่อาสาทำซับมักใส่ไว้ในซับของหนังหรือรายการ (ผิดกฎหมาย)
    • แม้จะใช้โมเดลอื่น ก็ยังเจออยู่เรื่อยๆ ว่าช่วงเงียบถูกแปลงเป็น ‘ขอบคุณที่รับชม!’ หรือ ‘[MUSIC]’ เป็นต้น น่าเสียดายที่ข้อผิดพลาดแบบนี้ไม่ถูกคัดออกในกระบวนการ QA และยังเกิดซ้ำในโมเดลถอดเสียงหลายตัว ทั้งที่การมีช่วงเงียบในเสียงอินพุตเป็นสถานการณ์ที่เกิดขึ้นบ่อยมาก
    • ตอนลองทดสอบ whisper รู้สึกว่ามันทำงานได้ไม่ค่อยดีกับวิดีโอที่ถ่ายจาก YouTube หรือมือถือ คาดว่าข้อมูลฝึกส่วนใหญ่น่าจะเป็นซับไตเติลหรือสคริปต์ วิดีโอที่ลองเป็นภาษาจีนกลาง และใช้ whisper-large-v3 ซึ่งมีทั้งความเข้าใจผิดแบบทั่วไปและผลลัพธ์ไร้ความหมาย แต่ถึงอย่างนั้นเมื่อเทียบกับซอฟต์แวร์อื่นแล้วก็ยังทำได้ค่อนข้างดี เพียงแต่มันชอบแต่งชื่อผู้พูดขึ้นมาเองหรือเอาไปใส่นำหน้าบทพูด บางครั้งก็สลับระหว่างอักษรจีนตัวย่อกับตัวเต็ม ช่วงเงียบมักพิมพ์ประโยคสุดท้ายซ้ำๆ หรือบางทีก็แทรกข้อความภาษาอังกฤษที่ดูเหมือนคำกำกับฉากเข้าไป ไม่เห็นอะไรอย่างซับไตเติลหรือเอนด์เครดิต แต่ในวิดีโอหนึ่ง ผู้พูดเป็นหวัดแล้วสูดน้ำมูก whisper กลับถอดว่าเป็นกำลังร้องไห้ (“* crying ”) และแปลเสียงไอเป็น “ door closing *” จากนั้นบรรทัดถัดไปยังถูกถอดเป็นข้อความที่ค่อนข้างเสียมารยาทอีกด้วย พอตัดช่วงสูดน้ำมูกออก การถอดเสียงแปลกๆ ก็หายไป แต่คราวนี้กลับสลับไปใช้อักษรจีนตัวเต็มอีก
    • ให้ความรู้สึกคล้ายกับ “ถ้าเอากางเกงยีนส์ใส่เครื่องคิดเลข จะได้คำตอบที่ถูกต้องไหม?”
    • ตอนที่ YouTube เริ่มทำระบบสร้างแคปชันอัตโนมัติ มันเคยติดป้ายเสียงรบกวนหรือดนตรี (โดยเฉพาะเสียงในโรงงานอุตสาหกรรม) เป็น “[foreign]” เสมอ เหมือนเสียงที่มันฟังไม่ออกถูกจัดเป็น “ภาษาต่างประเทศ” มานานแล้ว
  • LLM ก็คล้ายกัน นี่เป็นตัวอย่างคลาสสิกของอาการ "overfitting" กับข้อมูลที่เอนเอียงและไม่ชัดเจน คล้ายกับการเอาข้อความตอบกลับอัตโนมัติ out of office มาใส่เป็นผลลัพธ์การแปลตรงๆ ดูบทความที่เกี่ยวข้อง https://www.theguardian.com/theguardian/2008/nov/01/5

    • สงสัยว่าสิ่งนี้เป็น overfitting จริงหรือว่าเป็นปัญหาเรื่องคุณภาพข้อมูลหรือการจัดหมวดหมู่มากกว่ากัน
  • เพื่อประหยัดเวลาค้นหา ขออธิบายว่าอาหรับ "رجمة نانسي قنقر" หมายถึง "แปลโดย Nancy Qanqar" หรือ "คำแปลของ Nancy Qanqar" โดย "رجمة" แปลว่า การแปล และ "نانسي قنقر" เป็นชื่อคน

    • ในภาษาเช็ก whisper ก็มักถอดช่วงเงียบเป็น “Titulky vytvořil JohnyX” (ซับไตเติลจัดทำโดย JohnyX) บ่อยๆ ด้วยเหตุผลคล้ายกัน
    • มีคนชี้ว่าคำสะกดผิด ไม่ใช่ "رجمة" แต่คำว่าแปลที่ถูกต้องต้องมี ت นำหน้าเป็น "ترجمة"
    • สาเหตุของการถอดแบบนี้คือข้อมูลฝึกมาจากซับไตเติลไม่เป็นทางการของภาพยนตร์เป็นหลัก ซึ่งในซับแบบนั้นมักมีข้อความอย่าง “แปลโดย XXX” อยู่ท้ายเรื่อง ขณะนั้นบนหน้าจอมีซับขึ้นแต่จริงๆ ในเสียงเป็นช่วงเงียบ
  • Whisper มีอาการหลอน (hallucination) บ่อยเกินไปจนอยู่ในระดับใช้งานไม่ได้ เรื่องนี้ถูกบันทึกไว้หลายครั้งแล้ว ถ้าตัดช่วงเงียบออกจากเสียงจะช่วยลดได้บ้าง แต่ยังมีปัญหาอย่างการแก้ไวยากรณ์อัตโนมัติด้วย เช่น ในงานแปลเสียงพูดสองภาษา เป็นต้น แม้โมเดลเสียงรุ่นใหม่จะดีขึ้น แต่ก็ยังไม่หายสนิท https://news.ycombinator.com/item?id=43427376

    • ส่วนตัวมองว่าแทนที่จะบอกว่า “ใช้งานไม่ได้” ประเด็นสำคัญคือเราต้องเข้าใจข้อจำกัดของ Whisper ก่อน แล้วค่อยหาวิธีหลบเลี่ยง ผมสร้างธุรกิจบน Whisper และสิ่งสำคัญมากในช่วงแรกคือเพิ่มโมเดล voice activity detection (VAD) เข้ามาเพื่อลด hallucination ดู https://speechischeap.com
    • ปัญหานี้จะหนักเมื่อใช้แต่โมเดลใหญ่ ควรใช้ร่วมกับโมเดลดาวเทียมขนาดเล็กหรือ logic บางอย่างเสมอ hallucination แบบนี้ตรวจจับได้ง่ายด้วยโมเดล ML/DL แบบเดิม เพราะในช่วงเงียบไม่ควรมีข้อความ และโค้ดสำหรับตรวจจับเรื่องนี้ก็เขียนได้ง่าย
    • การแก้ไวยากรณ์อัตโนมัติพบได้บ่อยในซับไตเติลทั่วไปเช่นกัน ดูวิดีโอ "ทำไมซับไตเติลถึงไม่เหมือนเสียงพากย์?" https://youtu.be/pU9sHwNKc2c
  • แม้แต่ใน Whisper เวอร์ชันภาษาอังกฤษ เวลาปล่อยช่วงเงียบ ก็ยังมักมี “[ sub by sk cn2 ]”, “ยังไงก็ขอบคุณที่รับชมนะครับ! ฝากกดติดตามและกดไลก์ด้วย! บ๊ายบาย!” หรือ “วิดีโอนี้จบแล้ว ขอบคุณที่รับชม หากมีประโยชน์ ฝากกดติดตามช่องด้วย” โผล่มาบ่อยๆ

    • เหตุผลคือโมเดลถูกฝึกจากสื่อเถื่อนหรือวิดีโอ YouTube ซึ่งเป็นวิธีที่ดีในแง่หนึ่ง แต่ก็เสี่ยงทั้งเรื่องการควบคุมคุณภาพและปัญหาลิขสิทธิ์
  • ในภาษารัสเซียก็มักมีอาการหลอนเป็น “Субтитры сделал DimaTorzok” (ซับไตเติลจัดทำโดย DimaTorzok) โผล่มาท้ายข้อความบ่อยๆ เลยสงสัยเหมือนกันว่ามีซับจริงที่ใช้ข้อความนี้มากแค่ไหน จึงลองค้นใน YouTube แต่ดูเหมือนจะไม่ได้มีมากนัก

    • ค้นไปพบว่าผู้ใช้ Telegram ก็มีคำถามเหมือนกันว่าทำไมเวลารู้จำเสียงถึงมีวลีนี้โผล่มา และ DimaTorzok คือใคร อีกทั้งยังเจอกระทู้ที่บอกว่ามีซับแบบนี้ในวิดีโอเกมภาษารัสเซียบน YouTube เป็นต้น https://github.com/openai/whisper/discussions/2372 https://www.youtube.com/watch?v=FAqyUuahMlc&t=401s
    • บางทีอาจมีใครสักคนที่แจกจ่ายซับสาธารณะคล้าย opensubtitles.org ก็ได้
  • ถ้า 30 วินาทีแรกของสายบันทึกเสียงเป็นเสียงเรียกเข้าหรือ DTMF (ซึ่งแทบจะเกิดเสมอเวลาโทรเข้าบริษัท) Whisper มักเลือกภาษาผิดเป็น Nynorsk หรือภาษาเวลส์ บ่อยๆ ไม่ได้เช็กว่ามันถอดออกมาเป็นข้อความอะไร แต่ก็น่าจะเพี้ยนไปในทำนองเดียวกัน สำหรับผมไม่ใช่ปัญหาในทางปฏิบัติ แต่กับคอลเซ็นเตอร์สองภาษาอาจลำบากพอสมควร

  • สำหรับคำถามว่า “Nicolai Winther คือใคร?” ดูได้ที่ https://medium.com/@lehandreassen/who-is-nicolai-winther-985409568201

    • มีคนทิ้งประโยคไว้ว่า “ในอนาคต ทุกคนจะได้ดังคนละ 15 นาทีในชุมชนเทคโนโลยี-ภาษาขนาดจิ๋วเฉพาะทางของตัวเอง ท่ามกลางยุคที่ AI กำลังถาโถม”
  • มีคนบอกว่าควรเปลี่ยนชื่อเรื่องเป็น "OpenAI, หลักฐานเผยว่าฝึกจากหนังเถื่อน"

    • ก็แน่อยู่แล้ว ถ้ามีเงินมากพอ แม้แต่การฝึกจากคอนเทนต์ผิดกฎหมายก็กลายเป็นถูกกฎหมายได้
    • สงสัยว่าสิ่งนี้นับเป็นหลักฐานได้จริงไหม เพราะวงการก็รับรู้กันมานานแล้วว่ามีการใช้ทั้งซับจากชุมชนออนไลน์หรือจาก DVD ซึ่งแต่เดิมอาจเป็นสื่อที่ได้รับอนุญาตด้านลิขสิทธิ์อยู่แล้ว และก็เห็นกันมาแล้วว่าโมเดล AI ฝึกจากสื่อที่มีลิขสิทธิ์หลากหลายประเภท
    • Hacker News เข้มงวดมากกับการแก้ชื่อเรื่องแบบใส่ความเห็นส่วนตัว ต่อให้จะดูเป็นข้อเท็จจริงแทบไม่ต้องสงสัย ถ้าเปลี่ยนชื่อเรื่องแบบนี้ก็จะโดนรายงานทันที
  • ยังมีมุกว่า “หรือว่า Nancy Qunqar เป็นคนมานั่งถอดทีละบรรทัดแบบแมนนวล” พร้อมคำให้กำลังใจแนว “สู้ๆ นะ Nancy! ทำต่อไป!”

    • สงสัยว่าโพสต์นี้อาจเป็นสแปมหรือไม่ เพราะชื่อนี้เจอแค่ใน Instagram กับในกระทู้นี้เท่านั้น เลยสงสัยว่าเป็นสแปมหารายชื่อผู้ติดตามแบบใหม่หรือเปล่า