พวกเราเคยสังเกตกันมั้ยครับ ว่าพยางค์ที่เป็นไปได้ในภาษาไทยมีจำนวนกี่พยางค์?

พยางค์ = ส่วนของคำที่เปล่งออกมาครั้งหนึ่ง ๆ

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

พยางค์ที่เป็นไปได้ในภาษาไทย

ซอฟต์แวร์ตัวดังกล่าวผมทิ้งไว้ที่ไหนก็ไม่รู้ แต่จำได้ลาง ๆ ว่าผลลัพธ์ที่ได้ออกมา ทำให้ผมรู้ว่าพยางค์ที่เป็นไปได้ในภาษาไทยมีอยู่ประมาณ 20,000+ พยางค์ เยอะไม่ใช่น้อยเลยนะเนี่ย เรียกว่าสะกดกันครบทุกแม่ ผันกันครบทุกวรรณยุกต์ และก็ไล่กันทุกพยัญชนะที่ออกเสียงได้เลยล่ะ

ถ้าใครเคยทำระบบ Speech Synthesis จะทราบดีว่า การที่เราจะทำให้คอมพิวเตอร์พูดภาษาคนได้เหมือนในภาพยนต์ไฮเทคนั้น เราจะต้องนำหน่วยเสียงพูดมาต่อกัน ซึ่งโดยหลักการแล้ว ยิ่งใช้หน่วยเสียงน้อย ๆ แต่นำมาต่อ ๆ กันเป็นพยางค์ได้หลากหลายเท่าไหร่ ก็ยิ่งถือว่าระบบมีความซับซ้อนสูงมากเท่านั้น

ยกตัวอย่างเช่น ถ้าอยากให้คอมพิวเตอร์เปล่งเสียง “กาน” ก็เอาหน่วยเสียง “กา” กับ “อาน” มาต่อกัน แล้วใช้สมการทางคณิตศาสตร์ ช่วยลดสัญญาณรบกวน บริเวณจุดต่อของหน่วยเสียงพูดทั้งสองหน่วยออกไป เวลาเปล่งเสียงออกมาแล้วจะได้เนียน ๆ หน่อย

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

ผมเองไม่ค่อยชอบเสียงพูดของคอมพิวเตอร์ ที่ได้จากการต่อหน่วยเสียงด้วยวิธีแบบนี้เท่าไหร่ เพราะฟังเสียงแล้วมันกระด้างหูซะเหลือเกิน!!!

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

เพราะเดี๋ยวนี้ข้อจำกัดของพื้นที่เก็บข้อมูลมันก็ไม่มีแล้วนี่นา จะติดก็แต่ข้อจำกัดของการออกเสียงพยางค์ทั้ง 20,000+ พยางค์เท่านั้นเอง ว่าควรจะทำยังไงดี?

ถ้าตั้งโจทย์ไว้ว่าเราจะให้คน ๆ เีดียวเปล่งเสียงพยางค์ทั้ง 20,000+ พยางค์ อือม คิดเป็น 20,000 พยางค์ดีกว่า ถ้วน ๆ ดี แล้วให้คน ๆ นั้นเปล่งเสียงพยางค์วันล่ะ 100 พยางค์ ก็แสดงว่าคน ๆ นี้ต้องน่าสงสารมากเลยนะ เพราะต้องเปล่งเสียงพยางค์เป็นเวลาถึง 200 วัน กว่าจะครบทุกพยางค์ที่เป็นไปได้ในภาษาไทยได้

หรือว่าเราจะลดความน่าสงสารของคน ๆ นี้ โดยการหาคนอีก 4 คนมาช่วยแบ่งพยางค์ไปพูดแทน งั้นก็แสดงว่าเรามีคน 5 คนมาช่วยกันเปล่งเสียงพยางค์ ซึ่งถ้าเป็นแบบนี้ก็จะใช้เวลาเพียงแค่ 40 วันเท่านั้น งานก็จะแล้วเสร็จเรียบร้อย

แต่ประเด็นก็คือคน 5 คนเสียงก็แตกต่างกัน ทีนี้เวลาจะเอาพยางค์เหล่านั้นมาต่อกันเพื่อให้คอมพิวเตอร์พูดเป็นประโยคออกมา คงจะฟังแล้วทุเรศพิลึกเลยแฮะ!!! สงสัยต้องเอาเสียงพยางค์ทั้งหมดมาเข้าสมการคัดกรองอีกทีนึง เพื่อให้ได้เสียงโทนเดียวกันออกมา 😛

โดยสรุปแล้วการทำให้คอมพิวเตอร์พูดได้ มันก็คงจะน่าสนุกไม่น้อยเหมือนกันเน้อะ 😛

[tags]คอมพิวเตอร์,ซอฟต์แวร์,speech synthesis,speech,วาจา,เปล่งคำพูด[/tags]

Related Posts

9 thoughts on “เปล่งวาจา

  1. หนักอีกแล้วสำหรับผม อิอิ

    ปล. ผมเปลี่ยน blog แล้วนะครับ รบกวนเปลี่ยน link ของ poorblogger ด้วยครับ ขอบคุณครับ

  2. ปัญหาอีกอย่างคือ.. ทำไงให้ต่อแล้วเนียนล่ะซิ
    ขนาดพวก IVR ปัจจุบันที่แค่เป็นตัวเลขมันยังไม่เนียนเอาซะเล้ยย

  3. คงบอกได้ไม่แน่นอนน่ะครับว่ามนุษย์เราเกิดขึ้นมาได้อย่างไร
    และคนเราเริ่มพูดกันเป็นภาษาที่รู้เรื่องกันเมื่อไหร่ สิ่งเหล่านั้นอาจมาจากพระเจ้าประทานให้เราหรือเราใช้เวลาวิวัฒนาการกันมาหลายหมื่นหลายพันปี
    ทำให้งานนี้เป็นงานที่ยากไม่น้อย

  4. คนใช้คงสนุกครับคุณ Patsonic แต่คนทำคงเบื่อน่าดู T-T

    ผมเพิ่มให้แล้วนะคุณ BigNose หายจ้อยไปนานเลยนะเนี่ย โฮ่ ๆ 😛

    อือ พูดถึง IVR แล้วนึกขึ้นได้อย่างนึงล่ะคุณ iPAtS เพราะผมเองก็เคยทำ Contact Center มา ไว้ว่าง ๆ จะเล่าให้อ่านกัน แต่ที่นึกขึ้นได้ก็คือ โปรแกรม IVR ส่วนใหญ่ ไม่ได้มีกลไกการเชื่อมพยางค์เลย กลไกตรงนั้นมันไม่มี มันเล่นเอาเสียงมาพูดต่อ ๆ กันเลย แถมยังเป็นเสียงแบบ ADPCM 8 bit อีก แย่เน้อะ ไม่ละเอียดเอาซะเล้ย

    โอ้ ถึงพระเจ้าเลยเหรอคุณ memtest งี้ผมยอมแพ้ครับ T-T

  5. พูดคนละวัน เสียงก็ไม่เหมือนกันแล้วครับเนี่ย
    เอาแค่อัดเสียง 2 ชั่วโมง
    สิบนาทีแรก กับสิบนาทีสุดท้าย
    volume คงต่างกันเห็นได้ชัด

    ตอนแรกอ่านเป็นเปล่ง “จาวา”

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *