Repositori ini berisi skrip pelatihan dan inferensi untuk deskripsi audio codec (.dac), codec audio neural umum kesetiaan tinggi, yang diperkenalkan dalam makalah berjudul Kompresi Audio Fidelity Tinggi dengan RVQGAN yang lebih baik .
Kertas Arxiv: Kompresi audio kesetiaan tinggi dengan RVQGAN yang lebih baik
? Situs demo
⚙ Bobot model
Dengan deskripsi audio codec, Anda dapat mengompres audio 44.1 kHz ke dalam kode diskrit pada bitrate 8 kbps rendah .
? Itu sekitar 90x kompresi sambil mempertahankan kesetiaan yang luar biasa dan meminimalkan artefak.
? Model universal kami bekerja pada semua domain (pidato, lingkungan, musik, dll.), Membuatnya berlaku secara luas untuk pemodelan generatif semua audio.
? Ini dapat digunakan sebagai pengganti drop-in untuk EncodeC untuk semua aplikasi pemodelan bahasa audio (seperti audiolms, musiclms, musicgen, dll.)
pip install descript-audio-codec
ATAU
pip install git+https://github.com/descriptinc/descript-audio-codec
Bobot dirilis sebagai bagian dari repo ini di bawah lisensi MIT. Kami melepaskan bobot untuk model yang secara asli dapat mendukung tingkat pengambilan sampel 16 kHz, 24kHz, dan 44.1kHz. Bobot diunduh secara otomatis saat Anda pertama kali menjalankan perintah encode
atau decode
. Anda dapat menyimpannya menggunakan salah satu perintah berikut
python3 -m dac download # downloads the default 44kHz variant
python3 -m dac download --model_type 44khz # downloads the 44kHz variant
python3 -m dac download --model_type 24khz # downloads the 24kHz variant
python3 -m dac download --model_type 16khz # downloads the 16kHz variant
Kami menyediakan DockerFile yang menginstal semua dependensi yang diperlukan untuk pengkodean dan decoding. Proses build menyimpan bobot model default di dalam gambar. Ini memungkinkan gambar untuk digunakan tanpa koneksi internet. Silakan lihat instruksi di bawah ini.
python3 -m dac encode /path/to/input --output /path/to/output/codes
Perintah ini akan membuat file .dac
dengan nama yang sama dengan file input. Ini juga akan mempertahankan struktur direktori relatif terhadap input akar dan membuat kembali di direktori output. Silakan gunakan python -m dac encode --help
untuk opsi lebih lanjut.
python3 -m dac decode /path/to/output/codes --output /path/to/reconstructed_input
Perintah ini akan membuat file .wav
dengan nama yang sama dengan file input. Ini juga akan mempertahankan struktur direktori relatif terhadap input akar dan membuat kembali di direktori output. Silakan gunakan python -m dac decode --help
untuk opsi lebih lanjut.
import dac
from audiotools import AudioSignal
# Download a model
model_path = dac . utils . download ( model_type = "44khz" )
model = dac . DAC . load ( model_path )
model . to ( 'cuda' )
# Load audio signal file
signal = AudioSignal ( 'input.wav' )
# Encode audio signal as one long file
# (may run out of GPU memory on long files)
signal . to ( model . device )
x = model . preprocess ( signal . audio_data , signal . sample_rate )
z , codes , latents , _ , _ = model . encode ( x )
# Decode audio signal
y = model . decode ( z )
# Alternatively, use the `compress` and `decompress` functions
# to compress long files.
signal = signal . cpu ()
x = model . compress ( signal )
# Save and load to and from disk
x . save ( "compressed.dac" )
x = dac . DACFile . load ( "compressed.dac" )
# Decompress it back to an AudioSignal
y = model . decompress ( x )
# Write to file
y . write ( 'output.wav' )
Kami menyediakan dockerfile untuk membangun gambar Docker dengan semua dependensi yang diperlukan.
Membangun gambar.
docker build -t dac .
Menggunakan gambar.
Penggunaan CPU:
docker run dac <command>
Penggunaan pada GPU:
docker run --gpus=all dac <command>
<command>
dapat menjadi salah satu perintah kompresi dan rekonstruksi yang tercantum di atas. Misalnya, jika Anda ingin menjalankan kompresi,
docker run --gpus=all dac python3 -m dac encode ...
Konfigurasi model dasar dapat dilatih menggunakan perintah berikut.
Harap instal dependensi yang benar
pip install -e ".[dev]"
Kami telah menyediakan setup DockerFile dan Docker yang membuat eksperimen berjalan mudah.
Untuk membangun gambar Docker lakukan:
docker compose build
Kemudian, untuk meluncurkan wadah, lakukan:
docker compose run -p 8888:8888 -p 6006:6006 dev
Argumen port ( -p
) bersifat opsional, tetapi berguna jika Anda ingin meluncurkan instance Jupyter dan Tensorboard di dalam wadah. Kata sandi default untuk Jupyter adalah password
, dan direktori saat ini dipasang ke /u/home/src
, yang juga menjadi direktori kerja.
Kemudian, jalankan perintah pelatihan Anda.
export CUDA_VISIBLE_DEVICES=0
python scripts/train.py --args.load conf/ablations/baseline.yml --save_path runs/baseline/
export CUDA_VISIBLE_DEVICES=0,1
torchrun --nproc_per_node gpu scripts/train.py --args.load conf/ablations/baseline.yml --save_path runs/baseline/
Kami menyediakan dua skrip tes untuk menguji fungsionalitas pelatihan CLI +. Pastikan prasyarat Trainig dipenuhi sebelum meluncurkan tes ini. Untuk meluncurkan tes ini, silakan jalankan
python -m pytest tests