该存储库包含描述音频编解码器(.DAC)的培训和推理脚本,这是一个高保真一般的神经音频编解码器,在题为“高保真音频压缩”的论文中介绍了改进的RVQGAN 。
ARXIV纸:高保真音频压缩,改进了RVQGAN
?演示网站
⚙模型权重
使用描述音频编解码器,您可以将44.1 kHz音频压缩为8 kbps比特率的离散代码。
?这是约90倍的压缩,同时保持出色的保真度并最大程度地减少伪像。
?我们的通用模型在所有域(语音,环境,音乐等)上都起作用,使其广泛适用于所有音频的生成建模。
?它可以用作所有音频语言建模应用程序(例如Audiolms,Musiclms,Musicgen等)的concodec的替换。
pip install descript-audio-codec
或者
pip install git+https://github.com/descriptinc/descript-audio-codec
根据MIT许可证,权重作为此存储库的一部分发布。我们释放可以原始支持16 kHz,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
我们提供了一个码头文件,该码头安装了所有必需的依赖项,以编码和解码。构建过程缓存了图像内部的默认模型权重。这允许在没有Internet连接的情况下使用图像。请参阅下面的说明。
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 .
使用图像。
在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组成的设置,使运行实验变得容易。
构建Docker映像确实:
docker compose build
然后,要启动一个容器,请:
docker compose run -p 8888:8888 -p 6006:6006 dev
端口参数( -p
)是可选的,但如果要在容器中启动jupyter和张板实例,则有用。 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