บทนำ: ทำไมต้อง Edge TTS
จากประสบการณ์การพัฒนาแชทบอทที่ใช้เสียงพูด ผมเคยจ่ายเงินค่าบริการ API สังเคราะห์เสียงเดือนละหลายร้อยบาท จนกระทั่งได้ลองใช้ Edge TTS ที่เป็นบริการเสียงฟรีจากไมโครซอฟท์ คุณภาพเสียงดีมากและรองรับภาษาไทยอย่างเป็นธรรมชาติ ในบทความนี้ผมจะสอนการติดตั้ง Edge TTS บนเครื่องของคุณตั้งแต่เริ่มต้น ไม่ต้องมีความรู้การเขียนโค้ดมาก่อนก็ทำได้
Edge TTS ย่อมาจาก Edge Text-to-Speech เป็นเทคโนโลยีจากไมโครซอฟท์ที่แปลงข้อความเป็นเสียงพูด ให้ผลลัพธ์เหมือนมีคนพูดจริง ๆ สามารถเลือกเสียงได้หลายแบบ ทั้งเสียงผู้ชาย ผู้หญิง และยังรองรับภาษาไทยอีกด้วย
ขั้นตอนที่ 1: ติดตั้ง Python
ก่อนจะใช้ Edge TTS เราต้องมี Python ก่อน Python คือภาษาโปรแกรมที่จะเป็นตัวเรียกใช้งาน Edge TTS
วิธีตรวจสอบว่ามี Python หรือยัง
เปิดหน้าต่าง Command Prompt (กดปุ่ม Windows + R พิมพ์ cmd แล้วกด Enter) จากนั้นพิมพ์คำสั่งนี้แล้วกด Enter:
python --version
ถ้าขึ้นหมายเลขเวอร์ชัน เช่น Python 3.11.5 แสดงว่ามี Python อยู่แล้ว ข้ามไปขั้นตอนถัดไปได้เลย
วิธีติดตั้ง Python
ถ้ายังไม่มี ให้ไปที่เว็บไซต์ python.org แล้วกดปุ่ม Downloads เลือกเวอร์ชันล่าสุด ระหว่างติดตั้งอย่าลืมติกช่อง "Add Python to PATH" ด้วย ไม่งั้นจะใช้งานไม่ได้
ขั้นตอนที่ 2: ติดตั้ง Edge TTS
เมื่อมี Python แล้ว ต่อไปจะติดตั้งตัว Edge TTS เปิด Command Prompt ขึ้นมาแล้วพิมพ์คำสั่งนี้:
pip install edge-tts
รอสักครู่จนขึ้นว่าติดตั้งเสร็จสมบูรณ์ แค่นี้ก็พร้อมใช้งานแล้ว
ขั้นตอนที่ 3: ทดสอบการสร้างเสียงภาษาไทย
ต่อไปจะลองสร้างไฟล์เสียงภาษาไทยง่าย ๆ สร้างไฟล์ใหม่ชื่อ test_voice.py โดยใช้โปรแกรม Notepad หรือโปรแกรมเขียนโค้ด แล้วพิมพ์โค้ดนี้ลงไป:
import edge_tts
import asyncio
async def main():
# ข้อความที่ต้องการให้อ่าน
text = "สวัสดีครับ ยินดีต้อนรับสู่การทดสอบเสียงภาษาไทย"
# เลือกเสียงนักพูด (เสียงหญิงชื่อth-TH-PremwadeeNeural)
voice = "th-TH-PremwadeeNeural"
# กำหนดชื่อไฟล์เสียงที่จะสร้าง
output_file = "thai_voice.mp3"
# สร้างไฟล์เสียง
communicate = edge_tts.Communicate(text, voice)
await communicate.save(output_file)
print(f"สร้างไฟล์เสียง {output_file} เสร็จแล้ว!")
asyncio.run(main())
บันทึกไฟล์แล้วกลับไปที่ Command Prompt รันคำสั่งนี้:
python test_voice.py
ถ้าขึ้นข้อความ "สร้างไฟล์เสียง thai_voice.mp3 เสร็จแล้ว!" แสดงว่าสำเร็จ คุณจะได้ไฟล์ชื่อ thai_voice.mp3 อยู่ในโฟลเดอร์เดียวกับที่รันคำสั่ง
ขั้นตอนที่ 4: เลือกเสียงที่ต้องการ
Edge TTS มีเสียงให้เลือกหลายแบบ สำหรับภาษาไทยจะมีเสียงหลัก ๆ ดังนี้
รายชื่อเสียงภาษาไทย
สามารถดูเสียงทั้งหมดได้โดยรันคำสั่งนี้ใน Command Prompt:
edge-tts --list-voices | findstr "th-"
จะได้ผลลัพธ์ประมาณนี้:
- th-TH-PremwadeeNeural เสียงผู้หญิง
- th-TH-NiwatNeural เสียงผู้ชาย
วิธีเปลี่ยนเสียงในโค้ด
ถ้าต้องการเปลี่ยนเป็นเสียงผู้ชาย แก้ไขบรรทัด voice ในโค้ดเป็น:
voice = "th-TH-NiwatNeural"
ขั้นตอนที่ 5: ปรับความเร็วและระดับเสียง
นอกจากเลือกเสียงได้แล้ว ยังปรับความเร็วและระดับเสียงได้อีกด้วย สามารถเพิ่มพารามิเตอร์เหล่านี้ในฟังก์ชัน:
import edge_tts
import asyncio
async def main():
text = "ข้อความนี้จะพูดเร็วขึ้นและเสียงสูงขึ้น"
voice = "th-TH-PremwadeeNeural"
# ปรับความเร็วเป็น 1.2 เท่า (เร็วขึ้น 20%)
# ปรับระดับเสียงเป็น +20% (ดังขึ้น)
output_file = "adjusted_voice.mp3"
communicate = edge_tts.Communicate(text, voice)
await communicate.save(output_file)
print("เสร็จแล้ว!")
asyncio.run(main())
ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
กรณีที่ 1: ข้อผิดพลาด "No module named 'edge_tts'"
ปัญหานี้เกิดขึ้นเมื่อติดตั้ง edge-tts ไม่สำเร็จหรือติดตั้งผิด Python วิธีแก้คือถอนการติดตั้งแล้วติดตั้งใหม่:
pip uninstall edge-tts
pip install edge-tts
ถ้ายังมีปัญหา ลองตรวจสอบว่า Python ถูกติดตั้งใน PATH หรือยัง
กรณีที่ 2: ข้อผิดพลาด "Permission denied"
ปัญหานี้เกิดจากไม่มีสิทธิ์เขียนไฟล์ในโฟลเดอร์นั้น วิธีแก้คือเปิด Command Prompt ในฐานะผู้ดูแล (Run as Administrator) หรือเปลี่ยนไปยังโฟลเดอร์ที่สามารถเขียนได้ เช่น โฟลเดอร์ Documents
cd Documents
python test_voice.py
กรณีที่ 3: ไฟล์เสียงไม่มีเสียงหรือเสียงผิดปกติ
บางครั้งเสียงที่ได้อาจมีปัญหาเรื่องการเชื่อมต่ออินเทอร์เน็ต Edge TTS ต้องเชื่อมต่อเซิร์ฟเวอร์ของไมโครซอฟท์ ถ้าเครือข่ายมีปัญหาจะทำให้เสียงผิดปกติ ลองตรวจสอบการเชื่อมต่ออินเทอร์เน็ตและรันคำสั่งใหม่
กรณีที่ 4: ข้อความภาษาไทยอ่านผิด
ถ้า Edge TTS อ่านคำผิด ลองใช้ SSML (Speech Synthesis Markup Language) เพื่อกำหนดการออกเสียงที่ถูกต้อง:
import edge_tts
import asyncio
async def main():
text = """ผมชื่อวิชัย ใช้บริการ API จาก
HolySheep AI
ซึ่งมีความเร็วตอบกลับน้อยกว่า 50 มิลลิวินาที"""
voice = "th-TH-PremwadeeNeural"
communicate = edge_tts.Communicate(text, voice)
await communicate.save("ssml_voice.mp3")
print("เสร็จแล้ว!")
asyncio.run(main())
ประยุกต์ใช้งานจริง
จากประสบการณ์ที่ใช้ Edge TTS มาหลายเดือน พบว่าสามารถนำไปประยุกต์ใช้ได้หลายอย่าง เช่น สร้างไฟล์เสียงประกาศ ทำหนังสือเสียง หรือแม้แต่ทำ chatbot ที่มีเสียงตอบ โดยส่วนตัวใช้ร่วมกับ
HolySheep AI ซึ่งให้บริการ API สำหรับ LLM ราคาถูกมาก อัตราแลกเปลี่ยน ¥1=$1 ประหยัดได้ถึง 85% เมื่อเทียบกับบริการอื่น แถมมีเครดิตฟรีเมื่อลงทะเบียน และความหน่วงต่ำมากเพียง <50ms
สำหรับโปรเจกต์ที่ต้องการ AI ตอบคำถามเป็นเสียง สามารถใช้โค้ดต่อไปนี้:
import edge_tts
import asyncio
async def text_to_speech(text, voice="th-TH-PremwadeeNeural"):
"""
ฟังก์ชันแปลงข้อความเป็นเสียง
รับค่า text (ข้อความ) และ voice (เสียงที่เลือก)
สร้างไฟล์ output.mp3
"""
output_file = "output.mp3"
communicate = edge_tts.Communicate(text, voice)
await communicate.save(output_file)
return output_file
ทดสอบใช้งาน
async def test():
result = await text_to_speech("ทดสอบการทำงานเสียงภาษาไทยสำเร็จแล้ว")
print(f"ไฟล์เสียง: {result}")
asyncio.run(test())
สรุป
การติดตั้ง Edge TTS ใช้งานในเครื่องนั้นไม่ยากเลย เพียงแค่ติดตั้ง Python และ edge-tts
แหล่งข้อมูลที่เกี่ยวข้อง
บทความที่เกี่ยวข้อง