Univnet: Vocoder saraf dengan diskriminator spektrogram multi-resolusi untuk generasi bentuk gelombang kesetiaan tinggi
Ini adalah implementasi Pytorch tidak resmi dari Jang et al. (Kakao), Univnet .
Sampel audio diunggah!
Hasil UnivNet-C16 dan C32 dan bobot pra-terlatih telah diunggah.
Untuk kedua model, implementasi kami cocok dengan skor objektif (PESQ dan RMSE) dari kertas asli.

Menurut penulis makalah ini, Univnet memperoleh hasil objektif terbaik di antara vokoder saraf berbasis GAN baru-baru ini (termasuk HiFi-gan) serta mengungguli HiFi-Gan dalam evaluasi subyektif. Juga kecepatan inferensi-nya 1,5 kali lebih cepat dari Hifi-Gan.
Repositori ini menggunakan fungsi Mel-spectrogram yang sama dengan HiFi-Gan resmi, yang kompatibel dengan NVIDIA/TACOTRON2.
Hyperparameter perhitungan Mel default kami seperti di bawah ini, mengikuti kertas asli.
audio :
n_mel_channels : 100
filter_length : 1024
hop_length : 256 # WARNING: this can't be changed.
win_length : 1024
sampling_rate : 24000
mel_fmin : 0.0
mel_fmax : 12000.0Anda dapat memodifikasi hyperparameters agar kompatibel dengan model akustik Anda.
Implementasi membutuhkan dependensi berikut.
pip install -r requirements.txtMenyiapkan data
datasets/LibriTTS/train-clean-360 . Catatan: Mel-spectrograms yang dihitung dari file audio akan disimpan sebagai **.mel pada awalnya, dan kemudian dimuat dari disk sesudahnya.
Mempersiapkan metadata
Mengikuti format dari NVIDIA/TACOTRON2, metadata harus diformat sebagai:
path_to_wav|transcript|speaker_id
path_to_wav|transcript|speaker_id
...
Metadata kereta/validasi untuk perpustakaan libritts-clean-360 dan sudah disiapkan dalam datasets/metadata . 5% dari ucapan kereta api-360 diambil sampelnya secara acak untuk validasi.
Karena model ini adalah vokoder, transkrip tidak digunakan selama pelatihan.
Mempersiapkan file konfigurasi
Jalankan cp config/default_c32.yaml config/config.yaml dan kemudian edit config.yaml
Tuliskan jalur root kereta/validasi di bagian data . Data loader mem -parses daftar file dalam jalur secara rekursif.
data :
train_dir : ' datasets/ ' # root path of train data (either relative/absoulte path is ok)
train_meta : ' metadata/libritts_train_clean_360_train.txt ' # relative path of metadata file from train_dir
val_dir : ' datasets/ ' # root path of validation data
val_meta : ' metadata/libritts_train_clean_360_val.txt ' # relative path of metadata file from val_dirKami menyediakan metadata default untuk perpecahan Libritts-Clean-360.
Ubah channel_size di gen untuk beralih antara UnivNet-C16 dan C32.
gen :
noise_dim : 64
channel_size : 32 # 32 or 16
dilations : [1, 3, 9, 27]
strides : [8, 8, 4]
lReLU_slope : 0.2Pelatihan
python trainer.py -c CONFIG_YAML_FILE -n NAME_OF_THE_RUNTensorboard
tensorboard --logdir logs/ Jika Anda menjalankan Tensorboard pada mesin jarak jauh, Anda dapat membuka halaman Tensorboard dengan menambahkan --bind_all opsi.
python inference.py -p CHECKPOINT_PATH -i INPUT_MEL_PATH -o OUTPUT_WAV_PATHAnda dapat mengunduh model pra-terlatih dari tautan Google Drive di bawah ini. Model-model dilatih di perpecahan Libritts-Clean-360.
Lihat sampel audio di https://mindslab-ai.github.io/univnet/
Kami mengevaluasi model kami dengan set validasi.
| Model | PESQ (↑) | RMSE (↓) | Ukuran model |
|---|---|---|---|
| HiFi-Gan V1 | 3.54 | 0.423 | 14.01m |
| Univnet-C16 resmi | 3.59 | 0.337 | 4,00m |
| UNIVNET-C16 kami | 3.60 | 0.317 | 4,00m |
| UNIVNET-C32 resmi | 3.70 | 0.316 | 14.86m |
| Univnet-C32 kami | 3.68 | 0.304 | 14.87m |
Grafik kerugian Univnet tercantum di bawah ini.
Grafik oranye dan biru menunjukkan C16 dan C32, masing -masing.

Penulis implementasi adalah:
Kontributor adalah:
Terima kasih khusus
Kode ini dilisensikan di bawah lisensi BSD 3-Clause.
Kami merujuk kode dan repositori berikut.
Dokumen
Kumpulan data