ผมนำความรู้จากบทความดังต่อไปนี้มาใช้ทำครับ
- ฟังก์ชันใน Python
- อ๊อบเจ็กและคลาสพื้นฐานในภาษา Python
- Speech recognition แบบง่าย ๆ ใน Python 3
- Speech synthesis สังเคราะห์เสียงพูดกับภาษา Python
- เล่นไฟล์เสียงใน Python ด้วย Pyglet
- ตัดคำไทยในภาษา Python
- การดึงเวลามาแสดงใน Python 3
- คัดลอก วาง clipboard (คลิปบอร์ด) ในภาษา Python
- webbrowser
ตอนแรกผมลองเขียนระบบสั่งงานด้วยการพิมพ์คำสั่งลงไปก่อนครับ
โค้ดข้างบนมีคำสั่งดังนี้ครับ
- สวัสดี หรือ ไง หรือ หวัด จะตอบกลับคำทักทายออกมาครับ
- ค้นหาคำว่า.... ระบบจะค้นหาตามที่พิมพ์ลงไปครับ แล้วจะเปิด web browser แล้วค้นผ่านกูเกิล
- ออกจากระบบ คือ ออกจากการทำงาน
- ตอนนี้เวลาเท่าไร ระบบจะบอกเวลาออกมาครับ
- หากพูดอะไรที่ไม่รู้จักลงไป ระบบจะตอบกลับว่า "ขออภัยค่ะ ระบบไม่รู้จักคำสั่งนี้ค่ะ"
ต่อไปผมจะดัดแปลงโค้ดให้สั่งงานด้วยเสียง โดยใช้โมดูล speech_recognition ในการรับเสียงแปลงเป็นข้อความกับ gtts ในการสังเคราะห์เสียงและ pyglet ในการเล่นไฟล์เสียงครับ เนื่องจากผมจะทำระบบสั่งงานด้วยเสียง ผมมีความคิดว่า หากเราเขียนโปรแกรมแล้วพูด ให้โปรแกรมแปลงเป็นข้อความแล้วคัดลอกนำไปใช้งานได้เลย ผมเลยเขียนคำสั่งเพิ่มโมดูล pyperclip เข้าไปทำงานด้วยครับ
โค้ดข้างบนผมเขียนคำสั่งด้วยเสียงไว้ดังนี้
- สวัสดี หรือ ไง หรือ หวัดดี จะพูดคำทักทายออกมาครับ
- ค้นหาคำว่า.... ระบบจะค้นหาตามที่พูดครับ แล้วจะเปิด web browser แล้วค้นผ่านกูเกิล
- ออกจากระบบ คือ ออกจากการทำงาน
- ตอนนี้เวลาเท่าไร ระบบจะบอกเวลาออกมาครับ
- พิมพ์ตาม ระบบจะรับเสียงแล้วคัดลอกข้อความที่พูดออกมาครับ
- หากพูดอะไรที่ไม่รู้จักลงไป ระบบจะตอบกลับว่า "ขออภัยค่ะ ระบบไม่รู้จักคำสั่งนี้ค่ะ"
ปัญหาที่พบ
- การรับเสียงยังทำได้ไม่ดีพอ ถ้าผู้พูดมีปัญหาด้านการออกเสียงภาษาไทย
- การรับเสียงเป็นเวลานานมาก อาจจะทำให้โปรแกรมมีปัญหาได้ จึงไม่ควรเกิน 20 วินาทีและควรออกเสียงให้ชัดเจน อยู่ในที่เงียบ ไม่ควรพูดเร็ว และควรเช็คอุปกรณ์รับเสียง การเชื่อมต่อเครือข่ายอินเทอร์เน็ตให้เรียบร้อยครับ
- คำสั่ง พิมพ์ตาม ยังต้องพัฒนาต่อ เนื่องจากผมไม่สามารถใช้คำสั่งนี้ได้ เพราะผมออกเสียงภาษาไทยไม่ค่อนข้างชัด และ ผมไม่มีคนทดสอบโปรแกรมด้วยครับ
- การเปรียบเทียบค่า True หรือ False ค่อนข้างสับสน และสัญลักษณ์ดำเนินการทาง Boolean ควรศึกษาให้ดี
- เสียงซ้อนกัน ระบบพูดเสียงซ้อนกัน ควรแบ่งวรรทัดคำสั่งให้ทำงานทีละอย่างให้เสร็จก่อนครับ
- เพิ่มคำสั่งเข้าไปในโปรแกรม เช่น สั่งปิดเครื่อง สั่งเปิดโปรแกรมเล่นเพลง เป็นต้น
- ปรับแต่งให้โต้ตอบกับมนุษย์ได้
- พัฒนาระบบแปลภาษา โดยรับเสียงภาษาอังกฤษแล้วพูดออกมาเป็นภาษาไทย แปลภาษาด้วย Python
- เช็คว่าเชื่อมต่อเครือข่ายอินเทอร์เน็ตไหม ถ้าไม่ ให้เปลี่ยนไปใช้ระบบสั่งงานด้วยการพิมพ์คำสั่ง
- พัฒนา GUI เพื่อจะได้เรียกใช้งานได้สะดวกยิ่งขึ้น หรือไม่ ให้รันโค้ดโดยให้มองเห็นไม่เห็นหน้าต่างคอมมานด์ไลน์
- พัฒนา AI ที่โต้ตอบกับมนุษย์ได้
สำหรับท่านใดนำโค้ดไป Fork หรือพัฒนาต่อ ขอความกรุณาท่านแบ่งปันโค้ดกลับมายังต้นฉบับด้วยนะครับ เพื่อจะได้เป็นประโยชน์ในการศึกษาภาษา Python ให้กับผู้สนใจต่อไปครับ
ขอบคุณครับ
จะหา PyICU ได้จากไหนครับ
ตอบลบใช้คำสั่ง pip install pyicu ครับ
ลบลง pyicu แล้วขึ้น Command "python setup.py egg_info" failed with error code 1 in C:\Users\ADMINI~1
ตอบลบ.GLT\AppData\Local\Temp\pip-install-x_h6qo7z\pyicu\