KR20190111360A - 복선율 음악 생성 방법, 장치, 및 시스템 - Google Patents
복선율 음악 생성 방법, 장치, 및 시스템 Download PDFInfo
- Publication number
- KR20190111360A KR20190111360A KR1020180033396A KR20180033396A KR20190111360A KR 20190111360 A KR20190111360 A KR 20190111360A KR 1020180033396 A KR1020180033396 A KR 1020180033396A KR 20180033396 A KR20180033396 A KR 20180033396A KR 20190111360 A KR20190111360 A KR 20190111360A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- music
- rate
- double
- melody
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Details of electrophonic musical instruments
- G10H1/18—Selecting circuits
- G10H1/183—Channel-assigning means for polyphonic instruments
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Details of electrophonic musical instruments
- G10H1/18—Selecting circuits
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Aspects 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/031—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
- G10H2210/066—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for pitch analysis as part of wider processing for musical purposes, e.g. transcription, musical performance evaluation; Pitch recognition, e.g. in polyphonic sounds; Estimation or use of missing fundamental
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
복선율 음악 생성 장치, 방법, 및 시스템이 제공된다. 복선율 음악 생성 시스템은, 속성 별로 트레이닝된 복선율 모델을 포함할 수 있고, 복선율 모델에 기초하여 입력 음악 데이터가 변환된 멜로디 데이터 및 화음 진행 데이터로부터 복선율 데이터를 생성할 수 있다.
Description
이하, 복선율 음악을 트레이닝 및 생성하는 기술이 제공된다.
최근 들어, 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하는 방안으로써, 인간이 지니고 있는 효율적인 패턴 인식 방법을 실제 컴퓨터에 적용시키려는 연구가 활발히 진행되고 있다. 이러한 연구 중 하나로, 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 인공신경 망(artificial neural network)에 대한 연구가 있다. 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하기 위해, 인공신경 망은 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여 인공신경 망은 입력 패턴과 출력 패턴들 사이의 사상(mapping)을 생성해낼 수 있는데, 이를 인공신경 망이 학습 능력이 있다고 표현한다. 또한, 인공신경 망은 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가지고 있다.
인공신경망의 일종인 순환신경망(Recurrent neural network, RNN)은 기존의 인공 신경망에서 순환 회로(Recurrent Weight)가 추가되어 과거의 데이터에 대한 정보를 어렴풋이 기억할 수 있어, 순차적인 데이터 속에서 정보를 파악할 수 있다.
LSTM(Long short-term memory)은 순환신경망 종류의 하나로, 순환신경망에 기억 정보를 저장하고 업데이트하고 출력하는 3가지의 게이트로 순환신경망의 장기 의존성 문제(Gradient vanishing problem)를 해결하면서, 문장 생성기(Text generator), 이미지 캡션 생성기 등의 다양한 문제에 적용되고 있다.
일 실시예에 따른 복선율 음악 생성 장치는 복선율 모델에 기초하여 사용자에 의해 입력된 음악 데이터로부터 복선율 데이터를 생성할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 사용자에 의해 입력된 음악 데이터로부터 멜로디 데이터 및 화음 진행 데이터를 추출할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 속성 별로 복선율 모델을 관리할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 복선율 모델에 기초하여 출력된 확률 맵 데이터를 필터링하여 최종 복선율 데이터를 생성할 수 있다.
일 실시예에 따른 복선율 음악(polyphonic music) 생성 방법은, 사용자 입력에 응답하여, 입력 음악 데이터(input music data)를 획득하는 단계; 상기 입력 음악 데이터로부터, 멜로디 데이터 및 화음 진행 데이터를 생성하는 단계; 복선율 모델(polyphonic model)에 기초하여, 상기 멜로디 데이터 및 상기 화음 진행 데이터로부터 복선율 데이터(polyphonic data)를 생성하는 단계를 포함할 수 있다.
상기 멜로디 데이터 및 화음 진행 데이터를 생성하는 단계는, 비트(beat)가 분할된 타임 슬롯 단위로, 입력 음악 데이터의 주 멜로디(main melody)에 대응하는 단일 노트(single note)를 지시하는 노트 데이터 및 상기 주 멜로디의 옥타브를 지시하는 옥타브 데이터를 포함하는 멜로디 데이터를 생성하는 단계; 및 상기 타임 슬롯 단위로, 상기 입력 음악 데이터의 화음을 지시하는 화음 진행 데이터를 생성하는 단계를 포함할 수 있다.
상기 입력 음악 데이터를 획득하는 단계는, 상기 사용자 입력에 응답하여, 미디 파일 데이터(MIDI file data) 를 획득하는 단계; 및 상기 미디 파일 데이터로부터 상기 입력 음악 데이터를 생성하는 단계를 포함할 수 있다.
상기 복선율 데이터를 생성하는 단계는, 사용자로부터 대상 속성(target property)을 지정하는 사용자 입력을 수신하는 단계; 및 복수의 복선율 생성 모델들 중 상기 지정된 대상 속성 에 대응하는 복선율 모델을 선택하는 단계를 포함할 수 있다.
상기 복선율 데이터를 생성하는 단계는, 상기 멜로디 데이터의 벡터 차원(vector dimension) 및 상기 화음 진행 데이터의 벡터 차원보다 큰 벡터 차원을 가지는 상기 복선율 데이터를 생성하는 단계를 포함할 수 있다.
상기 복선율 데이터를 생성하는 단계는, 상기 멜로디 데이터 및 상기 화음 진행 데이터를 상기 복선율 모델 에 입력함으로써, 상기 복선율 모델로부터 타임 슬롯 단위로 복수의 노트들에 대한 확률 맵 데이터(probability map data)를 출력하는 단계; 및 상기 확률 맵 데이터로부터 임계(threshold) 미만의 확률을 나타내는 노트를 배제 함으로써, 상기 복선율 데이터를 생성하는 단계를 포함할 수 있다.
복선율 음악 생성 방법은 트레이닝 음악으로부터 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터를 추출하는 단계; 상기 복선율 모델에 기초하여, 상기 트레이닝 멜로디 데이터 및 상기 트레이닝 화음 진행 데이터로부터 트레이닝 복선율 데이터를 생성하는 단계; 및 상기 트레이닝 복선율 데이터 및 상기 트레이닝 음악 간의 손실(loss)이 최소화함으로써, 상기 복선율 모델을 트레이닝 시키는 단계를 포함할 수 있다.
복선율 음악 생성 방법은 상기 멜로디 데이터 및 화음 진행 데이터에 대한 타임 슬롯을, 상기 입력 음악 데이터의 박자(beat signature)에 기초하여 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는, 사용자 입력에 응답하여, 입력 음악 데이터를 획득하는 음악 획득부; 및 상기 입력 음악 데이터로부터, 멜로디 데이터 및 화음 진행 데이터를 생성하고, 복선율 모델에 기초하여 상기 멜로디 데이터 및 상기 화음 진행 데이터로부터 복선율 데이터를 생성하는 프로세서를 포함할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 사용자가 기존 음악 또는 자신이 작곡한 간단한 멜로디만 입력하더라도, 음악다운 복선율 음악을 자동으로 생성할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 멜로디 데이터 및 화음 진행 데이터를 별도로 추출하고, 멜로디 데이터를 원핫 인코딩함으로써 멜로디에 포커싱되면서도 화음이 적용된 복선율 음악을 생성할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 멜로디 데이터 및 화음 진행 데이터의 구분에 의해, 오버피팅(예를 들어, 표절 가능성)을 낮추면서도, 음악다운 복선율 음악을 생성할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 속성 별로 복선율 모델을 트레이닝시킴으로써, 다양한 장르 및 스타일 등으로 새로운 복선율 음악을 생성할 수 있다.
일 실시예에 따른 복선율 음악 생성 장치는 확률 맵 데이터를 필터링함으로써, 보다 높은 품질의 복선율 음악을 생성할 수 있다.
도 1은 일 실시예에 따른 순환 신경 망의 개념을 설명한다
도 2는 일 실시예에 따라 펼쳐진 순환 신경 망을 설명한다.
도 3은 일 실시예에 따른 복선율 모델을 설명한다.
도 4는 일 실시예에 따른 복선율 음악 생성 방법을 설명한다.
도 5는 일 실시예에 따른 입력 음악 데이터를 설명한다.
도 6은 일 실시예에 따른 변환된 음악 데이터를 설명한다.
도 7 내지 도 9는 일 실시예에 따른 입력 음악 데이터의 획득을 설명한다.
도 10 및 도 11은 일 실시예에 따른 복선율 모델을 설명한다.
도 12는 일 실시예에 따른 입력 데이터 및 그에 대응하는 출력 데이터를 설명하는 도면이다.
도 13은 일 실시예에 따른 입력 음악 데이터의 예시를 설명한다.
도 14는 도 13에 도시된 입력 음악 데이터로부터 생성된 복선율 데이터의 예시를 설명한다.
도 15는 일 실시예에 따른 복선율 음악 생성 장치의 구성을 설명하는 블록도이다.
도 16은 일 실시예에 따른 복선율 음악 트레이닝 장치의 트레이닝 속도를 설명하는 도면이다.
도 17은 일 실시예에 따른 복선율 음악 트레이닝 장치의 구성을 설명하는 블록도이다.
도 18은 일 실시예에 따른 복선율 음악 생성 시스템을 설명하는 블록도이다.
도 2는 일 실시예에 따라 펼쳐진 순환 신경 망을 설명한다.
도 3은 일 실시예에 따른 복선율 모델을 설명한다.
도 4는 일 실시예에 따른 복선율 음악 생성 방법을 설명한다.
도 5는 일 실시예에 따른 입력 음악 데이터를 설명한다.
도 6은 일 실시예에 따른 변환된 음악 데이터를 설명한다.
도 7 내지 도 9는 일 실시예에 따른 입력 음악 데이터의 획득을 설명한다.
도 10 및 도 11은 일 실시예에 따른 복선율 모델을 설명한다.
도 12는 일 실시예에 따른 입력 데이터 및 그에 대응하는 출력 데이터를 설명하는 도면이다.
도 13은 일 실시예에 따른 입력 음악 데이터의 예시를 설명한다.
도 14는 도 13에 도시된 입력 음악 데이터로부터 생성된 복선율 데이터의 예시를 설명한다.
도 15는 일 실시예에 따른 복선율 음악 생성 장치의 구성을 설명하는 블록도이다.
도 16은 일 실시예에 따른 복선율 음악 트레이닝 장치의 트레이닝 속도를 설명하는 도면이다.
도 17은 일 실시예에 따른 복선율 음악 트레이닝 장치의 구성을 설명하는 블록도이다.
도 18은 일 실시예에 따른 복선율 음악 생성 시스템을 설명하는 블록도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 순환 신경 망의 개념을 설명한다.
신경 망은 연결선으로 연결된 많은 수의 인공 뉴런들을 이용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 인식 모델이다. 본 명세서에서는 신경 망으로서, 순환 신경 망(RNN, Recurrent Neural Network)(100)을 예로 들어 설명한다.
순환 신경 망(100)은 그 내부에 루프를 가지는 신경 망으로서, 신경 망의 출력이 순환되어 다시 입력됨으로써 입력 xt로부터 새로운 출력 ot이 출력되도록 트레이닝된 신경 망을 나타낼 수 있다. 예를 들어, 순환 신경 망은 노드(110)를 포함하고, 노드(110)(예를 들어, 히드 노드)의 출력이 순환되어 다시 입력될 수 있다. 도 1은 순환 신경 망(100)을 간략화하여 도시한 것으로서 노드(110)만을 도시하였으나, 이로 한정하는 것은 아니고 노드(110)는 순환 신경 망(100)에 포함되는 히든 레이어를 구성하는 단위일 수 있다. 히든 레이어에 포함되는 노드(110)를 히든 노드라고 표현할 수도 있다.
본 명세서에서 노드(110)와 연관된 값을 지시하는 파라미터는 상태 파라미터라고 나타낼 수 있다. 예를 들어, 상태 파라미터는 노드(110)의 출력 값 등을 포함할 수 있다. 상태 파라미터는 노드 파라미터라고도 나타낼 수 있다.
예를 들어, 순환 신경 망(100)은 LSTM(Long Short Term Memory) 신경 망으로 구성될 수도 있다. LSTM 신경 망의 노드(110)는 복수의 게이트(gate) 를 포함할 수 있다. LSTM 신경 망에 있어서, 노드(110)의 상태 파라미터는 히든 레이어의 노드(110)의 출력 값, 노드(110)의 셀 상태 값 등을 포함할 수 있다. 노드(110)의 셀 상태 값 및 출력 값 등은 노드(110)의 게이트에 기초하여, 제어될 수 있다. 다만, LSTM 신경 망은 단순 예시로서, 본 명세서의 순환 신경 망(100)의 구조를 이로 한정하는 것은 아니다.
입력 xt는 t 시점에 순환 신경 망(100)으로 입력되는 타임 슬롯 데이터를 나타낼 수 있고, 출력 ot는 t 시점에 순환 신경 망(100)으로부터 출력되는 타임 슬롯 데이터를 나타낼 수 있다. t 시점은 타임 스탬프 t를 나타낼 수 있다. 타임 슬롯 데이터는 시퀀스 데이터가 일정 길이(예를 들어, 타임 슬롯 단위)로 구분되는 데이터를 나타낼 수 있다. 타임 슬롯 단위는 설계에 따라 달리 설정될 수 있다.
예를 들어, 본 명세서에서 t 시점에 순환 신경 망(100)으로 입력되는 타임 슬롯 데이터 xt는 t 시점에서의 멜로디 데이터 및 화음 진행 데이터를 나타낼 수 있다. 또한, t 시점에서 출력되는 타임 슬롯 데이터 ot는 t 시점에서의 복선율 데이터를 나타낼 수 있다. 따라서 복선율 음악 생성 장치는, 상술한 순환 신경 망(100)으로 멜로디 데이터 및 화음 진행 데이터를 순차적으로 입력할 수 있고, 시간 순서에 따른 복선율 데이터를 생성할 수 있다. 이러한 멜로디 데이터, 화음 진행 데이터, 및 복선율 데이터는 아래에서 상세히 설명한다.
도 2는 일 실시예에 따라 펼쳐진 순환 신경 망을 설명한다.
도 2에 도시된 순환 신경 망(200)은, 도 1에서 설명한 순환 신경 망(100)이 미리 정한 길이만큼 펼쳐진(unfolded) 형태를 나타낼 수 있다. 예를 들어, 도 1에서의 노드(110)는 제1 노드(211), 제2 노드(212), 및 제3 노드(213)으로 펼쳐진 것으로 도시될 수 있다.
순환 신경 망(200)은 t-1 시점에서 입력 xt-1이 제1 노드(211)에 입력되면, ot-1을 출력할 수 있고, 제1 노드(211)의 상태 파라미터를 제2 노드(212)로 전달할 수 있다. 순환 신경 망(200)은 t 시점에서 제1 노드(211)의 상태 파라미터 및 입력 xt에 기초하여 ot를 출력할 수 있고, 제2 노드(212)의 상태 파라미터를 제3 노드(213)로 전달할 수 있다. 유사하게, 순환 신경 망(200)은 t+1 시점에서 제2 노드(212)의 상태 파라미터 및 입력 xt+1에 기초하여 출력 ot+1을 출력할 수 있다. 상술한 설명은 순전히 예시적인 것으로서, 순환 신경 망(200)이 펼쳐지는 노드의 개수나, 전달되는 파라미터 등은 설계에 따라 변경될 수 있다.
도 3은 일 실시예에 따른 복선율 모델을 설명한다.
일 실시예에 따른 복선율 음악 생성 장치는 입력 음악 데이터(301)가 변환된 음악 데이터로부터 복선율 모델(310)에 기초하여 복선율 데이터(309)를 생성할 수 있다.
입력 음악 데이터(301)는 입력된 음악을 지시하는 데이터로서, 음악의 임의의 시점에 대응하는 하나 이상의 노트(note)를 지시하는 데이터일 수 있다. 노트는 음을 나타낼 수 있다. 일련의 입력 음악 데이터(301)는 하나의 음악을 나타낼 수 있다. 복선율 음악 생성 장치는 일련의 입력 음악 데이터(301)를 복선율 모델(310)에 순차적으로 입력할 수 있다. 입력 음악 데이터(301)는 미리 지정된 개수의 차원으로 구성되는 벡터 데이터로 구현될 수 있고, 벡터 데이터의 각 원소(element)는 개별 음을 나타낼 수 있다. 예를 들어, 피아노의 건반 수는 88개 이므로, 입력 음악 데이터(301)의 벡터 차원은 88 이상일 수 있고, 더미 노트(dummy note)를 더 포함할 경우 벡터 차원이 128로 결정될 수도 있다.
복선율 음악 생성 장치는 입력 음악 데이터(301)를, 복선율 모델(310)의 기계 학습 구조에 적합한 형태로 변환함으로써, 변환된 음악 데이터를 생성할 수 있다. 변환된 음악 데이터의 벡터 차원은, 입력 음악 데이터(301)의 벡터 차원보다 작을 수 있다. 변환된 음악 데이터는 멜로디 데이터 및 화음 진행 데이터를 포함할 수 있다. 변환된 음악 데이터는 하기 도 6에서 상세히 설명한다.
복선율 모델(310)은 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터로부터 트레이닝 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 예를 들어, 복선율 모델(310)은 순환 신경 망을 포함할 수 있다.
복선율 데이터(309)는 복선율 모델(310)에 기초하여 변환된 음악 데이터로부터 생성된 데이터를 나타낼 수 있다. 복선율 음악 생성 장치는 복선율 모델(310)에 변환된 음악 데이터를 순차적으로 입력함으로써, 일련의 복선율 데이터(309)를 생성할 수 있다. 일련의 복선율 데이터(309)는 일련의 입력 음악 데이터(301)가 나타내는 기존 음악과 구별되는, 새로운 음악을 나타낼 수 있다. 복선율 데이터(309)는 미리 지정된 개수의 차원으로 구성되는 벡터 데이터로 구현될 수 있고, 예를 들어, 128의 벡터 차원을 가질 수 있다.
도 4는 일 실시예에 따른 복선율 음악 생성 방법을 설명한다.
우선, 단계(410)에서 복선율 음악 생성 장치는 사용자 입력에 응답하여, 입력 음악 데이터를 획득할 수 있다. 예를 들어, 복선율 음악 생성 장치는 상기 사용자 입력에 응답하여, 미디 파일 데이터(MIDI file data)를 획득할 수 있고, 상기 미디 파일 데이터로부터 상기 입력 음악 데이터를 생성할 수 있다. 다른 예를 들어, 복선율 음악 생성 장치는 상기 사용자 입력에 응답하여 주 멜로디(main melody)에 대응하는 일련의 노트들을 지시하는 상기 입력 음악 데이터를 생성할 수 있다.
그리고 단계(420)에서 복선율 음악 생성 장치는 입력 음악 데이터로부터, 멜로디 데이터 및 화음 진행 데이터를 생성할 수 있다. 일 실시예에 따르면, 복선율 음악 생성 장치는 비트(beat)가 분할된 타임 슬롯 단위로 멜로디 데이터를 생성할 수 있다. 멜로디 데이터는 예를 들어, 입력 음악 데이터의 주 멜로디(main melody)에 대응하는 단일 노트(single note)를 지시하는 노트 데이터 및 상기 주 멜로디의 옥타브를 지시하는 옥타브 데이터를 포함할 수 있다. 또한, 복선율 음악 생성 장치는 상기 타임 슬롯 단위로, 상기 입력 음악 데이터의 화음을 지시하는 화음 진행 데이터를 생성할 수 있다.
이어서 단계(430)에서 복선율 음악 생성 장치는 복선율 모델에 기초하여, 멜로디 데이터 및 화음 진행 데이터로부터 복선율 데이터를 생성할 수 있다. 일 실시예에 따르면 복선율 음악 생성 장치는 멜로디 데이터 및 상기 화음 진행 데이터를 상기 복선율 모델에 입력함으로써, 상기 복선율 모델로부터 타임 슬롯 단위로 복수의 노트들에 대한 확률 맵 데이터(probability map data)를 출력할 수 있다. 복선율 음악 생성 장치는 상기 확률 맵 데이터로부터 임계(threshold) 미만의 확률을 나타내는 노트를 배제함으로써, 상기 복선율 데이터를 생성할 수 있다. 예를 들어, 확률 맵 데이터는 노트가 정확하게 도출되었는지 여부를 나타내는 수치로 해석될 수 있다. 임계는 예를 들어, 0.5로 결정될 수 있으나, 이로 한정하는 것은 아니다. 복선율 음악 생성 장치는 임계 이상의 확률을 나타내는 노트들을 유지하도록 필터링함으로써, 복선율 음악의 정확도를 개선할 수 있다.
또한, 복선율 음악 생성 장치는 사용자로부터 대상 속성(target property)을 지정하는 사용자 입력을 수신할 수 있다. 복선율 음악 생성 장치는 복수의 복선율 생성 모델들 중 상기 지정된 대상 속성에 대응하는 복선율 모델을 선택할 수 있다. 이 경우, 복선율 음악 생성 장치는 선택된 복선율 모델에 기초하여, 복선율 데이터를 생성할 수 있다. 대상 속성은 하기 도 10 내지 도 11에서 설명한다.
예를 들어, 복선율 음악 생성 장치는 상기 멜로디 데이터의 벡터 차원(vector dimension) 및 상기 화음 진행 데이터의 벡터 차원보다 큰 벡터 차원을 가지는 상기 복선율 데이터를 생성할 수 있다.
도 5는 일 실시예에 따른 입력 음악 데이터를 설명한다.
일 실시예에 따르면, 복선율 음악 생성 장치는 미디 파일 데이터로부터 상기 입력 음악 데이터를 생성할 수 있다. 예를 들어, 복선율 음악 생성 장치는 미디 파일 데이터를 파싱(parsing)함으로써, 개별 노트의 시작 시점, 종료 시점, 및 세기를 추출할 수 있다. 미디 파일이 파싱된 메시지는 아래 표 1과 같이 나타나는 것을 가정할 수 있다.
note=74 velocity=42 absolute_time=0 (시작) note=67 velocity=47 absolute_time=2 (시작) note=63 velocity=15 absolute_time=8 (시작) note=67 velocity=0 absolute_time=26 (끝) note=74 velocity=0 absolute_time=31 (끝) note=63 velocity=0 absolute_time=31 (끝) |
상술한 표 1에서, velocity는 음의 세기를 나타낼 수 있고, 예를 들어, 0이상 127이하의 값을 가질 수 있으며, velocity가 0이면 노트의 종료를 지시할 수 있다. 표 1에서 note는 음의 높이를 나타낼 수 있고, 0 이상 127이하의 값을 가질 수 있다. 상술한 표 1을 노트 별로 정리하면 아래 표 2와 같이 나타낼 수 있다.
note=74 velocity=42 duration=0~31 note=67 velocity=47 duration=2~26 note=63 velocity=15 duration=8~31 |
상술한 표 2의 노트들을 2차원 그래픽 표현으로는 도 5와 같이 나타낼 수 있다. 예를 들어, 도 5는 하나의 음악을 구성하는 일련의 입력 음악 데이터(이하, 입력 음악 데이터 세트(500))를 나타낼 수 있다. 도 5의 입력 음악 데이터 세트(500)를 나타내는 그래픽 표현에서, 세로 축(591)은 음의 높이 순서에 따라 구분되는 노트들을 나타낼 수 있고, 가로 축(592)은 타임 슬롯을 나타낼 수 있다. 다만, 이러한 2차원 그래픽 표현은 순전히 이해를 돕기 위한 것으로서, 이로 한정하는 것은 아니다.제1 노트(581)는 63번째 높이의 음으로서, 8번째 타임 슬롯부터 31번째 타임 슬롯까지 유지될 수 있다. 제2 노트(582)는 67번째 높이의 음으로서, 2번? 타임 슬롯부터 26번째 타임 슬롯까지 유지될 수 있다. 제3 노트(583)는 74번째 높이의 음으로서, 0번째 타임 슬롯부터 31번째 타임 슬롯까지 유지될 수 있다.
일 실시예에 따르면, 임의의 입력 음악 데이터(510)는, 임의의 시점에서 해당 음악이 나타내는 노트들을 나타낼 수 있다. 예를 들어, 도 5에서 입력 음악 데이터는 1번째 타임 슬롯에 대응할 수 있고, 1번째 타임 슬롯에서 74번째 높이의 노트를 지시할 수 있다.
도 6은 일 실시예에 따른 변환된 음악 데이터를 설명한다.
일 실시예에 따르면 복선율 음악 생성 장치는 입력 음악 데이터(610)를 변환하여, 변환된 음악 데이터(620)를 생성할 수 있다. 변환된 음악 데이터(620)는 멜로디 데이터(630) 및 화음 진행 데이터(640)를 포함할 수 있다.
멜로디 데이터(630)는 노래의 주 멜로디를 지시하는 데이터일 수 있다. 예를 들어, 멜로디 데이터(630)는 임의의 타임 슬롯에서, 하나의 노트(예를 들어, 128개의 노트들 중 하나)를 지시하는 데이터일 수 있다. 또한, 멜로디 데이터(630)는 노트 데이터(631) 및 옥타브 데이터(632)를 포함할 수 있다.
노트 데이터(631)는 한 음계 내의 단일 노트를 지시하는 데이터일 수 있다. 노트 데이터(631)는 해당 노래가 가지는 주 멜로디의 임의의 타임 슬롯에 대응하는 노트를 지시할 수 있다. 예를 들어, 7음계가 사용되는 것으로 가정할 경우, 반음을 포함하게 되면 해당 음계에서 총 노트의 개수가 12가 되므로, 노트 데이터(631)의 벡터 차원은 12일 수 있다. 노트 데이터(631)의 각 원소는, 순서대로 [C, C#, D, D#, E, F, F#, G, G#, A, A#, B]를 나타낼 수 있다. 예를 들어, 노트 데이터(631)가 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]인 경우, 해당 노트 데이터(631)는 C인 음을 지시할 수 있다. 노트 데이터(631)는 원핫인코딩(one-hot encoding)된 데이터로서, 노트 데이터(631)의 원소들 중 최대 하나의 원소만 1의 값을 가질 수 있고, 나머지 원소들은 0의 값을 가질 수 있다. 모든 원소들이 0의 값을 가지는 노트 데이터(631)는, 해당 타임 슬롯에서 주 멜로디에 대응하는 음이 존재하지 않는 것을 나타낼 수 있다.
옥타브 데이터(632)는 해당 노래가 가지는 주 멜로디의 임의의 타임 슬롯에 대응하는 옥타브를 지시할 수 있다. 예를 들어, 옥타브 데이터(632)는 -2 이상 7이하의 정수인 값을 가질 수 있다. 옥타브 데이터(632)는 1개의 벡터 차원으로 구성될 수 있다.
상술한 바와 같이, 멜로디 데이터(630)는 12차원의 노트 데이터(631) 및 1차원의 옥타브 데이터(632)를 포함할 수 있고, 멜로디 데이터(630)의 총 벡터 차원은 13일 수 있다.
화음 진행 데이터(640)는 한 음계 내에서 여러 노트들을 지시하는 데이터일 수 있다. 화음 진행 데이터(640)는 해당 노래가 가지는 임의의 타임 슬롯에 대응하는 화음을 지시할 수 있다. 예를 들어, 7음계가 사용되는 것으로 가정할 경우, 화음 진행 데이터(640)는 상술한 노트 데이터(631)와 유사하게 12차원일 수 있다. 화음 진행 데이터(640)의 각 원소는 순서대로 [C, C#, D, D#, E, F, F#, G, G#, A, A#, B]를 나타낼 수 있다. 예를 들어, 화음 진행 데이터(640)가 [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]인 경우, 해당 화음 진행 데이터(640)는 C 및 C#인 화음을 지시할 수 있다. 화음 진행 데이터(640)의 각 원소는 0 또는 1의 값을 가질 수 있고, 경우에 따라 복수의 원소들이 1의 값을 가질 수도 있다. 모든 원소들이 0의 값을 가지는 화음 진행 데이터(640)는, 해당 타임 슬롯에서 화음이 존재하지 않는 것을 나타낼 수 있다.
만약 옥타브 구분 없이 개별 노트로 멜로디를 표현할 경우 멜로디는128차원으로 표현될 수 있고, 화음은 12차원으로 표현될 수 있다. 옥타브의 구분이 없을 경우, 화음을 표현하기 위해서는 140차원의 벡터 데이터가 요구될 수 있다. 이와 달리, 일 실시예에 따른 복선율 음악 생성 장치는 13차원의 멜로디 데이터(630) 및 12차원의 화음 진행 데이터(640)를 생성할 수 있다. 따라서, 변환된 음악 데이터(620)의 총 차원은 25차원이 될 수 있다. 복선율 음악 생성 장치는 140차원보다 압축된 25차원의 데이터를 이용하여 복선율 음악을 생성할 수 있다.
복선율 음악 생성 장치는, 상술한 바와 같이 입력 음악 데이터(610)를 멜로디 데이터(630) 및 화음 진행 데이터(640)로 변환함으로써, 벡터 데이터의 차원을 감소시킬 수 있다. 감소된 벡터 차원으로 인해, 복선율 음악 생성 장치는 복선율 모델을 보다 신속하게 트레이닝시킬 수 있다. 복선율 모델의 트레이닝은 하기 도 16에서 설명한다.
도 7 내지 도 9는 일 실시예에 따른 입력 음악 데이터의 획득을 설명한다.
일 실시예에 따르면, 복선율 음악 생성 장치는 상기 사용자 입력에 응답하여 주 멜로디(main melody)에 대응하는 일련의 노트들을 지시하는 상기 입력 음악 데이터를 생성할 수 있다.
예를 들어, 도 7에 도시된 바와 같이, 복선율 음악 생성 장치는 단선율 AI 작곡 정보 및 화음 진행 정보를 포함하는 입력 데이터(710)를 수신할 수 있다. 복선율 음악 생성 장치는 화음 진행 정보를 사용자로부터 수신할 수 있으나, 이로 한정하는 것은 아니다. 복선율 음악 생성 장치는 복선율 모델(720)에 입력 데이터(710)를 입력함으로써 복선율 데이터를 생성할 수 있다.
다른 예를 들어, 도 8에 도시된 바와 같이 복선율 음악 생성 장치는 사용자로부터 멜로디에 대한 입력 및 화음 진행 정보를 포함하는 입력 데이터(810)를 수신할 수 있다. 복선율 음악 생성 장치는 복선율 모델(820)에 입력 데이터(810)를 입력함으로써 복선율 데이터를 생성할 수 있다. 따라서, 프로듀서(예를 들어, 사용자)가 직접 입력한 멜로디에 기초한, 새로운 복선율 음악을 쉽고 빠르게 생성할 수 있다.
또 다른 예를 들어, 도 9에 도시된 바와 같이 복선율 음악 생성 장치는 음악을 지시하는 소리 데이터(sound data)(911)로부터 미디 파일 데이터(912)를 생성할 수 있다. 또는, 복선율 음악 생성 장치는 사용자 입력에 응답하여 미디 파일 데이터(912)를 획득할 수도 있다. 복선율 음악 생성 장치는 미디 파일 데이터(912)를 멜로디 데이터 및 화음 진행 데이터로 변환하여 복선율 모델(920)에 입력할 수 있다. 이와 같이, 복선율 음악 생성 장치는 소리 데이터(911)로부터 최종적인 복선율 데이터(930)를 생성할 수 있다. 따라서, 복선율 음악 생성 장치는 자동화된 복선율 음악 작곡 기능을 제공할 수 있다.
도 10 및 도 11은 일 실시예에 따른 복선율 모델을 설명한다.
복선율 모델은 멜로디 데이터 및 화음 진행 데이터의 입력에 응답하여 복선율 데이터를 출력하도록 설계된 모델로서, 기계 학습 구조를 가질 수 있다. 예를 들어, 상술한 바와 같이, 복선율 모델은 뉴럴 네트워크, 보다 구체적으로는 순환 신경 망을 포함할 수 있다.
또한, 도 10에 도시된 바와 같이, 복선율 음악 생성 장치는 복수의 모델을 이용할 수 있다. 복선율 음악 생성 장치의 메모리(1000)는 제1 복선율 모델(1010) 내지 제n 복선율 모델(1090)을 저장할 수 있다. 여기서, n은 1이상의 정수를 나타낼 수 있다. 제1 복선율 모델(1010) 내지 제n 복선율 모델(1090)은 서로 동일한 기계 학습 구조로 설계될 수 있다. 제1 복선율 모델(1010) 내지 제n 복선율 모델(1090)의 각각은 음악의 서로 다른 속성에 대해 트레이닝된 모델일 수 있다. 음악의 속성은 음악의 장르, 스타일, 사용된 악기, 소속서, 및 아티스트 등에 따라 분류될 수 있으나, 이로 한정하는 것은 아니다. 예를 들어, 제1 복선율 모델(1010) 내지 제n 복선율 모델(1090)의 각각은 속성에 따라 서로 다른 파라미터를 가지도록 트레이닝될 수 있다.
예를 들어, 도 11에 도시된 바와 같이, 제1 복선율 생성기(이하, 복선율 모델)(1111)은 피아노에 기초한 복선율 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제2 복선율 모델(1112)은 기타에 기초한 복선율 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제3 복선율 모델(1113)은 베이스에 기초한 복선율 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제4 복선율 모델(1114)은 드럼에 기초한 복선율 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다.
더 나아가, 제5 복선율 모델(1120)은 재즈 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제6 복선율 모델(1130)은 SM 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제7 복선율 모델(1140)은 하우스 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제8 복선율 모델(1150)은 테크노 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제9 복선율 모델(1160)은 뉴에이지 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 제10 복선율 모델(1170)은 발라드 음악을 출력하도록 트레이닝된 모델을 나타낼 수 있다. 다만, 악기와 장르의 종류를 상술한 바로 한정하는 것은 아니다.
복선율 음악 생성 장치는 사용자로부터 사용자로부터 대상 속성(target property)을 지정하는 사용자 입력을 수신할 수 있다. 복선율 음악 생성 장치는 복수의 복선율 생성 모델들 중 상기 지정된 대상 속성에 대응하는 복선율 모델을 선택할 수 있다. 따라서, 복선율 음악 생성 장치는 복수의 복선율 생성 모델들 중 원하는 속성(예를 들어, 임의의 장르 또는 악기)을 가지는 모델을 이용하여 복선율 데이터를 생성할 수 있다.
또한, 복선율 음악 생성 장치는, 입력 음악 데이터를 분석함으로써, 해당 입력 음악 데이터에 최적화된 속성을 결정할 수 있다. 예를 들어, 복선율 음악 생성 장치는 입력된 음악에 적합한 장르를 디시전 트리(decision tree) 등을 이용하여 결정할 수 있다. 복선율 음악 생성 장치는 결정된 속성에 대응하는 모델을 이용하여 복선율 데이터를 생성할 수도 있다. 따라서, 복선율 음악 생성 장치는 음악적 소양이 높지 않은 사용자에게도, 높은 품질의 새로운 복선율 음악을 제공할 수 있다.
도 12는 일 실시예에 따른 입력 데이터 및 그에 대응하는 출력 데이터를 설명하는 도면이다.
우선, 임의의 음악의 일부분에 대한 악보(1210)를 가정할 수 있다. 악보는 타임 슬롯 단위로, 활성화된 노트, 해당 노트의 길이 등을 나타내는 데이터(1230)로 표현될 수 있다. 데이터(1230)는 트레이닝을 위한, 트레이닝 입력(1240) 및 트레이닝 출력(1250)으로 파싱될 수 있다.
트레이닝 입력(1240)은 화음 진행 데이터 및 멜로디 데이터로 구분될 수 있다. 화음 진행 데이터는, 각 비트를 기준으로, 음을 당기고 피치 정보만 유지된 데이터일 수 있고, 화음을 지시하는 정보일 수 있다. 멜로디 데이터는, 복선율의 탑라인 멜로디를 지시할 수 있고, 노트의 길이(duration)까지 고려한 최고 높이 일 때의 피치 정보 및 옥타브 정보에 기초하여 결정될 수 있다.
아울러, 복선율 음악 생성 장치는 상기 멜로디 데이터 및 화음 진행 데이터에 대한 타임 슬롯을, 상기 입력 음악 데이터의 박자(beat signature)(1220)에 기초하여 결정할 수도 있다.
도 13은 일 실시예에 따른 입력 음악 데이터의 예시를 설명한다.
입력 음악 데이터 세트의 세로 축(1391)은 노트들, 가로 축(1392)은 타임 슬롯을 나타낼 수 있다. 도 13에서 세로 축(1391)은 이해를 돕기 위해 피아노 건반의 형태로 도시되었으나, 이로 한정하는 것은 아니다. 입력 음악 데이터 세트는 주 멜로디에 대응하는 노트들(1310)을 포함할 수 있다.
입력 음악 데이터(1320)는 임의의 타임 슬롯에서 나타나는 노트를 지시할 수 있다. 예를 들어, 도 13에서, 입력 음악 데이터(1320)는 B3의 노트를 지시할 수 있고, 이는 3번째 옥타브의 B 높이의 음을 나타낼 수 있다.
다만, 도 13에서는 입력 음악 데이터(1320)가 단일 노트를 가지는 것으로, 이를테면 단선율인 것으로 도시되었으나, 이로 한정하는 것은 아니다. 복선율 음악 생성 장치는 복선율의 입력 음악 데이터(1320)를 수신할 수도 있다.
상술한 바와 같이, 복선율 음악 생성 장치는 타임 슬롯 순서에 따라, 입력 음악 데이터(1320)를 순차적으로 복선율 모델에 입력함으로써, 순차적으로 복선율 데이터를 생성할 수 있다. 일련의 복선율 데이터는 새로운 복선율 음악을 나타낼 수 있다.
도 14는 도 13에 도시된 입력 음악 데이터로부터 생성된 복선율 데이터의 예시를 설명한다.
일 실시예에 따르면, 복선율 음악 생성 장치는 복선율 음악으로부터 새로운 복선율 음악을 생성할 수 있으나, 이로 한정하는 것은 아니고, 단선율 음악으로부터 새로운 복선율 음악을 생성할 수 있다.
예를 들어, 도 14에 도시된 일련의 복선율 데이터(예를 들어, 복선율 데이터 세트)는 도 13에 도시된 단선율의 입력 음악 데이터로부터 생성된 데이터일 수 있다. 복선율 데이터 세트의 세로 축(1491)은 노트들을 나타낼 수 있고, 가로 축(1492)은 타임 슬롯을 나타낼 수 있다. 도 14에 도시된 바와 같이, 복선율 데이터는, 주 멜로디에 대응하는 노트들(1410)뿐 아니라, 화음에 대응하는 노트들(1421, 1422)도 포함할 수 있다. 예를 들어, 도 14에 도시된 복선율 데이터 세트는, 도 13의 입력 데이터 세트에 대해 재즈 풍으로 새롭게 생성된 음악을 나타낼 수 있다.
도 15는 일 실시예에 따른 복선율 음악 생성 장치의 구성을 설명하는 블록도이다.
복선율 음악 생성 장치(1500)는 음악 획득부(1510), 프로세서(1520), 및 메모리(1530)를 포함한다.
음악 획득부(1510)는 사용자 입력에 응답하여, 입력 음악 데이터(1501)를 획득할 수 있다. 예를 들어, 음악 획득부(1510)는 사용자가 직접 입력한 멜로디에 대응하는 입력 음악 데이터(1501)를 획득할 수 있다. 또한, 음악 획득부(1510)는 사용자가 입력한 임의의 미디 파일 데이터로부터 입력 음악 데이터(1501)를 획득할 수도 있다.
프로세서(1520)는 상기 입력 음악 데이터(1501)로부터, 멜로디 데이터 및 화음 진행 데이터를 생성하고, 복선율 모델에 기초하여 상기 멜로디 데이터 및 상기 화음 진행 데이터로부터 복선율 데이터(1509)를 생성할 수 있다.
메모리(1530)는 도 1 내지 도 14에서 설명한 복선율 음악 생성 방법을 수행하는데 요구되는 일시적 또는 영구적인 데이터를 저장할 수 있다. 또한, 메모리(1530)는 복선율 모델을 저장할 수 있다. 예를 들어, 메모리(1530)는 복선율 모델의 기계 학습 구조 및 그에 대응하는 파라미터(예를 들어 연결 가중치 등)를 저장할 수 있다. 메모리(1530)는 제1 복선율 모델(1531) 내지 제n 복선율 모델(1539)을 저장할 수 있다.
도 16은 일 실시예에 따른 복선율 음악 트레이닝 장치의 트레이닝 속도를 설명하는 도면이다.
복선율 음악 생성 장치가 사용하는 복선율 모델은 미리 트레이닝된 것일 수 있다. 예를 들어, 복선율 음악 트레이닝 장치는 복선율 모델을 트레이닝시킴으로써, 복선율 모델의 파라미터(예를 들어, 연결 가중치)를 결정할 수 있다. 복선율 음악 생성 장치는 복선율 음악 트레이닝 장치에 의해 트레이닝된 파라미터를 사용할 수 있다. 다만, 이로 한정하는 것은 아니고, 복선율 음악 생성 장치는 복선율 음악 트레이닝 장치의 동작을 포함하도록 구현될 수도 있다.
예를 들어, 복선율 음악 생성 장치는 트레이닝 음악으로부터 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터를 추출할 수 있다. 복선율 음악 생성 장치는 상기 복선율 모델에 기초하여, 상기 트레이닝 멜로디 데이터 및 상기 트레이닝 화음 진행 데이터로부터 트레이닝 복선율 데이터를 생성할 수 있다. 복선율 음악 생성 장치는 상기 트레이닝 복선율 데이터 및 상기 트레이닝 음악 간의 손실(loss)이 최소화함으로써, 상기 복선율 모델을 트레이닝시킬 수 있다. 일 실시예에 따르면, 손실은 크로스 엔트로피(Cross Entropy)에 따라 계산될 수 있다. 예를 들어, 복선율 음악 생성 장치는 트레이닝 복선율 데이터 및 상기 트레이닝 음악 간의 크로스 엔트로피를 산출할 수 있다.
또한, 복선율 음악 생성 장치는 미디 파일 데이터의 미디 넘버(midi number) 또는 미디 패밀리 정보에 기초하여, 악기를 구분하여 자동으로 복선율 모델을 트레이닝시킬 수 있다. 따라서, 복선율 모델은 장르, 아티스트, 소속사 등 별로 구분되어 트레이닝될 수 있고, 상품이 구분되어 서비스될 수 있다.
더 나아가, 도 16에 도시된 바와 같이, 일 실시예에 따른 복선율 모델의 트레이닝은, 트레이닝에 요구되는 학습량이 매우 적을 수 있다. 복선율 모델의 손실(Loss) 그래프는 도 16과 같이 나타날 수 있다. 도 16에 도시된 바와 같이, 트레이닝 동안 음악이 바뀌어 손실이 감소하지 않으나, 일정 수준까지 도달하면 복선율 모델이 음악 데이터의 경향성을 학습함으로써, 손실 값이 감소될 수 있다.
도 17은 일 실시예에 따른 복선율 음악 트레이닝 장치의 구성을 설명하는 블록도이다.
복선율 음악 트레이닝 장치(1700)는 프로세서(1710) 및 메모리(1720)를 포함한다. 또한, 복선율 음악 트레이닝 장치(1700)는 도 16에서 상술한 바와 같이, 복선율 음악 생성 장치 내에 구현될 수도 있다.
프로세서(1710)는 트레이닝 음악으로부터 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터를 추출할 수 있다. 프로세서(1710)는 상기 복선율 모델에 기초하여, 상기 트레이닝 멜로디 데이터 및 상기 트레이닝 화음 진행 데이터로부터 트레이닝 복선율 데이터를 생성할 수 있다. 프로세서(1710)는 상기 트레이닝 복선율 데이터 및 상기 트레이닝 음악 간의 손실(loss)이 최소화함으로써, 상기 복선율 모델을 트레이닝시킬 수 있다.
메모리(1720)는 복선율 모델 및 트레이닝 데이터(1740)를 저장할 수 있다. 복선율 모델은, 제1 복선율 모델(1721) 내지 제n 복선율 모델(1729)을 포함할 수 있고, 속성에 따라 분류될 수 있다. 트레이닝 데이터(1740)는 트레이닝 입력 및 트레이닝 출력의 쌍을 포함할 수 있다. 트레이닝 입력은 상술한 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터일 수 있고, 트레이닝 출력은 트레이닝 음악에 대응할 수 있다.
도 18은 일 실시예에 따른 복선율 음악 생성 시스템을 설명하는 블록도이다.
복선율 음악 생성 시스템(1800)은 복선율 음악을 학습하기 위한 트레이닝 동작 및 복선율 음악을 생성하기 위한 생성 동작을 수행할 수 있다. 일 실시예에 따른 복선율 음악 생성 시스템(1800)은 예를 들어, LSTM(Long short-term memory)를 이용하여 특정 아티스트들의 스타일을 가진 복선율 음악을 생성할 수 있다.
우선, 트레이닝 데이터(1841)는 미리 확보된 음악에 관한 데이터로서, 장르, 아티스트, 소속서, 악기, 및 스타일 등이 분류된 데이터일 수 있다.
미디 파일 데이터 판독기(1842)는 트레이닝 데이터(1841)를 판독하여, 미디 파일 데이터를 생성할 수 있다.
속성 분류기(1843)는 미디 파일 데이터의 속성을 분류할 수 있다. 예를 들어, 속성 분류기(1843)는 학습할 음악들을 아티스트 및 악기 등에 따른 속성으로 분류할 수 있다. 복선율 음악 생성 시스템(1800)은 음악 데이터를 속성 별로 구분할 수 있고, 이때 얻은 악기(Instrument), 박자(Time signature), 빠르기(Beats per minute, BPM), 조성(Key), 코드(Chord), 노트 높낮이(Pitch), 길이(Duration)에 대한 정보를 시간 순으로 정렬할 수 있다.
멜로디/화음 진행 데이터 추출기(1844)는 일련의 전 처리 단계와 데이터 증강(Data augmentation)을 통해, 트레이닝에 적합한 형태로 미디 파일 데이터를 변환할 수 있다. 예를 들어, 멜로디/화음 진행 데이터 추출기(1844)는 입력 음악 데이터(예를 들어, 미디 파일 데이터)로부터 멜로디 데이터 및 화음 진행 데이터를 추출할 수 있다. 따라서, 멜로디/화음 진행 데이터 추출기(1844)는 트레이닝용 멜로디/화음 진행 데이터(1845)를 생성할 수 있다.
복선율 음악 생성 시스템(1800)의 입력부(1810)는 트레이닝용 멜로디/화음 진행 데이터(1845)를 복선율 모델(1820)의 인공 세포에 매칭시킬 수 있다. 예를 들어, 입력부(1810)는 복선율 모델(1820)의 입력 레이어에 대응할 수 있고, 입력부(1810)는 일정 길이(예를 들어, 1박)에 들어가는 노트들을 모아 코드를 0과 1로 된 노트들로 매치시킬 수 있다. 예를 들면, 화음 진행 데이터의 벡터 형태가 [C, C#, D, D#, E, F, F#, G, G#, A, A#, B]로 표현된다면, CM7의 화음은 [1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1]의 데이터로 LSTM의 인공 세포(Cell)에 매칭될 수 있다.
복선율 모델(1820)은 상술한 바와 유사하게 출력부(1846)를 통해 트레이닝 복선율 데이터를 생성할 수 있다. 비교기(1847)는 트레이닝 복선율 데이터를 속성 분류기(1843) 이후의 트레이닝 음악 데이터와 비교함으로써, 손실(예를 들어, 크로스 엔트로피 함수)을 산출할 수 있다.
복선율 음악 생성 시스템(1800)은 상술한 손실이 감소되도록 복선율 모델(1820)의 파라미터를 업데이트할 수 있다. 복선율 음악 생성 시스템(1800)은 상술한 트레이닝 동작을 반복함으로써, 손실을 감소시킬 수 있다. 손실이 임계 손실에 도달하는 경우, 복선율 음악 생성 시스템(1800)은 트레이닝을 종료하고, 트레이닝된 파라미터(1830)를 확정할 수 있다.
복선율 음악 생성 시스템(1800)은 입력용 미디 파일 데이터(1851)를 획득할 수 있다. 복선율 음악 생성 시스템(1800)은 미디 파일 데이터 판독기(1852)를 통해 미디 파일을 로딩할 수 있다.
멜로디/화음 진행 데이터 추출기(1853)는 미디 파일 데이터로부터 입력용 멜로디/화음 진행 데이터(1854)를 추출할 수 있다.
복선율 모델(1820)은 입력부(1810)를 통해 입력용 멜로디/화음 진행 데이터(1854)를 입력받을 수 있고, 복선율 데이터를 생성할 수 있다. 미디 파일 데이터 생성기(1856)는 복선율 모델(1820)에 의해 생성된 복선율 데이터를 전달 받아, 미디 파일의 형태로 변환할 수 있다. 미디 파일 데이터 생성기(1856)는 출력된 미디 파일 데이터(1857)를 생성할 수 있다.
일 실시예에 따르면, 서로 다른 속성의 음악이 트레이닝된 각 복선율 모델은, 동일한 입력에 대해 다양한 복선율 음악을 생성할 수 있다. 복선율 음악 생성 시스템(1800)은 고차원의 정보를 작곡가의 스타일 별로 학습하고 음악다운 복선율 음악을 생성할 수 있다. 특히 화음 진행에 기초하여 음악을 생성하므로, 실제 작곡가도 복선율 음악을 작곡하기 위해 복선율 음악 생성 시스템(1800)을 이용할 수 있다. 더 나아가 복선율 음악 생성 시스템(1800)은 복선율 모델로부터 출력되는 확률 맵을 필터링함으로써, 데이터 처리의 효율성을 증가시킬 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
301: 입력 음악 데이터
310: 복선율 모델
309: 복선율 데이터
310: 복선율 모델
309: 복선율 데이터
Claims (10)
- 복선율 음악(polyphonic music) 생성 방법에 있어서,
사용자 입력에 응답하여, 입력 음악 데이터(input music data)를 획득하는 단계;
상기 입력 음악 데이터로부터, 멜로디 데이터 및 화음 진행 데이터를 생성하는 단계; 및
복선율 모델(polyphonic model)에 기초하여, 상기 멜로디 데이터 및 상기 화음 진행 데이터로부터 복선율 데이터(polyphonic data)를 생성하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 멜로디 데이터 및 화음 진행 데이터를 생성하는 단계는,
타임 슬롯 단위로, 입력 음악 데이터의 주 멜로디(main melody)에 대응하는 단일 노트(single note)를 지시하는 노트 데이터 및 상기 주 멜로디의 옥타브를 지시하는 옥타브 데이터를 포함하는 멜로디 데이터를 생성하는 단계; 및
상기 타임 슬롯 단위로, 상기 입력 음악 데이터의 화음을 지시하는 화음 진행 데이터를 생성하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 입력 음악 데이터를 획득하는 단계는,
상기 사용자 입력에 응답하여, 미디 파일 데이터(MIDI file data)를 획득하는 단계; 및
상기 미디 파일 데이터로부터 상기 입력 음악 데이터를 생성하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 복선율 데이터를 생성하는 단계는,
사용자로부터 대상 속성(target property)을 지정하는 사용자 입력을 수신하는 단계; 및
복수의 복선율 생성 모델들 중 상기 지정된 대상 속성에 대응하는 복선율 모델을 선택하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 복선율 데이터를 생성하는 단계는,
상기 멜로디 데이터의 벡터 차원(vector dimension) 및 상기 화음 진행 데이터의 벡터 차원보다 큰 벡터 차원을 가지는 상기 복선율 데이터를 생성하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 복선율 데이터를 생성하는 단계는,
상기 멜로디 데이터 및 상기 화음 진행 데이터를 상기 복선율 모델에 입력함으로써, 상기 복선율 모델로부터 타임 슬롯 단위로 복수의 노트들에 대한 확률 맵 데이터(probability map data)를 출력하는 단계; 및
상기 확률 맵 데이터로부터 임계(threshold) 미만의 확률을 나타내는 노트를 배제함으로써, 상기 복선율 데이터를 생성하는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
트레이닝 음악으로부터 트레이닝 멜로디 데이터 및 트레이닝 화음 진행 데이터를 추출하는 단계;
상기 복선율 모델에 기초하여, 상기 트레이닝 멜로디 데이터 및 상기 트레이닝 화음 진행 데이터로부터 트레이닝 복선율 데이터를 생성하는 단계; 및
상기 트레이닝 복선율 데이터 및 상기 트레이닝 음악 간의 손실(loss)이 최소화함으로써, 상기 복선율 모델을 트레이닝시키는 단계
를 포함하는 복선율 음악 생성 방법. - 제1항에 있어서,
상기 멜로디 데이터 및 화음 진행 데이터에 대한 타임 슬롯을, 상기 입력 음악 데이터의 박자(beat signature)에 기초하여 결정하는 단계
를 포함하는 복선율 음악 생성 방법. - 하드웨어와 결합되어 제1항 내지 제8항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
- 복선율 음악 생성 장치에 있어서,
사용자 입력에 응답하여, 입력 음악 데이터를 획득하는 음악 획득부; 및
상기 입력 음악 데이터로부터, 멜로디 데이터 및 화음 진행 데이터를 생성하고, 복선율 모델에 기초하여 상기 멜로디 데이터 및 상기 화음 진행 데이터로부터 복선율 데이터를 생성하는 프로세서
를 포함하는 복선율 음악 생성 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180033396A KR102227415B1 (ko) | 2018-03-22 | 2018-03-22 | 복선율 음악 생성 방법, 장치, 및 시스템 |
PCT/KR2019/003333 WO2019182390A2 (ko) | 2018-03-22 | 2019-03-22 | 복선율 음악 생성 방법, 장치, 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180033396A KR102227415B1 (ko) | 2018-03-22 | 2018-03-22 | 복선율 음악 생성 방법, 장치, 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190111360A true KR20190111360A (ko) | 2019-10-02 |
KR102227415B1 KR102227415B1 (ko) | 2021-03-15 |
Family
ID=67987844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180033396A KR102227415B1 (ko) | 2018-03-22 | 2018-03-22 | 복선율 음악 생성 방법, 장치, 및 시스템 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102227415B1 (ko) |
WO (1) | WO2019182390A2 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240153474A1 (en) * | 2022-11-07 | 2024-05-09 | Lemon Inc. | Melody extraction from polyphonic symbolic music |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8168877B1 (en) * | 2006-10-02 | 2012-05-01 | Harman International Industries Canada Limited | Musical harmony generation from polyphonic audio signals |
KR20160076775A (ko) * | 2014-12-23 | 2016-07-01 | 김성현 | 입력 곡 정보에 기반한 자동 작곡 프로그램 및 시스템 |
KR20170128060A (ko) * | 2016-12-13 | 2017-11-22 | 반병현 | 재생되는 음악을 분석하여 멜로디를 추출하는 방법 |
-
2018
- 2018-03-22 KR KR1020180033396A patent/KR102227415B1/ko active IP Right Grant
-
2019
- 2019-03-22 WO PCT/KR2019/003333 patent/WO2019182390A2/ko active Application Filing
Non-Patent Citations (2)
Title |
---|
Boulanger-Lewandowski 외 2명, "Modeling Temporal Dependencies in High-Dimensional Sequences: Application to Polyphonic Music Generation and Transcription", Proceedings of the 29th International Conferen* * |
GINO BRUNNER 외 3명, "JamBot: Music Theory Aware Chord Based Generation of Polyphonic Music with LSTMs", arXiv:1711.07682v1, 2017.11.21.* * |
Also Published As
Publication number | Publication date |
---|---|
KR102227415B1 (ko) | 2021-03-15 |
WO2019182390A3 (ko) | 2019-11-14 |
WO2019182390A2 (ko) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113192471B (zh) | 一种基于神经网络的乐曲主旋律音轨识别方法 | |
Chourdakis et al. | A machine-learning approach to application of intelligent artificial reverberation | |
Coca et al. | Generation of composed musical structures through recurrent neural networks based on chaotic inspiration | |
Yadav et al. | A Lightweight Deep Learning‐Based Approach for Jazz Music Generation in MIDI Format | |
JPWO2020080239A1 (ja) | 情報処理方法、情報処理装置及び情報処理プログラム | |
Dadman et al. | Toward interactive music generation: A position paper | |
Sajad et al. | Music generation for novices using Recurrent Neural Network (RNN) | |
Sturm et al. | Folk the algorithms:(Mis) Applying artificial intelligence to folk music | |
CN115206270A (zh) | 基于循环特征提取的音乐生成模型的训练方法、训练装置 | |
KR102227415B1 (ko) | 복선율 음악 생성 방법, 장치, 및 시스템 | |
Hallström et al. | From jigs and reels to schottisar och polskor: Generating Scandinavian-like folk music with deep recurrent networks | |
KR102560394B1 (ko) | 악보 코드 ai판별 알고리즘 기반 코드 생성 시스템 | |
Trochidis et al. | CAMeL: Carnatic percussion music generation using n-gram models | |
KR20170128070A (ko) | 순환형 신경망에 기반한 작곡 방법 | |
Yanchenko | Classical music composition using hidden Markov models | |
KR102490769B1 (ko) | 음악적 요소를 이용한 인공지능 기반의 발레동작 평가 방법 및 장치 | |
Jiang et al. | Music signal recognition based on the mathematical and physical equation inversion method | |
Ranjan et al. | Using a bi-directional lstm model with attention mechanism trained on midi data for generating unique music | |
Szelogowski | Generative deep learning for virtuosic classical music: Generative adversarial networks as renowned composers | |
Melistas | Lyrics and vocal melody generation conditioned on accompaniment | |
Brink | Dissection of a generative network for music composition | |
Milon-Flores et al. | Generating audiovisual summaries from literary works using emotion analysis | |
Martins et al. | Similarity measures for rhythmic sequences | |
Lai et al. | Separation of electric guitar sound based on stacked recurrent neural network | |
KR102149773B1 (ko) | 딥러닝 기반의 작곡용 드럼 패턴 생성장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |