Catatan: Saya tidak lagi mengerjakan proyek ini. Lihat #9.
Karya ini terinspirasi dari model M-CNN yang dijelaskan dalam inversi spektrogram cepat menggunakan jaringan saraf konvolusional multi-head. Para penulis menunjukkan bahwa bahkan jaringan upampling sederhana sudah cukup untuk sintesis bentuk gelombang dari spektrogram/mel-spectrogram.
Dalam repo ini, saya menggunakan fitur Spectrogram untuk model pelatihan karena berisi lebih banyak informasi daripada fitur Mel-Spectrogram. Namun, karena transformasi dari spektrogram ke Mel-spectrogram hanyalah proyeksi linier, jadi pada dasarnya, Anda dapat melatih spektrogram prediksi jaringan sederhana dari Mel-Spectrogram. Anda juga dapat mengubah parameter untuk dapat melatih vokoder dari fitur Mel-Spectrogram juga.
Bandingkan dengan M-CNN, jaringan yang saya usulkan memiliki beberapa perbedaan:
$ pip install -r requirements.txtSaya menggunakan dataset LJSPEECH untuk percobaan saya. Jika Anda belum memilikinya, silakan unduh dataset dan letakkan di suatu tempat.
Setelah itu, Anda dapat menjalankan perintah untuk menghasilkan dataset untuk percobaan kami:
$ 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}Untuk lebih banyak opsi pelatihan, silakan jalankan:
$ 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.wavAnda bisa mendapatkan model pra-terlatih saya di sini.
Implementasi ini menggunakan kode dari NVIDIA, Ryuichi Yamamoto, Keith Ito seperti yang dijelaskan dalam kode saya.
Mit