KR20230028802A - 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법 - Google Patents

음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법 Download PDF

Info

Publication number
KR20230028802A
KR20230028802A KR1020237003220A KR20237003220A KR20230028802A KR 20230028802 A KR20230028802 A KR 20230028802A KR 1020237003220 A KR1020237003220 A KR 1020237003220A KR 20237003220 A KR20237003220 A KR 20237003220A KR 20230028802 A KR20230028802 A KR 20230028802A
Authority
KR
South Korea
Prior art keywords
music
data
shaping
code
processing unit
Prior art date
Application number
KR1020237003220A
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 티엠아이케이 인크.
Publication of KR20230028802A publication Critical patent/KR20230028802A/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
    • G10GREPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
    • G10G1/00Means for the representation of music
    • G10G1/04Transposing; Transcribing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10GREPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
    • G10G3/00Recording music in notation form, e.g. recording the mechanical operation of a musical instrument
    • G10G3/04Recording music in notation form, e.g. recording the mechanical operation of a musical instrument using electrical means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/30Character recognition based on the type of data
    • G06V30/304Music notations
    • 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)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Acoustics & Sound (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

[과제] 원곡을 입력으로 하면서, 새롭게 작곡된 곡을 생성한다.
[해결 수단] 본 발명은, 음악 처리 시스템에 관한 것이다. 그리고, 본 발명의 음악 처리 시스템은, 1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 악곡 데이터와 악곡 데이터의 악곡을 구성하는 요소의 속성을 나타내는 구성 정보를 포함한 입력 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하는 악곡 생성 수단과, 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 정형 수단을 가지는 것을 특징으로 하는 음악 처리 시스템.

Description

음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법
본 발명은, 음악 처리 장치, 음악 처리 프로그램, 및 음악 처리 방법에 관한 것으로, 예를 들면, 새로운 악곡의 작곡에 적용 할 수 있다.
종래, 악곡을 작곡하기 위한 지식을 가지지 않는 유저에 대해서도, 용이하게 악곡을 생성하는 것을 지원하는 시스템으로서, 예를 들면, 특허 문헌 1의 기재 기술이 존재한다.
특허 문헌 1에 기재된 시스템에서는, 유저의 조작에 의해, 원곡에 대한 어레인지의 정도를 바꾸면서 원곡의 편곡을 지원하는 시스템이다. 특허 문헌 1에 기재된 시스템에서는, 발음 타이밍을 제외한 3개의 속성(음높이, 음길이, 소리의 크기) 중 적어도 하나의 속성에 의해서 소리 상태를 정의할 때, 임의 상태로부터 다음 상태로의 천이 확률을 설정한 천이 확률 데이터를 복수 보관 유지하고 있다. 그리고, 특허 문헌 1에 기재된 시스템에서는, 선택하는 천이 확률 데이터를 선택하는 것에 의해서 원곡을 어레인지의 정도를 바꿀 수 있기 때문에, 음악에 관한 지식을 거의 가지지 않는 이용자이라도, 어레인지의 정도를 바꾸면서, 원곡의 편곡을 실시할 수 있다.
특허 문헌 1 : 일본 특개 2009-20323호 공보
하지만, 특허 문헌 1의 기재 기술에 있어, 천이 확률 데이터의 속성에서는 발음 타이밍이 제외되고 있기 때문에, 어디까지나 원곡을 어레인지했다고 하는 것만으로, 작곡 하고 있다고는 말하기 어렵다.
그 때문에, 원곡을 입력으로 하면서, 새롭게 작곡된 곡을 생성할 수 있는 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법이 요구되고 있다.
제1 본 발명의 음악 처리 시스템은, (1) 1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면(譜面)이 기술된 악곡 데이터와 상기 악곡 데이터의 악곡을 구성하는 요소의 속성을 나타내는 구성 정보를 포함한 입력 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하는 악곡 생성 수단과, (2) 상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 정형 수단을 가지는 것을 특징으로 한다.
제2 본 발명의 음악 처리 프로그램은, 컴퓨터를, (1) 1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 학습용 악곡 데이터를 가지는 학습용 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하는 악곡 생성 수단과, (2) 상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 정형 수단으로서 기능시키는 것을 특징으로 하는 음악 처리 프로그램.
제3 본 발명은, 음악 처리 시스템이 실시하는 음악 처리 방법에 있어서, (1) 상기 음악 처리 시스템은, 악곡 생성 수단과, 정형 수단을 갖추고, (2) 상기 악곡 생성 수단은, 1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 학습용 악곡 데이터를 가지는 학습용 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하고, (3) 상기 정형 수단은, 상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 것을 특징으로 한다.
본 발명에 의하면, 원곡을 입력으로 하면서, 새롭게 작곡된 곡을 생성할 수 있다.
[도 1] 제1 실시 형태에 따른 음악 처리 장치의 기능적 구성에 대해 도시한 블록도이다.
[도 2] 제1 실시 형태에 따른 생성 처리부에 적용하는 AI의 학습시의 구성예에 대해 도시한 블록도이다.
[도 3] 제1 실시 형태에 따른 생성 처리부에서의 악곡 생성시의 구성예에 대해 도시한 블록도이다.
[도 4] 제1 실시 형태에 따른 입력 악곡의 예를 스코어 형식의 보면에서 나타내는 예에 대해 도시하고 있다.
[도 5] 제1 실시 형태에 따른 입력 악곡의 예에서의 멜로디 채널의 보면을 ID(수치)로 변환한 내용을 표 형식으로 도시한 도이다.
[도 6] 제1 실시 형태에 따른 입력 악곡의 예에서의 코드 채널의 보면을 ID(수치)로 변환한 내용을 표 형식으로 도시한 도이다.
[도 7] 제1 실시 형태에 따른 멜로디 채널의 각 음표에 대해 ID로 변환하기 위한 변환표에 대해 도시한 도이다.
[도 8] 제1 실시 형태에 따른 코드 채널의 각 코드에 대해 ID로 변환하기 위한 변환표에 대해 도시한 도이다.
[도 9] 제1 실시 형태에 따른 정형 처리부가 실시하는 정형 처리의 흐름에 대해 도시하는 플로우차트이다.
[도 10] 제1 실시 형태에서 처리되는 정형 전 악곡(생성 악곡)의 예에 대해 도시한 도이다.
[도 11] 제1 실시 형태에서 처리되는 정형 전 악곡의 예에서의 코드 진행에 대해 도시한 도이다.
[도 12] 제1 실시 형태에 따른 정형 처리부에 의한 각 조의 카운트 결과에 대해 도시한 도이다.
[도 13] 제1 실시 형태에서 처리되는 코드 정형 완료 악곡의 예에 대해 도시한 도이다.
[도 14] 제1 실시 형태에서 처리되는 멜로디 정형 완료 악곡의 예에 대해 도시한 도이다.
[도 15] 제1 실시 형태에서 [조작 파라미터=0]으로 했을 경우에서의 생성 악곡의 예에 대해 도시한 도이다.
[도 16] 제1 실시 형태에서 [조작 파라미터=10]으로 했을 경우에서의 생성 악곡의 예에 대해 도시한 도이다.
[도 17] 제1 실시 형태에서 [조작 파라미터=20]으로 했을 경우에서의 생성 악곡의 예에 대해 도시한 도이다.
[도 18] 제2 실시 형태에 따른 음악 처리 장치의 기능적 구성에 대해 도시한 블록도이다.
[도 19] 제2 실시 형태에 따른 생성 처리부에서의 악곡 생성시의 구성예에 대해 도시한 블록도이다.
(A) 제1 실시 형태
이하, 본 발명에 의한 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법의 제1 실시 형태를, 도면을 참조하면서 상세히 설명한다.
(A-1) 제1 실시 형태의 구성
도 1은, 이 실시 형태의 음악 처리 시스템(10)의 전체 구성을 도시한 블록도이다.
음악 처리 시스템(10)은, 새롭게 악곡을 생성하여 출력하는 시스템이다.
음악 처리 시스템(10)은, 모두 하드웨어(예를 들면, 전용 칩 등)에 의해 구성하도록 해도 무방하고 일부 또는 전부에 대해 소프트웨어(프로그램)로서 구성하도록 해도 무방하다. 음악 처리 시스템(10)은, 예를 들면, 프로세서 및 메모리를 가지는 컴퓨터에 프로그램(실시 형태의 음악 처리 프로그램을 포함한다)을 인스톨하는 것에 의해 구성하도록 해도 무방하다. 또, 음악 처리 시스템(10)을 구성하는 컴퓨터의 수는 한정되지 않고, 복수 대의 컴퓨터에 프로그램이나 데이터를 분산하여 배치하는 것에 의해 실현되도록 해도 무방하다.
음악 처리 시스템(10)은, 입력 악곡 데이터, 구성 정보를 포함한 데이터(이하, 「입력 데이터」라고 칭한다)와 조작 파라미터가 입력되면, 그 입력 데이터를 이용하여 새로운 악곡을 생성하여 출력하는 처리를 실시한다. 이하에서는, 음악 처리 시스템(10)이 출력하는 악곡 데이터를, 「출력 악곡 데이터」라고 칭한다.
다음으로, 입력 악곡 데이터/출력 악곡 데이터에 대해 설명한다.
이 실시 형태에 있어서, 입력 악곡 데이터/출력 악곡 데이터의 데이터 형식(입출력되는 음악 데이터의 형식)은, 스탠다드 MIDI 파일(Standard Musical Instrument Digital Interface File ; 이하, 「SMF」라고 칭한다)의 형식인 것으로서 설명하지만 입력 악곡 데이터/출력 악곡 데이터에 적용하는 데이터 형식은 스탠다드 MIDI 파일의 형식으로 한정되지 않고 여러 가지의 연주 정보(보면 데이터)의 형식의 데이터를 적용할 수 있다. 또, 음악 처리 시스템(10)에 있어서, 입력 악곡 데이터/출력 악곡 데이터에 적용하는 데이터 형식으로서 SMF와 같은 연주 정보의 형식이 아니고, WAV나 MP3 등의 직접적인 음향 신호의 형식이여도 무방하다. 음악 처리 시스템(10)에 있어서, 입력 악곡 데이터/출력 악곡 데이터가 음향 신호의 형식인 경우에는, 입력되는 입력 악곡 데이터를 SMF 등의 연주 정보의 형식의 데이터로 변환하여 처리하고, 출력 악곡 데이터로서 음향 신호의 형식으로 변환한 데이터를 출력하게 된다. 음악 처리 시스템(10)에 있어서 음향 신호의 형식의 데이터를 연주 정보의 형식의 데이터로 변환하는 처리, 및 연주 정보의 형식의 데이터를 음향 신호의 형식의 데이터로 변환하는 처리(음악 재생 처리)에 대해서는 여러 가지의 처리를 적용할 수 있으므로, 상세에 대해서는 설명을 생략한다.
또한, 이 실시 형태에서는, 입력 악곡 데이터와 출력 악곡 데이터는, 동일한 데이터 형식(SMF의 형식)인 것으로서 설명하지만, 각각 다른 형식으로 해도 무방한 것은 당연하다.
이 실시 형태에 있어서, 음악 처리 시스템(10)에서 처리되는 악곡의 단위(예를 들면, 길이나 채널(MIDI상의 채널)의 수 등)은, 한정되지 않는다. 즉, 이 실시 형태에 있어서, 음악 처리 시스템(10)에서 처리되는 악곡의 단위의 길이는, 고정 길이(예를 들면, 소정의 소절수)로 해도 무방하고 가변 길이로 해도 무방하다. 이 실시 형태에서는, 음악 처리 시스템(10)에서 처리되는 악곡의 단위의 길이는 4/4 박자의 환산으로 8 소절(32박 ; 2/2 박자의 경우는 16 소절)의 고정 길이인 것으로서 설명한다. 또, 이 실시 형태에 있어서, 음악 처리 시스템(10)에서 처리되는 악곡의 채널수는 멜로디 1 채널과 코드(멜로디에 대한 반주의 화음) 1 채널의 합계 2 채널에서 구성되는 것으로서 설명한다. 이하에서는, 악곡을 구성하는 멜로디의 채널을 「멜로디 채널」, 코드의 채널을 「코드 채널」이라고 칭하는 것으로 한다. 또한, 음악 처리 시스템에서 처리되는 악곡에서 멜로디 채널 및 코드 채널은, 각각 복수(2이상)로 해도 무방하다.
다음으로, 「구성 정보」에 대해 설명한다.
구성 정보는, 입력 악곡에서의 각 구간의 요소의 속성(종류)을 나타내는 파라미터이다. 이 실시 형태의 예에서는, 입력 악곡의 요소로서 인트로, A멜로디, B멜로디 또는 사비(サビ) 중 어느 것의 속성을 적용하는 것으로 한다. 적용 가능한 요소의 속성은, 상기에 한정하지 않고 여러 가지의 형식(예를 들면, 제1 주제, 제2 주제 등의 형식)을 적용하도록 해도 무방하다.
구성 정보는, 입력 악곡 데이터와는 다른 데이터로서 구성도 무방하지만, SMF의 마커(marker)에 구성 정보로 대응하는 정보를 포함시키는 것으로 실현되도록 해도 무방하다. SMF에서는, 유저에 의해 임의의 텍스트를 기입하는 것이 가능한 필드로서 마커가 준비되어 있다. 그래서, 입력 악곡 데이터(SMF 데이터)의 마커에, 구성 정보로 대응하는 텍스트(예를 들면, 인트로, A멜로디, B멜로디, 사비와 같은 텍스트)를 기입하는 형식이라 해도 무방하다.
예를 들면, 입력 악곡 데이터로서 공급된 SMF 데이터에 있어서, 1번째 소절의 선두의 타이밍(포지션)의 마커에 「인트로」, 5번째 소절의 선두의 타이밍의 마커에 「A멜로디」로 설정되어 있었을 경우, 음악 처리 시스템(10)에서는, 1~4번째 소절의 구간을 「인트로」로 인식하고, 5번째 소절 이후(5~8번째 소절)의 구간을 A멜로디로 인식한다. 또, 예를 들면, 입력 악곡 데이터로서 공급된 SMF 데이터에 있어서, 1번째 소절의 선두의 타이밍(포지션)의 마커에 「A멜로디」설정되어 있고, 그 이외의 마커가 설정되어 있지 않은 경우, 음악 처리 시스템(10)에서는, 모든 구간(1~8번째 소절)을 「A멜로디」로 인식한다. 이상과 같이, SMF 데이터에서는, 구간마다의 요소의 속성을 마커에 기입하는 것이 가능하게 된다.
SMF 데이터와는 별도로 구성 정보를 기술하는 경우의 구체적인 형식은 한정되지 않고, 입력 악곡의 구간마다의 요소의 속성이 기술되고 있으면 무방하다. 예를 들면, SMF의 마커와 같게 타이밍(포지션)과 요소의 속성을 나타내는 정보(예를 들면, A멜로디, B멜로디, 인트로에 대응하는 텍스트나 수치)를 쌍으로 한 정보의 열에 의해 구성 정보를 기술하도록 해도 무방하다. 또, 입력 악곡의 전구간에 대해 같은 속성을 적용하는 경우는, 구성 정보에는 타이밍에 관한 정보는 필요 없고, 단지 속성에 대응하는 파라미터나 텍스트를 설정하도록 해도 무방하다.
다음으로, 「조작 파라미터」에 대해 설명한다.
조작 파라미터는, 음악 처리 시스템(10)에 있어서, 유저로부터 생성되는 악곡의 특성의 조작을 받아들이기 위한 인터페이스로서 이용 가능한 파라미터이다. 이 실시 형태에 있어서, 조작 파라미터는 하나의 수치(1 차원의 파라미터)로 나타나는 것으로서 설명한다. 다만, 조작 파라미터는, 한정되지 않고, 복수의 수치(다차원의 파라미터)로 나타나도록 해도 무방하고, 수치 이외의 형식(예를 들면, TRUE/FALSE와 같은 플래그 형식)에서 나타나도록 해도 무방하다. 조작 파라미터의 상세에 대하여서는 후술한다.
다음으로, 음악 처리 시스템(10)의 내부 구성에 대해 설명한다.
도 1에 도시하듯이, 음악 처리 시스템(10)은, 벡터화 처리부(101), 생성 처리부(102), 정형 처리부(103), 및 복원 처리부(104)를 가지고 있다.
벡터화 처리부(101)는, 입력 악곡 데이터 및 구성 정보를 포함한 데이터에 대해 후단의 생성 처리부(102)로의 처리에 적절한 형식의 벡터 데이터(이하, 「입력 악곡 벡터 데이터」라 칭한다)로 변환하는 처리를 실시한다. 그리고, 벡터화 처리부(101)는, 취득한 입력 악곡 벡터 데이터를 생성 처리부(102)에 공급한다. 입력 악곡 벡터 데이터의 구체적인 형식에 대해서는 후술한다.
생성 처리부(102)는, AI를 이용한 생성 모델의 처리에 의해, 입력 악곡 벡터 데이터와 조작 파라미터에 근거해 새로운 악곡(이하, 「생성 악곡」이라 칭한다)에 대응하는 벡터 데이터(입력 악곡 벡터 데이터와 같은 형식의 데이터 ; 이하 「생성 악곡 벡터 데이터」라 칭한다)를 생성하여 출력한다. 생성 처리부(102)는, 생성 악곡 벡터 데이터를 정형 처리부(103)에 공급한다. 생성 처리부(102)의 상세 구성에 대해서는 후술한다.
정형 처리부(103)는, 생성 악곡 벡터 데이터의 악곡에 대해서, 음악적으로 조화를 이룬 내용으로 정형하는 처리(예를 들면, 전체적인 조의 통일이나, 멜로디와 코드와의 사이의 스케일의 조정 등)를 실시하여, 「정형 완료 악곡 벡터 데이터」로서 출력한다.
생성 악곡 벡터 데이터의 악곡은, AI(생성 처리부(102))로부터 출력된 그대로의 내용이기 때문에, 조가 갖추어지지 않은 경우나, 멜로디와 코드와의 사이에 스케일이 맞지 않은 경우 등, 음악적(음악 이론적)으로 봐서 조화를 이루지 않은 경우가 있다. 그래서, 음악 처리 시스템(10)에서는, 정형 처리부(103)를 갖춤으로써, 음악적으로 정형된 악곡을 출력하도록 하고 있다. 또한, AI(생성 처리부(102))로부터 출력되는 생성 악곡 벡터 데이터에 대해 정형하는 것이 필요하지 않은 경우(예를 들면, 유저측에서 필요하지 않은 경우나, 최초부터 음악적으로 갖추어진 내용이 생성되는 경우)에는, 정형 처리부(103)의 구성을 제외하여, 생성 악곡 벡터 데이터를 그대로 복원 처리부(104)에 공급하도록 해도 무방하다.
복원 처리부(104)는, 정형 완료 악곡 벡터 데이터에 대해서, 소정의 형식의 음악 데이터(이 실시 형태에서는, SMF의 형식)로 복원(변환)하여 「출력 악곡 데이터」로서 출력한다.
다음으로, 생성 처리부(102)에 적용하는 AI의 구성예에 대해 설명한다.
생성 처리부(102)에서는, 딥 러닝 베이스로 기계 학습한 학습 모델을 기초로 AI가 구성되어 있다. 구체적으로는, 생성 처리부(102)에서는, VAE(Variational Auto부호화r)의 체계(framework)에서 학습을 실시한 학습 모델을 취득한다.
생성 처리부(102)에 이용되는 AI를 구성하는 플랫폼(미들웨어)에 대해서는 한정되지 않고 여러 가지의 플랫폼을 적용할 수 있다. 이 실시 형태의 예에서는, 생성 처리부(102)는, Python(등록상표) 및 그 주변의 라이브러리를 이용해 구성되는 것으로서 이하의 설명을 실시한다.
도 2는, 생성 처리부(102)에 적용하는 AI의 학습시(학습 모델을 취득할 때)의 구성예에 대해 도시한 도이다.
도 2에 도시하듯이, 생성 처리부(102)에서는, 학습시에서 적어도, 엔코더(201)(부호화기), 디코더(202)(복호기), 디스크리미내이터(203)(식별기), 및 잠재 변수 처리부(204)가 동작한다.
엔코더(201)는, 입력 악곡 벡터 데이터에 근거하여, 잠재 변수의 평균 벡터 μ와 확립 분포를 나타내는 분산 벡터 σ를 취득하여 출력한다.
학습시에서, 잠재 변수 처리부(204)는, VAE의 체계에 따라, 평균 벡터 μ에 대해서 표준 편차σ에 따른 노이즈를 가산한 값을 잠재 변수 z(잠재 변수의 샘플)로서 취득해 디코더(202)에 공급한다. 이 때, 잠재 변수 처리부(204)는, 예를 들면, 이하의 (1) 식에 따라서 잠재 변수 z를 취득하도록 해도 무방하다. 예를 들면, (1) 식에서, I=1이라 해도 무방하다.
Figure pct00001
… (1)
예를 들면, 잠재 변수 z가 256 차원의 벡터인 경우, 잠재 변수 처리부(204)가 학습시에서 잠재 변수 z를 취득하기 위한 원시 코드(Python으로 기술했을 경우의 코드)는, 「μ+numpy. random. normal(loc=0.0, scale=1*σ, size=256)」라고 할 수 있다.
디코더(202)는 잠재 변수 z를 복원 처리한 벡터 데이터(이하, 「복원 악곡 벡터 데이터」라 칭한다)를 출력한다. 도 2에 도시하는 VAE의 체계에서는, 엔코더(201) 및 디코더(202)에 의해 제네레이터(생성기)가 구성되어 있다. 디스크리미내이터(203)는, 복원 악곡 벡터 데이터가 제네레이터에 의해 생성된 데이터인지 아닌지를 식별한다. 생성 처리부(102)에서는, 제네레이터는, 디스크리미내이터(203)에 제네레이터가 생성한 벡터 데이터인 것을 간파당하지 않게 학습을 한다. 도 2에서는, 설명을 간소화하기 위해 도시를 생략하고 있지만, 도 2의 학습시에는, 디스크리미내이터(203)의 식별 결과나, LOSS(입력 악곡 벡터 데이터와 복원 악곡 벡터 데이터와의 차분)를 이용해 제네레이터가 학습 처리를 실시하게 된다.
생성 처리부(102)의 학습시에는, 벡터화 처리부(101)로부터 학습에 이용되는 샘플(입력 악곡 벡터 데이터)이 순서대로 공급되도록 해도 무방하다. 생성 처리부(102)의 학습에 이용되는 샘플수는 한정되지 않지만, 1000~3000 정도의 샘플수를 적용하도록 해도 무방하다. 또, 생성 처리부(102)의 학습에서, 각 샘플(하나의 입력 악곡 벡터 데이터)에 대해 1000 회전 정도의 학습 처리(1000회 정도, 잠재 변수 z에 근거해 복원 악곡 벡터 데이터를 생성할 때까지의 학습 처리)를 실시하도록 해도 무방하다.
또, 생성 처리부(102)의 학습에 이용하는 샘플(입력 악곡 벡터 데이터)의 소스가 되는 악곡의 종류(예를 들면, 팝스, 재즈 등)나 아티스트 등에 대해 비율을 변화하는 것에 의해, 제네레이터에서 생성되는 악곡의 특징에 대해서도 변화시킬 수 있다. 기본적으로 VAE의 체계에 의해 AI의 학습을 실시하는 경우, 잠재 변수 z의 분포하는 범위는 학습에 이용한 샘플에 따른 분포가 되기 때문이다.
이 실시 형태에서는, 잠재 변수 z는, 256 차원의 고정 사이즈인 것으로 하지만, z의 사이즈는 이것으로 한정되지 않는다. 잠재 변수 z의 사이즈는, 처리되는 벡터 데이터(입력 악곡 벡터 데이터/복원 악곡 벡터 데이터)의 사이즈에 따라 변경하는 것이 바람직하다.
도 3은, 생성 처리부(102)에 적용하는 AI로 학습한 모델을 이용해 생성 악곡 벡터 데이터를 생성할 때(이하, 「악곡 생성시」라 칭한다)의 구성예에 대해 도시한 도이다.
도 3에서는, 상술의 도 2와 동일 부분 또는 대응하는 부분에, 동일한 부호 또는 대응하는 부호를 교부하고 있다.
도 3에 도시하듯이, 생성 처리부(102)에서는, 악곡 생성시에서 적어도, 엔코더(201), 디코더(202), 및 잠재 변수 처리부(204)가 동작한다.
엔코더(201)와 디코더(202) 자체의 동작은 학습시와 동일하기 때문에 자세한 설명을 생략한다.
잠재 변수 처리부(204)는, 악곡 생성시에서는, 분산 벡터 σ 및 조작 파라미터 c에 따른 노이즈를 잠재 변수 z에 혼입(가산)시키는 점에서 학습시와 다르다.
구체적으로는, 잠재 변수 처리부(204)는, 악곡 생성시에서는, 상기의 (1) 식에서, I=c로 하는 것으로, 노이즈를 잠재 변수 z에 조작 파라미터 c를 반영시킨 값으로 보정할 수 있다. 조작 파라미터 c에 대해 설정 가능한 범위는 한정되지 않고, 유저에 의해 조정 가능하게 해도 무방하다. 예를 들면, 조작 파라미터 c로서는, 0~10의 범위에서 설정 가능하도록 해도 무방하고, 0~50의 범위에서 소정의 그리드폭(예를 들면, 10) 씩 변경 가능하게 하도록 해도 무방하다. 또, 잠재 변수 처리부(204)에 있어서, 조작 파라미터 c의 값에 대해 유저로부터 입력을 받는 방식(예를 들면, 입력을 받는 디바이스나 조작 화면의 구성)에 대해서는 한정되지 않는다.
예를 들면, 잠재 변수 z가 256 차원의 벡터인 경우, 잠재 변수 처리부(204)가, 악곡 생성시에 잠재 변수 z를 취득하기 위한 원시 코드(Python으로 기술했을 경우의 코드)는, 「μ+numpy. random. normal(loc=0.0, scale=c*σ, size=256)」이라고 할 수 있다.
(A-2) 제1 실시 형태의 동작
다음으로, 이상과 같은 구성을 가지는 제1 실시 형태에서의 음악 처리 시스템(10)의 동작(실시 형태에 따른 음악 처리 방법)을 설명한다.
우선, 벡터화 처리부(101)의 처리의 상세에 대하여 설명한다.
상술한 바와 같이, 음악 처리 시스템(10)에서는, 2 채널에서 8 소절(32박)의 악곡 단위로 처리된다.
도 4는, 입력 악곡의 예를 스코어 형식의 보면에서 나타내는 예에 대해 도시하고 있다.
또한, 도 4에 도시하는 입력 악곡은, 알렉산더 보로딘 작곡의 「타타르 인의 춤」(폴로베츠인의 춤)로부터의 일절이다.
도 4에서는, 입력 악곡의 멜로디 채널과 코드 채널의 보면을, 스코어 형식에서 나타내고 있다. 또한, 여기에서는, 각 악곡의 채널의 악기(MIDI상의 악기명)는 피아노 계열인 것으로 한다.
우선, 벡터화 처리부(101)는, 입력 악곡 데이터의 각 채널의 음표의 배열에 대해 48분 음표 단위(12분의 1 박자 단위)로 부호화(수열화) 한다. 여기에서는, 입력 악곡 데이터는 8 소절(32박)이므로, 각 채널에 대해 부호화 하면, 8Х48=384개의 부호열이 발생하게 된다. 여기에서는, 각 부호는, 하나의 수치(이하, 단순히 「ID」라 칭한다)로 나타나는 것으로 한다.
도 5는, 도 4에 도시하는 입력 악곡 중 멜로디 채널의 보면을 ID로 변환(부호화)한 내용을 표 형식으로 도시하고 있다.
도 6은, 도 4에 도시하는 입력 악곡 중 코드 채널의 보면을 ID로 변환(부호화)한 내용을 표 형식으로 도시하고 있다.
도 5, 도 6의 표에서는, 1열로 1 소절(4박) 분의 ID(48개의 ID를 설정하는 슬롯)가 배치되어 있다.
도 7은, 멜로디 채널의 각 음표에 대해 ID로 변환하기 위한 변환표의 예에 대해 도시하고 있다.
도 5, 도 7에 도시하듯이, 멜로디 채널에서는, 각 음표의 머리의 타이밍(슬롯)에, 피치의 높이에 대응하는 ID(2 이후의 ID)가 설정되고, 쉼표의 머리의 타이밍(슬롯)에는 「1」의 ID가 설정되어 있다. 또, 도 5, 도 7에 도시하듯이, 멜로디 채널에서는, 음표 또는 쉼표의 머리의 타이밍 이외의 타이밍(슬롯)에, 직전 상태를 계속하기 위한 「0」의 부호가 설정된다. 구체적으로는, 「0」의 ID는, 도 7에 도시하듯이, 「직전의 ID 상태가 계속하고 있는 상태」, 「직전의 ID 상태가 계속하고 있는 상태.」, 「직전의 ID가 0인 경우는, 더욱 그 직전 상태가 계속하고 있는 상태.」, 「직전의 ID가 1인 경우는, 소리가 울지 않은 상태.」, 「그 이외의 경우는, 해당하는 피치의 소리가 계속 울리고 있는 상태.」라는 처리를 의미하고 있다.
도 8은, 코드 채널의 각 코드에 대해 ID로 변환하기 위한 변환표에 대해 도시하고 있다.
도 6, 도 8에 도시하듯이, 코드 채널에서는, 각 코드(화음)의 머리의 타이밍(슬롯)에, 코드의 종류(화음의 조합)에 대응하는 ID(2 이후의 ID)가 설정되고, 쉼표의 머리의 타이밍(슬롯)에는 「1」의 ID가 설정된다. 코드 채널에서는, 피치의 최저음은, MIDI에서의 국제식의 C2, 최고음은 B5에 상당하는 소리가 된다. 또, 도 6, 도 8에 도시하듯이, 코드 채널에서는, 음표 또는 쉼표의 머리의 타이밍 이외의 타이밍(슬롯)에, 직전 상태를 계속하기 위한 「0」의 부호가 설정된다. 구체적으로는, 「0」의 부호는, 도 8에 도시하듯이, 「직전의 ID 상태가 계속하고 있는 상태」, 「직전의 ID 상태가 계속하고 있는 상태.」, 「직전의 ID가 0의 경우는, 더욱 그 직전 상태가 계속하고 있는 상태.」, 「직전의 ID가 1의 경우는, 소리가 울지 않은 상태.」, 「그 이외의 경우는, 해당하는 코드의 소리가 계속 울리고 있는 상태.」라는 처리를 의미하고 있다.
이상과 같이, 벡터화 처리부(101)는, 입력 악곡 데이터의 각 채널에 대해 수열로 변환하는 것으로, 각 채널에 대응하는 One-Hot Vector(AI의 처리에 매우 적합한 데이터 형식의 데이터)를 얻을 수 있다. 이하에서는, 각 채널에 대해 부호화(ID화/수열화/One-Hot Vector화) 한 대량의 데이터를, 「부호화 완료 입력 악곡 데이터」라고 칭한다. 부호화 완료 입력 악곡 데이터에는, 멜로디 채널의 수열(384의 ID의 열/부호열/One-Hot Vector)과, 코드 채널의 수열(384개의 ID의 열/수열/One-Hot Vector)이 포함되는 데이터가 된다. 이하에서는, 멜로디 채널의 수열의 각 수치를 Mi(i는 1~384의 슬롯 번호(시계열의 순서)를 나타낸다), 코드 채널의 수열의 각 수치를 Ci로 나타내는 것으로 한다. 구체적으로는, 멜로디 채널의 수열을 M1, M2, M3, …, M384로 나타내고, 코드 채널의 수열을 C1, C2, C3, …, C384로 나타내는 것으로 한다.
다음으로, 벡터화 처리부(101)가 구성 정보를 부호화(수열화) 하는 처리에 대해 설명한다.
 상술한 바와 같이, 벡터화 처리부(101)에서는 구성 정보에 의해, 입력 악곡의 구간마다의 요소의 속성(예를 들면, 인트로, A멜로디, B멜로디, 사비 등)을 파악할 수 있다. 그래서, 벡터화 처리부(101)는, 입력 악곡의 각 슬롯에 대응하는 요소의 속성을 파악하여, 각 슬롯에 요소(요소의 속성)에 대응하는 수치(부호)를 설정한 수열을 취득한다.
각 요소의 속성에 대응하는 수치(부호)의 할당은 한정되지 않는다. 이 실시 형태에서는, 각 요소에 대응하는 수치는 0~50의 범위에서 할당되고 있는 것으로 한다. 구체적으로는, 이 실시 형태의 예에서는, A멜로디에 대응하는 수치로서 10~19중 어느 하나, B멜로디에 대응하는 수치로서 20~29중 어느 하나, 사비에 대응하는 수치로서 30~39중 어느 하나, 인트로에 대응하는 수치로서 40~49중 어느 하나가 할당되고 있는 것으로서 설명한다. 예를 들면, 벡터화 처리부(101)에서는, A멜로디에 대응하는 수치를 10, B멜로디에 대응하는 수치를 20, 사비에 대응하는 수치를 30, 인트로에 대응하는 수치를 40으로 하도록 해도 무방하다. 요소의 속성이 다른 경우는, 어느 정도 수치의 간격을 두기 때문에 AI에 요소의 속성에 의한 특징을 구별시키기 쉽게 할 수 있다. 또, 입력 악곡으로, 같은 요소의 구간이 복수 발생하는 경우(예를 들면, A멜로디, B멜로디, A멜로디가 계속되는 경우), 벡터화 처리부(101)는, 중복하여 발생하는 구간에 대해 다른 수치를 설정하도록 해도 무방하다. 예를 들면, A멜로디, B멜로디, A멜로디가 계속되는 경우, 1회째의 A멜로디의 구간에 대해서는 30, 2번째의 A멜로디의 구간에 대해서는 31을 설정하도록 해도 무방하다. 또한, 이 실시 형태에서는, 구성요소에 대응하는 파라미터는 1 차원으로 하고 있지만 다차원으로 구성하도록 해도 무방하다. 예를 들면, 구성요소에 대응하는 파라미터로서 3개의 파라미터 F, G, H를 설정했다고 가정했을 경우, A멜로디를 「F=1, G=0, H=0」, B멜로디를 「F=0, G=1, H=0」, 사비를 「F=0, G=0, H=1」이라고 정의하도록 해도 무방하다.
이상과 같이, 벡터화 처리부(101)에서는, 구성 정보에 근거해, 입력 악곡의 각 슬롯(384개의 슬롯)에 대해서, 요소의 속성에 대응하는 수치를 설정할 수 있다. 이하에서는, 구성 정보에 근거하는 수열의 각 수치를 Ei로 나타내는 것으로 한다. 구체적으로는, 구성 정보에 근거하는 각 슬롯의 수열을 E1~E384로 나타내는 것으로 한다.
그리고, 벡터화 처리부(101)는, 부호화 완료 입력 악곡 데이터를 구성하는 수열(멜로디 채널 및 코드 채널의 수열)과 구성 정보에 근거하는 수열에 대해 AI처리에 적절한 벡터 데이터(행렬식)로 조립하는 처리를 실시한다.
이 경우, 벡터화 처리부(101)가 생성하는 이하의 (2) 식과 같은 행렬식을 벡터 데이터로서 취득하도록 해도 무방하다. (2) 식에서는, 1 슬롯분(48분 음표분)의 데이터를 1행으로 한 행렬식이 되고 있다. 즉, (2) 식에서, i번째 행(i는 1~384중 어느 하나의 정수)은, (Mi, Ci, Ei)로 구성되어 있다.
[수 1]
Figure pct00002
또한, 이 실시 형태에서는, 음악 처리 시스템(10)의 AI(생성 처리부(102))에서 처리되는 벡터 데이터(입력 악곡 벡터 데이터, 복원 악곡 벡터 데이터 등)는, 모두 (2) 식과 같은 형식인 것으로서 설명한다. 벡터 데이터의 형식은, (2)에 한정하지 않고, 같은 수열로 구성되어 있으면 구체적인 배열의 순서나 각 행의 구성에 대해서는 그 외의 형식(예를 들면, 24분 음표 단위로 1행을 구성하는 형식)이라 해도 무방하다.
또, 상술한 바와 같이, 이 실시 형태에서, 입력 악곡 벡터 데이터에 있어서 멜로디 채널과 코드 채널의 수열은, 48부 음표 단위로 수열화(ID화) 되고는 있지만, 실질적으로는, 소스의 입력 악곡 데이터(SMF 데이터)와 동일하게 보면(연주 정보)의 형식의 데이터이다라고 말할 수 있다. 따라서, 음악 처리 시스템(10)에 있어서, 최초부터 입력 악곡 데이터로서 멜로디 채널과 코드 채널의 데이터에 대해 수열화 된 데이터의 공급을 받도록 해도 무방하다. 또, 음악 처리 시스템(10)에 있어서, 최초부터 입력 악곡 벡터 데이터의 형식에서, 공급을 받도록 해도 무방하다. 그 경우, 음악 처리 시스템(10)에 있어서, 벡터화 처리부(101)를 제외하도록 해도 무방하다.
다음으로, 정형 처리부(103)에 의한 정형 처리의 상세에 대하여 설명한다.
상술한 바와 같이, 정형 처리부(103)는, 생성 악곡 벡터 데이터에 대해 정형 처리를 실시하여 정형 완료 악곡 벡터 데이터로서 출력한다. 또, 이하에서는, 생성 악곡 벡터 데이터에 대응하는 악곡을 「정형 전 악곡」이라고 칭하고, 정형 완료 악곡 벡터 데이터의 악곡을 「정형 완료 악곡」이라고 칭한다.
이 실시 형태에서는, 정형 전 악곡은 8 소절(32박) 정도의 길이 이기 때문에, 정형 처리부(103)는, 정형 전 악곡에 대해, 정형 처리로서 전체에 걸쳐서 조를 통일하는 처리를 실시하는 것으로 한다. 또한, 정형 처리부(103)는, 정형 전 악곡을 복수의 구간으로 나누고, 각각의 구간에 대해 별개로 통일조(統一調)를 결정하고, 그 후의 정형 처리를 실시하도록 해도 무방하다.
이 실시 형태에서는, 정형 처리부(103)는, 벡터 데이터 상태(생성 악곡 벡터 데이터)로 정형 처리를 실시하는 것으로서 설명하지만, 정형 처리부(103)와 복원 처리부(104)의 순서를 바꾸어, SMF 데이터의 형식으로 복원하고 나서 정형 처리를 실시하도록 해도 무방하다.
도 9는, 정형 처리부(103)가 실시하는 정형 처리의 흐름에 대해 도시하는 플로우차트이다.
우선, 정형 처리부(103)는, 정형 전 악곡에 대해 통일하는 조로서 적합한 조를 추정하는 처리(이하, 「조 추정 처리」라 칭한다)를 실시하여, 조 추정 처리의 결과에 따라 통일하는 조(이하, 「통일조」라 칭한다)를 결정한다(S101).
다음으로, 정형 처리부(103)는, 정형 전 악곡의 코드 채널에 대해 통일조에서 일반적으로 사용되는 코드로만 되도록 정형하는 처리(이하, 「코드 정형 처리」라 칭한다)를 실시한다(S102). 이하에서는, 정형 전 악곡에 대해 코드 정형 처리를 실시한 후의 악곡을 「코드 정형 완료 악곡」이라고 부른다.
다음으로, 정형 처리부(103)는, 코드 정형 완료 악곡의 멜로디 채널의 각 음표에 대해서, 코드 채널의 코드와 조화를 이루도록 정형하는 처리(이하, 「멜로디 정형 처리」라 칭한다)를 실시하여, 정형 완료 악곡으로서 취득한다(S103). 구체적으로는, 정형 처리부(103)는, 코드 정형 완료 악곡의 멜로디 채널의 각 음표에 대해서, 동시에 울리고 있는(같은 시계열로 울리고 있다) 코드 채널의 코드(이하, 「대응 코드」라 칭한다)에 대응하는 스케일(이하, 「코드 스케일」라고 칭한다)에 맞도록 피치를 조정(정형)하는 처리를 실시한다.
다음으로, 스텝 S101의 조 추정 처리의 상세에 대하여 설명한다.
정형 처리부(103)는, 조 추정 처리에서, 정형 전 악곡에 대해서, 전체24조((장조Х12음)+(단조Х12음)=24) 중, 어느 조가 통일조로서 적합한지를 추정한다.
이 실시 형태에서는, 정형 처리부(103)는, 정형 전 악곡에 포함되는 코드가, 각 조에서 사용되는 코드와 얼마나 일치하는지를 열거하고, 그들 중 가장 코드와의 일치수가 많은 조를, 최적한 통일조로서 추정(결정)한다.
도 10은, 정형 전 악곡(생성 악곡)의 예에 대해 스코어 형식으로 도시한 도이다.
도 11은, 도 10에 도시한 정형 전 악곡에서의 코드 진행에 대해 도시한 도이다.
도 11에서는, 정형 전 악곡을 구성하는 14개의 각 코드에 대해서 선두에서부터 순서대로, C01~C14라고 하는 부호를 교부하고 있다. 그리고, 도 10에서는, 코드 C01~C14에 대해서, 코드명을 부기하고 있다. 도 10에 도시하듯이, 코드 C01~C14의 코드는 [DM7], [A7], [Am7], [E], [Bm7], [Esus4], [D7], [B7], [Am7], [E7], [Em7], [A7], [Em], [Em7]가 되고 있다.
정형 처리부(103)는, 정형 전 악곡의 각 코드를 구성하는 각 음에 대해서, 각 조(전체 24조의 각 조)의 다이아 토닉 코드에 어느 정도 포함되어 있는지를 카운트 한다. 이 때의 정형 처리부(103)에 의한 카운트 결과를 도 12에 도시한다.
도 12는, 정형 처리부(103)가, 각 조의 다이아 토닉 코드가, 정형 전 악곡의 각 코드를 구성하는 각 음에 몇 개 포함되어 있는지를 카운트 한 결과에 대해 도시한 도이다.
도 12의 표에서는, 조 마다 포함되는 다이아 토닉 코드의 수(이하, 「카운트수」라 칭한다)를 도시하고 있다.
예를 들면, 도 11, 도 12에 도시하듯이, Eminor의 다이아 토닉 코드는, 합계 8개의 코드(C03[Am7], C05[Bm7], C07[D7], C08[B7], C09[Am7], C11[Em7], C13[Em], C14[Em7])에 포함 됨으로, Eminor의 카운트수는 8이 된다.
그리고, 이 경우, 도 12에 도시하듯이, Eminor의 카운트수가 8로 가장 많게 된다. 따라서, 이 경우, 정형 처리부(103)는, 상기 정형 전 악곡에 대한 통일조로서 Eminor가 최적이다라고 추정하게 된다.
다음으로, 스텝 S102의 코드 정형 처리의 상세에 대하여 설명한다.
상술한 바와 같이, 정형 처리부(103)는, 코드 정형 처리에서, 정형 전 악곡의 코드 채널에 대해 통일조로 일반적으로 사용되는 코드로만 되도록 코드 정형 처리를 실시해서, 코드 정형 완료 악곡을 생성한다.
우선, 정형 처리부(103)는, 정형 전 악곡의 코드 채널을 구성하는 각 코드에 대해서, 통일조로 사용되는 코드와 일치하는 코드(이하, 「일치 코드」라 칭한다)인지, 일치하지 않은 코드(이하, 「불일치 코드」라 칭한다)인지를 판단한다.
그리고, 정형 처리부(103)는, 정형 전 악곡의 코드 채널을 구성하는 각 코드 가운데, 불일치 코드에 대해 통일조의 다이아 토닉 코드(이하, 「통일조 코드」라 칭한다)가 되도록 코드를 조정(정형)한다.
이 때, 정형 처리부(103)가, 각 불일치 코드에 대해 수정하는 앞의 통일조 코드(이하, 「조정처 코드」라 칭한다)를 선택하는 방법에 대해서는 한정되지 않지만, 이하와 같은 폴리시(policy)로 선택하도록 해도 무방하다.
기본적으로, 정형 처리에서는, 변경하는 양(피치를 변경하는 음표의 수)은 가능한 한 적은 것이 바람직하다. 정형 처리부(103)는, 이하의 폴리시에 따라 조정처 코드를 선택하도록 해도 무방하다.
[제1 폴리시]
각 불일치 코드에 대해서, 통일조 코드 중 가장 일치하는 구성음이 많은 것을 조정처 코드로서 선택한다.
[제2 폴리시]
제1 폴리시에 해당하는 통일조 코드가 복수 존재하는 불일치 코드에 대해서는, 상기 불일치 코드와 가장 구성 음수의 차이가 작은(가장 일치하는 구성 음수가 많은) 통일조 코드를 조정처 코드로서 선택한다.
[제3 폴리시]
제2 폴리시에 해당하는 통일조 코드도 복수 존재하는 불일치 코드에 대해서는, 실장내의 인덱스(예를 들면, 실장상 부여되는 각 코드의 관리 번호(ID번호))가 가장 최신 코드를 조정처 코드로서 선택한다. 또한, 이 경우는, 복수의 통일조 코드로부터, 랜덤으로 선택한 코드를 조정처 코드라고 해도 무방하다.
도 10에 도시한 정형 전 악곡에서, 통일조를 Eminor로 하면, 일치 코드는, C03[Am7], C05[Bm7], C07[D7], C08[B7], C09[Am7], C11[Em7], C13[Em], C14[Em7]이며, 불일치 코드는, C01[DM7], C02[A7], C04[E], C06[Esus4], C10[E7], C12[A7]가 된다.
도 13은, 도 10에 도시한 정형 전 악곡에 대해 코드 정형 처리를 실시한 결과(코드 정형 완료 악곡)에 대해 도시한 도이다.
도 13에서는, 상기 정형 전 악곡에서, 통일조를 Eminor로 하고, 상기의 폴리시에 따라, 불일치 코드 C01[DM7], C02[A7], C04[E], C06[Esus4], C10[E7], C12[A7]를 통일조 코드에 수정한 결과에 대해 도시하고 있다.
예를 들면, 1번째 소절의 코드 C01[DM7](구성음 DF#AC#)에 대해 상기의 폴리시로 적용시키면, Eminor의 다이아 토닉 코드로 가장 일치하는 구성음이 많은 통일조 코드인 F#m7b5(구성음 F#ACE)로 변경하게 된다.
다음으로, 스텝 S103의 멜로디 정형 처리의 상세에 대하여 설명한다.
상술한 바와 같이, 멜로디 정형 처리에서, 정형 처리부(103)는, 코드 정형 완료 악곡의 멜로디 채널의 각 음표에 대해서, 대응 코드의 스케일(이하, 「대응 코드 스케일」이라고 칭한다)의 구성음이 되도록 조정(정형)하는 처리를 실시한다. 이하에서는, 멜로디 채널에서, 대응 코드 스케일의 구성음이 아니기 때문에, 조정 대상이 되는 음표를 「조정 대상 음표」라고 부른다.
또한, 대향 코드 스케일은, 기본적으로 대응 코드의 스케일(예를 들면, 대응 코드가 Am7이면 대응 코드 스케일은 Aminor의 스케일이 된다)이, 대응 코드가 add9 코드의 경우에는, 상기 대응 코드의 루트음에 대응하는 리디언 스케일(Lydian scale)을 대응 코드 스케일로서 취급하도록 해도 무방하다.
이 때, 정형 처리부(103)가, 조정 대상 음표(멜로디 채널의 각 음표)의 피치를 조정하는 방법에 대해서는 한정되지 않지만, 이하와 같은 폴리시로 실시하도록 해도 무방하다. 또한, 음표로서는 나뉘고 있어도, 슬러(slur)로 연결된 같은 피치의 음표에 대해서는 하나의 음표(조정 대상 음표)로 간주하여, 이하의 각 폴리시로 적용해도 무방하다.
[제1 폴리시]
조정 대상 음표에 대해서는, 대응 코드 스케일의 구성음 만으로 구성되도록 피치를 조정한다.
[제2 폴리시]
복수의 코드의 구간에 걸친 조정 대상 음표(이하, 「복수 코드 대응 음표」라 칭한다)는, 이들 복수의 코드의 모든 대응 코드 스케일로 공통되는 소리만으로 구성되도록 피치를 조정한다. 예를 들면, 복수 코드 대응 음표의 구간에서, 1회 코드가 바뀌는 경우 대응 코드는 2개가 되고, 2회 코드가 바뀌는 경우 대응 코드는 3개가 된다.
[제3 폴리시]
제2 폴리시를 만족하는 피치가 존재하지 않는 복수 코드 대응 음표에 대해서는, 코드의 단절(코드의 교체의 타이밍)에서 분할하고, 분할한 각 음표에 대해서, 각각 별개의 조정 대상 음표로서 최초부터 피치 정형 처리(제1 폴리시로부터 적용하는 처리)를 실시한다.
[제4 폴리시]
조정 대상 음표의 피치를 조정할 때, 정형 전 악곡에서의 상기 조정 대상 음표의 직전의 음표(이하, 「직전 음표」라 칭한다) 및 직후의 음표(이하, 「직후 음표」라 칭한다)와의 상대적인 피치의 상하 관계(「피치가 오르고 있다」, 「피치가 내리고 있다」, 「피치가 같다」의 3개의 패턴 중 어느 하나)를 유지한다.
이하에서는, 상기 조정 대상 음표의 피치를 PT, 직전 음표의 피치를 PB, 직후 음표의 피치를 PA로 나타낸다. 예를 들면, 직전 음표의 피치 PB와 상기 조정 대상 음표의 피치 PT와의 관계에서는, PB=PT(피치가 같다), PB>PT(피치가 내리고 있다), PB<PT(피치가 오르고 있다)의 패턴이 존재한다. 또, 예를 들면, 상기 조정 대상 음표의 피치 PT와 직후 음표의 피치 PA와의 관계에서는, PT=PA(피치가 같다), PT>PA(피치가 내리고 있다), PT>PA(피치가 오르고 있다)의 패턴이 존재한다.
[제5 폴리시]
상기 조정 대상 음표의 피치 조정만으로는 제4 폴리시를 만족할 수 없는 경우, 직후 음표에 대해서도 피치 조정을 실시하는 전제로, 제4 폴리시를 만족하는 피치의 조정 패턴을 결정한다.
[제6 폴리시]
상기 조정 대상 음표의 피치 조정을 실시할 때, 조정 전후의 피치의 차분을 소정 이하(예를 들면, ±1 옥타브 이하)로 얻는다.
정형 처리부(103)는, 이상과 같은 폴리시로 조정 대상 음표를, 대응 코드 스케일의 구성음 만으로 구성되도록 조정하는 것이 바람직하다. 또한, 제4 및 제5 폴리시에 대해, 지킬 수 없는 상태인 경우는, 이 2개의 폴리시를 제외해 조정하도록 해도 무방하다. 또, 제4 및 제5 폴리시를 지키면 제6 폴리시를 만족시킬 수 없는 상태인 경우는, 「 제6 폴리시를 제외한다」 또는 「제4 또는 제5 폴리시를 제외한다」 중 어느 하나를 적용하도록 해도 무방하다.
도 14는, 도 13에 도시한 코드 정형 완료 악곡에 대해 멜로디 정형 처리를 실시한 결과(멜로디 정형 완료 악곡)에 대해 도시한 도이다.
도 14에 도시하듯이, 멜로디 정형 처리에 의해, 1번째 소절 F의 소리가, 상기의 폴리시에 따라 F#(Eminor 스케일 구성음이고, 전후의 소리와의 높이의 관계가 변하지 않는 소리)으로 변경되고 있다.
(A-3) 제1 실시 형태의 효과
제1 실시 형태에 의하면, 이하와 같은 효과를 유발할 수 있다.
제1 실시 형태의 음악 처리 시스템(10)에서는, AI를 이용한 생성 모델에 의해, 입력 악곡 데이터(원곡)를 입력으로 하면서, 새롭게 작곡된 악곡을 생성할 수 있다.
또, 제1 실시 형태의 음악 처리 시스템(10)에서는, 조작 파라미터 c에 따른 노이즈를 잠재 변수 z에 혼입(가산)시킬 수 있다. 조작 파라미터 c에는, 임의의 값을 설정하는 것이 가능하기 때문에, 유저는, 조작 파라미터 c의 값을 변동시켜 복수의 악곡을 생성시키는 것으로, 생성된 악곡 중에서, 생성 악곡에 대해 입력 악곡 데이터(원곡)를 입력으로 하면서 새롭게 작곡 했다고 말할 수 있는 내용을 선택해 취득하는 것이 가능해진다.
다음으로, 조작 파라미터의 변동에 수반해, 생성 악곡이 변화하는 구체적인 예에 대해 도 15~도 17을 이용해 설명한다.
도 15~도 17은, 각각 입력 악곡을 도 4의 악곡으로 하여, 조작 파라미터의 값을 0, 10, 20으로 변동시켰을 경우에서의 생성 악곡을 보면(오선보)의 형식으로 도시한 도이다.
도 15에 도시하듯이, 조작 파라미터의 값을 0으로 했을 경우, 원곡(도 4)과 같은 조(F# minor) 혹은 그 평행조(A major)라고 추정할 수 있는 곡이 생성되고 있다. 또, 도 15의 보면에서는, 원곡(도 4)과 같이 4 소절 단위로 한 묶음과 같은 멜로디의 구성을 볼 수 있다.
도 16에 도시하듯이, 조작 파라미터의 값을 10으로 했을 경우, 원곡(도 4)과 같은 조가 아니고, 그 하속조(D major)로 추정되는 곡이 생성되고 있다.
도 17에 도시하듯이, 조작 파라미터의 값을 20으로 했을 경우, 원곡(도 4)과 조가 크게 다를 뿐만 아니라, 사용되고 있는 음표의 종류나 템포감도 완전히 다른 곡이 되어 있다.
이상과 같이, 제1 실시 형태의 음악 처리 시스템(10)에서는, 조작 파라미터 c의 값을 변동시키는 것으로, 생성 악곡에 대해서, 입력 악곡 데이터(원곡)를 입력으로 하면서 새롭게 작곡 했다고 말할 수 있는 내용으로 하는 것이 가능해진다.
(B) 제2 실시 형태
이하, 본 발명에 의한 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법의 제2 실시 형태를, 도면을 참조하면서 상술한다.
(B-1) 제2 실시 형태의 구성 및 동작
도 18은, 제2 실시 형태의 음악 처리 시스템(10A)의 전체 구성을 도시한 블록도이다.
도 18에서는, 상술의 도 1과 동일 부분 또는 대응하는 부분에, 동일한 부호 또는 대응하는 부호를 교부하고 있다.
이하에서는, 제2 실시 형태에 대해 제1 실시 형태와의 차이를 설명한다.
제2 실시 형태의 음악 처리 시스템(10A)에서는, 생성 처리부(102)가 생성 처리부(102A)로 치환되고 있는 점에서 제1 실시 형태와 다르다.
제2 실시 형태의 생성 처리부(102A)는, AI의 학습시의 구성은 제1 실시 형태와 같지만, 그 후의 악곡 생성시에서의 구성이 다르다.
도 19는, 제2 실시 형태의 생성 처리부(102A)에서의 악곡 생성시의 구성예에 대해 도시한 도이다.
도 19에서는, 상술의 도 3과 상술의 도 1과 동일 부분 또는 대응하는 부분에, 동일한 부호 또는 대응하는 부호를 교부하고 있다.
도 19에 도시하듯이, 제2 실시 형태의 생성 처리부(102A)에서는, 악곡 생성시에, 잠재 변수 처리부(204A)와 디코더(202) 만이 동작한다.
잠재 변수 처리부(204A)는, 악곡 생성시에서, 엔코더(201)로부터의 데이터에 의하지 않고, 소정의 수단에서 취득하는 수치(예를 들면, 난수 등)에 근거해 독자적으로 디코더(202)로 공급하는 잠재 변수 z를 생성하는 점으로 제1 실시 형태와 다르다.
예를 들면, 상기의 (1) 식에서, μ=0, σ=1, I=1로 하는 것으로, 분산이 1인 난수에 근거한 잠재 변수 z를 취득하도록 해도 무방하다. 예를 들면, 잠재 변수 z가 256 차원의 벡터인 경우, 잠재 변수 처리부(204A)가 잠재 변수 z를 취득하기 위한 원시 코드(Python로 기술했을 경우의 코드)는, 「numpy. random. normal(loc=0.0, scale=1.0, size=256)」이라고 할 수 있다.
또한, 제2 실시 형태에 있어서, σ 및 I로 설정하는 구체적인 값은 상기의 예로 한정되지 않고, 여러 가지의 값을 적용할 수 있다.
(B-2) 제2 실시 형태의 효과
제 2의 실시 형태에 의하면, 이하와 같은 효과를 유발할 수 있다.
제2 실시 형태의 음악 처리 시스템(10A)에서는, 입력 악곡에 의하지 않고, 잠재 변수 처리부(204A)가 난수에 근거해 취득하는 잠재 변수 z를 이용해 악곡을 생성한다. 이것에 의해, 제2 실시 형태의 음악 처리 시스템(10A)에서는, 입력 악곡을 입력하지 않고 새로운 악곡을 생성할 수 있다.
(C) 다른 실시 형태
본 발명은, 상기의 각 실시 형태로 한정되는 것이 아니고, 이하에 예시하는 변형 실시 형태도 예시할 수 있다.
(C-1) 제1 실시 형태에서는, 음악 처리 시스템이 입력 악곡 벡터 데이터(입력 악곡 데이터) 및 조작 파라미터에 근거해 악곡 생성하는 동작 모드(이하, 「레퍼런스 모드」라 칭한다)에 대해 설명하고, 제2 실시 형태에서는, 음악 처리 시스템이 난수에 근거해 악곡 생성하는 동작 모드(이하, 「랜덤 모드」라 칭한다)에 대해 설명했지만, 이 2개의 동작 모드의 양쪽 모두에 대응해, 유저의 조작 등에 근거해 동작 모드를 변경 가능한 음악 처리 시스템을 구축하도록 해도 무방하다.
(C-2) 상기의 각 실시 형태에서는, 생성 처리부(102)는, 학습시의 구성과 악곡 생성시의 구성의 양쪽 모두를 갖추는 것으로서 설명했지만, 학습의 처리가 이미 끝난 상태이면 학습시의 구성(예를 들면, 디스크리미내이터(203) 등)은 갖추지 않아도 무방하다.
10…음악 처리 시스템, 101…벡터화 처리부, 102…생성 처리부, 103…정형 처리부, 104…복원 처리부, 201…엔코더, 202…디코더, 203…디스크리미내이터, 204…잠재 변수 처리부.

Claims (5)

1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 악곡 데이터와 상기 악곡 데이터의 악곡을 구성하는 요소의 속성을 나타내는 구성 정보를 포함한 입력 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하는 악곡 생성 수단과,
상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 정형 수단을 가지는 것을 특징으로 하는 음악 처리 시스템.
제1항에 있어서,
상기 악곡 생성 수단은,
입력 데이터에 근거해 상기 학습 모델을 이용해 입력 데이터에 대응하는 잠재 변수의 평균 벡터와 분산 벡터를 출력하는 엔코더와,
상기 평균 벡터와 분산 벡터를 처리해 잠재 변수를 생성하는 잠재 변수 처리 수단과,
상기 학습 모델을 이용하여, 상기 잠재 변수 처리 수단이 생성한 잠재 변수에 따른 입력 데이터와 같은 형식의 출력 데이터를 출력하는 디코더
를 가지는 것을 특징으로 하는 음악 처리 시스템.
제2항에 있어서,
상기 악곡 생성 수단은, 입력 데이터와 함께, 생성되는 악곡의 성질을 조작하기 위한 조작 파라미터의 입력을 받아들이고,
상기 잠재 변수 처리 수단은, 상기 잠재 변수에, 상기 분산 벡터와 상기 조작 파라미터의 조합에 따른 노이즈를 혼입시키는
것을 특징으로 하는 음악 처리 시스템.
컴퓨터를,
1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 학습용 악곡 데이터를 가지는 학습용 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하는 악곡 생성 수단과,
상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는 정형 수단
으로 기능시키는 것을 특징으로 하는 음악 처리 프로그램.
음악 처리 시스템이 실시하는 음악 처리 방법에 있어서,
상기 음악 처리 시스템은, 악곡 생성 수단과, 정형 수단을 갖추고,
상기 악곡 생성 수단은, 1 채널 이상의 멜로디와 1 채널 이상의 코드로 구성된 악곡의 보면이 기술된 학습용 악곡 데이터를 가지는 학습용 데이터에 근거해 기계 학습한 학습 모델을 이용하여, 악곡을 생성하고,
상기 정형 수단은, 상기 악곡 생성 수단이 생성한 생성 악곡을 음악적으로 조화를 이룬 내용으로 정형하는
것을 특징으로 하는 음악 처리 방법.
KR1020237003220A 2020-07-22 2021-07-19 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법 KR20230028802A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020125761A JP2022021890A (ja) 2020-07-22 2020-07-22 音楽処理システム、音楽処理プログラム、及び音楽処理方法
JPJP-P-2020-125761 2020-07-22
PCT/JP2021/026976 WO2022019268A1 (ja) 2020-07-22 2021-07-19 音楽処理システム、音楽処理プログラム、及び音楽処理方法

Publications (1)

Publication Number Publication Date
KR20230028802A true KR20230028802A (ko) 2023-03-02

Family

ID=79728720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237003220A KR20230028802A (ko) 2020-07-22 2021-07-19 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법

Country Status (7)

Country Link
US (1) US20230252962A1 (ko)
EP (1) EP4187532A1 (ko)
JP (1) JP2022021890A (ko)
KR (1) KR20230028802A (ko)
CN (1) CN116210049A (ko)
TW (1) TW202209300A (ko)
WO (1) WO2022019268A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020323A (ja) 2007-07-12 2009-01-29 Nec Soft Ltd 自動作曲装置および自動作曲方法ならびにプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3659220B2 (ja) * 1996-05-27 2005-06-15 ヤマハ株式会社 自動メロディ生成装置および記録媒体
KR101982345B1 (ko) * 2017-07-21 2019-05-24 주식회사 마인드셋 인공지능을 이용한 음악 생성 장치 및 방법
JP7298115B2 (ja) * 2018-06-25 2023-06-27 カシオ計算機株式会社 プログラム、情報処理方法、及び電子機器
JP7415922B2 (ja) * 2018-10-19 2024-01-17 ソニーグループ株式会社 情報処理方法、情報処理装置及び情報処理プログラム
CN114868138A (zh) * 2020-01-14 2022-08-05 索尼集团公司 信息处理装置、信息处理方法和程序

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020323A (ja) 2007-07-12 2009-01-29 Nec Soft Ltd 自動作曲装置および自動作曲方法ならびにプログラム

Also Published As

Publication number Publication date
WO2022019268A1 (ja) 2022-01-27
TW202209300A (zh) 2022-03-01
JP2022021890A (ja) 2022-02-03
US20230252962A1 (en) 2023-08-10
CN116210049A (zh) 2023-06-02
EP4187532A1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
US9607593B2 (en) Automatic composition apparatus, automatic composition method and storage medium
KR100658869B1 (ko) 음악생성장치 및 그 운용방법
US9460694B2 (en) Automatic composition apparatus, automatic composition method and storage medium
US6395970B2 (en) Automatic music composing apparatus that composes melody reflecting motif
CN112382257B (zh) 一种音频处理方法、装置、设备及介质
US6294720B1 (en) Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif
KR20160076775A (ko) 입력 곡 정보에 기반한 자동 작곡 프로그램 및 시스템
WO2023040332A1 (zh) 一种曲谱生成方法、电子设备及可读存储介质
US20190392803A1 (en) Transposing device, transposing method and non-transitory computer-readable storage medium
JP7033365B2 (ja) 音楽処理システム、音楽処理プログラム、及び音楽処理方法
Barbancho et al. Database of Piano Chords: An Engineering View of Harmony
JP4698606B2 (ja) 楽曲処理装置
KR20230028802A (ko) 음악 처리 시스템, 음악 처리 프로그램, 및 음악 처리 방법
Meredith Computing pitch names in tonal music: a comparative analysis of pitch spelling algorithms
JP2007156187A (ja) 楽曲処理装置
CN115004294A (zh) 编曲生成方法、编曲生成装置以及生成程序
JP2018072443A (ja) ハーモニー情報生成装置、ハーモニー情報生成プログラムおよびハーモニー情報生成方法
JP2623955B2 (ja) 電子楽器
CN112420003B (en) Accompaniment generation method and device, electronic equipment and computer readable storage medium
JP2002032079A (ja) 自動作曲装置及び方法並びに記憶媒体
US20040216586A1 (en) Method of computing the pitch names of notes in MIDI-like music representations
KR100444930B1 (ko) 음떨림 및 음감오류에 기인하는 오인식을 줄이기 위한 미디노트 도출방법 및 그 장치
JP2636477B2 (ja) 電子楽器
CN117690397A (zh) 旋律处理方法、装置、设备、存储介质及程序产品
CN115331682A (zh) 修正音频的音高的方法和装置