KR101854706B1 - Method and recording medium for automatic composition using artificial neural network - Google Patents

Method and recording medium for automatic composition using artificial neural network Download PDF

Info

Publication number
KR101854706B1
KR101854706B1 KR1020170009790A KR20170009790A KR101854706B1 KR 101854706 B1 KR101854706 B1 KR 101854706B1 KR 1020170009790 A KR1020170009790 A KR 1020170009790A KR 20170009790 A KR20170009790 A KR 20170009790A KR 101854706 B1 KR101854706 B1 KR 101854706B1
Authority
KR
South Korea
Prior art keywords
beat
neural network
artificial neural
learning
beats
Prior art date
Application number
KR1020170009790A
Other languages
Korean (ko)
Inventor
정성훈
Original Assignee
한성대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한성대학교 산학협력단 filed Critical 한성대학교 산학협력단
Priority to KR1020170009790A priority Critical patent/KR101854706B1/en
Application granted granted Critical
Publication of KR101854706B1 publication Critical patent/KR101854706B1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • G10H1/0025Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/111Automatic composing, i.e. using predefined musical rules
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/145Composing rules, e.g. harmonic or musical rules, for use in automatic composition; Rule generation algorithms therefor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/341Rhythm pattern selection, synthesis or composition
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/311Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation

Abstract

The present invention relates to an automatic music composition method using an artificial neural network and a recording medium therefor that can automatically generate a music of a new melody different from a learning music and that in particular, can output a music having a natural and high musical perfection of an actual composer level by processing the music so as to suit to musicality or music theory. According to the present invention, the automatic music composition method using an artificial neural network comprises: a step of generating time series data by converting a plurality of notes and beats constituting a music to be learned by the artificial neural network (hereinafter referred to as a first learning music) into a numeric form; a step of learning the artificial neural network using the time series data; a step of outputting a new music by the artificial neural network; and a step of post-processing a beat to correct an exceeding bar with a complete bar if there is the bar (hereinafter referred to as an exceeding bar) which exceeds a beat compared with the complete bar in the new music.

Description

인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체{METHOD AND RECORDING MEDIUM FOR AUTOMATIC COMPOSITION USING ARTIFICIAL NEURAL NETWORK}TECHNICAL FIELD [0001] The present invention relates to an automatic composing method using an artificial neural network,

본 발명은 자동 작곡 방법에 관한 것으로서, 보다 상세하게는 인공 신경망을 이용하여 곡을 학습하고, 학습된 신경망에 초기 멜로디를 새로 넣어주면 새로운 곡을 자동 생성할 수 있는 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체에 관한 것이다.The present invention relates to an automatic composing method, and more particularly, to an automatic composing method using an artificial neural network capable of automatically creating a new song by learning a song using an artificial neural network and newly adding an initial melody to the learned neural network, And relates to the recording medium.

컴퓨터를 이용하여 자동으로 작곡을 하려는 시도는 비교적 오래전부터 있어왔다. 이러한 연구는 알고리즘 작곡이라고 분류되어왔으며 작곡이라는 목적에서 알 수 있듯이 주로 대부분 인공 지능 분야에서 개발된 방법들이 사용되어왔다.Attempts to automatically compose music using a computer have been around for a long time. These studies have been classified as algorithmic compositions, and most of the methods developed in the field of artificial intelligence have been used, as can be seen from the purpose of composition.

첫 번째 방법으로, 자동작곡을 수행하는 알고리즘을 만든 것으로 문법에 기반 한 것, 규칙에 기반 한 것, 사례에 기반 한 것 등이 있다. 문법에 기반 한 것은 언어에서 문법을 통하여 글을 만드는 것을 모사하여 이를 작곡에 응용한 것이다. 규칙에 기반 한 것은 멜로디를 생성하는 규칙을 만들어 이를 기반으로 곡을 만드는 것이다. 사례에 기반 한 것은 기존 곡을 소절별로 데이터베이스화 하고 작곡 시 기존 곡에서 소절을 이용하여 작곡하는 것이다. The first method is to create an algorithm that performs automatic composing based on grammar, rule based, case based. It is based on grammar that it is applied to composition by simulating writing through grammar in language. The rule is based on creating rules that generate melodies and creating songs based on them. Based on the case, the existing song is databaseed by each measure, and the composition is composed by using the measure in the existing song.

두 번째 방법으로, 최적화 기법에 의한 것이 있다. 작곡에 주로 사용된 최적화 기법은 진화알고리즘(Evolutionary Algorithms)으로서 집단개체를 진화시켜서 최적화시키는 방법이다. 특히 개체를 트리로 표현하는 유전프로그램(Genetic Programming)은 곡의 음에서 마디로, 마디에서 음절로 계층적으로 구성되기 때문에 작곡에서 매우 유용한 기법이다. 그러나 최적화 방법에 있어서 가장 큰 문제점은 개체를 평가하는 방법이 어렵다는 것이다. 개체로 표현된 짧은 곡이 얼마나 음악적으로 적합한지를 제대로 평가해야 진화가 일어나서 점점 더 좋은 곡이 표현된다.As a second method, there is an optimization technique. The optimization technique that is mainly used in composition is evolutionary algorithm (Evolutionary Algorithms). In particular, the genetic programming that expresses an object as a tree is a very useful technique in composition because it is composed hierarchically from the sound to the syllable, and from the syllable to the syllable. However, the biggest problem with the optimization method is that it is difficult to evaluate the object. The evolution of a short piece expressed as an object must be properly assessed to make it more musically appropriate to express a better piece.

그러나 컴퓨터가 스스로 곡을 평가하는 것은 상당히 어려운 일이다. 그래서 보통 사람이 각 개체를 평가하는 방법을 많이 사용하지만 매우 많은 개체를 수십에서 수백세대에 걸쳐 모두 평가하는 것은 사람에게도 매우 지루하고 힘든 작업이 된다. 또한 곡에 대한 평가는 매우 주관적이어서 일관된 잣대를 제시하기도 어렵다. 이러한 적합도 평가의 어려움을 어느 정도 완화하기 위하여 곡에 대한 평가를 인공신경망의 학습 기능을 통하여 수행하는 연구도 있다. 그러나 학습된 인공신경망의 곡에 대한 평가가 제대로 수행되는 것을 보장하기는 매우 어렵다.However, it is very difficult for a computer to evaluate a song by itself. So the average person uses a lot of methods to evaluate each object, but it is very tedious and hard work for people to evaluate very many objects from tens to hundreds of generations. Also, evaluation of music is very subjective and it is difficult to present a consistent standard. In order to mitigate the difficulty of the evaluation of fitness, some researches are performed to evaluate the music through learning function of artificial neural network. However, it is very difficult to ensure that the evaluation of the music of the learned neural network is performed properly.

세 번째 방법으로, 기계학습에 의한 것이 있다. 기계학습은 컴퓨터가 스스로 주어진 데이터를 학습하는 것으로서 대표적인 것으로 인공 신경망이 있다. 인공신경망은 주어진 데이터를 학습하고 학습된 데이터와 같거나 유사한 데이터를 출력할 수 있다.A third way is by machine learning. Machine learning is an artificial neural network that is representative of a computer learning data given to itself. The artificial neural network learns the given data and can output the same or similar data as the learned data.

인공신경망을 이용한 방법은 기존의 곡을 학습하여 곡을 출력하기 때문에 비교적 작곡가가 작곡한 곡과 유사한 느낌을 갖는 곡을 출력한다. 그러나 곡에는 반복되는 부분이 많기 때문에 곡을 학습하기 어렵고 매우 오랜 시간이 소요된다. 또한 하나의 곡을 학습하고 출력하는 방법은 출력되는 곡이 기존의 곡과 너무 유사하다는 문제점이 있으며 여러 곡을 학습하는 경우에는 어떤 기준으로 어떻게 학습하게 할지를 정하는 것이 어렵다.In the artificial neural network method, a song is output by learning an existing song, and thus a song having a feeling similar to that of a song written relatively by the composer is outputted. However, because there are many repetitive parts of the song, it is difficult to learn the song and it takes a very long time. In addition, the method of learning and outputting one song is problematic in that the outputted music is very similar to the existing music, and it is difficult to determine how to learn by some criteria when learning a plurality of songs.

기계학습의 또 다른 예로서는 마르코프체인을 사용하는 방법이 있으며, 국내에서는 기계학습 툴의 일종인 하이퍼 네트워크를 이용하여 작곡을 수행한 예가 있다.Another example of machine learning is using a Markov chain. In Korea, there is an example of performing composition using Hyper Network, which is a type of machine learning tool.

그러나, 이와 같은 종래 방법들은 작곡을 수행하는 과정을 일부 모사하거나 그 가능성을 타진하는 정도의 방법으로서 실질적으로 작곡가 수준의 자연스런 느낌의 곡을 생성하기에는 부족한 부분이 많다.However, such conventional methods are not enough to generate a music having a natural feel at the composer level as a method of simulating a part of performing a composition or exploring the possibilities.

또한, 멜로디나 박자의 일부를 생성하는 것만으로 나머지 멜로디, 박자 그리고 화성을 포함한 곡 전체를 자동으로 생성 및 작곡하는 방법은 거의 없는 실정이다.In addition, there is almost no way to automatically generate and compose the entire music including the remaining melody, beat, and harmony just by generating a part of the melody or beat.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 인공 신경망을 이용하여 새로운 멜로디, 박자 및 화성을 포함한 곡 전체를 자동으로 생성할 수 있는 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체를 제공하는 것이다.It is an object of the present invention to provide an automatic composition method using an artificial neural network capable of automatically generating a complete music piece including a new melody, a beat and a harmony using an artificial neural network, And to provide the recording medium.

본 발명의 또 다른 목적은 인공 신경망이 출력한 곡의 박자 및 조성이 음악이론에 맞도록 후처리할 수 있고, 더 나아가 어떠한 경우에도 박자 후처리를 완료할 수 있는 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체를 제공하는 것이다.It is still another object of the present invention to provide an automatic composition method using an artificial neural network capable of post-processing the beat and composition of a song output by the artificial neural network according to the music theory and further completing the beat- And to provide the recording medium.

본 발명의 또 다른 목적은 적절치 못한 쉼표 학습으로 인해 생성곡에 갑작스럽게 튀는 음이 나와 전체적인 멜로디 흐름을 왜곡시키는 경우를 방지할 수 있는 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체를 제공하는 것이다.It is another object of the present invention to provide an automatic composition method and an automatic music composition method using the artificial neural network that can prevent a case where a sound suddenly bounces on a generated song due to improper comma learning and distort the overall melody flow.

본 발명의 또 다른 목적은 인공 신경망이 다수의 곡을 학습시, 출력곡의 특성 내지 멜로디가 한 쪽으로 편중되는 현상을 해결할 수 있는 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체를 제공하는 것이다.Another object of the present invention is to provide an automatic composing method using an artificial neural network capable of solving the phenomenon that the characteristic or melody of an output music is biased to one side when an artificial neural network learns a plurality of songs, and a recording medium therefor.

상기 목적을 달성하기 위한 본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법은, 인공 신경망이 학습할 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환하여 시계열 데이터를 생성하는 단계와; 상기 시계열 데이터를 이용하여 상기 인공 신경망을 학습시키는 단계와; 상기 인공 신경망이 신규곡을 출력하는 단계; 및 상기 신규곡에 있어서 갖춘마디 대비 박자가 초과하는 마디(이하, '초과마디')가 존재할 경우 상기 초과마디를 갖춘마디로 보정하는 박자 후처리 단계를 포함한다.According to another aspect of the present invention, there is provided an automatic composition method using an artificial neural network, comprising: converting a plurality of notes and a beat constituting a song to be learned by an artificial neural network (hereinafter referred to as a first learning song) Generating time series data based on the time series data; Learning the artificial neural network using the time series data; Outputting a new music piece by the artificial neural network; And a beat-after-processing step of correcting, when there is a section exceeding a beat exceeding a beat provided in the new music (hereinafter, referred to as an 'excess bar') with a bar having the excess bar.

그리고, 상기 박자 후처리 단계는 제1 처리, 제2 처리 및 제3 처리 중에서 선택된 어느 하나에 의해 이루어지는 것을 특징으로 한다.The step of post-processing may be performed by any one of a first process, a second process, and a third process.

구체적으로, 상기 제1 처리는 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서, 상기 갖춘마디 대비 상기 초과마디가 초과하는 박자(이하, 'd') 만큼을 빼는 제1a 단계를 포함한다.Specifically, in the first process, a first step of subtracting a beat (hereinafter, referred to as 'd') exceeding the excess node from the provided one of the notes of each note constituting the excess node .

그리고 상기 제2 처리는 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd1'(여기서, d1<d) 박자만큼을 빼고, 또 다른 하나의 박자에서 'd-d1' 박자만큼을 빼는 제1b 단계를 포함한다.In the second process, 'd 1 ' (here, d 1 <d) is subtracted from any one of the notes of each note constituting the excess node, and in the other one of the notes, 'dd 1 ' And subtracting &lt; / RTI &gt;

그리고 상기 제3 처리는 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd2' 박자만큼을 더하고, 또 다른 하나의 박자에서 'd+d2' 박자만큼을 빼는 제1c 단계를 포함하는 것을 특징으로 한다.The third process includes a first c step of adding 'd 2 ' beats from one beat of each note constituting the excess node, and subtracting 'd + d 2 ' beats from another beat And a control unit.

바람직하게는, 상기 신규곡의 조성을 보정하는 조성 후처리 단계를 더 포함할 수 있다. 조성 후처리 단계는 상기 신규곡의 조성을 제1 으뜸음을 갖는 C장조로 만드는 단계; 및 상기 C장조의 모든 음에 각각 제1 으뜸음과 제2 으뜸음 간의 차이만큼을 더하여 상기 제2 으뜸음을 으뜸음으로 갖는 또 다른 장조로 변환하는 단계를 포함한다.Preferably, a composition post-processing step for correcting the composition of the new tune may be further included. The post-composition post-processing step includes: making the composition of the new tune into a C major having a first treble; And converting the second treasurer's tone to another treasure tone by adding the difference between the first treble tone and the second treble tone to all notes of the C major tone.

본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법 및 기록 매체에 의하면, 학습곡과 다른 새로운 멜로디를 갖는 곡 전체를 자동으로 생성할 수 있게 되었다.According to the automatic composition method and the recording medium using the artificial neural network according to the present invention, it is possible to automatically generate an entire music piece having a new melody different from the learning music.

특히, 자동 생성된 곡의 박자, 화성, 조성, 쉼표 및 갖춘마디 등이 음악성 내지 음악이론에 맞게 처리되어 실제 작곡가 수준으로 자연스러우면서 음악적 완성도가 매우 뛰어난 곡을 생성할 수 있는 효과가 있다.Especially, the rhythm, harmony, composition, comma and equipments of the automatically generated music are processed in accordance with musical ability or music theory, so that it is possible to create a music which is natural to the actual composer level and has excellent musical perfection.

더 나아가, 인공 신경망이 다수의 곡을 학습시, 출력곡의 특성 내지 멜로디가 어느 하나의 곡으로 치우치는 문제를 해결할 수 있는 효과가 있다.Furthermore, when the artificial neural network learns a large number of songs, it is possible to solve the problem that the characteristic or the melody of the output music is biased to any one music.

도 1은 본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법의 처리 흐름을 도시한 순서도.
도 2는 본 발명의 제1 학습곡의 일 례.
도 3은 본 발명에 따른 인공 신경망의 학습 패턴, 이에 따른 학습 데이터 생성 및 그 학습 과정을 보여주는 일 례.
도 4는 본 발명의 쉼표 처리 문제를 나타낸 일 례.
도 5는 본 발명에 따른 박자 후처리의 처리 흐름을 도시한 순서도.
도 6은 본 발명에 따른 박자 후처리의 제1 처리의 일 례.
도 7은 본 발명에 따른 박자 후처리의 제2 처리의 일 례.
도 8은 본 발명에 따른 박자 후처리의 제3 처리의 일 례.
도 9 (a),(b),(c)는 본 발명에 따른 조성 후처리를 설명하기 위한 일 례.
도 10은 본 발명의 초기 멜로디(도입곡) 처리 문제를 나타낸 일 례.
도 11은 본 발명에 따른 평균 인공신경망 생성 원리를 나타낸 도면.
도 12는 본 발명에 따른 인공 신경망을 이용하여 자동 작곡된 곡의 일 례.
1 is a flowchart showing a processing flow of an automatic composing method using an artificial neural network according to the present invention.
2 is an example of a first learning song of the present invention.
FIG. 3 shows an example of a learning pattern of an artificial neural network according to the present invention, and thus, a learning data generation process and a learning process thereof.
4 shows an example of the comma processing problem of the present invention.
5 is a flowchart showing a process flow of a post-beating process according to the present invention.
6 is an example of a first process of the post-tone process according to the present invention.
7 is an example of a second process of the post-tone post-processing according to the present invention.
8 is an example of a third process of the post-tone process according to the present invention.
9 (a), 9 (b) and 9 (c) illustrate post-composition processing according to the present invention.
FIG. 10 shows an example of a problem of initial melody processing according to the present invention.
11 is a diagram illustrating an average artificial neural network generation principle according to the present invention.
12 is an example of a song that is automatically composed using an artificial neural network according to the present invention.

본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Also, in this specification, the terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예, 장점 및 특징에 대하여 상세히 설명하도록 한다.In the following, preferred embodiments, advantages and features of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법의 처리 흐름을 도시한 순서도이다. 도 1을 참조하면, 본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법은 특정 멜로디의 숫자화 단계(단계 1(S10))와, 시계열 데이터 생성 단계(단계 2(S20))와, 인공 신경망 학습 단계(단계 3(S30))와, 도입부 시계열 데이터 입력 단계(단계 4(S40)), 및 신규곡 출력 단계(단계 5(S50))를 포함한다.1 is a flowchart illustrating a process flow of an automatic composition method using an artificial neural network according to the present invention. Referring to FIG. 1, an automatic composition method using an artificial neural network according to the present invention includes a step of digitizing a specific melody (step S10), a step of generating a time series data (step S20), an artificial neural network learning step (Step S30), a lead-in time series data input step (step S40), and a new song output step (step S50).

그리고, 본 발명의 인공 신경망을 이용한 자동 작곡 방법은 상기 단계 3(S30)의 인공 신경망 학습 수행시, 단계 2(S20)의 시계열 데이터를 이용하여 생성된 다수 개의 학습 데이터(S21)를 통해 학습을 수행하고, 학습할 멜로디의 마디 구분 정보를 추가적으로 입력(S22)받아 상기 학습 단계(S30)를 수행하도록 구성되며, 상기 단계 5(S50)를 통해 출력된 신규곡의 박자와 화성을 후처리하는 단계(단계 6(S60))를 포함하는 것을 특징으로 한다.The automatic composing method using the artificial neural network according to the present invention is characterized in that learning is performed through a plurality of learning data S21 generated using the time series data of step 2 (S20) in the artificial neural network learning of step 3 (S30) (S22), and further performs a learning step (S30) by additionally inputting the division information of the melody to be learned (S22), and postprocessing the beat and harmony of the new song output through the step 5 (Step 6 (S60)).

더 나아가, 본 발명의 인공 신경망을 이용한 자동 작곡 방법은 박자 및 화성이 후처리 완료된 신규곡의 조성을 후처리하는 단계(단계 7(S70))를 더 포함할 수 있다.Furthermore, the automatic composing method using the artificial neural network of the present invention may further include a step of post-processing the composition of the new tune after completion of the beat and harmony (Step S70).

변형 실시예로서, 본 발명의 인공 신경망을 이용한 자동 작곡 방법은 인공신경망의 학습 단계를 생략할 수 있으며, 상기 경우 특정 멜로디의 숫자화 단계(단계 1(S10))부터 도입부 시계열 데이터 입력 단계(단계 4(S40))까지를 생략할 수 있다.As an alternative embodiment, the automatic composing method using the artificial neural network of the present invention may omit the learning step of the artificial neural network. In this case, the number of steps of the specific melody (step 1 (S10) 4 (S40)) may be omitted.

즉, 기존의 곡을 신경망에 학습한 후에 신경망에 초기 멜로디를 작곡하여 넣어서 나머지 작곡 부분을 출력하는 대신에 신경망을 학습시키지 않고 초기 멜로디를 무작위로 넣거나 아니면 아예 신경망을 사용하지 않고 바로 무작위로 멜로디와 박자를 생성하여 'S60' 단계부터 처리하게 하는 방법이다. 이렇게 하면 기존의 곡을 학습하지 않고도 새로운 곡을 만들어낼 수 있다. 다만 이 경우 기존 곡을 학습하지 않기 때문에 보다 정교한 멜로디/박자 후처리와 보다 정교한 멜로디/박자 고도화를 수행해야만 의미있는 결과가 출력된다. In other words, instead of learning the neural network, instead of learning the neural network, instead of randomly putting the initial melody, or randomly using the neural network, instead of learning the neural network, instead of outputting the rest of the composition by composing the initial melody into the neural network after learning the existing music on the neural network It is a method to generate a beat and process from step 'S60'. This way, you can create a new song without learning the existing song. However, in this case, since the existing music is not learned, more sophisticated melody / beat processing and more sophisticated melody / beat enhancement are performed to produce meaningful results.

이하에서는 각 단계에 따른 바람직한 실시예를 들어 보다 구체적으로 설명하도록 한다.Hereinafter, preferred embodiments according to the respective steps will be described in more detail.

<단계 1(S10)>&Lt; Step 1 (S10)

본 발명의 단계 1(S10)은 인공 신경망이 학습할 곡이 선정되면, 해당 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표, 박자 및 쉼표를 숫자 형태로 변환하는 단계이다.Step 1 (S10) of the present invention includes a step of converting a plurality of notes, beats, and commas constituting a corresponding song (hereinafter, referred to as 'first learning song') into numerals when a music to be learned by the artificial neural network is selected to be.

여기서, 인공 신경망이 학습할 곡이란 기존에 존재하는 곡으로서 그 장르는 특별한 한정이 없다. 예컨대, 사용자가 희망하는 자동 작곡된 곡의 멜로디가 가요에 해당하는 'A'곡과 유사한 느낌을 원한다면, 인공 신경망이 학습할 곡은 가요 'A'곡이 이에 해당할 수 있다. 더 나아가 사용자가 희망하는 자동 작곡된 곡의 멜로디가 여러 곡(예컨대, 가요'A', 팝송'B')의 느낌이 잘 조합된 느낌을 원한다면 상기 가요 'A'와 팝송 'B'가 인공 신경망이 학습할 곡에 해당할 수 있다.Here, the music to be learned by artificial neural network is an existing music, and its genre is not particularly limited. For example, if the melody of the automatically composed music desired by the user desires a feeling similar to the 'A' song corresponding to the song, the artificial neural network may learn the song 'A'. Furthermore, if the melody of the automatically composed music desired by the user desires to have a feeling of well-combined feeling of various songs (for example, a song 'A' and a pop song 'B'), the song 'A' and the pop song 'B' This can be the song to learn.

제1 학습곡의 숫자 형태 변환에 대해 구체적으로 설명하면 다음과 같다. 소정 곡의 멜로디를 인공 신경망에 학습하기 위하여 제1 학습곡의 멜로디를 구성하는 음표(즉, 음의 높이), 박자(즉, 음의 길이) 및 쉼표를 각각 숫자로 표현한다.The number type conversion of the first learning song will be described in detail as follows. In order to learn the melody of the predetermined music piece in the artificial neural network, the notes (i.e., the pitch of the note) constituting the melody of the first learning music (i.e., the pitch of the note) and the comma are expressed by numbers.

먼저, 음표(음의 높이)는 전체 1 ~ 7 모든 옥타브에 대하여 숫자로 표현할 수 있으나, 본 발명에서는 일반적인 음악에서 많이 사용하는 2 ~ 4 옥타브만을 사용하는 것으로 전제한다. 상기 경우, 음표는 한 옥타브에 '도, 도#, 레, 레#, 미, 파, 파#, 솔, 솔#, 라, 라#, 시'의 총 12개가 존재하므로 이를 차례로 '01'부터 '12'까지의 숫자로 각각 표현할 수 있다.First, note (note pitch) can be represented by numbers for all 1 to 7 octaves. In the present invention, however, it is assumed that only 2 to 4 octaves are used. In the above case, there are a total of twelve notes such as' degrees, degrees #, #, #, #, #, #, #, #, #, Quot ;, and &quot; 12 &quot;, respectively.

예컨대, 2 옥타브의 '도'는'01', '도#' '02로, '레'은 '03', '레#'은 '04', '미'는 '05', '파'는 '06', '파#'은 '07', '솔'은 '08', '솔#'은 '09', '라'는 '10', '라#'은 '11', '시'는 '12'로 표현할 수 있다.For example, two octaves of 'DO' are '01', 'D0', '02', 'L' is '03', 'L #' is '04' '06', 'Pa #' is '07', 'Sol' is '08', 'Sol #' is '09', 'La' is '10' Can be expressed as '12'.

본 발명에서는 3 개의 옥타브를 사용하므로 각 옥타브의 음표는 '01'부터 '36'까지의 숫자로 변환할 수 있게 된다.In the present invention, since three octaves are used, the notes of each octave can be converted into a number from '01' to '36'.

한편, 곡에는 음표뿐만 아니라 쉼표도 존재한다. 그러므로 쉼표도 숫자로 표현해 주어야한다. 음표에 쉼표가 있을 경우에는 음표에서 사용하지 않는 숫자를 사용하여 음표와 쉼표를 구분할 수 있도록 구성된다.On the other hand, there are not only notes but also commas in the music. Therefore, the comma must also be expressed in numbers. If a note has a comma, it is configured to use a number that is not used in the note to separate the note from the comma.

예컨대, 본 발명에서는 '01'부터 '36'까지의 숫자를 이용하여 음표를 표현하도록 구성되는 바, 쉼표는 '36'보다 큰 숫자 예컨대, '37', '50' 등의 숫자를 사용하여 변환하도록 구성함으로써 음표와 쉼표를 구분할 수 있도록 한다. 따라서, 인공 신경망은 단계 3의 학습 수행시 '36'보다 큰 숫자의 경우 쉼표로 구분하여 학습을 진행할 수 있게 된다.For example, in the present invention, a note is configured to express a note using a number from '01' to '36'. A comma is converted using a number greater than '36', for example, '37' So that notes and commas can be distinguished. Therefore, the artificial neural network can perform the learning by separating the number of '36' when the learning of step 3 is performed, by separating it with a comma.

다음으로, 박자(음의 길이)는 16분 음표를 기준으로 "1/16, 2/16, 4/16, 8/16, 16/16" 가 존재하며, 이를 정수로 나타내기 위하여 16을 곱한 "1, 2, 4, 8, 16"으로 나타낼 수 있다. 즉, 16분 음표를 기준으로 하면, 박자(즉, 음표의 길이)는 1분음표, 2분음표, 4분음표, 8분음표, 16분음표가 존재한다.Next, the beat (negative length) is defined as "1/16, 2/16, 4/16, 8/16, 16/16" based on the 16th note, multiplied by 16 Quot; 1, 2, 4, 8, 16 ". That is, when the sixteenth note is used as a reference, the beat (i.e., the length of the note) includes a first note, a second note, a quarter note, an eighth note, and a sixteenth note.

한편, 반 박자는 점으로 표시하는데 2 박자에 점이 붙으면 "(2+1)=3박자"가 되고, 4 박자에 점이 붙으면 "(4+2)=6박자"가 되며, 8 박자에 점이 붙으면 "(8+4)=12박자"가 된다. 점은 두 개까지 붙을 수 있기 때문에 4 박자에 점이 두 개 붙으면 "(4+2+1)=7박자"가 되고 8 박자에 점이 두 개 붙으면 "(8+4+2)= 14박자"가 된다. 그러나 보통 대중 가요에서는 점이 하나 붙은 반 박자까지만 사용하므로 보통 "1, 2, 3, 4, 6, 8, 12, 16"의 8개의 박자를 사용한다. 이렇게 8개의 박자만 사용할 경우에는 1에서부터 8까지의 숫자로 각 박자를 나타낼 수 있다.(2 + 1) = 3 beats. "When a point is attached to the fourth beat," (4 + 2) = 6 beats " "(8 + 4) = 12 beats". (4 + 2 + 1) = 7 beats "when there are two points on four beats and" (8 + 4 + 2) = 14 beats "when two beats on eight beats do. However, since most popular songs only use half a beat with a single dot, we usually use 8 beats of "1, 2, 3, 4, 6, 8, 12, If you use only 8 beats in this way, you can represent each beat with a number from 1 to 8.

한편, 본 발명의 시계열 데이터는 서로 상이하게 표현되는 숫자를 통해 음표와 쉼표를 구분할 수 있는 바, 해당 음표 또는 쉼표에 숫자로 표현되는 박자 정보를 더해주면 해당 음표의 음표박자, 해당 쉼표의 쉼표박자 정보를 알 수 있게 된다. 따라서, 음표 박자와 쉼표 박자를 구분하기 위한 또 다른 별도의 숫자가 없어도 무관하다.Meanwhile, the time series data of the present invention can distinguish a note from a comma through a number expressed differently. When the beat information represented by a numeral is added to the corresponding note or comma, the beat note of the corresponding note, the comma beat of the corresponding comma Information becomes available. Thus, there is no need for another separate number to distinguish the note and comma beats.

그러나, 다음과 같은 방법을 통해 음표 박자와 쉼표 박자를 구분하도록 구성할 수도 있다. 상기 경우, 음표 박자는 '십'의 자리에 제1 숫자(예컨대, '1')를 추가로 표현하고, 쉼표 박자는 '십'의 자리에 상기 제1 숫자와 상이한 제2 숫자(예컨대, '0')을 추가로 표현하도록 구성된다.However, it is also possible to configure it to separate the note and comma beats by the following method. In this case, the note rhythm further expresses a first digit (e.g., '1') in place of the '10', and a comma rhythm represents a second digit (e.g., 0 ').

예컨대, '♪’는 음표 박자의 '1/2' 박자이므로 숫자‘12’로, ‘♩’는 음표 박자의 '1' 박자이므로 숫자‘14’로 변환할 수 있고, 쉼표 '1/2' 박자의 경우 '02'로 변환할 수 있다.For example, '♪' is the number '1' of the note rhythm, so it can be converted to the number '14', and ' In case of beat, it can be converted to '02'.

상기 경우, 인공 신경망은 단계 3의 학습 수행시 박자를 표현하는 숫자 중 십의 자리가 표현되어 있는 숫자(즉, 제1 숫자 또는 제2 숫자)를 통해 음표 박자와 쉼표 박자를 구분하며 학습을 진행할 수 있게 된다.In the above case, the artificial neural network distinguishes the note and comma beats from each other by a numeral (e.g., a first numeral or a second numeral) in which tens of the numeral expressing the beat are expressed during the learning in step 3, .

<단계 2(S20)>&Lt; Step 2 (S20)

본 발명의 단계 2(S20)은 전술한 단계 1의 변환 과정을 통해 숫자화된 음표, 쉼표 및 박자가 제1 학습곡의 시계열 순서에 따라 배열되는 시계열 데이터를 생성하는 단계이다.The step 2 (S20) of the present invention is a step of generating time series data in which numbered notes, a comma, and a beat are arranged according to the time series sequence of the first learning songs through the conversion process of the step 1 described above.

따라서, 단계 2의 과정을 완료하면, 학습할 곡의 음표들을 숫자로 변환한 시계열 데이터 하나(이하, '음표 시계열 데이터'라 칭함)와, 박자들을 숫자로 변환한 시계열 데이터 하나(이하, '박자 시계열 데이터'라 칭함)가 획득된다.Thus, when the process of step 2 is completed, one piece of time series data (hereinafter referred to as 'note time series data') in which notes of the piece to be learned is converted into numbers, and one piece of time series data Time series data &quot;) is obtained.

한편, 단계 2의 과정을 완료하면, 학습할 곡의 쉼표들을 숫자로 변환한 시계열 데이터(이하, '쉼표 시계열 데이터'라 칭함)도 획득되는데, 이 쉼표 시계열 데이터는 음표 시계열 데이터에 포함되게 구성하거나, 또는 음표/박자 시계열 데이터와 구분되는 별도의 시계열 데이터로 구비되게 구성할 수 있다.Meanwhile, when the process of step 2 is completed, time series data (hereinafter, referred to as 'time series data') obtained by converting the commas of the songs to be learned into numbers is obtained. The time series data of this comma is configured to be included in the time series data , Or time-series data separated from the note / beat time series data.

전술한 바와 같이 본 발명의 쉼표는 음표를 표현하는 숫자와 상이한 숫자로 표현되거나 음표의 최대 숫자보다 더 큰 숫자로 표현된다. 그런데, 하나의 인공 신경망이 음표와 쉼표를 함께 학습하게 되면 음표 공간이 왜곡되는 현상이 발생될 수 있고, 이는 음표 대비 큰 숫자로 표현되는 쉼표 숫자에 기인한다.As described above, the comma of the present invention is represented by a number different from the number representing the note or by a number larger than the maximum number of notes. However, when an artificial neural network learns a note and a comma together, a note space may be distorted, which is caused by a comma number expressed by a large number of notes compared to a note.

이러한 문제를 해결하기 위하여, 본 발명의 쉼표 시계열 데이터는 음표/박자 시계열 데이터와 분리 구성되고, 인공 신경망은 음표를 학습하는 음표용 인공 신경망과, 쉼표를 학습하는 쉼표용 인공 신경망이 상호 별도로 구성되는 것이 바람직하다.In order to solve this problem, the comma time series data of the present invention is separated from the note / beat time series data, and the artificial neural network is composed of artificial neural networks for notes learning notes and comma artificial neural networks for learning comma .

이에 대하여 보다 상세히 설명하면 다음과 같다. 인공 신경망에 음표와 쉼표를 같이 학습시키기 위해, 음표는 '1 ~ 36'까지의 숫자로 표시하고, 쉼표는 음표와 겹치지 않도록 음표보다 더 큰 숫자 예컨대 '50'으로 표시한 경우를 가정하자.This will be described in more detail as follows. Suppose that a note is represented by a number between 1 and 36, and a comma is represented by a number greater than a note, for example, '50' so that the note and the comma are learned together in the artificial neural network.

상기 경우, 학습곡에서 '1 ~ 36'까지의 음표 공간을 학습하던 인공 신경망은 쉼표의 발생으로 인하여 '50'이라는 큰 수의 공간으로 학습이 이루어진다. 이러한 학습은 음표 공간까지 왜곡하여 자동작곡 시 출력된 곡에 왜곡을 유발할 수 있다. 예를 들면 "10, 14, 10,..." 등으로 음표가 진행되다가 쉼표가 발생하면 "10, 14, 10, 50,..." 의 시계열 데이터가 되며 이는 "10, 14, 10" 시계열 데이터 값 뒤의 공간을 급작스럽게 큰 값으로 매핑하게 된다. In the above case, the artificial neural network that has learned the note space of '1 to 36' in the learning tune is learned by a large number of spaces of '50' due to the occurrence of the comma. Such learning may distort the musical notes output from the automatic musical composition by distorting to the note space. For example, if a note is progressed to "10, 14, 10, ..." and a comma is generated, it will be "10, 14, 10, 50, The space behind the time series data value is quickly mapped to a large value.

학습된 인공 신경망이 신규곡 작곡 시 "10, 14, 10"과 유사한 음표 공간 예컨대, "12, 15, 9"이 발생한 경우 그 다음 음표 공간은 큰 수로 매핑이 되어 '34'와 같은 큰 수를 출력하게 된다. 이 경우 "12, 15, 9, 34"와 같은 음표를 발생해서 급작스럽게 큰 음표가 나와 전체적인 멜로디 흐름에 왜곡을 발생시킨다. 예컨대, 도 4의 예시를 참조하면, 붉은색 동그라미에서 보이듯이 정상적으로 진행되던 곡이 갑작스럽게 높은 음이 나오는 경우를 볼 수 있다.When the learned artificial neural network generates a note space similar to "10, 14, 10" in the composition of a new song, for example, "12, 15, 9", the next note space is mapped to a larger number, . In this case, notes such as "12, 15, 9, 34" are generated, resulting in sudden large notes that cause distortion in the overall melody flow. For example, referring to the example of FIG. 4, it can be seen that a song that normally proceeds as shown in a red circle suddenly produces a high sound.

이런 문제를 완화하기 위하여, 음표의 가장 큰 숫자(예컨대 36)보다 하나 더 큰 숫자(예컨대 37)로 쉼표를 표시할 수 있다. 상기 경우 멜로디 음표공간의 왜곡이 줄어들지만 인공 신경망은 신규곡 작곡시 거의 대부분을 1~36 범위에서 출력하게 되어 쉼표가 거의 만들어지지 않는 또 다른 문제점이 발생할 수 있다.To alleviate this problem, a comma may be displayed with a number one greater than the largest number of notes (e.g., 36) (e.g., 37). In this case, distortion of the melody note space is reduced, but the artificial neural network outputs almost all of the range from 1 to 36 in the composition of a new song, so that another problem may occur that the comma is hardly produced.

이러한 제반 문제를 해결하기 위한 방법으로, 음표를 학습하는 인공 신경망과 쉼표의 위치를 학습하는 인공 신경망을 분리 구성할 수 있다.As a method to solve all of these problems, it is possible to separate artificial neural networks learning notes and artificial neural networks learning comma positions.

상기 경우, 하나의 인공 신경망(이하, '제1 인공 신경망'이라 함)은 음표 시계열 데이터를 이용하여 음표를 학습하고, 또 다른 하나의 인공 신경망(이하, '쉼표용 인공 신경망'이라 함)은 쉼표 정보를 갖는 시계열 데이터를 이용하여 쉼표의 위치를 학습하게 된다.In this case, one artificial neural network (hereinafter, referred to as 'first artificial neural network') learns notes using note time series data, and another artificial neural network (hereinafter referred to as 'comma artificial neural network' The position of the comma is learned using the time series data having the comma information.

그리고, 제1 인공 신경망이 신규곡을 생성하는 과정에서 학습된 쉼표용 인공 신경망이 쉼표를 출력하게 되면, 상기 출력 위치에 쉼표가 존재하는 것으로 처리하게 된다. 만약, 상기 쉼표 출력 위치에, 제1 인공 신경망에 의해 출력된 음표가 기존재할 경우, 해당 음표를 쉼표로 대체하도록 구성된다.If the comma artificial neural network learned in the process of generating the new music by the first artificial neural network outputs a comma, it is processed as if there is a comma at the output position. If the note output by the first artificial neural network exists at the comma output position, the note is configured to replace the note with a comma.

예를 들어, 쉼표용 인공 신경망을 학습시키기 위해 사용되는 시계열 데이터의 경우, 음표를 표현하는 숫자 대비 더 큰 값(예컨대, '50')으로 표현되는 쉼표 정보가 포함될 수 있는데, 상기 경우 쉼표용 인공 신경망이 음표의 최대값(예컨대, '36')보다 큰 값을 출력하면 그 위치는 쉼표가 있는 것으로 처리되고, 이때의 제1 인공 신경망의 출력(즉, 음표)은 무시된다.For example, in the case of the time series data used for learning the artificial neural network for the comma, the comma information represented by a larger value (for example, '50') than the number representing the note may be included. In this case, If the neural network outputs a value greater than the maximum value of the note (for example, '36'), the position is treated as having a comma, and the output of the first artificial neural network at this time is ignored.

상기 예시는 쉼표를 표시하는 숫자로 '50'을 입력하였는데, 이 값을 더 크게 하면 쉼표가 더 자주 발생할 수 있다. 즉, 인공 신경망이 쉼표를 출력하는 빈도는 상기 쉼표를 나타내는 숫자의 크기에 의존하고, 따라서 쉼표의 발생 빈도는 쉼표를 표시하는 숫자의 크기를 통해 조절 가능하다.In the above example, '50' is input as a numeral indicating a comma. If this value is made larger, a comma may occur more frequently. That is, the frequency with which the artificial neural network outputs a comma depends on the size of the number indicating the comma, and thus the occurrence frequency of the comma is adjustable through the size of the number indicating the comma.

전술한 바와 같이, 인공 신경망을 제1 인공 신경망과 쉼표용 인공신경망으로 분리 구성할 경우, 제1 인공 신경망은 쉼표 정보가 제거된 시계열 데이터를 이용하여 학습을 수행하도록 구성된다.As described above, when the artificial neural network is divided into the first artificial neural network and the comma artificial neural network, the first artificial neural network is configured to perform learning using time series data from which the comma information is removed.

즉, 제1 인공 신경망이 학습할 곡을 구성하는 다수의 음표 및 쉼표에 있어서 쉼표를 제거하고, 이 쉼표가 빠진 위치에는 해당 쉼표 위치에 바로 앞서는 음표와 동일한 값을 넣어줄 수 있다. 만약 바로 앞서는 음표가 없는 경우에는 바로 뒤에 있는 음표와 동일한 숫자를 넣어줄 수 있다.That is, the first artificial neural network can remove a comma in a plurality of notes and a comma constituting a song to be learned, and put the same value as a note immediately preceding the comma position in a position where the comma is omitted. If there is no preceding note, you can insert the same number as the note immediately after it.

이와 같은 방식으로, 음표만으로 구성된 시계열 데이터를 구성하여 제1 인공 신경망에게 음표를 학습시키고, 음표와 쉼표로 이루어진 시계열 데이터를 이용하여 쉼표용 인공신경망에게 쉼표의 위치를 학습시키게 된다.In this way, time series data composed only of notes is constructed to learn the notes to the first artificial neural network, and the position of the comma is learned to the comma artificial neural network using the time series data composed of notes and comma.

전술한 바와 같이, 쉼표의 위치만을 학습하는 인공 신경망을 별도 구성하여 곡을 작곡하면, 갑작스럽게 튀는 음이 나와 전체적인 멜로디 흐름을 왜곡시키는 경우를 방지할 수 있게 된다.As described above, when a music piece is composed separately from an artificial neural network that learns only the position of a comma, it is possible to prevent a sudden jumping sound from distorting the overall melody flow.

한편, 음표 및 박자에 대한 시계열 데이터 역시 상호 분리 구성할 수 있는데, 상기 경우 인공 신경망은 음표용 인공 신경망과 박자용 인공 신경망으로 분리 구성될 수 있다.Meanwhile, the time series data of the notes and the beat may be separated from each other. In this case, the artificial neural network may be divided into artificial neural networks for notes and artificial neural networks for beats.

음표용 인공 신경망은 음표 시계열 데이터를 이용하여 학습을 수행한 후 신규곡의 음표(즉, 음의 높이)를 생성하고, 박자용 인공 신경망은 박자 시계열 데이터를 이용하여 학습을 수행한 후 신규곡의 박자(즉, 음의 길이)를 생성하도록 구성된다.The artificial neural network for notes uses the time series data of notes to perform the learning and then generates the notes of the new music (that is, the pitch of the sound). The beat artificial neural network performs learning using time series data, (I.e., the negative length).

참고로, 상기에서는 음표 시계열 데이터와 박자 시계열 데이터를 두 개의 인공 신경망에 각각 학습시키도록 구성하였으나, 필요시 음표 및 박자 시계열 데이터를 합하여 하나의 인공 신경망으로 학습하도록 구성할 수도 있음은 물론이다.For example, in the above description, the note time series data and the beat time series data are configured to be respectively learned by two artificial neural networks. However, it is needless to say that the artificial neural network may be configured to learn notes and time series data when necessary.

도 2는 본 발명의 제1 학습곡의 일 례로서, '가수 티아라'의 'Roly-Poly'라는 곡의 일부 악보이다. 이 곡은 최저음표 ‘2옥타브 라’부터 최고음표 ‘4옥타브 미’까지의 음표 범위 안에 있다. 'Roly-Poly'의 메인 악보를 기준으로 합성음이 있을 때는 대표음 하나로 숫자화 하였다. 도 2 곡의 예를 들어 시계열 데이터 변환을 설명하면 다음과 같다. 먼저 음표는 [15 18 18 18 18 17 15 18 18 18 18 17] 의 음표 시계열 데이터로 변환될 수 있고, 박자는 [2 2 2 2 4 4 2 2 2 2 4 14] 의 박자 시계열 데이터로 변환될 수 있다. 도돌이표까지 포함하여 변환하면 음표와 쉼표를 포함하여 총 360개의 시계열 데이터가 생성된다.2 is an example of the first learning song of the present invention, and is a part of the score of the song 'Roly-Poly' of 'Singer Tiara'. This song is within the note range from the lowest note '2 octaves' to the highest note '4 octaves less'. When there is a synthesized note based on the main score of 'Roly-Poly', it is numbered as one representative sound. A time series data conversion example of the two songs will be described as follows. The notes can first be converted into musical time series data of [15 18 18 18 18 17 15 18 18 18 18 17], and the tempo can be converted into beat time series data of [2 2 2 4 4 2 2 2 2 4 14] . When converted to including a traversal, a total of 360 time series data is generated including notes and commas.

<단계 2-1(S21)>&Lt; Step 2-1 (S21) >

인공 신경망은 단계 2(S20)를 통해 생성된 음표, 박자 및 쉼표 시계열 데이터를 기반으로 학습을 수행하게 되는데, 이와 같은 학습 수행 전에 시계열데이터는 학습을 위하여 결정된 인공 신경망의 구조에 맞게 다수 개의 학습 데이터로 변환되어야 한다.The artificial neural network performs learning based on the note, beat and comma time series data generated in step 2 (S20). Before such learning, the time series data includes a plurality of learning data Lt; / RTI &gt;

학습 데이터를 생성하는 패턴은 다음과 같다. 시계열 데이터 입출력 학습패턴은 다음과 같다.‘첫 번째’부터 ‘N 번째’까지의 시계열 데이터를 상기 인공 신경망에 입력하여 ‘N+1 번째’ 시계열 데이터를 출력함으로써 제1 학습데이터를 생성한다.The pattern for generating learning data is as follows. The time series data input / output learning pattern is as follows. First time series data from 'first' to 'N' is input to the artificial neural network and 'N + 1' th time series data is output to generate first learning data.

이어서,‘두 번째’부터 상기 ‘N+1 번째’까지의 시계열 데이터를 상기 인공 신경망에 입력하여 ‘N+2 번째’ 시계열 데이터를 출력함으로써 제2 학습데이터를 생성한다.Then, the second learning data is generated by inputting the time series data from the second time to the (N + 1) th time into the artificial neural network and outputting the (N + 2) th time series data.

이어서,‘세 번째’부터 상기 ‘N+2’번째까지의 시계열 데이터를 상기 인공 신경망에 입력하여 ‘N+3’번째 시계열 데이터를 출력함으로써 제3 학습데이터를 생성한다.Then, the third learning data is generated by inputting the time series data from the 'third' to the 'N + 2' th to the artificial neural network and outputting 'N + 3' th time series data.

그리고,‘n 번째’부터 ‘N+(n-1)’번째까지의 시계열 데이터를 상기 인공 신경망에 입력하여 ‘N+n’번째 시계열 데이터를 출력함으로써 제n 학습데이터를 생성하는 상기 패턴을 반복함으로써 다수 개의 학습 데이터가 발생하게 된다.Then, by repeating the above-mentioned pattern for generating the n-th learning data by inputting the time series data from the n-th to the N + (n-1) th to the artificial neural network and outputting the N + A plurality of learning data is generated.

도 3은 본 발명에 따른 인공 신경망의 학습 패턴, 이에 따른 학습 데이터 생성 및 그 학습 과정을 보여주는 일 례이다. 도 3을 참조하여, 시계열 데이터를 통해 다수 개의 학습 데이터를 생성하는 방법에 대하여 상세히 설명하도록 한다FIG. 3 is an example showing a learning pattern of the artificial neural network according to the present invention, and a process of generating and learning the learning data. Referring to FIG. 3, a method of generating a plurality of learning data through time series data will be described in detail

도 3의 일 실시예에서는 학습 데이터 생성하고 이를 기반으로 음표, 쉼표 및 박자를 학습하는 용도로 두 개의 인공 신경망을 채용하였고, 구체적으로 인공 신경망은 하나의 출력을 갖는 앞먹임 신경망(FNN: Feedforward Neural Network)으로 구성하였다.In the embodiment of FIG. 3, two artificial neural networks are used to generate learning data and to learn notes, commas, and beats based on the data. Specifically, the artificial neural network includes a feedforward neural network (FNN) Network).

신경망의 구조는 두 개의 신경망 모두 동일하게 10 개의 입력 노드와 20 개의 중간 노드 그리고 1 개의 출력 노드를 갖도록 구성하였다. 학습할 곡이 표현된 시계열 데이터를 이용하여 입출력 학습패턴을 만들고, 이의 반복을 통해 다수 개의 학습 데이터(TD: Training Data)를 생성할 수 있게 된다.The structure of the neural network is configured to have 10 input nodes, 20 intermediate nodes, and 1 output node in both neural networks. An input / output learning pattern is created using the time series data representing the tune to be learned, and a plurality of training data (TD: Training Data) can be generated through iteration.

구체적으로, 학습패턴은 첫 번째부터 열 번째까지의 시계열 데이터(#01 ~ #10)를 입력으로 했을 때 11 번째 시계열 데이터(#11)가 출력이 되는 첫 번째 학습패턴이 이루어짐으로써 제1 학습데이터(TD #1)가 생성된다.More specifically, when the first to tenth time series data (# 01 to # 10) are input, the learning pattern is the first learning pattern in which the 11th time series data (# 11) is output, (TD # 1) is generated.

두 번째 학습패턴은 첫 번째 학습패턴에 의해 생성된 제1 학습데이터 중 첫 번째 시계열 데이터를 제외하고, 두 번째부터 열한 번째까지의 시계열 데이터(#02 ~ #11)를 입력으로 하면 12 번째 시계열 데이터(#12)가 출력이 되어, 제2 학습데이터(TD #02)가 생성된다.In the second learning pattern, the first time-series data of the first learning data generated by the first learning pattern is excluded, and the second to the 11th time-series data (# 02 to # 11) (# 12) is output, and second learning data (TD # 02) is generated.

이와 같은 방식의 학습패턴을 반복 진행하면, 예컨대 100개의 시계열 데이터가 있는 곡에서 10개의 입력 노드를 갖는 신경망을 사용함으로써 총 90개의 학습 데이터가 발생하게 된다.When a learning pattern of this type is repeated, for example, a total of 90 learning data is generated by using a neural network having 10 input nodes in a song having 100 time series data.

상기에서는 자동 작곡을 위한 인공 신경망(즉, 제1 인공신경망, 쉼표용 인공신경망, 박자용 인공신경망 등)으로서 전방향 되먹임 인공신경망(Feedforward Aritificial Neural Networks)을 예로 들어 설명하였다. 전방향 되먹임 인공신경망은 앞서 설명한 바와 같이 학습데이터를 회귀적으로 구성하고 이렇게 구성된 학습데이터를 학습하도록 구성된다.In the above description, the feedforward artificial neural network is used as an artificial neural network for automatic composition (that is, a first artificial neural network, a comma artificial neural network, a beat artificial neural network, etc.). The omnidirectional feedback artificial neural network is constructed to regenerate learning data as described above and to learn learning data constructed as described above.

그런데, 이러한 전방향 되먹임 인공신경망 대신 시계열데이터를 직접 학습하는 순환신경망(Recurrent Neural Networks)을 사용할 수도 있음은 물론이다. 순환신경망을 사용하면 학습데이터를 회귀적으로 구성할 필요 없이 시계열 데이터를 직접 학습할 수 있다. 특히 최근에 딥러닝에서 많이 사용하는 LSTM(Long Short-Term Memory) 순환신경망을 사용하면 학습곡이 긴 경우에도 앞쪽에 시계열 데이터의 특성까지 포함하여 뒷부분에 반영할 수 있는 장점이 있다. 자동작곡의 단계에서 기존의 곡을 학습할 때 이러한 순환신경망을 사용해서 학습하고 작곡을 할 수 있음은 물론이며 순환신경망을 사용해도 다른 과정을 그대로 적용할 수 있다.Needless to say, it is also possible to use Recurrent Neural Networks that directly learn time series data instead of such forward feedback artificial neural networks. Using the circular neural network, it is possible to directly learn the time series data without having to construct the learning data regressively. Especially, when LSTM (Long Short-Term Memory) loop neural network, which is widely used in deep learning recently, is used, it is advantageous to include the characteristics of time series data in the front part even in the case of long learning songs. In learning the existing music at the stage of automatic composition, it is possible to learn and compose by using such a circular neural network, and it is possible to apply other processes without using the circular neural network.

<단계 3(S30)>&Lt; Step 3 (S30) >

본 발명의 단계 3(S30)은 시계열 데이터를 이용하여 인공 신경망을 학습시키는 단계이다. 구체적으로, 전술한 단계 2-1(S21)을 수행하면, 각 학습패턴 단계에서 학습 데이터(TD #1, TD #2, ..TD #N)가 생성되는데, 이렇게 각 학습패턴 단계에서 생성되는 각 학습 데이터를 인공 신경망에 가하여 학습을 수행해 나간다.Step 3 (S30) of the present invention is a step of learning an artificial neural network using time series data. Specifically, when the above-described step 2-1 (S21) is performed, learning data TD # 1, TD # 2, .., TD #N are generated in each learning pattern step. Each learning data is applied to an artificial neural network to perform learning.

도 3 실시예의 경우, 오류 역전파 알고리즘을 사용하여 학습을 수행하도록 구성되고, 최대 학습 횟수는 1,000,000번을 넘지 않도록 설정하였다. 그러나 그 이전에 학습이 더 이상 일어나지 않거나 총 학습 오류치가 특정치 이하로 떨어지는 등의 종료 조건이 만족되면 학습을 종료할 수 있다.In the case of FIG. 3, the learning is performed using an error back propagation algorithm, and the maximum learning number is set not to exceed 1,000,000 times. However, the learning can be terminated when the termination condition such as no more learning before that or the total learning error value falls below a specific value is satisfied.

인공 신경망은 적절한 구조와 학습률 그리고 충분한 학습 시간만 주어지면 입출력으로 제공되는 학습 데이터를 학습할 수 있다. 그런데, 학습데이터에 학습할 수 없는 데이터가 있는 경우 충분한 시간의 학습 과정을 진행(예컨대, 최대 학습 횟수 도달)해도 제대로 학습이 수행되지 못하는 문제가 발생할 수 있다.Artificial neural networks can learn learning data provided by input / output given adequate structure and learning rate and sufficient learning time. However, if there is data that can not be learned in the learning data, there may arise a problem that proper learning can not be performed even if a sufficient time learning process is performed (for example, the maximum number of learning times is reached).

여기서, 학습할 수 없는 데이터라는 것은 같은 입력에 대하여 다른 출력을 내는 학습데이터가 주어지는 경우이다. 이 경우 신경망은 두 출력 중에 어느 쪽으로 출력하도록 학습할지를 결정하지 못하고 한쪽으로 치우치게 학습하거나 두 출력 사이를 왔다갔다 학습할 수가 있으며, 이에 따라 많은 학습시간이 주어져도 특정치 이하로 오류를 줄일 수가 없게 된다. Here, the data that can not be learned is a case in which learning data giving different outputs for the same input is given. In this case, the neural network can not determine which of the two outputs to learn to output, but can learn to shift to one side or back and forth between the two outputs, so that even if a lot of learning time is given, .

이는, 일반적인 학습 데이터와는 다르게 곡을 변환한 시계열 학습데이터에는 곡의 특성 상 반복되는 시계열 데이터가 많이 발생함에 기인한다. 즉, 곡에는 일반적으로 반복되는 멜로디가 많고 특히 되돌이표로 인한 반복에서는 완전히 동일한 멜로디가 몇 번에 걸쳐서 반복되는 문제가 있다. 이러한 반복 멜로디가 문제가 되는 이유는 신경망 학습데이터에서 동일한 입력 측 데이터에 대하여 다른 출력을 내는 학습데이터가 많이 발생하기 때문이다.This is because the time series learning data obtained by transforming the music differently from the general learning data is caused by the occurrence of the time series data repeated in the characteristics of the music. In other words, there are many melodies that are generally repeated in a song, and in particular, a repeat melody is repeated several times over a repeat. The reason why such a repetitive melody is a problem is that a lot of learning data for generating different outputs for the same input side data in the neural network learning data occur.

상기와 같은 경우, 신경망은 동일한 입력에 대하여 여러 가지의 다른 출력을 학습해야하기 때문에 특정 값으로 수렴하지 못하고 학습이 왔다 갔다 하게 되며 결국 아무리 많은 학습 횟수를 수행해도 전체 학습 오류가 감소되지 않는 문제점이 발생한다.In such a case, the neural network needs to learn various other outputs for the same input, so it can not converge to a specific value and the learning moves back and forth. As a result, even if the number of learning is performed, Occurs.

<단계 2-2(S22)>&Lt; Step 2-2 (S22) >

본 발명의 단계 2-2(S22)는 전술한 바와 같이 곡의 특성 상 반복되는 시계열 데이터가 많이 발생함에 따른 문제를 해결하기 위한 것으로서, 인공 신경망의 학습시, 해당 학습데이터를 구성하는 시계열 데이터에 곡의 마디를 구분하기 위한 정보(이하, ‘마디 구분 정보’라 칭함)를 추가적으로 제공해주는 단계이다.Step 2-2 (S22) of the present invention is for solving the problem of occurrence of a lot of repeated time series data due to the characteristics of the music as described above. In learning of the artificial neural network, time series data (Hereinafter, referred to as &quot; segment classification information &quot;) for identifying a segment of a song.

환언하면, '마디 구분 정보'는 인공 신경망의 학습 시 같은 음표나 박자 마디 뒤에 오는 다른 음표나 박자를 구분해 주기 위해 음표나 박자와 같이 넣어 주는 정보를 의미한다.In other words, 'segment classification information' means information to be put in the same way as notes or beats in order to distinguish other notes or beats following the same note or beat at the learning of the artificial neural network.

이러한 마디 구분 정보는 마디별로 상이한 숫자로 표현될 수 있고, 인공 신경망이 각 학습데이터를 학습시, 해당 학습데이터를 구성하는 시계열 데이터에 추가적으로 입력될 수 있다.The node classification information may be expressed by a different number for each node, and the artificial neural network may be further input to the time series data constituting the learning data at the time of learning each learning data.

음표와 박자로만 이루어진 시계열 데이터에 현재 학습하고 있는 시계열 데이터의 마디 구분 정보를 추가적으로 넣어줌으로써 동일한 음표나 박자를 갖는 학습 데이터에서도 이 마디 구분 정보를 이용하여 다른 출력을 학습할 수 있게 된다.By additionally adding the nodal information of the time series data currently being learned to the time series data consisting of only the notes and the beats, it is possible to learn other outputs using the nodal classification information even in the learning data having the same note or beat.

이와 같이, 마디를 구분하기 위해서는 최소한 한 개 이상의 마디 구분 정보를 넣어주어야 한다. 다만, 마디 구분으로 늘어난 입력 때문에 전체적으로 하나의 학습데이터의 학습에 걸리는 시간은 늘어난다. 그러므로 무작정 마디 구분 정보의 개수를 늘리면 안 된다.In this way, at least one or more clause classification information must be provided to distinguish the nodes. However, because of the increased input to the nodal segment, the learning time of one learning data as a whole increases. Therefore, do not increase the number of section information.

마디 구분을 확실하게 하기 위해서는 40개 이상의 마디 구분 정보를 입력하는 것이 바람직하나, 곡의 반복성이 얼마나 있는지와 마디 구분 정보 사이의 유사도가 얼마나 없는지 등에 따라 그 개수는 달라질 수 있다.Although it is desirable to input more than 40 nodal information for ensuring the nodal classification, the number of nodal information may vary depending on the repeatability of the nodal and the degree of similarity between the nodal information.

인공 신경망은 단계 2-2를 통해 추가 입력되는 마디 구분 정보를 기반으로 학습하기 때문에 학습할 곡의 시계열 데이터가 동일하여도 입력을 구분할 수 있다. 이러한 마디 구분 정보 입력은 특정한 값을 가질 필요는 없으며 마디별로 다른 입력(즉, 마디별로 상이한 숫자)만 넣어주면 된다. 예컨대, 40 개의 숫자를 무작위로 만들어서 마디 구분 정보 입력으로 사용할 수 있다.Since the artificial neural network learns based on the nodal information to be input through step 2-2, the input can be classified even if the time series data of the music to be learned is the same. It is not necessary to have a specific value for the input of the nodal classification information, but it is only necessary to input different inputs (that is, different numbers for each node) for each node. For example, 40 numbers can be randomly generated and used as input for sorting information.

결국, 인공신경망이 학습하는 학습 데이터를 중심으로 새로운 마디 구분 정보를 넣어주어 입출력 학습데이터가 같은 것이 발생하는 것을 방지할 수 있게 된다. 이러한 마디 구분 정보는 해당 학습 곡에 대한 마디 위치를 지정하는 효과도 갖는다. 즉, 두 곡을 학습할 때 두 곡의 마디 구분을 같게 넣어주기 때문에 마디별로 두 곡이 학습되는 효과를 줄 수 있게 된다.As a result, it is possible to prevent the occurrence of the same input / output learning data by inserting new node classification information around the learning data that the artificial neural network learns. This segmentation information also has the effect of specifying the position of the segment for the corresponding learning song. In other words, when two songs are learned, the two songs are equally divided, so that two songs can be learned by each word.

한편, 인공 신경망은 학습된 곡에 따라 멜로디를 출력하기 때문에 곡을 생성하는 과정에서 반복적인 멜로디 구성이 나오기 어렵다. 그런데 곡을 작곡함에 있어서 멜로디의 반복은 곡에 흥미를 더해주고 나아가 곡의 구성을 잡아주는 기능을 하게 된다. 따라서, 인공 신경망이 신규곡을 생성시 멜로디 진행에 반복을 줄 수 있도록 하는 방법이 필요하며 이는 전술한 마디 구분 정보를 통해 구현 가능하다.On the other hand, the artificial neural network outputs melody according to the learned music, so it is difficult to generate a repetitive melody composition in the process of generating the music. However, in composing a song, the melody repetition adds to the interest of the song and further functions to capture the composition of the song. Therefore, a method is needed to allow the artificial neural network to repeat the progress of the melody when generating a new song, which can be implemented through the above-described segment classification information.

즉, 전술한 마디 구분 효과는 새로운 곡을 출력할 때 반복되는 마디를 생성하기 위해서 사용될 수 있는데, 이는 마디 구분 정보를 적절히 배치하는 것을 통하여 출력 곡의 반복성을 조절할 수 있다.That is, the above-mentioned segmentation effect can be used to generate repeated segments when outputting a new song, which can control the repeatability of the output song by appropriately arranging the segmentation information.

<단계 4(S40), 단계 5(S50)>&Lt; Step 4 (S40), Step 5 (S50) >

본 발명의 단계 4(S40)은 새로운 곡의 도입부를 작곡하여 이의 시계열 데이터를 인공 신경망에 입력하는 단계이다.Step 4 (S40) of the present invention is a step of composing a lead-in portion of a new piece of music and inputting the time-series data thereof into the artificial neural network.

새로운 곡을 작곡하기 위하여 상기 새로운 곡(즉, 인공 신경망이 작곡할 곡)의 일부(이하, ‘도입곡’라 칭함)를 사람이 작곡한 후 이를 시계열 데이터로 변환하여 인공 신경망에 입력하면, 학습된 인공 신경망은 입력된 도입곡의 시계열 데이터를 기반으로 하여 새로운 곡을 출력(S50)하게 된다. 여기서, 도입곡의 시계열 데이터란 해당 도입곡을 구성하는 음표와 박자가 숫자 형태로 변환된 것을 지칭한다.When a person composes a new piece of music (that is, a piece of music to be composed by the artificial neural network) (hereinafter, referred to as an "introduced piece") to convert the time series data into time series data and inputs it into the artificial neural network, The artificial neural network outputs a new song based on the time series data of the input introduction song (S50). Here, the time series data of the introduced tune refers to the notes and the tempo constituting the introduced tune are converted into numerical form.

만약, 입력된 도입곡이 새로운 곡의 시작부라면, 인공 신경망은 입력된 상기 도입곡의 시계열 데이터를 시작 멜로디로 하여 이에 이어지는 새로운 곡을 출력(S50)하게 된다.If the input tune is the beginning of a new tune, the artificial neural network outputs the new tune following the input tune series data as a start melody (S50).

인공신경망이 충분히 학습된 경우 10개의 초기 음표, 쉼표 및 박자를 학습한 곡과 동일하게 넣어주면 나머지 음표, 쉼표 및 박자를 원래의 학습한 곡과 동일하게 출력한다. 10개의 초기 음표, 쉼표 및 박자를 학습곡과 다르게 새로 작곡하여 도입부로 넣어주면 나머지 음표와 쉼표 그리고 박자를 자동 생성해준다. 이를 통하여 새로운 멜로디를 얻을 수 있고, 이렇게 작곡된 신규 곡은 학습한 곡과 유사한 멜로디 느낌을 가지나 다른 멜로디를 생성한다.If the artificial neural network is sufficiently learned, put 10 initial notes, a comma, and a beat in the same way as the learned song, and output the remaining notes, comma, and beat in the same way as the original learned song. Compose 10 new initials, comma, and beat differently from the learning song and insert it into the beginning, automatically generating the remaining notes, commas, and beats. Thus, a new melody can be obtained, and a new composition thus produced has a similar melody feeling to the learned song, but generates another melody.

그런데, 이와 같이 인공 신경망이 새로 생성하는 곡은 신경망에 학습된 것을 바탕으로 하기 때문에 음악이론(예컨대, 박자, 화성 등)에 맞지 않는 결과를 생성할 수 있다. 그러므로 신경망이 만들어낸 멜로디는 추가적으로 음악이론에 맞게끔 후처리 하는 작업이 필요하다.However, since a music piece to be newly generated by the artificial neural network is based on the learning of the neural network, it is possible to generate a result that is incompatible with the music theory (for example, beat, Mars, etc.). Therefore, the melody produced by the neural network needs to be further processed in accordance with the music theory.

<단계 6(S60)>&Lt; Step 6 (S60)

본 발명의 단계 6(S60)은 단계 5(S50)을 통해 생성된 신규 곡이 음악이론에 맞도록 이를 후처리하는 단계로서, 세부적으로는 박자 후처리 단계와 화성 후처리 단계로 구분된다.Step 6 (S60) of the present invention is a step of post-processing the new music created through step 5 (S50) so as to conform to the music theory, and more specifically, divided into a post-beating process and a post-conversion process.

본 발명에 따른 후처리 단계에서 먼저 후처리 해야 하는 것은 박자로서, 마디별로 갖춘마디를 만들기 위해 박자를 수정해야 한다. 박자 후처리는 인공신경망이 출력한 음표의 박자가 갖춘마디를 형성하지 못할 때 갖춘마디로 보정해주는 작업이다. In the post-processing step according to the present invention, the first thing to be post-processed is the beat, and the beat must be modified to produce a measure for each measure. The post-beat processing is an operation that corrects the beat when the note of the note output by the artificial neural network fails to form a predetermined measure.

도 5는 본 발명에 따른 박자 후처리의 처리 흐름을 도시한 순서도이다.이하에서는 도 5를 참조하여 박자 후처리 방법의 구체적 알고리즘에 대하여 설명하도록 한다.5 is a flow chart showing a process flow of the post-tone post-processing according to the present invention. A detailed algorithm of the post-tone post-processing method will be described below with reference to Fig.

본 발명의 박자 후처리 단계는 신규곡에 있어서 갖춘마디 대비 박자가 초과하는 마디(이하, '초과마디')가 존재할 경우 상기 초과마디를 갖춘마디로 보정하는 단계로서, 세부적으로 제1 처리(S61), 제2 처리(S63) 및 제3 처리(S65) 중에서 선택된 어느 하나에 의해 이루어지는 것을 특징으로 한다.The beat-post-processing step of the present invention is a step of correcting a beat exceeding a beat (hereinafter referred to as an &quot; excess beat &quot; ), A second process (S63), and a third process (S65).

박자 후처리 단계의 제1 처리(S61)는, 초과마디를 구성하는 각 음표의 박자들 중 어느 하나의 박자에서, 갖춘마디 대비 상기 초과마디가 초과하는 박자(이하, 'd') 만큼을 빼는 제1a 단계를 포함한다.The first processing (S61) of the beat-post-processing step is a step of subtracting a beat (hereinafter, referred to as 'd') exceeding the excess node from a beat provided in any beat of each note constituting the excess node Step 1a.

바람직한 실시예에 따르면, 제1a 단계는 박자 후처리 대상 마디(즉, 갖춘마디 대비 박자가 초과하는 마디)를 구성하는 각 음표의 박자에 있어서, 갖춘마디 박자를 기준으로 이보다 넘치는 박자(이하, 'd')만큼을 가장 작은 박자(이하, '제1 박자'라 함)에서 빼도록 구성된다.According to a preferred embodiment, the first step is a step (step &lt; RTI ID = 0.0 &gt; a &quot; step &quot;) & d ') is subtracted from the smallest beat (hereinafter, referred to as' first beat').

그리고, 상기 제1 박자에서 'd'만큼 뺀 박자가 사용 박자 그룹 내에 존재하는지 여부를 판별하여, 그 판별 결과 존재하면 해당 초과마디에 대한 박자 후처리를 완료하고, 존재하지 않으면 상기 제1 박자 대비 그 다음 작은 박자(이하, '제2 박자'라 함)에서 상기 'd' 만큼을 빼도록 구성된다.Then, it is determined whether or not a beat subtracted by 'd' from the first beat exists in the beat group, and if there is a result of the discrimination, Quot; d &quot; in the next small pitch (hereinafter referred to as 'second pitch').

그리고, 상기 제2 박자에서 'd'만큼 뺀 박자가 사용 박자 그룹 내에 존재하는지 여부를 판별(S62)하여, 그 판별 결과 존재하면 해당 초과마디에 대한 박자 후처리를 완료하고, 존재하지 않으면 상기 제2 박자 대비 그 다음 작은 박자에 대하여 동일한 과정을 수행하게 된다.In step S62, it is determined whether or not the beats subtracted by 'd' from the second beat are present in the beat group. If there is a result of the discrimination, The same process is performed for the next smaller beat compared to the second beat.

도 6은 본 발명에 따른 박자 후처리의 제1 처리의 일 례이다. 도 6에서 상부에 있는 악보는 한 마디가 20박인 초과마디로서 갖춘마디인 16박 대비 4박자를 초과하고 있다. 상기 경우 제1 처리 방법에 따라 가장 작은 박자에서 큰 박자 순으로 초과박자('d'=4)를 뺄 경우 갖춘마디로 보정이 가능한지 판별하게 된다.6 is an example of the first process of the post-tone processing according to the present invention. In Fig. 6, the uppermost score exceeds four beats compared to 16 nights, which is a node with one bar exceeding 20 bars. In this case, when the excess beat ('d' = 4) is subtracted from the smallest beat to the largest beat in accordance with the first processing method, it is determined whether correction is possible with the prepared bar.

도 6 예시의 경우, 가장 작은 박자(즉, 2박자 음표 '♪') 및 그 다음 작은 박자(즉, 4박자 음표 '♩') 에서 초과박자('d'=4)를 빼더라도 갖춘마디로 보정할 수 없게 된다. 그런데 가장 큰 박자(즉, 8박자 음표)에서 '4'를 빼면, 보정 전 박자 크기 순서를 유지하면서 동시에 사용 박자 그룹을 만족시키는 박자 후처리가 가능하게 된다(S66).In the example of Figure 6, even though the excess beat (d '= 4) is subtracted from the smallest beat (i.e., the two-beat note' ♪ ') and the next small beat (ie, the four- It can not be corrected. However, if '4' is subtracted from the largest beat (ie, the eight beat note), it is possible to perform the beat after-beat process satisfying the beat group at the same time while maintaining the order of the beats before correction (S66).

만약 박자 후처리 대상 마디를 구성하는 모든 음표의 박자에 대해 전술한 제1 처리 방식을 수행하여도 갖춘마디를 만들 수 없게 되면 후술할 제2 처리를 수행한다.If it is not possible to make a measure even if the first processing method described above is performed on the beats of all notes constituting the subject to be subjected to the after-beat processing, the second processing to be described later is performed.

참고로, 상기 '사용 박자 그룹'이란 본 발명의 인공 신경망에 의한 자동 작곡시, 인공 신경망이 사용 가능한 박자(즉, 음표의 길이)의 종류를 지칭하며, 이러한 사용 박자 그룹을 구성하는 박자의 종류는 사용자가 설정할 수 있다.For reference, the 'used beat group' refers to the type of beat (that is, the length of a note) that can be used by the artificial neural network when automatic composing by the artificial neural network of the present invention, Can be set by the user.

예컨대, 16분 음표를 기준으로 설정하면, 사용 박자 그룹은 "1,2,3, 4,6,8,12,16" 박자들로 이루어진 그룹(이하, '제1 그룹')으로 지정할 수 있다.For example, if the sixteenth note is set as a reference, the used tempo group can be designated as a group of "1,2,3,4,6,8,12,16" beats (hereinafter referred to as "first group") .

예를 들어, 해당 곡이 4/4 박자이고, 사용 박자 그룹이 상기 제1 그룹과 같을 경우, 그리고 후처리 대상 마디의 박자의 합이 18박자인 경우, 가장 작은 박자에서 2박자를 빼는 방법으로 후처리하되, 상기 '2박자'를 뺀 상기 가장 작은 박자가 상기 제1 그룹 중에 존재한다면 해당 마디에 대한 박자 후처리가 완료되고, 만약 존재하지 않는다면 전술한 바와 같이 그 다음 작은 박자에 대해 동일한 방식으로 박자 후처리를 진행하게 되며, 모든 박자에 대해 '2박자' 뺄셈을 수행하여도 상기 제1 그룹을 만족하는 박자가 없게 되면 후술할 제2 처리를 수행하게 된다.For example, if the song is 4/4, the used tempo group is the same as the first group, and the sum of the timings of the subject-to-be-processed is 18, subtract 2 from the smallest If the smallest beat obtained by subtracting the 'two beats' is present in the first group, the after-beat process for the corresponding beat is completed. If not present, , And if the beat satisfying the first group is absent even if the 'two beats' subtraction is performed on all the beats, the second process to be described later is performed.

박자 후처리 단계의 제2 처리(S63)는 초과마디를 구성하는 각 음표의 박자들 중 어느 하나의 박자에서 'd1'(여기서, d1<d) 박자만큼을 빼고, 또 다른 하나의 박자에서 'd-d1' 박자만큼을 빼도록 구성된다. 여기서, 상기 'd'는 갖춘마디 대비 초과마디가 초과하는 박자를 지칭한다.Subtracts the second process (S63) is as long as one of the beat of each musical note constituting the excess bars in any of the time 'd 1' (wherein, d 1 <d) time after the beat treatment step, and another one of the time Quot; dd 1 &quot; Here, 'd' refers to a beat exceeding an exceeding node in terms of a provisional node.

그리고, 상기 'd1' 및 d-d1' 박자만큼 뺀 박자가 사용 박자 그룹 내에 존재하는지 여부를 판별(S64)하여, 그 판별 결과 존재하면 해당 초과마디에 대한 박자 후처리를 완료하고, 존재하지 않으면 후술할 제3 처리를 수행하게 된다.And, if said 'd 1' and dd 1 'to a minus as beat time used to determine (S64) whether or not present in the time group, if the determination result exists to complete the post-processing time for the excess bars, and not present A third process to be described later is performed.

도 7은 본 발명에 따른 박자 후처리의 제2 처리의 일 례이다. 도 7에서 상부에 있는 악보는 한 마디가 19박인 초과마디로서 갖춘마디인 16박 대비 3박자를 초과하고 있다. 도 7 예시의 경우 제1 처리에 의해서는 박자 후처리가 불가능하고, 따라서 제2 처리 방법에 따라 두 개 음표의 박자에서 16을 넘어가는 수만큼을 빼서 만족되는 경우가 있는지 판별하게 된다.Fig. 7 shows an example of the second process of the post-tone post-processing according to the present invention. In FIG. 7, the uppermost score of the score exceeds three beats compared to 16 nights, which is a bar with one bar exceeding 19 bars. In the case of Fig. 7, it is impossible to perform the post-processing after the first processing. Therefore, the number of times exceeding 16 is subtracted from the beats of the two notes according to the second processing method.

도 7 예시의 경우, 초과마디의 음표박자 "3, 8, 8"의 총합이 19로서 16보다 3(d)만큼 크므로 '3'을 빼주어야 하지만 "3, 8, 8" 중 하나에서 빼는 방식(즉, 제1 처리)를 따를 경우 사용 박자 그룹을 만족하며 갖춘마디가 되는 경우가 없다. 참고로, 도 7 예시와 같이 16분 음표를 기준으로 박자를 설정하면, 상기 사용 박자 그룹은 [1,2,3,4,6,8,12,16] 박자들로 지정될 수 있다.In the example of FIG. 7, since the sum of the note pitches "3, 8, 8" in the excess section is 19, which is larger than 16 by 3 (d), it is necessary to subtract 3 from 3, but subtract from 3, Method (that is, the first process), there is no case where the measure group satisfies the use time group and does not become a measure. For reference, if the beat is set on the basis of the 16th note as in the example of FIG. 7, the beat group may be designated as [1,2,3,4,6,8,12,16] beats.

따라서, 상기 경우 두 개의 박자에서 빼주어서 만족하는 경우를 찾는 제2 처리를 수행하게 된다(S63). 즉, 3박자 음표에서 '1'(d1)'을 빼서 2박자 음표로 만들고, 8박자 음표에서 '2'(d-d1)를 빼서 6박자 음표로 만들면, 결과적으로 "2, 6, 8" 박자로 이루어진 갖춘마디로 보정되어 보정 전 박자 크기 순서를 유지하면서 동시에 사용 박자 그룹을 만족시키는 박자 후처리가 가능하게 된다(S66).Therefore, in the above case, the second process of subtracting from the two beats and finding a case of satisfying the condition is performed (S63). In other words, if you subtract '1' (d 1 ) from the triplet note to make it a two-beat note, subtract '2' (dd 1 ) from the eight- It is possible to perform the post-beating processing that satisfies the used beat group while maintaining the order of the beats before correction (S66).

만약 박자 후처리 대상 마디를 구성하는 모든 음표의 박자에 대해 전술한 제2 처리 방식을 수행하여도 갖춘마디를 만들 수 없게 되면 후술할 제3 처리를 수행한다.If it is not possible to make a measure even if the second processing method described above is performed on the beats of all notes constituting the subject to be subjected to the after-beat processing, the third processing to be described later is performed.

박자 후처리 단계의 제3 처리(S65)는 초과마디를 구성하는 각 음표의 박자들 중 어느 하나의 박자에서 'd2' 박자만큼을 더하고, 또 다른 하나의 박자에서 'd+d2' 박자만큼을 빼도록 구성된다. 여기서, 상기 'd'는 갖춘마디 대비 초과마디가 초과하는 박자를 지칭한다.The third process (S65) of the post-tone processing step is to add a 'd 2 ' beat number to any one of the beat of each note constituting the excess node, and to add 'd + d 2 ' . Here, 'd' refers to a beat exceeding an exceeding node in terms of a provisional node.

그리고, 'd2' 는 초과마디의 임의의 박자에 'd2' 박자만큼 더했을 때 사용 박자 그룹을 만족할 수 있는 값으로 구성되고, 'd+d2'는 초과마디의 임의의 박자에 'd+d2' 박자만큼 뺏을 때 사용 박자 그룹을 만족할 수 있는 값으로 구성된다.'D 2 ' is a value that satisfies the time signature group when a beat of 'd 2 ' is added to an arbitrary beat of an excess measure, and 'd + d 2 ' + d 2 'It is composed of the values that can satisfy the beat group when the beat is taken.

바람직한 실시예에 따르면, 제2 처리 및 제3 처리는 박자 후처리 대상 마디(즉, 초과마디)의 '박자 크기 순서'를 유지하면서 갖춘마디를 만들도록 구성된다. 여기서, 상기 '박자 크기 순서'는 수정된 박자 간의 크기가 동일한 경우에도 '박자 크기 순서'를 만족하는 것으로 처리하도록 구성된다.According to a preferred embodiment, the second processing and the third processing are configured to create a measure equipped with a 'beat size order' of the target to be processed (i.e., excess). Here, the 'beat sequence size' is configured to process the 'beat sequence size' even if the size of the modified beat is the same.

예를 들어, 박자 후처리 대상 마디를 구성하는 음표의 박자가 "1,2,3,6,8" 박자이고, 박자 후처리된 마디가 "1,1,3,3,8" 박자들로 이루어진다면, 상기 경우에도 '박자 크기 순서'를 만족하는 것으로 처리하게 된다.For example, if the notes of the notes constituting the target segment are "1, 2, 3, 6, 8" and the segments after the beat are "1,1,3,3,8" In this case, it is also deemed that the order of 'beat size' is satisfied.

도 8은 본 발명에 따른 박자 후처리의 제3 처리의 일 례이다. 도 8에서 상부에 있는 악보는 한 마디가 17박인 초과마디로서 갖춘마디인 16박 대비 1박자를 초과하고 있다. 도 8 예시의 경우, 제1 처리 및 제2 처리 방법 중 어느 방법에 따르더라도 박자 후처리가 불가능하여 제3 처리 방법에 따라 박자 후처리를 실시한다.8 is an example of a third process of the post-tone post-processing according to the present invention. In Fig. 8, the score at the top exceeds one beat in comparison with 16 nights, which is a node equipped with an excess of 17 nights. In the case of FIG. 8, even after any one of the first process and the second process method, the post-tone post-process is impossible and the post-tone post-process is performed according to the third process method.

도 8 예시의 경우 초과마디의 음표박자 "1, 8, 8"의 총합은 '17'인 바, 초과박자(d)인 '1' 만큼을 빼주어야 갖춘마디가 된다. 그런데 이와 같은 제1 처리 또는 제2 처리 방식으로는 사용 박자 그룹을 만족하는 갖춘마디를 만들 수 없게 된다.In the example shown in FIG. 8, the sum of the musical notes "1, 8, 8" in the excess section is "17", and the sum of the excess section "d" However, with such a first processing or a second processing method, it is not possible to create a node satisfying the used time signature group.

상기와 같은 경우, 하나의 박자에 더하고, 다른 하나의 박자에서 빼는 제3 처리 방법으로 해결할 수 있다. 즉, 1박자 음표에 '1(d2)'을 더하여 2박자 음표로 만들고, 그 박자 증가분(d2=1) 만큼을 초과박자(d=1)에 더한 값 '2'를 8박자 음표에서 빼는 방식으로 처리할 경우, 결과적으로 "2, 6, 8" 박자로 이루어진 갖춘마디로 보정되어 보정 전 박자 크기 순서를 유지하면서 동시에 사용 박자 그룹을 만족시키는 박자 후처리가 가능하게 된다(S66).In such a case, a third processing method of adding to one beat and subtracting it from the other beats can be solved. That is, the first addition of "1 (d 2), the beat notes made of two beat note, the time increment (d 2 = 1) the value" 2 "obtained by adding the excess of the time (d = 1) by 8 beats notes As a result, when the processing is performed in the subtracting manner, it is corrected to a set of bars consisting of "2, 6, 8" beats, thereby enabling the beat processing to satisfy the beat group at the same time while maintaining the order of the beats before correction (S66).

전술한 제1 처리, 제2 처리 또는 제3 처리 중 어느 하나의 박자 후처리 방식에 따르면 어떠한 경우의 초과마디에 대해서도 박자 후처리가 가능해진다.According to any one of the first, second, and third processes described above, it is possible to perform a post-beating process on an excess bar in any case.

본 발명의 화성 후처리 단계는 신규곡의 멜로디를 마디별로 구분하여 화성 후보군을 생성하는 제1 단계와, 각 마디별로 생성된 화성 후보군을 대상으로 특정 코드 조합의 화성 전개가 이루어지도록 각 마디별 화성을 선정하는 제2 단계; 및 선정된 화성을 기준으로 상기 신규곡의 멜로디를 수정하는 제3 단계를 포함한다.The post-processing step of the present invention includes a first step of generating a candidate for harmony by dividing the melody of a new song by each of the nodes, and a second step of creating a candidate for each harmony candidate, A second step of selecting the first step; And a third step of modifying the melody of the new song on the basis of the selected harmony.

구체적으로, 상기 제1 단계는, 각 마디에 있는 음을 낮은 음부터 정렬하는 단계와, 가장 낮은 음부터 차례로 근음으로 지정해서 나머지 음과의 간격을 각각 산출하는 방식을 통해 각 마디별 화음을 결정하는 단계와, 각 마디별로 결정된 화음들을 저장하여 상기 화성 후보군을 생성하는 단계를 포함한다.Specifically, the first step comprises: arranging the notes in each of the bars from a low note; and determining a chord for each bar by calculating the interval between the remaining notes in succession from the lowest note to the root note And generating the harmony candidate group by storing chords determined for each of the nodes.

상기 제2 단계는, 제1 단계에서 생성된 상기 화성 후보군을 대상으로 마디별 근음 차이 비교를 비교하여 상기 특정 코드 조합의 화성 전개와 일치하는 코드가 있는지 검색하는 단계와, 상기 검색 결과 일치하는 코드 조합이 있을 경우 이를 저장하여 최종 화성으로 결정하는 단계를 포함한다.The second step may include the steps of: comparing the root candidate differences generated by the first step with the root candidate differences of the nodes; searching for a code corresponding to the development of the specific combination of the specific code; If there is a combination, storing it and determining the final harmony.

그리고, 상기 제2 단계의 검색 결과 일치하지 않는 코드 조합이 있을 경우, 상기 특정 코드 조합을 기준으로 오차 허용 범위를 설정하여, 상기 오차 허용 범위 내의 코드 조합이 있는 경우 이를 저장한다.If there is a code combination that does not coincide with the search result in the second step, an error tolerance range is set based on the specific code combination, and the code combination within the error tolerance range is stored.

그리고, 상기 제3 단계는 상기 오차 허용 범위 내의 코드 조합을 상기 최종 화성으로 수정하는 단계를 더 포함한다.The third step further includes modifying the code combination within the error tolerance into the final harmonic.

그리고, 상기 제2 단계의 상기 특정 코드 조합은 바람직하게는 머니 코드(Money Chord)일 수 있다.The specific combination of codes in the second step may be a Money Chord.

<단계 7(S70)>&Lt; Step 7 (S70)

본 발명의 단계 7(S70)은 신규곡의 조성을 후처리하여, 단계 'S10' 내지 'S60'의 과정을 따라 생성된 곡의 음악적 완성도를 보다 높이기 위한 단계이다.Step 7 (S70) of the present invention is a step for post-processing the composition of the new tune to further enhance the musical completeness of the tune generated in accordance with the processes of steps 'S10' to 'S60'.

조성은 으뜸음을 중심으로 온음과 반음을 규칙적으로 배열하여 갖게 되는 음계의 성격을 말한다. 하나의 곡은 보통 하나의 조성으로 되어있고, 조성에 따라 곡의 분위기가 결정된다. 예를 들어 조성인 C장조의 경우 "도, 레, 미, 파, 솔, 라, 시, 도"가 사용되고, 으뜸음인 도를 중심으로 하여 온음, 온음, 반음, 온음, 온음, 온음, 반음, 온음 순서로 배열된 것으로 밝은 분위기를 갖는다.The composition refers to the character of the scales that are arranged by regularly arranging the whole tone and semitone around the megamitus. One song usually has one composition, and the composition of the song determines the atmosphere of the song. For example, in the case of the composition C, "Do, Lem, Mi, Paw, Sol, La, Si and Do" are used. They are arranged in a whole tone order and have a bright atmosphere.

그런데, 학습된 인공 신경망을 이용해 작곡한 곡은 특정한 조성을 구성하지 못한다. 이를 해결하기 위하여 본 발명의 자동 작곡 방법은 조성 후처리 단계를 더 포함할 수 있다.However, a composition composed using a learned artificial neural network does not constitute a specific composition. In order to solve this problem, the automatic composition method of the present invention may further include a composition post-processing step.

조성 후처리 단계는 단계 'S10' 내지 'S60'의 과정을 따라 생성된 곡(이하, '신규곡')의 조성을 C장조로 만드는 제1 단계, 및 제1 단계에 의해 변환된 C장조 조성의 신규곡을 사용자가 원하는 조성으로 다시 변환하는 제2 단계를 포함한다.The composition post-processing step includes a first step of making the composition of the song (hereinafter referred to as a 'new song') produced in accordance with the process of steps 'S10' to 'S60' into C major, And a second step of converting the new song back to the composition desired by the user.

구체적으로, 조성 후처리 단계의 제1 단계는 신규곡에 C장조에서 사용하지 않는 음(이하, '제외음'이라 함)이 존재할 경우, 상기 제외음을 상기 제외음의 바로 위 또는 아래 음으로 변경하여 상기 C장조에서 사용하는 음으로 변환하도록 구성된다.Specifically, in the first step of the composition post-processing step, when there is a sound (hereinafter, referred to as 'negative sound') not used in the C major in the new music, the negative sound is sounded just above or below the negative sound And converts the sound into a sound used in the C major.

즉, 신규곡이 C(도)를 으뜸음으로 갖도록 신규곡의 각 음의 높이를 C장조 기준으로 일괄적으로 높이거나 또는 낮추는데, 상기 과정에서 C장조에서 사용하지 않은 음인 "도#, 레#, 파#, 솔#, 라# 등"이 존재하게 될 경우 해당 음을 C장조에서 사용하는 음으로 변경한다.That is, the height of each tone of a new song is collectively raised or lowered based on the C major so that the new song has C (degrees) as its dominant tone. In this process, Wave #, sol #, la #, etc. ", the corresponding note is changed to the note used in the C major.

예컨대, 신규곡의 조성을 C장조로 만드는 과정에서 '레#'이 존재하게 되면, 해당 음은 바로 아래 음인 '도'로 변경하거나 또는 바로 위의 음인 '미'로 변경하도록 구성된다.For example, if 're #' is present in the process of making the composition of the new song C major, the corresponding note is changed to 'Do', which is the immediately lower note, or 'Not', which is the note immediately above.

만약, 제외음이 복수 개일 경우 제외음 모두가 일괄적으로 제외음의 바로 윗 음으로 변경되거나, 또는 모두 일괄적으로 제외음 아래 음으로 변경되거나, 또는 이들의 혼합 형태로 변경될 수 있다.If there are a plurality of negative sounds, all of the negative sounds may be changed collectively to the sound immediately above the excluded sound, or all of them may be changed collectively to a negative sound, or a mixture thereof.

전술한 제1 단계가 완료되면, 근음의 차이를 이용하여 C장조 신규곡의 조성을 원하는 조성으로 변환하는 제2 단계를 수행하도록 구성된다.When the first step is completed, a second step of converting the composition of the new C-major tune into a desired composition is performed using the difference of the root sounds.

구체적으로, 조성 후처리의 제2 단계는 C장조로 변환된 신규곡의 모든 음에 각각 제1 으뜸음과 제2 으뜸음 간의 차이만큼을 더하여 상기 제2 으뜸음을 으뜸음으로 갖는 또 다른 장조로 변환하도록 구성된다. 여기서, 상기 '제1 으뜸음'은 C장조의 으뜸음 즉, C(도)를 지칭한다.Specifically, the second step of post-composition processing is to add the difference between the first summing tone and the second summing tone to all the tones of the new tune transformed into the C major, thereby converting the second trumping tone to another trunk having the trumpet do. Here, the 'first tune' refers to the dominant tone of C major, that is, C (degrees).

예를 들어, 제1 단계에 의해 C장조 변환된 제1 신규곡의 조성을 G장조로 만들고 싶다면, 각각의 근음인 C(도)와 G(솔)의 차이인 '7'만큼을 제1 신규곡의 모든 음에 각각 더해줌으로써 G장조에서 사용하는 음만 남게되고 장조의 규칙성도 유지될 수 있게 된다.For example, if it is desired to make the composition of the first new song C-major converted by the first step into the G major, only the difference between the root note C (degrees) and G (sol) So that only the notes used in the G major can be left and the regularity of the major can be maintained.

도 9 (a),(b),(c)는 본 발명에 따른 조성 후처리를 설명하기 위한 일 례로서, 단계 'S10' 내지 'S60'의 과정을 따라 생성된 신규곡을 E 장조로 변환하는 조성 후처리 과정을 보여준다.9 (a), 9 (b) and 9 (c) illustrate an example of post-composition processing according to the present invention, in which a new song generated in the process of steps 'S10' to 'S60' The post-treatment process.

먼저, 도 9 (a)는 단계 'S10' 내지 'S60'의 과정을 따라 생성된 신규곡에 대하여 조성 후처리를 하기 전 멜로디를 나타낸 것으로서 여러 조성에서 사용하는 다양한 음을 갖고 있다. 즉, "파#, 라#, 레, 레, 레#, 파, 솔, 파"의 음들을 갖고 있는데, "레, 레#"은 반음 관계로 내림 마장조에서 사용하는 음이다. 내림 마장조의 음계 구성은 "레#, 파, 솔, 솔#, 라#, 도, 레, 레#" 이므로 '파#'이 존재할 수 없다. "파, 파#"은 내림 라장조에서 사용하는 음이다. 그러므로 작곡된 곡은 하나의 조성으로 볼 수 없기 때문에 조성 후처리를 통해 하나의 조성을 구성하도록 음을 조정해야한다. 9A shows a melody before a post-composition process for a new song generated according to the process of steps 'S10' to 'S60', and has various sounds used in various compositions. In other words, it has the sounds of "par #, lah #, lah, lah #, par, sol, par". There is no wave # in the descending order because it is "re #, par, sol, sol #, la #, do, les, re #". "Wave, wave #" is the sound used in the down-counting. Therefore, composing tune can not be seen as a single composition, so it is necessary to adjust the tones so as to form a composition through post-composition processing.

상기 경우, 먼저 제1 단계에 따라 도 9 (a)의 멜로디를 C장조로 만들어 준다. 즉, "파#, 라#, 레, 레, 레#, 파, 솔, 파"에 있어서, 제외음에 해당하는 "파#, 라#, 레#"을 일괄적으로 바로 윗 음으로 변환하면 "솔, 시, 레, 레, 미, 파, 솔, 파"의 음계로 이루어진 C장조를 구성하게 된다.In this case, first, the melody of FIG. 9 (a) is made C major by the first step. That is, when "par #, l #, l #" corresponding to the excluded notes in the "par #, l #, l, l, l #, par, It constitutes the C major consisting of the scales of "Sol, Si, Le, Les, Mi, Pa, Sol, Wave".

이후, 제1 단계에 의해 변환된 C장조의 각 음에 대하여, C장조와 E장조의 근음 간의 차이만큼 각각 더해주면 E장조 변환이 완료된다. 즉, C장조의 으뜸음은 C(도)이고, E장조의 으뜸음은 A(미)이므로 근음의 차이는 "4"에 해당하게 된다. 따라서, 근음의 차이 '4'만큼을 도 9 (b) 곡의 모든 음에 각각 더해주면 도 9 (c)와 같이 "시, 레#, 파#, 파, 솔#, 라, 시, 라"로 변경되어 E장조에서 사용하는 음들로 이루어진 E장조 조성으로 변환 완료된다.Subsequently, for each tone of the C major transformed by the first step, the E major transform is completed by adding the difference between the root major of the C major and the E major axis. That is, the C tonic of the C major is C (degrees), and the root of the E major is A (minor), so that the root difference corresponds to "4". Thus, if the root difference '4' is added to all the tones of FIG. 9 (b), it is possible to add "Tone, Ree #, Wave #, Wave, Sol #, La, And converted into the E-major composition composed of notes used in the E-major.

한편, 상기에서는 신규곡의 조성을 사용자가 원하는 장조(이하, '희망 장조'라 칭함)로 만들고 싶을 경우, 먼저 C장조로 변환하는 과정을 거치도록 구성하였으나, 이처럼 C장조 변환 과정를 거치지 않고 원하는 조성으로 바로 변경하도록 구성할 수도 있다.In the above description, if the user desires to make the composition of a new music to be a major desired one (hereinafter, referred to as a "desired major"), the music composition is first converted to the C major. However, It can be configured to change immediately.

즉, 신규곡의 각 음에 일괄적으로 특정 음만큼을 더하거나 빼주어 희망 장조의 조성으로 만들어 주는데, 상기 경우 희망 장조에서 사용하지 않는 음(즉, 제외음)이 존재하게 될 수 있다.That is, a certain tone is added or subtracted to each tone of a new song at a time to form a composition of a desired tone. In this case, a tone not used in the desired tone may exist.

이와 같이 희망 장조에서 사용하지 않는 음(즉, 제외음)이 존재하게 될 경우, 이 제외음을 그 바로 위 또는 아래 음으로 변경하여 상기 희망 장조에서 사용하는 음으로 변경한다. 즉, 신규곡이 G(솔)을 으뜸음으로 갖도록 변환할 경우, 신규곡의 각 음의 높이를 G장조 기준으로 일괄적으로 높이거나 또는 낮추는데, G장조에서 사용하지 않은 음이 존재하게 될 경우 해당 음을 G장조에서 사용하는 음으로 변경한다.If there is a sound that is not used in the hope major (i.e., a negative sound), the negative sound is changed to a sound immediately above or below the sound to be used in the desired sound. In other words, when a new song is converted to have G (sol) as masquerade, the height of each tone of the new song is raised or lowered collectively based on the G major tone. If a tone not used in G major exists, Change the note to a note used in the G major.

예컨대, 신규곡의 조성을 G장조로 만드는 과정에서 '레#'이 존재하게 되면, 해당 음은 바로 아래 음인 '도'로 변경하거나 또는 바로 위의 음인 '미'로 변경하도록 구성된다.For example, if 're #' is present in the process of making the composition of the new song into the G major, the corresponding note is changed to 'Do', which is the immediately lower note, or 'Not', which is the note immediately above.

전술한 바와 같은 단계 1(S10) 내지 단계 6(S60)에 따르면, 인공 신경망에 의해 자동 작곡된 곡이 최종 생성된다. 한 곡을 완전히 학습한 인공 신경망은 학습곡과 동일한 초기 멜로디를 넣어주면 학습한 곡과 동일하게 나머지 멜로디를 만든다. 하지만 학습한 곡과 다른 초기 멜로디를 넣어주면 학습한 곡과 분위기나 느낌은 비슷하지만 다른 멜로디를 출력한다. 결국 새로운 곡을 작곡하기 위해서는 새로운 초기 멜로디(즉, 도입곡)를 사용자가 만들어 넣어주어야 한다. 그러나 사용자가 만든 초기 멜로디는 그 초기 멜로디에 이어서 인공 신경망이 만드는 멜로디의 느낌을 미리 예측할 수 없기 때문에 인공신경망이 만들어준 나머지 멜로디와 어울리지 못하고 곡의 흐름 내지 느낌이 많이 차이가 나는 경우가 발생할 수 있다.According to the steps 1 (S10) to 6 (S60) as described above, a song automatically composed by the artificial neural network is finally generated. Artificial neural network that has learned one song completely makes the rest melody the same as learned music by putting the same initial melody as the learning song. However, if you add a learned melody and a song that you learned, it will output a different melody similar to the feeling and feel of the song you learned. Ultimately, in order to compose a new song, a new initial melody (ie, introduction song) must be created by the user. However, since the initial melody created by the user can not predict the melody feeling of the artificial neural network following the initial melody, the melody of the artificial neural network may not match with the rest of the melody produced by the artificial neural network, .

도 10은 그 예를 보여준다. 도 10에서 붉은색 박스에 있는 부분이 사용자가 작곡을 해서 넣어준 도입곡 부분이고, 나머지 부분이 인공 신경망이 출력한 부분이다. 인공신경망이 출력한 부분은 어느 정도 느낌과 분위기가 일정한 곡이 출력되는데 비해 사용자가 넣어준 도입곡 부분은 인공 신경망이 출력한 부분과 느낌이 다르다. 인공 신경망에 매핑된 공간을 미리 예상할 수 없으므로 인공 신경망이 만드는 곡과 느낌이 유사하도록 도입곡을 만드는 것은 매우 어렵다.Fig. 10 shows an example thereof. In FIG. 10, the portion in the red box is the introduction song portion that the user has composed and the remaining portion is the artificial neural network output portion. The output part of the artificial neural network outputs a song with a certain feeling and atmosphere, whereas the part of the introduction song that the user inserts is different from the part output by the artificial neural network. Since the space mapped to the artificial neural network can not be anticipated in advance, it is very difficult to create an intro song so that the artificial neural network has a similar feel to the song.

그런데, 초기 멜로디(도입곡)는 인공 신경망에 매핑된 멜로디 공간에 시작 지점을 알려주는 지표로서, 시계열 공간에서 어떤 위치에서 곡을 출력할지를 정해주는 역할을 하는 것이다. 그러므로 초기 멜로디는 새로운 곡을 출력할 공간의 위치를 매핑시켜주는 용도로만 사용하고, 굳이 작곡된 결과에 사용할 필요는 없다.However, the initial melody (introduction song) is an indicator that indicates the starting point in the melody space mapped to the artificial neural network, and plays a role in determining the position in the time series space to output the music. Therefore, the initial melody is only used to map the position of the space to output a new song, and it is not necessary to use it for the composition result.

따라서, 초기 멜로디(도입곡)를 무작위로 만들어 넣어주되 그렇게 만들어진 초기 멜로디는 작곡된 결과에 사용하지 않도록 구성하는 것이 바람직하다. 즉, 인공 신경망을 이용하여 최종적으로 작곡 완료시, 상기 작곡 완료된 곡에서 도입곡을 제외시키도록 구성하는 것이 좋다. 이에 따르면, 작곡된 곡은 모두 인공 신경망의 출력만으로 구성되어 초기 멜로디 부분과 나머지가 어울리지 않는 문제를 해결할 수 있게 된다.Therefore, it is desirable to construct an initial melody randomly so that the initial melody is not used in the result of composition. In other words, it is preferable to use the artificial neural network to exclude the introduced tune from the completed composition when the composition is finally completed. According to this, all of the compositions composed of only the output of the artificial neural network can solve the problem that the initial melody part and the rest do not match.

인공 신경망이 음악성 있는 곡을 작곡하기 위해서는 다수의 곡을 학습하여야 한다. 이때 다수의 곡은 한 곡씩 차례로 학습하는 방법이 있을 수 있다. 그런데, 이와 같은 학습 방법에 따르면 인공 신경망이 나중에 학습하는 곡의 영향을 많이 받게 되어 생성곡의 특성 내지 멜로디가 한 쪽(즉, 나중의 학습곡)으로 편중되는 문제점이 발생할 수 있다.In order for an artificial neural network to compose musical pieces, many songs must be learned. At this time, there may be a method of learning a plurality of songs one by one. However, according to this learning method, the artificial neural network is influenced by the music to be learned at a later time, and the characteristic or melody of the generated music may be biased to one side (that is, a later learning music).

본 발명은 이와 같이 다수의 곡을 차례대로 학습할 시 발생할 수 있는 생성곡의 치우짐 문제를 해결하기 위하여, 다음과 같이 각각 다른 곡을 학습한 복수의 인공 신경망들의 가중치를 이용하는 방법을 제시한다.The present invention proposes a method of using weights of a plurality of artificial neural networks that have learned different songs as follows in order to solve the problem of eliminating generated songs that may occur when learning a plurality of songs in order.

도 11은 본 발명에 따른 평균 인공신경망 생성 원리를 나타낸 도면이다. 도 11을 참조하면, 먼저, N개(여기서, N≥2)의 인공 신경망에 각각 다른 곡을 학습시킨다. 즉, 제1 인공 신경망이 학습할 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환한 제1 시계열 데이터를 이용하여 상기 제1 인공 신경망을 학습시키고, 제2 인공 신경망이 학습할 곡(이하, '제2 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환한 제2 시계열 데이터를 이용하여 상기 제2 인공 신경망을 학습시키며, 제N 인공 신경망이 학습할 곡(이하, '제N 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환한 제N 시계열 데이터를 이용하여 상기 제N 인공 신경망을 학습시킨다.FIG. 11 is a view illustrating an average artificial neural network generation principle according to the present invention. Referring to FIG. 11, first, a different music is learned in N artificial neural networks (here, N? 2). That is, the first artificial neural network is learned using the first time series data obtained by converting a plurality of notes and beats constituting a music to be learned by the first artificial neural network (hereinafter, referred to as 'first learning music' And the second artificial neural network is learned using the second time series data obtained by converting a plurality of notes and beats forming a song to be learned by the second artificial neural network (hereinafter, referred to as a 'second learning song' Nth artificial neural network using the Nth time series data obtained by converting a plurality of notes and beats composing a piece of music to be learned by the Nth artificial neural network (hereinafter referred to as an &quot; Nth learning song &quot; .

한편, 평균 인공신경망을 이용한 자동 작곡 방법에 있어서, 상기 제1 내지 제N 시계열 데이터의 생성 및 이를 이용한 학습 방법은 전술한 단계 2(S20), 단계 2-1(S21), 단계 2-2(S22) 및 단계 3(S30)에서 설명한 방법을 따르도록 구성될 수 있다.In the automatic composition method using an artificial neural network, the generation of the first through Nth time series data and the learning method using the first through Nth time series data are performed in the steps 2 (S20), 2-1 (S21), 2-2 S22) and step 3 (S30).

그리고, 학습된 제1 인공 신경망의 히든층(이하, '제1 히든층')과 출력층(이하, '제1 출력층')의 가중치와 바이어스, 학습된 제2 인공 신경망의 히든층(이하, '제2 히든층')과 출력층(이하, '제2 출력층')의 가중치와 바이어스, 그리고 학습된 제N 인공 신경망의 히든층(이하, '제N 히든층')과 출력층(이하, '제N 출력층')의 가중치와 바이어스를 각각 구한다.The weight and bias of the hidden layer (hereinafter referred to as 'first hidden layer') and the output layer (hereinafter, 'first output layer') of the learned first artificial neural network, the hidden layer of the learned second artificial neural network (Hereinafter referred to as an Nth hidden layer) and an output layer (hereinafter referred to as an Nth hidden layer) of the learned Nth artificial neural network (hereinafter referred to as an Nth hidden layer) and a weight of the output layer Output layer ') and the bias of the output layer.

여기서, 가중치(weight)는 뉴런이나 두 뉴런 간의 연결과 관련된 수이며, 뉴런의 활성화 값을 결정하기 위한 출력을 할당할 때 사용된다. 그리고 바이어스 (bias)는 뉴런의 액티베이션(activation)에 가해지는 값으로서 학습에 중요한 역할을 한다. 바이어스를 통해 액티베이션 함수를 좌우로 움직일 수 있다. 그리고 히든층(hidden layer)은 입력층(input layer)과 출력층(output layer) 사이에 있는 뉴런들의 배열을 지칭한다.Here, the weight is a number related to the connection between a neuron or two neurons, and is used to assign an output to determine the activation value of the neuron. And bias is a value that is added to the activation of neurons and plays an important role in learning. The bias can be used to move the activation function from side to side. And a hidden layer refers to an array of neurons between an input layer and an output layer.

각 인공 신경망의 가중치와 바이어스를 모두 구하면, 다음으로 제1 히든층, 제2 히든층 및 제N 히든층의 가중치 평균값(이하, '히든층 평균 가중치') 및 바이어스 평균값(이하, '히든층 평균 바이어스')를 산출한다.(Hereinafter referred to as a 'hidden layer average weight') and a bias average value (hereinafter referred to as 'hidden layer average') of the first hidden layer, the second hidden layer, and the Nth hidden layer are obtained by obtaining both the weight and the bias of each artificial neural network. Bias').

동시에, 제1 출력층, 제2 출력층 및 제N 출력층의 가중치 평균값(이하, '출력층 평균 가중치') 및 바이어스 평균값(이하, '출력층 평균 바이어스')도 산출한다.At the same time, a weighted average value (hereinafter referred to as 'output layer average weight') and a bias average value (hereinafter, 'output layer average bias') of the first output layer, the second output layer and the Nth output layer are also calculated.

이후, 히든층의 경우 전술한 히든층 평균 가중치와 히든층 평균 바이어스를 갖는 뉴런들로 구성되고, 출력층의 경우 전술한 출력층 평균 가중치와 출력층 평균 바이어스를 갖는 뉴런들로 구성된 또 다른 하나의 새로운 인공 신경망(이하, '평균 인공 신경망')을 생성한다.Thereafter, in the case of the hidden layer, another neural network composed of the neurons having the hidden layer average weight and the hidden layer average bias and composed of neurons having the output layer average weight and the output layer average bias in the case of the output layer, (Hereinafter referred to as 'average artificial neural network').

그리고, 이렇게 새로 만들어진 평균 인공 신경망을 이용하여 전술한 단계 4(S40) 내지 단계 7(S70)에 따라 신규곡을 생성하고 생성된 신규곡의 박자, 화성 및 조성을 후처리함으로써 신규곡 작곡이 완료될 수 있다.Then, the new artificial neural network is used to generate a new song according to the above-described steps 4 (S40) to 7 (S70), and after the beat, harmony, and composition of the new song are processed, new song composition is completed .

이처럼 평균 인공 신경망에 따르면, 다수의 곡을 학습시 어느 한곡으로 편중되지 않게 각 곡을 학습할 수 없었던 문제점과 학습곡의 순서에 따라 생성곡의 특성이 달라지는 문제점을 해결할 수 있게 된다. 결국, 평균 인공 신경망을 이용한 자동 작곡 방법은 매우 많은 곡을 학습할 경우에 특히 유용할 수 있다.As described above, according to the artificial neural network, it is possible to solve the problem that each song can not be learned without being concentrated in one song when learning a plurality of songs, and the problem that the characteristics of the songs to be produced vary according to the order of the songs. As a result, the automatic composition method using an average artificial neural network can be especially useful for learning a lot of songs.

상기에서는 다수의 곡을 차례대로 학습할 시 발생할 수 있는 생성곡 치우짐 문제를 해결하기 위하여 평균 인공 신경망을 제시하였는데, 이러한 평균 인공 신경망을 이용하는 방법 대신 MSE(Mean Square Errors)를 이용하여 차례로 학습하는 방법을 사용할 수도 있다.In this paper, we propose an average artificial neural network in order to solve the problems of generating songs that can occur when learning a number of songs in order. In this case, instead of using the average artificial neural network, we use MSE (Mean Square Errors) You can also use the method.

즉, 다수의 곡을 차례로 학습시 나중에 학습하는 곡의 학습 정도를 제한하는 방법인데, 이와 같이 인공 신경망이 특정 곡을 어느 정도로 학습할지 결정하는 학습 파라미터로서 MSE(Mean Square Errors)를 이용하도록 구성된다.That is, a method of limiting the degree of learning of a music piece to be learned later in learning a plurality of tunes in turn, is configured to use Mean Square Errors (MSE) as a learning parameter for determining to what extent the artificial neural network learns a specific music .

MSE는 학습할 곡의 데이터와 인공 신경망의 출력 간의 오류 차이를 나타낸다. 따라서 이 학습 파마리터의 특정 값을 학습 종료 조건으로 설정하여 학습을 진행하면 특정 곡을 어느 정도로 학습시킬지 조정할 수 있게 되고, 이를 통해 나중에 학습하는 곡의 학습 정도를 제한할 수 있게 된다.The MSE represents the error difference between the data of the song to be learned and the output of the artificial neural network. Therefore, by setting the specific value of the learning permalizer as the learning termination condition and proceeding to the learning, it is possible to adjust to what extent the specific music is to be learned, thereby limiting the degree of learning of the music to be learned later.

보다 구체적으로 설명하면, 인공 신경망이 A곡과 B곡을 학습하되 A곡을 먼저 학습하고 이어서 B곡을 학습하는 경우를 가정하자. 상기 경우, A곡은 완전히 학습이 될 때까지 학습을 진행시킨다. 즉, A곡의 MSE가 '0'이 될 때까지 학습시키도록 구성된다.More specifically, suppose that the artificial neural network learns the A song and the B song but learns the A song first and then the B song. In this case, the music A proceeds until it is fully learned. That is, it is configured to learn until the MSE of the A song becomes '0'.

A곡이 완전히 학습(즉, MSE = 0)되면, 이후 B곡을 학습하는데 이때 B곡은 완전히 학습되기 전(즉, MSE > 0)에 학습이 중지되도록 구성된다. If the A song is fully learned (ie, MSE = 0), then the B song is learned, where the B song is configured to stop learning before it is fully learned (ie, MSE> 0).

즉, B곡의 MSE는 '0'보다 큰 값을 갖도록 구성되는데, 구체적으로 B곡의 MSE는 A곡을 학습한 인공 신경망에 B곡을 적용해 초기 MSE를 구하고, 이렇게 산출된 초기 MSE에 대한 특정 비율(R1)(여기서, 0<R1<1)을 B곡의 MSE로 설정하도록 구성된다.In other words, the MSE of the B song is configured to have a value larger than '0'. Specifically, the MSE of the B song is obtained by applying the B song to the artificial neural network that has learned the A song and obtains the initial MSE. Is configured to set a specific ratio R1 (where 0 &lt; R1 &lt; 1) to the MSE of B songs.

예컨대, 상기 특정 비율이 '0.1(즉,10%)'로 설정되었고, A곡을 학습한 인공 신경망에 B곡을 입력시 초기 MSE가 '247'로 산출되었다고 가정하자. 상기 경우 산출된 초기 MSE에 특정 비율 '0.1(즉,10%)'를 적용하면 B곡의 MSE는 '24.7'로 결정되고, 이 값은 B곡에 대한 학습 종료 조건으로 작용하게 된다.For example, assume that the specific rate is set to 0.1 (i.e., 10%) and that the initial MSE is calculated to be '247' when the B song is input to the artificial neural network learning the A music. Applying a specific rate of '0.1 (ie, 10%)' to the initial MSE calculated in this case, the MSE of the B song is determined to be '24.7 ', and this value serves as a learning termination condition for the B song.

즉, B곡은 MSE = 24.7까지 학습이 진행된 후 학습이 멈추게 된다. 결국, B곡은 MSE가 '0'이 될 때까지 학습하지 못하고 어느 정도 학습이 진행된 후 학습이 종료될 수 있게 된다.That is, the learning of B song stops after MSE = 24.7. As a result, the B song can not learn until the MSE becomes '0', and the learning can be terminated after the learning progresses to some extent.

따라서, 상기 특정 비율의 값을 조절함으로써 B곡의 MSE를 조절할 수 있게 되고, 이를 통해 B곡의 학습 정도를 제한할 수 있어 생성곡이 나중에 학습하는 곡에 치우치는 문제점을 해결할 수 있게 된다.Therefore, by adjusting the value of the specific ratio, the MSE of the B song can be adjusted, thereby limiting the degree of learning of the B song, thereby solving the problem that the generated song is biased toward a song to be learned later.

이와 같이 MSE를 이용하는 방법에 의하면 각 곡의 학습정도를 어느 정도 제한할 수 있으나 여전히 학습하는 곡의 순서에 따라서 다른 결과가 나오고, 아주 많은 곡을 학습할 경우에는 처음 곡의 영향이 거의 사라지는 문제가 여전히 발생한다. 따라서 아주 많은 곡을 학습하는 경우에는 평균 신경망을 이용하는 것이 바람직하다.According to the method using the MSE, the degree of learning of each music can be limited to some extent, but the result is different depending on the order of the songs to be learned. In the case of learning a lot of songs, It still happens. Therefore, it is desirable to use the average neural network when learning a lot of songs.

도 12는 본 발명에 따른 인공 신경망을 이용하여 자동 작곡된 곡의 일 례로서, 이루마의 피아노곡 "All myself you" 와 "River flows in you"라는 두 곡을 학습한 후 출력한 것이다.12 is an example of a song that is automatically composed using the artificial neural network according to the present invention, and is a result of learning two songs of Iirma's piano piece "All myself you" and "River flows in you".

도 12에서 알 수 있듯이, 본 발명의 박자 후처리를 적용함으로써 못갖춘마디가 나오는 경우가 전혀 발생하지 않았고, 쉼표용 인공신경망을 사용함으로써 음이 중간에 튀는 경우도 발생하지 않았다.As can be seen from FIG. 12, no artifacts were generated by applying the post-tone processing of the present invention at all, and no artifacts were generated in the middle by using a comma artificial neural network.

그리고, 초기 멜로디 즉, 도입곡은 무작위로 선정한 것을 사용하였고, 인공 신경망이 출력한 작곡 결과에서 이 도입곡은 제외하는 방법을 적용하였다. 즉, 도입곡은 작곡 결과로 사용하지 않았다.The initial melody, that is, the introduction song was selected randomly, and the method of excluding this introduction song from the composition result outputted by the artificial neural network was applied. That is, the introduction song was not used as the composition result.

상기에서 설명 및 도시한 본 발명에 따른 인공 신경망을 이용한 자동 작곡 방법은 컴퓨터와 같은 전기 전자 장치에 전술한 각 기능 내지 단계(S10 ~ S70)을 실행시키기 위한 프로그램을 기록한 전기 전자 장치로 읽을 수 있는 기록 매체 형태로 제공될 수 있다.The automatic composing method using the artificial neural network according to the present invention as described and illustrated above can be read by an electric / electronic apparatus in which a program for executing each of the above-described functions or steps S10 to S70 is recorded in an electric / May be provided in the form of a recording medium.

상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확히 설명하기 위한 것일 뿐이며, 본 발명의 실시예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.While the preferred embodiments of the present invention have been described and illustrated above using specific terms, such terms are used only for the purpose of clarifying the invention, and it is to be understood that the embodiment It will be obvious that various changes and modifications can be made without departing from the spirit and scope of the invention. Such modified embodiments should not be understood individually from the spirit and scope of the present invention, but should be regarded as being within the scope of the claims of the present invention.

Claims (4)

삭제delete 인공 신경망을 이용하여 곡을 자동으로 생성하는 방법으로서,
인공 신경망이 학습할 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환하여 시계열 데이터를 생성하는 단계; 상기 시계열 데이터를 이용하여 상기 인공 신경망을 학습시키는 단계; 상기 인공 신경망이 신규곡을 출력하는 단계; 및 상기 신규곡에 있어서 갖춘마디 대비 박자가 초과하는 마디(이하, '초과마디')가 존재할 경우 상기 초과마디를 갖춘마디로 보정하는 박자 후처리 단계를 포함하고,
상기 박자 후처리 단계는 제1 처리, 제2 처리 및 제3 처리 중에서 선택된 어느 하나에 의해 이루어지며,
상기 제1 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서, 상기 갖춘마디 대비 상기 초과마디가 초과하는 박자(이하, 'd') 만큼을 빼는 제1a 단계를 포함하고,
상기 제2 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd1'(여기서, d1<d) 박자만큼을 빼고, 또 다른 하나의 박자에서 'd-d1' 박자만큼을 빼는 제1b 단계를 포함하고,
상기 제3 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd2' 박자만큼을 더하고, 또 다른 하나의 박자에서 'd+d2' 박자만큼을 빼는 제1c 단계를 포함하며,
제1a 단계는, 상기 초과마디를 구성하는 각 음표의 박자들 중 가장 작은 박자(이하, '제1 박자'라 함)에서, 상기 'd' 만큼을 빼도록 구성되고,
상기 제1 처리는,
상기 인공 신경망이 곡을 작곡시 사용 가능한 박자들로 지정된 박자 그룹(이하, '사용 박자 그룹') 내에, 상기 제1a 단계에서 상기 'd' 만큼 뺀 박자('제1 박자 - d' 박자)가 존재하는지 여부를 판별하는 제2a 단계;
상기 제2a 단계의 판별 결과 존재하면 상기 초과마디에 대한 박자 후처리를 완료하고, 존재하지 않으면 상기 제1 박자 대비 그 다음 작은 박자(이하, '제2 박자'라 함)에서 상기 'd' 만큼을 빼는 제3a 단계;
상기 제3a 단계에서 상기 'd' 만큼 뺀 박자('제2 박자 - d' 박자)가 상기 사용 박자 그룹 내에 존재하는지 여부를 판별하는 제4a 단계; 및
상기 제4a 단계의 판별 결과 존재하면 상기 초과마디에 대한 박자 후처리를 완료하는 제5a 단계;를 더 포함하는 것을 특징으로 하는 인공 신경망을 이용한 자동 작곡 방법.
A method for automatically generating a song using an artificial neural network,
Generating time series data by converting a plurality of notes and beats constituting a music to be learned by the artificial neural network (hereinafter, referred to as a 'first learning song') into numerical form; Learning the artificial neural network using the time series data; Outputting a new music piece by the artificial neural network; And a beat-after-processing step of correcting, when there is a section exceeding a beat exceeding a beat provided in the new music (hereinafter, referred to as an &quot; over-section &quot;),
Wherein the time-post processing step is performed by any one of a first process, a second process, and a third process,
The first process includes a first step of subtracting a beat (hereinafter, referred to as 'd') exceeding the excess node from the provided node with any one of the beats of each note constituting the excess node ,
The second process is a process of subtracting 'd 1 ' (here, d 1 <d) beats from any one of the beats of each note constituting the excess node, and subtracting 'dd 1 ' And subtracting &lt; RTI ID = 0.0 &gt;
The third process includes a first c step of adding 'd 2 ' beats from any one of the beats of each note constituting the excess node, and subtracting 'd + d 2 ' beats from another beat, / RTI &gt;
The first step is configured to subtract 'd' from the smallest one of the notes of each note constituting the excess node (hereinafter referred to as 'first beat'),
The first process may include:
('First beat-d' beat) obtained by subtracting 'd' from the artificial neural network in the first beat group (hereinafter, referred to as 'use beat group') designated as beats available for composition A step 2a of discriminating whether or not it exists;
If there is a result of the discrimination in step 2a, the process of post-beat processing for the excess clause is completed. If it is not present, the second beat is compared with the first beat in the second beat Step 3a;
(4a) of determining whether a beat ('second beat-d' beat) subtracted by 'd' is present in the used beat group in step 3a) And
And if the result of the determination in step (4a) is yes, repeating the beat back process for the excess node.
인공 신경망을 이용하여 곡을 자동으로 생성하는 방법으로서,
인공 신경망이 학습할 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환하여 시계열 데이터를 생성하는 단계; 상기 시계열 데이터를 이용하여 상기 인공 신경망을 학습시키는 단계; 상기 인공 신경망이 신규곡을 출력하는 단계; 및 상기 신규곡에 있어서 갖춘마디 대비 박자가 초과하는 마디(이하, '초과마디')가 존재할 경우 상기 초과마디를 갖춘마디로 보정하는 박자 후처리 단계를 포함하고,
상기 박자 후처리 단계는 제1 처리, 제2 처리 및 제3 처리 중에서 선택된 어느 하나에 의해 이루어지며,
상기 제1 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서, 상기 갖춘마디 대비 상기 초과마디가 초과하는 박자(이하, 'd') 만큼을 빼는 제1a 단계를 포함하고,
상기 제2 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd1'(여기서, d1<d) 박자만큼을 빼고, 또 다른 하나의 박자에서 'd-d1' 박자만큼을 빼는 제1b 단계를 포함하고,
상기 제3 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서 'd2' 박자만큼을 더하고, 또 다른 하나의 박자에서 'd+d2' 박자만큼을 빼는 제1c 단계를 포함하며,
상기 제3 처리의 상기 'd2' 및 'd+d2'는, 상기 인공 신경망이 곡을 작곡시 사용 가능한 박자들로 지정된 박자 그룹 내에, 상기 제1c 단계를 따라 처리되는 박자가 존재할 수 있도록 하는 값으로 구성되는 것을 특징으로 하는 인공 신경망을 이용한 자동 작곡 방법.
A method for automatically generating a song using an artificial neural network,
Generating time series data by converting a plurality of notes and beats constituting a music to be learned by the artificial neural network (hereinafter, referred to as a 'first learning song') into numerical form; Learning the artificial neural network using the time series data; Outputting a new music piece by the artificial neural network; And a beat-after-processing step of correcting, when there is a section exceeding a beat exceeding a beat provided in the new music (hereinafter, referred to as an &quot; over-section &quot;),
Wherein the time-post processing step is performed by any one of a first process, a second process, and a third process,
The first process includes a first step of subtracting a beat (hereinafter, referred to as 'd') exceeding the excess node from the provided node with any one of the beats of each note constituting the excess node ,
The second process is a process of subtracting 'd 1 ' (here, d 1 <d) beats from any one of the beats of each note constituting the excess node, and subtracting 'dd 1 ' And subtracting &lt; RTI ID = 0.0 &gt;
The third process includes a first c step of adding 'd 2 ' beats from any one of the beats of each note constituting the excess node, and subtracting 'd + d 2 ' beats from another beat, / RTI &gt;
The 'd 2 ' and the 'd + d 2 ' of the third process are generated in such a way that the artificial neural network may include a beats group, Wherein the method comprises the steps of:
인공 신경망을 이용하여 곡을 자동으로 생성하는 방법으로서,
인공 신경망이 학습할 곡(이하, '제1 학습곡'이라 칭함)을 구성하는 다수의 음표 및 박자를 숫자 형태로 변환하여 시계열 데이터를 생성하는 단계; 상기 시계열 데이터를 이용하여 상기 인공 신경망을 학습시키는 단계; 상기 인공 신경망이 신규곡을 출력하는 단계; 상기 신규곡에 있어서 갖춘마디 대비 박자가 초과하는 마디(이하, '초과마디')가 존재할 경우 상기 초과마디를 갖춘마디로 보정하는 박자 후처리 단계; 및 상기 신규곡의 조성을 보정하는 조성 후처리 단계를 포함하고,
상기 박자 후처리 단계는 적어도 제1 처리를 수행하는 과정을 포함하고,
상기 제1 처리는, 상기 초과마디를 구성하는 각 음표의 박자 중 어느 하나의 박자에서, 상기 갖춘마디 대비 상기 초과마디가 초과하는 박자(이하, 'd') 만큼을 빼는 제1a 단계; 및 상기 인공 신경망이 곡을 작곡시 사용 가능한 박자들로 지정된 박자 그룹(이하, '사용 박자 그룹') 내에, 상기 제1a 단계의 상기 'd' 만큼 뺀 박자가 존재하는지 여부를 판별하는 제2a 단계;를 포함하며,
상기 조성 후처리 단계는
상기 신규곡의 조성을 제1 으뜸음을 갖는 C장조로 만드는 제1 단계; 및 상기 C장조의 모든 음에 각각 제1 으뜸음과 제2 으뜸음 간의 차이만큼을 더하여 상기 제2 으뜸음을 으뜸음으로 갖는 또 다른 장조로 변환하는 제2 단계;를 포함하는 것을 특징으로 하는 인공 신경망을 이용한 자동 작곡 방법.
A method for automatically generating a song using an artificial neural network,
Generating time series data by converting a plurality of notes and beats constituting a music to be learned by the artificial neural network (hereinafter, referred to as a 'first learning song') into numerical form; Learning the artificial neural network using the time series data; Outputting a new music piece by the artificial neural network; A step of post-processing to correct, when there is a section exceeding a time interval (hereinafter referred to as &quot; exceeding section &quot; And a composition post-processing step of correcting the composition of the new song,
Wherein the step of post-processing includes performing at least a first process,
The first processing may include: an i-th step of subtracting a beat (hereinafter, referred to as 'd') exceeding the excess node from the provided node at any one of the beat of each note constituting the excess node; And a step 2a of discriminating whether or not a beat obtained by subtracting the 'd' of the step 1a from the artificial neural network in the beat group (hereinafter, referred to as 'use beat group'&Lt; / RTI &gt;
The post-composition treatment step
A first step of making the composition of the new tune a C major having a first tune; And a second step of adding the difference between the first summing tone and the second summing tone to all of the notes of the C major to thereby convert the second summing tone to another major having the summing tone. Automatic composing method.
KR1020170009790A 2017-01-20 2017-01-20 Method and recording medium for automatic composition using artificial neural network KR101854706B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170009790A KR101854706B1 (en) 2017-01-20 2017-01-20 Method and recording medium for automatic composition using artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170009790A KR101854706B1 (en) 2017-01-20 2017-01-20 Method and recording medium for automatic composition using artificial neural network

Publications (1)

Publication Number Publication Date
KR101854706B1 true KR101854706B1 (en) 2018-05-08

Family

ID=62187497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170009790A KR101854706B1 (en) 2017-01-20 2017-01-20 Method and recording medium for automatic composition using artificial neural network

Country Status (1)

Country Link
KR (1) KR101854706B1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109771944A (en) * 2018-12-19 2019-05-21 武汉西山艺创文化有限公司 A kind of sound effect of game generation method, device, equipment and storage medium
CN110136730A (en) * 2019-04-08 2019-08-16 华南理工大学 A kind of automatic allocation system of piano harmony and method based on deep learning
CN110264984A (en) * 2019-05-13 2019-09-20 北京奇艺世纪科技有限公司 Model training method, music generating method, device and electronic equipment
KR20200047198A (en) 2018-10-26 2020-05-07 주식회사 크리에이티브마인드 Apparatus and method for automatically composing music
KR20200048716A (en) 2018-10-30 2020-05-08 주식회사 크리에이티브마인드 Method and apparatus for composing background music of online-chat
KR20200048717A (en) 2018-10-30 2020-05-08 주식회사 크리에이티브마인드 Method and apparatus for composing bridge music that connect two music
KR20200124088A (en) 2019-04-23 2020-11-02 주식회사 크리에이티브마인드 Method for generating music based on feeling of toy user
KR20200124089A (en) 2019-04-23 2020-11-02 주식회사 크리에이티브마인드 Method for composing music based on surrounding environment and apparatus therefor
CN114842819A (en) * 2022-05-11 2022-08-02 电子科技大学 Single track MIDI music generation method based on deep reinforcement learning
KR102551872B1 (en) 2022-08-12 2023-07-05 한국전자인증 주식회사 The Music-NFT Generating System based on AI Performed in Metaverse

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
비특허문헌

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200047198A (en) 2018-10-26 2020-05-07 주식회사 크리에이티브마인드 Apparatus and method for automatically composing music
KR20200048717A (en) 2018-10-30 2020-05-08 주식회사 크리에이티브마인드 Method and apparatus for composing bridge music that connect two music
KR20200048716A (en) 2018-10-30 2020-05-08 주식회사 크리에이티브마인드 Method and apparatus for composing background music of online-chat
CN109771944B (en) * 2018-12-19 2022-07-12 武汉西山艺创文化有限公司 Game sound effect generation method, device, equipment and storage medium
CN109771944A (en) * 2018-12-19 2019-05-21 武汉西山艺创文化有限公司 A kind of sound effect of game generation method, device, equipment and storage medium
CN110136730B (en) * 2019-04-08 2021-07-20 华南理工大学 Deep learning-based piano and acoustic automatic configuration system and method
CN110136730A (en) * 2019-04-08 2019-08-16 华南理工大学 A kind of automatic allocation system of piano harmony and method based on deep learning
KR20200124088A (en) 2019-04-23 2020-11-02 주식회사 크리에이티브마인드 Method for generating music based on feeling of toy user
KR20200124089A (en) 2019-04-23 2020-11-02 주식회사 크리에이티브마인드 Method for composing music based on surrounding environment and apparatus therefor
CN110264984B (en) * 2019-05-13 2021-07-06 北京奇艺世纪科技有限公司 Model training method, music generation method and device and electronic equipment
CN110264984A (en) * 2019-05-13 2019-09-20 北京奇艺世纪科技有限公司 Model training method, music generating method, device and electronic equipment
CN114842819A (en) * 2022-05-11 2022-08-02 电子科技大学 Single track MIDI music generation method based on deep reinforcement learning
KR102551872B1 (en) 2022-08-12 2023-07-05 한국전자인증 주식회사 The Music-NFT Generating System based on AI Performed in Metaverse

Similar Documents

Publication Publication Date Title
KR101854706B1 (en) Method and recording medium for automatic composition using artificial neural network
JP2017107228A (en) Singing voice synthesis device and singing voice synthesis method
US9607593B2 (en) Automatic composition apparatus, automatic composition method and storage medium
Shetty et al. Raga mining of Indian music by extracting arohana-avarohana pattern
US9460694B2 (en) Automatic composition apparatus, automatic composition method and storage medium
US11887566B2 (en) Method of generating music data
KR101795706B1 (en) Method and recording medium for automatic composition using artificial neural network
Zhou et al. BandNet: A neural network-based, multi-instrument Beatles-style MIDI music composition machine
Doush et al. Automatic music composition using genetic algorithm and artificial neural networks
Jędrzejewska et al. Generating musical expression of MIDI music with LSTM neural network
KR101934057B1 (en) Method and recording medium for automatic composition using hierarchical artificial neural networks
Alfonseca et al. A simple genetic algorithm for music generation by means of algorithmic information theory
Lo Evolving cellular automata for music composition with trainable fitness functions
KR20170128070A (en) Chord composition method based on recurrent neural network
Kunimatsu et al. A music composition model with genetic programming-a case study of chord progression and bassline
Yanchenko et al. Classical music composition using state space models
US10431191B2 (en) Method and apparatus for analyzing characteristics of music information
CN116229922A (en) Drum music generation method based on Bi-LSTM deep reinforcement learning network
Liu et al. Fusing Flamenco and Argentine Tango by evolutionary composition
Kan et al. Generation of irregular music patterns with deep learning
Oliwa Genetic algorithms and the abc music notation language for rock music composition
JP2006201278A (en) Method and apparatus for automatically analyzing metrical structure of piece of music, program, and recording medium on which program of method is recorded
Bozhanov Computoser-rule-based, probability-driven algorithmic music composition
KR20170128072A (en) Music composition method based on free order markov chain and bayes inference
Vargas et al. Artificial musical pattern generation with genetic algorithms

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant