DOI QR코드

DOI QR Code

Automatic Composition Using Training Capability of Artificial Neural Networks and Chord Progression

인공신경망의 학습기능과 화성진행을 이용한 자동작곡

  • Oh, Jin-Woo (Dept. of Information and Communications Engineering, Hansung University) ;
  • Song, Jung-Hyun (Dept. of Information and Communications Engineering, Hansung University) ;
  • Kim, Kyung-Hwan (Dept. of Information and Communications Engineering, Hansung University) ;
  • Jung, Sung Hoon (Dept. of Information and Communications Engineering, Hansung University)
  • Received : 2015.06.28
  • Accepted : 2015.09.10
  • Published : 2015.11.30

Abstract

This paper proposes an automatic composition method using the training capability of artificial neural networks and chord progression rules that are widely used by human composers. After training a given song, the new melody is generated by the trained artificial neural networks through applying a different initial melody to the neural networks. The generated melody should be modified to fit the rhythm and chord progression rules for generating natural melody. In order to achieve this object, we devised a post-processing method such as chord candidate generation, chord progression, and melody correction. From some tests we could find that the melody after the post-processing was very improved from the melody generated by artificial neural networks. This enables our composition system to generate a melody which is similar to those generated by human composers.

Keywords

1. 서 론

최근 정보기술을 중심으로 타 기술 분야와 융합하는 융합기술이 각 분야에서 화두가 되고 있다. 이는 기존기술에 정보기술을 추가하여 기존기술에서 제공하지 못했던 혁신적인 기능이나 서비스를 제공하려는 산업전반의 노력으로 나타나고 있다. 이러한 융합기술이 다 방면에서 대두되고 있으며 그 중에 정보기술과 문화기술을 융합하려는 시도는 최근 정부의 문화융성정책과 더불어 여러 곳에서 시도되고 있다. 그러나 문화기술 중에서 한축을 담당하는 K-POP에 대한 융합기술 연구는 거의 없는 상황이다. 음악표절을 감지하기 위하여 표절을 판단하는 등의 연구는 있어왔으나 곡을 작곡하는 연구는 많지 않다[12]. 우리는 정보기술과 문화기술을 융합하는 하나의 연구로서 작곡을 컴퓨터를 통하여 자동으로 하는 연구를 수행했다[11].

컴퓨터를 이용하여 작곡을 하려는 연구는 세계적으로는 비교적 오래 전부터 있어왔으나 기초적인 가능성을 타진하는 연구에 머물러 있는 실정이다[1-10]. 이러한 연구에서는 주로 인공지능 기법인 인공 신경망이나 진화알고리즘을 이용하여 멜로디를 생성한다[10]. 인공신경망을 사용하는 방법은 인공신경망의 학습기능을 이용한 것으로서 기존의 곡을 학습하는 절차가 필요하며 생성된 곡이 기존 학습곡과의 유사도가 높다는 문제가 있다[5,8]. 진화적인 방법은 학습과정이 없고 초기 개체를 무작위로 주거나 사용자가 제공한 초기 개체를 다양하게 조합하기 때문에 기존 곡들과의 유사도가 높지 않다[1-3,10]. 그러나 생성된 곡의 적합도 평가가 어렵고 결과적으로 생성된 곡의 완성도가 높지 않은 문제가 있다[10]. 이와 같은 이유로 여러 가지 인공지능 기법을 혼용하여 작곡하는 기법들도 대두되고 있다[4,6,7]. 그러나 아직까지 작곡가가 작곡한 수준으로 곡 전체를 생성하는 기법의 개발은 먼 실정이다 [10].

우리는 기본적으로 작곡가가 작곡한 수준의 곡을 컴퓨터가 만드는 것을 목표로 하여 알고리즘을 개발하기 시작했다. 그런 관점에서 작곡가들도 기본적으로 다른 사람이 작곡한 음악을 듣고 학습하면서 작곡을 익힌다는 것을 근거로 이러한 작곡가들의 작곡법을 따라가면서 구현하는 것을 기본 전제로 했다. 그렇기 때문에 인공신경망을 이용하여 기존 곡을 학습하는 것을 우리 작곡 시스템의 기본 알고리즘으로 결정했다[11]. 이를 위하여 첫 번째 연구에는 기존의 곡을 인공신경망으로 학습하게 한 후에 초기 멜로디만을 변경하여 새로운 곡을 출력하도록 했다[11]. 실험결과 기존 곡을 학습한 인공신경망에 초기 멜로디를 학습한 곡과 다르게 주면 그 이후에는 학습한 곡과 다른 멜로디를 생성하는 것을 확인하였으나 기존 곡과의 느낌이 일정부분 유사했다. 또한 초기 멜로디에 대하여 신경망이 출력하는 멜로디는 학습한 멜로디 공간상에 학습된 것을 출력하기 때문에 음악이론이나 화성에 맞지 않는 곡이 출력되었다[11].

본 논문에서는 신경망이 출력한 멜로디를 음악이론에 맞게 자동으로 수정하고 또한 실제 작곡가가 작곡할 때 사용하는 화성진행 방법을 도입하여 화성 후처리를 하고 멜로디를 수정하는 방법을 제안한다. 제안한 방법에서는 간단히 박자를 음악이론에 맞추는 작업을 하고나서 작곡가들이 작곡할 때 많이 사용하는 화성진행에 맞추어 화성 후처리를 진행한다. 화성 후처리는 1) 화성 후보군 생성 2) 화성진행에 따른 화성 선정, 3) 최종 화성에 따른 멜로디 음 수정의 순서로 진행한다. 화성 후보군 생성은 인공신경망이 생성한 멜로디에 마디별로 화성 후보군을 만들어주는 것이다. 이와 같이 선정된 마디별 화성 후보군은 다음 단계인 화성진행에 따른 화성선정으로 넘어간다. 화성진행이라 함은 마디별로 화성이 진행되는 패턴을 말하는 것으로서 본 논문에서는 Money Chord를 사용했다. 그러나 화성 후보군 생성에서 생성한 후보가 Money Chord 와 딱 일치하는 것을 찾지 못하는 경우가 발생한다. 이를 위하여 2도 차이가 나는 것까지는 일치하는 것으로 보고 최종 화성을 결정했다. 마지막 단계는 최종 선정된 화성에 따라서 멜로디 음을 수정하는 것이다. 이렇게 해주어야 Money Chord 진행이 되도록 화성이 구성된다. 그리고 3화음 종류에 따라서 마디 내의 음을 조정한다. 즉 Major 화음인가 minor 화음인가에 따라서 해당 화음에 존재하는 음으로 변경한다. 결국 최종 결과물은 화성진행에 따른 멜로디가 출력된다. 이는 실제 작곡가들이 멜로디와 화성진행을 같이 고려하며 작곡을 하는 것과 유사한 것으로서 보다 자연스러운 작곡을 가능하게 한다.

본 논문의 구성은 다음과 같다. 2장에서는 자동작곡연구와 관련된 기존 연구를 소개한다. 3장에서는 저자가 수행한 초기연구에서 인공신경망을 이용하여 곡을 학습하는 방법에 대하여 설명한다. 4장에서는 본 논문에서 제안한 화성 진행을 이용한 화성 후 처리 및 멜로디 수정 방법에 대하여 구체적으로 설명한다. 티아라의 롤리폴리를 학습시킨 후에 새로운 초기 멜로디로 새로운 멜로디를 만들고 이를 화성진행에 따른 화성 후처리를 이용하여 작곡한 결과에 대하여 5장에서 설명한다. 6장의 결론과 추후연구로 끝을 맺는다.

 

2. 관련연구

컴퓨터를 이용하여 자동으로 작곡을 하려는 시도는 비교적 오래전부터 있어왔다[10]. 이러한 연구는 알고리즘 작곡이라고 분류되어왔으며 작곡이라는 목적에서 알 수 있듯이 주로 대부분 인공지능 분야에서 개발된 방법들이 사용되어왔다. 첫 번째 예로는 자동작곡을 수행하는 알고리즘을 만든 것으로 문법에 기반 한 것, 규칙에 기반 한 것, 사례에 기반 한것 등이 있다[10]. 문법에 기반 한 것은 언어에서 문법을 통하여 글을 만드는 것을 모사하여 이를 작곡에 응용한 것이다. 규칙에 기반 한 것은 멜로디를 생성하는 규칙을 만들어 이를 기반으로 곡을 만드는 것이다. 사례에 기반 한 것은 기존 곡을 소절별로 데이터베이스화 하고 작곡 시 기존 곡에서 소절을 이용하여 작곡하는 것이다. 두 번째 예로는 최적화 기법에 의한 것이 있다[1,2,3]. 작곡에 주로 사용된 최적화 기법은 진화알고리즘(Evolutionary Algorithms)으로서 집단개체를 진화시켜서 최적화시키는 방법이다. 특히 개체를 트리로 표현하는 유전프로그램(Genetic Programming)은 곡의 음에서 마디로, 마디에서 음절로 계층적으로 구성되기 때문에 작곡에서 매우 유용한 기법이다[1]. 그러나 최적화 방법에 있어서 가장 큰 문제점은 개체를 평가하는 방법이 어렵다는 것이다. 개체로 표현된 짧은 곡이 얼마나 음악적으로 적합한지를 제대로 평가해야 진화가 일어나서 점점 더 좋은 곡이 표현된다. 그러나 컴퓨터가 스스로 곡을 평가하는 것은 상당히 어려운 일이다. 그래서 보통 사람이 각 개체를 평가하는 방법을 많이 사용하지만 매우 많은 개체를 수십에서 수백세대에 걸쳐 모두 평가하는 것은 사람에게도 매우 지루하고 힘든 작업이 된다. 또한 곡에 대한 평가는 매우 주관적이어서 일관된 잣대를 제시하기도 어렵다. 이러한 적합도 평가의 어려움을 어느 정도 완화하기 위하여 곡에 대한 평가를 인공신경망의 학습 기능을 통하여 수행하는 연구도 있다[1]. 그러나 학습된 인공신경망의 곡에 대한 평가가 제대로 수행되는 것을 보장하기는 매우 어렵다.

세 번째 예로는 기계학습에 의한 것이 있다. 기계 학습은 컴퓨터가 스스로 주어진 데이터를 학습하는 것으로서 대표적인 것으로 인공신경망이 있다[5,6,8,9]. 인공신경망은 주어진 데이터를 학습하고 학습된 데이터와 같거나 유사한 데이터를 출력할 수 있다. 이러한 신경망에는 주어진 입/출력을 학습하는 전방향신경망(feed-forward neural networks)이 있으며 주로 역 전파 알고리즘(back-propagation algorithm)으로 감독자 학습(supervised learning)을 통하여 학습한다. 그러나 곡의 데이터는 시간에 따라서 데이터가 변화하며 출력되는 타입으로 전 방향 인공 신경망은 적합하지 않다. 곡의 데이터를 학습시키기 위해서는 회귀신경망(recurrent neural networks)을 사용해야하지만 회귀신경망은 학습이 어려운 문제점이 있다. 그래서 보통 중간층에 문맥층(context layer)을 두어 회귀성을 준 단순회귀신경망(simple recurrent networks)을 사용하거나 곡의 데이터를 회귀적으로 구성해서 전방향신경망을 사용하는 방법이 사용된다[5,6,8,9]. 인공신경망을 이용하여 미리 선정한 한 개 혹은 한 개 이상의 곡을 학습을 하게하고 학습된 결과로부터 새로운 곡을 출력한다. 이러한 인공신경망을 이용한 방법은 기존의 곡을 학습하여 곡을 출력하기 때문에 비교적 작곡가가 작곡한 곡과 유사한 느낌을 갖는 곡을 출력한다. 그러나 곡에는 반복되는 부분이 많기 때문에 곡을 학습하기 어렵고 매우 오랜 시간이 소요된다. 또한 하나의 곡을 학습하고 출력하는 방법은 출력되는 곡이 기존의 곡과 너무 유사하다는 문제점이 있으며 여러 곡을 학습하는 경우에는 어떤 기준으로 어떻게 학습하게 할지를 정하는 것이 어렵다. 기계학습의 또 다른 예로서는 마르코프체인을 사용하는 방법이 있으며 [10], 국내에서는 기계학습 툴의 일종인 하이퍼 네트워크를 이용하여 작곡을 수행한 예가 있다[7].

그러나, 이런 기존 방법들은 작곡을 수행하는 과정을 일부 모사하거나 그 가능성을 타진하는 정도의 연구로서 실질적으로 작곡가 수준의 곡을 생성하기에는 부족한 부분이 많다. 또한 멜로디 일부나 박자 일부를 생성하는 것으로서 멜로디와 박자 그리고 화성을 포함하여 곡 전체를 만드는 연구는 거의 없는 실정이다. 본 논문에서는 인공신경망을 이용하여 새로운 멜로디와 박자를 생성하는 것에서 나아가 작곡가들이 많이 사용하는 화성진행을 적용해서 보다 실제적인 작곡 결과를 출력하는 방법을 제안한다.

 

3. 인공신경망 학습방법

우리는 논문 [11]에서 인공신경망을 이용하여 곡을 학습하고 학습된 신경망에 초기 멜로디를 새로 넣어주어 새로운 곡을 생성하는 방법을 제안했다. 곡의 멜로디를 인공신경망에 학습하기 위하여 멜로디를 구성하는 음표와 쉼표 그리고 박자를 숫자로 표현했다[11]. 음표는 전체 7옥타브 중에서 일반 대중음악에서 많이 사용하는 2~4의 세 옥타브만을 사용했다. 음표는 한 옥타브에 도, 도#, 레, 레#, 미, 파, 파#, 솔, 솔#, 라, 라#, 시의 총 12개가 존재하므로 1부터 36까지의 숫자로 세 옥타브를 표현했다. 쉼표는 음표와 구분하여 36보다 큰 수의 경우는 쉼표로 구분한다. 박자는 1/4, 1/2, 3/4, 1, 3/2, 2, 3 ,4의 8개의 박자를 1부터 8까지 숫자화 했다[11]. 그러므로 학습할 곡이 정해지면 학습할 곡의 멜로디에 따라서 음표와 쉼표를 표현하는 시계열 데이터 하나와 박자를 표현하는 시계열 데이터 하나가 발생한다.

곡을 학습하기 위하여 음표와 쉼표를 학습하는 용도와 박자를 학습하는 용도로 두 개의 신경망을 사용했다. 신경망은 하나의 출력을 갖는 앞 먹임 신경망(FNN: Feedforward Neural Network)을 사용했다. 신경망의 구조는 두 개의 신경망 모두 동일하게 10개의 입력노드와 20개의 중간노드 그리고 1개의 출력노드를 갖는다. 학습할 곡이 표현된 시계열데이터를 이용하여 입/출력 학습패턴을 만든다. 학습패턴은 1부터 10번째 시계열데이터를 입력으로 했을 때 11번째 시계열데이터가 출력이 되며 이것이 첫 번째 학습패턴이다. 두 번째 학습패턴은 2부터 11번째 시계열 데이터를 입력으로 하고 12번째 시계열 데이터가 출력이 된다. 이와 같이 학습패턴을 만들면 100개의 시계열데이터가 있을 경우 90개의 학습패턴이 발생한다. 학습할 곡으로부터 추출한 시계열을 학습패턴으로 만든 후에 신경망에 가하여 오류역전파알고리즘으로 감독자 학습을 수행한다. Fig. 1은 인공신경망에 학습데이터(TD: Training Data)을 넣어서 학습하는 방법을 보여준다.

Fig. 1.Artificial neural networks and training data.

인공신경망은 적절한 구조와 학습률 그리고 충분한 학습 시간만 주면 입/출력으로 주어진 학습데이터를 학습할 수 있다. 그러나 학습데이터에 학습할 수 없는 데이터가 있는 경우 충분한 학습시간을 주어도 제대로 학습이 되지 않을 수 있다. 학습할 수 없는 데이터라는 것은 같은 입력에 대하여 다른 출력을 내는 학습데이터가 주어지는 경우이다. 이 경우 신경망은 두 출력 중에 어느 쪽으로 출력하도록 학습할지를 결정하지 못하고 한쪽으로 치우치게 학습하거나 두 출력 사이를 왔다갔다 학습할 수가 있으며 그러므로 많은 학습시간이 주어져도 특정치 이하로 오류를 줄일 수가 없게 된다. 학습할 곡의 경우 대부분의 곡에서는 반복적인 부분이 많이 나오며 특히 되돌이표가 있는 경우 곡의 일부분이 반복된다. 이 경우에는 입력이 같은데 출력이 다른 경우가 종종 발생한다. 우리는 이전 연구에서 이를 해결하기 위하여 곡의 마디를 구분하는 입력을 신경망에 추가적으로 넣어서 마디를 구분해줌으로서 이 문제를 해결했다. 즉 마디를 구분하는 입력을 추가적으로 넣어서 학습하기 때문에 학습할 곡의 시계열데이터가 동일하여도 입력을 구분할 수 있다. 이러한 마디구분 입력은 특정한 값을 가질 필요는 없으며 마디별로 다른 입력만 넣어주면 된다. 이전 연구에서는 40개의 숫자를 무작위로 만들어서 마디구분입력으로 사용했다. 이는 실험적으로 학습이 빠르며 마디구분을 잘 해주는 것으로 선택한 결과이다. 보다 자세한 것은 논문 [11]을 참고하기 바란다.

학습한 인공신경망은 충분히 학습된 경우 10개의 초기 음표나 쉼표 그리고 박자를 학습한 곡과 동일하게 넣어주면 나머지 음표나 쉼표 그리고 박자를 원래의 학습한 곡과 동일하게 출력한다. 여기에 10개의 초기 음표나 쉼표 그리고 박자를 다르게 새로 작곡하여 넣어주면 나머지 음표와 쉼표 그리고 박자를 생성해준다. 이를 통하여 새로운 멜로디를 얻을 수 있다. 이렇게 얻은 멜로디는 학습한 곡과 유사한 멜로디 느낌을 가지나 다른 멜로디를 생성한다. 다만 신경망이 새로 생성하는 곡은 신경망에 학습된 것을 바탕으로 하기 때문에 음악이론에 맞지 않는 결과를 생성할 수 있다. 그러므로 신경망이 만들어낸 멜로디는 추가적으로 음악이론에 맞게끔 후처리 하는 것이 필요하다. 가장 먼저 후 처리 해야 하는 것은 박자로서 마디별로 갖춘마디를 만들기 위해 박자를 수정해야한다. 갖춘마디를 만들기 위한 박자 수정은 여러 방법이 있으나 본 연구에서는 간단히 가장 큰 박자에서 마디별로 넘치는 박자를 빼서 구현했다. 예를 들어 4/4박자인 경우 마디에 박자의 합이 4.5박자인 경우 가장 큰 박자에서 0.5박자를 빼어 수정한다.

 

4. 화성진행을 이용한 화성 후처리 및 멜로디 수정

인공신경망이 만들어낸 멜로디는 학습한 곡의 느낌을 갖고 있는 멜로디이나 음악적으로 수정이 필요한 미완의 멜로디이다. 박자처럼 단순히 기계적으로 음악이론에 맞추어 수정할 수 있는 것만 수정해서는 작곡가가 작곡한 느낌을 주기에는 부족하다. 이러한 문제를 해결하기 위하여 본 논문에서는 작곡가들이 작곡하는 과정에서 사용하는 방법을 추가하여 인공 신경망이 생성한 멜로디에 후처리를 수행한다. 작곡가들이 많이 사용하는 방법으로서 멜로디의 화성전개를 특정한 형태의 틀로 전개하는 방법이 있다. 이러한 화성전개의 틀을 기반으로 작곡을 하면 곡의 분위기가 자연스러워 대중들이 선호하는 곡을 만들 수 있다. 그러한 화성전개로서 Money Chord 라는 것이 있다. Money Chord는 이를 기반으로 곡을 만들면 곡이 인기를 끌어 돈을 벌 수 있다는 의미에서 붙여진 것으로서 많은 곡에서 사용된 화성전개 방법이다. 우리는 이러한 Money Chord 화성전개를 도입하여 멜로디를 후처리 했다. 이를 위하여 다음과 같은 과정을 거친다. 1) 인공신경망에서 생성한 멜로디를 마디별로 구분하여 화성 후보군을 생성한다. 2) 각 마디별로 선정된 화성 후보군을 기본으로 4마디 별로 Money Chord 화성전개가 되도록 각 마디별 화성을 선택한다. 이 때 Money Chord 화성전개가 만족되지 않는 경우를 해결하기 위하여 약간의 범위를 설정하여 매칭 되는지를 확인한다. 3) Money Chord 화성전개에 맞도록 각 마디별 화성이 최종 선정되면 해당 화성에 맞도록 멜로디를 수정한다. 본 절에서는 위와 같은 3단계의 알고리즘에 대하여 자세히 설명한다.

화성후보군을 생성하는 방법은 Fig. 2와 같다.

Fig. 2.Chord candidate generation.

각 마디에 있는 멜로디 음을 낮은 음부터 정렬한다. 가장 낮은 음부터 차례로 근음으로 지정해서 나머지 음과의 간격을 구한다. 예를 들어 어떤 마디에 3개의 음이 있다면 각 음이 근음이 되었을 때 나머지 음과의 간격이 구해진다. 이 때 근음보다 낮은음은 전위방식으로 상위 음으로 변환해준다. 예를 들어 어떤 마디에 도, 미, 솔 세음이 있었다면 이 음들은 각각 1, 5, 8로 표시되며 중간 음 5는 근음과의 간격이 장3도(간격으로는 +4)이고 마지막 음 8은 근음과의 간격이 완전 5도(간격으로는 +7)이므로 장 3화음이 된다. 결국 근음이 도 이므로 C Major 화음이 된다. 중간음 5를 기준으로 하면 5, 8, 12 가 되어 단 3화음이 되어 결국 E minor 화음이 된다. 이렇게 모든 음을 근음으로 하여 화음을 구하게 된다. 만약 Major minor를 정하지 못하는 경우에는 Major 와 minor를 모두를 후보로 넣는다. 이렇게 해서 결정된 모든 화음을 저장하면 각 마디별로 화성 후보군이 형성된다. 실험결과 마디별로 음이 3~4개 이상 존재하는 경우 마디별 화성 후보로 생성되는 것이 5~8개 정도 발생했다. 이렇게 구한 화성 후보들은 다음 단계의 화성 진행에서 사용하게 된다.

Fig. 3은 Money chord의 화성진행을 사용하여 마디별 최종 화성을 결정하는 방법을 보여준다. 화성진행은 각 마디별 화성의 변화를 의미하는 것으로서 Money chord 에서는 4마디별로 화성이 진행된다. 본 연구에서 사용한 화성진행의 우선순위는 Fig. 3에서 보는 것처럼 4가지 형태를 사용한다. 기본적으로 Money chord 는 마디별 근음의 차이가 I-V-vi-IV로 발생하는 것을 의미한다. 즉 I를 도로 놓으면 도-솔-라-파 로 근음이 변화하는 것을 의미하여 중간에 vi 만 소문자로 표현된 것은 해당 chord 는 minor chord 임을 나타낸다. 화성 후보군 생성에서 생성된 화성 후보군을 대상으로 Money chord 순서대로 진행하는 코드가 있는지를 찾는 과정이 이번 단계에서 수행하는 과정이다. 만약 Money chord 순서대로 진행하는 코드의 조합이 있는 경우 이를 저장하여 최종 화성으로 결정한다. 하지만 화성 후보군 생성에서 5~8개의 화성 후보군이 생성되었으나 Money chord 진행순서와 일치하는 화성 후보군을 찾지 못하는 경우가 발생했다. 이를 해결하기 위하여 Money chord와 약간의 차이가 발생하는 경우에는 일치하는 것으로 결정했다. 이 경우 다음 단계인 멜로디 수정단계에서 Money chord 와 일치하도록 멜로디를 수정해 주어야만 한다.

Fig. 3.Final chords selection from money chord progression.

마지막 단계로 최종 결정된 코드를 중심으로 다시 멜로디를 수정해주는 과정이 필요하다. 이는 인공신경망에 의해 생성된 멜로디를 기반으로 작곡을 하면서 동시에 화성진행에 따른 작곡을 수행하는 작곡가 의 과정과 유사한 과정이 된다. Fig. 4에서 보는 것처럼 각 마디별로 최종 결정된 화성을 기준으로 인공신경망에서 만들어진 멜로디를 수정한다. 예를 들어 Money chord 진행을 맞추기 위하여 화성 후보군에서 일치하지 않는 화성을 선택한 경우 이번 단계에서 최종 선정된 화성으로 해당 마디의 멜로디 전체를 수정한다. 또한 화성타입에 따라서 Major 와 minor 에 따른 멜로디 수정도 수행한다. 결국 이렇게 되면 인공신경망에서 출력된 멜로디가 Money chord 진행에 일치하는 멜로디로 변환되며 최종 곡은 기존에 학습한 곡의 느낌을 갖으면서 새로운 코드 진행에 따른 멜로디로 완성된다.

Fig. 4.Melody correction from final chords in each

 

5. 작곡 결과

제안한 방법을 구현하여 실제로 작곡 결과를 출력 해보았다. 이전 논문과 동일하게 학습 곡은 티아라의 롤리-폴리를 사용했으며 검증결과 해당 곡이 완벽하게 학습되는 것을 확인할 수 있었다. 학습 후에 초기 10개의 음과 박자를 새로운 곡으로 넣어주어 새로운 곡을 출력하게 했다. 이 때 3절에서 제안한 Money chord에 따른 후처리가 적용되어 화성이 결정되고 멜로디도 수정되어 출력되었다. Money chord 에 부합되지 않아서 새로운 멜로디로 수정된 마디가 발생하였으며 모든 마디에 최종 결정된 코드가 적용되어 작곡되었다.

최종적으로 얻은 작곡결과는 Fig. 5와 같다. Fig. 5의 악보에서 보듯이 롤리폴리의 멜로디와 느낌이 유사하면서도 새로운 곡을 만들어내었다. 특히 이전 연구에서 최종 작곡된 결과 멜로디의 진행이 부드럽지 못했는데 상당부분 개선된 결과를 볼 수 있었다. 또한 money chord 적용으로 마디별 진행이 작곡가가 작곡한 것과 유사하게 진행되는 것을 확인할 수 있었다. 롤리-폴리 원곡과 이전 연구에서의 작곡 결과는 각각 http://itsys.hansung.ac.kr/downloads/Compobot_Roly-Poly.wmv와 http://itsys.hansung. ac.kr/downloads/Compobot_20140530.wmv 에서 확인할 수 있다. 본 연구에서 작곡한 멜로디에 화성과 드럼을 추가하여 음악연주 프로그램 중의 하나인 기타프로로 연주한 동영상은 http://itsys.hansung.ac.kr/downloads/Compobot_ 20150528_Drum_Chord.avi 에서 확인할 수 있다. 자동으로 만든 곡은 Music XML 표기 방법으로 파일로 출력되며 악보 플레이를 하는 프로그램에 의해서 연주되어 진다.

Fig. 5.Final result melody.

위의 결과에서 보듯이 인공신경망을 이용하여 기존의 곡을 학습하고 새로운 곡을 만드는 방법은 새로 생성된 곡에 기존 곡의 느낌이 많이 남아있게 된다. 이러한 점은 기존 곡의 표절이라는 측면에서나 기존에 없는 새로운 곡을 만들어야한다는 점에 있어서는 단점이 된다. 이것을 피하기 위해서는 새로 넣어주는 초기 멜로디를 기존 곡과 많이 다르게 하면 일정부분 해소된다. 또한 화성 진행 및 후 처리에서의 매칭 조건을 완화하면 최종 결정된 화성에 따른 멜로디 수정에서 수정이 많이 가해지므로 어느 정도 완화할 수 있다. 그러나 보다 근본적인 해결책으로는 단순히 하나의 곡만을 학습하는 것이 아니라 여러 곡을 학습하게 하면 특정한 곡에 편중되지 않은 최종 멜로디를 생성하여 이런 문제점이 많이 사라질 것이다. 특히 이렇게 여러 곡을 학습하는 방법에서는 인공신경망이 각 곡의 느낌을 어느 정도 유지하는 점이 장점이 될 수 있다. 즉 여러 곡을 학습한 후에 작곡을 하는 경우에는 여러 곡의 느낌이 잘 조화된 최종 결과물이 나올 수 있다는 것이다. 이러한 연구에 대해서는 추후에 수행할 예정이다. 또 다른 측면으로는 곡의 멜로디와 박자 후처리를 고도화하여 음악성을 높이는 연구를 통하여 기존 곡과는 많이 다른 새로운 곡을 출력할 수 있다. 이런 연구가 성공적으로 수행되면 기존 곡을 학습하지 않고도 무작위 적인 멜로디로부터 새로운 곡을 작곡할 수 있을 것으로 기대된다.

 

6. 결 론

본 논문에서는 인공신경망의 학습기능을 통하여 작곡한 멜로디에 작곡가들이 많이 사용하는 화성 진행을 이용한 작곡요소를 결합하여 보다 자연스럽고 음악성이 있는 곡을 만들어내는 방법을 제안했다. 이를 위하여 각 마디별로 화성 후보군을 생성하고 생성한 화성 후보군을 대상으로 마디별로 Money chord 진행에 따른 최종 화성을 선정하고 최종 선정된 화성에 따라서 멜로디를 수정해주는 알고리즘을 제안하고 구현했다. 최종적으로 구현된 프로그램을 통해 실제로 작곡을 수행해본 결과 학습 곡의 느낌을 갖고 있으면서도 작곡가가 작곡한 것 같이 자연스러운 곡을 만들어 내는 것을 확인할 수 있었다. 그러나 인공 신경망을 이용하는 방법의 가장 큰 단점인 기존 곡의 느낌을 너무 많이 갖고 있는 문제를 해결해야하며 또한 박자나 멜로디를 좀 더 수준 높게 고도화하는 작업이 필요하다. 이를 위하여 추후로 박자와 멜로디 후처리를 고도화 하는 방법과 여러 곡을 학습하는 방법에 대한 연구를 진행할 예정이다.

References

  1. B. Johanson and R. Poli, "GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters," Proceedings of the Third Annual Conference, pp. 181-186, 1998.
  2. N. Tokui and H. Iba, "Music Composition with Interactive Evolutionary Computation," Proceedings of the Third International Conference on Generative Art, pp. 215-226, 2000.
  3. A. Santos, B. Arcay, J. Dorado, J. Romero, and J. Rodriguez, "Evolutionary Computation Systems for Musical Composition," Proceedings of the International Conference Acoustic and Music: Theory and Applications, pp. 97-102, 2000.
  4. C. Chen and R. Miikkulainen, "Creating Melodies with Evolving Recurrent Neural Networks," Proceedings of the 2001 International Joint Conference on Neural Networks, pp. 2241-2246, 2001.
  5. D.C. Corrêa, A.L.M. Levada, J.H. Saito, and J.F. Mari, "Neural Network based Systems for Computer-aided Musical Composition: Supervised x Unsupervised Learning," Proceedings of the 2008 ACM Symposium on Applied Computing, pp. 1738-1742, 2008.
  6. T. Oliwa and M. Wagner, "Composing Music with Neural Networks and Probabilistic Finite-State Machines," Proceeding of Applications of Evolutionary Computing: EvoWorkshops 2008, pp. 503-508, 2008.
  7. H. Kim, B. Kim, and B. Zhang, "Learning Music and Generation of Crossover Music using Evolutionary Hypernetworks," Proceedings of Korea Computer Congress 2009, pp. 134-138, 2009.
  8. G. Bickerman, S. Bosley, P. Swire, and R.M. Keller, "Learning to Create Jazz Melodies Using Deep Belief Nets," Proceedings of the International Conference on Computational Creativity, pp. 228-237, 2010.
  9. A.E. Coca, R.A.F. Romero, and L. Zhao, "Generation of Composed Musical Structures through Recurrent Neural Networks based on Chaotic Inspiration," Proceedings of International Joint Conference on Neural Networks, pp. 3220-3226, 2011.
  10. J.D. Fernandez and F. Vico, “AI Methods in Algorithmic Composition: A Comprehensive Survey,” Journal of Artificial Intelligence Research, Vol. 48, pp. 513-582, 2013.
  11. J. Cho, E.M. Ryu, J. Oh, and S.H. Jung, “Training Method of Artificial Neural Networks for Implementation of Automatic Composition Systems,” KIPS Transactions on Software and Data Engineering, Vol. 3, No. 8, pp. 315-320, 2014. https://doi.org/10.3745/KTSDE.2014.3.8.315
  12. J.-I Park and S. W. Kim, “Development of a System for Music Plagiarism Detection Using Melody Databases,” Journal of Korea Multimedia Society, Vol. 8, No. 1, pp. 1-8, Jan 2005. https://doi.org/10.3346/jkms.2005.20.1.1

Cited by

  1. Adoption of Artificial Neural Network for Rest, Enhanced Postprocessing of Beats, and Initial Melody Processing for Automatic Composition System vol.17, pp.6, 2016, https://doi.org/10.9728/dcs.2016.17.6.449
  2. Postprocessing for Tonality and Repeatability, and Average Neural Networks for Training Multiple Songs in Automatic Composition vol.26, pp.6, 2016, https://doi.org/10.5391/JKIIS.2016.26.6.445
  3. 계층적 인공신경망을 이용한 구성을 갖춘 곡의 자동생성 vol.18, pp.4, 2015, https://doi.org/10.9728/dcs.2017.18.4.641
  4. RNN Auto-Encoder의 시계열 임베딩을 이용한 자동작곡 vol.21, pp.8, 2015, https://doi.org/10.9717/kmms.2018.21.8.849