ผมเคยมีความคิดว่าจะสังเคราะห์เสียง พูดของคนไทย โดยมีหลักการพื้นฐานคือ
1. บันทึกเสียงคำพูดหนึ่งคำ
2. ถอดคลื่นความถี่เสียง ด้วยทฤษฎีฟูเรียทรานสฟอร์ม จำนวน 2000 ครั้งต่อหนึ่งนาที (8k, 22k, 44k)
3. นำคลื่นเสียงอันนั้น มาดูโครงสร้างว่า มีลักษณะการโค้งเป็นอย่างไรบ้าง ?
4. สร้างจุด Control Points (กำลังใช้ทฤษีการสร้างเส้นโค้ง Bezier มาช่วย) เพื่อทำให้เกิดเส้นโค้งให้เหมือนกับลักษณะของเสียงที่บันทึกเข้ามา !!
5. ในช่วง 0 ถึง 1 ของอัลกอริทึม Bezier ให้สร้างช่วงภายในประมาณ 2000 คั้ง คือ 1/2000 ในช่วงนั้นจะสามารถรู้ได้ว่า ณ ตำแหน่งนั้น ๆ มีความสูงของความถี่เป็ฯเท่าไร ?
6. สร้างคลื่นความถี่เสียง ด้วยฟังก์ชั่นมัลติมีเดียทั่ว ๆ ไป
หลักการของผม มีความเป็นไปได้สูงมาก โดยใช้อัลกอริทึมง่าย ๆ ซิมเปิ้ล อาศัยความรู้ด้านกราฟิกอัลกอริทึม และธรรมชาติของคลื่นเสียง !!
ใครสนใจนำไปทำโปรเจ็คจบ ปริญญาตรีได้นะครับ ไม่สงวนลิขสิทธิ์...ครับ..
ในวันนี้ผมขอนำเสนอการติดต่อกับเอนจินต์ของไมโครซอฟต์ครับ..จากนั้นใช้โมดูลเสริม ชื่อ pyTTS ในการอินเตอร์เฟสระหว่าง Engine ครับ..
1. ติดตั้ง Microsoft SAPI redistributable
2. ติดตั้ง Extra Microsoft Voices
3. ติดตั้ง pyTTS
ตัวอย่างการใช้งานแรก.. เมื่อต้องการให้อ่านคำว่า Hello World สามารถสั่งงานได้ดังนี้ครับ..
>>> import pyTTS
>>> tts_obj = pyTTS.pyTTS()
>>> tts_obj.Speak("Hello World")
เท่านี้ท่านจะได้ยินเสียงพูดคำว่า เฮลโลเวิลด์ ออกมาจากลำโพงที่ติดกับคอมพิวเตอร์ของท่านแล้วครับ..
นอกจากนั้น อ็อบเจ็ค tts_obj ยังคงประกอบด้วยฟังก์ชั่นต่าง ๆ อีกจำนวนมาก ได้แก่
-SetRate()
-Volumn
-SetVoicebyName()
-SpeakToWave()
-SpeakFromWave()
เป็นต้น
ผมไม่ขออธิบายโค๊ดนะครับ เชื่อว่าเพื่อน ๆ ทุก ๆ ท่านเข้าใจได้ไม่ยากนัก...
สำหรับวันนี้ ผมขอนำเสนอเกร็ดความรู้เล็ก ๆ น้อย ๆ เพียงเท่านี้ครับ พบกันโอกาสหน้าครับ.. !!