Des travaux antérieurs ont montré que la génération de formes d'onde audio brutes cohérentes avec GANS est difficile. Dans cet article, nous montrons qu'il est possible de former des Gans de manière fiable à générer des formes d'onde cohérentes de haute qualité en introduisant un ensemble de changements architecturaux et de techniques de formation simples. La métrique d'évaluation subjective (score d'opinion moyen, ou MOS) montre l'efficacité de l'approche proposée pour l'inversion du spectrogramme de MEL de haute qualité. Pour établir la généralité des techniques proposées, nous montrons des résultats qualitatifs de notre modèle en synthèse de la parole, de la traduction du domaine musical et de la synthèse musicale inconditionnelle. Nous évaluons les différentes composantes du modèle à travers des études d'ablation et suggérons un ensemble de lignes directrices pour concevoir des discriminateurs et des générateurs à usage général pour les tâches de synthèse de séquence conditionnelle. Notre modèle est non autorégressif, entièrement convolutionnel, avec beaucoup moins de paramètres que les modèles concurrents et se généralise aux haut-parleurs invisibles pour l'inversion du spectrogramme de MEL. Notre implémentation Pytorch s'exécute à plus de 100x plus rapidement que en temps réel sur GTX 1080TI GPU et plus de 2x plus rapidement que en temps réel sur CPU, sans aucun astuce d'optimisation spécifique au matériel. Article de blog avec des échantillons et le code qui l'accompagne à venir bientôt.
Visitez notre site Web pour des échantillons. Vous pouvez essayer l'application de correction de la parole ici créée sur la base du pipeline de synthèse de la parole de bout en bout à l'aide de MELGAN.
Vérifiez les diapositives si vous n'assistez pas à la conférence des Neirips 2019 pour consulter notre affiche.
├── README.md <- Top-level README.
├── set_env.sh <- Set PYTHONPATH and CUDA_VISIBLE_DEVICES.
│
├── mel2wav
│ ├── dataset.py <- data loader scripts
│ ├── modules.py <- Model, layers and losses
│ ├── utils.py <- Utilities to monitor, save, log, schedule etc.
│
├── scripts
│ ├── train.py <- training / validation / etc scripts
│ ├── generate_from_folder.py
Créez un dossier brut avec tous les échantillons stockés dans wavs/ sous-dossier. Exécutez ces commandes:
ls wavs/ * .wav | tail -n+10 > train_files.txt
ls wavs/ * .wav | head -n10 > test_files.txt . source set_env.sh 0
# Set PYTHONPATH and use first GPU
python scripts/train.py --save_path logs/baseline --path <root_data_folder>
import torch
vocoder = torch.hub.load('descriptinc/melgan-neurips', 'load_melgan')
vocoder.inverse(audio) # audio (torch.tensor) -> (batch_size, 80, timesteps)