[Text-to-Music Generation] 음악 생성 그리고 AudioGPT

이번 글에서는 diffusion model을 활용한 음악생성 기술과 AudioGPT를 소개 드리고자 합니다.

최근들어 이미지 생성분야에서의 Diffusion model은 놀라운 성능을 보여주고 있는데요. 이제는 이미지 생성뿐만이 아니라 오디오 생성분야에서도 diffusion model을 활용하여 고음질 오디오를 생성하려는 연구가 활발히 진행되고 있습니다. 텍스트 프롬프트를 통해 텍스트를 입력받아 오디오 및 음악을 만들 수 있으며, 이러한 종류의 AI 모델은 일반적으로 "Text to Audio/Music" 또는 "Audio/Music Generation" 모델이라고도 합니다.

텍스트로 음악을 생성하는 Audio Generative Model

spectrogram(audio)를 생성하는 모습 (출처 : https://www.riffusion.com)

 

사실 이러한 ‘AI 생성 오디오(AI-generated audio)’ 연구는 꽤나 오래전부터 시도되어 왔습니다. 자연어 처리 기법을 활용하는 아마존의 알렉사(Alexa)가 내는 음성이 대표적이고, 오픈AI(OpenAI)의 주크박스(Jukebox) 같은 AI 음악 시스템도 이미 인상적인 결과를 생성해 냈습니다. 그러나 고음질의 다양한 오디오를 생성하기에는 여전히 어려움을 겪고 있었습니다. 이러한 부족한 성능을 개선하기 위해 오디오 생성분야에서 Diffusion Model을 활용한 기술 개발 연구가 진행되고 있습니다. 

Diffusion based Audio Generative Model - Riffusion

Riffusion은 Stable Diffusion 이미지 생성 모델을 사용하여 새로운 방식으로 사운드 처리에 시각적 잠재 확산을 적용하여 오디오를 생성하는 모델입니다. 오디오를 음파의 주파수와 진폭을 나타내는 이미지 형태, spectrogram으로 변환하여 활용하였기때문에 Stable Diffusion의 이미지를 수정하는 것과 유사한 방법으로 기존 사운드 구성 및 샘플 음악 합성을 변경할 수 있습니다.

스펙트로그램은 2차원 이미지에서 시간, 주파수 및 진폭을 나타낸다. (출처 : https://www.riffusion.com)

또한 서로 다른 스타일을 결합하거나, 한 스타일에서 다른 스타일로 부드럽게 전환하거나, 기존 사운드를 수정하여 개별 악기의 음량 증가, 리듬 변경, 악기 교체와 같은 다양한 기능이 가능합니다.

 

기존 음악에 새로운 text를 입력받아 새로운 음악 생성 (출처 : https://www.riffusion.com)

아래 사이트에서 riffusion demo를 직접 실행해 볼 수 있습니다.

https://www.riffusion.com/

 

Riffusion

 

www.riffusion.com

Diffusion based Audio Generative Model - Noise2Music

두번째로 소개할 Noise2Music은 구글 브레인에서 개발한 모델입니다. text를 입력받아 음악을 생성하고자 하는 Diffusion Model을 학습하기 위해선 방대한 양의 text-music pair 데이터셋이 필요한데, text-music pair 데이터셋이 많이 없어서 연구에 어려움이 있습니다. 저자들은 Large Language Model인 LaMDA[4]와 text 와 music간의 관계를 학습한 MuLan[5]을 활용하여 text가 없는 음악에 대해 풍부하게 설명할 수 있는 descripts(text) 데이터를 생성하여 text-music pair 데이터셋을 구성하여 학습에 활용하였습니다. 

Pseudo-labeling for Training Data Generation (출처: https://google-research.github.io/noise2music)

먼저 대규모 언어 모델(LaMda)을 사용하여 여러 캡션 후보 문장 셋을 생성합니다. 그런 다음 사전 학습된 MuLan을 사용하여 레이블이 없는 각 음악 클립을 모든 캡션 후보에 대해 점수를 매기고 유사성 점수가 가장 높은 캡션을 music의 pseudo-label로 선택합니다. 이러한 방식으로 15만 시간 정도의 오디오 소스에 주석을 달아 학습 데이터를 구성하였습니다.

caption example (출처: https://google-research.github.io/noise2music)

모델은 여러개의 diffusion model을 cascade 방식으로 구성하였는데, 먼저 텍스트를 입력으로 받아 diffusion generator를 통해 3.2kHz 오디오를 생성합니다. 이후 텍스트를 generator model에서 생성된 저음질 오디오에 컨디셔닝하여 16kHz 오디오를 생성하고 최종적으로 24kHz의 고음질 오디오를 생성합니다.

 

Model Overview (출처: https://google-research.github.io/noise2music)

저자들은 방대한 양의 text-music pair 데이터셋을 구축하고 이를 cascade 방식의 diffusion model을 활용하여 고음질의 다양한 오디오를 생성할 수 있었는데요. 결과물들은 아래 홈페이지에서 확인하실 수 있습니다.

https://google-research.github.io/noise2music/

 

Noise2Music

Generative ability grounded on creative prompts Prompt Waveform Model A funky hip hop song played with Scottish bagpipe. Acoustic guitars are playing heavy metal riffs. A flute plays a salsa song. Standard jazz song sung in acapella. Cartoon theme song sun

google-research.github.io

ChatGPT의 열풍, AudioGPT의 등장

AI 분야는 이제 대규모 언어 모델의 영향을 크게 받고 있으며 ChatGPT 및 GPT-4의 도입으로 자연어 처리가 향상되었습니다. 방대한 웹 텍스트 데이터와 강력한 아키텍처 덕분에 LLM은 사람처럼 읽고 쓰고 대화할 수 있습니다. 그러나 텍스트 처리 및 생성 분야의 성공적인 발전에도 불구하고 오디오 및 음악 생성 분야는 다음과 같은 제한사항으로 여전히 어려움을 겪고있었는데, 첫째, 데이터: 실제 음성 대화를 제공하는 소스가 거의 없으며 사람이 레이블이 지정된 음성 데이터를 얻는 데 많은 비용과 시간이 필요하며, 둘째, 계산 리소스: 처음부터 Multi-model LLM을 교육하는 것은 계산이 많이 필요하고 시간이 많이 소요되기 때문입니다.

AudioGPT는 Multi-modal LLM을 처음부터 학습시키는 대신 다양한 오디오 foundation model을 활용하여 LLM(즉, ChatGPT)이 범용 인터페이스로 간주되는 오디오 정보를 처리하며, AudioGPT가 수많은 오디오 이해 및 생성 작업을 해결할 수 있도록 지원합니다. 또한 음성 언어 모델을 학습시키는 대신 음성 대화를 위해 LLM을 입력/출력 인터페이스(ASR, TTS)와 연결하여 여러 모델들을 통합하였습니다.

A high-level overview of AudioGPT (출처: audioGPT paper(https://arxiv.org/pdf/2304.12995.pdf))

위 그림에서 볼 수 있듯이 AudioGPT의 전체 프로세스는 네 단계로 이해할 수 있습니다.

  1. Modality Transformation: 음성과 텍스트 간의 modality 변환을 위한 입력/출력 인터페이스를 사용하여 Multi-modal LLM과 ChatGPT 간의 격차를 줄입니다.
  2. Task Analysis: 대화 엔진과 prompt manager를 활용하여 ChatGPT가 오디오 정보를 처리하려는 사용자의 의도를 이해하도록 돕는 과정입니다.
  3. Model Assignment: 운율, 음색, 언어 제어에 대한 구조화된 argument를 받은 ChatGPT는 이해와 생성을 위한 오디오 foundation model을 할당합니다.
  4. Response Generation: 오디오 foundation model을 실행한 후 사용자에게 최종 응답을 생성하고 반환합니다.

multiple rounds of dialogue between humans and AudioGPT (출처: audioGPT paper(https://arxiv.org/pdf/2304.12995.pdf))

위 그림은 AudioGPT의 12-round 대화 예시입니다. 음성, 음악, 소리, talking head를 생성하고 이해하는 일련의 AI task를 다루는 것을보여줍니다. 대화에는 오디오 정보를 처리하기 위한 여러 요청이 포함되며 AudioGPT가 현재 대화의 컨텍스트를 유지하고 후속 질문을 처리하며 사용자와 적극적으로 상호 작용함을 보여줍니다.

 

다음은 AudioGPT의 간단한 task 예시들입니다.

simple tasks (출처: audioGPT paper(https://arxiv.org/pdf/2304.12995.pdf))

AudioGPT의 결과물들은 아래 홈페이지에서 확인하실 수 있습니다.

https://aigc-audio.github.io/AudioGPT.github.io/

 

AudioGPT

Your browser does not support the video tag.

aigc-audio.github.io

 

 

Limitation

위와 같이 다양한 오디오 기능을 수행할 수 있는 AudioGPT는 몇가지 한계점을 가지고 있습니다. ChatGPT를 사용하여 많은 foundation model을 연결하므로 오디오 foundation model을 자연어로 설명하기 위해 신속한 엔지니어링이 필요하며 이는 시간이 많이 걸리고 오디오 관련 전문 지식이 필요할 수 있습니다. 그리고 ChatGPT의 최대 토큰 길이는 multi-round 대화를 제한할 수 있으며, 이는 사용자의 컨텍스트 지침에도 영향을 미치는 길이 제한이 있습니다. 마지막으로 기존 오디오 foundation model을 연결하여 활용하기 때문에 기존 오디오 모델들에 크게 의존하며, 이러한 모델의 정확성과 효율성에 크게 영향을 받는다는 단점이 있습니다.

 

참고 문헌

[1] Forsgren, S., and H. Martiros. "Riffusion-Stable diffusion for real-time music generation, 2022." URL https://riffusion. com/about.

[2] Huang, Qingqing, et al. "Noise2music: Text-conditioned music generation with diffusion models." arXiv preprint arXiv:2302.03917 (2023).

[3] Huang, Rongjie, et al. "AudioGPT: Understanding and Generating Speech, Music, Sound, and Talking Head." arXiv preprint arXiv:2304.12995 (2023).

[4] Thoppilan, Romal, et al. "Lamda: Language models for dialog applications." arXiv preprint arXiv:2201.08239 (2022).

[5] Huang, Qingqing, et al. "Mulan: A joint embedding of music audio and natural language." arXiv preprint arXiv:2208.12415 (2022).