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é.

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 :
- 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
- 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
- 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
- Télécharger le modèle pré-entraîné
Téléchargez le modèle de poids à partir du lien ci-dessous :- Muyan-TTS. Visage étreint, Champ d'application du modèle
- Muyan-TTS-SFT. Visage étreint, Champ d'application du modèle
- chinese-hubert-base. Visage étreint
Placer le fichier modèle téléchargé dans le répertoirepretrained_models
qui est structuré comme suit :
pretrained_models ├── chinese-hubert-base ├── Muyan-TTS └── Muyan-TTS-SFT
- 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 :
- 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."
- Exécuter la commande de raisonnement
Utilisez la commande suivante pour générer un discours, en spécifiantmodel_type
en raison debase
: :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
. - 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 :
- 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é danslibrispeech_dir
est le chemin de décompression. - Générer des données de formation
Exécutez la commande suivante pour traiter les données et générerdata/tts_sft_data.json
: :./train.sh
Le format des données est le suivant :
{ "file_name": "path/to/audio.wav", "text": "对应的文本内容" }
- Ajustement de la configuration de la formation
compilateurtraining/sft.yaml
L'utilisateur peut également définir des paramètres tels que le taux d'apprentissage, la taille du lot, etc. - 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
. - Copier les poids SoVITS
La mise en place de lasovits.pth
Copier dans le répertoire du nouveau modèle :cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
- raisonnement en cours d'exécution
Pour générer un discours à l'aide du modèle SFT, vous devez conserverref_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 :
- 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
. - 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
- 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. - 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. - 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. - 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
- 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. - 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. - Qu'en est-il de la lenteur du raisonnement ?
Veiller à l'utilisation du soutien vLLM Environnements accélérés par le GPU. Parnvidia-smi
Vérifiez l'utilisation de la mémoire pour vous assurer que le modèle est correctement chargé dans le GPU. - 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. - 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
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...