-
Transformer-Based Seq2Seq Model for Chord Progression GenerationCS/논문 리뷰 2024. 4. 10. 23:16
제목 - Transformer-Based Seq2Seq Model for Chord Progression Generation
저자 - Shuyu Li(1), Yunsick Sung(2)
논문 게시일 - 2023.02.02
Abstract
음악 관련 연구에서 RNN 네트워크가 Trasnformer로 대체되고 있다.
RNN을 사용하는 전통적인 접근방식에서는 입력 시퀀스의 길이가 제한되지만,
이 논문에서는 Pre train된 인코더와 디코더로 구성된 트랜스포머 기반의 Seq2seq 모델을 이용하여 멜로디에 대한 코드 진행을 생성하는 방법을 제안한다.
인코더는 멜로디에서 상황별 정보를 추출하고, 디코더는 이 정보를 사용하여 비동기적으로 코드를 생성하여 최종적으로 코드 진행을 출력한다.
Introduction
언어 모델링 기법을 적용하여 음악 데이터를 특별한 유형의 언어로 보는 시도가 있어왔다.
인코더와 디코더로 구성된 이 논문에서 제안하는 모델의 장점은,
1. 전적으로 음악 코퍼스(언어로 따지면 언어 표본의 집합)에 의존하며, 음악 이론이 필요하지 않다.
2. RNN이 잘 처리할 수 없는 장거리 종속성 문제를 해결한다.
3. 사전 훈련된 인코더는 생성된 코드 진행이 멜로디에 적합한지 확인하여 상황에 맞는 정보를 가져온다.
-> 생성되는 코드 진행이 인코더의 contextual information를 기반으로 생성되기 때문.
코드 진행 생성을 위한 Transformer 기반 Seq2Seq 모델
OpenEWLD music corpus에서 멜로디와 코드 진행에 대한 train 데이터를 가져온다. (XML형식)
파이썬 라이브러리인 music21을 사용하면, 이 데이터를 박자, 기호, 피치, 비트 및 코드 유형에 대한 값을 추출할 수 있다.
이 논문에서는 음악을 멜로디와 코드진행으로 나누어 표현한다.
멜로디는 피치 시퀀스와 비트 시퀀스로 나뉜다.
피치 시퀀스는 또 피치 이름과 옥타브라는 두 부분으로 나눠볼 수 있다.
피치 : C, C#(=Db), D, D#(=Eb), E, F, F#(=Gb), G, G#(=Ab), A, A#의 12가지 유형으로 표현된다.
옥타브 : 각 옥타브마다 12반음씩 다르게 된다. 0-9까지 표현한다(통상적으로)
-> 피치 시퀀스는 MIDI라는 널리 사용되는 음악 표준 형식으로 나타낼 수 있는데, C1 부터 G9까지 128개의 피치범위를 나타낼 수 있다.
비트 시퀀스는 피치 시퀀스의 요소와 1대1로 대응된다.
'CS > 논문 리뷰' 카테고리의 다른 글
Harmonizers Transformer 'process_data.py' 코드 분석 (0) 2024.04.17 Harmonizers Transformer 논문 코드 재현 (0) 2024.04.14 Translating Melody to Chord: Structuredand Flexible Harmonization ofMelody With Transformer (0) 2024.04.11