Этот репозиторий содержит сценарии обучения и вывода для описательного аудиокодека (.dac), общего кодека с высокой точностью, представленного в статье под названием аудио сжатия с высокой точностью с улучшенным Rvqgan .
Arxiv Paper: сжатие звука высокой точки с улучшенным RVQGAN
? Демо -сайт
⚙ Веса модели
С описательным аудиокодеком вы можете сжать 44,1 кГц аудио в дискретные коды в битрейте с низким 8 кбит / с .
? Это приблизительно 90 -кратное сжатие при сохранении исключительной верности и минимизации артефактов.
? Наша универсальная модель работает во всех областях (речи, среде, музыке и т. Д.), Делая ее широко применимым к генеративному моделированию всего звука.
? Он может быть использован в качестве замены для Encodec для всех приложений моделирования аудиозаписи (таких как Audiolms, Musiclms, MusicGen и т. Д.)
pip install descript-audio-codec
ИЛИ
pip install git+https://github.com/descriptinc/descript-audio-codec
Веса выпускаются в рамках этого репо под лицензией MIT. Мы выпускаем вес для моделей, которые могут национально поддерживать 16 кГц, 24 кГц и 44,1 кГц. Веса автоматически загружаются, когда вы впервые запускаете команду encode
или decode
. Вы можете кэшировать их, используя одну из следующих команд
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
Мы предоставляем DockerFile, который устанавливает все необходимые зависимости для кодирования и декодирования. Процесс сборки кэширует веса модели по умолчанию внутри изображения. Это позволяет использовать изображение без подключения к Интернету. Пожалуйста, обратитесь к инструкциям ниже.
python3 -m dac encode /path/to/input --output /path/to/output/codes
Эта команда создаст файлы .dac
с тем же именем, что и входные файлы. Он также сохранит структуру каталога относительно входного корня и воссоздает ее в выходном каталоге. Пожалуйста, используйте python -m dac encode --help
для получения дополнительных вариантов.
python3 -m dac decode /path/to/output/codes --output /path/to/reconstructed_input
Эта команда будет создавать файлы .wav
с тем же именем, что и входные файлы. Он также сохранит структуру каталога относительно входного корня и воссоздает ее в выходном каталоге. Пожалуйста, используйте python -m dac decode --help
для получения дополнительных вариантов.
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' )
Мы предоставляем DockerFile для создания изображения Docker со всеми необходимыми зависимостями.
Построение изображения.
docker build -t dac .
Используя изображение.
Использование на процессоре:
docker run dac <command>
Использование на GPU:
docker run --gpus=all dac <command>
<command>
может быть одной из команд сжатия и реконструкции, перечисленных выше. Например, если вы хотите запустить сжатие,
docker run --gpus=all dac python3 -m dac encode ...
Конфигурация базовой модели может быть обучена с помощью следующих команд.
Установите правильные зависимости
pip install -e ".[dev]"
Мы предоставили настройку Dockerfile и Docker, которая облегчает эксперименты.
Чтобы построить изображение Docker Do:
docker compose build
Затем, чтобы запустить контейнер, сделайте:
docker compose run -p 8888:8888 -p 6006:6006 dev
Аргументы порта ( -p
) являются необязательными, но полезны, если вы хотите запустить экземпляры Jupyter и Tensorboard в контейнере. Пароль по умолчанию для Jupyter - это password
, а текущий каталог установлен на /u/home/src
, который также становится рабочим каталогом.
Затем запустите свою учебную команду.
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/
Мы предоставляем два тестовых сценария для тестирования функциональности обучения CLI +. Пожалуйста, убедитесь, что предварительные условия Trainig довольны перед запуском этих тестов. Чтобы запустить эти тесты, запустите
python -m pytest tests