Dia - Gerçekçi diyaloglar üreten açık ağırlıklı TTS modeli
(github.com/nari-labs)- Dia, metin diyaloglarına dayalı olarak yüksek kaliteli konuşma sesi üreten 1.6B parametreli bir TTS modeli olup, ses prompt'larıyla duygu ve ton kontrolüne olanak tanır
- Nari Labs tarafından geliştirildi; "Nari" saf Korece'de "zambak" anlamına gelir
- Konuşmacılar [S1], [S2] ile belirtilebilir ve
(laughs),(coughs)gibi sözsüz ifadeler de üretilebilir; ayrıca basit ses klonlamayı da destekler - HuggingFace üzerinde doğrudan çalıştırılabilir; ek kurulum olmadan tarayıcı tabanlı test ve ZeroGPU desteği de sunulur
- Şu anda yalnızca İngilizce destekleniyor, 10GB VRAM veya üzeri gerekiyor; ileride kuantize modeller ve çok dilli destek planlanıyor
Dia: diyalog odaklı konuşma sentezi modeli
- Dia, Nari Labs tarafından geliştirilen 1.6B parametreli açık ağırlıklı bir TTS modeli
- Geleneksel TTS'lerde olduğu gibi konuşmacı başına ayrı ses üretmek yerine, tüm diyaloğu tek seferde üretme yaklaşımını kullanır
- Demo: Hugging Face Space
- Kod: GitHub deposu
Başlıca özellikler
Diyalog tabanlı ses üretimi
- Metin içinde
[S1],[S2]ile konuşmacı belirtilebilir (laughs),(coughs)gibi sözsüz sesler de metinle eklenebilir- Duygu, ton ve ses stili ses prompt'larıyla belirtilebilir
Ses klonlama
- Örnek ses ile karşılık gelen diyalog metni birlikte verildiğinde ses klonlama özelliği etkinleşir
- Hugging Face Space üzerinde ses yükleyerek denenebilir
- Ayrıntılı örnekler için
example/voice_clone.pydosyasına bakın
Kütüphane olarak kullanım
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
soundfileile MP3 çıktısı alınabilir- PyPI paketi ve CLI aracı da yakında sunulacak
Kurulum ve çalıştırma
Hızlı çalıştırma yöntemi (Gradio tabanlı)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
Ya da uv yoksa:
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- Çalıştırma sırasında Descript Audio Codec otomatik olarak indirilir
- Her çalıştırmada ses rastgele üretilir; tutarlılık için prompt veya seed'in sabitlenmesi gerekir
Performans ve donanım gereksinimleri
- Test ortamı: PyTorch 2.0+, CUDA 12.6 veya üzeri
- Önerilen VRAM: 10GB veya üzeri; yakında kuantize sürüm yayınlanması planlanıyor
- A4000 GPU üzerinde yaklaşık 40 token/saniye üretim (86 token = yaklaşık 1 saniye ses)
torch.compilekullanıldığında hız artışı sağlanabilir
Gelecek planları ve TODO
- Docker desteği
- Çıkarım hızının optimize edilmesi
- Model kuantizasyonu (bellek verimliliği)
- Çok dilli destek ve daha fazla konuşmacı desteği gibi genişletmeler değerlendiriliyor
Lisans ve kullanım kısıtlamaları
- Apache 2.0 lisansı uygulanıyor
- Yasak kullanım örnekleri:
- Başkalarının sesini izin almadan üretmek (Identity Misuse)
- Yanlış bilgi üretmek (Fake News vb.)
- Yasadışı veya kötü niyetli amaçlar
Topluluk ve katkı
- Araştırma ekibi: 1 tam zamanlı + 1 yarı zamanlı kişiden oluşan küçük bir ekip
- Discord sunucusu üzerinden geri bildirim paylaşılabilir ve özellik önerileri yapılabilir
- Katkıda bulunanlarla birlikte büyüyen açık kaynak odaklı bir proje
Referanslar ve teknik temel
- Ses modeli: SoundStorm, Parakeet, Descript Audio Codec'ten ilham alıyor
- Hesaplama desteği: Google TPU Research Cloud, HuggingFace ZeroGPU programı
- "Nari" saf Korece'de "zambak" anlamına gelir
13 yorum
Vay, bu gerçekten çok iyi. İki kişi olarak bunu yaparken eğitim verisini bile güvence altına almak kolay olmamış olmalı; gerçekten etkileyicisiniz.
Bunu yapan kişi bizzat ortaya çıkmış~ Ben de bir kez denemeliyim galiba
Koreceyi de merakla bekliyorum!!
Ah, bunu ben hazırlayıp paylaşacaktım ama siz benden hızlı davranıp zaten paylaşmışsınız. Teşekkürler.
Vay, demek bunu bir Koreli yapmış! Demo sayfasında karşılaştırarak dinleyince performansın gerçekten çok iyi olduğunu gördüm. Sesli bir prompt verirseniz o sesi referans alıyor mu?
s1,s2diye ayrılan örnekleri de ayrı ayrı vermek gerekip gerekmediğini merak ediyorum.Teşekkürler! Ses istemine
[S1] [S2]şeklinde ayrılmış örnekler eklemeniz gerekmez. Yalnızca[S1]ekleyebilirsiniz, ya da hem[S1]hem[S2]eklemeniz de sorun olmaz. Sadece[S1]her zaman önce gelmesi kuralına uymanız yeterlidir.Hacker News'ta çok upvote alınca GN+ bunu otomatik olarak özetlemiş. Ben de sadece biraz ek düzenleme yaptım.
Destekliyorum!!
Teşekkürler :))
Bu benim yaptığım modeldir haha...
Harikasınız!! Çok iyi kullanacağım T_T/
Teşekkürler :)) GitHub'da yıldız vermenizi rica ederim haha
Tamamlandı! Yakında Korece haberleri de görmek isterim!! Teşekkürler
Hacker News görüşleri
Teknik hayranlık ve övgü
Ses kalitesi ve özelliklerine dair değerlendirmeler
Demo kullanım deneyimleri ve doğrudan testler
Sesli kitap ve roman kullanımıyla ilgili tartışmalar
Ses senteziyle ilgili özellik talepleri ve sorular
Lisans ve açık kaynakla ilgili konular
Eğitim verisi ve eğitim süreciyle ilgili sorular
İsim çakışması tartışması
Kullanılabilirlik ve iyileştirme geri bildirimleri
venvbelirtimi gibi README iyileştirme önerileri yapılıyorGeliştirme/uygulama ve entegrasyon örnekleri
Diğer