41 điểm bởi GN⁺ 2025-04-22 | 13 bình luận | Chia sẻ qua WhatsApp
  • Dia là mô hình TTS 1.6B tham số tạo giọng hội thoại chất lượng cao dựa trên lời thoại văn bản, có thể điều chỉnh cảm xúc và tông giọng thông qua audio prompt
  • Được phát triển bởi Nari Labs; "Nari" trong tiếng Hàn thuần nghĩa là hoa loa kèn
  • Có thể chỉ định người nói bằng [S1], [S2] và tạo cả các biểu đạt phi ngôn ngữ như (laughs), (coughs), đồng thời hỗ trợ voice cloning đơn giản
  • Có thể chạy trực tiếp trên HuggingFace, đồng thời cung cấp thử nghiệm trên trình duyệt không cần cài đặt và hỗ trợ ZeroGPU
  • Hiện chỉ hỗ trợ tiếng Anh, yêu cầu từ 10GB VRAM trở lên, và dự kiến sẽ có mô hình lượng tử hóa cùng hỗ trợ đa ngôn ngữ trong tương lai

Dia: mô hình tổng hợp giọng nói tập trung vào hội thoại

  • Diamô hình TTS open-weight 1.6B tham số do Nari Labs phát triển
  • Khác với TTS truyền thống tạo giọng riêng cho từng người nói, mô hình này dùng cách tạo toàn bộ cuộc hội thoại trong một lần
  • Demo: Hugging Face Space
  • Mã nguồn: kho GitHub

Tính năng chính

Tạo giọng nói hội thoại

  • Có thể chỉ định người nói trong văn bản bằng [S1], [S2]
  • Có thể chèn âm thanh phi ngôn ngữ bằng văn bản như (laughs), (coughs)
  • Có thể chỉ định cảm xúc, tông giọng và phong cách giọng nói bằng audio prompt

Voice cloning

  • Khi cung cấp cùng lúc audio mẫu và lời thoại tương ứng ở dạng văn bản, tính năng voice cloning sẽ được kích hoạt
  • Có thể tải audio lên để thử trực tiếp trên Hugging Face Space
  • Xem ví dụ chi tiết tại example/voice_clone.py

Sử dụng dưới dạng thư viện

from dia.model import Dia  
model = Dia.from_pretrained("nari-labs/Dia-1.6B")  
output = model.generate(text)  
  • Có thể xuất MP3 bằng soundfile
  • Gói PyPI và công cụ CLI cũng sẽ sớm được cung cấp

Cài đặt và chạy

Cách chạy nhanh (dựa trên Gradio)

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

Hoặc nếu không có uv:

cd dia  
python -m venv .venv  
source .venv/bin/activate  
pip install uv  
uv run app.py  
  • Khi chạy, Descript Audio Codec sẽ được tự động tải xuống
  • Mỗi lần chạy, giọng nói sẽ được tạo ngẫu nhiên, nên để đảm bảo tính nhất quán cần cố định prompt hoặc seed

Hiệu năng và yêu cầu phần cứng

  • Môi trường thử nghiệm: PyTorch 2.0+, CUDA 12.6 trở lên
  • VRAM khuyến nghị: từ 10GB trở lên, sắp có phiên bản lượng tử hóa (Quantized)
  • Trên GPU A4000 tạo khoảng 40 token/giây (86 token = khoảng 1 giây âm thanh)
  • Có thể tăng tốc khi dùng torch.compile

Kế hoạch sắp tới và TODO

  • Hỗ trợ Docker
  • Tối ưu tốc độ suy luận
  • Lượng tử hóa mô hình (tối ưu bộ nhớ)
  • Đang cân nhắc mở rộng như hỗ trợ đa ngôn ngữ và nhiều người nói hơn

Giấy phép và hạn chế sử dụng

  • Áp dụng giấy phép Apache 2.0
  • Ví dụ về các cách sử dụng bị cấm:
    • Tạo giọng của người khác mà không được phép (Identity Misuse)
    • Tạo thông tin sai lệch (như Fake News)
    • Mục đích bất hợp pháp hoặc ác ý

Cộng đồng và đóng góp

  • Nhân sự nghiên cứu: đội ngũ nhỏ gồm 1 người full-time + 1 người part-time
  • Có thể chia sẻ phản hồi và đề xuất tính năng qua máy chủ Discord
  • Dự án định hướng mã nguồn mở phát triển cùng cộng đồng đóng góp

Tham khảo và nền tảng kỹ thuật

  • Mô hình âm thanh: lấy cảm hứng từ SoundStorm, Parakeet, Descript Audio Codec
  • Hỗ trợ tính toán: Google TPU Research Cloud, chương trình HuggingFace ZeroGPU
  • "Nari" trong tiếng Hàn thuần nghĩa là "hoa loa kèn"

13 bình luận

 
reagea0 2025-04-24

Wow, tuyệt quá. Chỉ hai người thực hiện thì chắc hẳn việc đảm bảo cả dữ liệu huấn luyện cũng không hề dễ dàng, thật đáng nể.

 
princox 2025-04-24

Chính tác giả đã vào bình luận luôn~ Tôi cũng phải thử một lần mới được.

 
kleinstein 2025-04-22

Rất đáng mong chờ bản tiếng Hàn!!

 
toebee 2025-04-22

Ồ, tôi cũng định tự làm rồi đăng lên, nhưng hóa ra bạn đã nhanh tay đăng trước rồi. Cảm ơn bạn.

 
winterjung 2025-04-22

À ra là do một người Hàn Quốc tạo ra sao! Tôi thử nghe đối chiếu trên trang demo thì thấy chất lượng thực sự rất tốt. Nếu cung cấp audio prompt thì mô hình sẽ tham chiếu giọng nói đó phải không? Tôi cũng tò mò không biết có cần đưa riêng từng ví dụ được phân thành s1 và s2 hay không.

 
toebee 2025-04-22

Cảm ơn! Không nhất thiết phải đưa ví dụ được phân tách bằng [S1] [S2] vào audio prompt. Bạn có thể chỉ dùng [S1], hoặc dùng cả [S1] [S2] đều được. Chỉ cần luôn giữ [S1] đứng trước là được.

 
xguru 2025-04-22

Bài này được upvote khá nhiều trên Hacker News nên GN+ đã tự động tóm tắt. Tôi chỉ sắp xếp và bổ sung thêm một chút thôi.

Ủng hộ nhé!!

 
toebee 2025-04-22

Cảm ơn bạn :))

 
toebee 2025-04-22

Đây là model tôi làm ra haha...

 
kgh1379 2025-04-22

Tuyệt vời quá!! Mình sẽ dùng rất tốt T_T/

 
toebee 2025-04-22

Cảm ơn bạn :)) Mong mọi người cho mình xin một sao trên GitHub ạ hehe

 
kgh1379 2025-04-22

Đã hoàn tất! Mong sớm được thấy cả tin tức tiếng Hàn nữa!! Cảm ơn bạn

 
GN⁺ 2025-04-22
Ý kiến trên Hacker News

Sự thán phục và khen ngợi về mặt kỹ thuật

  • Dù chỉ là dự án do hai người làm trong 3 tháng, chất lượng vẫn rất cao
  • Nhiều người ấn tượng khi một nhóm nhỏ có thể tạo ra kết quả cạnh tranh trong lĩnh vực mô hình âm thanh so với các công ty lớn
  • Có các phản hồi như "nghe như người thật", "cảm giác như đang thấy tương lai của TTS", "ví dụ demo thật đáng kinh ngạc"
  • Nhiều người dùng đặc biệt đánh giá cao các ví dụ âm thanh được tạo dựa trên cảnh trong The Office

Đánh giá về chất lượng và đặc điểm giọng nói

  • Phần lớn phản hồi tích cực rằng nó "tự nhiên như con người", "thể hiện cảm xúc tốt", và "các chi tiết như tiếng cười, ho, hét đều rất sống động"
  • Một số người cũng nêu nhược điểm như cảm xúc bị cường điệu, cảm giác giống quảng cáo, hoặc nhiễu ở phần đầu
  • Cũng có ý kiến cho rằng nó giống phong cách một số voice actor nhất định (ví dụ: tông NPR) hoặc gợi cảm giác hoạt hình Flash trên YouTube thời trước

Trải nghiệm dùng demo và thử nghiệm trực tiếp

  • Có chia sẻ về việc chạy thành công trên nhiều loại phần cứng khác nhau như M2 MacBook
  • Việc có thể trải nghiệm ngay trực tuyến qua HuggingFace Spaces được đánh giá cao
  • Cũng có phản hồi rằng có thể chạy dễ dàng bằng Docker và container CUDA

Thảo luận về ứng dụng cho audiobook và tiểu thuyết

  • Nhiều người dùng khám phá tiềm năng cho việc sản xuất audiobook, tách voice actor theo từng nhân vật, và thể hiện lời thoại giàu cảm xúc
  • Tuy vậy, một số người vẫn cho rằng "diễn viên lồng tiếng con người vẫn tốt hơn" và "một voice actor giỏi mang lại chất riêng cho tác phẩm"
  • Ngược lại, cũng có ý kiến phản biện rằng nếu AI thực sự hiểu đúng cảm xúc và nhân vật thì thậm chí có thể làm tốt hơn

Yêu cầu tính năng và câu hỏi liên quan đến tổng hợp giọng nói

  • Có các yêu cầu/hỗ trợ như sau:
    • Hỗ trợ đa ngôn ngữ (tiếng Trung, tiếng Phần Lan, v.v.)
    • Hỗ trợ hội thoại từ 2 người trở lên
    • Voice cloning (giọng của chính người dùng)
    • Thông tin timing ở mức từng từ
    • Hỗ trợ AMD GPU
    • Hỗ trợ xuất dạng streaming
  • Phía nhà phát triển cho biết một số tính năng đang được phát triển hoặc sẽ được hỗ trợ trong tương lai

Giấy phép và mã nguồn mở

  • Dự án đang được phát hành theo Apache 2.0, và nhà phát triển trực tiếp giải thích rằng câu chữ ban đầu (chỉ dành cho mục đích nghiên cứu) thực chất mang ý "đừng làm mấy trò mờ ám"
  • Một số người dùng chỉ ra rằng cách viết đó có thể gây nhầm lẫn, nên cần làm rõ hơn

Câu hỏi về dữ liệu huấn luyện và quá trình đào tạo

  • Nhiều người dùng hỏi "dataset lấy từ đâu" và "đã huấn luyện như thế nào"
  • Phía nhà phát triển trả lời rằng sẽ cung cấp phần tổng quan cấp cao trong báo cáo kỹ thuật

Tranh cãi về tên trùng lặp

  • Có ý kiến chỉ ra xung đột tên với công cụ vẽ sơ đồ Dia của GNOME, diabrowser.com, v.v.
  • Cũng có phê bình rằng "các dự án AI cố tình mượn tên của mã nguồn mở có sẵn"
  • Đáp lại, phía nhà phát triển nói rằng "chúng tôi không biết" và sẽ phân biệt rõ ràng hơn về sau

Phản hồi về khả năng sử dụng và cải tiến

  • Có ý kiến cho rằng trang demo dùng nền tảng Notion nên chậm và bất tiện khi chia sẻ liên kết → đề xuất một trang nhẹ hơn như GitHub Pages
  • Có đề xuất cải thiện README như cách dùng cụm từ "join waitlist" gây nhầm lẫn, hoặc việc ghi venv là không cần thiết
  • Cũng có phản hồi về cấu hình như việc không dùng cache phía server khiến mô hình bị tải lại mỗi lần

Các trường hợp phát triển/ứng dụng và tích hợp

  • Có so sánh với các mô hình TTS khác như E5-F2, Sesame-TTS
  • Một số người dùng nhấn mạnh độ chính xác trong các miền cụ thể như thuật ngữ y khoa
  • Có yêu cầu thông tin codec để chạy trên iOS và nêu ra khả năng ứng dụng
  • Khi áp dụng vào dịch vụ thực tế, mọi người cũng chia sẻ các yếu tố cần cân nhắc như streaming và tốc độ phản hồi ban đầu

Khác

  • Có chia sẻ hướng dẫn và bản sửa cho lỗi liên kết hoặc vấn đề truy cập HuggingFace
  • Một số người phát hiện các tính năng nhỏ bổ sung như chức năng bookmark trong giao diện demo
  • Các hạn chế phần cứng của người dùng, cùng kỳ vọng và lo ngại chung về việc ứng dụng TTS, cũng được nhắc đến