Dia - Ein Open-Weight-TTS-Modell für realistische Dialoge
(github.com/nari-labs)- Dia ist ein 1,6B-Parameter-TTS-Modell, das auf Basis von Textdialogen hochwertige dialogische Sprache erzeugt und über Audio-Prompts Emotionen und Tonlage steuern kann
- Es wurde von Nari Labs entwickelt; „Nari“ bedeutet im reinen Koreanisch „Lilie“
- Mit [S1], [S2] lassen sich Sprecher festlegen, und auch nichtverbale Ausdrücke wie
(laughs)oder(coughs)können erzeugt werden; einfache Voice-Cloning-Funktionen werden ebenfalls unterstützt - Es lässt sich direkt auf Hugging Face ausführen; browserbasierte Tests ohne separate Installation sowie ZeroGPU-Unterstützung sind ebenfalls verfügbar
- Derzeit wird nur Englisch unterstützt, es werden mindestens 10 GB VRAM benötigt, und künftig sind unter anderem quantisierte Modelle sowie mehrsprachige Unterstützung geplant
Dia: Ein dialogorientiertes Sprachsynthese-Modell
- Dia ist ein Open-Weight-TTS-Modell mit 1,6 Milliarden Parametern, entwickelt von Nari Labs
- Anders als bei herkömmlichem TTS werden Stimmen nicht getrennt nach Sprecher erzeugt, sondern der gesamte Dialog wird in einem Durchgang generiert
- Demo: Hugging Face Space
- Code: GitHub-Repository
Hauptfunktionen
Dialogische Sprachgenerierung
- Sprecher können im Text mit
[S1],[S2]festgelegt werden - Auch nichtverbale Laute lassen sich als Text einfügen, etwa
(laughs)oder(coughs) - Emotionen, Tonlage und Stimmstil können per Audio-Prompt vorgegeben werden
Voice Cloning
- Wenn Beispielaudio und der zugehörige Dialogtext gemeinsam bereitgestellt werden, wird die Voice-Cloning-Funktion aktiviert
- Übungen damit sind im Hugging Face Space nach dem Hochladen von Audio möglich
- Ein ausführliches Beispiel findet sich in
example/voice_clone.py
Nutzung als Bibliothek
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
- MP3-Ausgabe ist mit
soundfilemöglich - Ein PyPI-Paket und ein CLI-Tool sollen ebenfalls bald bereitgestellt werden
Installation und Ausführung
Schneller Start (auf Gradio-Basis)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
Oder, falls uv nicht vorhanden ist:
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- Beim Start wird der Descript Audio Codec automatisch heruntergeladen
- Bei jeder Ausführung wird die Stimme zufällig generiert; für Konsistenz müssen Prompt oder Seed fixiert werden
Leistung und Hardware-Anforderungen
- Testumgebung: PyTorch 2.0+, CUDA 12.6 oder höher
- Empfohlener VRAM: mindestens 10 GB, eine quantisierte Version soll bald erscheinen
- Auf einer A4000-GPU werden etwa 40 Token/Sekunde generiert (86 Token = ca. 1 Sekunde Sprache)
- Mit
torch.compilelässt sich die Geschwindigkeit verbessern
Weitere Planung und TODO
- Docker-Unterstützung
- Optimierung der Inferenzgeschwindigkeit
- Modellquantisierung (zur besseren Speichereffizienz)
- Mehrsprachige Unterstützung und Erweiterung auf mehr Sprecher werden geprüft
Lizenz und Nutzungseinschränkungen
- Lizenz unter Apache 2.0
- Beispiele für verbotene Nutzung:
- Erzeugung der Stimme anderer ohne Erlaubnis (Identity Misuse)
- Erzeugung von Falschinformationen (Fake News usw.)
- Illegale oder böswillige Zwecke
Community und Beiträge
- Das Forschungsteam ist klein und besteht aus 1 Vollzeitkraft + 1 Teilzeitkraft
- Über den Discord-Server können Feedback und Funktionsvorschläge geteilt werden
- Ein Open-Source-orientiertes Projekt, das gemeinsam mit Beitragenden wachsen will
Referenzen und technische Grundlage
- Sound-Modelle: inspiriert von SoundStorm, Parakeet und Descript Audio Codec
- Rechenunterstützung: Google TPU Research Cloud, HuggingFace-ZeroGPU-Programm
- „Nari“ bedeutet im reinen Koreanisch „Lilie“
13 Kommentare
Wow, das ist wirklich großartig. Für Sie beide war es sicher nicht leicht, sogar die Trainingsdaten zu beschaffen, daher ist das wirklich beeindruckend.
Der Ersteller meldet sich persönlich zu Wort~ Das sollte ich auch mal ausprobieren.
Ich freue mich darauf, dass Koreanisch unterstützt wird!!
Oh, das wollte ich gerade selbst erstellen und posten, aber Sie waren schon schneller. Vielen Dank.
Ach, das wurde also von einer Person aus Korea entwickelt! Ich habe mir die Vergleiche auf der Demoseite angehört, und die Leistung ist wirklich sehr gut. Wenn man einen Audio-Prompt bereitstellt, orientiert sich das Modell dann an dieser Stimme? Ich frage mich, ob man die als
s1unds2getrennten Beispiele jeweils einzeln eingeben muss.Vielen Dank! Sie müssen dem Audio-Prompt kein nach
[S1]und[S2]getrenntes Beispiel hinzufügen. Sie können nur[S1]einfügen, und es ist auch in Ordnung, sowohl[S1]als auch[S2]einzufügen. Sie müssen nur darauf achten, dass[S1]immer zuerst kommt.Auf Hacker News hat es viele Upvotes bekommen, daher hat GN+ es automatisch zusammengefasst. Ich habe es nur noch etwas zusätzlich geordnet.
Ich unterstütze euch!!
Danke :))
Das ist ein Modell, das ich erstellt habe, haha ...
Großartig!! Ich werde es gut nutzen T_T/
Danke :)) Bitte gebt dem GitHub-Repo einen Stern, hehe
Erledigt! Ich hoffe, dass wir bald auch Nachrichten auf Koreanisch sehen!! Vielen Dank
Hacker-News-Kommentare
Technische Bewunderung und Lob
Bewertung der Sprachqualität und Eigenschaften
Erfahrungen mit der Demo und direkte Tests
Diskussion zur Nutzung für Hörbücher und Romane
Funktionswünsche und Fragen zur Sprachsynthese
Lizenz und Open Source
Fragen zu Trainingsdaten und Trainingsprozess
Kontroverse um den Namen
Feedback zu Nutzbarkeit und Verbesserungen
venvEntwicklung, Anwendungen und Integrationsfälle
Sonstiges