Stable audio

stable audio 논문 paper 리뷰
김호진's avatar
Sep 29, 2024
Stable audio
Stable audio는 stereo 44.1 kHz에 길이가 긴 오디오를 Latent Diffusion model로 생성하는걸 목표로 한다.
결론적으로는 성능이 좋고(music 기준. audio는 데이터가 적다), 기존의 AR model들보다 생성 속도가 훨씬 빠르다.
Evaluation metric을 새롭게 세팅했다.
  1. FAD based on OpenL3 embedding for plausibility(소리가 정상적인지)
  1. KLD for semantic 일치
  1. CLAP score between 입력 텍스트와 생성된 오디오
 
Mousai는 output latent를 diffusion decoder로 바로 waveform으로 변환하고, AudioLDM은 latent를 spectrogram으로 변환한 다음 Hifi-GAN을 이용하여 waveform으로 변환한다.
 
VAE
44.1 kHz audio를 latent로 변환시키는데, 입력 길이가 고정이 아니어야함. DAC 구조를 따르면서 quantizer는 없앤 구조를 쓴다 - fully convolution, 133M 파라미터
scratch부터 새로 학습했고, 길이를 1024배 압축하고 채널은 64가 된다. 2(stereo) X L → 64 X L/102 → 결론은 32배 압축임.
학습도 디테일하게 명시해두었다. 두개 같이 46만 step학습하고, encoder는 얼린 뒤 decoder만 64만 step 추가 학습했다.
 
 
Text condition
CLAP도 새로 학습했다고 한다.
Stable Diffusion에서 텍스트 컨디션 쓸 때, 마지막 이전 레이어의 feature를 쓰는게 나았다는 실험결과가 있음 → 여기서도 그렇게 했다(CLAP의).
 
Timing embeddings
timing 정보를 생성에 이용하는 방법은 Jukebox(AR model)에서 먼저 소개되었다.
여기서는 1) seconds_start : 청크가 전체 오디오의 몇초에서 시작하는지, 2) seconds_total : 전체 오디오가 몇초짜리인지
를 쓴다.
per-second learned embedding으로 바뀐 뒤 text feature에 concat되어서 들어간다.
window 크기가 95초인데 만약 오디오가 30초 짜리면, 뒤에는 silence 패딩을 넣어서 학습한다. 그래서 생성할 때도 0, 20으로 넣으면 95초인데 뒤 75초는 무음인 오디오가 생성된다
 
notion image
 
 
Diffusion model 구조
U-net
  • 4단계의 downsampling encoder - upsampling decoder with skip connections
  • 각 단계의 channel은 1024, 1024, 1280이고 downsample factor는 [1, 2, 2, 4]이다. 처음은 1이므로 다운샘플 안함.
  • → bottle-neck block 채널은 1280
  • 각 block은 2 conv residual, 뒤에는 self-attention, cross-attention가 3개 쌓인 layer가 있다(첫번째 level은 1개)
학습시
A100 64대로 batch size 256, 640,000 step학습. 95.1초로 오디오를 잘라서 sample은 4,194,304개가 나왔다.
classifier-free guidance 사용을 위해서 conditioning signal은 10% dropout시켰다. text encoder는 diffusion 학습할 때는 frozen
 
Inference
sampling 방법은 DPM-Solver++ 사용, classifier-free guidance
100스텝으로 인퍼런스
 
Dataset
nums
hours
total
806,284
19,500
music
537,522 (66%)
18,330 (94%)
sound effect
201,571 (25%)
975 (5%)
instrument stem
9%
1%
 
정량적 결과
result on MusicCaps
result on MusicCaps
 
notion image
FD와 KL, CLAP차이가 크네
 
정성적 실험 결과 정리
  1. Autoencoder가 audio fidelity에 어떻게 영향을 끼쳤나?
    1. autoencoder 자체가 별로면 학습이 이상했을 수 있으니 데이터 몇개를 골라서 audio → laten → audio를 해봤다. 약간 오디오 퀄리티가 낮아지긴 했는데 블라인드 테스트했을 때 큰 차이를 느끼진 못했다.
      = 큰 영향 없었다
  1. 어떤 text encoder가 가장 효과가 좋은가
    1. 일반 CLAP, CLAP_LAION, T5, 자체 학습한 CLAP을 비교해봤다.
      자체 학습한 CLAP이 좀 더 좋은 성능을 보였다. 학습 데이터셋은 diffusion model과 같았기 때문에, 이게 좋은 영향을 주지 않았을까
  1. timing 컨디션은 얼마나 정확했는가
    1. 예를 들어, 30초로 condition이 들어가면 30초는 소리, 65초는 무음으로 나와야 한다.
      notion image
      잘 나오는데 40~60 사이가 특히 잘 안나온다. 여기 해당하는 데이터가 많지 않아서 그런듯하다.
       
     
     
     
     
     
     
     
     
     
    Share article
    Subscribe to our newsletter

    Kim Hojin