พวกเราเคยสังเกตกันมั้ยครับ ว่าพยางค์ที่เป็นไปได้ในภาษาไทยมีจำนวนกี่พยางค์?
พยางค์ = ส่วนของคำที่เปล่งออกมาครั้งหนึ่ง ๆ
เมื่อหลาย ๆ ปีก่อนผมก็เคยคิดจะสืบเสาะค้นหาคำตอบนี้นะ ก็เลยสร้างซอฟต์แวร์ขึ้นมาตัวนึง โดยเทียบกับโมเดลของพยางค์ที่เป็นไปได้ในภาษาไทยเรา ดังรูปข้างล่าง
ซอฟต์แวร์ตัวดังกล่าวผมทิ้งไว้ที่ไหนก็ไม่รู้ แต่จำได้ลาง ๆ ว่าผลลัพธ์ที่ได้ออกมา ทำให้ผมรู้ว่าพยางค์ที่เป็นไปได้ในภาษาไทยมีอยู่ประมาณ 20,000+ พยางค์ เยอะไม่ใช่น้อยเลยนะเนี่ย เรียกว่าสะกดกันครบทุกแม่ ผันกันครบทุกวรรณยุกต์ และก็ไล่กันทุกพยัญชนะที่ออกเสียงได้เลยล่ะ
ถ้าใครเคยทำระบบ Speech Synthesis จะทราบดีว่า การที่เราจะทำให้คอมพิวเตอร์พูดภาษาคนได้เหมือนในภาพยนต์ไฮเทคนั้น เราจะต้องนำหน่วยเสียงพูดมาต่อกัน ซึ่งโดยหลักการแล้ว ยิ่งใช้หน่วยเสียงน้อย ๆ แต่นำมาต่อ ๆ กันเป็นพยางค์ได้หลากหลายเท่าไหร่ ก็ยิ่งถือว่าระบบมีความซับซ้อนสูงมากเท่านั้น
ยกตัวอย่างเช่น ถ้าอยากให้คอมพิวเตอร์เปล่งเสียง “กาน” ก็เอาหน่วยเสียง “กา” กับ “อาน” มาต่อกัน แล้วใช้สมการทางคณิตศาสตร์ ช่วยลดสัญญาณรบกวน บริเวณจุดต่อของหน่วยเสียงพูดทั้งสองหน่วยออกไป เวลาเปล่งเสียงออกมาแล้วจะได้เนียน ๆ หน่อย
ซึ่งที่เขาจำเป็นต้องทำแบบนี้ก็เพราะว่า ถ้าให้อัดเสียงพูดให้ครบทุกพยางค์ ก็จำเป็นต้องใช้เวลานานมาก แล้วก็ต้องเสียพื้นที่ในการเก็บเสียงพยางค์ไปมากเลยล่ะ เพราะเสียงเหล่านี้จำเป็นต้องเก็บไว้ในรูปของไฟล์นามสกุล WAV เพื่อจะได้เอาไปใช้ทำอย่างอื่นต่อไป
ผมเองไม่ค่อยชอบเสียงพูดของคอมพิวเตอร์ ที่ได้จากการต่อหน่วยเสียงด้วยวิธีแบบนี้เท่าไหร่ เพราะฟังเสียงแล้วมันกระด้างหูซะเหลือเกิน!!!
แล้วมันจะดีกว่ามั้ยน้อ ถ้าเราสามารถบันทึกเสียงพยางค์ที่เป็นไปได้ของภาษาไทยทั้งหมดเอาไว้??? แล้วเวลาจะใช้ก็ให้ซอฟต์แวร์คอมพิวเตอร์นำพยางค์เหล่านั้นมาต่อกัน เสียงพูดที่ได้น่าจะเหมือนผู้เหมือนคนมากกว่าการต่อหน่วยเสียงนะผมว่า
เพราะเดี๋ยวนี้ข้อจำกัดของพื้นที่เก็บข้อมูลมันก็ไม่มีแล้วนี่นา จะติดก็แต่ข้อจำกัดของการออกเสียงพยางค์ทั้ง 20,000+ พยางค์เท่านั้นเอง ว่าควรจะทำยังไงดี?
ถ้าตั้งโจทย์ไว้ว่าเราจะให้คน ๆ เีดียวเปล่งเสียงพยางค์ทั้ง 20,000+ พยางค์ อือม คิดเป็น 20,000 พยางค์ดีกว่า ถ้วน ๆ ดี แล้วให้คน ๆ นั้นเปล่งเสียงพยางค์วันล่ะ 100 พยางค์ ก็แสดงว่าคน ๆ นี้ต้องน่าสงสารมากเลยนะ เพราะต้องเปล่งเสียงพยางค์เป็นเวลาถึง 200 วัน กว่าจะครบทุกพยางค์ที่เป็นไปได้ในภาษาไทยได้
หรือว่าเราจะลดความน่าสงสารของคน ๆ นี้ โดยการหาคนอีก 4 คนมาช่วยแบ่งพยางค์ไปพูดแทน งั้นก็แสดงว่าเรามีคน 5 คนมาช่วยกันเปล่งเสียงพยางค์ ซึ่งถ้าเป็นแบบนี้ก็จะใช้เวลาเพียงแค่ 40 วันเท่านั้น งานก็จะแล้วเสร็จเรียบร้อย
แต่ประเด็นก็คือคน 5 คนเสียงก็แตกต่างกัน ทีนี้เวลาจะเอาพยางค์เหล่านั้นมาต่อกันเพื่อให้คอมพิวเตอร์พูดเป็นประโยคออกมา คงจะฟังแล้วทุเรศพิลึกเลยแฮะ!!! สงสัยต้องเอาเสียงพยางค์ทั้งหมดมาเข้าสมการคัดกรองอีกทีนึง เพื่อให้ได้เสียงโทนเดียวกันออกมา 😛
โดยสรุปแล้วการทำให้คอมพิวเตอร์พูดได้ มันก็คงจะน่าสนุกไม่น้อยเหมือนกันเน้อะ 😛
[tags]คอมพิวเตอร์,ซอฟต์แวร์,speech synthesis,speech,วาจา,เปล่งคำพูด[/tags]
จะเรียกว่า น่าสนุกก็ได้ เรียกว่า น่าเบื่อก็ได้อีกนั่นแหละ
หนักอีกแล้วสำหรับผม อิอิ
ปล. ผมเปลี่ยน blog แล้วนะครับ รบกวนเปลี่ยน link ของ poorblogger ด้วยครับ ขอบคุณครับ
ขอโทษครับ ลืมแจ้ง blog –> cyberremarks.com
ปล.อยากได้ plugin ป้องกัน spam จัง
ปัญหาอีกอย่างคือ.. ทำไงให้ต่อแล้วเนียนล่ะซิ
ขนาดพวก IVR ปัจจุบันที่แค่เป็นตัวเลขมันยังไม่เนียนเอาซะเล้ยย
คงบอกได้ไม่แน่นอนน่ะครับว่ามนุษย์เราเกิดขึ้นมาได้อย่างไร
และคนเราเริ่มพูดกันเป็นภาษาที่รู้เรื่องกันเมื่อไหร่ สิ่งเหล่านั้นอาจมาจากพระเจ้าประทานให้เราหรือเราใช้เวลาวิวัฒนาการกันมาหลายหมื่นหลายพันปี
ทำให้งานนี้เป็นงานที่ยากไม่น้อย
คนใช้คงสนุกครับคุณ Patsonic แต่คนทำคงเบื่อน่าดู T-T
ผมเพิ่มให้แล้วนะคุณ BigNose หายจ้อยไปนานเลยนะเนี่ย โฮ่ ๆ 😛
อือ พูดถึง IVR แล้วนึกขึ้นได้อย่างนึงล่ะคุณ iPAtS เพราะผมเองก็เคยทำ Contact Center มา ไว้ว่าง ๆ จะเล่าให้อ่านกัน แต่ที่นึกขึ้นได้ก็คือ โปรแกรม IVR ส่วนใหญ่ ไม่ได้มีกลไกการเชื่อมพยางค์เลย กลไกตรงนั้นมันไม่มี มันเล่นเอาเสียงมาพูดต่อ ๆ กันเลย แถมยังเป็นเสียงแบบ ADPCM 8 bit อีก แย่เน้อะ ไม่ละเอียดเอาซะเล้ย
โอ้ ถึงพระเจ้าเลยเหรอคุณ memtest งี้ผมยอมแพ้ครับ T-T
รรรรร อ่านว่า ระ รัน รอน ทำ algorithm พังได้ทันที 😛
พูดคนละวัน เสียงก็ไม่เหมือนกันแล้วครับเนี่ย
เอาแค่อัดเสียง 2 ชั่วโมง
สิบนาทีแรก กับสิบนาทีสุดท้าย
volume คงต่างกันเห็นได้ชัด
ตอนแรกอ่านเป็นเปล่ง “จาวา”
โอ๊ะ น่าสนใจ