Anglais | Chine
Une implémentation open source du modèle TTS zéro tir VALL-E X de Microsoft.
Nous publions notre modèle formé au public à des fins de recherche ou d'utilisation d'application.
VALL-E X est un étonnant modèle de synthèse vocale multilingue (TTS) proposé par Microsoft. Bien que Microsoft ait initialement publié son document de recherche, ils n'ont publié aucun code ni modèle pré-entraîné. Consciente du potentiel et de la valeur de cette technologie, notre équipe a relevé le défi de reproduire les résultats et de former notre propre modèle. Nous sommes heureux de partager notre modèle VALL-E X formé avec la communauté, permettant à chacun de découvrir la puissance du TTS de nouvelle génération !
Plus de détails sur le modèle sont présentés dans la fiche modèle.
2023.09.10
2023.08.30
2023.08.23
2023.08.20
2023.08.14
git clone https://github.com/Plachtaa/VALL-E-X.git
cd VALL-E-X
pip install -r requirements.txt
Remarque : Si vous souhaitez créer une invite, vous devez installer ffmpeg et ajouter son dossier à la variable d'environnement PATH.
Lorsque vous exécutez le programme pour la première fois, il téléchargera automatiquement le modèle correspondant.
Si le téléchargement échoue et signale une erreur, veuillez suivre les étapes ci-dessous pour télécharger manuellement le modèle.
(Veuillez faire attention à la majuscule des dossiers)
Vérifiez s'il existe un dossier checkpoints
dans le répertoire d'installation. Sinon, créez manuellement un dossier checkpoints
( ./checkpoints/
) dans le répertoire d'installation.
Vérifiez s'il existe un fichier vallex-checkpoint.pt
dans le dossier checkpoints
. Sinon, veuillez télécharger manuellement le fichier vallex-checkpoint.pt
à partir d'ici et placez-le dans le dossier checkpoints
.
Vérifiez s'il existe un dossier whisper
dans le répertoire d'installation. Sinon, créez manuellement un dossier whisper
( ./whisper/
) dans le répertoire d'installation.
Vérifiez s'il existe un fichier medium.pt
dans le dossier whisper
. Sinon, veuillez télécharger manuellement le fichier medium.pt
à partir d'ici et placez-le dans le dossier whisper
.
Vous n'êtes pas encore prêt à configurer l'environnement sur votre ordinateur local ? Aucun problème! Nous avons ce qu'il vous faut avec nos démos en ligne. Vous pouvez essayer VALL-E X directement sur Hugging Face ou Google Colab, et découvrir les capacités du modèle sans tracas !
VALL-E X est doté de fonctionnalités de pointe :
TTS multilingue : parlez en trois langues - anglais, chinois et japonais - avec une synthèse vocale naturelle et expressive.
Clonage vocal sans tir : enregistrez un court enregistrement de 3 à 10 secondes d'un locuteur invisible et regardez VALL-E X créer un discours personnalisé de haute qualité qui lui ressemble !
Explorez notre page de démonstration pour de nombreux autres exemples !
from utils . generation import SAMPLE_RATE , generate_audio , preload_models
from scipy . io . wavfile import write as write_wav
from IPython . display import Audio
# download and load all models
preload_models ()
# generate audio from text
text_prompt = """
Hello, my name is Nose. And uh, and I like hamburger. Hahaha... But I also have other interests such as playing tactic toast.
"""
audio_array = generate_audio ( text_prompt )
# save audio to disk
write_wav ( "vallex_generation.wav" , SAMPLE_RATE , audio_array )
# play text in notebook
Audio ( audio_array , rate = SAMPLE_RATE )
text_prompt = """
チュソクは私のお気に入りの祭りです。 私は数日間休んで、友人や家族との時間を過ごすことができます。
"""
audio_array = generate_audio ( text_prompt )
Remarque : VALL-E X contrôle parfaitement l'accent même lors de la synthèse de texte à changement de code. Cependant, vous devez indiquer manuellement la langue des phrases respectives (puisque notre outil g2p est basé sur des règles)
text_prompt = """
[EN]The Thirty Years' War was a devastating conflict that had a profound impact on Europe.[EN]
[ZH]这是历史的开始。 如果您想听更多,请继续。[ZH]
"""
audio_array = generate_audio ( text_prompt , language = 'mix' )
VALL-E X fournit des dizaines de voix de locuteurs que vous pouvez directement utiliser pour l'inférence ! Parcourez toutes les voix dans le code
VALL-E X essaie de faire correspondre le ton, la hauteur, l'émotion et la prosodie d'un préréglage donné. Le modèle tente également de préserver la musique, le bruit ambiant, etc.
text_prompt = """
I am an innocent boy with a smoky voice. It is a great honor for me to speak at the United Nations today.
"""
audio_array = generate_audio ( text_prompt , prompt = "dingzhen" )
VALL-E X prend en charge le clonage vocal ! Vous pouvez créer une invite vocale avec n'importe quelle personne, personnage ou même votre propre voix, et l'utiliser comme d'autres préréglages vocaux.
Pour créer une invite vocale, vous devez fournir un discours d'une durée de 3 à 10 secondes, ainsi que la transcription du discours. Vous pouvez également laisser la transcription vide pour laisser le modèle Whisper générer la transcription.
VALL-E X essaie de faire correspondre le ton, la hauteur, l'émotion et la prosodie d'une invite donnée. Le modèle tente également de préserver la musique, le bruit ambiant, etc.
from utils . prompt_making import make_prompt
### Use given transcript
make_prompt ( name = "paimon" , audio_prompt_path = "paimon_prompt.wav" ,
transcript = "Just, what was that? Paimon thought we were gonna get eaten." )
### Alternatively, use whisper
make_prompt ( name = "paimon" , audio_prompt_path = "paimon_prompt.wav" )
Essayons maintenant l'invite que nous venons de créer !
from utils . generation import SAMPLE_RATE , generate_audio , preload_models
from scipy . io . wavfile import write as write_wav
# download and load all models
preload_models ()
text_prompt = """
Hey, Traveler, Listen to this, This machine has taken my voice, and now it can talk just like me!
"""
audio_array = generate_audio ( text_prompt , prompt = "paimon" )
write_wav ( "paimon_cloned.wav" , SAMPLE_RATE , audio_array )
Vous n'êtes pas à l'aise avec les codes ? Aucun problème! Nous avons également créé une interface graphique conviviale pour VALL-E X. Elle vous permet d'interagir avec le modèle sans effort, faisant du clonage vocal et de la synthèse vocale multilingue un jeu d'enfant.
Vous pouvez lancer l'interface utilisateur à l'aide de la commande suivante :
python -X utf8 launch-ui.py
VALL-E X fonctionne bien sur CPU et GPU ( pytorch 2.0+
, CUDA 11.7 et CUDA 12.0).
Une VRAM GPU de 6 Go est suffisante pour exécuter VALL-E X sans déchargement.
VALL-E X est similaire à Bark, VALL-E et AudioLM, qui génère de l'audio dans le style GPT en prédisant les jetons audio quantifiés par EnCodec.
En comparaison avec l'écorce :
Langue | Statut |
---|---|
anglais (fr) | ✅ |
Japonais (ja) | ✅ |
Chinois simplifié (zh) | ✅ |
wget
pour télécharger le modèle dans le répertoire ./checkpoints/
lorsque vous exécutez le programme pour la première fois../checkpoints/
. .bat
pour les utilisateurs non-python Si vous trouvez VALL-E X intéressant et utile, donnez-nous une étoile sur GitHub ! ️ Cela nous encourage à continuer d'améliorer le modèle et d'ajouter des fonctionnalités intéressantes.
VALL-E X est sous licence MIT.
Vous avez des questions ou besoin d'aide ? N'hésitez pas à ouvrir un ticket ou à rejoindre notre Discord
Bon clonage vocal ! ?