ผู้เขียนบทความ :
070 นายนัสรี ม่องพร้า COE #16
061 นายชานนท์ เส็นหนับ COE #16
088 นายทักษกร อเปสริยาโย COE #16
049 นายฮานาฟี ยูโซ๊ะ COE #16
คณะวิศวกรรมศาสตร์ สาขาวิชา วิศวกรรมคอมพิวเตอร์
วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2567
1.ความเป็นมา
ปัจจุบันนักศึกษาได้ประสบกับปัญหาการดำเนินการด้านเอกสารจากฝ่ายทะเบียน โดยการที่นักศึกษาไม่รู้ขั้นตอนหรือมีความเข้าใจผิดในการทำเรื่องเอกสาร จึงทำให้ต้องมาสอบถามเจ้าหน้าที่อีกครั้ง ทำให้เสียเวลาและสร้างความยุ่งยากแก่ตัวนักศึกษาและเจ้าหน้าที่ฝ่ายทะเบียนเอง ด้วยเหตุนี้พวกเราจึงได้ระดมความคิดออกแบบระบบตอบคำถามเรื่องที่เกี่ยวกับงานทะเบียนให้แก่นักศึกษาเพื่ออำนวยความสะดวกให้นักศึกษาและยังแบ่งเบาภาระหน้าที่ของเจ้าหน้าที่ฝ่ายทะเบียน ประกอบไปด้วยในปัจจุบัน ระบบสารสนเทศเข้าถึงได้ง่าย ทำให้พวกเราตัดสินใจที่จะสร้างระบบ “น้องศรี assistant bot” ขี้นโดยที่จะเป็นในรูปแบบ ตอบโต้ด้วยเสียง เพื่อแก้ปัญหาข้างต้นและยังสามารถเข้าถึงข้อมูลได้อย่างรวดเร็ว และมีประสิทธิภาพ
2.วัตถุประสงค์
2.1 เพื่อช่วยแก้ปัญหาให้กับบุคลากร หรือ นักศึกษา ที่ต้องการสอบถามกิจกรรมหรือกำหนดการต่างๆเกี่ยวกับงานทะเบียน สามารถเข้าถึงข้อมูลได้ทันที
2.2 เพื่อลดขั้นตอนความยุ่งยากแก่ผู้มาสอบถามงานทะเบียน โดยสามารถสนทนากับน้องศรีถึงข้อมูลที่ต้องการได้
2.3 เพื่อช่วยลดภาระของเจ้าหน้าที่เกี่ยวกับงานทะเบียน จากคำถามทั่วไปหรือกำหนดการต่างๆของมหาวิทยาลัย
3.ขอบเขต
3.1 สามารถรับข้อความเสียงของผู้ใช้งานแล้วแปลงเป็นข้อความ แสดงออกทางหน้าจอได้ทันที
3.2 สามารถถอดข้อความเสียงภาษาไทยได้แม่นยำถึง 80% หรือ มากกว่านั้น
3.3สามารถแยกคำถามที่สามารถตอบได้หรือไม่สามารถตอบได้
4.ประโยช์นที่คิดว่าจะได้รับ
4.1 ทำให้บุคลากร หรือ นักศึกษา ที่ต้องการสอบถามกิจกรรมหรือกำหนดการต่างๆเกี่ยวกับงานทะเบียน สามารถเข้าถึงข้อมูลได้ทันที
4.2 สามารถแยกแยะภาษาที่รับเข้ามาแล้วตอบโต้กลับไปยังต้นทางได้
4.3 สามารถแยกคำและจับใจความสำคัญของคำถามได้
5.ข้อมูลที่เกี่ยวข้อง
-โมดูล gTTs คือ โมดูลที่ดึง Google TTS (Text-to-Speech) API เข้ามาใช้งาน โดยจะสร้างไฟล์เสียงสังเคราะห์ขึ้นมาในรูปแบบ mp3 ไม่จำกัดความยาว รองรับภาษาต่าง ๆ รวมถึงภาษาไทยด้วย
-โมดูล speech recognition เป็นไลบรารีที่ออกแบบมาเพื่อช่วยให้การประมวลผลคำพูดเป็นข้อความทำได้ง่ายขึ้น โดยมันรองรับการทำงานกับหลาย API และระบบบริการการรู้จำเสียง (speech recognition) รวมถึง Google Speech Recognition, Microsoft Bing Voice Recognition, IBM Speech to Text และอื่นๆ อีกหลายบริการ
-โมดูล pygame เป็นไลบรารีในภาษา Python ที่ใช้สำหรับพัฒนาเกม 2D และงานมัลติมีเดียต่าง ๆ เช่น การเล่นเสียง, การแสดงผลภาพกราฟิก และการจัดการการอินเทอร์แอคชั่นกับผู้ใช้ (เช่น คีย์บอร์ด, เมาส์, จอยสติ๊ก) นอกจากนี้ยังมีการจัดการเฟรมเรต (Frame Rate) เพื่อการแสดงผลที่ราบรื่น
– ฐานข้อมูล Data Base คือ ฐานข้อมูลช่วยในการจัดเก็บข้อมูลอย่างเป็นระเบียบ โดยสามารถใช้จัดเก็บข้อมูลที่จำเป็น เช่น ข้อความที่สามารถค้นหาหรือข้อมูลต่างๆ ที่โปรแกรมต้องการ โดยใช้ SQL สำหรับการเข้าถึงและจัดการข้อมูล ทำให้สามารถดึงข้อมูลที่ต้องการได้อย่างรวดเร็วและมีประสิทธิภาพ และยังสามารถช่วยให้โปรแกรมสามารถจัดการข้อมูลจำนวนมากได้ โดยไม่ต้องเก็บไว้ในหน่วยความจำทั้งหมด
6.การดำเนินงาน
ออกแบบการทำงานของโปรแกรม
โค้ดของการทำงานของโปรแกรมที่ใช้สำหรับการค้นหาข้อมูลจากฐานข้อมูลโดยการรับข้อความจากผู้ใช้ทั้งแบบพิมพ์และพูด
ไลบรารีและการเชื่อมต่อฐานข้อมูล
เชื่อมต่อกับฐานข้อมูล MySQL
ฟังก์ชันการพูดข้อความ (Text-to-Speech)
ฟังก์ชันการเล่นไฟล์เสียง
ฟังก์ชันดึงข้อมูลจากฐานข้อมูล
ฟังก์ชันค้นหาความคล้ายคลึงของข้อมูล
ฟังก์ชันรับข้อมูลจากเสียงผู้ใช้
ฟังก์ชันเลือกโหมดการทำงาน
ส่วนหลักของโปรแกรม
วิธีใช้งาน
- กดเริ่มโปรแกรม
- เลือกโหมดการทำงาน ระหว่าง โหมดพิมพ์ข้อความ กับ โหมดการพูด
- ถ้าเลือกโหมดพิมพ์ข้อความ สามารถพิมพ์ข้อความที่ต้องการสอบถามได้
- ถ้าเลือกโหมดการพูด สามารถพูดข้อความที่ต้องการสอบถามได้
- โปรแกรมจะถอดข้อความเสียงที่ได้รับมาเป็นข้อความกลุ่มคำ
- โปรแกรมจะตรวจสอบคำในข้อความที่ถอดความมาว่าตรงกับคำใน Data Base หรือไม่
- หากตรงกับคำไหนใน Data Base โปรแกรมจะทำการพูดประโยคนั้นออกมา หากไม่มีคำไหนที่ตรงจะแสดงข้อความ”น้องศรีเองก็ไม่ทราบค่ะ” แล้วทำการรับคำพูดใหม่อีกครั้ง
โดยคำใน Data Base และ คำตอบที่ได้สามารถปรับเปลี่ยนได้ตามต้องการในโปรแกรม
การทดลอง
รันโปรแกรมและเลือก โหมด 1 (พิมพ์ข้อความ)
- กรอกข้อความ เช่น “สวัสดี”
- ตรวจสอบว่าโปรแกรมค้นหาได้ถูกต้องและแสดงข้อความที่ตอบกลับพร้อมแปลงเป็นเสียง
ผลการทดลองที่ได้
รันโปรแกรมใหม่และเลือก โหมด 2 (พูดข้อความ)
- พูดข้อความ เช่น “สวัสดี”
- ตรวจสอบว่าข้อความถูกต้อง และมีการตอบกลับทั้งในรูปแบบข้อความและเสียง
ผลการทดลองที่ได้
7.สรุปผลและข้อเสนอแนะ
1. สรุปผลการทดลอง
- โหมด 1: พิมพ์ข้อความ
- เมื่อผู้ใช้กรอกข้อความ “สวัสดี” โปรแกรมสามารถค้นหาข้อมูลในฐานข้อมูลได้อย่างถูกต้อง
- โปรแกรมแสดงข้อความที่ตอบกลับและแปลงเป็นเสียงเรียบร้อย
- ผลการทดลองที่ได้: สามารถแสดงผลการตอบกลับของข้อมูลเป็นข้อความเป็นเสียงได้อย่างถูกต้อง
- โหมด 2: พูดข้อความ
- เมื่อผู้ใช้พูดข้อความ “สวัสดี” โปรแกรมสามารถแปลงเสียงเป็นข้อความได้อย่างแม่นยำ
- โปรแกรมแสดงผลข้อความที่ถูกต้องและตอบกลับด้วยเสียงเช่นเดียวกัน
- ผลการทดลองที่ได้: สามารถแสดงผลการตอบกลับของข้อมูลเป็นข้อความเป็นเสียงได้อย่างถูกต้อง
2. ข้อเสนอแนะ
- ปรับปรุงความแม่นยำของการจดจำเสียง: ควรทดสอบในสภาพแวดล้อมที่มีเสียงรบกวนต่ำเพื่อเพิ่มความแม่นยำในการจดจำเสียง
- เพิ่มฟีเจอร์: สามารถพิจารณาเพิ่มฟีเจอร์การค้นหาข้อมูลแบบมีเงื่อนไข (เช่น ค้นหาตามประเภท) เพื่อเพิ่มประสิทธิภาพการค้นหา
- ปรับปรุงการจัดการข้อผิดพลาด: เพิ่มการจัดการข้อผิดพลาดในกรณีที่ไม่พบข้อมูลที่ตรงกันในฐานข้อมูล เช่น การให้คำแนะนำหรือการค้นหาข้อมูลเพิ่มเติม
- เพิ่มกราฟิคภาพเคลื่อนไหว (Animation): พิจารณาเพิ่มภาพเคลื่อนไหว 3D หรือกราฟิกที่ดึงดูดเพื่อทำให้ประสบการณ์ผู้ใช้มีความน่าสนใจและมีชีวิตชีวามากขึ้น
8.ข้อมูลอ้างอิง
[1] UItimate Python. (2021, มิถุนายน 9). ถอดเสียงเป็นข้อความ real-time ใน 10 บรรทัด! Python Speech to Text [วิดีโอ]. Youtube. https://youtu.be/9OC_XZj46OY?si=q-VtQzOh0Pxb1PXY
[2] EXPERT-PROGRAMMING-TUTOR.COM. (2566). การใช้งาน Xampp. สืบค้นเมื่อ 12 ตุลาคม 2567. จาก https://expert-programming-tutor.com/tutorial/java/21_Xampp.php
[3] Max O’Didily. (2023, มิถุนายน 27). How to Play Mp3 Files Using Python (Simple) [วิดีโอ]. Youtube. https://youtu.be/PSFM8-byvAE?si=hW8iLjKlmg_CDGQN