บทนำ: ทำไมต้อง 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