Dia - โมเดล TTS แบบโอเพนเวตสำหรับสร้างบทสนทนาที่สมจริง
(github.com/nari-labs)- 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 ความคิดเห็น
ว้าว ดีมากจริงๆ เลยนะครับ สำหรับทำกันแค่สองคน คงไม่ง่ายที่จะเตรียมข้อมูลฝึกสอนไปจนถึงขั้นนั้นได้ น่าทึ่งมากครับ
คนที่สร้างมาโผล่มาเองเลย~ ผม/ฉันก็คงต้องลองใช้ดูสักครั้งเหมือนกัน
คาดหวังภาษาเกาหลีครับ!!
โอ้ อันนี้ผมกำลังจะทำแล้วเอามาลงพอดี แต่มีคนลงได้ไวไปแล้วนี่เอง ขอบคุณครับ
อ๋อ ที่แท้เป็นผลงานของคนเกาหลีเองนี่เอง! ลองฟังเปรียบเทียบกันในหน้าเดโมแล้ว ประสิทธิภาพดีมากจริง ๆ นะครับ ถ้าให้ audio prompt มันจะอ้างอิงเสียงนั้นใช่ไหมครับ? แล้วสงสัยว่าตัวอย่างที่แยกเป็น s1, s2 ต้องใส่แต่ละอันแยกกันหรือเปล่าครับ
ขอบคุณครับ! ไม่จำเป็นต้องใส่ตัวอย่างที่แยกเป็น [S1] [S2] ในออดิโอพรอมป์ต์ จะใส่แค่ [S1] ก็ได้ หรือจะใส่ทั้ง [S1] [S2] ก็ได้เช่นกัน ขอเพียงรักษาไว้ว่า [S1] ต้องมาก่อนเสมอ
ใน Hacker News โพสต์นี้ได้อัปโหวตเยอะ เลยมีการสรุปอัตโนมัติโดย GN+ ครับ ผมแค่จัดเรียบเรียงเพิ่มเติมนิดหน่อย
เป็นกำลังใจให้ครับ!!
ขอบคุณครับ :))
เป็นโมเดลที่ผมทำเองครับ ฮ่าๆ...
ยอดเยี่ยมมากครับ!! จะนำไปใช้ให้ดีเลย T_T/
ขอบคุณครับ :)) รบกวนกดดาวใน GitHub ให้ด้วยนะครับ ฮ่าๆ
เสร็จเรียบร้อยแล้ว! อยากเห็นข่าวภาษาเกาหลีด้วยในเร็ว ๆ นี้!! ขอบคุณครับ
ความคิดเห็นจาก Hacker News
ความทึ่งและคำชื่นชมทางเทคนิค
การประเมินคุณภาพเสียงและลักษณะเด่น
ประสบการณ์ใช้งานเดโมและการทดสอบด้วยตนเอง
การใช้งานกับหนังสือเสียงและนิยาย
คำขอฟีเจอร์และคำถามเกี่ยวกับการสังเคราะห์เสียง
ใบอนุญาตและโอเพนซอร์ส
คำถามเกี่ยวกับข้อมูลฝึกและกระบวนการเทรน
ประเด็นชื่อซ้ำ
การใช้งานจริงและฟีดแบ็กเพื่อการปรับปรุง
venvที่ไม่จำเป็นตัวอย่างการพัฒนา/การประยุกต์ใช้และการรวมระบบ
อื่น ๆ