이 저장소에는 개선 된 RVQGAN을 사용한 고 충실도 오디오 압축 이라는 논문에 소개 된 고 충실도 일반 신경 오디오 코덱 인 Descript Audio Codec (.dac)에 대한 교육 및 추론 스크립트가 포함되어 있습니다.
ARXIV 용지 : 개선 된 RVQGAN을 사용한 고급 오디오 압축
? 데모 사이트
⚙ 모델 가중치
설명 오디오 코덱을 사용하면 8kbps 비트 전송률이 낮은 44.1 kHz 오디오를 이산 코드로 압축 할 수 있습니다.
? 그것은 탁월한 충실도를 유지하고 아티팩트를 최소화하면서 약 90 배 압축 입니다.
? 우리의 범용 모델은 모든 도메인 (음성, 환경, 음악 등)에서 작동하여 모든 오디오의 생성 모델링에 널리 적용됩니다.
? 모든 오디오 언어 모델링 응용 프로그램 (Audiolms, Musiclms, Musicgen 등)에 대한 Encodec의 드롭 인 교체로 사용할 수 있습니다.

pip install descript-audio-codec
또는
pip install git+https://github.com/descriptinc/descript-audio-codec
무게는 MIT 라이센스에 따라이 저장소의 일부로 출시됩니다. 우리는 16kHz, 24kHz 및 44.1kHz 샘플링 속도를 기본적으로 지원할 수있는 모델에 대한 가중치를 방출합니다. 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' )우리는 필요한 모든 종속성이있는 docker 이미지를 만들기 위해 dockerfile을 제공합니다.
이미지 구축.
docker build -t dac .
이미지 사용.
CPU 사용 :
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 compose 설정을 제공했습니다.
Docker 이미지를 작성하려면 다음과 같습니다.
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 Pre-Refites가 만족해야합니다. 이 테스트를 시작하려면 실행하십시오
python -m pytest tests
