openAI Jukebox 이동
음악 생성 프로젝트 할 때 찾아봤던 모델 중 하나이다.
입력 형태는 waveform 파일로 music source를 separation하지 않고도 음성까지도 잘 생성하는 openAI의 모델이다.
프로젝트는 midi 파일을 사용했기 때문에 사용하지 않았지만 알아봤던 김에 간단히 정리해본다.
모델 구조
Encoding, Embedding
- Top-level : 필수 음악 정보만 보존 (128x로 압축)
Middel-level (32x로 압축)
Bottom-level : 최고품질 음질 (8x로 압축)
- 이 3가지 level에 대해 각자 인코딩, 디코딩
- CNN을 통해 Encoding -> VQ-VAE를 통해 양자화 임베딩하여 오디오 압축
음악 생성
- 위 과정으로 압축된 이산 공간을 이용해 음악을 생성
- prior 모델 사용: 단순하게 변형된 sparse transformer를 활용한 autoregressive 모델 사용
- Top-level의 prior 모델의 결과는 오디오 품질이 낮지만 노래 및 멜로디 등 높은 수준(중요한 정보)에 대해 포착함
- 그 밑의 middle, bottom level은 음색과 같은 로컬 음악 구조를 추가하여 오디오 품질을 크게 향상시킴
Upsampling, Decoding
- prior 모델 학습이 완료되면 Top-level에서 코드를 생성하고 업샘플러를 통해 업샘플링한 후 VQ-VAE 디코더를 통해 디코딩하여 완성
DPR-martini blue.mp3를 bonny M 스타일, pop 장르로 생성해봄.
- colab v100 (권장하지 않음. p100 이상 권장)
- prior 모델까지만 거쳐서 Top-level에서 생성된 결과만 본거라 noise가 심함.
- 그 뒤 upsampling은 시간이 너무 오래 걸려서 못함.
-> 결과: 당연히 bonny M과 pop장르로 학습시켰던 노래들처럼 생성된 음악에 비트, 보컬 등 여러 구성이 추가됨.