41 คะแนน โดย GN⁺ 2025-04-22 | 13 ความคิดเห็น | แชร์ทาง WhatsApp
  • Dia เป็น โมเดล TTS ขนาด 1.6B พารามิเตอร์ที่สร้างเสียงบทสนทนาคุณภาพสูงจากข้อความบทพูด และสามารถปรับอารมณ์และโทนเสียงได้ผ่านออดิโอพรอมป์ต์
  • พัฒนาโดย Nari Labs และคำว่า "Nari" ในภาษาเกาหลีแท้หมายถึง "ลิลลี่"
  • สามารถระบุผู้พูดด้วย [S1], [S2] และ สร้างการแสดงออกที่ไม่ใช่คำพูดได้ เช่น (laughs), (coughs) รวมถึงรองรับการโคลนเสียงแบบง่าย
  • รันได้ทันทีบน HuggingFace พร้อมการทดสอบผ่านเบราว์เซอร์โดยไม่ต้องติดตั้งเพิ่มเติม และรองรับ ZeroGPU
  • ตอนนี้ รองรับเฉพาะภาษาอังกฤษ, ต้องใช้ VRAM อย่างน้อย 10GB และมีแผนสำหรับ โมเดลแบบ Quantized กับ การรองรับหลายภาษา ในอนาคต

Dia: โมเดลสังเคราะห์เสียงที่เน้นบทสนทนา

  • Dia คือ โมเดล TTS แบบโอเพนเวตขนาด 1.6B พารามิเตอร์ที่พัฒนาโดย Nari Labs
  • ต่างจาก TTS เดิมที่แยกสร้างเสียงตามผู้พูดแต่ละคน โดยใช้วิธี สร้างทั้งบทสนทนาในครั้งเดียว
  • เดโม: Hugging Face Space
  • โค้ด: GitHub repository

ฟีเจอร์หลัก

การสร้างเสียงบทสนทนา

  • ระบุผู้พูดในข้อความได้ด้วย [S1], [S2]
  • สามารถแทรก เสียงที่ไม่ใช่คำพูดเป็นข้อความได้ เช่น (laughs), (coughs)
  • สามารถกำหนดอารมณ์ โทน และสไตล์เสียงผ่านออดิโอพรอมป์ต์

การโคลนเสียง

  • หากให้ไฟล์เสียงตัวอย่างพร้อมข้อความบทพูดที่ตรงกัน จะ เปิดใช้งานฟีเจอร์โคลนเสียง
  • สามารถทดลองได้ด้วยการอัปโหลดเสียงบน Hugging Face Space
  • ดูตัวอย่างแบบละเอียดได้ที่ example/voice_clone.py

การใช้งานในรูปแบบไลบรารี

from dia.model import Dia  
model = Dia.from_pretrained("nari-labs/Dia-1.6B")  
output = model.generate(text)  
  • สามารถส่งออกเป็น MP3 ได้ด้วย soundfile
  • แพ็กเกจ PyPI และเครื่องมือ CLI จะเปิดให้ใช้งานเร็ว ๆ นี้

การติดตั้งและการรัน

วิธีรันอย่างรวดเร็ว (ใช้ Gradio)

git clone https://github.com/nari-labs/dia.git  
cd dia && uv run app.py  

หรือถ้าไม่มี uv:

cd dia  
python -m venv .venv  
source .venv/bin/activate  
pip install uv  
uv run app.py  
  • ระหว่างรันจะดาวน์โหลด Descript Audio Codec โดยอัตโนมัติ
  • ทุกครั้งที่รัน เสียงจะถูกสร้างแบบสุ่ม ดังนั้นหากต้องการความสม่ำเสมอควร ตรึงพรอมป์ต์หรือ seed

ประสิทธิภาพและความต้องการฮาร์ดแวร์

  • สภาพแวดล้อมทดสอบ: PyTorch 2.0+, CUDA 12.6 ขึ้นไป
  • VRAM ที่แนะนำ: 10GB ขึ้นไป และมีแผนออก เวอร์ชัน Quantized เร็ว ๆ นี้
  • บน GPU A4000 สร้างได้ราว 40 โทเคน/วินาที (86 โทเคน = เสียงประมาณ 1 วินาที)
  • สามารถเพิ่มความเร็วได้เมื่อใช้ torch.compile

แผนต่อไปและ TODO

  • รองรับ Docker
  • ปรับแต่งความเร็วในการอนุมาน
  • Quantization ของโมเดล (เพิ่มประสิทธิภาพการใช้หน่วยความจำ)
  • กำลังพิจารณาขยายไปสู่การรองรับหลายภาษาและรองรับจำนวนผู้พูดที่มากขึ้น

ใบอนุญาตและข้อจำกัดการใช้งาน

  • ใช้ไลเซนส์ Apache 2.0
  • ตัวอย่างการใช้งานที่ห้ามทำ:
    • สร้างเสียงของผู้อื่นโดยไม่ได้รับอนุญาต (Identity Misuse)
    • สร้างข้อมูลเท็จ (เช่น Fake News)
    • ใช้เพื่อจุดประสงค์ผิดกฎหมายหรือประสงค์ร้าย

ชุมชนและการมีส่วนร่วม

  • ทีมวิจัยเป็นทีมขนาดเล็ก ประกอบด้วย พนักงานเต็มเวลา 1 คน + พาร์ตไทม์ 1 คน
  • สามารถแชร์ฟีดแบ็กและเสนอฟีเจอร์ได้ผ่าน Discord server
  • เป็น โครงการโอเพนซอร์สที่มุ่งเติบโตไปพร้อมกับผู้มีส่วนร่วม

อ้างอิงและพื้นฐานทางเทคนิค

  • โมเดลเสียง: ได้แรงบันดาลใจจาก SoundStorm, Parakeet, Descript Audio Codec
  • การประมวลผล: รองรับโดย Google TPU Research Cloud และโปรแกรม HuggingFace ZeroGPU
  • "Nari" ในภาษาเกาหลีแท้หมายถึง "ลิลลี่"

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

 
reagea0 2025-04-24

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

 
princox 2025-04-24

คนที่สร้างมาโผล่มาเองเลย~ ผม/ฉันก็คงต้องลองใช้ดูสักครั้งเหมือนกัน

 
kleinstein 2025-04-22

คาดหวังภาษาเกาหลีครับ!!

 
toebee 2025-04-22

โอ้ อันนี้ผมกำลังจะทำแล้วเอามาลงพอดี แต่มีคนลงได้ไวไปแล้วนี่เอง ขอบคุณครับ

 
winterjung 2025-04-22

อ๋อ ที่แท้เป็นผลงานของคนเกาหลีเองนี่เอง! ลองฟังเปรียบเทียบกันในหน้าเดโมแล้ว ประสิทธิภาพดีมากจริง ๆ นะครับ ถ้าให้ audio prompt มันจะอ้างอิงเสียงนั้นใช่ไหมครับ? แล้วสงสัยว่าตัวอย่างที่แยกเป็น s1, s2 ต้องใส่แต่ละอันแยกกันหรือเปล่าครับ

 
toebee 2025-04-22

ขอบคุณครับ! ไม่จำเป็นต้องใส่ตัวอย่างที่แยกเป็น [S1] [S2] ในออดิโอพรอมป์ต์ จะใส่แค่ [S1] ก็ได้ หรือจะใส่ทั้ง [S1] [S2] ก็ได้เช่นกัน ขอเพียงรักษาไว้ว่า [S1] ต้องมาก่อนเสมอ

 
xguru 2025-04-22

ใน Hacker News โพสต์นี้ได้อัปโหวตเยอะ เลยมีการสรุปอัตโนมัติโดย GN+ ครับ ผมแค่จัดเรียบเรียงเพิ่มเติมนิดหน่อย

เป็นกำลังใจให้ครับ!!

 
toebee 2025-04-22

ขอบคุณครับ :))

 
toebee 2025-04-22

เป็นโมเดลที่ผมทำเองครับ ฮ่าๆ...

 
kgh1379 2025-04-22

ยอดเยี่ยมมากครับ!! จะนำไปใช้ให้ดีเลย T_T/

 
toebee 2025-04-22

ขอบคุณครับ :)) รบกวนกดดาวใน GitHub ให้ด้วยนะครับ ฮ่าๆ

 
kgh1379 2025-04-22

เสร็จเรียบร้อยแล้ว! อยากเห็นข่าวภาษาเกาหลีด้วยในเร็ว ๆ นี้!! ขอบคุณครับ

 
GN⁺ 2025-04-22
ความคิดเห็นจาก Hacker News

ความทึ่งและคำชื่นชมทางเทคนิค

  • แม้จะเป็นโปรเจกต์ที่สร้างโดยคนเพียงสองคนในเวลาแค่ 3 เดือน แต่ก็แสดงให้เห็นคุณภาพที่สูงมาก
  • หลายคนประทับใจที่ทีมเล็กสามารถสร้างผลงานที่แข่งขันได้ในสายโมเดลเสียงเมื่อเทียบกับบริษัทใหญ่
  • มีความเห็นอย่าง "ฟังเหมือนคนจริงมาก", "เหมือนได้เห็นอนาคตของ TTS", และ "ตัวอย่างน่าทึ่งมาก"
  • ผู้ใช้หลายคนประเมินว่าตัวอย่างเสียงที่ทำจากฉากใน The Office น่าประทับใจเป็นพิเศษ

การประเมินคุณภาพเสียงและลักษณะเด่น

  • ส่วนใหญ่ตอบรับในเชิงบวกว่า "เป็นธรรมชาติเหมือนมนุษย์", "ถ่ายทอดอารมณ์ได้ดี", และ "รายละเอียดอย่างเสียงหัวเราะ ไอ ตะโกน ยังชัดเจนมีชีวิตชีวา"
  • บางส่วนก็พูดถึงข้อเสีย เช่น อารมณ์ที่เกินจริง, ความรู้สึกเหมือนโฆษณา, และ มีเสียงรบกวนช่วงต้น
  • ยังมีความเห็นว่าคล้ายสไตล์นักพากย์บางแบบ (เช่นโทน NPR) หรือให้ความรู้สึกคล้ายแอนิเมชันแฟลช YouTube ยุคก่อน

ประสบการณ์ใช้งานเดโมและการทดสอบด้วยตนเอง

  • มีการแชร์กรณีที่รันสำเร็จบนฮาร์ดแวร์หลายแบบ เช่น M2 MacBook
  • หลายคนชื่นชมที่สามารถลองใช้งานออนไลน์ได้ทันทีผ่าน HuggingFace Spaces
  • มีการแชร์ฟีดแบ็กว่าสามารถรันได้ง่ายด้วย Docker และคอนเทนเนอร์ CUDA เช่นกัน

การใช้งานกับหนังสือเสียงและนิยาย

  • ผู้ใช้หลายคนลองสำรวจศักยภาพในการทำหนังสือเสียง แยกนักพากย์ตามตัวละคร และสร้างบทสนทนาที่มีอารมณ์หลากหลาย
  • อย่างไรก็ตาม บางคนยังเห็นว่า "นักพากย์มนุษย์ยังดีกว่า" และ "นักพากย์ที่ดีมอบพื้นผิวเฉพาะตัวให้กับผลงาน"
  • ขณะเดียวกันก็มีข้อโต้แย้งว่า หาก AI ตีความอารมณ์และตัวละครได้อย่างถูกต้อง ก็อาจทำได้ดีกว่าด้วยซ้ำ

คำขอฟีเจอร์และคำถามเกี่ยวกับการสังเคราะห์เสียง

  • มีการขอฟีเจอร์/การรองรับดังต่อไปนี้:
    • รองรับหลายภาษา (เช่น ภาษาจีน ภาษาฟินแลนด์)
    • รองรับบทสนทนามากกว่า 2 คน
    • โคลนเสียง (เสียงของตัวเอง)
    • ข้อมูลเวลาในระดับคำ
    • รองรับ AMD GPU
    • รองรับการสตรีมผลลัพธ์
  • ทางผู้พัฒนาตอบว่าบางฟีเจอร์กำลังพัฒนาอยู่หรือมีแผนจะรองรับในอนาคต

ใบอนุญาตและโอเพนซอร์ส

  • แจกจ่ายภายใต้ Apache 2.0 และผู้พัฒนาอธิบายด้วยตนเองว่าข้อความเดิม (จำกัดเพื่อการวิจัย) หมายถึง "อย่าไปทำอะไรแปลก ๆ"
  • ผู้ใช้บางคนชี้ว่าควรทำให้ชัดเจนกว่านี้เพื่อลดความสับสน

คำถามเกี่ยวกับข้อมูลฝึกและกระบวนการเทรน

  • ผู้ใช้จำนวนมากถามว่า "ชุดข้อมูลมาจากไหน" และ "เทรนอย่างไร"
  • ฝั่งผู้พัฒนาตอบว่าจะให้ภาพรวมระดับสูงไว้ในรายงานทางเทคนิค

ประเด็นชื่อซ้ำ

  • มีการชี้ว่าเกิด การชนกันของชื่อ กับเครื่องมือทำไดอะแกรมของ GNOME (Dia) และ diabrowser.com
  • ยังมีเสียงวิจารณ์ว่า "โปรเจกต์ AI ชอบยืมชื่อโอเพนซอร์สที่มีอยู่แล้วโดยตั้งใจ"
  • ผู้พัฒนาตอบว่า "ไม่ทราบมาก่อน และจากนี้จะทำให้แยกความต่างได้ชัดเจนขึ้น"

การใช้งานจริงและฟีดแบ็กเพื่อการปรับปรุง

  • มีความเห็นว่าเว็บเดโมที่ทำบน Notion ช้าและแชร์ลิงก์ไม่สะดวก → มีการเสนอให้ใช้หน้าเบา ๆ อย่าง GitHub Pages
  • มีข้อเสนอให้ปรับ README เช่น ความสับสนจากคำว่า "join waitlist" และการระบุ venv ที่ไม่จำเป็น
  • มีฟีดแบ็กด้านการตั้งค่า เช่น ปัญหาที่โมเดลถูกดาวน์โหลดใหม่ทุกครั้งเพราะไม่ได้ใช้ server cache

ตัวอย่างการพัฒนา/การประยุกต์ใช้และการรวมระบบ

  • มีการเปรียบเทียบกับโมเดล TTS อื่น ๆ เช่น E5-F2 และ Sesame-TTS
  • มีผู้ใช้บางรายเน้นเรื่องความแม่นยำในโดเมนเฉพาะ (เช่นศัพท์ทางการแพทย์)
  • มีการขอข้อมูล codec สำหรับรันบน iOS และเสนอความเป็นไปได้ในการประยุกต์ใช้
  • มีการแชร์ปัจจัยที่ต้องพิจารณาเมื่อนำไปใช้ในบริการจริง เช่น การสตรีมและความเร็วของการตอบสนองเริ่มต้น

อื่น ๆ

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