Implementasi resmi RAVE: Autoencoder variasional untuk sintesis audio saraf yang cepat dan berkualitas tinggi (tautan artikel) oleh Antoine Caillon dan Philippe Esling.
Jika Anda menggunakan RAVE sebagai bagian dari pertunjukan atau instalasi musik, pastikan untuk mengutip repositori ini atau artikelnya !
Jika Anda ingin berbagi/berdiskusi/bertanya tentang RAVE, Anda dapat melakukannya di server perselisihan kami!
Silakan periksa FAQ sebelum memposting masalah!
RAVE VST RAVE VST untuk Windows, Mac dan Linux tersedia sebagai beta di halaman web Forum IRCAM yang sesuai. Untuk masalah, silakan tulis masalah di sini atau di halaman diskusi Forum IRCAM.
Tutorial : tutorial baru tersedia di halaman web Forum IRCAM, dan versi video akan segera hadir!
Implementasi asli model RAVE dapat dipulihkan menggunakan
git checkout v1
Instal RAVE menggunakan
pip install acids-rave
Peringatan Sangat disarankan untuk menginstal torch
dan torchaudio
sebelum acids-rave
, sehingga Anda dapat memilih versi torch yang sesuai di situs web perpustakaan. Untuk kompatibilitas di masa mendatang dengan perangkat baru (dan lingkungan Python modern), rave-acids
tidak lagi menerapkan torch==1.13.
Anda memerlukan ffmpeg di komputer Anda. Anda dapat menginstalnya secara lokal di dalam lingkungan virtual Anda menggunakan
conda install ffmpeg
Colab untuk melatih RAVEv2 kini tersedia berkat hexorcismos!
Pelatihan model RAVE biasanya melibatkan 3 langkah terpisah, yaitu persiapan kumpulan data , pelatihan , dan ekspor .
Anda dapat menyiapkan kumpulan data menggunakan dua metode: reguler dan malas. Pra-pemrosesan yang lambat memungkinkan RAVE dilatih langsung pada file mentah (yaitu mp3, ogg), tanpa mengonversinya terlebih dahulu. Peringatan : pemuatan kumpulan data yang lambat akan meningkatkan beban CPU Anda dengan selisih yang besar selama pelatihan, terutama di Windows. Namun hal ini dapat berguna saat melatih korpus audio berukuran besar yang tidak dapat muat di hard drive saat tidak dikompresi. Bagaimanapun, persiapkan kumpulan data Anda menggunakan
rave preprocess --input_path /audio/folder --output_path /dataset/path --channels X (--lazy)
RAVEv2 memiliki banyak konfigurasi berbeda. Versi perbaikan dari v1 disebut v2
, dan oleh karena itu dapat dilatih dengannya
rave train --config v2 --db_path /dataset/path --out_path /model/out --name give_a_name --channels X
Kami juga menyediakan konfigurasi diskrit, mirip dengan SoundStream atau EnCodec
rave train --config discrete ...
Secara default, RAVE dibuat dengan konvolusi non-kausal. Jika Anda ingin membuat model kausal (sehingga menurunkan latensi model secara keseluruhan), Anda dapat menggunakan mode kausal
rave train --config discrete --config causal ...
Yang baru di 2.3, augmentasi data juga tersedia untuk meningkatkan generalisasi model dalam rezim data rendah. Anda dapat menambahkan augmentasi data dengan menambahkan file konfigurasi augmentasi dengan kata kunci --augment
rave train --config v2 --augment mute --augment compress
Banyak file konfigurasi lainnya tersedia di rave/configs
dan dapat digabungkan. Berikut adalah daftar semua konfigurasi & augmentasi yang tersedia:
Jenis | Nama | Keterangan |
---|---|---|
Arsitektur | v1 | Model kontinu asli (memori GPU minimum : 8Go) |
v2 | Model berkelanjutan yang ditingkatkan (lebih cepat, kualitas lebih tinggi) (memori GPU minimum: 16Go) | |
v2_kecil | v2 dengan bidang reseptif yang lebih kecil, pelatihan permusuhan yang disesuaikan, dan generator kebisingan, disesuaikan untuk transfer timbre untuk sinyal stasioner (memori GPU minimum: 8Go) | |
v2_nopqmf | (eksperimental) v2 tanpa pqmf di generator (lebih efisien untuk tujuan pembengkokan) (memori GPU minimum: 16Go) | |
v3 | v2 dengan aktivasi Snake, diskriminator deskripsi, dan Normalisasi Instance Adaptif untuk transfer gaya nyata (memori GPU minimum: 32Go) | |
terpisah | Model diskrit (mirip dengan SoundStream atau EnCodec) (memori GPU minimum : 18Go) | |
segera | Konfigurasi v1 tanpa suara untuk penggunaan onnx (memori GPU minimum : 6Go) | |
frambos | Konfigurasi ringan yang kompatibel dengan inferensi RaspberryPi 4 realtime (memori GPU minimum: 5Go) | |
Regularisasi (khusus v2) | bawaan | Tujuan Variational Auto Encoder (ELBO) |
wasserstein | Tujuan Wasserstein Auto Encoder (MMD) | |
bulat | Tujuan Encoder Otomatis Bulat | |
Diskriminator | spectral_diskriminator | Gunakan diskriminator MultiScale dari EnCodec. |
Yang lain | kausal | Gunakan konvolusi sebab akibat |
kebisingan | Mengaktifkan penyintesis kebisingan V2 | |
hibrida | Aktifkan masukan mel-spektogram | |
Augmentasi | bisu | Menonaktifkan kumpulan data secara acak (masalah default: 0,1). Menerapkan model untuk mempelajari keheningan |
kompres | Memampatkan bentuk gelombang secara acak (setara dengan amplifikasi batch non-linier ringan) | |
memperoleh | Menerapkan penguatan acak ke bentuk gelombang (rentang default: [-6, 3]) |
Setelah dilatih, ekspor model Anda ke file torchscript menggunakan
rave export --run /path/to/your/run (--streaming)
Menyetel tanda --streaming
akan mengaktifkan konvolusi cache, membuat model kompatibel dengan pemrosesan waktu nyata. Jika Anda lupa menggunakan mode streaming dan mencoba memuat model di Max, Anda akan mendengar bunyi klik artefak.
Untuk model diskrit, kami mengarahkan pengguna ke perpustakaan msprior
di sini. Namun, karena perpustakaan ini masih bersifat eksperimental, versi sebelumnya dari 1.x telah diintegrasikan kembali ke v2.3.
Untuk melatih model RAVE yang telah dilatih sebelumnya:
rave train_prior --model /path/to/your/run --db_path /path/to/your_preprocessed_data --out_path /path/to/output
ini akan melatih sebelumnya atas laten model yang telah dilatih sebelumnya path/to/your/run
, dan menyimpan log model dan tensorboard ke folder /path/to/output
.
Untuk membuat skrip prior bersama dengan model RAVE, ekspor model Anda dengan memberikan kata kunci --prior
ke prior yang telah dilatih sebelumnya :
rave export --run /path/to/your/run --prior /path/to/your/prior (--streaming)
Beberapa model streaming terlatih tersedia di sini. Kami akan terus memperbarui daftarnya dengan model-model baru.
Bagian ini menyajikan bagaimana RAVE dapat dimuat di dalam nn~
untuk digunakan secara langsung dengan Max/MSP atau PureData.
Model RAVE terlatih bernama darbouka.gin
yang tersedia di komputer Anda dapat dimuat di dalam nn~
menggunakan sintaks berikut, di mana metode default diatur untuk meneruskan (yaitu menyandikan lalu mendekode)
Ini melakukan hal yang sama seperti patch berikut, tetapi sedikit lebih cepat.
Memiliki akses eksplisit ke representasi laten yang dihasilkan oleh RAVE memungkinkan kita berinteraksi dengan representasi tersebut menggunakan alat pemrosesan sinyal Max/MSP atau PureData:
Secara default, RAVE dapat digunakan sebagai alat transfer gaya, berdasarkan rasio kompresi model yang besar. Kami baru-baru ini menambahkan teknik yang terinspirasi dari StyleGAN untuk menyertakan Normalisasi Instans Adaptif ke dalam proses rekonstruksi, yang secara efektif memungkinkan untuk menentukan gaya sumber dan target langsung di dalam Max/MSP atau PureData, menggunakan sistem atribut nn~
.
Atribut lain, seperti enable
atau gpu
dapat mengaktifkan/menonaktifkan komputasi, atau menggunakan GPU untuk mempercepat sesuatu (masih bersifat eksperimental).
Skrip pembuatan batch telah dirilis di v2.3 untuk memungkinkan transformasi file dalam jumlah besar
rave generate model_path path_1 path_2 --out out_path
di mana model_path
adalah jalur ke model terlatih Anda (asli atau skrip), path_X
daftar file atau direktori audio, dan out_path
direktori keluar dari generasi tersebut.
Jika Anda memiliki pertanyaan, ingin berbagi pengalaman Anda dengan RAVE atau berbagi karya musik yang dibuat dengan model, Anda dapat menggunakan tab Diskusi!
Demonstrasi apa yang dapat Anda lakukan dengan RAVE dan nn~ eksternal untuk maxmsp !
Menggunakan nn~ untuk puredata, RAVE dapat digunakan secara realtime pada platform tertanam!
Pertanyaan : prapemrosesan saya terhenti, menampilkan 0it[00:00, ?it/s]
Jawaban : Ini berarti file audio dalam kumpulan data Anda terlalu pendek untuk memberikan cakupan temporal yang memadai untuk RAVE. Coba kurangi jendela sinyal dengan --num_signal XXX(samples)
dengan preprocess
, tanpa lupa setelahnya menambahkan --n_signal XXX(samples)
dengan train
Pertanyaan : Selama pelatihan saya mendapat pengecualian yang menyerupai ValueError: n_components=128 must be between 0 and min(n_samples, n_features)=64 with svd_solver='full'
Jawaban : Ini berarti kumpulan data Anda tidak memiliki kumpulan data yang cukup untuk menghitung PCA laten magang, yang memerlukan setidaknya 128 contoh (kemudian kumpulan).
Pekerjaan ini dipimpin di IRCAM, dan didanai oleh proyek-proyek berikut