Dia - Model TTS open-weight yang menghasilkan percakapan realistis
(github.com/nari-labs)- Dia adalah model TTS 1.6B parameter yang menghasilkan suara percakapan berkualitas tinggi berdasarkan dialog teks, dengan kendali emosi dan tone melalui prompt audio
- Dikembangkan oleh Nari Labs, dan "Nari" dalam bahasa Korea murni berarti "lili"
- Dengan [S1], [S2] untuk menandai pembicara, model ini juga dapat menghasilkan ekspresi nonverbal seperti
(laughs),(coughs), serta mendukung voice cloning sederhana - Dapat langsung dijalankan di HuggingFace, serta menyediakan pengujian berbasis browser dan dukungan ZeroGPU tanpa instalasi terpisah
- Saat ini hanya mendukung bahasa Inggris, membutuhkan VRAM 10GB atau lebih, dan ke depannya direncanakan model terkuantisasi serta dukungan multibahasa
Dia: model sintesis suara yang berfokus pada percakapan
- Dia adalah model TTS open-weight 1.6B parameter yang dikembangkan oleh Nari Labs
- Tidak seperti TTS konvensional yang menghasilkan suara per pembicara secara terpisah, model ini menggunakan pendekatan menghasilkan seluruh percakapan sekaligus
- Demo: Hugging Face Space
- Kode: repositori GitHub
Fitur utama
Pembuatan suara percakapan
- Pembicara dapat ditandai di dalam teks dengan
[S1],[S2] - Suara nonverbal seperti
(laughs),(coughs)juga dapat disisipkan melalui teks - Emosi, tone, dan gaya suara dapat ditentukan melalui prompt audio
Voice cloning
- Jika audio contoh dan dialog terkait diberikan bersama dalam bentuk teks, fitur voice cloning akan aktif
- Bisa dicoba dengan mengunggah audio di Hugging Face Space
- Untuk contoh rinci, lihat
example/voice_clone.py
Digunakan sebagai library
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
- Output MP3 dapat dibuat dengan
soundfile - Paket PyPI dan alat CLI juga akan segera tersedia
Instalasi dan menjalankan
Cara cepat menjalankan (berbasis Gradio)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
Atau jika tidak ada uv:
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- Descript Audio Codec akan diunduh otomatis saat dijalankan
- Setiap kali dijalankan, suara akan dihasilkan secara acak, jadi untuk konsistensi perlu mengunci prompt atau seed
Performa dan kebutuhan perangkat keras
- Lingkungan pengujian: PyTorch 2.0+, CUDA 12.6 atau lebih baru
- VRAM yang disarankan: 10GB atau lebih, dan versi terkuantisasi (Quantized) akan segera dirilis
- Berdasarkan GPU A4000, menghasilkan sekitar 40 token/detik (86 token = sekitar 1 detik suara)
- Kecepatan dapat ditingkatkan dengan
torch.compile
Rencana selanjutnya dan TODO
- Dukungan Docker
- Optimalisasi kecepatan inferensi
- Kuantisasi model (efisiensi memori)
- Sedang dipertimbangkan perluasan seperti dukungan multibahasa dan lebih banyak pembicara
Lisensi dan batasan penggunaan
- Menggunakan lisensi Apache 2.0
- Contoh penggunaan yang dilarang:
- Menghasilkan suara orang lain tanpa izin (Identity Misuse)
- Membuat informasi palsu (Fake News, dll.)
- Tujuan ilegal atau bermaksud jahat
Komunitas dan kontribusi
- Tim kecil yang terdiri dari 1 peneliti penuh waktu + 1 paruh waktu
- Umpan balik dan usulan fitur dapat dibagikan melalui server Discord
- Proyek berorientasi open source yang tumbuh bersama para kontributor
Referensi dan landasan teknis
- Model suara: terinspirasi dari SoundStorm, Parakeet, Descript Audio Codec
- Dukungan komputasi: Google TPU Research Cloud, program HuggingFace ZeroGPU
- "Nari" dalam bahasa Korea murni berarti "lili"
13 komentar
Wah, ini sangat bagus. Untuk dikerjakan berdua saja, pasti tidak mudah bahkan untuk mengamankan data pelatihannya, jadi sungguh luar biasa.
Yang bikin sendiri muncul~ Saya juga jadi ingin coba pakai sekali.
Saya menantikan dukungan bahasa Korea!!
Oh, saya tadinya mau membuat dan mengunggah ini, tapi ternyata sudah lebih dulu diunggah dengan cepat. Terima kasih.
Wah, ternyata ini dibuat oleh orang Korea ya! Saya membandingkannya sambil mendengarkan di halaman demo, dan performanya memang sangat bagus. Jika memberikan audio prompt, apakah model ini akan merujuk pada suara tersebut? Saya juga penasaran apakah contoh yang dibedakan sebagai s1 dan s2 perlu dimasukkan masing-masing.
Terima kasih! Anda tidak perlu memasukkan contoh yang dipisahkan dengan [S1] [S2] ke dalam audio prompt. Anda bisa memasukkan hanya [S1], atau [S1] dan [S2] keduanya juga tidak masalah. Yang penting, pastikan [S1] selalu datang lebih dulu.
Sepertinya karena mendapat banyak upvote di Hacker News, GN+ otomatis membuat ringkasannya. Saya hanya menambahkan sedikit rangkuman lagi.
Semangat!!
Terima kasih :))
Ini model yang saya buat, hehe...
Keren sekali!! Akan saya pakai dengan baik T_T/
Terima kasih :)) mohon bantuannya untuk memberi bintang di GitHub ya hehe
Selesai! Saya juga ingin segera melihat berita berbahasa Korea!! Terima kasih
Opini Hacker News
Kekaguman dan pujian teknis
Penilaian terhadap kualitas dan karakteristik suara
Ulasan penggunaan demo dan pengujian langsung
Diskusi terkait penggunaan untuk audiobook dan novel
Permintaan fitur dan pertanyaan terkait sintesis suara
Lisensi dan open source
Pertanyaan terkait data pelatihan dan proses training
Kontroversi nama yang tumpang tindih
Umpan balik soal kemudahan penggunaan dan perbaikan
venvyang tidak perluContoh pengembangan/penerapan dan integrasi
Lain-lain