KittenTTS เผชิญปัญหา Python Dependency แม้จะสัญญาขนาดเพียง 25MB

ทีมชุมชน BigGo
KittenTTS เผชิญปัญหา Python Dependency แม้จะสัญญาขนาดเพียง 25MB

KittenTTS ได้กลายเป็นโมเดล text-to-speech แบบโอเพนซอร์สที่น่าสนใจ โดยอ้างว่าสามารถสังเคราะห์เสียงคุณภาพสูงได้ในขนาดเพียง 25MB พร้อมการทำงานแบบ CPU-only เท่านั้น อย่างไรก็ตาม การตอบสนองจากชุมชนเผยให้เห็นช่องว่างที่สำคัญระหว่างคำสัญญาเรื่องความเบาของโปรเจกต์กับความท้าทายในการนำไปใช้งานจริง

ข้อมูลจำเพาะของโมเดล

  • พารามิเตอร์: 15 ล้าน
  • ขนาดโมเดล: <25MB
  • การทำงานแบบ CPU เท่านั้น (ไม่จำเป็นต้องใช้ GPU)
  • อัตราการสุ่มตัวอย่าง: 24kHz
  • เสียงที่มีให้เลือก: 6 ตัวเลือก (expr-voice-2/3/4-m/f)
  • ใบอนุญาต: Apache-2.0 (มีปัญหาการพึ่งพา GPL)

ปัญหาการติดตั้งที่ขัดแย้งกับคำอ้าง Works Literally Everywhere

โปรเจกต์นี้อ้างอย่างกล้าหาญว่า Works literally everywhere ในข้อกำหนดระบบ แต่ผู้ใช้รายงานปัญหาการติดตั้งที่ล้มเหลวอย่างแพร่หลาย ปัญหาหลักเกิดจากปัญหาความเข้ากันได้ของเวอร์ชัน Python และเครือข่าย dependency ที่ซับซ้อนซึ่งสามารถขยายขนาดได้หลายกิกะไบต์ ผู้ใช้พบปัญหาการล้มเหลวทั้งในเวอร์ชัน Python เก่าและใหม่ โดยบางการติดตั้งต้องใช้พื้นที่ virtual environment ถึง 6GB - ซึ่งห่างไกลจากขนาด 25MB ที่โฆษณาไว้

สถานการณ์กลายเป็นปัญหามากจนสมาชิกชุมชนแนะนำให้ใช้วิธีการติดตั้งทางเลือกอย่าง uvx และ uv เพื่อหลีกเลี่ยง dependency hell เครื่องมือเหล่านี้แม้จะช่วยได้ แต่ก็เพิ่มความซับซ้อนอีกชั้นหนึ่งสำหรับผู้ใช้ที่ต้องการเพียงแค่ทดลองใช้โมเดล

สรุปปัญหาการติดตั้ง

  • ขนาด Virtual environment: สูงถึง 6GB (เทียบกับที่โฆษณาไว้ 25MB)
  • ปัญหาความเข้ากันได้ของเวอร์ชัน Python
  • การพึ่งพาคอมโพเนนต์ที่มีใบอนุญาต GPL-3.0
  • ข้อผิดพลาดในการคอมไพล์บนระบบบางตัว
  • วิธีแก้ไขที่แนะนำ: ใช้เครื่องมือ uvx/uv

ข้อกังวลเรื่องใบอนุญาต GPL คุกคามการใช้งานเชิงพาณิชย์

ปัญหาใบอนุญาตที่สำคัญได้เกิดขึ้นซึ่งอาจจำกัดการนำ KittenTTS ไปใช้ในแอปพลิเคชันเชิงพาณิชย์ แม้จะโฆษณาว่าใช้ใบอนุญาต Apache-2.0 แต่โมเดลต้องพึ่งพา phonemizer ซึ่งใช้ espeak-ng ที่มีใบอนุญาต GPL-3.0 ห่วงโซ่ dependency นี้ทำให้โปรเจกต์ทั้งหมดกลายเป็น GPL-licensed ในทางปฏิบัติ ซึ่งอาจขัดขวางการใช้งานเชิงพาณิชย์

การใช้ไลบรารีนี้ใช้เพียงสี่บรรทัด สามบรรทัดสำหรับตั้งค่าไลบรารี อีกบรรทัดหนึ่งเรียกใช้งาน รวมทั้งคำสั่ง import ด้วย แม้จะไม่พิจารณาคดี Google vs Oracle ฉันไม่คิดว่าบรรทัดเหล่านั้นจะมีความเป็นต้นฉบับเพียงพอ

ความขัดแย้งเรื่องใบอนุญาตนี้ได้จุดประกายการอภิปรายเกี่ยวกับแนวทางแก้ไขที่เป็นไปได้ รวมถึงการลบ GPL dependency หรือการใช้แนวทาง dual-licensing

รีวิวคุณภาพและประสิทธิภาพแบบผสมผสาน

การทดสอบจากชุมชนเผยผลลัพธ์ที่หลากหลายสำหรับคุณภาพ TTS จริง ในขณะที่ผู้ใช้บางคนชื่นชมความสำเร็จทางเทคนิคในการบรรจุโมเดล neural TTS ลงในขนาด 25MB ผู้อื่นอธิบายเอาต์พุตว่ามีเสียงโลหะและเทียม การวัดประสิทธิภาพแสดงให้เห็นว่าโมเดลสร้างเสียงได้ประมาณ 5 เท่าของเวลาจริงบนฮาร์ดแวร์สมัยใหม่ โดยมี latency เริ่มต้นประมาณ 315ms สำหรับข้อความสั้น

คุณภาพดูเหมือนจะแตกต่างกันอย่างมากระหว่างตัวเลือกเสียงต่างๆ โดยเสียงบางตัวฟังดูเหมือนวัยรุ่นที่ยังเปลี่ยนเสียงไม่เสร็จ ในขณะที่เสียงอื่นๆ ถูกอธิบายว่าตื่นเต้นเกินไปหรือเทียม ผู้ใช้หลายคนสังเกตปัญหาการออกเสียงตัวเลขและการรวมคำบางอย่าง

เกณฑ์มาตรฐานประสิทธิภาพ ( Intel Core i9-14900HX )

  • เวลาการโหลดโมเดล: ประมาณ 710 มิลลิวินาที
  • ความหน่วงเริ่มต้น: ประมาณ 315 มิลลิวินาทีสำหรับข้อความสั้น
  • ความเร็วการสร้างเสียง: เร็วกว่าเวลาจริง 5.46 เท่า สำหรับข้อความยาว
  • ประสิทธิภาพคงที่ในเสียงต่างๆ (เร็วกว่าเวลาจริง 4.63-5.28 เท่า)

การตอบสนองของนักพัฒนาและแผนอนาคต

ทีมพัฒนาได้รับทราบปัญหาเหล่านี้และระบุว่าการเผยแพร่ครั้งนี้เป็นเพียง preview checkpoint จากการฝึกอบรมในช่วงแรก พวกเขาสัญญาว่าจะเผยแพร่โมเดลเต็มรูปแบบพร้อมเวอร์ชัน 15M และ 80M parameter ที่ควรให้คุณภาพสูงกว่าอย่างมีนัยสำคัญ ทีมยังกำลังทำงานเพื่อแก้ไขปัญหา dependency และข้อกังวลเรื่องใบอนุญาต

แม้จะมีความท้าทายในปัจจุบัน โปรเจกต์นี้แสดงถึงก้าวสำคัญไปสู่โมเดล AI ที่พกพาได้จริงซึ่งสามารถทำงานบนอุปกรณ์ edge โดยไม่ต้องใช้ GPU แนวคิดของโมเดล TTS ที่เบาเป็นพิเศษได้สร้างความสนใจอย่างมากในชุมชน โดยเฉพาะสำหรับแอปพลิเคชันแบบฝังตัวและการใช้งานแบบออฟไลน์

อ้างอิง: Kitten TTS