KR102415345B1 - 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법 - Google Patents

피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법 Download PDF

Info

Publication number
KR102415345B1
KR102415345B1 KR1020210017377A KR20210017377A KR102415345B1 KR 102415345 B1 KR102415345 B1 KR 102415345B1 KR 1020210017377 A KR1020210017377 A KR 1020210017377A KR 20210017377 A KR20210017377 A KR 20210017377A KR 102415345 B1 KR102415345 B1 KR 102415345B1
Authority
KR
South Korea
Prior art keywords
notes
states
frame
computer system
neural network
Prior art date
Application number
KR1020210017377A
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 KR1020210017377A priority Critical patent/KR102415345B1/ko
Application granted granted Critical
Publication of KR102415345B1 publication Critical patent/KR102415345B1/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • 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/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • 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/105Composing aid, e.g. for supporting creation, edition or modification of a piece of music
    • 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)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

다양한 실시예들은 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법에 관한 것으로, 피아노 연주에 대한 음원을 획득하고, 음원에 대한 각 프레임의 스펙트로그램(spectrogram)을 기반으로, 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하면서 음표들의 각각에 대한 세기(intensity)를 예측하고, 음표들의 상태들을 기반으로, 페달(pedal) 정보를 검출하고, 음표들의 음정(pitch)들과 음표들의 각각에 대한 세기, 및 페달 정보를 이용하여, 악보를 생성하고, 악보를 이용하여, 피아노 연주를 재현하도록 구성될 수 있다.

Description

피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법{COMPUTER SYSTEM FOR REAL-TIME AUTOMATIC PIANO TRANSCRIPTION AND REPERFORMANCE WITH PITCH, INTENSITY AND PEDAL ESTIMATION, AND METHOD THEREOF}
다양한 실시예들은 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법에 관한 것이다.
자동 음악 트랜스크립션(automatic music transcription; AMT)은 음악 신호를 피아노 롤(piano roll)이나 악보로 변환하는 자동화된 프로세스를 지칭한다. 폴리포닉(polyphonic) 피아노 트랜스크립션은 피아노 음악의 특정 AMT 작업이다. 이러한 폴리포닉 피아노 트랜스크립션은 음표 간 스펙트럼과 간섭, 부조화 오버톤 등 피아노 소리의 복잡한 특성 때문에, 최근의 접근법 대부분은 비음수 행렬 인수분해(NMF), 심층 신경망(DNN) 등의 학습 알고리즘에 기초하고 있다. 최근의 폴리포닉 피아노 트랜스크립션의 발전은 주로 음표의 시작(onset)이나 지속(sustain)와 같은 상태를 감지하고 상태의 시간적 진화를 모델링하는 심층 신경망 아키텍처의 의도적인 설계에 의해 이루어졌다. 그러나, 이들 대다수는 각 음표의 상태에 대해 별도의 신경망을 사용하므로 복수의 손실 함수를 최적화하며, 또한 상태 별 신경망 사이의 추상적 연결이나 후처리 모듈을 이용하여 음 상태의 시간적 진화를 처리한다. 이로 인해, 기존의 설계는 복잡하여 처리하기 어려운 상태가 발생할 수 있고, 신경망 이후의 후처리가 별도로 필요하기 때문에, 시스템이 복잡해지고, 처리 시간이 지연될 수 있으며, 정확도를 목표로 하는 시스템의 경우, 실시간 처리가 불가능할 수 있다.
다양한 실시예들은, 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법을 제공한다.
다양한 실시예들에 따른 컴퓨터 시스템의 방법은, 피아노 연주에 대한 음원을 획득하는 단계, 상기 음원에 대한 각 프레임의 스펙트로그램(spectrogram)을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계, 및 상기 음표들의 음정(pitch)들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하는 단계를 포함할 수 있다.
다양한 실시예들에 따른 컴퓨터 시스템은, 메모리, 및 상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 피아노 연주에 대한 음원을 획득하고, 상기 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하고, 상기 음표들의 음정들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따른 비-일시적인 컴퓨터-판독 가능 저장 매체는, 피아노 연주에 대한 음원을 획득하는 단계, 상기 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계, 및 상기 음표들의 음정들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하는 단계를 실행하기 위한 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에 따르면, 컴퓨터 시스템이 각 음표에 대해 가능한 상태, 즉 시작, 끝, 지속, 오프셋, 재시작 등을 하나의 값으로 예측할 수 있고, 이로 인해 단순한 구조의 네트워크 구조를 갖는 심층 신경망으로도 각 음표에 대한 상태를 예측할 수 있으며, 불확실성이 감소될 수 있다. 이 때 컴퓨터 시스템은 재귀적인 심층 신경망을 이용하여, 높은 성능으로 각 음표에 대한 상태를 예측할 수 있다. 아울러, 컴퓨터 시스템이 각 음표의 음정 및 상태 뿐 아니라 각 음표의 세기 또는 페달 정보 중 적어도 하나를 더 추가하여, 악보를 생성함으로써, 보다 정밀한 채보가 가능하다. 또한, 컴퓨터 시스템이 각 음표에 대한 상태를 실시간으로 예측할 수 있도록 최적화됨으로써, 실시간 채보, 즉 연주 직후 약 200 ms 이내의 채보가 가능하다.
도 1은 다양한 실시예들에 따른 컴퓨터 시스템을 도시하는 도면이다.
도 2는 다양한 실시예들에 따른 컴퓨터 시스템의 내부 구성을 도시하는 도면이다.
도 3은 도 2의 프로세서의 상세 구성을 도시하는 도면이다.
도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8 및 도 9는 다양한 실시예들에 따른 컴퓨터 시스템의 동작 특징들을 예시적으로 설명하기 위한 도면들이다.
도 10은 다양한 실시예들에 따른 컴퓨터 시스템의 방법을 도시하는 도면이다.
도 11은 도 10의 음표들에 대한 상태들을 예측하는 단계를 구체적으로 도시하는 도면이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다.
도 1은 다양한 실시예들에 따른 컴퓨터 시스템(100)을 도시하는 도면이다.
도 1을 참조하면, 다양한 실시예들에 따른 컴퓨터 시스템(100)은 피아노 연주에 대한 음원을 실시간으로 자동으로 채보할 수 있다. 이 때, 컴퓨터 시스템(100)는 음원 내 각 음표를 기본 단위로 채보하며, 이로써 음원에 대해 실시간 채보가 가능하다. 즉, 컴퓨터 시스템(100)은, 음원에 대한 스펙트로그램(spectrogram)을 기반으로, 악보를 생성할 수 있다. 이 때, 컴퓨터 시스템(100)은 음원에 대한 각 프레임(frame)(t)의 스펙트로그램을 기반으로, 각 프레임(t) 내 음표들의 각각의 음정(pitch) 및 상태(state)를 검출할 수 있다. 일 실시예에 따르면, 컴퓨터 시스템(100)은 각 프레임(t) 내 음표들의 음정 및 상태와 함께, 음표들의 각각에 대한 세기(intensity)를 더 검출할 수 있다. 다른 실시예에 따르면, 컴퓨터 시스템(100)은 음표들의 상태들을 기반으로, 페달(pedal) 정보를 더 검출할 수 있다. 이를 통해, 컴퓨터 시스템(100)은 음표들의 각각의 음정, 상태, 세기, 또는 페달 정보 중 적어도 하나를 기반으로, 악보를 생성할 수 있다. 그리고, 컴퓨터 시스템(100)은 악보를 이용하여, 피아노 연주를 재현할 수 있다. 이를 통해, 컴퓨터 시스템(100)는 피아노 연주에 대한 새로운 디지털 음원을 생성할 수 있다.
도 2는 다양한 실시예들에 따른 컴퓨터 시스템(100)의 내부 구성을 도시하는 도면이다. 도 3은 도 2의 프로세서(240)의 상세 구성을 도시하는 도면이다. 도 4, 도 5, 도 6, 도 7a, 도 7b, 도 8 및 도 9는 다양한 실시예들에 따른 컴퓨터 시스템(100)의 동작 특징들을 예시적으로 설명하기 위한 도면들이다.
도 2를 참조하면, 다양한 실시예들에 따른 컴퓨터 시스템(100)은 입력 모듈(210), 출력 모듈(220), 메모리(230), 또는 프로세서(240) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에서, 컴퓨터 시스템(100)의 구성 요소들 중 적어도 하나가 생략될 수 있으며, 적어도 하나의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서, 컴퓨터 시스템(100)의 구성 요소들 중 적어도 두 개가 하나의 통합된 회로로 구현될 수 있다. 이 때 컴퓨터 시스템(100)은 적어도 하나의 장치, 예컨대 적어도 하나의 서버(server) 또는 적어도 하나의 전자 장치(electronic device) 중 적어도 하나로 이루어질 수 있다. 어떤 실시예에서, 컴퓨터 시스템(100)이 복수의 장치들을 포함하는 경우, 컴퓨터 시스템(100)의 구성 요소들은 장치들 중 하나에 구성되거나, 장치들 중 적어도 두 개에 분산되어 구성될 수 있다.
입력 모듈(210)은 컴퓨터 시스템(100)의 적어도 하나의 구성 요소에 사용될 신호를 입력할 수 있다. 입력 모듈(210)은, 사용자가 컴퓨터 시스템(100)에 직접적으로 신호를 입력하도록 구성되는 입력 장치, 주변의 변화를 감지하여 신호를 발생하도록 구성되는 센서 장치, 또는 외부 기기로부터 신호를 수신하도록 구성되는 수신 장치 중 적어도 하나를 포함할 수 있다. 예를 들면, 입력 장치는 마이크로폰(microphone), 마우스(mouse) 또는 키보드(keyboard) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에서, 입력 장치는 터치를 감지하도록 설정된 터치 회로(touch circuitry) 또는 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로 중 적어도 하나를 포함할 수 있다.
출력 모듈(220)은 컴퓨터 시스템(100)의 외부로 정보를 출력할 수 있다. 출력 모듈(220)은, 정보를 시각적으로 출력하도록 구성되는 표시 장치, 정보를 오디오 신호로 출력할 수 있는 오디오 출력 장치, 또는 정보를 무선으로 송신할 수 있는 송신 장치 중 적어도 하나를 포함할 수 있다. 예를 들면, 표시 장치는 디스플레이, 홀로그램 장치 또는 프로젝터 중 적어도 하나를 포함할 수 있다. 일 예로, 표시 장치는 입력 모듈(210)의 터치 회로 또는 센서 회로 중 적어도 하나와 조립되어, 터치 스크린으로 구현될 수 있다. 예를 들면, 오디오 출력 장치는 스피커 또는 리시버 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 수신 장치와 송신 장치는 통신 모듈로 구현될 수 있다. 통신 모듈은 컴퓨터 시스템(100)에서 외부 기기와 통신을 수행할 수 있다. 통신 모듈은 컴퓨터 시스템(100)와 외부 기기 간 통신 채널을 수립하고, 통신 채널을 통해, 외부 기기와 통신을 수행할 수 있다. 여기서, 외부 기기는 위성, 기지국, 서버 또는 다른 컴퓨터 시스템 중 적어도 하나를 포함할 수 있다. 통신 모듈은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 외부 기기와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 기기와 근거리 통신 방식으로 통신할 수 있다. 예를 들면, 근거리 통신 방식은, 블루투스(Bluetooth), 와이파이 다이렉트(WiFi direct), 또는 적외선 통신(IrDA; infrared data association) 중 적어도 하나를 포함할 수 있다. 원거리 통신 모듈은 외부 기기와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 네트워크를 통해 외부 기기와 통신할 수 있다. 예를 들면, 네트워크는 셀룰러 네트워크, 인터넷, 또는 LAN(local area network)이나 WAN(wide area network)과 같은 컴퓨터 네트워크 중 적어도 하나를 포함할 수 있다.
메모리(230)는 컴퓨터 시스템(100)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(230)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 데이터는 적어도 하나의 프로그램 및 이와 관련된 입력 데이터 또는 출력 데이터를 포함할 수 있다. 프로그램은 메모리(230)에 적어도 하나의 명령을 포함하는 소프트웨어로서 저장될 수 있으며, 운영 체제, 미들 웨어 또는 어플리케이션 중 적어도 하나를 포함할 수 있다.
프로세서(240)는 메모리(230)의 프로그램을 실행하여, 컴퓨터 시스템(100)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(240)는 데이터 처리 또는 연산을 수행할 수 있다. 이 때 프로세서(240)는 메모리(230)에 저장된 명령을 실행할 수 있다. 프로세서(240)는, 음원에 대한 스펙트로그램(spectrogram)을 기반으로, 악보를 생성할 수 있다. 이를 위해, 프로세서(240)는 도 3에 도시된 바와 같이, 상태 예측 모듈(341), 세기 예측 모듈(343), 또는 페달 예측 모듈(345) 중 적어도 하나를 포함할 수 있다. 그리고, 프로세서(240)는 악보를 이용하여, 피아노 연주를 재현할 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는 음원에 대한 각 프레임(t)의 스펙트로그램을 기반으로, 각 프레임(t) 내 음표들의 각각의 음정 및 상태를 검출할 수 있다. 이 때, 상태 예측 모듈(341)은 미리 저장된 심층 신경망(예: 도 6의 심층 신경망(600))을 기반으로, 각 프레임(t) 내 음표들의 상태들을 각각 예측할 수 있다. 각 상태는, 도 4에 도시된 바와 같은, 음표에 대한 시작(onset), 끝(off), 및 지속(sustain)를 나타내는 제 1 상태, 음표에 대한 시작, 끝, 지속, 및 재시작(re-onset) 중 하나를 나타내는 제 2 상태, 음표에 대한 시작, 끝, 지속, 및 오프셋(offset)을 나타내는 제 3 상태, 또는 음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태 중 하나로 표현될 수 있다.
여기서, 재시작은 어떤 음정의 음표들이 지속되는 동안 다른 음정의 음표가 발생되는 것을 나타낼 수 있다. 기존의 기술들에서는, 도 5의 (a) 또는 (b)에 도시된 바와 같이, 각 음표에 대한 시작, 끝, 지속 등이 이진수로 각각 표현되는 개별적인 값들로 각각 예측되었으며, 이로 인해 각 음표에 대해 시작, 끝, 지속 등의 불가능한 조합도 예측되는, 예를 들어 시작과 끝이 동시로 예측되는 불확실성이 크게 존재하였다. 그러나, 프로세서(240)는, 도 5의 (c)에 도시된 바와 같이, 각 음표에 대해 가능한 상태, 즉 시작, 끝, 지속, 오프셋, 재시작 등을 하나의 값으로 예측할 수 있고, 이로 인해 단순한 구조의 네트워크 구조를 갖는 심층 신경망(예: 도 6의 심층 신경망(600))으로도 각 음표에 대한 상태를 예측할 수 있으며, 불확실성이 감소될 수 있다.
어떤 실시예들에서, 프로세서(240)는 각 프레임(t) 내 음표들의 상태들을 예측하는 데, 이전 프레임(t-1) 내 음표들의 상태들을 이용할 수 있다. 이를 위해, 심층 신경망(600)은 도 6에 도시된 바와 같이, 제 1 심층 신경망(610)과 제 2 심층 신경망(620)을 포함할 수 있다. 예를 들면, 제 1 심층 신경망(610)은 콘볼루션 신경망(convolutional neural network; CNN)을 포함할 수 있다. 여기서, 콘볼루션 신경망은 복수의 콘볼루션 레이어들(convolutional layers; convolutional stack)과 FC(fully connected) 레이어로 이루어질 수 있다. 예를 들면, 제 2 심층 신경망(620)은 재귀 신경망(recurrent neural network; RNN)을 포함할 수 있다. 여기서, 재귀 신경망은 복수의 LSTM(long short term memory) 레이어들(layers; stack), FC 레이어, 및 소프트맥스(softmax) 레이어로 이루어질 수 있다. 이러한 심층 신경망(600)은 그 동작에 따라, 도 7a에 도시된 바와 같이, 표현될 수 있다.
프로세서(240)는 제 1 심층 신경망(610)을 통해, 현재 프레임(t)의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00001
)들을 각각 추출할 수 있다. 그리고, 프로세서(240)는 제 2 심층 신경망(620)을 통해, 이전 프레임(t-1)의 음표들에 대한 상태(yt-1)들과 현재 프레임(t)의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00002
)들을 기반으로, 현재 프레임(t)의 음표들에 대한 상태(yt)들을 각각 예측할 수 있다. 일 실시예에 따르면, 제 2 심층 신경망(620)은 제 1 심층 신경망(610)으로부터 입력되는 음향적 특징(
Figure 112021015672806-pat00003
)들을 일괄적으로 처리하여, 현재 프레임(t)의 음표들에 대한 상태(yt)들을 각각 예측할 수 있다. 다른 실시예에 따르면, 심층 신경망(600)은 도 7b에 도시된 바와 같이, 변형될 수 있으며, 이를 통해 제 2 심층 신경망(620)은 제 1 심층 신경망(610)으로부터 입력되는 음향적 특징(
Figure 112021015672806-pat00004
)들을 개별적으로 처리하여, 현재 프레임(t)의 음표들에 대한 상태(yt)들을 각각 예측할 수 있다. 또 다른 실시예에 따르면, 제 2 심층 신경망(620)은 도 7b에 도시된 바와 같이, 음고-불변(pitch-invariant)을 위한 LSTM 레이어들을 더 포함할 수 있고, 이를 통해 제 2 심층 신경망(620)은 음정의 음고에 관계없이 제 1 심층 신경망(610)으로부터 입력되는 음향적 특징(
Figure 112021015672806-pat00005
)들을 일정하게 처리할 수 있다.
일 실시예에 따르면, 프로세서(240)는 각 프레임 내 음표들의 음정 및 상태와 함께, 음표들의 각각에 대한 세기를 더 검출할 수 있다. 이 때, 세기 예측 모듈(343)은 도 8에 도시된 바와 같이 미리 저장된 심층 신경망(800)을 기반으로, 각 프레임(t) 내 음표들의 각각에 대한 세기를 예측할 수 있다. 이를 위해, 심층 신경망(800)은, 도 6의 심층 신경망(600)과 유사한 구조를 가질 수 있다. 즉, 심층 신경망(800)은 제 1 심층 신경망(810)과 제 2 심층 신경망(820)을 포함할 수 있다. 예를 들면, 제 1 심층 신경망(810)은 콘볼루션 신경망(convolutional neural network; CNN)을 포함할 수 있다. 여기서, 콘볼루션 신경망은 복수의 콘볼루션 레이어들(convolutional layers; convolutional stack)과 FC(fully connected) 레이어로 이루어질 수 있다. 예를 들면, 제 2 심층 신경망(820)은 재귀 신경망(recurrent neural network; RNN)을 포함할 수 있다. 여기서, 재귀 신경망은 복수의 LSTM(long short term memory) 레이어들(layers; stack) 및 FC 레이어로 이루어질 수 있다. 따라서, 프로세서(240)는 각 프레임 내 음표들에 대한 상태들을 각각 예측하면서, 음표들의 각각에 대한 세기를 예측할 수 있다.
다른 실시예에 따르면, 프로세서(240)는 음표들의 상태들을 기반으로, 페달 정보를 더 검출할 수 있다. 선택적으로, 프로세서(240)는 음표들의 상태와 함께, 음원에 대한 스펙트로그램을 기반으로, 페달 정보를 검출할 수 있다. 이 때, 페달 예측 모듈(345)은 음정이 임계값(예: 64)을 초과하면서 지속되는 음표들을 검출할 수 있다. 여기서, 프로세서(240)는 미리 정해진 길이 이상으로 지속되는 음표들을 검출할 수 있다. 그리고, 프로세서(240)는 검출된 음표들에 대해, 페달을 밟은 것으로 예측할 수 있다. 한편, 프로세서(240)는 음정이 임계값 이하인 음표들에 대해, 페달을 밟지 않은 것으로 결정할 수 있다. 아울러, 프로세서(240)는 음정이 임계값을 초과하되, 정해진 길이 미만으로 지속되는 음표들에 대해, 페달을 밟지 않은 것으로 결정할 수 있다. 예를 들면, 도 9의 (a)에 도시된 바와 같은 시간에 따른 음정의 음고를 나타내는 피아노 롤(piano roll)을 기반으로, 프로세서(240)는 도 9의 (b)에 도시된 바와 같이 페달 정보를 검출할 수 있다. 여기서, 도 9의 (b)는 시간에 따른 페달의 깊이를 나타내고, 빨간 선은 페달을 밟는 시점을 나타내며, 파란 선은 페달을 떼는 시점을 나타낼 수 있다.
이를 통해, 컴퓨터 시스템(100)은 음표들의 각각의 음정, 상태, 세기, 또는 페달 정보 중 적어도 하나를 기반으로, 악보를 생성할 수 있다.
도 10은 다양한 실시예들에 따른 컴퓨터 시스템(100)의 방법을 도시하는 도면이다.
도 10을 참조하면, 컴퓨터 시스템(100)은 1010 단계에서 피아노 연주에 대한 음원을 획득할 수 있다. 프로세서(240)는 입력 모듈(210)을 통해 입력되는 음원을 획득할 수 있다. 일 예로, 프로세서(240)는 마이크로폰을 통해 입력되는 오디오 신호를 기반으로, 음원을 획득할 수 있다. 다른 예로, 프로세서(240)는 통신 모듈을 통해 수신되는 오디오 파일을 기반으로, 음원을 획득할 수 있다.
그리고, 컴퓨터 시스템(100)은 1020 단계에서 음원에 대한 각 프레임(t)의 스펙트로그램을 기반으로, 각 프레임(t) 내 음표들의 각각의 음정 및 상태를 검출할 수 있다. 이 때, 상태 예측 모듈(341)은 미리 저장된 심층 신경망(예: 도 6의 심층 신경망(600))을 기반으로, 각 프레임(t) 내 음표들의 상태들을 각각 예측할 수 있다. 각 상태는, 도 4에 도시된 바와 같은, 다양한 실시예들에 따르면, 상기 상태들의 각각은, 음표에 대한 시작, 끝, 및 지속을 나타내는 제 1 상태, 음표에 대한 시작, 끝, 지속, 및 재시작을 나타내는 제 2 상태, 음표에 대한 시작, 끝, 지속, 및 오프셋을 나타내는 제 3 상태, 또는 음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태 중 하나로 표현될 수 있다. 여기서, 재시작은 어떤 음정의 음표들이 지속되는 동안 다른 음정의 음표가 발생되는 것을 나타낼 수 있다. 프로세서(240)는, 도 5의 (c)에 도시된 바와 같이, 각 음표에 대해 가능한 상태, 즉 시작, 끝, 지속, 재시작 등을 하나의 값으로 예측할 수 있고, 이로 인해 단순한 구조의 네트워크 구조를 갖는 심층 신경망(600)으로도 각 음표에 대한 상태를 예측할 수 있으며, 불확실성이 감소될 수 있다. 어떤 실시예들에서, 프로세서(240)는 각 프레임(t) 내 음표들의 상태들을 예측하는 데, 이전 프레임(t-1) 내 음표들의 상태들을 이용할 수 있다. 이에 대해, 도 11을 참조하여, 보다 상세하게 후술될 것이다.
도 11은 도 10의 음표들에 대한 상태들을 예측하는 단계(1020 단계)를 구체적으로 도시하는 도면이다.
도 11을 참조하면, 컴퓨터 시스템(100)은 1121 단계에서 현재 프레임, 즉 t 번째 프레임을 결정할 수 있다. 여기서, 음원은 T 개의 프레임들로 이루어질 수 있다. 이 때, 프로세서(240)는 첫 번째 프레임을 결정할 수 있다(t=0).
컴퓨터 시스템(100)은 1123 단계에서 현재 프레임, 즉 t 번째 프레임의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00006
)들을 각각 추출할 수 있다. 프로세서(240)는, 도 7a 또는 도 7b에 도시된 바와 같이, 제 1 심층 신경망(610)을 통해, t 번째 프레임의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00007
)들을 각각 추출할 수 있다. 컴퓨터 시스템(100)은 1125 단계에서 이전 프레임, 즉 t-1 번째 프레임의 음표들에 대한 상태(yt-1)들과 현재 프레임, 즉 t 번째 프레임의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00008
)들을 기반으로, t 번째 프레임의 음표들에 대한 상태(yt)들을 각각 예측할 수 있다. 프로세서(240)는, 도 7a 또는 도 7b에 도시된 바와 같이, 제 2 심층 신경망(620)을 통해, t-1 번째 프레임의 음표들에 대한 상태(yt-1)들과 t 번째 프레임의 음표들에 대한 음향적 특징(
Figure 112021015672806-pat00009
)들을 기반으로, t 번째 프레임의 음표들에 대한 상태(yt)들을 각각 예측할 수 있다.
컴퓨터 시스템(100)은 1127 단계에서 다음 프레임, 즉 t+1 번째 프레임을 현재 프레임, 즉 t 번째 프레임으로 결정할 수 있다(t=t+1). 컴퓨터 시스템(100)은 1129 단계에서 현재 프레임, 즉 t 번째 프레임이 존재하는 지의 여부를 판단할 수 있다. 즉, 프로세서(240)는 음원의 마지막 프레임, 즉 T 번째 프레임의 음표들에 대한 상태(yt)들까지 모두 예측했는 지의 여부를 판단할 수 있다.
1129 단계에서 현재 프레임, 즉 t 번째 프레임이 존재하는 것으로 판단되면, 컴퓨터 시스템(100)은 1123 단계로 진행하여, 1123 단계 내지 1129 단계를 반복하여 수행할 수 있다. 즉, 컴퓨터 시스템(100)은 음원의 마지막 프레임, 즉 T 번째 프레임의 음표들에 대한 상태들까지 모두 예측될 때까지, 1123 단계 내지 1129 단계를 반복하여 수행할 수 있다. 한편, 1129 단계에서 현재 프레임, 즉 t 번째 프레임이 존재하지 않는 것으로 판단되면, 컴퓨터 시스템(100)은 도 10으로 복귀하여, 1030 단계, 1040 단계, 또는 1050 단계 중 하나로 진행할 수 있다.
다시 도 10을 참조하면, 컴퓨터 시스템(100)은 1020 단계를 수행한 다음, 1030 단계, 1040 단계, 또는 1050 단계로 진행할 수 있다. 바꿔 말하면, 1030 단계 또는 1040 단계 중 적어도 하나는 제외될 수 있다.
컴퓨터 시스템(100)은 1030 단계에서 각 프레임 내 음표들의 각각에 대한 세기를 예측할 수 있다. 이 때, 세기 예측 모듈(343)은 도 8에 도시된 바와 같이 미리 저장된 심층 신경망(800)을 기반으로, 각 프레임(t) 내 음표들의 각각에 대한 세기를 예측할 수 있다. 이를 위해, 심층 신경망(800)은, 도 6의 심층 신경망(600)과 유사한 구조를 가질 수 있다. 따라서, 프로세서(240)는 각 프레임 내 음표들에 대한 상태들을 각각 예측하면서, 음표들의 각각에 대한 세기를 예측할 수 있다.
한편, 컴퓨터 시스템(100)은 1040 단계에서 음표들의 상태들을 기반으로, 페달 정보를 더 검출할 수 있다. 이 때, 페달 예측 모듈(345)은 음정이 임계값(예: 64)을 초과하면서 지속되는 음표들을 검출할 수 있다. 여기서, 프로세서(240)는 미리 정해진 길이 이상으로 지속되는 음표들을 검출할 수 있다. 그리고, 프로세서(240)는 검출된 음표들에 대해, 페달을 밟은 것으로 예측할 수 있다. 한편, 프로세서(240)는 음정이 임계값 이하인 음표들에 대해, 페달을 밟지 않은 것으로 결정할 수 있다. 아울러, 프로세서(240)는 음정이 임계값을 초과하되, 정해진 길이 미만으로 지속되는 음표들에 대해, 페달을 밟지 않은 것으로 결정할 수 있다.
이를 통해, 컴퓨터 시스템(100)은 1050 단계에서 음표들의 음정들, 음표들의 각각의 예측되는 값, 음표들의 각각에 대한 세기, 또는 페달 정보 중 적어도 하나를 기반으로 음표들의 악보를 생성할 수 있다. 한편, 선택적으로, 컴퓨터 시스템(100)은 1060 단계에서 악보를 이용하여, 피아노 연주를 재현할 수 있다. 이 때, 컴퓨터 시스템(100)는 피아노 연주에 대한 새로운 디지털 음원을 생성할 수 있다.
다양한 실시예들에 따르면, 컴퓨터 시스템(100)이 각 음표에 대해 가능한 상태, 즉 시작, 끝, 지속, 오프셋, 재시작 등을 하나의 값으로 예측할 수 있고, 이로 인해 단순한 구조의 네트워크 구조를 갖는 심층 신경망(600)으로도 각 음표에 대한 상태를 예측할 수 있으며, 불확실성이 감소될 수 있다. 이 때 컴퓨터 시스템(100)은 재귀적인 심층 신경망(600)을 이용하여, 높은 성능으로 각 음표에 대한 상태를 예측할 수 있다. 아울러, 컴퓨터 시스템(100)이 각 음표의 음정 및 상태 뿐 아니라 각 음표의 세기 또는 페달 정보 중 적어도 하나를 더 추가하여, 악보를 생성함으로써, 보다 정밀한 채보가 가능하다. 또한, 컴퓨터 시스템이 각 음표에 대한 상태를 실시간으로 예측할 수 있도록 최적화됨으로써, 실시간 채보, 즉 연주 직후 약 200 ms 이내의 채보가 가능하다.
다양한 실시예들은 다양한 분야들에 적용 및 응용될 수 있다. 예를 들면, 다양한 실시예들이 적용 및 응용될 수 있는 분야로는, 연주에 맞추어 자동으로 악보를 넘겨주는 소프트웨어(automatic page turner), 음악의 박자에 맞춘 영상, 혹은 영상에 잘 맞는 박자의 음악을 정렬시키는 컨텐츠 제작 보조 소프트웨어, 악보와 연주의 비교를 통한 연주 분석 시스템, 연주에 맞추어 악보, 자막, 관련 정보를 보여주는 시스템, 인공지능 합주 시스템, 악기 연주 튜터링 시스템, 악보가 없는 연주를 기반으로 한 자동 기보, 기록 시스템, 임의의 음원을 바탕으로 편곡, 작곡이 가능한 시스템 등이 있을 수 있다. 자동 채보는 음악을 컴퓨터가 이해할 수 있는 형태인 음표들로 바꿔주는 기초적인 알고리즘으로, 음원을 계산적으로 다루거나 음악적으로 분석하는 대부분의 연구/응용사례에 필수적일 것으로 기대된다. 기존의 채보 방법은 부정확성으로 인하여 그 응용 분야나 파급력이 제한적이었으나, 다양한 실시예들은 높은 성능(onset F1기준 97%)으로 인해 다양한 음악 응용 시스템에 응용되어 기존에 없던 새로운 서비스를 만들 수 있을 것이라 기대된다.
다양한 실시예들에 따른 컴퓨터 시스템(100)의 방법은, 피아노 연주에 대한 음원을 획득하는 단계(1010 단계), 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계(1020 단계), 및 음표들의 음정들 및 음표들의 각각의 예측되는 값을 기반으로, 음표들의 악보를 생성하는 단계(1050 단계)를 포함할 수 있다.
다양한 실시예들에 따르면, 컴퓨터 시스템(100)의 방법은, 음표들의 상태들을 기반으로, 페달(pedal) 정보를 검출하는 단계(1040 단계)를 더 포함할 수 있다.
다양한 실시예들에 따르면, 악보를 생성하는 단계(1050 단계)는, 페달 정보를 추가하여, 악보를 생성할 수 있다.
다양한 실시예들에 따르면, 상태들의 각각은, 음표에 대한 시작, 끝, 및 지속을 나타내는 제 1 상태, 음표에 대한 시작, 끝, 지속, 및 재시작을 나타내는 제 2 상태, 음표에 대한 시작, 끝, 지속, 및 오프셋을 나타내는 제 3 상태, 또는 음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태 중 하나로 표현될 수 있다.
다양한 실시예들에 따르면, 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계(1020 단계)는, 이전 프레임(t-1)의 음표들에 대한 상태들을 이용하여, 현재 프레임(t)의 음표들에 대한 상태들을 각각 예측할 수 있다.
다양한 실시예들에 따르면, 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계(1020 단계)는, 제 1 심층 신경망(610)을 통해, 현재 프레임(t)의 음표들에 대한 음향적 특징들을 각각 추출하는 단계(1123 단계), 및 제 2 심층 신경망(620)을 통해, 이전 프레임(t-1)의 음표들에 대한 상태들과 현재 프레임(t)의 음표들에 대한 음향적 특징들을 기반으로, 현재 프레임(t)의 음표들에 대한 상태들을 각각 예측하는 단계(1125 단계)를 포함할 수 있다.
다양한 실시예들에 따르면, 제 1 심층 신경망(610)은 콘볼루션 신경망(CNN)을 포함하고, 제 2 심층 신경망(620)은 재귀 신경망(RNN)을 포함할 수 있다.
다양한 실시예들에 따르면, 페달 정보를 검출하는 단계(1040 단계)는, 음정이 임계값을 초과하면서 지속되는 음표들을 검출하는 단계, 및 검출된 음표들에 대해 페달을 밟은 것으로 예측하는 단계를 포함할 수 있다.
다양한 실시예들에 따르면, 음표들에 대한 상태들을 각각 예측하면서, 음표들의 각각에 대한 세기를 예측하는 단계(1030 단계)를 더 포함할 수 있다.
다양한 실시예들에 따르면, 악보를 생성하는 단계(1050 단계)는, 예측된 세기를 추가하여, 악보를 생성할 수 있다.
다양한 실시예들에 따르면, 컴퓨터 시스템(100)의 방법은, 악보를 이용하여, 피아노 연주를 재현하는 단계(1060 단계)를 더 포함할 수 있다.
다양한 실시예들에 따른 컴퓨터 시스템(100)은, 메모리(230), 및 메모리(230)와 연결되고, 메모리(230)에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서(240)를 포함할 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 피아노 연주에 대한 음원을 획득하고, 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하고, 음표들의 음정들 및 음표들의 각각의 예측되는 값을 기반으로, 음표들의 악보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 음표들의 상태들을 기반으로, 페달 정보를 검출하고, 페달 정보를 추가하여, 악보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 상태들의 각각은, 음표에 대한 시작, 끝, 및 지속을 나타내는 제 1 상태, 음표에 대한 시작, 끝, 지속, 및 재시작을 나타내는 제 2 상태, 음표에 대한 시작, 끝, 지속, 및 오프셋을 나타내는 제 3 상태, 또는 음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태 중 하나로 표현될 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 이전 프레임(t-1)의 음표들에 대한 상태들을 이용하여, 현재 프레임(t)의 음표들에 대한 상태들을 각각 예측하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 제 1 심층 신경망을 통해, 현재 프레임(t)의 음표들에 대한 음향적 특징들을 각각 추출하고, 제 2 심층 신경망을 통해, 이전 프레임(t-1)의 음표들에 대한 상태들과 현재 프레임(t)의 음표들에 대한 음향적 특징들을 기반으로, 현재 프레임(t)의 음표들에 대한 상태들을 각각 예측하도록 구성될 수 있다.
다양한 실시예들에 따르면, 제 1 심층 신경망(610)은 콘볼루션 신경망(CNN)을 포함하고, 제 2 심층 신경망(620)은 재귀 신경망(RNN)을 포함할 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 음정이 임계값을 초과하면서, 지속되는 음표들을 검출하고, 검출된 음표들에 대해 페달을 밟은 것으로 예측하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 음표들에 대한 상태들을 각각 예측하면서, 음표들의 각각에 대한 세기를 예측하고, 예측된 세기를 추가하여 악보를 생성하도록 구성될 수 있다.
다양한 실시예들에 따르면, 프로세서(240)는, 악보를 이용하여, 피아노 연주를 재현하도록 구성될 수 있다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
다양한 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터-판독 가능 매체에 기록될 수 있다. 이 때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 그리고, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 단계들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 단계들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 단계들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 단계들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 단계들이 추가될 수 있다.

Claims (20)

  1. 컴퓨터 시스템의 방법에 있어서,
    피아노 연주에 대한 음원을 획득하는 단계;
    상기 음원에 대한 각 프레임의 스펙트로그램(spectrogram)을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계; 및
    상기 음표들의 음정(pitch)들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하는 단계
    를 포함하고,
    상기 상태들의 각각은,
    음표에 대한 시작(onset), 끝(off), 및 지속(sustain)를 나타내는 제 1 상태,
    음표에 대한 시작, 끝, 지속, 및 재시작(re-onset)을 나타내는 제 2 상태,
    음표에 대한 시작, 끝, 지속, 및 오프셋(offset)을 나타내는 제 3 상태, 또는
    음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태
    중 하나로 표현되는,
    방법.
  2. 제 1 항에 있어서,
    상기 음표들의 상태들을 기반으로, 페달(pedal) 정보를 검출하는 단계
    를 더 포함하고,
    상기 악보를 생성하는 단계는,
    상기 페달 정보를 추가하여, 상기 악보를 생성하는,
    방법.
  3. 삭제
  4. 컴퓨터 시스템의 방법에 있어서,
    피아노 연주에 대한 음원을 획득하는 단계;
    상기 음원에 대한 각 프레임의 스펙트로그램(spectrogram)을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계; 및
    상기 음표들의 음정(pitch)들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하는 단계
    를 포함하고,
    상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계는,
    이전 프레임의 음표들에 대한 상태들을 이용하여, 현재 프레임의 음표들에 대한 상태들을 각각 예측하는,
    방법.
  5. 제 4 항에 있어서,
    상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계는,
    제 1 심층 신경망을 통해, 상기 현재 프레임의 음표들에 대한 음향적 특징들을 각각 추출하는 단계; 및
    제 2 심층 신경망을 통해, 상기 이전 프레임의 음표들에 대한 상태들과 상기 현재 프레임의 음표들에 대한 음향적 특징들을 기반으로, 상기 현재 프레임의 음표들에 대한 상태들을 각각 예측하는 단계
    를 포함하는,
    방법.
  6. 제 5 항에 있어서,
    상기 제 1 심층 신경망은 콘볼루션 신경망(convolutional neural network; CNN)을 포함하고,
    상기 제 2 심층 신경망은 재귀 신경망(recurrent neural network; RNN)을 포함하는,
    방법.
  7. 제 2 항에 있어서,
    상기 페달 정보를 검출하는 단계는,
    음정이 임계값을 초과하면서 지속되는 음표들을 검출하는 단계; 및
    상기 검출된 음표들에 대해 페달을 밟은 것으로 예측하는 단계
    를 포함하는,
    방법.
  8. 제 2 항에 있어서,
    상기 음표들에 대한 상태들을 각각 예측하면서, 상기 음표들의 각각에 대한 세기(intensity)를 예측하는 단계
    를 더 포함하고,
    상기 악보를 생성하는 단계는,
    상기 예측된 세기를 추가하여, 상기 악보를 생성하는,
    방법.
  9. 제 1 항에 있어서,
    상기 악보를 이용하여, 상기 피아노 연주를 재현하는 단계
    를 더 포함하는,
    방법.
  10. 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    피아노 연주에 대한 음원을 획득하고,
    상기 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하고,
    상기 음표들의 음정들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하도록 구성되고,
    상기 상태들의 각각은,
    음표에 대한 시작, 끝, 및 지속을 나타내는 제 1 상태,
    음표에 대한 시작, 끝, 지속, 및 재시작을 나타내는 제 2 상태,
    음표에 대한 시작, 끝, 지속, 및 오프셋을 나타내는 제 3 상태, 또는
    음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태
    중 하나로 표현되는,
    컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 프로세서는,
    상기 음표들의 상태들을 기반으로, 페달 정보를 검출하고,
    상기 페달 정보를 추가하여, 상기 악보를 생성하도록 구성되는,
    컴퓨터 시스템.
  12. 삭제
  13. 컴퓨터 시스템에 있어서,
    메모리; 및
    상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    피아노 연주에 대한 음원을 획득하고,
    상기 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하고,
    상기 음표들의 음정들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하도록 구성되고,
    상기 프로세서는,
    이전 프레임의 음표들에 대한 상태들을 이용하여, 현재 프레임의 음표들에 대한 상태들을 각각 예측하도록 구성되는,
    컴퓨터 시스템.
  14. 제 13 항에 있어서,
    상기 프로세서는,
    제 1 심층 신경망을 통해, 상기 현재 프레임의 음표들에 대한 음향적 특징들을 각각 추출하고,
    제 2 심층 신경망을 통해, 상기 이전 프레임의 음표들에 대한 상태들과 상기 현재 프레임의 음표들에 대한 음향적 특징들을 기반으로, 상기 현재 프레임의 음표들에 대한 상태들을 각각 예측하도록 구성되는,
    컴퓨터 시스템.
  15. 제 14 항에 있어서,
    상기 제 1 심층 신경망은 콘볼루션 신경망(CNN)을 포함하고,
    상기 제 2 심층 신경망은 재귀 신경망(RNN)을 포함하는,
    컴퓨터 시스템.
  16. 제 11 항에 있어서,
    상기 프로세서는,
    음정이 임계값을 초과하면서, 지속되는 음표들을 검출하고,
    상기 검출된 음표들에 대해 페달을 밟은 것으로 예측하도록 구성되는,
    컴퓨터 시스템.
  17. 제 11 항에 있어서,
    상기 프로세서는,
    상기 음표들에 대한 상태들을 각각 예측하면서, 상기 음표들의 각각에 대한 세기를 예측하고,
    상기 예측된 세기를 추가하여 상기 악보를 생성하도록 구성되는,
    컴퓨터 시스템.
  18. 제 10 항에 있어서,
    상기 프로세서는,
    상기 악보를 이용하여, 상기 피아노 연주를 재현하도록 구성되는,
    컴퓨터 시스템.
  19. 비-일시적인 컴퓨터-판독 가능 저장 매체에 있어서,
    피아노 연주에 대한 음원을 획득하는 단계;
    상기 음원에 대한 각 프레임의 스펙트로그램을 기반으로, 상기 프레임 내 음표들에 대한 상태들의 각각을 하나의 값으로 예측하는 단계; 및
    상기 음표들의 음정들 및 상기 음표들의 각각의 상기 예측되는 값을 기반으로, 상기 음표들의 악보를 생성하는 단계
    를 실행하기 위한 하나 이상의 프로그램들을 저장하고,
    상기 상태들의 각각은,
    음표에 대한 시작(onset), 끝(off), 및 지속(sustain)를 나타내는 제 1 상태,
    음표에 대한 시작, 끝, 지속, 및 재시작(re-onset)을 나타내는 제 2 상태,
    음표에 대한 시작, 끝, 지속, 및 오프셋(offset)을 나타내는 제 3 상태, 또는
    음표에 대한 시작, 끝, 지속, 오프셋 및 재시작을 나타내는 제 4 상태
    중 하나로 표현되는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 프로그램들은,
    상기 음표들의 상태들을 기반으로, 페달 정보를 검출하는 단계
    를 더 실행하고,
    상기 악보를 생성하는 단계는,
    상기 페달 정보를 추가하여, 상기 악보를 생성하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
KR1020210017377A 2021-02-08 2021-02-08 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법 KR102415345B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210017377A KR102415345B1 (ko) 2021-02-08 2021-02-08 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210017377A KR102415345B1 (ko) 2021-02-08 2021-02-08 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법

Publications (1)

Publication Number Publication Date
KR102415345B1 true KR102415345B1 (ko) 2022-07-01

Family

ID=82397289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210017377A KR102415345B1 (ko) 2021-02-08 2021-02-08 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법

Country Status (1)

Country Link
KR (1) KR102415345B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101939001B1 (ko) * 2017-12-06 2019-01-15 한국과학기술원 심층 인공신경망 기반 자동 악보 채보를 이용한 연주 및 악보 정렬 방법 및 시스템
JP2020003536A (ja) * 2018-06-25 2020-01-09 カシオ計算機株式会社 学習装置、自動採譜装置、学習方法、自動採譜方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101939001B1 (ko) * 2017-12-06 2019-01-15 한국과학기술원 심층 인공신경망 기반 자동 악보 채보를 이용한 연주 및 악보 정렬 방법 및 시스템
JP2020003536A (ja) * 2018-06-25 2020-01-09 カシオ計算機株式会社 学習装置、自動採譜装置、学習方法、自動採譜方法及びプログラム

Similar Documents

Publication Publication Date Title
US11568244B2 (en) Information processing method and apparatus
CN107622770A (zh) 语音唤醒方法及装置
JP6078964B2 (ja) 音声対話システム及びプログラム
US10504498B2 (en) Real-time jamming assistance for groups of musicians
US11651795B2 (en) Audio signal processing device, audio system, and audio signal processing method
US7505909B2 (en) Device control device and device control method
US9368095B2 (en) Method for outputting sound and apparatus for the same
JP7044856B2 (ja) 増強された一貫性正規化を利用した音声認識モデル学習方法およびシステム
KR102415345B1 (ko) 피아노 연주의 음정, 세기, 페달의 실시간 자동 채보 및 재현을 위한 컴퓨터 시스템 및 그의 방법
US11600252B2 (en) Performance analysis method
US20230409281A1 (en) Cuepoint determination system
KR102497878B1 (ko) 노트 레벨의 오디오 데이터를 기초로 학습을 수행하는 보컬 채보 학습 방법 및 장치
CN116721675A (zh) 音频事件检测方法和装置
US20230260531A1 (en) Intelligent audio procesing
JP7428182B2 (ja) 情報処理装置および方法、並びにプログラム
CN112753067A (zh) 演奏数据的信息处理装置
CN113539215A (zh) 音乐风格转换方法、装置、设备及存储介质
WO2005062295A1 (ja) 機器制御装置、音声認識装置、エージェント装置及び機器制御方法
Menezes et al. Feature Learning with Multi-objective Evolutionary Computation in the generation of Acoustic Features
US20230395052A1 (en) Audio analysis method, audio analysis system and program
US20240112689A1 (en) Synthesizing audio for synchronous communication
KR102033720B1 (ko) 분위기 컨트롤이 가능한 음원 믹싱 방법 및 시스템
CN116631359A (zh) 乐曲的生成方法、装置、计算机可读介质及电子设备
CN116259291A (zh) 音乐识别方法、装置、存储介质及电子设备
CN117765977A (zh) 重叠人声检测模型的训练方法、重叠人声检测方法及装置

Legal Events

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