Muyan-TTS : formation et synthèse vocale personnalisée pour podcast

Introduction générale

Muyan-TTS est un modèle de synthèse vocale open source conçu pour les scénarios de podcasting. Il est pré-entraîné avec plus de 100 000 heures de données audio de podcasts et prend en charge la synthèse vocale sans échantillon pour générer une parole naturelle de haute qualité. Le modèle est basé sur Llama-3.2-3B et combine les éléments suivants SoVITS Muyan-TTS prend également en charge la personnalisation de la parole à partir de dizaines de minutes de données vocales d'une seule personne, adaptées aux besoins de timbres spécifiques. Le projet est publié sous la licence Apache 2.0, avec le code d'entraînement complet, le flux de traitement des données et les poids des modèles hébergés sur GitHub, Hugging Face et ModelScope, et les développeurs sont encouragés à développer et à contribuer à la communauté.

Muyan-TTS:个性化播客语音训练与合成

 

Liste des fonctions

  • Synthèse vocale à échantillonnage zéroLes utilisateurs peuvent ainsi générer des discours de qualité, de type podcast, sans formation supplémentaire, en s'adaptant à un large éventail de tonalités.
  • Personnalisation de la voixLa voix d'une personne : Générer la voix d'un locuteur spécifique en affinant quelques minutes de données vocales d'une personne.
  • Vitesse de raisonnement efficaceLa technologie TTS est la plus performante du marché : environ 0,33 seconde de génération audio par seconde sur un seul GPU NVIDIA A100, ce qui surpasse plusieurs modèles TTS à code source ouvert.
  • Code de formation en libre accèsLe système d'apprentissage en ligne : Il fournit un processus de formation complet, du modèle de base au modèle affiné, avec une aide à la personnalisation pour les développeurs.
  • Pipeline de traitement des donnéesIntégration avec Whisper, FunASR et NISQA pour nettoyer et transcrire les données audio des podcasts.
  • Soutien au déploiement de l'APILe site Web de l'association est un outil API qui permet d'intégrer facilement des podcasts ou d'autres applications vocales.
  • Poids du modèle ouvertLes poids des modèles Muyan-TTS et Muyan-TTS-SFT peuvent être téléchargés à partir de Hugging Face et ModelScope.

 

Utiliser l'aide

Processus d'installation

L'installation de Muyan-TTS doit se faire sous un environnement Linux, Ubuntu est recommandé. Vous trouverez ci-dessous les étapes détaillées :

  1. entrepôt de clones
    Ouvrez un terminal et exécutez la commande suivante pour cloner le dépôt Muyan-TTS :

    git clone https://github.com/MYZY-AI/Muyan-TTS.git
    cd Muyan-TTS
  1. Créer un environnement virtuel
    Création d'un environnement virtuel pour Python 3.10 avec Conda :

    conda create -n muyan-tts python=3.10 -y
    conda activate muyan-tts
    
  2. Installation des dépendances
    Exécutez la commande suivante pour installer les dépendances du projet :

    make build
    

    Note : FFmpeg doit être installé. fonctionne sur Ubuntu :

    sudo apt update
    sudo apt install ffmpeg
    
  3. Télécharger le modèle pré-entraîné
    Téléchargez le modèle de poids à partir du lien ci-dessous :

    pretrained_models
    ├── chinese-hubert-base
    ├── Muyan-TTS
    └── Muyan-TTS-SFT
    
  4. Vérifier l'installation
    Après s'être assuré que toutes les dépendances et tous les fichiers de modèle sont correctement installés, l'inférence ou l'apprentissage peut être effectué.

Utilisation du modèle de base (synthèse vocale sans échantillon)

Le modèle de base de Muyan-TTS prend en charge la synthèse vocale sans échantillon, ce qui permet de générer rapidement des discours de type podcast. Les étapes sont les suivantes :

  1. Préparer le texte d'entrée et l'audio de référence
    Préparer un texte (text) et le discours de référence (ref_wav_path). Exemple :

    ref_wav_path="assets/Claire.wav"
    prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige."
    text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
    
  2. Exécuter la commande de raisonnement
    Utilisez la commande suivante pour générer un discours, en spécifiant model_type en raison de base: :

    python tts.py
    

    Ou exécutez simplement le code d'inférence de base :

    async def main(model_type, model_path):
    tts = Inference(model_type, model_path, enable_vllm_acc=False)
    wavs = await tts.generate(
    ref_wav_path="assets/Claire.wav",
    prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.",
    text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
    )
    output_path = "logs/tts.wav"
    with open(output_path, "wb") as f:
    f.write(next(wavs))
    print(f"Speech generated in {output_path}")
    

    Le discours généré est enregistré dans le fichier logs/tts.wav.

  3. Remplacement de l'audio de référence
    Dans le mode d'échantillonnage zéro, leref_wav_path Elle peut être remplacée par la voix de n'importe quel locuteur, et le modèle imitera son timbre pour générer une nouvelle voix.

Utilisation du modèle SFT (personnalisation de la voix)

Le modèle SFT est affiné à l'aide de données vocales d'une seule personne permettant de générer des timbres spécifiques. La procédure est la suivante :

  1. Préparer les données d'entraînement
    Recueillez au moins quelques minutes de données vocales d'une seule personne et enregistrez-les au format WAV. Utilisez l'ensemble de données dev-clean de LibriSpeech comme exemple, disponible en téléchargement :

    wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
    

    Après avoir décompressé le prepare_sft_dataset.py spécifié dans librispeech_dir est le chemin de décompression.

  2. Générer des données de formation
    Exécutez la commande suivante pour traiter les données et générer data/tts_sft_data.json: :

    ./train.sh
    

    Le format des données est le suivant :

    {
    "file_name": "path/to/audio.wav",
    "text": "对应的文本内容"
    }
    
  3. Ajustement de la configuration de la formation
    compilateur training/sft.yamlL'utilisateur peut également définir des paramètres tels que le taux d'apprentissage, la taille du lot, etc.
  4. Commencer la formation
    train.sh La commande suivante est automatiquement exécutée pour lancer la formation :

    llamafactory-cli train training/sft.yaml
    

    Une fois l'apprentissage terminé, les poids du modèle sont enregistrés dans le fichier pretrained_models/Muyan-TTS-new-SFT.

  5. Copier les poids SoVITS
    La mise en place de la sovits.pth Copier dans le répertoire du nouveau modèle :

    cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
    
  6. raisonnement en cours d'exécution
    Pour générer un discours à l'aide du modèle SFT, vous devez conserver ref_wav_path En accord avec l'orateur utilisé lors de la formation :

    python tts.py --model_type sft
    

Déploiement via l'API

Muyan-TTS prend en charge le déploiement de l'API pour une intégration facile dans les applications. Les étapes sont les suivantes :

  1. Démarrer le service API
    Exécutez la commande suivante pour démarrer le service. Le port par défaut est 8020 :

    python api.py --model_type base
    

    Les journaux de service sont conservés dans le logs/llm.log.

  2. Envoyer une demande
    Utilisez le code Python suivant pour envoyer la requête :

    import requests
    payload = {
    "ref_wav_path": "assets/Claire.wav",
    "prompt_text": "Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.",
    "text": "Welcome to the captivating world of podcasts, let's embark on this exciting journey together.",
    "temperature": 0.6,
    "speed": 1.0,
    }
    url = "http://localhost:8020/get_tts"
    response = requests.post(url, json=payload)
    with open("logs/tts.wav", "wb") as f:
    f.write(response.content)
    

mise en garde

  • exigences en matière de matérielPour l'inférence, il est recommandé d'utiliser un GPU NVIDIA A100 (40 Go) ou un GPU équivalent.
  • restriction linguistiqueLes données de formation étant principalement en anglais, seule la saisie en anglais est actuellement prise en charge.
  • Qualité des donnéesLa qualité vocale du modèle SFT dépend de la clarté et de la cohérence des données d'apprentissage.
  • Coûts de formationLe coût total de la préformation était d'environ 50 000 dollars, y compris le traitement des données (30 000 dollars), la préformation LLM (19 200 dollars) et la formation des décodeurs (0,134 million de dollars).

 

scénario d'application

  1. Création de contenu pour les podcasts
    Muyan-TTS convertit rapidement les scripts de podcasts en paroles naturelles pour permettre aux créateurs indépendants de produire un son de haute qualité. Les utilisateurs peuvent générer un discours de type podcast en saisissant simplement le texte et le discours de référence, ce qui réduit les coûts d'enregistrement.
  2. Production de livres audio
    Avec le modèle SFT, les créateurs peuvent personnaliser la voix de certains personnages pour générer des chapitres de livres audio. Le modèle prend en charge la génération d'audios longs, ce qui convient aux contenus longs.
  3. Développement d'un assistant vocal
    Les développeurs peuvent intégrer Muyan-TTS dans les assistants vocaux via des API afin de fournir une expérience d'interaction vocale naturelle et personnalisée.
  4. Génération de contenu éducatif
    Les écoles ou les organismes de formation peuvent convertir le matériel pédagogique en langage parlé afin de générer des fichiers audio pour des exercices d'écoute ou des explications de cours, adaptés à l'apprentissage des langues ou aux malvoyants.

 

QA

  1. Quelles sont les langues prises en charge par Muyan-TTS ?
    Actuellement, seul l'anglais est pris en charge, car les données d'entraînement sont dominées par des podcasts audio en anglais. D'autres langues pourront être prises en charge à l'avenir en élargissant l'ensemble de données.
  2. Comment améliorer la qualité vocale des modèles SFT ?
    Utilisez des données vocales de haute qualité et claires pour une seule personne afin d'éviter les bruits de fond. Veillez à ce que les données d'entraînement soient cohérentes avec le style vocal de la scène cible.
  3. Qu'en est-il de la lenteur du raisonnement ?
    Veiller à l'utilisation du soutien vLLM Environnements accélérés par le GPU. Par nvidia-smi Vérifiez l'utilisation de la mémoire pour vous assurer que le modèle est correctement chargé dans le GPU.
  4. Est-il possible de l'utiliser à des fins commerciales ?
    Muyan-TTS est publié sous la licence Apache 2.0 et peut être utilisé à des fins commerciales, sous réserve des conditions de la licence.
  5. Comment puis-je obtenir une assistance technique ?
    Les problèmes peuvent être soumis via GitHub (Enjeux) ou rejoindre la communauté Discord (Discord) Obtenez du soutien.
© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

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