김민서 Computer Science [email protected] 김산 Computer Science [email protected] 김성준 E. E. Eng. [email protected] 박민수 Computer Science [email protected] 박수빈 Applied statistics [email protected] 조정빈 E. E. Eng [email protected]

Abstract

음악 제작은 전문가의 영역으로 음악을 만들기 위해서는 많은 공부와 노력이 필요하다. 이에 게임 개발, 영상 제작 등 음악을 필요로 하는 업계에서는 주로 해당 콘텐츠에 알맞는 음악을 전문가에게 의뢰하여 새로운 음악을 제작하여 사용한다. 그러나 소규모 제작자 (1인 게임 개발자, 개인 유튜버 등)들은 그럴 여력이 안되기 때문에 대부분 자신의 콘텐츠와 알맞는 음악을 저작권료를 지불하여 사용한다. 이는 경제적으로 부담이 되며 해당 콘텐츠에 완벽히 맞는 음악을 찾기가 상당히 어렵다. 이에 POZA LABS에서는 누구나 자신의 음악을 만들 수 있도록 인공지능을 활용해 음악을 만들고 있다. 최근 GPT와 같은 LLM(Large Language Models)의 빠른 발전과 함께 이를 서비스에 적용시킨 제품들이 쏟아져 나오고 있다. 본 프로젝트에서는 이런 Language Model들의 발전에 힘입어 해당 모델들을 Music Generation에 적용해보고자 한다.

1. Introduction

Transformer-XL

현재 POZA LABS의 Music Generation의 베이스라인 모델은 Transformer XL이다.

Figure 1: Illustration of the vanilla model with a segment length 4

Figure 1: Illustration of the vanilla model with a segment length 4

Figure 2: Illustration of the Transformer-XL model with a segment length 4.

Figure 2: Illustration of the Transformer-XL model with a segment length 4.

Transformer-XL은 Transformer의 long-term dependency 문제를 해결한 모델이다. Transformer의 input sequence는 고정 되어 있기 때문에 특정 input sequence이상의 dependency는 학습하지 못한다. 이에 Transformer-XL은 segment-level recurrence mechanism 을 도입하여 해당 input sequence길이 이상의 dependency를 효과적으로 학습한다.

ComMU Dataset

12개의 meta data와 짧은 MIDI파일이 pair된 상태로 존재한다. 해당 데이터셋을 이용하여 Music Generation Model을 학습시키면 Inference시 원하는 음악의 meta data를 input하면 해당 meta data의 음악이 생성된다.

Data

Untitled

Meta Data $\Longrightarrow$

  1. BPM - (35~160)
  2. Genre - (2)
  3. Key - (24)
  4. Instrument - (37)
  5. Track-role - (6)
  6. Time Signature - (3)
  7. Pitch range - (7)
  8. number of measures - (3)
  9. Chord progression
  10. Min Velocity - (2-127)
  11. Max Velocity - (2-127)
  12. Rhythm - (2)

MIDI

Preprocessing & Representation

모델을 학습시키기 위해서 meta data와 MIDI를 숫자로 encoding해야한다. MIDI를 REMI라는 방법론을 통해, Meta data는 mapping을 통해 encoding을 진행한다.

REMI : Revamped MIDI-derived events

DB320E24-78D3-46C1-BE30-4BFFE9FCFE26.jpeg

comMU Encoder