18 คะแนน โดย GN⁺ 2026-01-16 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • Pocket TTS ซึ่งมีพารามิเตอร์ 100 ล้านตัว เป็นโมเดลแปลงข้อความเป็นเสียงแบบน้ำหนักเบาที่มีความสามารถด้านการโคลนเสียง และสามารถรันแบบเรียลไทม์ได้แม้บน CPU ของโน้ตบุ๊กทั่วไป
  • ช่วยลดช่องว่างด้านประสิทธิภาพระหว่าง TTS แบบอิง LLM ขนาดใหญ่ (พารามิเตอร์มากกว่า 1 พันล้าน) กับ Kokoro TTS ขนาดเล็ก (82 ล้านพารามิเตอร์) พร้อมบรรลุทั้งคุณภาพสูงและประสิทธิภาพในเวลาเดียวกัน
  • ใช้เพียงตัวอย่างเสียงยาวประมาณ 5 วินาทีก็สามารถโคลนโทนเสียง อารมณ์ น้ำเสียง และสภาพเสียงของผู้พูดได้อย่างแม่นยำ
  • ใช้สถาปัตยกรรมที่อิง Continuous Audio Language Model โดยทำนายเวกเตอร์แฝงแบบต่อเนื่องโดยตรงแทน discrete token ทำให้ลดขนาดโมเดลได้โดยไม่ลดคุณภาพ
  • เปิดซอร์สภายใต้ไลเซนส์ MIT และนำเสนอมาตรฐานใหม่ของเทคโนโลยี TTS แบบน้ำหนักเบาที่ทำให้การสังเคราะห์เสียงคุณภาพสูงบนสภาพแวดล้อม CPU เป็นจริง

ภาพรวมของ Pocket TTS

  • Pocket TTS เป็นโมเดลแปลงข้อความเป็นเสียงที่มีพารามิเตอร์ 100 ล้านตัว และรองรับความสามารถด้านการโคลนเสียง (voice cloning)
    • สามารถทำงานแบบเรียลไทม์ได้แม้บน CPU ของโน้ตบุ๊ก
    • รันแบบโลคัลได้ด้วยคำสั่ง uvx pocket-tts serve หรือ uvx pocket-tts generate
  • พัฒนาโดย Kyutai และเปิดซอร์สภายใต้ไลเซนส์ MIT
    • ใช้ข้อมูลฝึกจากชุดข้อมูลเสียงภาษาอังกฤษแบบสาธารณะเท่านั้น
    • มีการกล่าวถึงความเป็นไปได้ในการขยายด้วยข้อมูลปิดเพิ่มเติม

เปรียบเทียบกับโมเดล TTS เดิม

  • เทคโนโลยี TTS ในปัจจุบันแบ่งออกได้เป็นสองประเภท
    • โมเดลขนาดใหญ่แบบอิง LLM: เช่น Kyutai TTS 1.6B (ประมาณ 1.6 พันล้านพารามิเตอร์)
      • สามารถสร้างแบบจำลองเสียง อารมณ์ และสภาพเสียงที่หลากหลายได้ แต่ต้องใช้ GPU
    • โมเดลเฉพาะทางขนาดเล็ก: เช่น Kokoro TTS (82 ล้านพารามิเตอร์)
      • มีประสิทธิภาพด้วยการใช้ชุดเสียงคงที่และpipeline ที่ออกแบบด้วยมือ แต่มีข้อจำกัดด้านความยืดหยุ่น
  • Pocket TTS อยู่ในจุดกึ่งกลางของสองแนวทางนี้ และสามารถสังเคราะห์เสียงคุณภาพสูงได้แม้บน CPU

การประเมินประสิทธิภาพ

  • ประเมินด้วยชุด Librispeech test-clean
    • อินพุตเสียงถูกปรับปรุงด้วย Adobe Enhance Speech เพื่อให้ได้คุณภาพ 24kHz
  • โมเดลที่ใช้เปรียบเทียบ: F5-TTS, DSM, Chatterbox Turbo, Kokoro TTS
  • ตัวชี้วัดการประเมิน:
    • Word Error Rate (WER)
    • คุณภาพเสียง (ELO)
    • ความคล้ายของผู้พูด (ELO)
  • สรุปผลลัพธ์:
    • Pocket TTS มีค่า WER 1.84 ซึ่งเป็นอัตราความผิดพลาดต่ำที่สุด
    • คุณภาพเสียงดีกว่า F5-TTS และ DSM
    • ความคล้ายของผู้พูดอยู่ในระดับเทียบเท่ากับเสียงอ้างอิง
    • เป็นโมเดลเดียวที่รันได้เร็วกว่าเรียลไทม์บน CPU
โมเดล จำนวนพารามิเตอร์ WER ↓ คุณภาพเสียง (ELO) ↑ ความคล้ายของผู้พูด (ELO) ↑ รันแบบเรียลไทม์บน CPU
F5-TTS 336M 2.21 1949 ± 27 1946 ± 26
Kyutai TTS 1.6B 750M 1.84 1959 ± 25 2037 ± 21
Chatterbox Turbo 350M 3.24 2055 ± 23 2012 ± 22
Kokoro 82M ไม่มีการโคลนเสียง ไม่มีการโคลนเสียง
Pocket TTS 100M 1.84 2016 ± 25 1898 ± 26
  • เมื่อทดสอบบน CPU Intel Core Ultra 7 165H และ Apple M3 พบว่าเฉพาะ Pocket TTS และ Kokoro เท่านั้นที่สังเคราะห์แบบเรียลไทม์ได้

สถาปัตยกรรม

  • Pocket TTS ถูกออกแบบบนพื้นฐานของงานวิจัย Continuous Audio Language Model
    • วิธีเดิมจะทำนายโทเคนเสียงแบบไม่ต่อเนื่อง แต่ Pocket TTS จะทำนายเวกเตอร์แฝงแบบต่อเนื่อง (latent) โดยตรง
    • ทำให้สามารถตัดคอขวดของ RQ-transformer และทำให้โมเดลมีขนาดเล็กลง

Neural Audio Codec

  • ออกแบบบนพื้นฐานของโคเด็ก Mimi
    • Mimi บีบอัดเป็นโทเคนแบบไม่ต่อเนื่อง แต่ Pocket TTS ใช้การแทนเชิงแฝงแบบต่อเนื่อง
    • ใช้การฝึก VAE ที่ทำ normalization ด้วยการแจกแจงปกติ
    • กลั่น (distillation) WavLM ไปยังการแทนภายในด้วยcosine similarity loss
    • ตัดขั้นตอน RVQ ออก และใช้ distillation loss กับการแทนเชิงแฝงทั้งหมด

Generative Model

  • อิงกรอบงาน Masked Autoregressive (MAR)
    • ประกอบด้วย Causal Transformer backbone และ MLP sampler
    • ใช้ loss แบบ Lagrangian Self-Distillation (LSD) เพื่อทำการสุ่มตัวอย่างแบบ 1-step
    • ระหว่างการอนุมาน จะป้อนกลับเวกเตอร์แฝงที่ทำนายแล้วแบบ autoregressive

การกำหนดเงื่อนไขด้วยเสียงและข้อความ

  • อินพุตของโมเดลคือการรวมกันของพรอมป์ตเสียง (ไม่กี่วินาที) และข้อความ
    • เสียงถูกฝังด้วย codec encoder ส่วนข้อความถูกฝังด้วย SentencePiece tokenizer

องค์ประกอบขนาดโมเดล

  • โมเดลกำเนิด (Transformer + MLP) : 90 ล้านพารามิเตอร์
  • codec decoder: 10 ล้านพารามิเตอร์
  • codec encoder: 18 ล้านพารามิเตอร์ (ใช้เพียงครั้งเดียวตอนเข้ารหัสตัวอย่างเสียง)

ข้อมูลฝึก

  • ประกอบด้วยชุดข้อมูลเสียงภาษาอังกฤษแบบสาธารณะทั้งหมด รวม 88,000 ชั่วโมง
    • AMI, EARNINGS22, GIGASpeech, SPGISpeech, TED-LIUM, VoxPopuli, LibriHeavy, Emilia

ผลงานทางเทคนิคหลัก

Head Batch Multiplier

  • นำเวกเตอร์ z กลับมาใช้หลายครั้งเพื่อลดคอขวดด้านการคำนวณของ Transformer
    • คำนวณ z หนึ่งครั้งต่ออินพุตแต่ละลำดับ แล้วนำกลับมาใช้คำนวณ loss 8 ครั้ง
    • ช่วยเพิ่มประสิทธิภาพและทำให้การฝึกมีเสถียรภาพมากขึ้น

Gaussian Temperature Sampling

  • ใช้การปรับอุณหภูมิการสุ่มตัวอย่างแม้ในปริภูมิแบบต่อเนื่อง
    • ปรับปรุงคุณภาพด้วยการลดความแปรปรวนของ Gaussian noise
    • พบผลลัพธ์ที่ดีเมื่อใช้อุณหภูมิ 0.7

Latent Classifier-Free Guidance (Latent CFG)

  • นำ CFG แบบเดิมมาใช้ในระดับตัวแปรแฝง (z)
    • ปรับปรุงคุณภาพด้วยการผสมเชิงเส้นระหว่างเอาต์พุตแบบมีเงื่อนไข/ไม่มีเงื่อนไข
    • ใช้ค่า α=1.5
    • มีแนวคิดคล้ายกันปรากฏในงานวิจัย SoundReactor

Distillation

  • ใช้โมเดล CFG เป็นโมเดลครูเพื่อกลั่นเป็นโมเดลนักเรียนแบบน้ำหนักเบา
    • ตรึง MLP head ของโมเดลครูไว้ แล้วให้โมเดลนักเรียนเรียนรู้ z ด้วยL2 loss
    • สามารถย่อจากโมเดลครู 24 ชั้น → โมเดลนักเรียน 6 ชั้นได้

บทสรุป

  • Pocket TTS เป็นโมเดล TTS แบบน้ำหนักเบาที่สามารถสังเคราะห์เสียงคุณภาพสูงแบบเรียลไทม์ได้แม้บน CPU
  • ผสานสถาปัตยกรรมบนปริภูมิแฝงแบบต่อเนื่อง, เทคนิคการฝึกที่มีประสิทธิภาพ, และความสามารถด้านการโคลนเสียง
  • เปิดซอร์สภายใต้ไลเซนส์ MIT มอบทั้งการทำซ้ำผลลัพธ์และความสามารถในการต่อยอดให้แก่นักพัฒนาและนักวิจัย

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

 
xguru 2026-01-16

ดูเหมือนว่าจะยังไม่ค่อยเห็นโมเดล TTS แบบโอเพนที่รองรับภาษาเกาหลีเท่าไรนะครับ
ก่อนหน้านี้มี Kokoro-82M ที่บอกว่ารองรับภาษาเกาหลี แต่ก็เคยได้ยินมาว่าคุณภาพน่าจะยังไม่ค่อยดีเท่าไร
ลองหาดูคร่าว ๆ ก็เห็นว่าถ้าทำและใช้งานด้วย GPT-Sovits หรือใช้พวก Edge-TTS ก็ดูเหมือนว่าจะออกมาใช้ได้โอเคพอสมควรเหมือนกันครับ

ช่วงนี้ถ้าเอาไปประกบกับ Whisper ตอน vibe coding ก็น่าจะมีอะไรสนุก ๆ ออกมาได้อยู่ แต่ยังนึกไอเดียไม่ออกเลย ฮ่า

 
ng0301 2026-01-18

ช่วงนี้ Supertonic ก็เพิ่งปล่อยโมเดลที่รองรับภาษาเกาหลีด้วย ลองไปหาดูกันได้เลยครับ

ผมลองทำไลบรารีแบบกดคลิกเดียวไว้ด้วยครับ!

https://www.npmjs.com/package/easy-supertonic-tts

 
bichi 2026-01-19

เจ๋งมากครับ แต่ถ้าระหว่างทำมีที่อยู่ของทรัพยากรเป้าหมายแนบมาด้วยก็น่าจะดี เพราะจะให้ติดตั้งแบบมั่ว ๆ เลยก็คงไม่ได้ 55

 
GN⁺ 2026-01-16
ความคิดเห็นจาก Hacker News
  • ดีใจมากที่โพสต์ของฉันได้รับความสนใจขนาดนี้
    ฉันเป็นส่วนหนึ่งของทีมที่ปารีสซึ่งกำลังพัฒนา โซลูชันเสียงระดับองค์กรบนพื้นฐานงานวิจัยของ Kyutai
    ถ้าใครกำลังสร้างอะไรอยู่ในสายนี้ ฉันอยากแชร์โมเดลและฟีเจอร์ที่กำลังจะมา
    ติดต่อมาได้ทางอีเมลในโปรไฟล์ของฉัน

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

  • มันน่าสนใจมากจนฉันทำเป็น เซิร์ฟเวอร์ MCP ทันที และตั้งให้ Claude แจ้งเมื่อทำงานเสร็จ
    speak_when_done

    • บน macOS มี ฟังก์ชัน TTS ที่ฟังดูเป็นธรรมชาติอยู่แล้วพอสมควร
      ฉันก็เคยทำเครื่องมือคล้ายกันโดยรันคำสั่ง say เป็นโปรเซสเบื้องหลัง แต่การตั้งค่าให้ได้เสียงที่ดีอย่างสม่ำเสมอนั้นยาก
      เหมือนเสียงธรรมชาตินั้นถูกซ่อนไว้อยู่ที่ไหนสักแห่ง
    • ฉันก็เพิ่งทำอะไรคล้าย ๆ กันด้วย piper-tts เหมือนกัน
      speak-mcp
    • ฉันก็ตั้ง Pushover ไว้ด้วยเหตุผลเดียวกัน เพื่อให้ได้รับการแจ้งเตือนบนโทรศัพท์
      ตอนนี้คงจะลองใช้เซิร์ฟเวอร์ของคุณด้วย
  • คราวนี้คุณภาพโค้ดดีมากจริง ๆ
    ปกติโค้ดเบสของโมเดลใหม่ ๆ มักเต็มไปด้วย กองพะเนินของ dependency ที่ไม่จำเป็น แต่รอบนี้ยอดเยี่ยมในแง่วิศวกรรมซอฟต์แวร์ด้วย

  • ขอบคุณที่แชร์! ฉันเป็น แฟนของ Kokoro ก็เลยสร้างผู้ช่วยเสียงแบบโลคัลขึ้นมาเอง
    โปรเจกต์ ova
    จะลองใช้ Pocket TTS แน่นอน

    • ฉันรู้สึกว่า Kokoro ทำ TTS ได้ดีกว่ามาก
      แต่ Pocket TTS เป็นแบบปิด เลยตรวจสอบฟีเจอร์โคลนเสียงไม่ได้
    • รีโพสวยมาก! ฉันก็ว่าจะลองเหมือนกัน
      แค่อยากรู้ว่าใช้ mlx เป็นฐานหรือ Hugging Face transformers เป็นฐาน
  • สงสัยว่าโปรเจกต์นี้จะสามารถแจกจ่ายเป็น ไบนารีแบบสแตติกขนาดเล็ก ได้ไหม
    ตอนนี้ dependency ค่อนข้างใหญ่

    • ติดตามประเด็นที่เกี่ยวข้องได้ ที่นี่
  • ชอบมากจริง ๆ
    แต่เห็นระบุว่าเป็นไลเซนส์ MIT ขณะที่ใน README มีส่วน Prohibited Use แยกต่างหาก เลยสับสนว่ามันจะกลายเป็นซอฟต์แวร์ไม่เสรีหรือเปล่า

    • เท่าที่ฉันเข้าใจ โค้ดเป็น MIT แต่ โมเดลมีไลเซนส์แยกต่างหาก
      เช่นเดียวกับรูปภาพหรือเสียง โมเดล ML อาจไม่ถูกมองว่าเป็นซอฟต์แวร์
      ในหน้าการ์ดโมเดลของ Hugging Face ก็มีข้อห้ามแบบเดียวกัน
    • ไลเซนส์ MIT มีข้อความว่า “สามารถใช้งานได้โดยไม่มีข้อจำกัด”
      เพราะงั้นข้อห้ามใน README อาจ ขัดกันในทางกฎหมาย
    • ข้อห้ามนั้นประมาณว่า “อย่าเอาไปใช้ทำอาชญากรรม” เลยคิดว่า แทบไม่มีผลทางกฎหมาย
    • ถ้าเป็นแบบ “ใช้ได้ แต่ห้ามใช้ในงานประเภทนี้” ก็ยังไม่ชัดว่าในทางปฏิบัติ ถือว่าละเมิดไลเซนส์หรือไม่
    • ข้อห้ามนั้นให้ความรู้สึกเหมือน พิธีรีตองที่ไม่จำเป็น มากกว่า
  • ฉันลองรัน uvx pocket-tts serve บน M1 Mac
    โดยให้มันอ่าน ย่อหน้าแรกของ A Tale of Two Cities เพื่อทดสอบ แต่พบว่าเสียง Javert มีปัญหา ข้ามบางประโยค ไปกลางทาง
    ตัวอย่างเช่นวลีอย่าง “it was the age of foolishness” ถูกละไป
    ทำให้ความน่าเชื่อถือลดลง
    ฉันเปิด issue ที่เกี่ยวข้องไว้ ที่นี่

    • ในการทดสอบของฉัน ส่วน “we had everything before us” ก็ถูกข้ามไปเหมือนกัน นี่เป็นสัญญาณที่ไม่ดีชัด ๆ
    • ฉันก็เห็นอาการเดียวกัน มีทั้งการข้ามประโยคหรือสลับลำดับคำ เป็น การบิดเบือนเอาต์พุต (Win10 RTX 5070 Ti)
    • แม้แต่กับเสียง Eponine ก็ยังข้าม “we had nothing before us” และไม่พูดประโยคสุดท้าย ดูเหมือนภายในจะมีบางอย่างผิดปกติ
  • ปกติฉันไม่ได้ใช้โมเดลเสียงมากนัก แต่ Pocket TTS ทำให้ฉันได้รู้จัก unmute.sh
    มันเป็นโอเพนซอร์สและดูเหมือนทำโดยบริษัทเดียวกัน
    โมเดลพวกนี้ดูเหมือนจะ ใช้งานได้คุ้มค่าแม้ในสภาพแวดล้อม homelab
    โมเดลโอเพนซอร์สตอนนี้ยกระดับขึ้นมาเยอะจนแทบมีตัวเลือกที่เหมาะกับเกือบทุกงานแล้ว
    เหมือนว่าสายที่ยังมีอุปสรรคในการเข้าถึงจริง ๆ เหลืออยู่แค่ โมเดลสำหรับเขียนโค้ด
    ก็น่าสนใจว่า Deepseek 4 จะเอาชนะ Claude Sonnet ได้หรือไม่

  • ฉันรวมมันเข้ากับ ปลั๊กอิน Codex ของตัวเอง ให้มันอ่านสรุปตอนจบของแต่ละเทิร์น ซึ่งทำงานได้ดีอย่างน่าทึ่ง
    มันรันบน MacBook ของฉันได้ ลื่นกว่า Samantha มาก
    agentify-sh/speak