OpenAI Jukebox
OpenAI Jukebox는 원시 오디오(raw audio)를 생성하는 신경망으로, 기초적인 노래를 포함하여 다양한 장르와 아티스트 스타일을 합성할 수 있습니다. MIDI와 유사한 노트를 생성하는 심볼릭 음악 생성기와 달리, Jukebox는 오디오를 직접 모델링하여 인간의 목소리와 복잡한 음색을 포착할 수 있습니다.
기술적 접근 방식: 계층적 압축 및 생성
Jukebox는 4분 길이의 CD 품질 노래가 1,000만 개 이상의 타임스텝을 포함하는 원시 오디오 모델링의 어려움을 계층적 오토인코더와 트랜스포머 기반 사전 확률 모델(priors)을 사용하여 극복합니다.
VQ-VAE를 통한 원시 오디오 압축
Jukebox는 Vector Quantized-Variational AutoEncoder (VQ-VAE)를 사용하여 44kHz 원시 오디오를 이산적 잠재 공간(discrete latent space)으로 압축합니다. 모델은 각 레벨마다 2048의 코드북 크기를 가진 세 가지 압축 레벨(8x, 32x, 128x)을 사용합니다. 성능을 향상시키기 위해 OpenAI는 세 가지 특정 수정을 구현했습니다:
- Random Restarts: 코드북 붕괴를 방지하기 위해, 코드북 벡터의 사용량이 특정 임계값 미만으로 떨어지면 인코딩된 은닉 상태로 무작위 재설정됩니다.
- Separate Decoders: 각 레벨은 입력을 재구성하기 위해 독립적인 디코더를 사용하여 상위 레벨의 유용성을 극대화합니다.
- Spectral Loss: 입력과 재구성된 스펙트로그램 사이의 차이를 벌하기 위해 스펙트럴 손실 함수가 추가되어 고주파수의 재구성을 돕습니다.
Sparse Transformers를 통한 음악 생성
오디오가 압축되면, (Sparse Transformers의 단순화된 변형을 기반으로 하는) 세 가지 레벨의 자기회귀 사전 확률 모델(autoregressive prior models)이 이러한 코드의 분포를 학습합니다:
- Top-level Prior: 8,192개의 코드(약 24초의 오디오) 컨텍스트 내에서 장거리 구조와 고수준의 의미론(멜로디 및 노래)을 모델링합니다.
- Upsampling Priors: 두 단계의 후속 레벨은 국소적 음악 구조와 음색을 추가하여, 더 짧은 컨텍스트(각각 6초 및 1.5초)에서 오디오 품질을 정교화합니다.
조건부 생성 및 데이터셋
Jukebox는 LyricWiki의 메타데이터와 가사를사와 함께 600,000곡의 영어 노래를 포함하여 총 120만 곡의 선별된 데이터셋으로 학습되었습니다. 모델은 생성을 제어하기 위해 세 가지 유형의 조건부 생성(conditioning)을 지원합니다:
- Artist and Genre: 아티스트와 장르 레이블을 제공함으로써 모델은 예측 엔트로피를 줄이고 특정 스타일의 음악을 생성할 수 있습니다. 비지도 클러스터링(t-SNE를 통해)을 보면 모델이 유사한 아티스트와 장르를 자연스럽게 그룹화함을 알 수 있습니다 있습니다.
- Lyrics: 가사와 오디오의 정렬이 맞지 않는 경우를 처리하기 위해, Jukebox는 선형 정렬 휴리스틱을 사용하며, 힙합과 같이 빠른 장르의 경우 Spleeter를 사용하여 보컬을 추출하고 NUS AutoLyricsAlign를 사용하여 단어 수준의 정렬을 수행합니다. 인코더-디코더 어텐션 레이어가 음악 디코더가 가사 인코더를 참조할 수 있게 합니다.
현재의 한계
이러한 능력에도 불구하고, Jukebox는 인간이 작곡한 음악과 비교했을 때 몇 가지 기술적 및 창의적 격차가 있습니다:
- Lack of Large-Scale Structure: 국소적 일관성과 코드 진행 패턴은 존재하지만, 모델은 아직 후렴구와 같은 반복되는 더 큰 구조를 발식을으로 합니다.
- Audio Artifacts: 다운샘플링 및 업샘플링 과정에서 눈에 띄는 노이즈가 발생합니다.
- Sampling Speed: 자기회귀적 특성 때문에 모델은 느립니다; 오디오 1분을 렌더링하는 데 약 9시간이 소요됩니다.
- Dataset Bias: 현재 학습은 주로 영어 가사와 서구권 음악에 국한되어 있습니다.
개발 타임라인
- July 2019: 피아노와 바이올린 같은 악기를 재현하기 위해 초기 원시 오디오 모델이 개발되었습니다.
- September 2019: 아티스트와 장르 레이블이 포함된 데이터셋을 확장하여 장거리 코히어런스를 가진 전체 길이의 노래를 생성할 수 있게 되었습니다.
- January 2020: VQ-VAE를 44kHz로 확장하고 top-level prior를 1B에서 5B 파라미터로 확장하여 더 선명한 노래와 더 높은 품질의 오디오를 생성하게 되었습니다.
- January 2020: 발음과 노래 정렬을 학습하기 위해 가사 조건부 생성을 도입했습니다.
Sources
- OriginalJukebox