5 คะแนน โดย GN⁺ 2026-03-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ไลบรารี แปลงข้อความเป็นเสียงพูด (TTS) แบบน้ำหนักเบา ที่ใช้ ONNX และมีความเป็น State-of-the-art สามารถสังเคราะห์เสียงคุณภาพสูงได้ด้วย CPU เพียงอย่างเดียว
  • ขนาดโมเดลอยู่ในช่วง 15M~80M พารามิเตอร์ (25~80MB) ทำงานได้อย่างมีประสิทธิภาพโดยไม่ต้องใช้ GPU
  • มี เสียงในตัว 8 แบบ พร้อมฟังก์ชัน ปรับความเร็ว, ไปป์ไลน์การประมวลผลข้อความล่วงหน้า และ เอาต์พุตเสียง 24kHz
  • ใช้งานได้ทันทีบน Hugging Face และผสานรวมได้ง่ายผ่าน Python API
  • โซลูชัน TTS แบบโอเพนซอร์สที่มุ่งรองรับ การดีพลอยบนอุปกรณ์เอดจ์และการผสานรวมเชิงพาณิชย์

ภาพรวมของ Kitten TTS

  • Kitten TTS เป็น ไลบรารี TTS โอเพนซอร์สที่ใช้ ONNX ซึ่งสามารถสังเคราะห์เสียงคุณภาพสูงบน CPU ได้โดยไม่ต้องใช้ GPU
    • ขนาดโมเดลอยู่ที่ 15M~80M พารามิเตอร์ และมีขนาดบนดิสก์ 25~80MB
    • ในเวอร์ชัน 0.8 มีโมเดล 15M, 40M และ 80M ให้ใช้งาน
  • ขณะนี้ยังอยู่ในขั้น developer preview และ API อาจมีการเปลี่ยนแปลงในอนาคต
  • มี การสนับสนุนเชิงพาณิชย์ (การช่วยผสานรวม, เสียงแบบคัสตอม, ใบอนุญาตระดับองค์กร)

ความสามารถหลัก

  • สถาปัตยกรรมขนาดเล็กมาก: เริ่มต้นที่ 25MB ในแบบ int8 เหมาะกับการดีพลอยในสภาพแวดล้อมเอดจ์
  • ปรับแต่งสำหรับ CPU: ทำ ONNX inference ได้อย่างมีประสิทธิภาพโดยไม่ต้องใช้ GPU
  • เสียงในตัว 8 แบบ: Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo
  • ฟังก์ชันปรับความเร็ว: ควบคุมความเร็วการพูดด้วยพารามิเตอร์ speed
  • ไปป์ไลน์การประมวลผลข้อความล่วงหน้า: จัดการตัวเลข สกุลเงิน หน่วย ฯลฯ โดยอัตโนมัติ
  • เอาต์พุต 24kHz: สร้างเสียงคุณภาพสูงด้วยอัตราสุ่มมาตรฐาน

โมเดลที่มีให้

  • มีโมเดลให้ 4 แบบ
    • kitten-tts-mini (80M, 80MB)
    • kitten-tts-micro (40M, 41MB)
    • kitten-tts-nano (15M, 56MB)
    • kitten-tts-nano (int8, 15M, 25MB)
  • ผู้ใช้บางรายรายงานปัญหากับโมเดล kitten-tts-nano-0.8-int8 และแนะนำให้เปิด issue

เดโมและวิธีใช้งาน

  • สามารถทดลองใช้งานได้โดยตรงผ่านเบราว์เซอร์บน Hugging Face Spaces
  • ติดตั้งได้ด้วย Python 3.8 ขึ้นไป และ pip เท่านั้น
  • ตัวอย่างการใช้งานพื้นฐาน:
    • from kittentts import KittenTTS
    • model = KittenTTS("KittenML/kitten-tts-mini-0.8")
    • audio = model.generate("텍스트", voice="Jasper")
  • ฟังก์ชันขั้นสูง: ปรับความเร็ว (speed), บันทึกเป็นไฟล์ (generate_to_file), ดูรายการเสียงที่ใช้งานได้

โครงสร้าง API

  • KittenTTS(model_name, cache_dir=None)
    • โหลดโมเดลจาก Hugging Face Hub
  • model.generate(text, voice, speed, clean_text)
    • แปลงข้อความเป็นเสียง 24kHz
  • model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)
    • บันทึกเสียงที่สังเคราะห์แล้วลงไฟล์โดยตรง
  • model.available_voices
    • คืนค่ารายการเสียงที่พร้อมใช้งาน

ความต้องการของระบบ

  • ระบบปฏิบัติการ: Linux, macOS, Windows
  • Python: 3.8 ขึ้นไป
  • ฮาร์ดแวร์: ต้องใช้เพียง CPU, ไม่จำเป็นต้องมี GPU
  • พื้นที่ดิสก์: 25~80MB ตามโมเดล
  • แนะนำให้ใช้ virtual environment (venv, conda เป็นต้น)

โรดแมป

  • มีแผนเปิดตัว การปรับแต่ง inference engine, mobile SDK, โมเดลคุณภาพสูง, TTS หลายภาษา, KittenASR
  • Apache License 2.0

1 ความคิดเห็น

 
GN⁺ 2026-03-20
ความคิดเห็นจาก Hacker News
  • ได้ทำ CLI wrapper สำหรับ Kitten TTS ชื่อ purr
    แพ็กเกจ kitten มี dependency chain เป็น kittentts → misaki[en] → spacy-curated-transformers
    เพราะงั้นถ้าติดตั้งตรง ๆ ด้วย uv มันจะดึง torch กับแพ็กเกจ NVIDIA CUDA ขนาดหลาย GB มาด้วย ทั้งที่ตอนรันจริงไม่จำเป็น

    • สคริปต์ติดตั้งทำงานได้ดี
      ตอนรันครั้งแรกเจอ error ว่า “OSError: PortAudio library not found” แต่แก้ได้ด้วย apt install libportaudio2
    • ขอบคุณมากจริง ๆ dependency chain พังจนติดตั้งไม่ผ่านอยู่เรื่อย ๆ แต่ตัวนี้ช่วยแก้ได้
      แต่อยากรู้ว่าการตัด dependency ที่ไม่จำเป็น ออกไป มีผลให้ฟีเจอร์บางอย่างหายไปไหม
  • เป็นโปรเจกต์ที่เจ๋งมาก
    เดี๋ยวจะลองใช้เองเร็ว ๆ นี้
    แต่มีข้อสงสัยอย่างหนึ่ง — ทำไมถึงยังไม่ปล่อยเป็น ไฟล์สั่งงานบนบรรทัดคำสั่ง?
    ตัว API เองก็แทบจะเป็นสไตล์ manpage อยู่แล้ว น่าจะทำได้เร็ว แค่อยากรู้เฉย ๆ

    • เป็นไอเดียที่ดี มีแผนจะทำแบบนั้นเหมือนกัน
      ตอนนี้จะขอฟังฟีดแบ็กกับเวอร์ชัน onnx ก่อน แล้วค่อยทำให้ขั้นตอนการใช้งานง่ายขึ้น รวมถึงเพิ่มไฟล์สั่งงานบนบรรทัดคำสั่งด้วย
  • สิ่งที่ชอบใน OpenClaw คือ แค่ส่ง URL ของ GitHub ใน Discord มันก็สร้าง ข้อความเสียง ให้ได้ทันที
    ภายในไม่กี่นาทีก็ได้ทั้ง benchmark และ sample audio แล้ว
    คุณภาพถือว่าน่าประทับใจเมื่อเทียบกับขนาด เสียงอาจยังไม่สมบูรณ์แบบแต่ก็ไม่แย่
    บน Intel 9700 CPU โมเดล 80M ทำความเร็วได้ประมาณ 1.5 เท่าของเวลาจริง และบน 3080 GPU ก็ไม่ได้เร็วไปกว่านั้น

    • มีแผนจะเพิ่ม เสียงแบบมืออาชีพ มากขึ้น และรองรับ DIY custom voice
      ตอนนี้ใส่เสียงสไตล์อนิเมะไว้เพื่อโชว์ความสามารถด้านการแสดงอารมณ์
      ถ้าช่วยแชร์สาเหตุที่ GPU ช้าใน GitHub issue หรือ Discord ได้ก็ดีมาก จะเพิ่มโค้ดตัวอย่างให้ด้วย
    • เป็น use case ที่ดี น่าสนใจตรงที่สามารถทดสอบและ deploy ใน sandbox ได้โดยไม่ต้องพึ่ง การเชื่อมต่อที่เสี่ยงด้านความปลอดภัย อย่างอีเมล
    • พูดได้แค่ว่าอิจฉา ฉันใช้เวลานานกว่าจะรันได้
      ต้องพยายามเลี่ยงปัญหา Python version conflict แล้วก็ลองใช้ Docker ด้วย แต่สุดท้ายก็ต้องมาตั้งค่าเอง
      ในที่สุดก็รันได้ แต่เกลียด Python จริง ๆ
  • ตอนนี้ดูเหมือนจะรองรับแค่ เสียงสำเนียงอเมริกัน
    ส่วนตัวฉันสนใจแค่สำเนียงไอริช อังกฤษ และเวลส์ สำเนียงอเมริกันไม่ค่อยชอบ

  • TTS ที่ทำงานบนอุปกรณ์ได้เองเป็น เครื่องมือช่วยการเข้าถึง ที่ยอดเยี่ยมมาก
    อุปกรณ์ส่วนใหญ่ยังต้องพึ่งบริการออนไลน์ แต่แนวทาง local แบบนี้ดีกว่ามาก

    • ขอบคุณสำหรับฟีดแบ็ก เร็ว ๆ นี้จะปล่อย โมเดลขนาดเล็ก สำหรับการใช้งานที่หลากหลายมากขึ้น
  • รู้สึกได้ถึง การพัฒนา ที่ชัดเจนกว่าโมเดลก่อนหน้า
    น่าประทับใจมาก ขอบคุณที่แชร์

    • ขอบคุณ โมเดลชุดนี้ดีกว่าก่อนหน้าอย่างมาก
      ตอนนี้โมเดล 15M ดีกว่าโมเดล 80M รุ่นเก่าแล้ว และจะพยายามรักษาความเร็วในการพัฒนาแบบนี้ต่อไป
  • ต่อไปอยากเห็น โมเดลเฉพาะภาษาญี่ปุ่น ด้วย
    แม้ว่า Qwen3-tts จะรองรับภาษาญี่ปุ่น แต่บางครั้งก็มีภาษาจีนปนมา ใช้งานจริงไม่ได้

    • อาจลองแปลงเป็น ฮิรางานะ ในขั้นตอน preprocessing ได้
      แต่ถ้าทำแบบนั้น ข้อมูลเรื่องระดับเสียงสูงต่ำ (เช่น 飴 vs 雨) อาจหายไป
    • โมเดลถัดไป (คาดว่าอีกประมาณ 3 สัปดาห์) จะรองรับภาษาญี่ปุ่น
      ถ้าบอก use case มาได้ ก็อยากนำไปใช้ปรับปรุงคุณภาพ
  • ประสิทธิภาพถือว่าน่าประทับใจเมื่อเทียบกับขนาดโมเดล
    แต่มีปัญหาเรื่องการอ่านตัวเลข
    ลองกับประโยค “Startup finished in 135 ms.” แล้วตัวเลขฟังเหมือน เสียงรบกวน
    พอเปลี่ยนเป็น “one hundred and thirty five seconds” ก็ฟังดีขึ้นหน่อย

    • กำลังแก้ปัญหานี้ในระดับโมเดลด้วย
      ระหว่างนี้แก้ได้ด้วยการเพิ่ม text preprocessing
      โมเดล TTS ส่วนใหญ่จัดการตัวเลขและหน่วยโดยแปลงให้เป็นสตริงก่อน
    • ขอบคุณสำหรับฟีดแบ็ก custom preprocessing ช่วยแก้ได้ประมาณ 95% ของกรณี
      ในรีลีสถัดไปจะมีการแก้ในระดับโมเดลด้วย
    • เพิ่มเติมเล็กน้อย คำที่ถูกคือ “pronounce” หรือ “pronouncing” ส่วน “pronounciating” เป็นการสะกดผิด
  • น่าจะมี sample audio เปรียบเทียบทั้งสี่โมเดลให้ดูด้วย
    ถ้ามีตัวอย่างประโยคเดียวกันที่แต่ละโมเดลอ่าน จะเข้าใจได้ง่ายขึ้น

    • เป็นข้อเสนอที่ดี จะเพิ่มให้เลย
      ระหว่างนี้สามารถลองโมเดลได้เองที่ Hugging Face เดโม
  • อยากรู้ว่านี่เป็น โอเพนซอร์ส หรือเป็นโมเดลแบบ โอเพนเวต

    • ใช่ เป็นโอเพนซอร์ส
      ภายในสุดสัปดาห์นี้จะเพิ่ม phonemizer ที่ใช้ไลเซนส์ MIT ด้วย ดังนั้นน่าจะนำไปใช้ได้อย่างอิสระ