KR102093233B1 - 신경망 기반의 음악 자동 생성 장치 및 그 방법 - Google Patents

신경망 기반의 음악 자동 생성 장치 및 그 방법 Download PDF

Info

Publication number
KR102093233B1
KR102093233B1 KR1020180115034A KR20180115034A KR102093233B1 KR 102093233 B1 KR102093233 B1 KR 102093233B1 KR 1020180115034 A KR1020180115034 A KR 1020180115034A KR 20180115034 A KR20180115034 A KR 20180115034A KR 102093233 B1 KR102093233 B1 KR 102093233B1
Authority
KR
South Korea
Prior art keywords
music
neural network
matrix
learning
correct answer
Prior art date
Application number
KR1020180115034A
Other languages
English (en)
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 KR1020180115034A priority Critical patent/KR102093233B1/ko
Application granted granted Critical
Publication of KR102093233B1 publication Critical patent/KR102093233B1/ko

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
    • 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/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

본 발명은, 학습을 이용한 신경망 기반의 음악 자동 생성 장치에 있어서, 복수의 음악 데이터를 각각 인코딩하여, 상기 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성하는 인코딩부와, 무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 상기 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성하는 생성부와, 생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류하는 분류부, 및 상기 정답 음악 행렬의 분류 정확도가 제1 기준값 이상이고 상기 가상 음악 행렬의 분류 정확도가 상기 제1 기준값보다 낮은 제2 기준값 미만인 조건을 만족할 때까지, 상기 제1 신경망과 제2 신경망을 각각 학습시키는 제어부를 포함하며, 상기 생성부는, 학습이 완료된 후, 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력하는 신경망 기반의 음악 자동 생성 장치를 제공한다.
본 발명에 따르면, 기존 음악 데이터들의 신경망 학습을 기반으로 일정 수준 이상의 음악을 자동으로 작곡하여 제공할 수 있음은 물론 전문 작곡가 없이도 새로운 음악을 빠르고 용이하게 작곡할 수 있는 이점을 제공한다.

Description

신경망 기반의 음악 자동 생성 장치 및 그 방법{Apparatus for automatically generating music based on neural network and method thereof}
본 발명은 신경망 기반의 음악 자동 생성 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 기존 음악 데이터들의 신경망 학습을 이용하여 새로운 음악을 자동으로 생성하여 출력할 수 있는 신경망 기반의 음악 자동 생성 장치 및 그 방법에 관한 것이다.
일반적으로 음악의 작곡, 편곡 등의 행위는 일반인들이 접근할 수 없는 소수 전문가들만의 고유 영역으로 분류되고 있다.
최근에는 누구나 작곡 행위가 가능하도록, 컴퓨터, 모바일 기기 상에 동작 가능한 다양한 음악 제작 툴이 제공되고 있으며, 이를 통해 일반 사용자는 제작 툴 상에서 직접 디지털 음을 생성 및 조합하여 다양한 음악이나 곡을 제작할 수 있다.
하지만 다양한 음악 제작 툴의 지원에도 불구하고, 음악적 지식, 전문성, 작곡 능력 등이 다소 부족한 전문가가 아닌 일반 사용자의 경우 일정 수준의 음악을 만드는 데는 한계가 있다.
따라서, 전문 작곡가 없이도 일정 수준 이상의 음악을 자동으로 작곡할 수 있는 제작 툴이 요구된다.
본 발명의 배경이 되는 기술은 한국공개특허 제2017-0088451호(2017.08.02 공개)에 개시되어 있다.
본 발명은, 기존 음악 데이터들의 신경망 학습을 이용하여 새로운 음악을 자동 생성하여 출력할 수 있는 신경망 기반의 음악 자동 생성 장치 및 그 방법을 제공하는데 목적이 있다.
본 발명은, 학습을 이용한 신경망 기반의 음악 자동 생성 장치에 있어서, 복수의 음악 데이터를 각각 인코딩하여, 상기 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성하는 인코딩부와, 무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 상기 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성하는 생성부와, 생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류하는 분류부, 및 상기 정답 음악 행렬의 분류 정확도가 제1 기준값 이상이고 상기 가상 음악 행렬의 분류 정확도가 상기 제1 기준값보다 낮은 제2 기준값 미만인 조건을 만족할 때까지, 상기 제1 신경망과 제2 신경망을 각각 학습시키는 제어부를 포함하며, 상기 생성부는, 학습이 완료된 후, 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력하는 신경망 기반의 음악 자동 생성 장치를 제공한다.
또한, 상기 신경망 기반의 음악 자동 생성 장치는, 상기 제1 신경망에서 새롭게 만들어진 소정 음악 행렬을 디코딩하여 상기 소정 음악 행렬에 대응하는 소정 음악 데이터를 생성하여 출력하는 디코딩부를 더 포함할 수 있다.
또한, 상기 인코딩부는, 미디(MIDI) 데이터 양식의 상기 음악 데이터를 원 핫 인코딩(One-Hot Encoding) 방식으로 인코딩하여 상기 정답 음악 행렬을 생성할 수 있다.
또한, 상기 정답 음악 행렬은, 상기 시간에 따라 구분되는 M개의 행 및 상기 음 벡터를 구성하는 음 원소의 종류에 따라 구분되는 N개의 열을 가지며, 상기 정답 음악 행렬의 i 번째 행은, 상기 음악 데이터의 i 번째 시간에 대한 음 벡터 성분을 의미하며, 상기 음 벡터 성분을 구성하는 복수의 음 원소 중 i 번째 시간에 연주된 음 원소는 '1', 비연주된 음 원소는 '0'의 값으로 인코딩될 수 있다.
또한, 상기 인코딩부는, 상기 정답 음악 행렬의 행 크기가 상기 복수의 음악 데이터 별로 균일하도록, 상기 복수의 음악 데이터 중 최대 시간 길이를 갖는 제1 음악 데이터를 기준으로 상기 M 값을 결정하며, 나머지 음악 데이터의 인코딩 시에는 연주 음이 전혀 존재하지 않은 해당 번째 시간에 대한 음 벡터 성분의 내부 원소를 모두 '0'의 값으로 인코딩할 수 있다.
또한, 상기 정답 음악 행렬 및 가상 음악 행렬 각각에 대한 제1 및 제2 분류 정확도(A1 및 A2)는 아래의 수학식으로 정의되며, 상기 제1 기준값은 0.9 내지 1 사이의 값이고, 상기 제2 기준 값은 0 내지 0.1 사이의 값일 수 있다.
Figure 112018095482494-pat00001
여기서, P1 및 P2는 상기 제2 신경망의 학습을 위해 각각 입력된 상기 정답 음악 행렬 및 가상 음악 행렬의 개수, Q1 및 Q2는 입력된 정답 음악 행렬 및 가상 음악 행렬 각각을 실제로 정답 음악 행렬 및 가상 음악 행렬로 정확히 분류한 개수이며, 0≤A1≤1, 0≤A2≤1, 0≤Q1≤P1, 0≤Q2≤P2 이다.
또한, 상기 제어부는, 상기 제1 및 제2 분류 정확도 간을 비교한 결과를 기초로, 상기 제1 및 제2 신경망 중 어느 한 신경망의 학습 동작을 일시 정지시키고 나머지 신경망의 학습 동작만 진행시키는 신경망 간 중재 모드를 구동할 수 있다.
또한, 상기 제어부는, 상기 제1 분류 정확도인 A1 값과, 1에서 상기 제2 분류 정확도(A2)를 차감한 A2' 값(A2'=1-A2)을 비교하며, |A1-A2'|≤B인 경우 제1 및 제2 신경망의 학습 동작을 지속시키되, A1-A2'>B인 경우 상기 제2 신경망의 학습 동작을 일시 정지시키고 상기 제1 신경망의 학습 동작만 진행시키며, A1-A2'<-B인 경우 상기 제1 신경망의 학습 동작을 일시 정지시키고 상기 제2 신경망의 학습 동작만 진행시키며, 상기 B는 0.1과 0.3 사이의 값일 수 있다.
그리고, 본 발명은, 신경망 기반의 음악 자동 생성 장치를 이용한 음악 자동 생성 방법에 있어서, 복수의 음악 데이터를 각각 인코딩하여, 상기 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성하는 단계와, 무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 상기 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성하는 단계와, 생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류하는 단계와, 상기 정답 음악 행렬의 분류 정확도가 제1 기준값 이상이고 상기 가상 음악 행렬의 분류 정확도가 상기 제1 기준값보다 낮은 제2 기준값 미만인 조건을 만족할 때까지, 상기 제1 신경망과 제2 신경망을 각각 학습시키는 단계, 및 학습이 완료된 후, 상기 제1 신경망을 통해 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력하는 단계를 포함하는 신경망 기반의 음악 자동 생성 방법을 제공한다.
또한, 상기 신경망 기반의 음악 자동 생성 방법은, 상기 학습이 완료된 상기 제1 신경망을 통하여 새롭게 만들어진 소정 음악 행렬을 디코딩하여 상기 소정 음악 행렬에 대응하는 소정 음악 데이터를 생성하여 출력하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 기존 음악 데이터들의 신경망 학습을 기반으로 일정 수준 이상의 음악을 자동으로 작곡하여 제공할 수 있음은 물론 전문 작곡가 없이도 새로운 음악을 빠르고 용이하게 작곡할 수 있는 이점을 제공한다.
도 1은 본 발명의 실시예에 따른 신경망 기반의 음악 자동 생성 장치의 구성을 나타낸 도면이다.
도 2는 도 1을 이용한 음악 자동 생성 방법을 설명하는 도면이다.
도 3은 본 발명의 실시예에 사용되는 미디 데이터 양식의 음악 데이터를 예시한 도면이다.
도 4는 본 발명의 실시예에서 음악 데이터를 인코딩하여 생성한 정답 음악 행렬을 예시한 도면이다.
도 5는 본 발명의 실시예에서 무작위 노이즈 벡터를 기반으로 가상 음악 행렬을 생성한 예를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따라 학습된 제1 신경망을 이용하여 새로운 음악을 자동 생성하는 예를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 학습 동작을 구체적으로 예시한 도면이다.
도 8은 본 발명의 실시예에서 제1 신경망의 학습을 멈추는 예를 나타낸 도면이다.
도 9는 본 발명의 실시예에서 제2 신경망의 학습을 멈추는 예를 나타낸 도면이다.
도 10은 본 발명의 실시예에서 학습을 종료하는 예를 나타낸 도면이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
본 발명은 신경망 기반의 음악 자동 생성 장치 및 그 방법에 관한 것으로, 실제 존재하는 기존의 음악 데이터를 신경망에 학습시켜 작곡가 없이도 실제 음악 수준의 음악 데이터를 자동으로 생성할 수 있는 기법을 제시한다.
도 1은 본 발명의 실시예에 따른 신경망 기반의 음악 자동 생성 장치의 구성을 나타낸 도면이고, 도 2는 도 1을 이용한 음악 자동 생성 방법을 설명하는 도면이다.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 신경망 기반의 음악 자동 생성 장치(100)는 인코딩부(110), 생성부(120), 분류부(130), 제어부(140), 디코딩부(150)를 포함한다.
우선, 인코딩부(110)는 복수의 음악 데이터를 각각 인코딩하여, 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성한다(S210).
인코딩부(110)는 음악 데이터 내에서 시간별 연주된 음 요소들을 분석하여, 해당 음악 데이터를 하나의 행렬 형태로 변환한다. 이와 같이 변환된 행렬은 실제 기 존재하는 음악 데이터로부터 생성된 것이므로, 이하에서는 이를 '정답 음악 행렬'로 명명한다.
본 발명의 실시예에서 인코딩부(110)는 미디(MIDI;Musical Instrument Digital Interface) 데이터 양식으로 저장된 음악 데이터를 원 핫 인코딩(One-Hot Encoding) 방식으로 인코딩하여 정답 음악 행렬을 생성할 수 있다.
도 3은 본 발명의 실시예에 사용되는 미디 데이터 양식의 음악 데이터를 예시한 도면이다.
도 3에 나타낸 것과 같이, 본 발명의 실시예는 미디 양식으로 저장된 음악 데이터를 사용하며, 미디 양식의 음악 데이터는 tick, start/end, pitch, loud 등의 특징 요소를 포함한다.
인코딩부(110)는 음악 데이터에 포함된 여러 특징들(tick, start/end, pitch, loud) 중에서 tick, start/end, pitch와 같은 3가지 특징을 고려하여 해당 음악 데이터를 인코딩할 수 있다.
예를 들어, 4/4 박자의 음악은 한 곡절에 4개의 박자가 존재하는데, 이때 한 박자는 96 ticks이며, 한 곡절은 384 ticks이다. tick 값을 알면 음악 데이터 내 해당 음과 관련된 시간(음의 시작 시점, 종료 시점, 음의 유지 시간 등)을 알 수 있다.
pitch 값은 MIDI 음표 번호(음표의 음높이)이며, 0에서 127 사이의 정수를 갖는다. 예를 들면 정수 60은 음표 C를 의미한다. 음표 수는 128개가 존재하지만 작곡할 때는 주로 60~71 까지의 12개(C, C#, D, D#, E, F, F#, G, G#, A, A#, B)의 음표를 사용한다.
start/end 값은 음의 시작/종료를 나타내는 것으로, Note_on_c인 경우 해당 음표의 연주가 시작된 것을 의미하고, Note_off_c인 경우 해당 음표의 연주가 종료된 것을 의미한다.
예를 들어, 도 3의 첫 줄의 경우, 음악 데이터에서 96번째 시간(tick = 96)이 되면 음표 C("도")(pitch = 60)의 연주가 시작(start/end = Note_on_c)되는 것을 의미하고, 두 번째 줄의 경우 192번째 시간(tick = 192)이 되면 음표 C(pitch = 60)의 연주가 종료(start/end = Note_off_c)되는 것을 의미한다. 이는 곧, 96번째 시간부터 192번째 시간까지 음표 C의 연주가 유지되는 것을 나타낸다.
192번째 시간(tick = 192)에서 음표 C의 연주는 종료되지만, 도 3의 셋째 줄과 같이 음표 D("레")(pitch = 62)의 연주가 시작된 것을 알 수 있다. 물론, 동일 시점(picth) 기준으로 하나의 음표가 연주될 수 있고 복수의 음표가 동시 연주될 수도 있으며, 무음과 같이 어떠한 음표도 전혀 연주되지 않을 수 있다.
이와 같은 미디 양식의 음악 데이터를 원 핫 인코딩(One-Hot Encoding) 방식으로 인코딩하면, 음악 데이터에 대응하는 정답 음악 행렬이 생성될 수 있다.
도 4는 본 발명의 실시예에서 음악 데이터를 인코딩하여 생성한 정답 음악 행렬을 예시한 도면이다.
도 4의 상단 그림은 미디 양식의 음악 데이터를 피아노 롤(Pinao Roll) 방식으로 표현한 것이다. 피아노 롤은 MIDI 데이터를 연주할 때 입력된 음의 종류와 입력된 음이 유지되는 시간을 표현해 주는 방식을 의미하며 상술한 3가지 특징과 관련된다.
도 4의 하단 그림은 미디 양식의 음악 데이터를 원 핫 인코딩 방식으로 인코딩하여 획득한 정답 음악 행렬을 나타낸다. 정답 음악 행렬은 시간(t; tick)에 따라 구분되는 M개의 행과, 음 벡터를 구성하는 음 원소의 종류에 따라 구분되는 N개의 열을 포함하여 M×N 크기로 형성된다.
여기서, 정답 음악 행렬의 i 번째 행은 음악 데이터의 i 번째 시간에 대한 음 벡터 성분을 의미하며, 음 벡터 성분을 구성하는 음 원소의 개수는 N개가 된다. 음악 생성할 때 주로 C major(C 장조) 음계의 12개 음(C, C#, D, D#, E, F, F#, G, G#, A, A#, B)을 사용하므로, 이하에서는 설명의 편의상 N=12인 것을 가정한다.
도 4를 참조하면, 음 벡터 성분 내의 12개의 음 원소 중에서, 해당 시간에 실제 연주된 음 원소는 '1', 비연주된 음 원소는 '0'의 값으로 인코딩된다. 즉, 원 핫 인코딩 방식에 따라, 음 벡터에 포함된 12개의 음 원소 각각은 t 시간에 음이 활성화되고 있으면 '1'로, 활성화되어 있지 않으면 '0'이 된다.
예를 들어, 해당 시간에 눌려져 있는 음은 벡터 중의 그 음을 표현하는 원소를 '1'로 설정하고, 눌리지 않은 원소는 '0'으로 설정한다.
만일, i번째 시간(i 번째 행)에 C 코드가 눌려져 있는 상태이면 그에 대한 음 벡터 성분은 [1,0,0,0,0,0,0,0,0,0,0,0]가 되고, C# 코드가 눌려져 있는 상태라면 [0,1,0,0,0,0,0,0,0,0,0,0]가 되며, C, D 및 D#가 동시에 눌려져 있는 상태이면 [1,0,1,1,0,0,0,0,0,0,0,0]로 인코딩된다.
또한, 사용된 음악 데이터 각각은 재생 시간이 서로 상이한데, 복수의 음악 데이터에 대해 모두 균일한 사이즈의 정답 음악 행렬을 얻기 위해서는 M 값을 통일시켜야 한다.
즉, 정답 음악 행렬의 행 크기가 복수의 음악 데이터 별로 균일하도록, 인코딩부(110)는 복수의 음악 데이터 중 최대 시간 길이를 갖는 제1 음악 데이터를 기준으로 M 값을 결정한다. 또한, 제1 음악 데이터를 제외한 나머지 음악 데이터의 인코딩 시에는 연주 음이 전혀 존재하지 않은 해당 번째 시간에 대한 음 벡터 성분의 내부 원소를 모두 '0'의 값으로 인코딩한다.
예를 들어, 최대 시간을 갖는 제1 음악 데이터의 tick 사이즈(행렬의 세로축 길이)가 1000인 경우 이로부터 생성한 정답 음악 행렬의 마지막 시간 값은 1000이 되므로 M=1000으로 결정될 수 있다. 그리고, 제1 음악 데이터를 제외한 음악 데이터의 경우 데이터의 뒷 부분에 음 정보가 없는 시간 구간이 존재하는데 해당 시간 구간에서의 음 벡터들은 모두 [0,0,0,0,0,0,0,0,0,0,0,0]로 설정하여 행렬 사이즈를 맞춰준다.
이상과 같은 방식으로, 인코딩부(110)는 K개의 음악 데이터를 기반으로 K개의 정답 음악 행렬을 생성할 수 있다. 생성된 복수의 정답 음악 행렬은 추후 분류부(130)의 학습 데이터로 사용된다.
다음, 생성부(120)는 제1 신경망을 이용하여 가상 음악 행렬을 생성한다. 구체적으로, 생성부(120)는 무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성한다(S220).
제1 신경망은 순환 신경망(RNN; Recursive Neural Network)으로 구성되며, 입력된 무작위 노이즈 음 벡터를 기반으로 가상 음악 행렬을 생성하도록 구성된다.
이때, 무작위의 노이즈 음 벡터란, 음 벡터 내의 12개의 음 원소 각각이 1과 0 중에 랜덤하게 설정된 것을 의미한다. 단일의 노이즈 음 벡터는 입력부(미도시)를 통해 사용자로부터 직접 무작위로 입력받아 설정받을 수 있고, 생성부(120)에서 직접 무작위로 설정할 수도 있다. 여기서, 단일이라는 표현을 사용한 것은 음 벡터 하나의 tick 사이즈는 1로서 음 벡터 하나는 한 줄의 행 성분에 해당하기 때문이다.
도 5는 본 발명의 실시예에서 무작위 노이즈 벡터를 기반으로 가상 음악 행렬을 생성한 예를 나타낸 도면이다.
도 5에 도시된 생성부(Generator)(120)는 순환 신경망으로 구성될 수 있다. 순환 신경망은 초기에 무작위 노이즈 벡터 [1,0,1,1,0,1,0,1,0,1,0,0]를 입력받아 첫 행의 음 정보 벡터를 도출하고, 이를 다시 순환 입력시켜 둘째 행의 음 정보 벡터를 도출한다. 이와 같이, 이전 시간에 대해 도출된 음 정보 벡터를 다시 입력단에 입력시켜 다음 시간의 음 정보 벡터를 출력하는 동작을 제1 음악 데이터의 시간 길이(최대 시간)까지 반복함으로써, 총 M개의 음 정보 벡터가 만들어진다.
생성된 M개의 음 정보 벡터를 시간에 따라 결합하면 도 5와 같은 가상 음악 행렬이 만들어진다. 물론, 앞서와 동일 방법으로, 또 다른 무작위 노이즈 벡터를 사용하면 또 다른 가상 음악 행렬을 생성할 수 있다. 예를 들어, K개의 무작위 노이즈 벡터를 각각 기반으로 K개의 가상 음악 행렬을 생성할 수 있다. 생성된 가상 음악 행렬 역시 추후 분류부(130)의 학습 데이터로 사용된다.
무작위 노이즈 음 벡터를 기반으로 제1 신경망에서 생성한 가상 음악 행렬은 수준 이하의 음악일 가능성이 높다. 하지만 본 발명의 실시예는 가상 음악 행렬이 정답 음악 행렬과 같은 실제 음악 수준의 데이터로 도출될 수 있도록, 이하의 제2 신경망의 동작과 연동하여 제1 신경망을 계속하여 학습시키는 과정을 수반한다. 이는 추후 상세히 설명할 것이다.
다음, 분류부(130)는 상술한 각 단계를 통해 생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아, 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류한다(S230).
제2 신경망은 입력된 해당 행렬이 정답 음악 행렬인지(음악 수준의 데이터인지; T 값으로 출력), 가상 음악 행렬(비음악 수준의 데이터; F 값으로 출력)인지 판단하여 분류하는 신경망으로, 합성곱 신경망(CNN; Convolutional Neural Network) 혹은 순환 신경망으로 구성될 수 있다.
음악 데이터로부터 생성된 정답 음악 행렬은 모두 실제 음악 수준의 데이터이다. 그러나, 학습 초기에 제1 신경망에서 무작위 노이즈 벡터에 기반하여 생성된 가상 음악 행렬은 일반 잡음과 같이 음악으로 여기기 어려운 비음악 수준의 데이터에 해당한다.
분류부(130)는 정답 음악 행렬과 같은 음악 수준의 행렬이 입력되면, 정답 음악 행렬인 것으로 분류('T'를 출력)하고, 음악으로 보기 어려운 행렬이 입력되면, 가상 음악 행렬인 것으로 분류('F'를 출력)하도록 학습된다.
다만, 제1 신경망의 학습 횟수가 늘어날수록 제1 신경망에서 생성한 가상 음악 행렬은 실제 정답 음악 행렬과 유사 수준의 행렬로 도출될 수 있게 된다. 향후에 제1 신경망에서 생성된 가상 음악 행렬이 음악 수준의 행렬 데이터인 경우, 제2 신경망은 이에 대해 정답 음악 행렬로 분류하게 될 것이다.
이러한 원리를 이용하여, 제어부(140)는 정답 음악 행렬에 대한 분류 정확도가 제1 기준값(ex, 0.95) 이상이고 가상 음악 행렬에 대한 분류 정확도가 제2 기준값(ex, 0.05) 미만인 조건을 만족할 때까지, 제1 신경망과 제2 신경망을 각각 학습시킨다(S240).
제어부(140)는 제1 및 제2 신경망 각각의 학습 동작을 제어하며, 학습 제어에 따라, 제2 신경망은 음악 수준의 행렬과 그렇지 않은 행렬을 잘 구분하도록 학습되며, 제1 신경망은 생성하는 가상 음악 행렬이 점차 음악 수준의 행렬이 되도록 학습될 수 있다.
제어부(140)는 제1 및 제2 신경망의 학습 과정에서 두 신경망 중 어느 하나의 학습을 중단시키고 나머지 하나의 학습만 진행시킬 수 있다. 또한, 제어부(140)는 앞서 상술한 조건이 만족되면 두 신경망의 학습 과정을 모두 중단시킨다. 이에 대해서는 추후 더욱 상세히 설명할 것이다.
분류 정확도를 설명하면, 인코딩부(110)에서 생성한 정답 음악 행렬에 대한 제1 분류 정확도(A1) 및 생성부(120)에서 생성한 가상 음악 행렬에 대한 제2 분류 정확도(A2)는 아래의 수학식 1과 같이 정의된다.
Figure 112018095482494-pat00002
여기서, P1 및 P2는 각각 제2 신경망의 학습에 사용된 정답 음악 행렬의 개수 및 가상 음악 행렬의 개수이다. 본 발명의 실시예에서 P1=P2=K로 동일하다.
Q1은 K개의 정답 음악 행렬 중 실제 정답 음악 행렬로 분류한 개수로서, 0≤Q1≤P1이다. 마찬가지로, Q2는 K개의 가상 음악 행렬 중 실제로 가상 음악 행렬로 분류한 개수로서, 0≤Q2≤P2 이다. 각각의 정확도는 0≤A1≤1, 0≤A2≤1의 범위 내에서 연산된다.
P1=P2=20인 상황을 예를 들면, 입력된 2O개의 정답 음악 행렬 중 19개는 정답 음악 행렬(T)로 분류하고 나머지 1개는 가상 음악 행렬(F)로 분류한 경우, A1 = Q1/P1 = 19/20 = 0.95가 된다. 또한, 입력된 2O개의 가상 음악 행렬 중 1개만 가상 음악 행렬(F)로 분류하고 나머지 19개를 모두 정답 음악 행렬(T)로 분류한 경우, A2 = Q2/P2 = 1/20 = 0.05가 된다.
본 발명의 실시예에서 제1 기준값은 0.95, 제2 기준값은 0.05를 예시하고 있지만, 제1 기준값은 0.9 내지 1 사이의 값이 사용될 수 있고, 제2 기준 값은 0 내지 0.1 사이의 값이 사용될 수 있다.
이와 같이 제1 분류 정확도(A1)은 0.95 이상, 제2 분류 정확도(A2)는 0.05 이하를 추종할 때까지, 제어부(140)는 제1 및 제2 학습기의 학습 동작을 제어하고, 조건을 만족하면 학습을 중단한다.
또한, 그 과정에서 두 학습기 중 어느 하나의 학습 능력이나 성능이 상대적으로 너무 강할 경우에는 이들 중 하나의 학습을 일시 중단시키는 학습 중재 모드를 구동하여 학습기 간 학습 동작의 균형을 맞출 수 있다. 학습기 간 중재 모드에 대해서는 추후 상세히 설명할 것이다.
학습이 완료된 이후부터 생성부(120)는 제1 신경망에 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력한다(S250).
이후, 디코딩부(150)는 제1 신경망에서 새롭게 만들어진 소정 음악 행렬을 디코딩하여 소정 음악 행렬에 대응하는 소정 음악 데이터(새 음악)을 생성하여 출력한다(S260).
도 6은 본 발명의 실시예에 따라 학습된 제1 신경망을 이용하여 새로운 음악을 자동 생성하는 예를 나타낸 도면이다.
우선, 제1 신경망에 무작위 Noise 벡터를 주입한다. 도 6의 경우 훈련 과정에 사용된 무작위 노이즈 벡터와 동일한 것을 사용한 것을 예시하고 있다.
생성부(120)(Generator)는 무작위 노이즈 벡터를 훈련이 완료된 제1 신경망에 입력하여 새로운 음악 행렬을 생성한다. 생성된 음악 행렬은 앞서 도 5의 결과와는 상이한 것을 알 수 있다.
즉, 학습이 완료된 이후에 제1 신경망을 통한 음악 행렬 생성 방법은 앞서 도 5의 방식과 동일하다. 다만, 도 5와 다른 점은 초기의 제1 신경망의 경우 무작위 노이즈 벡터가 주입되었을 때 음악으로 보기 어려운 잡음 수준의 음악 행렬을 생성하지만 학습이 종료된 이후의 제1 신경망은 무작위 노이즈 벡터가 주입되더라도 실제 음악 수준의 데이터를 생성할 수 있게 된다.
이후, 디코딩부(150)는 생성된 해당 음악 행렬을 원핫 인코딩 방법과 피아노 롤 기법을 통해 MIDI 양식의 음악 데이터로 전환시킨다. 원핫 인코딩 방법을 이용하면 행렬의 행 정보인 음 정보 벡터(예: [1,0,0,1,0,1,0,0,0,1,0,0])와 세로축 정보인 tick 값을 고려해서 행렬 데이터를 Piano Roll 형식으로 표현 가능하다.
Piano Roll 방법으로 표현된 이후 음 벡터 정보와 Tick 정보는 음의 정수 표현, 음의 유지 시간, 그리고 음의 시작 및 종료 시점과 관련한 특징들(pitch, tick, start/end)로 변환되어 MIDI 데이터로 전환되고 이를 저장할 수 있다. 즉, 디코딩 과정은 인코딩 과정과 반대 방식으로 이루어진다.
디코딩부(150)는 상술한 디코딩 과정을 통해 MIDI 양식인 새 음악을 생성하며, 이는 컴퓨터, 사용자 단말기, 미디어 장치 등과 같은 기계에서 연주할 수 있으며, 사용자가 연주 가능하도록 실제 악보로 변경 가능하다.
이와 같은, 본 발명의 실시예의 경우, 기 저장된 음악 데이터들만으로 신규 음악의 자동 생성이 가능함은 물론, 소정 장조나 장르의 음악 데이터 별로 개별 학습을 수행해 둘 경우 사용자로부터 선택받은 소정 장조나 장르에 해당하는 음악을 자동 생성(작곡)하여 제공할 수 있다.
이하에서는 S240 단계에서 제어부(140)에 의한 중재 모드를 구체적으로 설명한다.
여기서, 제어부(140)는 학습 과정에서 실시간 연산되는 제1 분류 정확도(A1) 및 제2 분류 정확도(B1) 간을 비교한 결과를 기초로, 제1 및 제2 신경망 중 어느 한 신경망의 학습 동작을 일시 정지시키고 나머지 신경망의 학습 동작만 진행시키는 신경망 간 중재 모드를 구동한다.
구체적으로, 제어부(140)는 학습 과정에서 제1 분류 정확도인 A1 값과, 1에서 제2 분류 정확도(A2)를 차감한 A2' 값(A2'=1-A2)을 비교한다.
여기서, |A1-A2'|≤B(예를 들어, B=0.2)인 경우, 제1 및 제2 신경망 간의 학습 속도가 오차 아내로 비슷한 것으로 판단하여, 두 신경망의 학습 동작을 지속시킨다. 여기서, 0.1≤B≤0.3이며, 본 실시예의 경우 B=0.2를 사용한다.
A1-A2'>B(0.2)인 경우에는 제2 신경망의 학습 능력이 훨씬 강한 것으로 판단하여 제2 신경망의 동작을 일시 정지시키고 제1 신경망의 학습 동작만 진행시킨다. 반대로, A1-A2'<-B(-0.2)인 경우 제1 신경망의 학습 능력이 훨씬 강한 것으로 판단하여 제1 신경망의 학습 동작을 일시 정지시키고 제2 신경망의 학습 동작만 진행시킨다.
이러한 내용을 기초로 이하에서는 본 발명의 실시예에 따른 학습 동작을 더욱 구체적으로 설명한다.
도 7은 본 발명의 실시예에 따른 학습 동작을 구체적으로 예시한 도면이다.
제어부(140)는 우선 각각의 신경망의 학습 횟수 e, 상태 유지 횟수 k,i,j를 각각 초기화한다. 상태 유지 횟수란 특정 수준 또는 기준에 도달한 후에 해당 도달 수준이나 기준을 계속 유지(만족)하는지 최종 검증하기 위한 횟수를 의미할 수 있다.
인코딩부(110)와 복수의 정답 음악 행렬을 생성하고 생성부(120)에서는 정답 음악 행렬과 동일 개수의 가상 음악 행렬을 생성한다. 예를 들어 각각의 행렬을 20개씩 생성한다. 각각의 행렬은 분류부(130)에 입력되어 실제 음악 수준의 정답 음악 행렬인지 혹은 비음악 수준의 가상 음악 행렬인지 각각 분류한다. 분류부(130)는 각 행렬에 대한 분류 결과로부터 분류 정확도(A1,A2)를 각각 산출할 수 있다.
제어부(140)는 제1 및 제2 신경망을 각각 최소 10k(1만) 번의 횟수로 학습시킨 다음 각각의 정확도 값(A1,A2)을 기 설정된 기준값(0.95,0.05)과 비교할 수 있다. 일반적으로, 학습이란 신경망 내 가중치의 수정을 통하여 출력 결과를 재확인하는 과정을 의미하며 제어부(140)는 각 신경망에 대해 설정 횟수(1만 회)만큼 반복 학습시킬 수 있다.
도 7을 참조하면, 제어부(140)는 학습 횟수가 1만 회를 충족하는지 비교한다(①). 물론, 1만 회 동안 학습 횟수가 누적되기 전까지는 ②번으로 넘어가지 못하고 아래의 ⑤번 단계로 넘어간다.
⑤번 단계에서 A1-A2' > 0이면, 다시 A1-A2' 값이 0.2 보다 큰지를 판단한다(⑥). A1-A2' > 0.2이면, 두 신경망의 상태 유지 횟수 i,j를 0으로 초기화시키며, 제2 신경망의 학습을 멈추고 제1 신경망의 학습만 계속 진행시킨다. 따라서 학습을 멈추지 않은 제1 신경망의 가중치를 수정하여 제1 신경망을 통한 학습만 수행한다.
하지만, ⑤번 단계에서 A1-A2'이 0보다 작으면 다시 A1-A2' 값이 -0.2 보다 작은지 판단한다(⑦). A1-A2' < -0.2이면, 두 신경망의 상태 유지 횟수 i,j를 0으로 초기화시키며, 제1 신경망의 학습을 멈추고 제2 신경망의 학습만 계속 진행시킨다. 따라서 학습을 멈추지 않은 제2 신경망의 가중치를 수정하여 제2 신경망을 통한 학습만 수행한다.
그런데, 앞서 ⑥번 단계와 ⑦번 단계에서 A1-A2' 이 0.2 이하이거나 -0.2 이상이라는 것은 |A1-A2'|≤0.2인 조건에 해당한다. 이때는 각각의 신경망 유지 횟수 i,j를 0에서 1로 증가시키며, 유지 횟수 i와 j가 각각 10을 만족할 때까지 각 신경망의 학습을 계속 진행시킨다. |A1-A2'|≤0.2인 조건의 유지 횟수 i,j가 10이 되면 각 신경망의 학습을 멈춘다.
현재 상태에서 학습 횟수가 1만 회를 충족하면(①). ②번 단계로 넘어가지만 충족하지 않으면 다시 ⑤번 이하의 과정을 반복할 수 있다
학습 횟수가 1만 회를 충족한 경우(①), 제1 분류 정확도(A1)가 제1 기준값(0.95) 이상을 만족한지 확인하여 만족하는 경우 ③번 단계로 넘어가지만, 그렇지 않으면 다시 ⑤번 이하의 과정을 반복할 수 있다.
제1 분류 정확도(A1)가 제1 기준값(0.95) 이상을 만족하면서, 제2 분류 정확도(A2)가 제2 기준값(0.05) 이하를 만족하지 않는 경우 역시, ⑤번 이하의 과정을 반복할 수 있다.
또한, A1>0.95이고 A2<0.05인 조건을 만족하는 경우에는, 해당 조건에 대한 성능 검증을 위해 학습 횟수를 하나씩 늘려가면서 해당 조건의 상황이 10회 이상 유지되는지 판단하고(④), 10회 이상 유지되면 훈련 과정을 완전히 종료한다.
도 8은 본 발명의 실시예에서 제1 신경망의 학습을 멈추는 예를 나타낸 도면이고, 도 9는 본 발명의 실시예에서 제2 신경망의 학습을 멈추는 예를 나타낸 도면이다. 이러한 도 8 및 도 9는 1만 회 이전의 학습 단계에 해당한다.
각 도면을 참조하면, 20개의 정답 음악 행렬과 20개의 가상 음악 행렬이 학습 데이터로 사용되며, 그에 대한 분류부의 판단 결과 역시 20개씩 존재한다. 앞서 설명한 바와 같이 분류부는 입력된 행렬이 음악 수준의 정답 음악 행렬로 판단되면 T, 비음악 수준인 가상 음악 행렬로 판단되면 F로 출력하는 것을 가정한다.
먼저, 도 9는 학습 횟수 e=301인 상황에서, A1 값은 0.7(=14/20), A2 값은 0.65(=13/20)인 경우로서, 이때 A2'=0.35이 되고, A1-A2'=0.35(=0.7-0.35)가 된다. 이처럼, A1-A2' > 0.2인 경우는 제2 신경망에서 학습이 더 잘 수행되고 있는 상황이기 때문에, 제2 신경망의 학습을 멈춘 상태에서 제1 신경망의 학습을 지속하여 제1 신경망의 학습 성능을 끌어올린다.
도 8은 학습 횟수 e=1001인 상황에서, A1 값은 0.3(=6/20), A2 값은 0.3(=6/20)인 경우로서, 이때 A2'=0.7이 되고, A1-A2'=-0.4(=0.3-0.7)가 된다. 이처럼, A1-A2' < -0.2인 경우는 제1 신경망이 학습이 더 잘 수행되고 있는 상황이므로 제1 신경망의 학습을 멈추고 제2 신경망의 학습을 지속하여 제2 신경망의 학습 성능을 끌어올린다.
도 10은 본 발명의 실시예에서 학습을 종료하는 예를 나타낸 도면이다.
도 10을 참조하면, 학습 횟수 e=11111인 상황에서, A1 값은 0.95, A2 값은 0.05이며, 이는 A1은 0.95 이상이고 A2는 0.05 이하의 조건을 만족한 경우에 해당한다. 또한, e=11111 부터 e=11120까지 총 10회에 걸쳐 상기의 조건을 지속하여 만족한 경우에 해당하므로, 제1 및 제2 신경망의 학습을 완전히 종료한다. 이후부터는 생성부(120)에 무작위 노이즈 벡터를 입력하면 실제 음악 수준의 새로운 음악을 자동 생성할 수 있게 된다.
이상과 같은 본 발명에 따른 신경망 기반의 음악 자동 생성 장치 및 그 방법에 따르면, 기존 음악 데이터들의 신경망 학습을 기반으로 일정 수준 이상의 음악을 자동으로 작곡하여 제공할 수 있음은 물론 전문 작곡가 없이도 새로운 음악을 빠르고 용이하게 작곡할 수 있는 이점을 제공한다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100: 음악 자동 생성 장치 110: 인코딩부
120: 생성부 130: 분류부
140: 제어부 150: 디코딩부

Claims (16)

  1. 학습을 이용한 신경망 기반의 음악 자동 생성 장치에 있어서,
    복수의 음악 데이터를 각각 인코딩하여, 상기 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성하는 인코딩부;
    무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 상기 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성하는 생성부;
    생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류하는 분류부; 및
    상기 정답 음악 행렬의 분류 정확도가 제1 기준값 이상이고 상기 가상 음악 행렬의 분류 정확도가 상기 제1 기준값보다 낮은 제2 기준값 미만인 조건을 만족할 때까지, 상기 제1 신경망과 제2 신경망을 각각 학습시키는 제어부를 포함하며,
    상기 생성부는,
    학습이 완료된 후, 상기 제1 신경망에 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력하는 신경망 기반의 음악 자동 생성 장치.
  2. 청구항 1에 있어서,
    상기 제1 신경망에서 새롭게 만들어진 소정 음악 행렬을 디코딩하여 상기 소정 음악 행렬에 대응하는 소정 음악 데이터를 생성하여 출력하는 디코딩부를 더 포함하는 신경망 기반의 음악 자동 생성 장치.
  3. 청구항 1에 있어서,
    상기 인코딩부는,
    미디(MIDI) 데이터 양식의 상기 음악 데이터를 원 핫 인코딩(One-Hot Encoding) 방식으로 인코딩하여 상기 정답 음악 행렬을 생성하는 신경망 기반의 음악 자동 생성 장치.
  4. 청구항 1에 있어서,
    상기 정답 음악 행렬은,
    상기 시간에 따라 구분되는 M개의 행 및 상기 음 벡터를 구성하는 음 원소의 종류에 따라 구분되는 N개의 열을 가지며,
    상기 정답 음악 행렬의 i 번째 행은,
    상기 음악 데이터의 i 번째 시간에 대한 음 벡터 성분을 의미하며,
    상기 음 벡터 성분을 구성하는 복수의 음 원소 중 i 번째 시간에 연주된 음 원소는 '1', 비연주된 음 원소는 '0'의 값으로 인코딩된 신경망 기반의 음악 자동 생성 장치.
  5. 청구항 4에 있어서,
    상기 인코딩부는,
    상기 정답 음악 행렬의 행 크기가 상기 복수의 음악 데이터 별로 균일하도록, 상기 복수의 음악 데이터 중 최대 시간 길이를 갖는 제1 음악 데이터를 기준으로 상기 M 값을 결정하며,
    나머지 음악 데이터의 인코딩 시에는 연주 음이 전혀 존재하지 않은 해당 번째 시간에 대한 음 벡터 성분의 내부 원소를 모두 '0'의 값으로 인코딩하는 신경망 기반의 음악 자동 생성 장치.
  6. 청구항 1에 있어서,
    상기 정답 음악 행렬 및 가상 음악 행렬 각각에 대한 제1 및 제2 분류 정확도(A1 및 A2)는 아래의 수학식으로 정의되며,
    상기 제1 기준값은 0.9 내지 1 사이의 값이고, 상기 제2 기준 값은 0 내지 0.1 사이의 값인 신경망 기반의 음악 자동 생성 장치:
    Figure 112018095482494-pat00003

    여기서, P1 및 P2는 상기 제2 신경망의 학습을 위해 각각 입력된 상기 정답 음악 행렬 및 가상 음악 행렬의 개수, Q1 및 Q2는 입력된 정답 음악 행렬 및 가상 음악 행렬 각각을 실제로 정답 음악 행렬 및 가상 음악 행렬로 정확히 분류한 개수이며, 0≤A1≤1, 0≤A2≤1, 0≤Q1≤P1, 0≤Q2≤P2 이다.
  7. 청구항 1에 있어서,
    상기 제어부는,
    상기 제1 및 제2 분류 정확도 간을 비교한 결과를 기초로, 상기 제1 및 제2 신경망 중 어느 한 신경망의 학습 동작을 일시 정지시키고 나머지 신경망의 학습 동작만 진행시키는 신경망 간 중재 모드를 구동하는 신경망 기반의 음악 자동 생성 장치.
  8. 청구항 7에 있어서,
    상기 제어부는,
    상기 제1 분류 정확도인 A1 값과, 1에서 상기 제2 분류 정확도(A2)를 차감한 A2' 값(A2'=1-A2)을 비교하며, |A1-A2'|≤B인 경우 제1 및 제2 신경망의 학습 동작을 지속시키되,
    A1-A2'>B인 경우 상기 제2 신경망의 학습 동작을 일시 정지시키고 상기 제1 신경망의 학습 동작만 진행시키며, A1-A2'<-B인 경우 상기 제1 신경망의 학습 동작을 일시 정지시키고 상기 제2 신경망의 학습 동작만 진행시키며,
    상기 B는 0.1과 0.3 사이의 값인 신경망 기반의 음악 자동 생성 장치.
  9. 신경망 기반의 음악 자동 생성 장치를 이용한 음악 자동 생성 방법에 있어서,
    복수의 음악 데이터를 각각 인코딩하여, 상기 음악 데이터에 대한 시간 흐름별 음 벡터 성분을 정의한 정답 음악 행렬을 개별 생성하는 단계;
    무작위의 단일의 노이즈 음 벡터를 제1 신경망에 입력받아 상기 정답 음악 행렬과 동일 사이즈의 가상 음악 행렬을 생성하는 단계;
    생성된 복수의 정답 음악 행렬 및 복수의 가상 음악 행렬을 제2 신경망에 각각 입력받아 입력된 해당 행렬이 정답 또는 가상 음악 행렬인지를 개별 분류하는 단계;
    상기 정답 음악 행렬의 분류 정확도가 제1 기준값 이상이고 상기 가상 음악 행렬의 분류 정확도가 상기 제1 기준값보다 낮은 제2 기준값 미만인 조건을 만족할 때까지, 상기 제1 신경망과 제2 신경망을 각각 학습시키는 단계; 및
    학습이 완료된 후, 상기 제1 신경망에 소정의 무작위 노이즈 음 벡터가 입력되면 실제 음악 수준의 소정 음악 행렬을 생성하여 출력하는 단계를 포함하는 신경망 기반의 음악 자동 생성 방법.
  10. 청구항 9에 있어서,
    상기 제1 신경망에서 새롭게 만들어진 소정 음악 행렬을 디코딩하여 상기 소정 음악 행렬에 대응하는 소정 음악 데이터를 생성하여 출력하는 단계를 더 포함하는 신경망 기반의 음악 자동 생성 방법.
  11. 청구항 9에 있어서,
    상기 인코딩하는 단계는,
    미디(MIDI) 데이터 양식의 상기 음악 데이터를 원 핫 인코딩(One-Hot Encoding) 방식으로 인코딩하여 상기 정답 음악 행렬을 생성하는 신경망 기반의 음악 자동 생성 방법.
  12. 청구항 9에 있어서,
    상기 정답 음악 행렬은,
    상기 시간에 따라 구분되는 M개의 행 및 상기 음 벡터를 구성하는 음 원소의 종류에 따라 구분되는 N개의 열을 가지며,
    상기 정답 음악 행렬의 i 번째 행은,
    상기 음악 데이터의 i 번째 시간에 대한 음 벡터 성분을 의미하며,
    상기 음 벡터 성분을 구성하는 복수의 음 원소 중 i 번째 시간에 연주된 음 원소는 '1', 비연주된 음 원소는 '0'의 값으로 인코딩된 신경망 기반의 음악 자동 생성 방법.
  13. 청구항 12에 있어서,
    상기 인코딩하는 단계는,
    상기 정답 음악 행렬의 행 크기가 상기 복수의 음악 데이터 별로 균일하도록, 상기 복수의 음악 데이터 중 최대 시간 길이를 갖는 제1 음악 데이터를 기준으로 상기 M 값을 결정하며,
    나머지 음악 데이터의 인코딩 시에는 연주 음이 전혀 존재하지 않은 해당 번째 시간에 대한 음 벡터 성분의 내부 원소를 모두 '0'의 값으로 인코딩하는 신경망 기반의 음악 자동 생성 방법.
  14. 청구항 9에 있어서,
    상기 정답 음악 행렬 및 가상 음악 행렬 각각에 대한 제1 및 제2 분류 정확도(A1 및 A2)는 아래의 수학식으로 정의되며,
    상기 제1 기준값은 0.9 내지 1 사이의 값이고, 상기 제2 기준 값은 0 내지 0.1 사이의 값인 신경망 기반의 음악 자동 생성 방법:
    Figure 112018095482494-pat00004

    여기서, P1 및 P2는 상기 제2 신경망의 학습을 위해 각각 입력된 상기 정답 음악 행렬 및 가상 음악 행렬의 개수, Q1 및 Q2는 입력된 정답 음악 행렬 및 가상 음악 행렬 각각을 실제로 정답 음악 행렬 및 가상 음악 행렬로 정확히 분류한 개수이며, 0≤A1≤1, 0≤A2≤1, 0≤Q1≤P1, 0≤Q2≤P2 이다.
  15. 청구항 9에 있어서,
    상기 제1 신경망과 제2 신경망을 각각 학습시키는 단계는,
    상기 제1 및 제2 분류 정확도 간을 비교한 결과를 기초로, 상기 제1 및 제2 신경망 중 어느 한 신경망의 학습 동작을 일시 정지시키고 나머지 신경망의 학습 동작만 진행시키는 신경망 간 중재 모드를 구동하는 신경망 기반의 음악 자동 생성 방법.
  16. 청구항 15에 있어서,
    상기 학습시키는 단계는,
    상기 제1 분류 정확도인 A1 값과, 1에서 상기 제2 분류 정확도(A2)를 차감한 A2' 값(A2'=1-A2)을 비교하며, |A1-A2'|≤B인 경우 제1 및 제2 신경망의 학습 동작을 지속시키되,
    A1-A2'>B인 경우 상기 제2 신경망의 학습 동작을 일시 정지시키고 상기 제1 신경망의 학습 동작만 진행시키며, A1-A2'<-B인 경우 상기 제1 신경망의 학습 동작을 일시 정지시키고 상기 제2 신경망의 학습 동작만 진행시키며,
    상기 B는 0.1과 0.3 사이의 값인 신경망 기반의 음악 자동 생성 방법.
KR1020180115034A 2018-09-27 2018-09-27 신경망 기반의 음악 자동 생성 장치 및 그 방법 KR102093233B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180115034A KR102093233B1 (ko) 2018-09-27 2018-09-27 신경망 기반의 음악 자동 생성 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180115034A KR102093233B1 (ko) 2018-09-27 2018-09-27 신경망 기반의 음악 자동 생성 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR102093233B1 true KR102093233B1 (ko) 2020-03-26

Family

ID=69958594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180115034A KR102093233B1 (ko) 2018-09-27 2018-09-27 신경망 기반의 음악 자동 생성 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102093233B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488485A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 基于卷积神经网络的音乐推荐方法、存储介质和电子装置
CN112885315A (zh) * 2020-12-24 2021-06-01 携程旅游信息技术(上海)有限公司 模型的生成方法、音乐合成的方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329032A (ja) * 1995-05-31 1996-12-13 Sanyo Electric Co Ltd ニュ−ラルネット型パターン認識装置及びニュ−ラルネットの学習方法
US20040089131A1 (en) * 2002-11-12 2004-05-13 Alain Georges Systems and methods for creating, modifying, interacting with and playing musical compositions
KR20170128070A (ko) * 2017-02-20 2017-11-22 반병현 순환형 신경망에 기반한 작곡 방법
KR20180099812A (ko) * 2015-12-30 2018-09-05 페이스북, 인크. 딥러닝 모델을 사용한 엔티티의 식별

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329032A (ja) * 1995-05-31 1996-12-13 Sanyo Electric Co Ltd ニュ−ラルネット型パターン認識装置及びニュ−ラルネットの学習方法
US20040089131A1 (en) * 2002-11-12 2004-05-13 Alain Georges Systems and methods for creating, modifying, interacting with and playing musical compositions
KR20180099812A (ko) * 2015-12-30 2018-09-05 페이스북, 인크. 딥러닝 모델을 사용한 엔티티의 식별
KR20170128070A (ko) * 2017-02-20 2017-11-22 반병현 순환형 신경망에 기반한 작곡 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488485A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 基于卷积神经网络的音乐推荐方法、存储介质和电子装置
CN111488485B (zh) * 2020-04-16 2023-11-17 北京雷石天地电子技术有限公司 基于卷积神经网络的音乐推荐方法、存储介质和电子装置
CN112885315A (zh) * 2020-12-24 2021-06-01 携程旅游信息技术(上海)有限公司 模型的生成方法、音乐合成的方法、系统、设备及介质
CN112885315B (zh) * 2020-12-24 2024-01-02 携程旅游信息技术(上海)有限公司 模型的生成方法、音乐合成的方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
Yang et al. MidiNet: A convolutional generative adversarial network for symbolic-domain music generation
CN109584846B (zh) 一种基于生成对抗网络的旋律生成方法
KR20180063163A (ko) 언어 및/또는 그래픽 아이콘 기반 음악적 경험 디스크립터를 채택한 자동화된 음악 작곡 및 생성 기계, 시스템 및 프로세스
CN105893460B (zh) 一种基于人工智能技术的音乐自动创作方法及装置
CN111583891B (zh) 基于上下文信息的音符向量的自动作曲系统及方法
KR102093233B1 (ko) 신경망 기반의 음악 자동 생성 장치 및 그 방법
WO2020235506A1 (ja) 電子楽器、電子楽器の制御方法、記憶媒体
CN109243416A (zh) 用于产生鼓型式的装置配置和方法
EP3357062A1 (en) Dynamic modification of audio content
JP7327497B2 (ja) 演奏解析方法、演奏解析装置およびプログラム
Cunha et al. Generating guitar solos by integer programming
KR102560394B1 (ko) 악보 코드 ai판별 알고리즘 기반 코드 생성 시스템
KR20200010633A (ko) 사용자 플레이리스트를 이용한 자동 음악 작곡 시스템 및 그 방법
Jagannathan et al. Original music generation using recurrent neural networks with self-attention
US10431191B2 (en) Method and apparatus for analyzing characteristics of music information
KR101934057B1 (ko) 계층적 인공 신경망을 이용한 자동 작곡 방법 및 그 기록 매체
CN110959172A (zh) 演奏解析方法及程序
CN115206270A (zh) 基于循环特征提取的音乐生成模型的训练方法、训练装置
WO2020059465A1 (ja) 演奏データの情報処理装置
KR100762079B1 (ko) 자동음악 작곡 방법 및 자동음악 작곡 시스템
Vargas et al. Artificial musical pattern generation with genetic algorithms
Van Nort et al. A system for musical improvisation combining sonic gesture recognition and genetic algorithms
KR20190111360A (ko) 복선율 음악 생성 방법, 장치, 및 시스템
Colton et al. Neuro-Symbolic Composition of Music with Talking Points
CN113851098B (zh) 一种旋律的风格转换方法、装置、终端设备及存储介质

Legal Events

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