rlx-dac 0.2.11

Descript Audio Codec (DAC) neural audio codec for RLX
Documentation

rlx-dac

Native Rust inference for Descript Audio Codec (DAC) — high-fidelity neural audio compression at 8–16 kbps.

Quick start

# Download 24 kHz safetensors (~285 MB, HuggingFace mirror)
cargo run -p rlx-dac --features hf-download --release -- --fetch --model-type 24khz

# Encode + decode roundtrip (CPU eager)
export RLX_DAC_DIR=.cache/dac/24khz
cargo run -p rlx-dac --release -- \
  --in-wav speech.wav --out-wav /tmp/dac-roundtrip.wav

Supported variants: 24khz (default), 16khz, 44khz.

Library

use rlx_dac::{DacCodec, DacCodes};

let codec = DacCodec::open(".cache/dac/24khz")?;
let codes: DacCodes = codec.encode_pcm(&pcm, Some(32))?;
let recon = codec.decode_codes(&codes)?;

Weights load from model.safetensors + config.json under RLX_DAC_DIR (default .cache/dac/24khz).

Weights

Variant HuggingFace (safetensors)
24 kHz hance-ai/descript-audio-codec-24khz
16 kHz hance-ai/descript-audio-codec-16khz
44.1 kHz hance-ai/descript-audio-codec-44khz

Official .pth releases: descript-audio-codec releases. Convert to safetensors externally if needed; this crate loads safetensors only.

Tests

export RLX_DAC_DIR=.cache/dac/24khz
cargo test -p rlx-dac --release

Reference parity uses baked fixture tests/fixtures/dac_24khz_synthetic.json (no Python at test time). Tests skip gracefully when weights are missing.

Reference