DAC (Descript Audio Codec) 정리
Descript Audio Codec: Neural Audio Codec (오디오를 작게 압축하고, 원본에 가까운 음질로 복원). 오디오 생성 모델들이 Latent를 만들 때 자주 쓰는 코덱이라 구조를 짧게 정리해 둔다. 논문은 Kumar et al., High-Fidelity Audio Compression with Improved RVQGAN (NeurIPS 2023). 숫자로 요약하면 44.1 kHz 오디오를 8 kbps, 약 90배 압축하면서 음성·음악·환경음을 모델 하나로 다룬다.
구조
Encoder: Waveform을 CNN에 태우기 → Continuous Latent Representation 생성
RVQ (Residual Vector Quantization)
- 연속적인 값을 Discrete한 Token으로 바꾸기 → Quantization
- 첫 번째 층: 전체적 뼈대만 잡아서 토큰화 → Residual이 크다
- 두 번째 ~ n번째 층: 이전 층의 오차(Residual)만 받아와서 Token화 → 반복…
- 오차가 0에 수렴 → 적은 Token으로 디테일한 소리 정보 저장.
Decoder: RVQ의 Discrete Token을 입력받아, Waveform으로 만들기
→ 훈련을 GAN으로 함. (그래서 이름이 RVQGAN)

RVQ 한 장 요약. 각 단계는 “남은 오차"만 양자화하므로, 뒤 코드북일수록 미세한 디테일을 담당한다.
구조적 특징
- Fully Convolutional Network(FCN, 1차원 CNN)을 Encoder/Decoder에 사용
- Snake Activation Function을 전 Layer에 사용 (주기가 있는 함수에 good)
- Dilated Convolution으로 듬성듬성 넘어가서 Receptive Field 넓히기

Snake: \(x+\frac{1}{\alpha}\sin^2(\alpha x)\). 항등함수에 주기적인 굴곡이 들어가 있어서, ReLU로는 잘 못 배우는 주기 신호(= 소리)를 표현하기 좋다. 논문에서는 ReLU를 Snake로 바꾸는 것만으로 SI-SDR이 눈에 띄게 올랐다.
다음 이야기
→ Discrete Token을 생성하는 RVQ를 버리고, Continuous한 VAE를 쓰자 → DAC-VAE (Semantic-VAE)
참고 자료
- R. Kumar, P. Seetharaman, A. Luebs, I. Kumar, K. Kumar, High-Fidelity Audio Compression with Improved RVQGAN, NeurIPS 2023. 코드/가중치: descriptinc/descript-audio-codec.
- N. Zeghidour et al., SoundStream: An End-to-End Neural Audio Codec, 2021 — RVQ를 오디오 코덱에 처음 쓴 논문. A. Défossez et al., High Fidelity Neural Audio Compression (EnCodec), 2022 — DAC가 주로 비교하는 상대.
- L. Ziyin, T. Hartwig, M. Ueda, Neural networks fail to learn periodic functions and how to fix it, NeurIPS 2020 — Snake activation의 출처. BigVGAN도 같은 활성함수를 쓴다.