แปลงข้อความเป็นเสียงคุณภาพสูงด้วย Kokoro: เสียงสังเคราะห์คุณภาพดี ทำงานบน CPU ได้ ใช้งานง่าย
เมื่อไม่กี่ปีก่อน การสร้างเสียงสังเคราะห์ที่สมจริงบนเครื่องคอมพิวเตอร์ส่วนตัวดูเหมือนจะเป็นไปไม่ได้ แต่ปัจจุบัน เทคโนโลยีนี้ก้าวหน้าไปมากจนมีคุณภาพน่าทึ่ง และที่สำคัญคือสามารถทำงานได้โดยไม่ต้องส่งข้อมูลส่วนตัวออกไปภายนอก
วิดีโอสาธิตด้านบนแสดงให้เห็นเสียงที่สร้างขึ้นจากข้อความตัวอย่าง ซึ่งทำงานทั้งหมดบนเครื่องคอมพิวเตอร์ส่วนบุคคล โดยใช้ CPU ในการประมวลผล แม้ว่าเครื่องจะมี GPU แต่ก็ถูกสงวนไว้สำหรับการประมวลผลโมเดลภาษาขนาดใหญ่ (LLM) โดยเฉพาะ
รู้จักกับ Kokoro: โมเดลเสียงสังเคราะห์ขนาดเล็กแต่ทรงพลัง
โมเดลที่ใช้คือ Kokoro ซึ่งแม้จะมีขนาดเพียง 82 ล้านพารามิเตอร์ แต่ก็สามารถสร้างเสียงสังเคราะห์ที่สมจริงได้ในหลายภาษา ทั้งภาษาอังกฤษ จีนกลาง และฮินดี โดยมีเสียงให้เลือกหลากหลายประมาณ 50 เสียง ซึ่งส่วนใหญ่ปรับแต่งมาเพื่อภาษาอังกฤษ
วิธีตั้งค่าและใช้งาน Kokoro แบบง่าย ๆ
การตั้งค่าเซิร์ฟเวอร์สำหรับ Kokoro มีหลายวิธี วิธีที่ง่ายที่สุดคือการใช้ Kokoro-FastAPI ซึ่งเป็นอิมเมจคอนเทนเนอร์สำเร็จรูปที่มาพร้อมกับโมเดลเสียงที่ดาวน์โหลดมาให้แล้ว (อิมเมจมีขนาดประมาณ 5 GB)
คุณสามารถเปิดใช้งานคอนเทนเนอร์ได้ด้วย Docker หรือ Podman โดยใช้คำสั่งพื้นฐาน:
docker run -p 8880:8880 --rm hexgrad/kokoro-fastapi:latestหากต้องการทดสอบการทำงานเบื้องต้น คอนเทนเนอร์จะให้บริการ Web UI แบบง่าย ๆ ที่ localhost:8880/web ซึ่งคุณสามารถป้อนข้อความเพื่อสร้างเสียงและเล่นได้ทันที
นอกจาก Web UI แล้ว คอนเทนเนอร์นี้ยังรองรับการทำงานร่วมกับ API ของ OpenAI ทำให้ง่ายต่อการนำไปปรับใช้กับโปรแกรมที่มีอยู่แล้วที่ใช้งาน OpenAI speech API ตัวอย่างโค้ดทั้ง JavaScript และ Python สามารถดูได้ที่ GitHub: github.com/remotebrowser/speak
สำหรับ Python คำสั่งจะคล้ายกัน:
import requests
text = "Hello, world!"
response = requests.post(
"http://localhost:8880/tts",
json={"text": text, "voice": "en_US/vctk_low/Mixtec"},
)
with open("output.mp3", "wb") as f:
f.write(response.content)ไฟล์เสียงที่สร้างขึ้นจะถูกบันทึกเป็น MP3 หากคุณติดตั้งโปรแกรม SoX (Sound eXchange) ไว้ในเครื่อง เสียงจะเล่นกลับโดยอัตโนมัติ
คุณยังสามารถเลือกเสียงอื่นได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม TTS_VOICE เช่น:
TTS_VOICE="en_US/vctk_low/Mixtec" docker run -p 8880:8880 --rm hexgrad/kokoro-fastapi:latestรายชื่อเสียงทั้งหมดที่มีให้เลือก สามารถดูได้ที่หน้าโปรเจกต์ Kokoro บน Hugging Face: huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md
ทดสอบความเร็วในการสร้างเสียง
อัตราความเร็วในการสร้างเสียง (วัดจากค่าเฉลี่ย 3 ครั้ง) ด้วยเสียง am_eric สำหรับข้อความสั้น ๆ:
"Jupiter is the largest and most massive planet in our solar system. This gas giant, made mostly of hydrogen and helium, is known for its Great Red Spot—a massive storm observed for centuries."
ผลการทดสอบความเร็วบน CPU ต่าง ๆ:
- Intel Core i7-4770K: 4.7 วินาที
- Apple M2 Pro: 4.5 วินาที
- AMD Ryzen 7 8745HS: 1.5 วินาที
จะเห็นได้ว่าแม้แต่ CPU ที่มีอายุมากกว่า 10 ปี ก็ยังสามารถทำงานได้อย่างดีเยี่ยม แสดงให้เห็นถึงประสิทธิภาพที่สูงของระบบ TTS นี้
ทางเลือกอื่น: Speaches สำหรับการใช้งานแบบครบวงจร
สำหรับทางเลือกอื่นที่รองรับ OpenAI-compatible API แนะนำ Speaches (speaches.ai) ซึ่งแตกต่างจาก Kokoro-FastAPI ตรงที่ Speaches ต้องให้คุณดาวน์โหลดโมเดลเสียงผ่าน API เอง เนื่องจากไม่ได้รวมมาในอิมเมจคอนเทนเนอร์ อย่างไรก็ตาม Speaches มีจุดเด่นคือการรวม Whisper ระบบ Speech-to-Text (STT) คุณภาพสูงของ OpenAI มาด้วย หากแอปพลิเคชันของคุณต้องการทั้งการแปลงข้อความเป็นเสียง (TTS) และการแปลงเสียงเป็นข้อความ (STT) Speaches อาจเป็นโซลูชันที่ตอบโจทย์ได้ครบวงจร
เมื่อนำระบบแปลงข้อความเป็นเสียงอย่าง Kokoro ไปใช้ร่วมกับโมเดลภาษาขนาดใหญ่ (LLM) ที่ทำงานบนเครื่องของคุณเอง คุณก็จะสามารถ "ฟัง" คำตอบจาก LLM ได้ แทนที่จะต้องอ่านเพียงอย่างเดียว
#texttospeech #TTS #Kokoro #AI
ขอบคุณ แหล่งข้อมูล
https://ariya.io/2026/03/local-cpu-friendly-high-quality-tts-text-to-speech-with-kokoro/