เปลี่ยนข้อความเป็นเสียงพูดด้วย Python

วิธีการใช้ภาษา 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()