Dia - un modèle TTS à poids ouverts qui génère des conversations réalistes
(github.com/nari-labs)- Dia est un modèle TTS de 1,6B de paramètres qui génère des voix de dialogue de haute qualité à partir de répliques textuelles, avec contrôle des émotions et du ton via des prompts audio
- Développé par Nari Labs, où « Nari » signifie « lys » en coréen pur
- Il permet de désigner les locuteurs avec
[S1],[S2]et de générer aussi des expressions non verbales comme(laughs)ou(coughs), tout en prenant en charge un clonage vocal simple - Exécutable directement sur Hugging Face, avec test dans le navigateur sans installation séparée et prise en charge de ZeroGPU
- L’anglais uniquement est pris en charge pour le moment, avec un besoin de plus de 10 Go de VRAM, et des modèles quantifiés ainsi qu’un support multilingue sont prévus
Dia : un modèle de synthèse vocale centré sur le dialogue
- Dia est un modèle TTS à poids ouverts de 1,6B de paramètres développé par Nari Labs
- Au lieu de générer séparément la voix de chaque locuteur comme les TTS classiques, il génère l’ensemble de la conversation en une seule fois
- Démo : Hugging Face Space
- Code : dépôt GitHub
Fonctionnalités principales
Génération vocale conversationnelle
- Les locuteurs peuvent être indiqués dans le texte avec
[S1]et[S2] - Des sons non verbaux peuvent aussi être insérés sous forme de texte, comme
(laughs)ou(coughs) - Les émotions, le ton et le style de voix peuvent être définis via des prompts audio
Clonage vocal
- Si un audio d’exemple et sa réplique sont fournis ensemble sous forme de texte, la fonction de clonage vocal s’active
- Il est possible de l’essayer après avoir envoyé un audio sur le Hugging Face Space
- Voir l’exemple détaillé dans
example/voice_clone.py
Utilisation sous forme de bibliothèque
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
output = model.generate(text)
- Une sortie MP3 est possible avec
soundfile - Un package PyPI et un outil CLI seront bientôt proposés
Installation et exécution
Méthode de lancement rapide (basée sur Gradio)
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
Ou, si uv n’est pas disponible :
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
- Le Descript Audio Codec est téléchargé automatiquement au lancement
- À chaque exécution, la voix est générée aléatoirement ; pour de la cohérence, il faut fixer le prompt ou la seed
Performances et exigences matérielles
- Environnement de test : PyTorch 2.0+, CUDA 12.6 ou supérieur
- VRAM recommandée : 10 Go ou plus, avec une version quantifiée prévue prochainement
- Environ 40 tokens/seconde générés sur un GPU A4000 (86 tokens = environ 1 seconde de voix)
- L’utilisation de
torch.compilepeut améliorer la vitesse
Feuille de route et TODO
- Support de Docker
- Optimisation de la vitesse d’inférence
- Quantification du modèle (meilleure efficacité mémoire)
- Support multilingue et prise en charge d’un plus grand nombre de locuteurs à l’étude
Licence et restrictions d’usage
- Licence Apache 2.0
- Exemples d’usages interdits :
- Générer la voix d’autrui sans autorisation (Identity Misuse)
- Produire de la désinformation (Fake News, etc.)
- Finalités illégales ou malveillantes
Communauté et contributions
- Équipe de recherche : une petite équipe composée de 1 personne à temps plein + 1 personne à temps partiel
- Il est possible de partager des retours et de proposer des fonctionnalités via le serveur Discord
- Un projet orienté open source qui grandit avec ses contributeurs
Références et base technique
- Modèles audio : inspiré de SoundStorm, Parakeet et Descript Audio Codec
- Ressources de calcul : Google TPU Research Cloud, programme Hugging Face ZeroGPU
- « Nari » signifie « lys » en coréen pur
13 commentaires
Waouh, c’est vraiment excellent. À deux, cela n’a pas dû être simple pour vous d’obtenir jusqu’aux données d’entraînement, c’est impressionnant.
Le créateur est même venu en personne~ Il faudra que j’essaie ça moi aussi.
Le coréen est très attendu !!
Oh, j’allais justement le faire et le publier, mais vous l’avez déjà posté très rapidement. Merci.
Ah, c’était donc une création d’un Coréen ! En écoutant les comparaisons sur la page de démo, les performances ont l’air vraiment excellentes. Si on fournit un prompt audio, est-ce que le modèle s’en sert comme référence pour cette voix ? Je me demande aussi s’il faut fournir séparément chacun des exemples distingués en s1 et s2.
Merci ! Il n’est pas nécessaire d’inclure dans le prompt audio un exemple séparé avec [S1] et [S2]. Vous pouvez n’inclure que [S1], ou bien [S1] et [S2] tous les deux. Il faut simplement veiller à ce que [S1] arrive toujours en premier.
Comme le post a reçu beaucoup d’upvotes sur Hacker News, GN+ en a automatiquement fait un résumé. J’ai simplement ajouté un peu d’organisation de mon côté.
Je vous soutiens !!
Merci :))
C’est le modèle que j’ai créé, haha...
C’est génial !! Je vais l’utiliser avec plaisir T_T/
Merci :)) N'hésitez pas à laisser une étoile sur GitHub haha
C’est fait ! J’aimerais beaucoup voir aussi bientôt des actualités en coréen !! Merci
Avis sur Hacker News
Admiration technique et éloges
Évaluation de la qualité vocale et de ses caractéristiques
Retours sur la démo et tests directs
Discussions sur les usages pour les livres audio et les romans
Demandes de fonctionnalités et questions sur la synthèse vocale
Licence et open source
Questions sur les données d’entraînement et le processus de formation
Controverse sur le nom
Retours sur l’utilisabilité et pistes d’amélioration
venv, etc.Cas de développement, d’application et d’intégration
Divers