13 มีนาคม 2558

Published มีนาคม 13, 2558 by with 3 comments

ประยุกต์สร้างระบบสั่งงานด้วยเสียงใน python

สวัสดีผู้อ่านทุกท่านครับ บทความประยุกต์นี้จะพาผู้อ่านนำความรู้ไปประยุกต์ใช้ทำสร้างระบบสั่งงานด้วยเสียงใน python กันครับ


ผมนำความรู้จากบทความดังต่อไปนี้มาใช้ทำครับ

โค้ดดังต่อไปนี้ผมขอใช้ License: BSD ครับ ผมให้ชื่อว่า "นาดี"
ตอนแรกผมลองเขียนระบบสั่งงานด้วยการพิมพ์คำสั่งลงไปก่อนครับ
โค้ดข้างบนมีคำสั่งดังนี้ครับ

  • สวัสดี หรือ ไง หรือ หวัด จะตอบกลับคำทักทายออกมาครับ

  • ค้นหาคำว่า.... ระบบจะค้นหาตามที่พิมพ์ลงไปครับ แล้วจะเปิด web browser แล้วค้นผ่านกูเกิล

  • ออกจากระบบ คือ ออกจากการทำงาน

  • ตอนนี้เวลาเท่าไร ระบบจะบอกเวลาออกมาครับ

  • หากพูดอะไรที่ไม่รู้จักลงไป ระบบจะตอบกลับว่า "ขออภัยค่ะ ระบบไม่รู้จักคำสั่งนี้ค่ะ"

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

  • สวัสดี หรือ ไง หรือ หวัดดี จะพูดคำทักทายออกมาครับ
  • ค้นหาคำว่า.... ระบบจะค้นหาตามที่พูดครับ แล้วจะเปิด web browser แล้วค้นผ่านกูเกิล
  • ออกจากระบบ คือ ออกจากการทำงาน
  • ตอนนี้เวลาเท่าไร ระบบจะบอกเวลาออกมาครับ
  • พิมพ์ตาม ระบบจะรับเสียงแล้วคัดลอกข้อความที่พูดออกมาครับ
  • หากพูดอะไรที่ไม่รู้จักลงไป ระบบจะตอบกลับว่า "ขออภัยค่ะ ระบบไม่รู้จักคำสั่งนี้ค่ะ"

ปัญหาที่พบ

  • การรับเสียงยังทำได้ไม่ดีพอ ถ้าผู้พูดมีปัญหาด้านการออกเสียงภาษาไทย
  • การรับเสียงเป็นเวลานานมาก อาจจะทำให้โปรแกรมมีปัญหาได้ จึงไม่ควรเกิน 20 วินาทีและควรออกเสียงให้ชัดเจน อยู่ในที่เงียบ ไม่ควรพูดเร็ว และควรเช็คอุปกรณ์รับเสียง การเชื่อมต่อเครือข่ายอินเทอร์เน็ตให้เรียบร้อยครับ
  • คำสั่ง พิมพ์ตาม ยังต้องพัฒนาต่อ เนื่องจากผมไม่สามารถใช้คำสั่งนี้ได้ เพราะผมออกเสียงภาษาไทยไม่ค่อนข้างชัด และ ผมไม่มีคนทดสอบโปรแกรมด้วยครับ
  • การเปรียบเทียบค่า True หรือ False ค่อนข้างสับสน และสัญลักษณ์ดำเนินการทาง Boolean ควรศึกษาให้ดี
  • เสียงซ้อนกัน ระบบพูดเสียงซ้อนกัน ควรแบ่งวรรทัดคำสั่งให้ทำงานทีละอย่างให้เสร็จก่อนครับ
การนำไปพัฒนาต่อ

  • เพิ่มคำสั่งเข้าไปในโปรแกรม เช่น สั่งปิดเครื่อง สั่งเปิดโปรแกรมเล่นเพลง เป็นต้น
  • ปรับแต่งให้โต้ตอบกับมนุษย์ได้
  • พัฒนาระบบแปลภาษา โดยรับเสียงภาษาอังกฤษแล้วพูดออกมาเป็นภาษาไทย แปลภาษาด้วย Python
  • เช็คว่าเชื่อมต่อเครือข่ายอินเทอร์เน็ตไหม ถ้าไม่ ให้เปลี่ยนไปใช้ระบบสั่งงานด้วยการพิมพ์คำสั่ง
  • พัฒนา GUI เพื่อจะได้เรียกใช้งานได้สะดวกยิ่งขึ้น หรือไม่ ให้รันโค้ดโดยให้มองเห็นไม่เห็นหน้าต่างคอมมานด์ไลน์
  • พัฒนา AI ที่โต้ตอบกับมนุษย์ได้
ลองนำไปศึกษาและประยุกต์ใช้กันนะครับ

สำหรับท่านใดนำโค้ดไป Fork หรือพัฒนาต่อ ขอความกรุณาท่านแบ่งปันโค้ดกลับมายังต้นฉบับด้วยนะครับ เพื่อจะได้เป็นประโยชน์ในการศึกษาภาษา Python ให้กับผู้สนใจต่อไปครับ

ขอบคุณครับ

,

3 ความคิดเห็น:

  1. จะหา PyICU ได้จากไหนครับ

    ตอบลบ
  2. ลง 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\

    ตอบลบ

แสดงความคิดเห็นได้ครับ :)