Remarque: je ne travaille plus sur ce projet. Voir # 9.
Ce travail est inspiré du modèle M-CNN décrit dans l'inversion du spectrogramme rapide à l'aide de réseaux de neurones convolutionnels multi-tête. Les auteurs montrent que même des réseaux de mise à l'échantillonnage simples suffisent à synthèse la forme d'onde du spectrogramme / spectrogramme MEL.
Dans ce dépôt, j'utilise la fonction de spectrogramme pour le modèle de formation car il contient plus d'informations que la fonctionnalité de spectrogramme MEL. Cependant, parce que la transformation du spectrogramme en spectrogramme MEL n'est qu'une projection linéaire, donc fondamentalement, vous pouvez entraîner un spectrogramme de prédire de réseau simple à partir du spectrogramme MEL. Vous pouvez également modifier les paramètres pour pouvoir former un vocodeur à partir de la fonction de spectrogramme MEL.
Comparez avec M-CNN, mon réseau proposé a quelques différences:
$ pip install -r requirements.txtJ'utilise un ensemble de données LJSpeech pour mon expérience. Si vous ne l'avez pas encore, veuillez télécharger un ensemble de données et le mettre quelque part.
Après cela, vous pouvez exécuter la commande pour générer un ensemble de données pour notre expérience:
$ python preprocessing.py --samples_per_audio 20
--out_dir ljspeech
--data_dir path/to/ljspeech/dataset
--n_workers 4$ python train.py --out_dir ${output_directory}Pour plus d'options de formation, veuillez courir:
$ python train.py --help$ python gen_spec.py -i sample.wav -o out.npz$ python synthesis.py --model_path path/to/checkpoint
--spec_path out.npz
--out_path out.wavVous pouvez obtenir mon modèle pré-formé ici.
Cette implémentation utilise le code de Nvidia, Ryuichi Yamamoto, Keith Ito comme décrit dans mon code.
Mit