Dia : un modèle de synthèse vocale pour générer des dialogues multijoueurs hyperréalistes

Introduction générale

Dia est un modèle de synthèse vocale (TTS) open source développé par Nari Labs qui se concentre sur la génération de dialogues audio hyperréalistes. Il transforme les scripts textuels en dialogues réalistes à plusieurs personnages en un seul processus, prend en charge le contrôle des émotions et de l'intonation, et génère même des expressions non verbales telles que le rire.Au cœur de Dia se trouve un modèle de 1,6 milliard de paramètres hébergé sur Hugging Face, dont le code et les modèles de pré-entraînement sont mis à la disposition des utilisateurs via GitHub. Conçu dans un souci d'ouverture et de flexibilité, il permet aux utilisateurs d'avoir un contrôle total sur les scripts de dialogue et la sortie vocale, et Dia fournit une interface Gradio permettant aux utilisateurs d'avoir un aperçu rapide de ce à quoi ressembleront les dialogues générés. Le projet est soutenu par le Google TPU Research Cloud et le Hugging Face ZeroGPU Grant, et s'inspire de technologies telles que SoundStorm et Parakeet.

Dia:生成超现实多人对话的文本转语音模型

Adresse de démonstration : https://huggingface.co/spaces/nari-labs/Dia-1.6B

 

Liste des fonctions

  • Génération de dialogues surréalistesConvertissez des scripts textuels en dialogues audio à caractères multiples avec prise en charge des étiquettes de locuteurs multiples (par exemple, [S1], [S2]).
  • Contrôle des émotions et du tonLa musique : Ajuster l'émotion et l'intonation de la parole grâce à des signaux audio ou à des graines fixes.
  • expression non verbaleLes dialogues sont plus réalistes si l'on génère des sons non verbaux tels que des rires et des pauses.
  • Interface interactive GradioLe logiciel de gestion de l'information : Il fournit une interface visuelle pour simplifier les opérations de génération de dialogue et de sortie audio.
  • Modèles et codes open sourceLes utilisateurs peuvent télécharger des modèles pré-entraînés à partir de Hugging Face ou obtenir le code source sur GitHub.
  • Support inter-appareilsLe logiciel est compatible avec le fonctionnement du GPU, et la prise en charge du CPU est prévue pour l'avenir.
  • Paramètres répétablesLes résultats sont générés de manière cohérente par la mise en place de semences aléatoires.

 

Utiliser l'aide

Processus d'installation

Pour utiliser Dia, vous devez d'abord cloner votre dépôt GitHub et configurer votre environnement. Voici les étapes détaillées :

  1. entrepôt de clones: :
    Exécutez la commande suivante dans le terminal :

    git clone https://github.com/nari-labs/dia.git
    cd dia
    
  2. Créer un environnement virtuel: :
    Utiliser Python pour créer des environnements virtuels afin d'isoler les dépendances :

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    
  3. Installation des dépendances: :
    Dia Utilisation uv Outils de gestion des dépendances. Installation de l'application uv Et courir :

    pip install uv
    uv run app.py
    

    Cela installera automatiquement les bibliothèques nécessaires et lancera l'interface Gradio.

  4. exigences en matière de matériel: :
    • GPULes GPU NVIDIA recommandés avec la prise en charge de CUDA.
    • UNITÉ CENTRALEL'optimisation des GPU est actuellement meilleure, la prise en charge des CPU est prévue.
    • mémoire vive (RAM)Mémoire vive : au moins 16 Go de RAM, une mémoire plus importante est nécessaire pour le chargement des modèles.
  5. Vérifier l'installation: :
    être en mouvement uv run app.py Après cela, le terminal affichera l'URL locale de l'interface Gradio (généralement l'URL http://127.0.0.1:7860). Ouvrez cette URL dans votre navigateur et vérifiez que l'interface se charge correctement.

Utilisation de l'interface Gradio

L'interface Gradio est la principale méthode d'interaction de Dia et convient aux tests rapides et à la génération de dialogues. Les étapes sont les suivantes :

  1. Ouvrir l'interface: :
    activer (un plan) uv run app.py L'interface contient des zones de saisie de texte, des réglages de paramètres et des zones de sortie audio.
  2. Saisie des scripts de dialogue: :
    Saisissez le script dans la zone de texte, en utilisant la fonction [S1],[S2] etc. pour distinguer les locuteurs. Par exemple :

    [S1] 你好,今天过得怎么样?
    [S2] 还不错,就是有点忙。(笑)
    

    Le script prend en charge les balises non linguistiques telles que (笑).

  3. Réglage des paramètres de génération: :
    • Marqueur audio maximum(--max-tokens) : contrôle la longueur de l'audio généré, par défaut 3072.
    • Ratio CFG(--cfg-scale) : Ajuste la qualité de la génération, par défaut 3.0.
    • temp(--temperature) : contrôle le caractère aléatoire, valeur par défaut 1,3, plus la valeur est élevée, plus le caractère aléatoire est important.
    • Top-p(--top-p) : probabilité d'échantillonnage du noyau, par défaut 0,95.
      Ces paramètres peuvent être ajustés dans l'interface, et les débutants peuvent utiliser les valeurs par défaut.
  4. Ajout de repères audio (facultatif): :
    Pour assurer la cohérence de la voix, vous pouvez télécharger un fichier audio de référence. Cliquez sur l'option "Audio Cue" dans l'interface et sélectionnez un fichier WAV. La documentation officielle mentionne que des lignes directrices pour les repères audio seront bientôt publiées, mais pour l'instant vous pouvez vous référer à l'exemple dans l'interface de Gradio.
  5. Générer de l'audio: :
    Cliquez sur le bouton "Générer" et le modèle traitera le script et produira l'audio. Le temps de génération dépend des performances du matériel, généralement de quelques secondes à quelques dizaines de secondes. L'audio généré peut être prévisualisé dans l'interface ou téléchargé sous forme de fichier WAV.
  6. fixation des semences: :
    Afin de s'assurer que le son généré est le même à chaque fois, vous pouvez définir une graine aléatoire. Cliquez sur l'option "Graine" dans l'interface, et entrez un nombre entier (par ex. 35). S'il n'est pas réglé, Dia peut produire un son différent à chaque fois.

Utilisation de la ligne de commande

Outre Gradio, Dia prend également en charge les opérations en ligne de commande pour les développeurs ou la génération de lots. Voici un exemple :

  1. Exécution de scripts CLI: :
    Fonctionne dans un environnement virtuel :

    python cli.py "[S1] 你好! [S2] 嗨,很好。" --output output.wav
    
  2. Spécification des modèles: :
    Par défaut, la fonction nari-labs/Dia-1.6B Modèles. Si vous utilisez un modèle local, vous devez fournir un fichier de configuration et des points de contrôle :

    python cli.py --local-paths --config config.yaml --checkpoint checkpoint.pt "[S1] 测试" --output test.wav
    
  3. Paramètres de réglage: :
    Les paramètres de génération peuvent être définis à partir de la ligne de commande, par exemple :

    python cli.py --text "[S1] 你好" --output out.wav --max-tokens 3072 --cfg-scale 3.0 --temperature 1.3 --top-p 0.95 --seed 35
    

Fonction en vedette Fonctionnement

  • Dialogue entre plusieurs personnages: :
    La force principale de Dia est la génération de dialogues multi-acteurs. Les scripts sont créés à l'aide de l'outil [S1],[S2] etc. pour différencier les personnages, le modèle attribuera automatiquement une voix différente à chaque personnage. Il est recommandé d'expliciter le ton ou l'émotion du personnage dans le scénario, par exemple :

    [S1] (兴奋)我们赢了!
    [S2] (惊讶)真的吗?太棒了!
    
  • expression non verbale: :
    Ajouter au script (笑),(停顿) etc., Dia génère les effets sonores correspondants. Exemple :

    [S2] 这太好笑了!(笑)
    
  • cohérence de la voix: :
    Pour éviter que des sons différents soient générés à chaque fois, il faut soit fixer la graine, soit utiliser des repères audio. La fixation de la graine se fait dans l'interface de Gradio ou en ligne de commande via la commande --seed Paramètres. Les invites audio doivent être téléchargées sous forme de fichiers WAV de haute qualité avec des clips vocaux clairs.

mise en garde

  • Modèles non adaptés à des sons spécifiquesLes sons générés peuvent être différents à chaque fois et la cohérence doit être assurée par l'ensemencement ou les repères audio.
  • limitation du matérielLes performances du GPU ont un impact significatif sur la vitesse de génération et peuvent être plus lentes sur les appareils bas de gamme.
  • Lignes directrices éthiquesNari Labs fournit des lignes directrices éthiques et juridiques que les utilisateurs doivent suivre pour éviter de générer des contenus inappropriés.

 

scénario d'application

  1. création de contenu
    Dia est idéal pour générer des dialogues réalistes pour les podcasts, les animations ou les vidéos courtes. Les créateurs peuvent saisir des scripts et générer rapidement des voix de personnages, éliminant ainsi les coûts d'enregistrement. Par exemple, les animateurs peuvent générer des dialogues avec différentes intonations pour leurs personnages afin d'améliorer leur travail.
  2. Éducation et formation
    Dia peut générer des dialogues audio pour l'apprentissage des langues ou la formation aux jeux de rôle. Par exemple, les professeurs de langues peuvent créer des dialogues multirôles qui simulent des scénarios de la vie réelle pour aider les étudiants à pratiquer l'écoute et l'expression orale.
  3. développement de jeux
    Les développeurs de jeux peuvent utiliser Dia pour générer des dialogues dynamiques pour les PNJ. Les scripts prennent en charge l'étiquetage des émotions et peuvent générer des discours spécifiques aux personnages pour différents scénarios.
  4. Recherche et développement
    Les chercheurs en IA peuvent explorer les technologies TTS par le biais d'un développement secondaire basé sur le code source ouvert de Dia. Le modèle prend en charge le chargement local, ce qui convient à l'expérimentation et à l'optimisation.

 

QA

  1. Quels sont les formats d'entrée pris en charge par Dia ?
    Dia accepte les scripts textuels avec [S1],[S2] Les marqueurs permettent de distinguer les locuteurs. Les signes non verbaux tels que (笑)Le repère audio est disponible en option au format WAV.
  2. Comment puis-je m'assurer que les sons générés sont cohérents ?
    Les semences fixes peuvent être définies en réglant (--seed) ou télécharger une implémentation de cue audio. Les graines peuvent être définies dans l'interface de Gradio ou en ligne de commande, et les signaux audio doivent être des fichiers WAV de haute qualité.
  3. Dia prend-il en charge le fonctionnement de l'unité centrale ?
    Dia est actuellement optimisé pour fonctionner sur les GPU, la prise en charge des CPU étant prévue à l'avenir. Les GPU NVIDIA sont recommandés pour de meilleures performances.
  4. Combien de temps faut-il pour générer de l'audio ?
    Le temps de génération dépend du matériel et de la longueur du script. Sur les GPU haute performance, la génération de dialogues courts prend généralement quelques secondes, et celle de dialogues longs peut prendre des dizaines de secondes.
  5. Dia est-il gratuit ?
    Dia est un projet open source et le code et les modèles sont gratuits. Les utilisateurs sont responsables du coût du matériel nécessaire à son fonctionnement.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...