วิธีการใช้ภาษา Python เพื่อแปลงข้อความเป็นเสียงพูดคือการใช้งานไลบรารี Text-to-Speech (TTS) ที่มีให้ใช้งานหลากหลาย เช่น pyttsx3, gTTS และ SpeechRecognition ซึ่งเป็นเพียงตัวอย่างเพื่อความสะดวกในการเริ่มต้น ในที่นี้เราจะใช้ pyttsx3 ซึ่งเป็นไลบรารีที่ง่ายและมีความสามารถมากพอในการแปลงข้อความเป็นเสียงพูด
ก่อนอื่นให้ตรวจสอบให้แน่ใจว่าไลบรารี pyttsx3 ได้ถูกติดตั้งและพร้อมใช้งานในเครื่องคอมพิวเตอร์ของคุณแล้ว หากยังไม่ได้ติดตั้งจะสามารถติดตั้งได้โดยใช้คำสั่ง pip install pyttsx3 ใน Command Prompt หรือ Terminal
เมื่อได้ pyttsx3 แล้ว เราสามารถเริ่มใช้งานได้โดยการ import และสร้างอ็อบเจกต์ใหม่ของ Engine ดังนี้
import pyttsx3
engine = pyttsx3.init()
หลังจากนั้น เราสามารถกำหนดค่าต่างๆ ให้กับ Engine ได้ เช่น ภาษาที่ใช้ในการแสดงผลเสียงพูด ระดับความเร็ว อัตราตัวอักษร และอื่นๆ ที่จะสอดคล้องกับความต้องการของคุณ
engine.setProperty('rate', 150) # อัตราความเร็ว 150 words per minute
engine.setProperty('volume', 0.7) # ระดับเสียง 0.7
# สำหรับเลือกภาษา สามารถไปตรวจสอบรายละเอียดเพิ่มเติมในโค้ดจากเอกสาร API ของ pyttsx3
# engine.setProperty('voice', 'th') # ตัวอย่างใช้เสียงไทย
# ในกรณีที่ต้องการให้เสียงพูดผ่านลำโพงหรือหูฟัง สามารถเลือก Audio Output Device ได้เช่นกัน
# engine.setProperty('audioDevice', 'Microsoft Sound Mapper - Output')
เมื่อได้กำหนดค่า Engine ต่างๆ เรียบร้อย ก็สามารถทำการแปลงข้อความเป็นเสียงพูดได้ โดยใช้เมธอด say() หรือ sayAndWait() ของ Engine
text = "สวัสดีชาวโลก"
engine.say(text)
engine.runAndWait()
ตอนนี้คุณสามารถรันโค้ดข้างต้นได้แล้ว และคุณจะได้ยินเสียงพูดที่ระบุในตัวแปล text ซึ่งในที่นี้คือ “สวัสดีชาวโลก”
นอกจากนี้ คุณยังสามารถแปลงข้อความที่ยาวกว่าหรือซับซ้อนกว่านี้ได้ เพียงแค่รวมเป็นฟังก์ชันหรือใช้การวนลูปเพื่อพูดทีละส่วน แล้วอัปเดต Engine เพื่อให้สามารถพูดต่อในครั้งถัดไป
อืม…สุดท้ายนี้ อย่าลืมในบางกรณีที่เราใช้งาน API หรือการเรียก External Service เช่น gTTS หรือ SpeechRecognition เราอาจจำเป็นต้องติดตั้ง Library เสริมเพิ่มเติม ซึ่งอาจจะต้องลงในรูปแบบ Python Package ก่อน ดังนั้นให้แน่ใจว่าคุณลงไลบรารีที่จำเป็นก่อนการใช้งาน
ตัวอย่างโค๊ตสำหรับบันทึกไฟล์ลงคอมพิวเตอร์
import pyttsx3
# สร้างวัตถุ TTS
engine = pyttsx3.init()
# กำหนดคุณสมบัติเสียง
engine.setProperty('rate', 150) # ความเร็วของเสียง (default=200)
engine.setProperty('volume', 1.0) # ระดับเสียง (0.0 - 1.0)
# ใส่ข้อความที่คุณต้องการให้เป็นเสียง
text = "Hello"
# เริ่มเล่นเสียง
engine.save_to_file(text, '/content/sample_data/test.mp3')
engine.runAndWait()