เปิดโปรเเกรมด้วยคำสั่งเสียง(Open programs with voice commands)

ผู้เขียนบทความ นายณัฐดนัย วรรณกุล COE.15

คณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์

วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2566

1.ความเป็นมา

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

ดั้งนั้นจากปัญหาดังกล่าวผู้จัดทำจึงได้ศึกษาค้นคว้าเเละได้คิดที่จะสร้างการสั่งงานเปิดโปรแกรมด้วยเสียงขึ้นมาโดยการใช้ SpeechRecognitionในการเเปลงเสียงเป็นข้อความ, ใช้Google Text-to-Speechในการสร้างเสียงพูดจากข้อความ,ใช้osในการเปิดโปรเเกรม ,ใช้ctime และ time ในการบอกเวลา นี้คือข้อมูลส่วนหลักในการทำโปรเเกรมนี้ขึ้นมา

2.วัตถุประสงค์

2.1เพื่อเพิ่มความสะดวกสบายในการเปิดใช้โปรแกรม

2.2เพื่อแก้ไขปัญหาการเปิดเข้าใช้งานโปรเเกรมสำหรับผู้พิการทางการเคลื่อนไหวหรือผู้สูงอายุ

3.ขอบเขต

3.1สามารถใช้คำสั่งเสียงในการเปิดโปรแกรมที่กำหนดไว้ได้

3.2สามารถถามแล้วตอบเวลาปัจจุบันได้

4.ประโยชน์ที่คาดว่าจะได้รับ

4.1เพิ่มความสะดวกสบายในการเปิดเข้าใช้งานโปรแกรม

4.2สามารถนำความรู้การเขียนโปรแกรมเเบบOOPไปประยุกต์ใช้ได้จริง

4.3สามารถที่จะนำระบบไปต่อยอดหรือประยุกต์ในการพัฒนาต่อได้

5.ความรู้ที่เกี่ยวข้อง

5.1การใช้งานไลบรารี SpeechRecognition: ไลบรารี SpeechRecognition ใช้สำหรับการจดจับและแปลงเสียงเป็นข้อความ คุณจะต้องรู้วิธีการใช้งานไลบรารีนี้เพื่อจับเสียงจากไมโครโฟนและแปลงเสียงเป็นข้อความที่สามารถประมวลผลได้

การติดตั้ง SpeechRecognition คุณต้องติดตั้ง SpeechRecognition โดยใช้ pip ใช้คำสั่งนี้

หลังจากติดตั้ง SpeechRecognition คุณสามารถเริ่มใช้ไลบรารีนี้ได้ ต่อไปนี้คือขั้นตอนที่สำคัญในการใช้ SpeechRecognition

นำเข้าไลบรารี

สร้างอินสแตนซ์ของ Recognizer

รับข้อมูลเสียง ใช้ Microphone หรือแหล่งเสียงอื่น ๆ เพื่อรับข้อมูลเสียง

แปลงเสียงเป็นข้อความ ใช้ API สำหรับรับรู้เสียงเพื่อแปลงข้อมูลเสียงเป็นข้อความ

5.2การใช้งาน gTTS (Google Text-to-Speech): gTTS ใช้สร้างเสียงพูดจากข้อความ คุณจะต้องรู้วิธีการใช้ไลบรารีนี้เพื่อให้ระบบของคุณสามารถตอบกลับผู้ใช้ด้วยเสียงพูด

การติดตั้ง gTTS คุณต้องติดตั้ง gTTS โดยใช้ pip ด้วยคำสั่งนี้

หลังจากติดตั้ง gTTS คุณสามารถเริ่มใช้งานไลบรารีนี้ นี่คือขั้นตอนที่สำคัญในการใช้ gTTS

นำเข้าไลบรารี

สร้างอินสแตนซ์ของ gTTS

บันทึกไฟล์เสียง

ใช้เมธอด save() เพื่อบันทึกไฟล์เสียง

เล่นไฟล์เสียง คุณสามารถเล่นไฟล์เสียงที่คุณสร้างโดยใช้โปรแกรมเล่นไฟล์เสียงตามความเหมาะสม ตัวอย่างข้างต้นใช้ os.system() เพื่อเล่นไฟล์เสียงด้วย mpg123

5.3การทำงานกับเวลา: การใช้ ctime และ time ในการแสดงเวลาเป็นส่วนหนึ่งของการให้คำตอบเกี่ยวกับคำถาม “กี่โมงแล้ว”

ctime และ time เป็นไลบรารีที่มาพร้อมกับ Python และใช้ในการทำงานกับเวลาและวันที่

นำเข้าไลบรารี time เพื่อใช้งาน

ctime เป็นฟังก์ชันที่อยู่ในไลบรารี time และใช้ในการแปลงเวลา Unix timestamp เป็นรูปแบบข้อความที่แสดงเวลาและวันที่

5.4การทำงานกับระบบปฏิบัติการ: การใช้งานไลบรารี os เพื่อเปิดแอปพลิเคชันเช่น Spotify, Excel, Chrome และการเปิด URL ในเบราว์เซอร์

ไลบรารี os เป็นไลบรารีใน Python ที่ใช้ในการทำงานกับระบบไฟล์และทำงานร่วมกับระบบปฏิบัติการ

การนำเข้าไลบรารี os เพื่อใช้งาน

5.5การสร้าง loop รอบอนันต์: การใช้ while True ในการทำให้ Voice Assistant สามารถเชื่อมต่อและตอบสนทนากับผู้ใช้ได้ตลอดเวลา

5.6การใช้งานบริการเสียงสร้างของ Google: การใช้งาน Google Speech Recognition คือการเชื่อมต่อกับบริการเสียงของ Google ซึ่งเป็นหัวใจสำคัญในการแปลงเสียงเป็นข้อความ คุณต้องทราบว่าการใช้งานบริการนี้ต้องการการเชื่อมต่ออินเทอร์เน็ต

5.7การเขียนโปรแกรมเชิงวัตถุ (Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลกเปลี่ยนข่าวสารเพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้องเพื่อให้ทำงานต่อไป

  1. import speech_recognition as sr: นี้เป็นการนำเข้าไลบรารี speech_recognition และนำมาใช้โดยใช้ชื่อย่อ sr เพื่อใช้ในการรับรู้เสียงและแปลงเสียงเป็นข้อความ
  2. from time import ctime: นำเข้าฟังก์ชัน ctime จากไลบรารี time ซึ่งใช้ในการแสดงเวลาปัจจุบัน
  3. import time: นำเข้าไลบรารี time เพื่อใช้ฟังก์ชันที่เกี่ยวข้องกับการจัดการเวลา
  4. import os: นำเข้าไลบรารี os เพื่อใช้ในการดำเนินการบนระบบ เช่น เรียกใช้โปรแกรม
  5. from gtts import gTTS: นำเข้าฟังก์ชัน gTTS จากไลบรารี gtts ซึ่งใช้ในการแปลงข้อความเป็นเสียง
  1. class VoiceAssistant: เริ่มต้นการสร้างคลาส VoiceAssistant เพื่อจัดการกับความสามารถของผู้ช่วยเสียงทั้งหมด
  2. def __init__(self): นี้เป็นเมธอดที่ถูกเรียกเมื่อสร้างอ็อบเจกต์ของคลาส VoiceAssistant ในเมธอดนี้ ระบบรับรู้เสียงถูกเริ่มต้นโดยสร้างอ็อบเจกต์ recognizer จาก speech_recognition.Recognizer() เพื่อใช้ในการรับรู้เสียง
  3. def speak(self, audioString): เมธอดนี้ใช้ในการแปลงข้อความเป็นเสียงและเล่นออกมา รับพารามิเตอร์ audioString ที่เป็นข้อความที่จะถูกแปลงเป็นเสียง และใช้ไลบรารี gTTS เพื่อสร้างไฟล์เสียงจากข้อความ และเล่นเสียงโดยใช้ os.system
  4. def record_audio(self): นี้เป็นเมธอดที่ใช้ในการบันทึกเสียงจากไมโครโฟน ใช้ with sr.Microphone() as source: เพื่อเปิดไมโครโฟนและบันทึกเสียงจากผู้ใช้
  5. def process_audio(self, audio): เมธอดนี้ใช้ในการแปลงเสียงที่บันทึกเป็นข้อความ รับพารามิเตอร์ audio ซึ่งเป็นข้อมูลเสียงและใช้ Google Speech Recognition API เพื่อแปลงเสียงเป็นข้อความ จัดการกับข้อผิดพลาดที่อาจเกิดขึ้น เช่น ไม่รู้จักค่าหรือข้อผิดพลาดในการร้องขอของ API
  1. def run(self): นี้เป็นเมธอดที่ใช้ในเริ่มต้นการทำงานของผู้ช่วยเสียง หน่วงเวลา 2 วินาที พูดคำทักทาย และจากนั้นเริ่มลูปที่รับคำสั่ง ประมวลผลคำสั่ง และตอบสนอง
  2. def Bot(self, data): นี้เป็นเมธอดที่ใช้ในการดำเนินการตามคำสั่งที่ได้รับ ตรวจสอบคำสำคัญและทำการตามคำสั่งที่ระบุ เช่น การบอกเวลาปัจจุบัน เเละ เปิดแอปพลิเคชันที่กำหนด
  3. if __name__ == "__main__":ในบล็อกนี้ โปรแกรมตรวจสอบว่าถูกเรียกใช้โดยตรงหรือไม่ และหากถูกเรียกใช้โดยตรง จะสร้างอ็อบเจกต์ VoiceAssistant และเริ่มลูปหลักของผู้ช่วยเสียงโดยเรียกเมธอด run

6.ผลการดำเนินงาน

ตัวโปรเเกรมสามารถบอกเวลาเเละเปิดโปรเเกรมตามที่กำหนดได้

เปิดโปรเเกรมตามคำสั่งเสียงที่กำหนดได้

ตอบเวลาปัจจุบันได้

จากผลการทดลองการเปิดโปรเเกรมเเละถามเวลาจำนวน9ครั้งมีอย่างละ2ครั้งที่ตัวโปรเเกรมไม่ทำงาน

7.สรุปผลเเละข้อเสนอแนะ

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

ข้อเสนอแนะ
โปรแกรมนี้ยังสามารถที่จะพัฒนาต่อได้อีก ไม่ว่าจะเป็นเรื่องการทำงานของตัวโปรแกรมที่เราสามารถพัฒนาให้มีความเสถียรได้มากกว่านี้และการพัฒนาให้สามารถเปิดโปรเเกรมได้มากกว่าที่กำหนดในตอนนี้ได้

8.อ้างอิง

การเขียนโปรแกรมเชิงวัตถุ (Object-oriented programming, OOP)

https://bit.ly/Classoop

ศึกษาการทำเปิดโปรเเกรมด้วยคำสั่งเสียง

www.youtube.com/watch?v=ptOzOlhoayI&t=5s

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *