Hinweis: Ich arbeite nicht mehr an diesem Projekt. Siehe #9.
Diese Arbeit wird vom M-CNN-Modell inspiriert, das in der schnellen Spektrogram-Inversion unter Verwendung von mehrköpfigen Faltungsnetzwerken beschrieben wird. Die Autoren zeigen, dass selbst ein einfaches Up-Sampling-Netzwerke ausreicht, um die Wellenform aus Spektrogram/Melspektrogramm zu synthetieren.
In diesem Repo verwende ich die Spektrogrammfunktion für das Trainingsmodell, da es mehr Informationen als Mel-Spektrogram-Funktion enthält. Da die Transformation vom Spektrogramm zum Melspektrogramm nur eine lineare Projektion ist, können Sie im Grunde genommen ein einfaches Netzwerk ausbilden, das Spektrogramm aus dem Melspektogramm vorhersagt. Sie können auch die Parameter ändern, um auch einen Vokoder aus der Melspektogrammfunktion zu trainieren.
Vergleiche mit M-CNN, mein vorgeschlagenes Netzwerk hat einige Unterschiede:
$ pip install -r requirements.txtIch benutze LJSpeech -Datensatz für mein Experiment. Wenn Sie es noch nicht haben, laden Sie den Datensatz bitte herunter und setzen Sie es irgendwo ein.
Danach können Sie den Befehl ausführen, um Datensatz für unser Experiment zu generieren:
$ 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}Weitere Schulungsoptionen finden Sie unter:
$ 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.wavSie können mein vorgebildetes Modell hier bekommen.
Diese Implementierung verwendet Code von Nvidia, Ryuichi Yamamoto, Keith Ito, wie in meinem Code beschrieben.
MIT