Ceci est un référentiel pour notre article , ? NIX-TTS (accepté à IEEE SLT 2022). Nous avons publié les modèles pré-entraînés, une démo interactive et des échantillons audio ci-dessous.
[[? Lien papier] (à venir!)] [? Démo interactif] [? Échantillons audio]
Résumé Plusieurs solutions pour les TTS légères ont montré des résultats prometteurs. Pourtant, ils comptent soit sur une conception fabriquée à la main qui atteint la taille non optimale ou utilise une recherche d'architecture neuronale mais subit souvent des coûts de formation. Nous présentons Nix-TTS, un TTS léger atteint via la distillation des connaissances à un modèle de professeur TTS de haute qualité mais de grande taille, non autorégressif et de bout en bout (sans vocodeur). Plus précisément, nous offrons une distillation par module, permettant une distillation flexible et indépendante au module de l'encodeur et du décodeur. Le NIX-TTS résultant a hérité des propriétés avantageuses d'être non autorégressive et de bout en bout de l'enseignant, mais de taille nettement plus petite, avec seulement 5,23 millions de paramètres ou jusqu'à 89,34% de réduction du modèle de l'enseignant; Il réalise également plus de 3,04 $ Times $ et 8,36 $ Times $ inférence accélère respectivement sur le processeur Intel-I7 et la framboise PI 3B respectivement et conserve toujours un naturel et une intelligence de voix équitable par rapport au modèle des enseignants.
Clone le référentiel nix-tts et passer à son répertoire
git clone https://github.com/rendchevi/nix-tts.git
cd nix-ttsInstaller les dépendances
python >= 3.8 pip install -r requirements.txt sudo apt-get install espeakOu suivez l'instruction officielle au cas où cela ne fonctionnerait pas.
Téléchargez votre modèle pré-formé choisi ici .
| Modèle | Num. de paramètres | Plus rapide que le temps réel * (CPU Intel-I7) | Plus rapide que le temps réel * (Raspi Model 3B) |
|---|---|---|---|
| NIX-TTS (ONNX) | 5,23 m | 11.9x | 0,50x |
| NIX-TTS avec durée stochastique (ONNX) | 6,03 m | 10.8x | 0,50x |
* Ici, nous calculons à quel point le modèle fonctionne plus rapidement que le temps réel en tant que facteur inverse du facteur en temps réel (RTF). La table complète de tous les modèles accélérera sur le papier.
Et exécuter Nix-TTS est aussi simple que:
from nix . models . TTS import NixTTSInference
from IPython . display import Audio
# Initiate Nix-TTS
nix = NixTTSInference ( model_dir = "<path_to_the_downloaded_model>" )
# Tokenize input text
c , c_length , phoneme = nix . tokenize ( "Born to multiply, born to gaze into night skies." )
# Convert text to raw speech
xw = nix . vocalize ( c , c_length )
# Listen to the generated speech
Audio ( xw [ 0 , 0 ], rate = 22050 )