KR20220128672A - 음악 콘텐츠 생성 - Google Patents

음악 콘텐츠 생성 Download PDF

Info

Publication number
KR20220128672A
KR20220128672A KR1020227030076A KR20227030076A KR20220128672A KR 20220128672 A KR20220128672 A KR 20220128672A KR 1020227030076 A KR1020227030076 A KR 1020227030076A KR 20227030076 A KR20227030076 A KR 20227030076A KR 20220128672 A KR20220128672 A KR 20220128672A
Authority
KR
South Korea
Prior art keywords
music
audio
music content
module
user
Prior art date
Application number
KR1020227030076A
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 KR20220128672A publication Critical patent/KR20220128672A/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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • 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/0454
    • 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
    • G06N7/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • G10L21/12Transforming into visible information by displaying time domain information
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • G10H2210/076Musical 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 extraction of timing, tempo; Beat detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/111Automatic composing, i.e. using predefined musical rules
    • G10H2210/115Automatic composing, i.e. using predefined musical rules using a random process to generate a musical note, phrase, sequence or structure
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/145Composing rules, e.g. harmonic or musical rules, for use in automatic composition; Rule generation algorithms therefor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/091Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith
    • G10H2220/101Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters
    • G10H2220/126Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters for graphical editing of individual notes, parts or phrases represented as variable length segments on a 2D or 3D representation, e.g. graphical edition of musical collage, remix files or pianoroll representations of MIDI-like files
    • 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
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/441Image sensing, i.e. capturing images or optical patterns for musical purposes or musical control purposes
    • 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/056MIDI or other note-oriented file format
    • 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/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/215Transforms, i.e. mathematical transforms into domains appropriate for musical signal processing, coding or compression
    • G10H2250/235Fourier transform; Discrete Fourier Transform [DFT]; Fast Fourier Transform [FFT]
    • 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
    • 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/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/641Waveform sampler, i.e. music samplers; Sampled music loop processing, wherein a loop is a sample of a performance that has been edited to repeat seamlessly without clicks or artifacts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Automation & Control Theory (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)

Abstract

본 발명은 오디오 파일들의 이미지 표현들에 기초하여 새로운 음악 컨텐츠를 자동으로 생성하는 기법에 관한 것이다. 본 발명은 또한 실시간 오디오 생성을 위한 오디오 기술의 실행에 관한 것이다. 본 발명은 또한 음악 컨텐츠를 수정하기 위한 사용자 생성 제어의 실행에 관한 것이다. 본 발명은 또한 작곡된 음악 컨텐츠에 대한 기여를 트래킹하는 것에 관한 것이다.

Description

음악 콘텐츠 생성
본 발명은 오디오 엔지니어링에 관한 것으로, 특히 음악 콘텐츠 생성에 관한 것이다.
스트리밍 음악 서비스는 일반적으로 인터넷을 통해 사용자에게 노래를 제공한다. 사용자는 이러한 서비스에 가입하고 웹 브라우저 또는 애플리케이션을 통해 음악을 스트리밍할 수 있다. 이러한 서비스의 예로는 PANDORA, SPOTIFY, GROOVESHARK 등이 있다. 종종, 사용자는 스트리밍할 음악 장르 또는 특정 아티스트를 선택할 수 있다. 사용자는 일반적으로 (예를 들어, 별점 평가 또는 좋아요/싫어요 시스템을 사용하여) 노래를 평가할 수 있으며, 일부 음악 서비스는 이전 평가를 기반으로 사용자에게 스트리밍되는 노래를 맞춤화할 수 있다. 스트리밍 서비스 실행 비용(스트리밍된 각 노래에 대한 로열티 지불을 포함할 수 있음)은 일반적으로 사용자 구독 비용 및/또는 노래들 간에 재생되는 광고로 충당된다.
곡 선택은 라이선스 계약 및 특정 장르에 대해 작성된 곡 수에 따라 제한될 수 있다. 사용자는 특정 장르의 동일한 노래를 듣는 것에 지칠 수 있다. 또한, 이러한 서비스는 사용자의 취향, 환경, 행동 등에 맞게 음악을 맞춤화하지 않을 수 있다.
도 1은 예시적인 음악 생성기를 도시하는 도해이다.
도 2는 일부 실시예에 따른 다중의 다른 소스로부터 입력에 기반해 출력 음악 콘텐츠를 생성하기 위한 시스템의 예시적인 개관을 도시하는 블록도이다.
도 3은 일부 실시예에 따른 오디오 파일의 이미지 표현의 분석에 기반해 음악 콘텐츠를 출력하도록 구성된 예시적인 음악 생성기 시스템을 도시하는 블록도이다.
도 4는 오디오 파일의 이미지 표현의 예시를 도시한다.
도 5a 및 도 5b는 각기 멜로디 이미지 특징 표현 및 드럼 비트 이미지 특징 표현을 위한 그레이스케일 이미지의 예시를 도시한다.
도 6은 일부 실시예에 따라 단일 이미지 표현을 생성하도록 구성된 예시적인 시스템을 도시하는 블록도이다.
도 7은 다중 오디오 파일의 단일 이미지 표현의 예시이다.
도 8은 일부 실시예에 따라 음악 콘텐츠 생성에서 사용자 생성된 제어를 실행하도록 구성된 예시적인 시스템을 도시하는 블록도이다.
도 9는 일부 실시예에 따라 사용자 생성된 제어 요소에 기반해서 음악 생성기 모듈을 훈련시키기 위한 방법의 흐름도를 도시한다.
도 10은 일부 실시예에 따라, 예시적인 선생/학생 프레임워크 시스템을 도시하는 블록도이다.
도 11은 일부 실시예에 따라, 음악 콘텐츠 생성에서 오디오 기법을 실행하도록 구성된 예시적인 시스템을 도시하는 블록도이다.
도 12는 오디오 신호 그래프의 예시를 도시한다.
도 13은 오디오 신호 그래프의 예시를 도시한다.
도 14는 일부 실시예에 따라서, 오디오 기법 음악 생성기 모듈을 사용하여 음악 콘텐츠의 실시간 수정을 실행하기 위한 예시적인 시스템을 도시한다.
도15는 일부 실시예에 따라서, 오디오 파라미터의 자동화를 위한 시스템에서 예시적인 API 모듈의 블록도를 도시한다.
도 16은 일부 실시예에 따라, 예시적인 메모리 구역의 블록도를 도시한다.
도 17은 일부 실시예에 따라, 신규한 음악 콘텐츠를 저장하기 위한 예시적인 시스템의 블록도를 도시한다.
도 18은 일부 실시예에 따라 예시적인 플레이백 데이터를 도시하는 도해이다.
도19는 일부 실시예에 따라 예시적인 작곡 시스템을 도시하는 블록도이다.
도 20a-도 20b는 일부 실시예에 따라 그래픽 사용자 인터페이스를 도시하는 블록도이다.
도 21은 일부 실시예에 따라 분석 및 작곡 모듈을 포함하는 예시 음악 생성기 시스템을 도시하는 블록도이다.
도 22는 일부 실시예에 따라 음악 콘텐츠의 예시 빌드업 섹션을 도시하는 도해이다.
도 23은 일부 실시예에 따라 음악 콘텐츠의 섹션을 배열하기 위한 예시 기법을 도시하는 도해이다.
도 24는 일부 실시예에 따라 원장을 사용하기 위한 흐름도 방법이다.
도 25는 일부 실시예에 따라 오디오 파일을 조합하도록 이미지 표현을 사용하기 위한 흐름도 방법이다.
도 26은 일부 실시예에 따라 사용자에 의해 생성된 제어 요소를 실행하기 위한 흐름도 방법이다.
도 27은 일부 실시예에 따라 오디오 파라미터를 수정함으로써 음악 콘텐츠를 생성하기 위한 흐름도 방법이다.
여기서 개시된 실시예들은 다양한 변형과 대체 형태들이 가능하지면, 특정 실시예들이 예시로서 도면에 도시되어 있고, 여기서 상세하게 설명되어 있다. 그러나, 여기 첨부된 도면과 상세한 설명은 청구항의 범위를 개시된 특정 형태에 한정하려는 의도는 아니며, 본 출원은 첨부된 청구 범위에 의해 한정되는 본 발명의 사상과 본 출원의 개시의 범위 내에서 모든 변형들, 균등물들, 및 대체물들을 포함한다.
본 설명은 "하나의 실시예", "특정 실시예", "일부 실시예", "다양한 실시예", 또는 "일 실시예" 의 참조를 포함한다. "하나의 실시예에서", "특정 실시예에서", "일부 실시예에서", "다양한 실시예에서", 또는 "일 실시예에서" 의 문구는 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구성들, 또는 특성들은 본 명세서과 일치하는 적절한 방식으로 조합될 수 있다.
첨부된 청구 범위에서 구성요소가 하나 이상의 작업을 수행하도록 "구성"된다고 언급하는 것은 해당 청구항 구성요소에 대해서 35 U.S.C. § 112(f)를 초래하지 않도록 명시적으로 의도된다. 따라서, 출원된 본 출원서의 청구 범위는 기능식 기재 청구항을 갖는 것으로 해석되지 않는다. 출원인이 심사 중에 섹션 112(f)를 초래하기를 원하는 경우, [기능을 수행하기 위한] "수단"이라는 표현을 사용하여 청구항 구성요소를 인용할 것이다.
본원에서 사용된 용어 "에 기반하여"는 일 결정에 영향을 미치는 하나 이상의 인자를 설명하는 데 사용된다. 이러한 용어는 추가 인자들이 해당 결정에 영향을 미칠 수 있다는 가능성을 배제하지 않는다. 즉, 일 결정은 지정된 인자만을 기반으로하거나 지정된 인자 및 기타 지정되지 않은 인자를 기반으로 할 수 있다. "B를 기반으로 A 결정한다"라는 문구를 고려해보자. 이 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 미치는 인자임을 지정한다. 이러한 문구는 A의 결정이 C와 같은 다른 인자를 기반으로 할 수도 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A가 B에만 기초하여 결정되는 실시예를 포함하도록 의도된다. 본 명세서에서 사용되는 바와 같이, "에 기반하여"이라는 문구는 "에 적어도 부분적으로 기반하여"라는 문구와 동의어이다.
본원에서 사용된 용어 "에 반응하여"는 일 효과를 촉발하는 하나 이상의 인자들을 기술한다. 이러한 용어는 추가 인자들이 해당 효과에 영향을 미치거나 달리 촉발할 수 있다는 가능성을 배제하지 않는다. 즉, 일 효과는 그러한 인자만에 반응하거나, 또는 지정된 인자 및 기타 지정되지 않은 인자에 반응할 수 있다.
본원에서 사용된 용어 "제1", "제2", 등은 달리 언급되지 않는 한, 전에 기재된 명사들을 라벨링하기 위해 사용되며 어떤 형태로든 순서(예컨대, 공간적, 시간적, 논리적, 등)를 암시하는 것은 아니다. 본원에서 사용된 용어 "또는"은 포함적으로 사용된 것이고, 배타적 논리합을 의미하는 것이 아니다. 예를 들어, "x, y, 또는 z 중 적어도 하나"라는 문구는 x, y, 및 z 중 임의의 하나 및 그들의 임의의 조합(예, x 및 y, 그러나 z는 아님)을 의미한다. 일부 상황에서, "또는"이라는 용어의 사용의 문맥은 배타적 의미로 사용되는 것을 보여주는데, 예컨대 "x, y, 또는 z 중 하나를 선택"은 그 예에서 x, y, 및 z 중 하나만이 선택되는 것을 의미한다.
다음의 상세한 설명에서, 많은 상세한 설명들이 개시된 실시예들의 완전한 이해를 제공하기 위하여 제시된다. 그러나, 당해 분야의 통상의 지식을 가진 자는 개시된 실시예들의 양상들은 이러한 상세 사항들 없이 실행될 수 있다는 것을 인지할 수 있을 것이다. 일부 예들에서는, 개시된 실시예들의 이해를 방해하지 않기 위하여, 공지, 구조들, 컴퓨터 프로그램 명령들, 및 기술들은 상세히 나타내지 않았다.
전체가 여기에 참고로서 병합된 2013년 8월 16일 출원된 미국 특허 출원 제 13/969,372(현재, 미국 특허 제8,812,144호)는 하나 이상의 음악적 속성에 기초하여 음악 콘텐츠를 생성하는 기술을 논의한다. '372 출원의 정의사항들과 본 발명의 나머지 부분 사이에 인식된 상충에 근거하여 해석이 이루어진 경우, 본 발명이 적용되도록 의도된다. 음악적 속성은 사용자에 의해 입력되거나 주변 소음, 조명 등과 같은 환경 정보에 기초하여 결정될 수 있다. '372 출원은 저장된 루프 및/또는 트랙을 선택하거나 새로운 루프/트랙을 생성하고, 선택된 루프/트랙을 계층화하여 출력 음악 콘텐츠를 생성하는 기술을 논의한다.
전체로 여기에 참조로서 병합된 2019년 5월 23일 출원된 미국 특허 출원 제16/420,456호(현재 미국 특허 제10,679,596호)는 음악 콘텐츠를 생성하기 위한 기법을 논의한다. '456 출원과 개시의 나머지의 정의 사이에 인지된 충돌에 기반해 임의의 해석이 이루어지는 범위까지, 본 개시는 다루도록 의도된다. 음악은 사용자의 입력에 기반해서 또는 컴퓨터 실행 방법을 사용하여 생성될 수 있다. '456 개시는 다양한 음악 생성기 실시예를 논의한다.
본 개시는 일반적으로 다양한 파라미터에 기반해서 오디오 트랙을 선택하고 조합함으로써 고객 정의 음악 콘텐츠를 생성하기 위한 시스템에 관한 것이다. 다양한 실시예에서, 머신 러닝 알고리즘(딥 러닝 신경망과 같은 신경망을 포함)은 특정 사용자에 대해 음악 콘텐츠를 생성하고 고객맞춤화하도록 구성된다. 일부 실시예에서, 사용자는 자신만의 제어 요소를 생성할 수 있고 컴퓨팅 시스템은 사용자 정의된 제어 요소의 사용자 의도된 기능성에 따라 출력 음악 콘텐츠를 생성하도록 훈련될 수 있다. 일부 실시예에서, 여기 기재된 기법에 의해 생성된 음악 콘텐츠의 플레이북 데이터는 다른 권리 소유자(예를 들어, 저작권 소유자)에 의해 다양한 음악 콘텐츠의 사용을 기록하고 추적하기 위해 기록될 수 있다. 아래에서 설명하는 다양한 기술은 다양한 상황에 대해 보다 관련성이 높은 사용자 맞춤 음악을 제공하고, 특정 사운드에 따라 음악을 생성하는 것을 용이하게 하며, 사용자가 음악이 생성되는 방식을 더 많이 제어할 수 있도록 하고, 하나 이상의 특정 목표를 달성하는 음악을 생성하고, 다른 콘텐츠과 함께 실시간으로 음악을 생성할 수 있다.
여기 사용된 바와 같은, 용어 “오디오 파일”은 음악 콘텐츠를 위한 사운드 정보를 말한다. 예를 들어, 사운드 정보는 wav, aiff, 또는 FLAC와 같은 포맷으로 원시 오디오로서 음악 콘텐츠를 기재하는 데이터를 포함할 수 있다. 음악 콘텐츠의 특성은 사운드 정보에 포함될 수 있다. 특성은 예를 들어, 악기 분류, 피치 트랜스크립션, 비트 타이밍, 템포, 파일 길이, 및 다중 주파수 빈에서 오디오 진폭과 같은 수량화할 수 있는 음악 특성을 포함할 수 있다. 일부 실시예에서, 오디오 파일은 특정 신호 간격에 걸쳐 사운드 정보를 포함한다. 다양한 실시예에서, 오디오 파일은 루프를 포함한다. 여기 사용된 바와 같은, 용어 “루프”는 특정 시간 간격에 걸쳐 단일 악기를 위한 사운드 정보를 말한다. 오디오 파일을 참조하여 논의된 다양한 기법은 단일 악기를 포함하는 루프를 사용하여 수행될 수 있다. 오디오 파일 또는 루프는 반복된 방식으로 재생될 수 있지만(예를 들어, 30 초 오디오 파일이 음악 콘텐츠의 2분을 생성하기 위해 잇달아 4회 재생될 수 있다), 오디오 파일은 또한 예를 들어, 반복됨 없이 한 번 재생될 수 있다.
일부 실시예에서, 오디오 파일의 이미지 표현이 생성되고, 음악 콘텐츠를 생성하도록 사용될 수 있다. 오디오 파일의 이미지 표현은 오디오 파일에서 데이터 및 오디오 파일의 MIDI 표현에 기반해서 생성될 수 있다. 이미지 표현은 예를 들어, 오디오 파일의 MIDI 표현으로부터 결정된 피치 및 리듬의 2차원(2D) 이미지 표현일 수 있다. 규칙(예를 들어, 작곡 규칙)이 신규한 음악 콘텐츠를 생성하기 위해 사용될 오디오 파일을 선택하도록 이미지 표현에 적용될 수 있다. 다양한 실시예에서, 기계 학습/신경망은 신규한 음악 콘텐츠를 생성하기 위해 조합하기 위한 오디오 파일을 선택하도록 이미지 표현 상에 실행된다. 일부 실시예에서, 이미지 표현은 오디오 파일의 압축된(예를 들어, 보다 낮은 해상도) 버전이다. 이미지 표현을 압축하는 것은 이미지 표현에서 선택된 음악 콘텐츠를 찾는 데 있에서 속도를 증가시킬 수 있다.
일부 실시예에서, 음악 생성기는 오디오 파일의 다양한 파라미터 표현에 기반해서 신규한 음악 콘텐츠를 생성할 수 있다. 예를 들어, 오디오 파일은 일반적으로 시간에 관련한 신호(예를 들어, 신호 진폭, 주파수, 또는 그의 조합)의 그래프로서 표현될 수 있는 오디오 신호를 가진다. 그러나 시간 기반 표현은 음악 콘텐츠의 템포에 따른다. 다양한 실시예에서, 오디오 파일은 또한 비트(예를 들어, 신호 그래프)에 관련해 신호의 그래프를 사용하여 표현된다. 신호 그래프는 템포에 독립적이고, 이는 음악 콘텐츠의 오디오 파라미터의 템포 불변 수정을 감안한다.
일부 실시예에서, 음악 생성기는 사용자가 사용자에 의해 정의된 제어를 생성하고 라벨링하는 것을 허용한다. 예를 들어, 사용자는, 음악 생성기가 그런 후에 사용자의 선호도에 따라 음악에 영향을 미치도록 훈련할 수 있는 제어를 생성할 수 있다. 다양한 실시예에서, 사용자에 의해 정의된 제어는 분위기, 강도, 또는 장르와 같은 높은 수준의 제어이다. 그러한 제어는 일반적으로 청취자의 개인적인 선호도에 기반한 주관적인 측정이다. 일부 실시예에서, 사용자는 사용자에 의해 정의된 파라미터를 위한 제어를 생성하고 라벨링할 수 있다. 음악 생성기는 그런 후에 다양한 음악 파일을 재생할 수 있고 사용자가 사용자에 의해 정의된 파라미터에 따라 음악을 수정하는 것을 허용한다. 음악 생성기는 사용자에 의해 정의된 파라미터의 사용자의 조절에 기반해서 사용자의 선호도를 학습하고 저장할 수 있다. 따라서, 나중에 플레이백 동안, 사용자에 의해 정의된 파라미터를 위한 사용자에 의해 정의된 제어는 사용자에 의해 조절될 수 있고, 음악 생성기는 사용자의 선호도에 따라 음악 플레이백을 조절한다. 일부 실시예에서, 음악 생성기는 또한 사용자에 의해 정의된 파라미터에 의해 설정된 사용자의 선호도에 따라 음악 콘텐츠를 선택할 수 있다.
일부 실시예에서, 음악 생성기에 의해 생성된 음악 콘텐츠는 다양한 이해당사자 개체(예를 들어, 권리 소유자 또는 저작권 소유자)를 갖는 음악을 포함한다. 생성된 음악 콘텐츠의 계속적인 플레이백을 갖는 상업적 어플리케이션에서, 개별적인 오디오 트랙(파일)의 플레이백에 기반한 보수가 어려울 수 있다. 따라서, 다양한 실시예에서, 기법은 계속적인 음악 콘텐츠의 플레이백 데이터를 기록하기 위해 실행된다. 기록된 플레이백 데이터는 각각의 개별적인 오디오 트랙에 대한 이해당사자와 일치되는 계속적인 음악 콘텐츠 내에 개별적인 오디오 트랙의 플레이백 시간에 속한 정보를 포함할 수 있다. 부가적으로, 기법은 플레이백 데이터 정보로 부당변경을 방지하도록 실행될 수 있다. 예를 들어, 플레이백 데이터 정보는 대중적으로 접근가능한 불변의 블록 체인 원장에 저장될 수 있다.
본 발명은 먼저, 도 1 및 2를 참조하여 예시적인 음악 생성기 모듈 및 다수의 애플리케이션을 갖는 전체 시스템 구성을 설명한다. 이미지 표현으로부터 음악 콘텐츠를 생성하는 기술은 도 3 내지 7을 참조하여 설명한다. 사용자 생성 제어 요소를 실행하는 기술은 도 8 및 10을 참조하여 설명한다. 오디오 기술의 실행을 생성하는 기술은 도 11 내지 17을 참조하여 설명한다. 블록 체인 또는 다른 암호 원장에서 생성된 음악 또는 요소에 대한 정보를 기록하는 기술은 도 18 내지 19를 참조하여 설명한다. 도 20a - 20b는 예시적인 애플리케이션 인터페이스를 보여준다.
일반적으로, 개시된 음악 생성기는 오디오 파일, 메타 데이터(예를 들어, 오디오 파일을 설명하는 정보) 및 메타 데이터에 기초하여 오디오 파일을 결합하기 위한 그래머를 포함한다. 생성기는 음악 경험의 메타 데이터 및 대상 특성을 기반으로 오디오 파일을 식별하는 규칙을 사용하여 음악 경험을 생성할 수 있다. 규칙, 오디오 파일 및/또는 메타 데이터를 추가하거나 수정함으로써 생성할 수 있는 경험 세트를 확장하도록 구성할 수 있다. 조절은 수동으로 수행될 수 있고(예를 들어, 아티스트가 새 메타 데이터를 추가), 또는 음악 생성기가 소정의 환경 및 원하는 목표/특성 내에서 음악 경험을 모니터링할 때 규칙/오디오 파일/메타 데이터를 증가시킬 수 있다. 예를 들어, 청취자-한정 제어들은 음악 목표 및 특성들에 대한 사용자 피드백을 얻기 위해 실행될 수 있다.
예시적인 음악 생성기 개요
도 1은 일부 실시예에 따른 예시적인 음악 생성기를 도시하는 다이어그램이다. 예시된 실시예에서, 음악 생성기 모듈(160)은 다수의 상이한 소스로부터 다양한 정보를 수신하고 출력 음악 콘텐츠(140)를 생성한다.
도시된 실시예에서, 모듈(160)은 저장된 오디오 파일(들) 및 저장된 오디오 파일(들)에 대한 대응하는 속성(들)(110)에 액세스하고 오디오 파일들을 결합하여 출력 음악 콘텐츠(140)를 생성한다. 일부 실시예에서, 음악 생성기 모듈(160)은 그들의 속성에 기초하여 오디오 파일을 선택하고 타겟 음악 속성(130) 및/또는 환경 정보(150)에 기초하여 오디오 파일을 결합한다. 일부 실시예에서, 오디오 파일은 타겟 음악 속성(130)과 조합한 환경 정보(150)에 기초하여 선택될 수 있다. 일부 실시예에서, 환경 정보(150)는 타겟 음악 속성(130)을 결정하기 위해 간접적으로 사용된다. 일부 실시예에서, 타겟 음악 속성(130)은 예를 들어 원하는 에너지 레벨, 분위기, 다수의 파라미터 등을 지정함으로써 사용자에 의해 명시적으로 지정된다. 예를 들어, 여기서 기술된 청취자-한정 제어들이 타겟 음악 속성으로서 사용되는 청취자 취향을 특정하도록 실행될 수 있다. 타겟 음악 속성(130)의 예는 에너지, 복잡성 및 다양성을 포함하지만, 보다 구체적인 속성(예를 들어, 저장된 트랙의 속성에 대응함)이 또한 지정될 수 있다. 일반적으로 말하면, 상위 레벨의 타겟 음악 속성이 지정되면, 출력 음악 콘텐츠를 생성하기 전에 시스템에 의해 하위 레벨의 특정 음악 속성이 결정될 수 있다.
복잡성은 작곡에 포함된 여러 오디오 파일, 루프 및/또는 악기를 의미할 수 있다. 에너지는 다른 속성과 관련되거나 다른 속성과 직교할 수 있다. 예를 들어, 키나 템포를 변경하면 에너지에 영향을 미칠 수 있다. 그러나, 소정의 템포 및 키에 대해, 악기 유형을 조절하거나(예를 들어, 높은 햇(hat) 또는 백색 노이즈 추가), 복잡성, 볼륨 등을 조절하여 에너지를 변경할 수 있다. 다양성은 시간이 지남에 따라 생성되는 음악의 변화량을 의미할 수 있다. (예를 들어, 소정의 템포 및 키에 대해 상이한 트랙들을 선택함으로써) 다른 음악적 속성의 정적인 세트에 대해 다양성이 생성되거나, (예를 들어, 보다 큰 다양성이 바람직한 경우에 템포 및 키를 더 자주 변경함으로써) 시간에 따라서 음악 속성을 변경함으로써 다양성이 생성될 수 있다. 일부 실시예에서, 목표 음악 속성은 다차원 공간에 존재하는 것으로 생각될 수 있고 음악 생성기 모듈(160)은 예를 들어 환경 변화 및/또는 사용자 입력에 기초하여 필요한 경우 코스 수정과 함께 해당 공간을 통해 천천히 이동할 수 있다.
일부 실시예에서, 오디오 파일과 함께 저장된 속성은 다음을 포함하는 하나 이상의 오디오 파일에 대한 정보를 포함한다: 템포, 볼륨, 에너지, 다양성, 스펙트럼, 엔벨로프, 변조, 주기, 상승 및 감쇠 시간, 노이즈, 아티스트, 악기, 테마 등. 일부 실시예에서, 오디오 파일은 하나 이상의 오디오 파일의 세트가 특정 오디오 파일 유형(예를 들어, 하나의 악기 또는 하나의 악기 유형)에 특정되도록 분할된다는 점에 유의한다.
예시된 실시예에서, 모듈(160)은 저장된 규칙 세트(들)(120)에 액세스한다. 저장된 규칙 세트(들)(120)는, 일부 실시예에서, (출력 음악의 복잡성에 대응할 수 있는) 동시에 재생되도록 오버레이할 오디오 파일의 수에 대한 규칙을 지정하고, 오디오 파일 또는 음악 프레이즈 간에 천이할 때에 어느 메이저/마이너 키 진행을 사용할 것인지를 지정하고, 목표 음악 속성을 달성하기 위해 함께 사용할 악기(예를 들어, 서로 친화력이 있는 악기)를 지정할 수 있다. 달리 말하면, 음악 생성기 모듈(160)은 저장된 규칙 세트(들)(120)를 사용하여 타겟 음악 속성(및/또는 타겟 환경 정보)에 의해 정의된 하나 이상의 선언적 목표를 달성한다. 일부 실시예에서, 음악 생성기 모듈(160)은 반복적인 출력 음악을 피하기 위해 의사 랜덤성을 도입하도록 구성된 하나 이상의 의사 난수 생성기를 포함한다.
일부 실시예에서, 환경 정보(150)는 조명 정보, 주변 소음, 사용자 정보(얼굴 표정, 신체 자세, 활동 수준, 움직임, 피부 온도, 특정 활동 수행, 의복 유형 등), 온도 정보, 지역의 구매 활동, 시간, 요일, 년도, 참석자 수, 날씨 상태 등 중 하나 이상을 포함한다. 일부 실시예에서, 음악 생성기 모듈(160)은 환경 정보를 수신/처리하지 않는다. 일부 실시예에서, 환경 정보(150)는 다른 모듈에 의해서 수신되고, 이 모듈이 환경 정보에 기초하여 타겟 음악 속성(130)을 결정한다. 타겟 음악 속성(130)은 또한 다른 유형의 콘텐츠, 예를 들어, 비디오 데이터에 기초하여 도출될 수 있다. 일부 실시예에서, 환경 정보는 예를 들어, 하나 이상의 환경 목표를 달성하기 위해 하나 이상의 저장된 규칙 세트(들)(120)를 조절하는 데 사용된다. 이와 유사하게, 음악 생성기는 하나 이상의 오디오 파일에 대해 저장된 속성을 조절하기 위해 환경 정보를 사용할 수 있으며, 이로써, 예를 들어, 이러한 오디오 파일이 특히 관련이 있는 타겟 음악 속성 또는 타겟 청중 특성을 표시할 수 있다.
본 명세서에서, 용어 "모듈"은 지정된 동작을 수행하도록 구성된 회로 또는 다른 회로(예를 들어, 프로세서)에게 지정된 동작을 수행하도록 지시하는 정보(예를 들어, 프로그램 인스트럭션)를 저장하는 물리적 비일시적 컴퓨터 판독 가능 매체를 의미한다. 모듈은 하드 와이어 회로 또는 동작을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션이 저장된 메모리를 포함하여, 여러 방식으로 구현될 수 있다. 하드웨어 회로는 예를 들어, 맞춤형 VLSI(very large scale integration) 회로 또는 게이트 어레이, 로직 칩, 및 트랜지스터와 같은 기성품 반도체 또는 기타 개별 부품을 포함할 수 있다. 모듈은 또한 필드 프로그래밍 가능 게이트 어레이, 프로그래밍 가능 어레이 로직, 프로그래밍 가능 로직 장치 등과 같은 프로그래밍 가능 하드웨어 장치로 구현될 수 있다. 모듈은 또한 지정된 동작을 수행하도록 실행 가능한 프로그램 인스트럭션을 저장하는 비일시적 컴퓨터 판독 가능 매체의 임의의 적절한 형태일 수 있다.
본 명세서에서, "음악 콘텐츠"라는 문구는 음악 자체(음악의 가청 표현)뿐만 아니라 음악을 재생하는 데 사용할 수 있는 정보를 모두 지칭한다. 따라서, 저장 매체(예를 들어, 이로 제한되지 않지만, 컴팩트 디스크, 플래시 드라이브 등) 상에 파일로서 녹음된 노래는 음악 콘텐츠의 예이다. 이 녹음된 파일 또는 기타 전자적 표현을 (예를 들어, 스피커를 통해) 출력하여 생성된 사운드도 음악 콘텐츠의 예이다.
"음악"이라는 용어에는 악기에서 생성된 소리와 보컬 사운드를 포함하여 잘 이해된 의미가 포함된다. 따라서, 음악에는 예를 들어, 악기 연주 또는 녹음, 아카펠라 연주 또는 녹음, 악기와 음성을 모두 포함하는 연주 또는 녹음이 포함된다. 당업자는 "음악"이 모든 보컬 녹음을 포함하지 않는다는 것을 인식할 것이다. 리듬이나 운율과 같은 음악적 속성을 포함하지 않는 저작물(예를 들어, 연설물, 뉴스 캐스트 및 오디오북)은 음악이 아니다.
하나의 음악 "콘텐츠"는 적절한 방식으로 다른 음악 콘텐츠와 구별될 수 있다. 예를 들어, 제 1 노래에 해당하는 디지털 파일은 제 1 음악 콘텐츠를 나타낼 수 있고, 제 2 노래에 해당하는 디지털 파일은 제 2 음악 콘텐츠를 나타낼 수 있다. "음악 콘텐츠"라는 문구는 또한 소정의 음악 작품 내에서 특정 간격들을 서로 구별하는 데 사용될 수 있으므로, 동일한 노래의 상이한 부분들이 다른 음악 콘텐츠로 간주될 수 있다. 유사하게, 소정의 음악 작품 내의 상이한 트랙들(예를 들어, 피아노 트랙, 기타 트랙)은 또한 상이한 음악 콘텐츠에 대응할 수 있다. 생성된 음악의 잠재적으로 끝이 없는 스트림의 맥락에서 "음악 콘텐츠"라는 문구는 스트림의 일부(예를 들어, 몇 마디 또는 몇 분)를 지칭하는 데 사용될 수 있다.
본 발명의 실시예들에 의해 생성된 음악 콘텐츠는 이전에 생성된 적이 없는 음악적 요소들의 조합인 "새로운 음악 콘텐츠"일 수 있다. 관련(하지만 보다 광범위한) 개념인 "원작 음악 콘텐츠"는 아래에 자세히 설명되어 있다. 이 용어의 설명을 용이하게 하기 위해, 음악 콘텐츠 생성의 인스턴스와 관련된 "제어 엔티티"의 개념이 설명된다. "원작 음악 콘텐츠"라는 문구와 달리, "새로운 음악 콘텐츠"라는 문구는 제어 엔티티의 개념을 의미하지 않는다. 따라서, 새로운 음악 콘텐츠는 임의의 엔테티나 컴퓨터 시스템에서 이전에, 생성된 적이 없는 음악 콘텐츠를 의미한다.
개념적으로, 본 발명은 컴퓨터 생성 음악 콘텐츠의 특정 인스턴스를 제어하는 것으로 일부 "엔티티"를 지칭한다. 그러한 엔티티는 컴퓨터 생성 콘텐츠에 해당할 수 있는 모든 법적 권리(예를 들어, 저작권)를 소유한다(해당 권리가 실제로 존재할 수 있는 범위까지). 일 실시예에서, 컴퓨터로 구현된 음악 생성기를 생성(예를 들어, 다양한 소프트웨어 루틴을 코딩)하거나 컴퓨터로 구현된 음악 생성의 특정 인스턴스를 동작시키는(예를 들어, 입력을 공급)하는 개인이 제어 엔티티가 될 것이다. 다른 실시예에서, 컴퓨터로 구현된 음악 생성기는 소프트웨어 제품, 컴퓨터 시스템 또는 컴퓨팅 장치의 형태와 같이 법적 엔티티(예를 들어, 기업 또는 기타 비즈니스 조직)에 의해 생성될 수 있다. 일부 경우에, 그러한 컴퓨터 구현 음악 생성기는 많은 클라이언트에 배포될 수 있다. 이 음악 생성기의 배포와 관련된 라이선스 조건에 따라, 제어 엔티티는 다양한 예들에서, 제작자, 배포자 또는 클라이언트일 수 있다. 그러한 명시적인 법적 계약이 없는 경우, 컴퓨터로 구현된 음악 생성기의 제어 엔티티는 컴퓨터로 음악 콘텐츠를 생성하는 특정 인스턴스를 용이하게하는 (예를 들어, 입력을 제공하여 이를 동작시키는) 엔티티이다.
본 발명의 의미 내에서, 제어 엔티티에 의한 "원작 음악 콘텐츠"의 컴퓨터 생성은, 1) 제어 엔티티 또는 타인에 의해 이전에, 생성된 적이 없는 음악적 요소의 조합 및 2) 이전에 생성되었지만 제어 엔티티에 의해 첫 번째 인스턴스에서 생성된 음악적 요소들의 조합을 지칭한다. 콘텐츠 유형 1)은 본 명세서에서 "신규 음악 콘텐츠"라고 하며, "새로운 음악 콘텐츠"의 정의와 유사하지만, "신규 음악 컨텐츠"의 정의는 "제어 엔티티"의 개념을 지칭하지만, "새로운 음악 콘텐츠"의 정의와 그렇지 않는다는 점에서 차이가 난다. 한편, 콘텐츠 유형 2)는 본 명세서에서 "독점 음악 콘텐츠"라고 한다. 이 문맥에서, "독점적"이라는 용어는 콘텐츠의 묵시적 법적 권리를 의미하는 것이 아니라(해당 권리가 존재할 수 있을 지라도), 음악 콘텐츠가 원래 제어 엔티티에 의해 생성되었음을 나타내는 데 사용된다. 따라서, 제어 엔티티에 의해 이전에 원래 생성된 음악 콘텐츠를 "재생하는" 제어 엔티티는 본 발명에서 "원작 음악 콘텐츠의 생성"을 구성한다. 특정 제어 엔티티와 관련하여 "비원작 음악 콘텐츠"는 해당 제어 엔티티에 대한 "원작 음악 콘텐츠"가 아닌 음악 콘텐츠이다.
일부 음악 콘텐츠에는 하나 이상의 다른 음악 콘텐츠의 음악 구성 요소가 포함될 수 있다. 이러한 방식으로 음악 콘텐츠를 생성하는 것을 음악 콘텐츠를 "샘플링"하는 것이라고 하며 특정 음악 작품, 특히 특정 음악 장르에서 일반적이다. 이러한 음악 콘텐츠는 본 명세서에서 "샘플링된 구성 요소를 갖는 음악 콘텐츠", "2차적 음악 콘텐츠" 또는 다른 유사한 용어를 사용하여 지칭된다. 대조적으로, 샘플링된 구성 요소를 포함하지 않는 음악 콘텐츠는 본 명세서에서 "샘플링된 구성 요소가 없는 음악 콘텐츠", "비-2차적 음악 콘텐츠" 또는 다른 유사한 용어를 사용하여 지칭된다.
이러한 용어를 적용할 때, 특정 음악 콘텐츠가 충분한 입도 수준으로 환원되면, 이 음악 콘텐츠가 2차적이라는 주장이 제기될 수 있다(실제로는 모든 음악 콘텐츠가 2차적임). 본 발명에서, "2차적" 및 "비-2차적"이라는 용어는 이러한 의미로 사용되지 않는다. 음악 콘텐츠의 컴퓨터 생성과 관련하여, 이러한 컴퓨터 생성이 제어 엔티티가 아닌 다른 엔티티의 기존 음악 콘텐츠로부터의 구성 요소의 일부를 선택하는 경우(예를 들어, 컴퓨터 프로그램은 생성되는 음악 콘텐츠에 포함하기 위해 인기 아티스트 작품의 오디오 파일의 특정 부분을 선택하는 경우), 이러한 컴퓨터 생성은 2차적인 것으로 간주된다. 반면에, 음악 콘텐츠의 컴퓨터 생성은, 이러한 컴퓨터 생성이 그러한 기존 콘텐츠의 그러한 구성 요소를 사용하지 않는 경우에는, 비-2차적이라고 한다(그리고, 비-2차적 음악 콘텐츠를 생성한다). "원작 음악 콘텐츠"의 일부는 2차적 음악 콘텐츠일 수 있고 다른 일부는 비-2차적 음악 콘텐츠일 수 있다.
용어 "2차적"은 미국의 저작권법에서 사용되는 "2차적 저작물"이라는 용어보다 본 발명 내에서 더 넓은 의미를 갖는 것으로 의도된다는 점에 유의한다. 예를 들어, 2차적 음악 콘텐츠는 미국 저작권법에서 2차적 저작물일 수도 있고 아닐 수도 있다. 본 발명에서 용어 "2차적"는 부정적인 의미를 전달하려는 것이 아니다; 이는 특정 음악 콘텐츠가 다른 작품에서 콘텐츠의 일부를 "차용"하는지 여부를 나타내는 데 사용된다.
또한, "새로운 음악 콘텐츠", "신규 음악 콘텐츠", "원작 음악 콘텐츠"라는 문구는 음악 요소들의 기존의 조합과 사소한 차이만 있는 음악 콘텐츠를 포함하려는 의도가 아니다. 예를 들어, 기존 음악 작품의 몇 개의 음표를 변경하는 것만으로 본 명세서에서 사용되는 구절과 같은 새롭거나 신규하거나 독창적인 음악 콘텐츠가 생성되지 않는다. 마찬가지로, 기존 음악 작품의 키 또는 템포를 단지 변경하거나 (예를 들어, 이퀄라이저 인터페이스를 사용하여) 주파수의 상대적 강도를 조절하는 것만으로는 새롭거나 신규하거나 독창적인 음악 콘텐츠가 생성되지 않는다. 더욱이, 이러한 구절들, 새롭고 신규하고 독창적인 음악 콘텐츠는 원작 콘텐츠와 원작이 아닌 콘텐츠 사이의 경계가 되는 음악 콘텐츠를 포함하는 것도 아니다. 이 대신에, 이러한 용어는 제어 엔티티에 대한 저작권 보호를 받을 자격이 있는 음악 콘텐츠(이하 "보호 가능한" 음악 콘텐츠라고 함)를 포함하여 의심할 여지없이 명백하게 독창적인 음악 콘텐츠를 포함한다. 또한, 본 명세서에서 사용되는 "사용 가능한" 음악 콘텐츠라는 용어는 제어 엔티티가 아닌 다른 엔티티의 저작권을 위반하지 않는 음악 콘텐츠를 의미한다. 새로운 또는 원작 음악 콘텐츠는 종종 보호가능하며 사용 가능하다. 이는 음악 콘텐츠의 복제를 방지하고 음악 콘텐츠에 대한 로열티를 지불하는 데 유리할 수 있다.
본 명세서에서 논의된 다양한 실시예가 규칙 기반 엔진을 사용하지만, 다양한 다른 유형의 컴퓨터 구현 알고리즘이 본 명세서에서 논의되는 임의의 컴퓨터 학습 및/또는 음악 생성 기술에 사용될 수 있다. 그러나, 규칙 기반 접근 방식은 음악 맥락에서 특히 효과적일 수 있다.
예시적인 음악 시스템에서 사용될 수 있는 애플리케이션, 저장 요소 및 데이터의 개요
음악 생성기 모듈은 다수의 상이한 애플리케이션, 모듈, 저장 요소 등과 상호 작용하여 음악 콘텐츠를 생성한다. 예를 들어, 최종 사용자는 다양한 유형의 컴퓨팅 장치(예를 들어, 모바일 장치, 데스크톱 컴퓨터, DJ 장비 등)에 대해 여러 유형의 애플리케이션 중 하나를 설치할 수 있다. 마찬가지로, 기업 사용자에게 다른 유형의 응용 프로그램을 제공할 수 있다. 음악 콘텐츠를 생성하는 동안 애플리케이션과 상호 작용하면 음악 생성기가 외부 정보를 수신하고 이를 사용하여 대상 음악 속성을 결정하거나 음악 콘텐츠를 생성하는 데 사용되는 하나 이상의 규칙 세트를 업데이트할 수 있다. 하나 이상의 애플리케이션과 상호 작용하는 것 외에도, 음악 생성기 모듈은 규칙 세트를 수신하고 규칙 세트를 업데이트하도록 다른 모듈과 상호 작용할 수 있다. 마지막으로, 음악 생성기 모듈은 하나 이상의 저장 요소에 저장된 하나 이상의 규칙 세트, 오디오 파일, 및/또는 생성된 음악 콘텐츠에 액세스할 수 있다. 또한, 음악 생성기 모듈은 로컬이거나 네트워크(예를 들어, 클라우드 기반)를 통해 액세스할 수 있는 하나 이상의 저장 요소 내에 위에 나열된 항목 중 임의의 항목을 저장할 수 있다.
도 2는, 몇몇 실시예에 따르면, 다수의 상이한 소스로부터의 입력에 기초하여 출력 음악 콘텐츠를 생성하기 위한 시스템의 예시적인 개요를 나타내는 블록도이다. 예시된 실시예에서, 시스템(200)은 규칙 모듈(210), 사용자 애플리케이션(220), 웹 애플리케이션(230), 기업 애플리케이션(240), 아티스트 애플리케이션(250), 아티스트 규칙 생성기 모듈(260), 생성된 음악의 저장부(270) 및 외부 입력들(280)을 포함한다.
예시된 실시예에서, 사용자 애플리케이션(220), 웹 애플리케이션(230) 및 기업 애플리케이션(240)은 외부 입력(280)을 수신한다. 일부 실시예에서, 외부 입력(280)은 환경 입력, 타겟 음악 속성, 사용자 입력, 센서 입력 등을 포함한다. 일부 실시예에서, 사용자 애플리케이션(220)은 사용자의 모바일 장치에 설치되고 사용자가 규칙 모듈(210)과 상호 작용/통신하도록 하게 하는 그래픽 사용자 인터페이스(GUI)를 포함한다. 일부 실시예에서, 웹 애플리케이션(230)은 사용자 장치에 설치되지 않지만, 사용자 장치의 브라우저 내에서 실행되도록 구성되고 웹 사이트를 통해 액세스될 수 있다. 일부 실시예에서, 기업 애플리케이션(240)은 음악 생성기와 상호 작용하기 위해 대규모 엔티티에 의해 사용되는 애플리케이션이다. 일부 실시예에서, 애플리케이션(240)은 사용자 애플리케이션(220) 및/또는 웹 애플리케이션(230)과 조합하여 사용된다.일부 실시예에서, 애플리케이션(240)은 주변 환경에 관한 정보를 수집하기 위해 하나 이상의 외부 하드웨어 장치 및/또는 센서와 통신한다.
예시된 실시예에서, 규칙 모듈(210)은 출력 음악 콘텐츠를 생성하기 위해 사용자 애플리케이션(220), 웹 애플리케이션(230) 및 기업 애플리케이션(240)과 통신한다. 일부 실시예에서, 음악 생성기(160)는 규칙 모듈(210)에 포함된다. 규칙 모듈(210)은 애플리케이션(220, 230, 240) 중 하나에 포함될 수 있거나 서버에 설치되어 네트워크를 통해 액세스될 수 있다는 점에 유의한다. 일부 실시예에서, 애플리케이션(220, 230 및 240)은 규칙 모듈(210)로부터 생성된 출력 음악 콘텐츠를 수신하고 이 콘텐츠가 재생되게 한다. 일부 실시예에서, 규칙 모듈(210)은 예를 들어, 타겟 음악 속성 및 환경 정보에 대하여 애플리케이션(220, 230 및 240)으로부터의 입력을 요청하고, 이 데이터를 사용하여 음악 콘텐츠를 생성할 수 있다.
예시된 실시예에서, 저장된 규칙 세트(들)(120)는 규칙 모듈(210)에 의해 액세스된다. 일부 실시예에서, 규칙 모듈(210)은 애플리케이션(220, 230 및 240)과의 통신에 기초하여 저장된 규칙 세트(들)(120)를 수정 및/또는 업데이트한다. 일부 실시예에서, 규칙 모듈(210)은 출력 음악 콘텐츠를 생성하기 위해 저장된 규칙 세트(들)(120)에 액세스한다. 예시된 실시예에서, 저장된 규칙 세트(들)(120)는 아래에서 더 상세히 논의되는 아티스트 규칙 생성기 모듈(260)로부터의 규칙을 포함할 수 있다.
예시된 실시예에서, 아티스트 애플리케이션(250)은 아티스트 규칙 생성기 모듈(260)(예를 들어, 동일한 애플리케이션의 일부일 수 있거나 클라우드 기반일 수 있음)과 통신한다. 일부 실시예에서, 아티스트 애플리케이션(250)은 아티스트가 예를 들어 이전 작곡에 기초하여 자신의 특정 사운드에 대한 규칙 세트를 생성하도록 하게 한다. 이러한 기능은 아래에서, 미국 특허 No. 10,679,96에 자세히 설명한다. 일부 실시예에서, 아티스트 규칙 생성기 모듈(260)은 규칙 모듈(210)에 의해 사용하기 위해 생성된 아티스트 규칙 세트를 저장하도록 구성된다. 사용자는 특정 애플리케이션을 통해 출력 음악을 생성하기 위해 사용하기 전에 특정 아티스트로부터 규칙 세트를 구매할 수 있다. 특정 아티스트에 대한 규칙 세트를 서명 팩이라고할 수 있다.
예시된 실시예에서, 저장된 오디오 파일(들) 및 대응하는 속성(들)(110)은 출력 음악 콘텐츠를 생성하기 위해 트랙을 선택하고 결합하기 위한 규칙을 적용할 때 모듈(210)에 의해 액세스된다. 예시된 실시예에서, 규칙 모듈(210)은 생성된 출력 음악 콘텐츠(270)를 저장 요소에 저장한다.
일부 실시예에서,도 2의 요소 중 하나 이상은 서버 상에서 구현되고 네트워크를 통해 액세스되며, 이는 클라우드 기반 구현으로 지칭될 수 있다. 예를 들어, 저장된 규칙 세트(들)(120), 오디오 파일(들)/속성(들)(110) 및 생성된 음악(270)은 모두 클라우드에 저장되고 모듈(210)에 의해 액세스될 수 있다. 다른 예에서, 모듈(210) 및/또는 모듈(260)은 또한 클라우드 내에서 구현될 수 있다. 일부 실시예에서, 생성된 음악(270)은 클라우드에 저장되고 디지털 워터마킹된다. 이로써, 예를 들어 생성된 음악을 복사하는 것을 감지할 수 있을뿐만 아니라 많은 양의 사용자 맞춤 음악 콘텐츠를 생성할 수 있다.
일부 실시예에서, 개시된 모듈 중 하나 이상은 음악 콘텐츠에 추가하여 다른 유형의 콘텐츠를 생성하도록 구성된다. 예를 들어, 시스템은 목표 음악 속성, 결정된 환경 조건, 현재 사용되는 규칙 세트 등에 기초하여 출력 시각적 콘텐츠를 생성하도록 구성될 수 있다. 다른 예로서, 시스템은 생성되는 음악의 현재 속성을 기반으로 데이터베이스 또는 인터넷을 검색하고, 음악이 변경됨에 따라 동적으로 변경되고 음악의 속성과 일치하는 이미지의 콜라주를 표시할 수 있다.
예시적인 머신 러닝 접근
여기 기재된 바와 같이, 도 1에 도시된 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)를 생성하도록 다양한 인공 지능(AI) 기법(예를 들어, 머신 러닝 기법)을 실행할 수 있다. 다양한 실시예에서, 실행된 AI 기법은 보다 전통적인 머신 러닝 기법 및 지식 기반 시스템과 심층 신경망(DNN)의 조합을 포함한다. 이러한 조합은 음악 작곡 및 개인화 시스템에 고유한 도전과 이들 기법의 각각의 강점 및 취약점을 정렬할 수 있다. 음악 콘텐츠는 다중 레벨에 구조를 가진다. 예를 들어, 노래는 섹션, 구, 멜로디, 노트 및 텍스처를 가진다. DNN은 음악 콘텐츠의 매우 높은 레벨 및 매우 낮은 레벨 세부사항을 분석하고 생성하는 데에 효과적일 수 있다. 예를 들어, DNN은 낮은 레벨에서 클라리넷 또는 전자 기타에 속하거나 높은 레벨에서 버스(verse) 및 코러스를 감지하는 것으로서 사운드의 텍스처를 분류하는데 바람직할 수 있다. 멜로디의 구성, 오케스트레이션 등과 같은 음악 콘텐츠 세부사항의 중간 레벨은 더 어려울 수 있다. DNN은 일반적으로 단일 멜로디에서 넓은 범위의 스타일을 캡처하기에 바람직하고, 따라서 DNN은 다양한 표현 범위를 갖는 생성적 도구로서 구현될 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 음악 생성기 모듈에 의해 사용된 음악 콘텐츠의 기본적인 유닛으로서 인간에 의해 작곡된 오디오 파일(예를 들어, 루프)를 구비함으로써 전문가 지식을 사용한다. 예를 들어, 전문가 지식의 사회적 맥락은 구조의 다중 레벨에서 휴리스틱스를 기록하도록 리듬, 멜로디, 및 텍스처의 선택을 통해 임베디드될 수 있다. 구조적 레벨에 기반한 DNN 및 전통적 기계 학습의 분리와는 달리, 전문가 지식은 음악 생성기 모듈(160)의 훈련가능성에 지나치게 강한 제한을 두지 않고 음악성이 증가될 수 있는 임의의 영역에 적용될 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 어떻게 오디오의 레이어가 수직으로, 서로 위에 사운드를 레이어링함으로써, 그리고 수평으로, 오디오 파일 또는 루프를 시퀀스에 조합함으로써 조합되는지에 관한 패턴을 발견하도록 DNN을 사용한다. 예를 들어, 음악 생성기 모듈(160)은 멀티트랙 오디오 레코딩에 사용된 루프의 멜 주파수 캡스트럼 계수(MFCC) 상에 훈련된 장단기 메모리(LSTM) 순환 신경망을 구현할 수 있다. 일부 실시예에서, 망은 이전 비트의 오디오 특징의 지식에 기반해서 다가오는 비트에 대해 루프의 오디오 특징을 예측하고 선택하도록 훈련된다. 예를 들어, 망은 마지막 128 비트의 오디오 특징의 지식에 기반해서 다음의 8 비트에 대한 루프의 오디오 특징을 예측하도록 훈련될 수 있다. 따라서, 망은 다가오는 비트를 예측하도록 저차원 특징 표현을 사용하도록 훈련된다.
특정 실시예에서, 음악 생성기 모듈(160)은 멀티트랙 오디오의 시퀀스를 강도 및 복잡성의 역학을 갖는 음악적 구조로 조립하기 위해 공지된 머신 러닝 알고리즘을 사용한다. 예를 들어, 음악 생성기 모듈(160)은 계층적 은닉 마르코프 모델을 구현할 수 있고, 이는 계층적 구조의 다중 레벨에 의해 결정된 확률로 상태 전이를 구성하는 상태 기계처럼 거동할 수 있다. 예로서, 특정 종류의 드롭은 빌드업 섹션 후에 발생하는 경향이 더 크지만 그러한 빌드업의 끝이 드럼을 갖지 않으면 그러한 경향이 덜 할 수 있다. 다양한 실시예에서, 확률은 투명하게 훈련될 수 있고, 이는 학습된 것이 보다 불투명한 DNN 훈련과는 대조적이다.
마르코프 모델은 더 큰 시간적 구조를 다룰 수 있고 따라서 예시가 지나치게 길 수 있기 때문에 예시 트랙을 제시함으로써 용이하게 훈련되지 못할 수 있다. 피드백 제어 요소(사용자 인터페이스 상의 찬성/반대와 같음)는 언제든지 음악 상에 피드백을 보내도록 사용될 수 있다. 특정 실시예에서, 피드백 제어 요소는 도 8에 도시된 UI 제어 요소(들)(830) 중 하나로서 구현된다. 그런 후에 음악 구조와 피드백 사이의 상관관계가 전이 테이블 또는 마르코프 모델과 같은 작곡을 위해 사용된 구조적 모델을 업데이트하도록 사용될 수 있다. 이러한 피드백은 또한 시스템이 명료한 분류를 결정할 수 있는 심박수, 매출액, 또는 임의의 다른 메트릭의 측정치로부터 직접 수집될 수 있다. 위에 기재된 전문가 지식 휴리스틱스는 또한 확률적이도록 설계되고, 마르코프 모델과 동일한 방식으로 가능하고 훈련된다.
특정 실시예에서, 훈련은 작곡가 또는 DJ에 의해 수행될 수 있다. 그러한 훈련은 청취자 훈련과 분리될 수 있다. 예를 들어, 청취자(일반 사용자와 같음)에 의해 이루어진 훈련은 각기 긍정적 모델 피드백 및 부정적 모델 피드백에 기반해서 정확하거나 부정확한 분류를 식별하도록 제한될 수 있다. 작곡가 또는 DJ에 있어서, 훈련은 수백개의 시간단계를 포함할 수 있고 음악 콘텐츠에서 변화를 이끄는 것에 보다 분명한 세부사항을 전달하도록 사용된 레이어 및 볼륨 제어에 관한 세부사항을 포함할 수 있다. 예를 들어, 작곡가 또는 DJ에 의해 수행된 훈련은 위에 기재된 DNN의 전역적 훈련과 유사한 시퀀스 예측 훈련을 포함할 수 있다.
다양한 실시예에서, DNN은 작곡가 또는 DJ가 다음에 할 것을 예측하도록 멀티트랙 오디오 및 인터페이스 상호작용에서 취해짐으로써 훈련된다. 일부 실시예에서, 이러한 상호작용은 보다 투명한 신규한 휴리스틱스를 전개하도록 기록되거나 사용될 수 있다. 일부 실시예에서, DNN은 입력으로서 음악에 관한 다수의 이전 측정치를 받아들이고, 작곡가 또는 DJ가 적용한 트랙에 대한 수정을 기재하는 추가 특징을 갖는, 위에 기재된, 저차원 특징 표현을 사용한다. 예를 들어, DNN은 입력으로서 음악의 마지막 32개의 측정치를 받아들이고 DJ 또는 작곡가가 적용한 트랙에 대한 수정을 기재하는 추가 특징과 함께 저차원 특징 표현을 사용할 수 있다. 이들 수정은 특정 트랙, 적용된 필터, 지연 등의 이득에 대한 조절을 포함할 수 있다. 예를 들어, DJ는 연주 동안 5분 동안 반복되는 동일한 드럼 루프를 사용할 수 있지만 시간에 걸쳐 트랙 상의 이득 및 지연을 점차로 증가시킬 수 있다. 그러므로, DNN은 루프 선택에 더해서 그러한 이득 및 지연 변화를 예측하도록 훈련될 수 있다. 어떠한 루프도 특정 악기에 대해 재생되지 않을 때(예를 들어, 어떠한 드럼 루프도 재생되지 않을 때), 특징 세트는 그 악기에 대해 모두 영일 수 있고, 이는 DNN이 모두 영을 예측하는 것이 선택적 레이어링으로 이끌 수 있는 성공적 전략일 수 있음을 학습하는 것을 허용할 수 있다.
일부 예에서, DJ 또는 작곡가는 믹서 및 트랙터(네이티브 인스트루먼트 GmbH)와 같은 장치를 사용하여 라이브 연주를 기록한다. 이들 기록은 일반적으로 고해상도(예를 들어, 4 트랙 기록 또는 MIDI)로 캡처된다. 일부 실시예에서, 시스템은 기록을 각각의 개별 루프의 음질은 물론 작곡에서 루프의 조합에 관한 정보를 산출하는 구성요소 루프로 조립해제한다. 이러한 정보로 DNN(또는 다른 기계 학습)을 훈련하는 것은, 음악 생성기 모듈(160)에 아티스트가 연주에서 사용했던 실제 루프를 사용하지 않고 아티스트 연주와 유사한 음악 경험을 생성하는 방법을 알려주도록 DNN에 작곡(예를 들어, 시퀀싱, 레이어링, 루프의 타이밍 등)과 루프의 음질 모두를 상관시키는 능력을 제공한다.
오디오 파일의 이미지 표현을 사용하는 예시적인 음악 생성기
폭넓은 인기를 가진 음악은 폭넓게 관찰된 리듬, 텍스처, 및 피치의 조합을 가진다. 작곡(음악 생성기에 의해 이루어질 수 있는 바와 같이)에서 각각의 악기에 대해 음표로 악보를 생성할 때, 규칙은 일관성 있는 음악을 생성하도록 이들 조합에 기반해서 구현될 수 있다. 일반적으로, 규칙이 엄격할 수록, 창의적인 변화에 대한 여지가 줄어들고, 따라서 이는 기존 음악의 카피를 생성하게 하는 경향이 더 있다.
음악이 오디오로서 이미 수행되고 기록된 악구의 조합을 통해 생성될 때, 각각의 구에서 음표의 다중의 불변의 조합이 조합을 생성하기 위해 고려될 필요가 있을 수 있다. 그러나 수천개의 오디오 레코딩의 라이브러리로부터 끌어낼 때, 매 가능한 조합의 조사는 계산적으로 고가일 수 있다. 부가적으로, 음 대 음 비교는 특히 비트 상의 화성적으로 불협화음의 조합에 대해 확인하도록 이루어질 필요가 있을 수 있다. 다중 파일을 조합함으로써 생성된 신규한 리듬 역시 조합된 구의 리드미컬한 구성을 위해 규칙에 대해 확인될 필요가 있을 수 있다.
오디오 파일로부터 조합을 구성하기 위해 필수적인 특징을 추출하는 것이 항상 가능하지 않을 수 있다. 가능할 때조차, 오디오 파일로부터 필요로 하는 특징을 추출하는 것은 계산적으로 고가일 수 있다. 다양한 실시예에서, 상징적인 오디오 표현은 계산적인 비용을 감소시키도록 음악 작곡에 대해 사용된다. 상징적인 오디오 표현은 악기의 텍스처 및 저장된 리듬 및 피치 정보에 관한 음악 작곡가의 기억에 따를 수 있다. 상징적인 음악 표현의 공통 포맷은 MIDI이다. MIDI는 정확한 타이밍, 피치, 및 연주 제어 정보를 포함한다. 일부 실시예에서, MIDI는 음이 일반적으로 피치의 8 옥타브로, 이산 시간/피치 그래프 상의 바로서 나타나는 피아노 롤 표현을 통해 더 단순화되고 압축될 수 있다.
일부 실시예에서, 음악 생성기는 오디오 파일의 이미지 표현을 생성하고 이미지 표현의 분석에 기반해서 음악의 조합을 선택함으로써 출력 음악 콘텐츠를 생성하도록 구성된다. 이미지 표현은 피아노 롤 표현으로부터 더 압축된 표현일 수 있다. 예를 들어, 이미지 표현은 오디오 파일의 MIDI 표현에 기반해 생성된 더 저해상도 표현일 수 있다. 다양한 실시예에서, 작곡 규칙은 출력 음악 콘텐츠를 조합하고 생성하도록 오디오 파일로부터 음악 콘텐츠를 선택하도록 이미지 표현에 적용된다. 작곡 규칙은 예를 들어, 규칙 기반 방법을 사용하여 적용될 수 있다. 일부 실시예에서, 머신 러닝 알고리즘 또는 모델(심층 학습 신경망과 같음)은 출력 음악 콘텐츠를 생성하기 위해 오디오 파일을 선택하고 조립하도록 구현된다.
도 3은 일부 실시예에 따라 오디오 파일의 이미지 표현의 분석에 기반해서 음악 콘텐츠를 출력하도록 구성된 예시적인 음악 생성기 시스템을 도시하는 블록도이다. 도시된 실시예에서, 시스템(300)은 이미지 표현 생성 모듈(310), 음악 선택 모듈(320), 및 음악 생성기 모듈(160)을 포함한다.
도시된 실시예에서 이미지 표현 모듈(310)은 오디오 파일의 하나 이상의 이미지 표현을 생성하도록 구성된다. 특정 실시예에서, 이미지 표현 생성 모듈(310)은 오디오 파일 데이터(312) 및 MIDI 표현 데이터(314)를 받아들인다. MIDI 표현 데이터(314)는 오디오 파일 데이터(312)에서 특정 오디오 파일(들)의 MIDI 표현(들)을 포함한다. 예를 들어, 오디오 파일 데이터(312)에서 특정 오디오 파일에 대해 MIDI 표현 데이터(314)에서 상응하는 MIDI 표현을 가질 수 있다. 오디오 파일 데이터(312)에서 다중 오디오 파일을 갖는 일부 실시예에서, 오디오 파일 데이터(312)에서 각각의 오디오 파일은 MIDI 표현 데이터(314)에서 상응하는 MIDI 표현을 가진다. 도시된 실시예에서, MIDI 표현 데이터(314)는 오디오 파일 데이터(312)와 함께 이미지 표현 생성 모듈(310)에 제공된다. 그러나, 일부 고려할만한 실시예에서, 이미지 표현 생성 모듈(310)은 오디오 파일 데이터(312)로부터 그 자체로 MIDI 표현 데이터(314)를 생성할 수 있다.
도 3에 도시된 바와 같이, 이미지 표현 생성 모듈(310)은 오디오 파일 데이터(312) 및 MIDI 표현 데이터(314)로부터 이미지 표현(들)(316)을 생성한다. MIDI 표현 데이터(314)는 오디오 파일과 연관된 음악에서 음에 관한 피치, 시간(또는 리듬), 및 속도(또는 음의 강도) 데이터를 포함할 수 있는 한편, 오디오 파일 데이터(312)는 음악 그 자체의 플레이백에 관한 데이터를 포함한다. 특정 실시예에서, 이미지 표현 생성 모듈(310)은 MIDI 표현 데이터(314)로부터 피치, 시간, 및 속도 데이터에 기반해 오디오 파일에 관한 이미지 표현을 생성한다. 이미지 표현은 예를 들어, 오디오 파일의 2차원(2D) 이미지 표현일 수 있다. 오디오 파일의 2D 이미지 표현에서, x 축은 시간(리듬)을 나타내고 y 축은 피치(피아노 롤 표현과 유사함)를 나타내고, 각각의 x-y 축에서 픽셀의 값은 속도를 나타낸다.
이미지 크기가 일반적으로 음악적 구조에 상응하도록 선택됨에도, 오디오 파일의 2D 이미지 표현은 다양한 이미지 크기를 가질 수 있다. 예를 들어, 하나의 고려할만한 실시예에서, 2D 이미지 표현은 32 (x-축) × 24 이미지 (y-축)이다. 32 픽셀 폭 이미지 표현은 각각의 픽셀이 시간 차원에서 비트의 4분의 1을 나타내는 것을 허용한다. 따라서, 음악의 8 비트는 32 픽셀 폭 이미지 표현에 의해 표현될 수 있다. 이러한 표현이 오디오 파일에서 음악의 표현적 세부사항을 캡처할만큼 충분한 세부사항을 가질 수 없는 한편, 표현적 세부사항은 오디오 파일 그 자체에 포함되고, 이는 출력 음악 콘텐츠의 생성을 위해 시스템(300)에 의해 이미지 표현과 조합해서 사용된다. 그러나 쿼터 비트 시간 해상도는 공통 피치 및 리듬 조합 규칙의 충분한 커버리지를 허용한다.
도 4는 오디오 파일의 이미지 표현(316)의 예시를 도시한다. 이미지 표현(316)은 (시간에 있어서) 32 픽셀 폭 그리고 (피치에 있어서) 24 픽셀 높이이다. 각각의 픽셀(정방형)(402)은 오디오 파일에서 시간 및 피치에 관한 속도를 나타내는 값을 가진다. 다양한 실시예에서, 이미지 표현(316)은 픽셀 값이 그레이의 강도를 변경함으로써 표현되는 오디오 파일의 그레이스케일 이미지 표현일 수 있다. 픽셀 값에 기반한 그레이에서 변경은 다수의 사람들에게 작고 감지할 수 없을 수 있다. 도 5a 및 도 5b는 각기 멜로디 이미지 특징 표현 및 드럼 비트 이미지 특징 표현에 관한 그레이스케일 이미지의 예시를 도시한다. 그러나 다른 표현(예를 들어, 색상 또는 수) 역시 고려될 수 있다. 이러한 표현에서, 각각의 픽셀은 다른 음악 속성에 상응하는 다중의 다른 값을 가질 수 있다.
특정 실시예에서, 이미지 표현(316)은 오디오 파일의 8 비트 표현이다. 따라서, 각각의 픽셀은 256개의 가능한 값을 가질 수 있다. MIDI 표현은 일반적으로 속도에 관해 128개의 가능한 값을 가진다. 다양한 실시예에서, 속도값에서 세부사항은 조합을 위한 오디오 파일을 선택하는 일보다 덜 중요할 수 있다. 따라서, 그러한 실시예에서, 피치축(y-축)은 각각의 세트에서 4 옥타브를 갖는 8 옥타브 범위에서 옥타브의 2 개의 세트로 옮기도록 밴딩될 수 있다. 예를 들어, 8 옥타브는 다음과 같이 규정될 수 있다:
옥타브 0: 행 0-11, 값 0-63;
옥타브 1: 행 12-23, 값 0-63;
옥타브 2: 행 0-11, 값 64-127;
옥타브 3: 행 12-23, 값 64-127;
옥타브 4: 행 0-11, 값 128-191;
옥타브 5: 행 12-23, 값 128-191;
옥타브 6: 행 0-11, 값 192-255; 및
옥타브 7: 행 12-23, 값 192-255.
옥타브에 관한 이러한 규정된 범위와 함께, 행 및 픽셀의 값은 음의 옥타브 및 속도를 결정한다. 예를 들어, 행 1에서 행 10의 픽셀 값은 10의 속도로 옥타브 0에서 음을 나타내는 한편, 행 1에서 행 74의 픽셀 값은 10의 속도로 옥타브 2에서 음을 나타낸다. 또 다른 예시로서, 행 13에서 행 79의 픽셀 값은 15의 속도로 옥타브 3에서 음을 나타내는 한편, 행 13에서 행 207의 픽셀 값은 15의 속도로 옥타브 7에서 음을 나타낸다. 따라서, 위의 옥타브에 관한 규정 범위를 사용하여, 제 1의 12개의 행(행 0-11)은 제 1의 4개의 옥타브 중 어느 하나가 표현될지를 결정하는 픽셀 값(픽셀 값은 또한 음의 속도를 결정함)으로 4개의 옥타브(옥타브 0, 2, 4, 및 6)의 제 1 세트를 나타낸다. 유사하게, 제 2의 12개의 열(열 12-23)은 제 2의 4개의 옥타브 중 어느 하나가 표현될지를 결정하는 픽셀 값(픽셀 값은 또한 음의 속도를 결정함)으로 4개의 옥타브(옥타브 1, 3, 5, 및 7)의 제 2 세트를 나타낸다.
위에 기재된 바와 같이 8 옥타브 범위를 커버하도록 피치축을 밴딩함으로써, 각각의 옥타브의 속도가 MIDI 표현의 128개의 값보다는 64개의 값에 의해 규정될 수 있다. 따라서, 2D 이미지 표현(예를 들어, 이미지 표현(316))은 동일한 오디오 파일의 MIDI 표현보다는 압축될 수 있다(예를 들어, 더 저해상도를 가질 수 있다). 일부 실시예에서, 64개보다 많을 수 있는 값이 음악 조합을 선택하도록 시스템(300)에 의해 요구됨에 따라서, 이미지 표현의 추가 압축이 허용될 수 있다. 예를 들어, 속도 해상도는 음이 시작함을 나타내는 홀수 픽셀 값 및 음이 유지함을 나타내는 짝수 픽셀 값을 갖음으로써 시간 표현에서 압축을 허용하도록 더 감소될 수 있다. 이러한 방식으로 음을 감소시키는 것은 홀수 또는 짝수 픽셀 값에 기반해 하나의 더 긴 음과 구분되도록 빠르게 연속적으로 재생된 동일한 속도를 갖는 두 개의 음을 허용한다.
위에 기재된 바와 같이, 이미지 표현의 압축성은 (예를 들어, MIDI 표현에 비해) 음악의 표현을 위해 필요한 파일의 크기를 감소시킨다. 따라서, 오디오 파일의 이미지 표현을 구현하는 것은 필요한 디스크 저장량을 감소시킨다. 또한, 압축된 이미지 표현은 가능한 음악 조합에 관한 빠른 검색을 허용하는 고속 메모리에 저장될 수 있다. 예를 들어, 8 비트 이미지 표현은 컴퓨터 장치 상의 그래픽 메모리에 저장될 수 있고, 따라서 대량의 병렬 검색이 함께 수행되는 것을 허용한다.
다양한 실시예에서, 다중 오디오 파일에 대해 생성된 이미지 표현은 단일 이미지 표현으로 조합된다. 예를 들어, 수십, 수백, 또는 수천의 오디오 파일에 관한 이미지 표현이 단일 이미지 표현으로 조합될 수 있다. 단일 이미지 표현은 단일 이미지를 구성하는 다중 오디오 파일의 병렬 검색을 위해 사용될 수 있는 대형의 검색가능한 이미지일 수 있다. 예를 들어, 단일 이미지는 (이드 소프트웨어로부터의) 메가 텍스처와 같은 소프트웨어를 사용한 비디오 게임에서 대형의 텍스처에 대해 유사한 방식으로 검색될 수 있다.
도 6은 일부 실시예에 따라 단일 이미지 표현을 생성하도록 구성된 예시적인 시스템을 도시하는 블록도이다. 도시된 실시예에서, 시스템(600)은 단일 이미지 표현 생성 모듈(610) 및 텍스처 특징 추출 모듈(620)을 포함한다. 특정 실시예에서, 단일 이미지 표현 생성 모듈(610) 및 텍스처 특징 추출 모듈(620)은 도 3에 도시된 이미지 표현 생성 모듈(310)에 위치된다. 그러나 단일 이미지 표현 생성 모듈(610) 또는 텍스처 특징 추출 모듈(620)은 이미지 표현 생성 모듈(310)의 외부에 위치될 수 있다.
도 6의 도시된 실시예에 도시된 바와 같이, 다중 이미지 표현(316A-N)이 생성된다. 이미지 표현(316A-N)은 N개의 개별적인 오디오 파일에 대한 N개의 개별적인 이미지 표현일 수 있다. 단일 이미지 표현 생성 모듈(610)은 단일 조합된 이미지 표현(316)에 개별적인 이미지 표현(316A-N)을 조합할 수 있다. 일부 실시예에서, 단일 이미지 표현 생성 모듈(610)에 의해 조합된 개별적인 이미지 표현은 다른 악기에 대한 개별적인 이미지 표현을 포함한다. 예를 들어, 오케스트라 내의 다른 악기는 개별적인 이미지 표현에 의해 표현될 수 있고, 이는 그런 후에 음악의 검색 및 선택을 위해 단일 이미지 표현에 조합된다.
특정 실시예에서, 개별적인 이미지 표현(316A-N)은 단일 이미지 표현(316)에 조합되고, 개별적인 이미지 표현은 중첩 없이 서로 인접해서 위치된다. 따라서, 단일 이미지 표현(316)은 데이터 손실 없이(예를 들어, 추가 이미지 표현을 위해 데이터를 수정하는 하나의 이미지 표현으로부터 임의의 데이터 없이) 모든 개별적인 이미지 표현(316A-N)의 완전한 데이터 세트 표현이다. 도 7은 다중 오디오 파일의 단일 이미지 표현(316)의 예시를 도시한다. 도시된 실시예에서, 단일 이미지 표현(316)은 개별적인 이미지 표현(316A, 316B, 316C, 및 316D)으로부터 생성된 조합된 이미지이다.
일부 실시예에서, 단일 이미지 표현(316)은 텍스처 특징(622)과 함께 추가된다. 도시된 실시예에서, 텍스처 특징(622)은 단일 이미지 표현(316)에 단일 행으로서 추가된다. 도 6으로 되돌아가서, 텍스처 특징(622)은 텍스처 특징 추출 모듈(620)에 의해 결정된다. 텍스처 특징(622)은 예를 들어, 오디오 파일에서 음악의 악기적 텍스처를 포함할 수 있다. 예를 들어, 텍스처 특징은 드럼, 현악기 등과 같은 다른 악기로부터 특징을 포함할 수 있다.
특정 실시예에서, 텍스처 특징 추출 모듈(620)은 오디오 파일 데이터(312)로부터 텍스처 특징(622)을 추출한다. 텍스처 특징 추출 모듈(620)은 예를 들어, 규칙 기반 방법, 머신 러닝 알고리즘 또는 모델, 신경망, 또는 오디오 파일 데이터(312)로부터 텍스처 특징을 결정하기 위한 다른 특징 추출 기법을 실행할 수 있다. 일부 실시예에서, 텍스터 특징 추출 모듈(620)은 이미지 표현(들)(316)(예를 들어, 다중 이미지 표현 또는 단일 이미지 표현)로부터 텍스처 특징(622)을 추출할 수 있다. 예를 들어, 텍스처 특징 추출 모듈(620)은 이미지 표현(들)(316)으로부터 텍스처 특징(622)을 추출하도록 (이미지 기반 머신 러닝 알고리즘 또는 모델과 같은) 이미지 기반 분석을 실행할 수 있다.
단일 이미지 표현(316)에 대한 텍스처 특징(622)의 추가는 오디오 파일의 MIDI 표현 또는 피아노 롤 표현에서 일반적으로 이용가능하지 않은 추가 정보를 단일 이미지 표현에 제공한다. 일부 실시예에서, (도 7에 도시된) 단일 이미지 표현(316)에서 텍스처 특징(622)을 갖는 행은 인간 판독가능할 필요가 없을 수 있다. 예를 들어, 텍스처 특징(622)은 음악 생성 시스템에서 구현을 위해 기계 판독가능할 필요만이 있을 수 있다. 특정 실시예에서, 텍스처 특징(622)은 단일 이미지 표현의 이미지 기반 분석에서 사용을 위해 단일 이미지 표현(316)에 추가된다. 예를 들어, 텍스처 특징(622)은 아래에 기재된 바와 같이, 음악의 선택에 사용된 이미지 기반 머신 러닝 알고리즘 또는 모델에 의해 사용될 수 있다. 일부 실시예에서, 텍스처 특징(622)은 아래에 기재된 바와 같이 규칙 기반 선택에서 예를 들어, 음악의 선택 동안 무시될 수 있다.
도시된 실시예에서 도 3으로 되돌아가서, 이미지 표현(들)(316)(예를 들어, 다중 이미지 표현 또는 단일 이미지 표현)이 음악 선택 모듈(320)에 제공된다. 음악 선택 모듈(320)은 음악 생성기 모듈(160)에서 조합될 오디오 파일 또는 오디오 파일의 부분을 선택할 수 있다. 특정 실시예에서, 음악 선택 모듈(320)은 음악 생성기 모듈(160)에 의한 조합을 위해 오디오 파일 또는 오디오 파일의 부분을 검색하고 선택하도록 규칙 기반 방법을 적용한다. 도 3에 도시된 바와 같이, 음악 선택 모듈(320)은 저장된 규칙 세트(들)(120)로부터 규칙 기반 방법을 위한 규칙에 접근한다. 예를 들어, 음악 선택 모듈(320)에 의해 접근된 규칙은 작곡 규칙 또는 음 조합 규칙과 같은 그러나 그로 한정되지 않는 조사 및 선택을 위한 규칙을 포함할 수 있다. 이미지 표현(들)(316)에 대해 규칙을 적용하는 것은 컴퓨터 장치 상에 이용가능한 그래픽 처리를 사용하여 실행될 수 있다.
예를 들어, 다양한 실시예에서, 음 조합 규칙은 벡터 및 행렬 계산으로서 표현될 수 있다. 그래픽 처리 유닛은 일반적으로 벡터 및 행렬 계산을 하는 것에 대해 최적화된다. 예를 들어, 하나의 피치 단계가 떨어진 음은 일반적으로 불협화음이고 자주 회피될 수 있다. 이와 같은 음은 규칙에 기반해서 부가적으로 레이어드된 이미지(또는 대형 이미지의 세그먼트)에서 이웃하는 픽셀을 검색함으로써 발견될 수 있다. 그러므로, 다양한 실시예에서, 개시된 모듈은 컴퓨팅 장치의 그래픽 프로세서 상에 개시된 동작의 전부 또는 일부를 수행하도록 커널을 적용할 수 있다.
일부 실시예에서, 위에 기재된 바와 같은 이미지 표현에서 피치의 밴딩은 오디오의 고대역 또는 저대역 필터링의 구현을 위한 그래픽 처리의 사용을 허용한다. 임계값 아래의 픽셀 값을 제거하는 것(예를 들어, 여과하는 것)은 고대역 필터링을 시뮬레이팅할 수 있는 한편, 임계값 위의 픽셀 값을 제거하는 것은 저대역 필터링을 시뮬레이팅할 수 있다. 예를 들어, 위의 밴딩 예시에서, 64보다 낮은 픽셀값을 여과(제거)하는 것은 예시에서 옥타브 0 및 옥타브 1을 제거함으로써 B1에서 셸프를 갖는 고대역 필터를 적용하는 것과 유사한 효과를 가질 수 있다. 따라서, 각각의 오디오 파일 상의 필터의 사용은 오디오 파일의 이미지 표현에 규칙을 적용함으로써 효과적으로 시뮬레이팅될 수 있다.
다양한 실시예에서, 오디오 파일이 음악을 생성하도록 함께 레이어드될 때, 특정된 오디오 파일의 피치는 변경될 수 있다. 피치를 변경하는 것은 훨씬 더 광범위의 가능한 성공적 조합 및 조합을 위한 검색 공간 모두를 이용할 수 있게 할 수 있다. 예를 들어, 각각의 오디오 파일은 12개의 다른 피치 시프트된 키에서 테스트될 수 있다. 필요하다면, 이미지를 파싱하고 옥타브 시프트에 대해 조절할 때 이미지 표현에서 행 순서를 상쇄하는 것은 이들 조합을 통한 최적화된 검색을 허용할 수 있다.
특정 실시예에서, 음악 선택 모듈(320)은 음악 생성기 모듈(160)에 의한 조합을 위해 오디오 파일 또는 오디오 파일의 부분을 검색하고 선택하도록 이미지 표현(들)(316) 상에 머신 러닝 알고리즘 또는 모델을 실행할 수 있다. 머신 러닝 알리고즘/모델은 예를 들어, 알고리즘의 훈련에 기반해 이미지를 분류하는 심층 학습 신경망 또는 다른 머신 러닝 알고리즘을 포함할 수 있다. 그러한 실시예에서, 음악 선택 모듈(320)은 소망하는 음악적 특성을 제공하는 오디오 파일의 조합 및 시퀀스에 기반해서 훈련된 하나 이상의 머신 러닝 모델을 포함한다.
일부 실시예에서, 음악 선택 모듈(320)은 출력 음악 콘텐츠의 선택 동안 계속적으로 학습하는 머신 러닝 모델을 포함한다. 예를 들어, 머신 러닝 모델은 사용자 입력 또는 머신 러닝 모델에 의해 실행된 분류 파라미터를 조절하도록 사용될 수 있는 출력 음악 콘텐츠의 특성을 반영하는 다른 입력을 받아들일 수 있다. 규칙 기반 방법과 유사하게, 머신 러닝 모델은 컴퓨터 장치 상의 그래픽 처리 유닛을 사용하여 실행될 수 있다.
일부 실시예에서, 음악 선택 모듈(320)은 원칙 기반 방법 및 머신 러닝 모델의 조합을 실행한다. 하나의 고려가능한 실시예에서, 머신 러닝 모델은 검색이 규칙 기반 방법을 사용하여 실행되는 곳을 조합하기 위해 음악 콘텐츠에 대한 검색을 시작하도록 오디오 파일과 이미지 표현의 조합을 찾도록 훈련된다. 일부 실시예에서, 음악 선택 모듈(320)은 음악 생성기 모듈(160)에 의한 조합을 위해 선택된 음악에서 화음 및 리듬 규칙 일관성에 대해 테스트한다. 예를 들어, 음악 선택 모듈(320)은 아래 기재된 바와 같이, 음악 생성기 모듈(160)에 선택된 오디오 파일을 제공하기 전에 선택된 오디오 파일(322)에서 화음 및 리듬에 대해 테스트할 수 있다.
도 3의 도시된 실시예에서, 위에 기재된 바와 같이 음악 선택 모듈(320)에 의해 선택된 음악이 선택된 오디오 파일(322)로서 음악 생성기 모듈(160)에 제공된다. 선택된 오디오 파일(322)은 여기 기재된 바와 같이 출력 음악 콘텐츠(140)를 생성하도록 음악 생성기 모듈(160)에 의해 조합된 완전하거나 부분적인 오디오 파일을 포함할 수 있다. 일부 실시예에서, 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)를 생성하기 위해 선택된 오디오 파일(322)에 적용된 규칙을 검색하도록 저장된 규칙 세트(들)에 접근한다. 음악 생성기 모듈(160)에 의해 검색된 규칙은 음악 선택 모듈(320)에 의해 적용된 규칙과는 다를 수 있다.
일부 실시예에서, 선택된 오디오 파일(322)은 선택된 오디오 파일을 조합하기 위한 정보를 포함한다. 예를 들어, 음악 선택 모듈(320)에 의해 실행된 머신 러닝 모델은 어떻게 음악 콘텐츠가 조합할 음악의 선택에 더해서 조합되어야만 하는지를 설명하는 명령어를 출력에 제공할 수 있다. 그런 후에 이러한 명령어는 음악 생성기 모듈(160)에 제공될 수 있고 선택된 오디오 파일을 조합하기 위해 음악 생성기 모듈에 의해 실행될 수 있다. 일부 실시예에서, 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)를 종료하기 전에 화음 및 리듬 규칙 일관성에 대해 테스트한다. 그러한 테스트는 음악 선택 모듈(320)에 의해 실행된 테스트에 부가되거나 그를 대신할 수 있다.
음악 콘텐츠 생성을 위한 예시적인 제어
여기에 기재된 바와 같은 다양한 실시예에서, 음악 생성기 시스템은 다양한 파라미터에 기반해서 오디오 트랙을 선택하고 조합함으로써 출력 음악 콘텐츠를 자동으로 생성하도록 구성된다. 여기 기재된 바와 같이, 머신 러닝 모델(또는 다른 AI 기법)은 음악 콘텐츠를 생성하도록 사용된다. 일부 실시예에서, AI 기법은 특정 사용자를 위한 음악 콘텐츠를 고객맞춤화하도록 실행된다. 예를 들어, 음악 생성기 시스템은 음악 생성을 개인화하기 위한 다양한 유형의 적응적 제어를 실행할 수 있다. 음악 생성을 개인화하는 것은 AI 기법에 의한 콘텐츠 생성에 더해 작곡가 또는 청취자에 의한 콘텐츠 제어를 허용한다. 일부 실시예에서, 사용자는 그 자신의 제어 요소를 생성하고, 음악 생성기 시스템이 사용자에 의해 생성된 제어 요소의 사용자의 의도된 기능에 따라 출력 음악 콘텐츠를 생성하도록 (예를 들어, AI 기법을 사용하여) 이를 훈련할 수 있다. 예를 들어, 사용자는 제어 요소를 생성할 수 있고, 그런 후에 음악 생성기 시스템이 사용자의 선호도에 따라 음악에 영향을 주도록 이를 훈련한다.
다양한 실시예에서, 사용자에 의해 생성된 제어 요소는 분위기, 강도, 또는 장르와 같은 높은 수준의 제어이다. 그러한 사용자에 의해 생성된 제어 요소는 일반적으로 청취자의 개별적인 선호도에 기반한 주관적인 측정치이다. 일부 실시예에서, 사용자는 사용자에 의해 특정된 파라미터를 규정하도록 사용자에 의해 생성된 제어 요소를 라벨링한다. 음악 생성기 시스템은 다양한 음악 콘텐츠를 재생할 수 있고 사용자가 제어 요소를 사용하여 음악 콘텐츠에서 사용자에 의해 특정된 파라미터를 수정하는 것을 허용한다. 음악 생성기 시스템은 사용자에 의해 규정된 파라미터가 음악 콘텐츠에서 오디오 파라미터를 변경하는 방식을 학습하고 저장할 수 있다. 따라서, 나중에 플레이백 동안, 사용자에 의해 생성된 제어 요소는 사용자에 의해 조절될 수 있고 음악 생성기 시스템은 사용자에 의해 특정된 파라미터의 조절 레벨에 따라 음악 플레이백에서 오디오 파라미터를 조절한다. 일부 고려할만한 실시예에서, 음악 생성기 시스템은 또한 사용자에 의해 특정된 파라미터에 의해 설정된 사용자의 선호도에 따라 음악 콘텐츠를 선택할 수 있다.
도 8은 일부 실시예에 따라 음악 콘텐츠 생성에서 사용자에 의해 생성된 제어를 실행하도록 구성된 예시적인 시스템을 도시하는 블록도이다. 도시된 실시예에서, 시스템(800)은 음악 생성기 모듈(160) 및 사용자 인터페이스(UI) 모듈(820)을 포함한다. 다양한 실시예에서, 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)를 생성하기 위해 여기 기재된 기법을 실행한다. 예를 들어, 음악 생성기 모듈(160)은 저장된 오디오 파일(들)(810)에 접근하고 저장된 규칙 세트(들)(120)에 기반해 출력 음악 콘텐츠(140)를 생성할 수 있다.
다양한 실시예에서, 음악 생성기 모듈(160)은 UI 모듈(820)에 실행된 하나 이상의 UI 제어 요소(830)로부터 입력에 기반해 음악 콘텐츠를 수정한다. 예를 들어, 사용자는 UI 모듈(820)과의 상호작용 동안 제어 요소(들)(830)의 레벨을 조절할 수 있다. 제어 요소의 예시는 슬라이더, 다이얼, 버튼, 또는 손잡이를 포함하지만 그로 한정되지 않는다. 그런 후에 제어 요소(들)의 레벨은 제어 요소 레벨(들)(832)을 설정하고, 이는 음악 생성기 모듈(160)에 제공된다. 그런 후에 음악 생성기 모듈(160)은 제어 요소 레벨(들)(832)에 기반해서 출력 음악 콘텐츠(140)를 수정할 수 있다. 예를 들어, 음악 생성기 모듈(160)은 제어 요소 레벨(들)(830)에 기반해서 출력 음악 콘텐츠(140)를 수정하도록 AI 기법을 실행할 수 있다.
특정 실시예에서, 제어 요소(들)(830) 중 하나 이상은 사용자에 의해 정의된 제어 요소이다. 예를 들어, 제어 요소는 작곡가 또는 청취자에 의해 정의될 수 있다. 그러한 실시예에서, 사용자는, 사용자가 출력 음악 콘텐츠(140)를 제어하도록 실행하기 원하는 파라미터를 특정하는 UI 제어 요소를 생성하고 라벨링할 수 있다(예를 들어, 사용자는 출력 음악 콘텐츠(140)의 제어에서 사용자에 의해 특정된 파라미터를 제어하기 위한 제어 요소를 생성한다).
다양한 실시예에서, 음악 생성기 모듈(160)은 사용자에 의해 생성된 제어 요소로부터 입력에 기반해 특정된 방식으로 출력 음악 콘텐츠(140)에 영향을 미치도록 학습하거나 훈련될 수 있다. 일부 실시예에서, 음악 생성기 모듈(160)은 사용자에 의해 설정된 사용자에 의해 생성된 제어 요소의 레벨에 기반해서 출력 음악 콘텐츠(140)에서 오디오 파라미터를 수정하도록 훈련된다. 음악 생성기 모듈(160)을 훈련하는 것은 예를 들어, 출력 음악 콘텐츠(140)에서 오디오 파라미터와 사용자에 의해 생성된 제어 요소의 레벨 사이의 관계를 결정하는 것을 포함할 수 있다. 그런 후에 출력 음악 콘텐츠(140)에서 오디오 파라미터와 사용자에 의해 생성된 제어 요소의 레벨 사이의 관계는 사용자에 의해 생성된 제어 요소의 입력 레벨에 기반해 출력 음악 콘텐츠(140)를 수정하도록 음악 생성기 모듈(160)에 의해 사용될 수 있다.
도 9는 일부 실시예에 따라 사용자 생성된 제어 요소에 기반해 음악 생성기 모듈(160)을 훈련시키기 위한 방법의 흐름도를 도시한다. 방법(900)은 사용자가 910에서 제어 요소를 생성하고 라벨링하는 것으로 시작한다. 예를 들어, 위에 기재된 바와 같이, 사용자는 음악 생성기 모듈(160)에 의해 생성된 출력 음악 콘텐츠(140)에서 사용자에 의해 특정된 파라미터를 제어하기 위한 UI 제어 요소를 생성하고 라벨링할 수 있다. 다양한 실시예에서, UI 제어 요소의 라벨은 사용자에 의해 특정된 파라미터를 기재한다. 예를 들어, 사용자는, 생성된 음악 콘텐츠에서 (사용자에 의해 규정된 바와 같은) 애티튜드(attitude)를 제어하기를 원함을 특정하기 위해 제어 요소를 “애티튜드”로서 라벨링할 수 있다.
UI 제어 요소의 생성 후에, 방법(900)은 플레이백 세션(915)으로 이어진다. 플레이백 세션(915)은 사용자에 의해 생성된 UI 제어 요소의 레벨에 기반해 오디오 파라미터를 수정하는 방법을 시스템(예를 들어, 음악 생성기 모듈(160))에 훈련시키도록 사용될 수 있다. 플레이백 세션(915)에서, 오디오 트랙은 920에서 재생된다. 오디오 트랙은 장치에 저장되거나 장치에 의해 접근되는 오디오 파일로부터 음악의 루프 또는 샘플일 수 있다.
930에서, 사용자는 재생되는 오디오 트랙에서 사용자에 의해 특정된 파라미터의 그/그녀의 해석에 입력을 제공한다. 예를 들어, 특정 실시예에서, 사용자는 오디오 트랙을 듣고 사용자가 믿는 사용자에 의해 특정된 파라미터의 레벨을 선택하고, 오디오 트랙에 음악을 기재하는 할 것을 요청받는다. 사용자에 의해 특정된 파라미터의 레벨은 예를 들어, 사용자에 의해 생성된 제어 요소를 사용하여 선택될 수 있다. 이러한 과정은 사용자에 의해 특정된 파라미터의 레벨에 대해 다중 데이터 지점을 생성하도록 플레이백 세션(915)에서 다중 오디오 트랙에 대해 반복될 수 있다.
일부 고려할만한 실시예에서, 사용자는 단일 시간에 다중 오디오 트랙을 듣고 사용자에 의해 규정된 파라미터에 기반해 오디오 트랙을 비교하여 평가하도록 요청받을 수 있다. 예를 들어, “애티튜드”를 규정하는 사용자에 의해 생성된 제어의 예시에서, 사용자는 다중 오디오 트랙을 듣고 어느 오디오 트랙이 더 많은 “애티튜드”를 갖는지 그리고/또는 어느 오디오 트랙이 더 적은 “애티튜드”를 갖는지를 선택할 수 있다. 사용자에 의해 이루어진 선택의 각각은 사용자에 의해 특정된 파라미터의 레벨에 관한 데이터 지점일 수 있다.
플레이백 세션(915)이 완료된 후에, 플레이백 세션으로부터 오디오 트랙에서 오디오 파라미터의 레벨이 940에서 평가된다. 오디오 파라미터의 예시는 볼륨, 톤, 베이스, 트레블, 에코 등을 포함하지만 그로 한정되지 않는다. 일부 실시예에서, 오디오 트랙에서 오디오 파라미터의 레벨은 오디오 트랙이 재생됨에 따라(예를 들어, 플레이백 세션(915) 동안) 평가된다. 일부 실시예에서, 오디오 파라미터는 플레이백 세션(915)이 끝난 후에 평가된다.
다양한 실시예에서, 오디오 트랙에서 오디오 파라미터는 오디오 트랙에 대한 메타데이터로부터 평가된다. 예를 들어, 오디오 분석 알고리즘이 (짧게 미리 레코딩된 음악 파일일 수 있는) 오디오 트랙에 대해 (MIDI와 같은) 메타데이타 또는 상징적인 음악 데이터를 생성하도록 사용될 수 있다. 메타데이터는 예를 들어, 레코딩에 존재하는 음 피치, 비트 당 온셋, 피치된 사운드 대 피치되지 않은 사운드의 비율, 볼륨 레벨 및 사운드의 다른 수량화할 수 있는 특성을 포함할 수 있다.
950에서, 사용자에 의해 특정된 파라미터에 관해 사용자에 의해 선택된 레벨과 오디오 파라미터 사이의 상관관계가 결정된다. 사용자에 의해 특정된 파라미터에 관해 사용자에 의해 선택된 레벨이 제어 요소의 레벨에 상응함에 따라, 사용자에 의해 특정된 파라미터에 관해 사용자에 의해 선택된 레벨과 오디오 파라미터 사이의 상관관계가 960에서 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계를 규정하도록 사용될 수 있다. 다양한 실시예에서, 사용자에 의해 특정된 파라미터에 관해 사용자에 의해 선택된 레벨과 오디오 파라미터 사이의 상관관계 및 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 AI 기법(예를 들어, 회귀 모델 또는 머신 러닝 알고리즘)을 사용하여 결정된다.
도 8로 되돌아가서, 그런 후에 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 사용자에 의해 생성된 제어 요소(830)로부터 수신된 제어 요소 레벨(832)의 입력에 기반해서 출력 음악 콘텐츠(140)에서 오디오 파라미터를 조절하는 방법을 결정하도록 음악 생성기 모듈(160)에 의해 실행될 수 있다. 특정 실시예에서, 음악 생성기 모듈(160)은 사용자에 의해 생성된 제어 요소(830)로부터 수신된 제어 요소 레벨(832)의 입력 및 관계에 기반해 출역 음악 콘텐츠(140)를 생성하도록 머신 러닝 알고리즘을 실행한다. 예를 들어, 머신 러닝 알고리즘은 어떻게 오디오 트랙의 메타데이터 기술이 레코딩에 걸쳐 변하는지를 분석할 수 있다. 머신 러닝 알고리즘은 예를 들어, 신경망, 마르코프 모델, 또는 동적 베이지안 네트워크를 포함할 수 있다.
여기 기재된 바와 같이, 머신 러닝 알고리즘은 그 지점까지 음악의 메타데이터가 제공될 때 다가오는 음악의 프래그먼트의 메타데이터를 예측하도록 훈련될 수 있다. 음악 생성기 모듈(160)은 다음에 올 것으로 예측된 메타데이터에 가장 가깝게 일치하는 특성을 갖는 것에 대해 미리 레코딩된 오디오 파일의 풀을 조사함으로써 예측 알고리즘을 사용하고 실행할 수 있다. 다음에 재생할 가장 가깝게 일치하는 오디오 파일을 선택하는 것은 예측 알고리즘이 훈련되었던 예시 레코딩과 유사한 음악 특성의 순차적 진행을 갖는 출력 음악 콘텐츠를 생성하는 것을 돕는다.
일부 실시예에서, 예측 알고리즘을 사용하는 음악 생성기 모듈(160)의 파라미터의 제어는 예측 알고리즘 자체에 포함될 수 있다. 그러한 실시예에서, 알고리즘에 대한 입력 및 예측이 이러한 파라미터에 기반해 변함에 따라, 일부 미리 규정된 파라미터는 음악적 메타데이터와 함께 사용될 수 있다. 대안적으로, 파라미터의 제어는 그들을 수정하도록 예측에 적용될 수 있다. 하나의 예로서, 순차적으로, 예측 알고리즘에 의해 다음에 올 것으로 예측된 가장 가까운 음악 프래그먼트를 선택하고 종단간 파일의 오디오를 추가함으로써, 생성적 작곡이 이루어진다. 일부 지점에서, 청취자는 (비트 제어 요소 당 온셋과 같은) 제어 요소 레벨을 증가시킬 수 있고 예측 모델의 출력은 예측된 ‘비트 당 온셋’ 데이터 필드를 증가시킴으로써 수정된다. 작곡에 추가될 다음의 오디오 파일을 선택할 때, 더 높은 비트 당 온셋 특성을 갖는 것이 이러한 시나리오에서 선택되는 경향이 더 있을 것이다.
다양한 일시예에서, 음악 콘텐츠의 메타데이터 기술을 사용하는 음악 생성기 모듈(160)과 같은 생성적 시스템은 각각의 음악 프래그먼트에 대한 메타데이터에서 수백 또는 수천의 데이터 필드를 사용할 수 있다. 더 많은 가변성을 부여하기 위해, 다중 동시 트랙, 각기 피처링이 다른 악기 및 사운드 유형이 사용될 수 있다. 이들 예에서, 예측 모델은 각기 청취 경험에 인지가능한 효과를 갖는, 음악 특성을 나타내는 수천 개의 데이터 필드을 가질 수 있다. 그러한 예에서 음악을 제어하는 청취자에 있어서, 예측 모델의 출력의 각각의 데이터 필드를 수정하기 위한 인터페이스가 사용되고, 수천 개의 제어 요소를 생성할 수 있다. 대안적으로, 다중 데이터 필드는 단일 제어 요소로서 조합되고 노출될 수 있다. 더 많은 음악 특성이 단일 제어 요소에 의해 영향받음에 따라, 제어 요소는 특정 음악 특성으로부터 더 추상적이되고 이들 제어의 라벨링은 주관적이 된다. 이러한 방식으로, 1차 제어 요소 및 하위 파라미터 제어 요소(아래에 기재된 바와 같음)는 출력 음악 콘텐츠(140)의 동적이고 개인화된 제어에 대해 실행될 수 있다.
여기 기재된 바와 같이, 사용자는 그들 자신만의 제어 요소를 특정하고 제어 요소의 사용자 조절에 기반해 작동하는 방법에 관해 음악 생성기 모듈(160)을 훈련시킬 수 있다. 이러한 과정은 편향 및 복잡성을 감소시킬 수 있고, 데이터 필드는 청취자로부터 완전히 숨겨질 수 있다. 예를 들어, 일부 실시예에서, 청취자에는 사용자 인터페이스 상에 사용자에 의해 생성된 제어 요소가 제공된다. 그런 후에 청취자에는 짧은 음악 클립이 제시되고, 그에 관해 그들이 최고라고 믿는 제어 요소의 레벨을 설정하고 듣고 있는 음악을 기재하도록 요청받는다. 이러한 과정을 반복함으로써, 음악 상에 소망하는 제어의 효과를 회귀적으로 모델링하도록 사용될 수 있는 다중 데이터 지점이 생성된다. 일부 실시예에서, 이들 데이터 지점은 예측 모델에서 추가 입력으로서 부가될 수 있다. 그런 후에 예측 모델은 또한 특정 레벨로 설정되는 제어 요소의 기대되는 거동에 일치하는 동안 훈련되는 시퀀스와 유사한 작곡 시퀀스를 생성할 음악 특성을 예측하려고 노력할 수 있다. 대안적으로, 회귀 모델의 형태로 제어 요소 맵퍼는 예측 모델을 재훈련하지 않고 제어 요소에 대해 예측 수정자를 맵핑하도록 사용될 수 있다.
일부 실시예에서, 소정 제어 요소에 대한 훈련은 전역적 훈련(예를 들어, 다중 사용자 계정으로부터 피드백에 기반한 훈련) 및 국지적 훈련(예를 들어, 현재 사용자의 계정으로부터 피드백에 기반한 훈련) 모두를 포함할 수 있다. 일부 실시예에서, 작곡가에 의해 제공된 음악적 요소의 하위 세트에 특정된 제어 요소의 세트가 생성될 수 있다. 예를 들어, 시나리오는 아티스트가 루프 팩을 생성하고 그런 후에 루프를 사용하여 이전에 생성한 연주 또는 작곡의 예시를 사용하여 음악 생성기 모듈(160)을 훈련시키는 것을 포함할 수 있다. 이러한 예시의 패턴은 회귀 또는 신경망 모델로 모델링될 수 있고 유사한 패턴을 갖는 신규한 음악의 구성을 위한 규칙을 생성하도록 사용될 수 있다. 이러한 규칙은 청취자가 음악 생성기 모듈(160)을 사용하기 시작하기 전에, 작곡가가 수동으로 오프라인으로 수정하거나, 청취자가 듣는 동안 조절하는 제어 요소로서 파라미터화되고 노출될 수 있다. 작곡가의 기분이 소망하는 제어의 효과와 반대인 예시는 또한 부정적인 강화요인에 대해 사용될 수 있다.
일부 실시예에서, 예시의 음악에서 패턴을 사용하는 것에 더해서, 음악 생성기 모듈(160)은 청취자가 생성된 음악을 듣기 시작하기 전에, 작곡가로부터의 입력에 상응하는, 그것이 생성하는 음악에서 패턴을 발견할 수 있다. 작곡가는 패턴의 긍정적인 강화에 대해 찬성 제어 요소를 탭핑(tapping)거나 부정적인 강화에 대해 반대 제어 요소를 탭핑하는 것과 같은 직접 피드백(아래에 기재된 바와 같음)으로 이를 수행할 수 있다.
다양한 실시예에서, 음악 생성기 모듈(160)은 작곡가가 음악 생성기 모듈이 학습한 제어 요소의 아래 기재된 자신만의 하위 파라미터 제어 요소를 생성하는 것을 허용할 수 있다. 예를 들어, “강도”에 관한 제어 요소는 비트 당 음 온셋의 개수 및 연주하는 악기의 텍스처 품질에 관련해 학습된 패턴으로부터 1차 제어 요소로서 생성될 수 있다. 그런 후에 작곡가는 “리듬 강도” 제어 요소 및 텍스처 패턴을 위한 “텍스처 강도” 제어 요소와 같은 음 온셋에 관련한 패턴을 선택함으로써 두 개의 하위 파라미터 요소를 생성할 수 있다. 하위 파라미터 제어 요소의 예시는 보컬을 위한 제어 요소, 특정 주파수 범위(예를 들어, 베이스)의 강도, 복잡성, 템포 등을 포함한다. 이러한 하위 파라미터 제어 요소는 에너지와 같은 보다 추상적인 제어 요소(예를 들어, 1차 제어 요소)에 관련해서 사용될 수 있다. 이러한 작곡가 스킬 제어 요소는 여기 기재된 사용자에 의해 생성된 제어와 유사하게 작곡가에 의해 음악 생성기 모듈(160)에 대해 훈련될 수 있다.
여기 기재된 바와 같은, 사용자에 의해 생성된 제어 요소로부터 입력에 기반한 오디오 파라미터를 제어하기 위한 음악 생성기 모듈(160)의 훈련은 개별적인 제어 요소가 다른 사용자에 대해 실행되는 것을 허용한다. 예를 들어, 하나의 사용자는 증가된 애티튜드를 증가된 베이스 콘텐츠와 연관시킬 수 있는 한편, 또 다른 사용자는 증가된 애티튜드를 특정 유형의 보컬 또는 특정 템포 범위와 연관시킬 수 있다. 음악 생성기 모듈(160)은 특정 사용자에 관한 음악 생성기 모듈의 훈련에 기반해서 애티튜드의 다른 사양에 대해 오디오 파라미터를 수정할 수 있다. 일부 실시예에서, 개인화된 제어는 전역적 규칙 또는 다수의 사용자에게 동일한 방식으로 실행되는 제어 요소와 조합해서 사용될 수 있다. 전역적 피드백과 국지적 피드백 또는 전역적 제어와 국지적 제어의 조합은 수반되는 개인에 대해 특화된 제어를 양질의 음악 제작에 제공할 수 있다.
다양한 실시예에서, 도 8에 도시된 바와 같이, 하나 이상의 UI 제어 요소(830)는 UI 모듈(820)에서 실행된다. 위에 기재된 바와 같이, 사용자는 출력 음악 콘텐츠(140)를 수정하도록 UI 모듈(820)과의 상호작용 동안 제어 요소(들)(830)를 사용하여 제어 요소 레벨(들)(832)을 조절할 수 있다. 특정 실시예에서, 제어 요소(들)(830) 중 하나 이상은 시스템 규정된 제어 요소이다. 예를 들어, 제어 요소는 시스템(800)에 의해 제어가능한 파라미터로서 규정될 수 있다. 그러한 실시예에서, 사용자는 시스템에 의해 규정된 파라미터에 따라 출력 음악 콘텐츠(140)를 수정하도록 시스템 규정된 제어 요소를 조절할 수 있다.
특정 실시예에서, 시스템 규정된 UI 제어 요소(예를 들어, 손잡이 또는 슬라이더)는 사용자가 음악 생성기 모듈(160)에 의해 자동으로 생성되는 출력 음악 콘텐츠(140)의 추상적 파라미터를 제어하는 것을 허용한다. 다양한 실시예에서, 추상적 파라미터는 1차 제어 요소 입력으로서 작용한다. 추상적 파라미터의 예시는 강도, 복잡성, 분위기, 장르, 및 에너지 레벨을 포함하지만 그로 한정되지 않는다. 일부 실시예에서, 강도 제어 요소는 병합된 저주파수 루프의 개수를 조절할 수 있다. 복잡성 제어 요소는 오버레이된 트랙의 개수를 안내할 수 있다. 분위기 제어 요소와 같은 다른 제어 요소는 침착함 내지 행복함의 범위에 있을 수 있고, 예를 들어, 다른 속성 가운데 재생되는 음악의 키에 영향을 미친다.
다양한 실시예에서, 시스템에 의해 규정된 UI 제어 요소(예를 들어, 손잡이 또는 슬라이더)는 사용자가 음악 생성기 모듈(160)에 의해 자동으로 생성된 출력 음악 콘텐츠(140)의 에너지 레벨을 제어하는 것을 허용한다. 일부 실시예에서, 제어 요소(예를 들어, “에너지”)의 라벨은 크기, 색상, 또는 에너지 레벨을 조절하는 사용자 입력을 반영하는 다른 특성에서 변할 수 있다. 일부 실시예에서, 사용자가 제어 요소를 조절함에 따라, 사용자가 제어 요소를 해제할 때까지(예를 들어, 마우스 클릭을 해제하거나 터치스크린으로부터 손가락을 제거할 때까지) 제어 요소의 현재 레벨은 출력될 수 있다.
시스템에 의해 규정된 바와 같은 에너지는 다중의 더 많은 특정 음악 속성에 관련된 추상적 파라미터일 수 있다. 예시로서, 에너지는 다양한 실시예에서 템포에 관련될 수 있다. 예를 들어, 에너지 레벨에서 변경은 분당 비트의 선택된 수(예를 들어, ~분당 6 비트)의 템포 변화와 연관될 수 있다. 일부 실시예에서, (템포와 같은) 하나의 파라미터에 대해 소정 범위 내에서, 음악 생성기 모듈(160)은 다른 파라미터를 변경함으로써 음악 변화를 답사할 수 있다. 예를 들어, 음악 생성기 모듈(160)은 빌드업 및 드롭을 생성하고, 텐션을 생성하고, 동시에 레이어드되는 트랙의 개수를 변경하고, 키를 변경하고, 보컬을 추가하거나 제거하고, 베이스를 추가하거나 제거하고, 다른 멜로디를 재생하는 등을 할 수 있다.
일부 실시예에서, 하나 이상의 하위 파라미터 제어 요소는 제어 요소(들)(830)로서 실행된다. 하위 파라미터 제어 요소는 에너지 제어 요소와 같은 1차 제어 요소에 병합되는 속성의 더 많은 제어를 허용할 수 있다. 예를 들어, 에너지 제어 요소는 타악기의 레이어의 개수 및 사용된 보컬의 양을 수정할 수 있지만, 분리 제어 요소는 모든 제어 요소가 반드시 독립적이지 않은 바와 같이 이들 하위 파라미터의 직접 제어를 감안한다. 이러한 방식으로, 사용자는 사용하기를 원하는 제어의 특수함의 레벨을 선택할 수 있다. 일부 실시예에서, 하위 파라미터 제어 요소는 위에 기재된 바와 같이, 사용자에 의해 생성된 제어 요소에 대해 실행될 수 있다. 예를 들어, 사용자는 또 다른 사용자에 의해 특정된 파라미터의 하위 파라미터를 특정하는 제어 요소를 생성하고 라벨링할 수 있다.
일부 실시예에서, 사용자 인터페이스 모듈(820)은 사용자에게 하나 이상의 하위 파라미터 사용자 제어 요소를 보이도록 UI 제어 요소(830)를 확장하는 옵션을 허용한다. 부가적으로, 특정 아티스트는 높은 레벨 제어 요소(예를 들어, 에너지 슬라이더)의 사용자 제어 아래에 음악 작곡을 안내하도록 사용된 속성 정보를 제공할 수 있다. 예를 들어, 아티스트는 아티스트로부터의 트랙 및 음악 작곡을 위한 규칙을 “아티스트 팩”에 제공할 수 있다. 아티스트는 하위 파라미터 사용자 제어 요소를 위한 값을 제공하도록 아티스트 인터페이스를 사용할 수 있다. 예를 들어, DJ는 청취자가 더 많거나 더 적은 리듬 및 드럼을 병합하는 것을 허용하도록 사용자에게 노출된 제어 요소로서 리듬 및 드럼을 가질 수 있다. 일부 실시예에서, 여기 기재된 바와 같이, 아티스트 또는 사용자는 자신만의 고객 정의 제어 요소를 생성할 수 있다.
다양한 실시예에서, 인간 개입 루프 생성적 시스템은 개인의 목적을 위해 생성된 음악의 품질 및 피트(fit)를 잠재적으로 증가시키기 위한 인간 개입 및 제어의 도움으로 아티팩트를 생성하도록 사용될 수 있다. 음악 생성기 모듈(160)의 일부 실시예에 있어서, 청취자는 UI 모듈(820)에서 실행된 인터페이스 제어 요소(830)를 통해 생성적 과정을 제어함으로써 청취자-작곡가가 될 수 있다. 이러한 제어 요소의 설계 및 실행은 청취자와 개인을 위한 작곡가의 역할 사이의 균형에 영향을 줄 수 있다. 예를 들어, 매우 구체적이고 기술적인 제어 요소는 생성적 알고리즘의 영향을 감소시킬 수 있고 사용자의 손에 보다 창의적인 제어를 맡기는 한편 상호작용에 대한 더 많은 도움 및 관리할 기술적인 스킬을 요구한다.
반대로, 더 높은 레벨 제어 요소는 요구되는 상호작용의 노력 및 시간을 감소시키는 한편 창의적인 제어를 감소시킬 수 있다. 예를 들어, 더 많은 청취자 유형 역할을 소망하는 개인에 있어서, 여기 기재된 바와 같은, 1차 제어 요소가 바람직할 수 있다. 1차 제어 요소는 예를 들어, 분위기, 강도 또는 장르와 같은 추상적인 파라미터에 기반할 수 있다. 음악에 관한 이들 추상적인 파라미터는 종종 개인적으로 해석되는 주관적인 측정치일 수 있다. 예를 들어, 다수의 경우에, 청취 환경은 어떻게 청취자가 음악을 설명하는지 관해 효과를 가진다. 따라서, 청취자가 파티에서 “릴랙싱”으로 부를 수 있는 음악은 명상 세션 동안 지나치게 에너제틱하고 긴박할 수 있다.
일부 실시예에서, 하나 이상의 UI 제어 요소(들)(830)는 출력 음악 콘텐츠(140) 상에 사용자 피드백을 수용하도록 실행된다. 사용자 피드백 제어 요소는 예를 들어, 별점 평가, 찬성/반대 등을 포함할 수 있다. 다양한 실시예에서, 사용자 피드백은 사용자의 특정 취향 및/또는 다중 사용자에 대해 적용되는 더 많은 전역적 취향에 대해 시스템을 훈련하도록 사용될 수 있다. 찬성/반대(예를 들어, 긍정/부정) 피드백을 갖는 실시예에서, 피드백은 이분법적이다. 강한 긍정 반응 및 강한 부정 반응을 포함하는 이분법적 피드백은 제어 요소(들)(830)에 대해 긍정 강화 및 부정 강화를 제공하는 데에 효과적일 수 있다. 일부 고려할만한 실시예에서, 찬성/반대 제어 요소로부터 입력은 출력 음악 콘텐츠(140)를 제어하도록 사용될 수 있다(예를 들어, 찬성/반대 제어 요소는 그 자체로 출력을 제어하도록 사용된다). 예를 들어, 찬성 제어 요소는 현재 재생하는 출력 음악 콘텐츠(140)의 최대 반복을 수정하도록 사용될 수 있다.
일부 실시예에서, 각각의 오디오 파일에 대한 카운터는 오디오 파일의 섹션(예를 들어, 8 비트 세그먼트)이 최근에 몇 회 반복되었는지에 관해 추적한다. 일단 파일이 소망하는 임계값 위로 사용되면, 편향이 선택에 대해 적용될 수 있다. 이러한 편향은 점차로 시간에 걸쳐 영으로 돌아갈 수 있다. 음악의 소망하는 기능(예를 들어, 빌드업, 드롭, 고장, 인트로, 유지)을 설정하는 원칙에 의해 규정된 음악 섹션과 함께, 이러한 반복 카운터 및 편향은 음악을 일관성 있는 테마를 갖는 세그먼트로 형상화하도록 사용될 수 있다. 예를 들어, 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)의 오디오 콘텐츠가 섹션의 음악적 기능을 방해하지 않고 더 빠르게 변경하도록 고무되는 바와 같이 반대 프레스 상에 카운터를 증가시킬 수 있다. 유사하게, 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)의 오디오 콘텐츠가 더 긴 기간 동안 반복으로부터 편향되지 않는 바와 같이 찬성 프레스 상에 카운터를 감소시킬 수 있다. 임계가 도달되고 편향이 적용되기 전에, 음악 생성기 모듈(160)에서 다른 머신 러닝 및 규칙에 기반한 메커니즘은 여전히 다른 오디오 콘텐츠의 선택으로 이끌 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 사용자 피드백이 수용되는 시간 주위로 다양한 맥락적 정보(예를 들어, 도 1에 도시된 환경 정보(150))를 결정하도록 구성된다. 예를 들어, 사용자로부터 “찬성” 표시를 받은 것과 관련해서, 음악 생성기 모듈(160)은 환경 정보(150)로부터 날의 시간, 위치, 장치 속도, 생체 데이터(예를 들어, 심장박동 수) 등을 결정할 수 있다. 일부 실시예에서, 이러한 맥락적 정보는 사용자가 다양한 다른 맥락에서 선호하는 음악을 생성하도록 머신 러닝 모델을 훈련시키도록 사용될 수 있다(예를 들어, 머신 러닝 모델은 맥락 인식적이다).
다양한 실시예에서, 음악 생성기 모듈(160)은 환경의 현재 유형을 결정하고 다른 환경에서 동일한 사용자 조절에 대해 다른 작동을 취할 수 있다. 예를 들어, 음악 생성기 모듈(160)은 청취자가 “애티튜드” 제어 요소를 훈련시킬 때 환경 측정치 및 청취자 생체정보를 취할 수 있다. 훈련 동안, 음악 생성기 모듈(160)은 제어 요소의 부분으로서 이러한 측정치를 포함하도록 훈련된다. 이러한 예시에서, 청취자가 헬스장에서 고강도 운동을 할 때, “애티튜드” 제어 요소는 드럼 비트의 강도에 영향을 미칠 수 있다. 컴퓨터에 앉아 있을 때, “애티튜트” 제어 요소를 변경하는 것은 드럼 비트에 영향을 미치지 않을 수 있지만, 베이스 라인의 왜곡을 증가시킬 수 있다. 그러한 실시예에서, 단일 사용자 제어 요소는 규칙의 다른 세트 또는 다른 청취 환경에서 다르게 단독으로 또는 조합해서 사용되는 다르게 훈련된 머신 러닝 모델을 가질 수 있다.
맥락적 인식과는 대조적으로, 제어 요소의 기대된 거동이 정적이라면, 음악 생성기 모듈(160)이 사용되는 매 청취 맥락에 대해 다수의 제어가 필요해지거나 소망될 수 있는 경향이 있을 수 있다. 따라서, 일부 실시예에서, 개시된 기법은 단일 제어 요소를 다중 환경에 대한 기능에 제공할 수 있다. 다중 환경에 대해 단일 제어 요소를 실행하는 것은 제어 요소의 개수를 감소시킬 수 있고, 사용자 인터페이스를 더 단순하고 더 빠르게 검색되게 한다. 일부 실시예에서, 제어 요소 거동은 동적이게 구성된다. 제어 요소에 대한 역동성은 마이크로폰에 의해 기록된 사운드 레벨, 심장 박동 측정치, 날의 시간, 및 이동 속도 등과 같은 환경의 측정치를 사용하는 것에서 기인할 수 있다. 이러한 측정치는 제어 요소 훈련에 대한 추가적 입력으로서 사용될 수 있다. 따라서, 제어 요소와의 동일한 청취자 상호작용은 상호작용이 발생하는 환경적 맥락에 따라 잠재적으로 다른 음악적 효과를 가질 것이다.
일부 실시예에서, 위에 기재된 맥락적 인식 기능은 환경적 맥락에 기반해 생성적 과정을 변경하는 생성적 음악 시스템의 개념과는 다르다. 예를 들어, 이러한 기법은 환경적 맥락에 기반해 사용자 제어 요소의 효과를 수정할 수 있고, 이는 단독으로 또는 환경적 맥락 및 사용자 제어의 출력에 기반해서 음악을 생성하는 개념과 조합해서 사용될 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 정해진 목표를 달성하도록 생성된 출력 음악 콘텐츠(140)를 제어하도록 구성된다. 정해진 목표의 예시는 판매 목표, 심장 박동 또는 혈압과 같은 생체 목표, 및 주변 잡음 목표를 포함하지만 그로 한정되지 않는다. 음악 생성기 모듈(160)은 정해진 목표를 충족하기 위해 출력 음악 콘텐츠(140)를 생성하도록 여기 기재된 기법을 사용하여 수동으로(사용자에 의해 생성된) 또는 알고리즘적으로(시스템에 의해 규정된) 생성된 제어 요소를 수정하는 방법을 학습할 수 있다.
목표 상태는 측정가능한 환경 및 청취자가 달성하기를 원하는 청취자 상태일 수 있는 한편, 그 도움으로, 음악 생성기 모듈(160)로 음악을 들을 수 있다. 이러한 목표 상태는 청취자가 머무는 공간의 음향적 경험을 수정하는 음악을 통해 직접 영향받을 수 있거나, 초점을 고무하는 특정 음악과 같은 심리적 효과를 통해 영향받을 수 있다. 일 예시로서, 청취자는 달리기 동안 더 낮은 심장 박동을 갖는 목표를 설정할 수 있다. 이용가능한 제어 요소의 다른 상태 하에 청취자의 심장 박동을 기록함으로써, 음악 생성기 모듈(160)은, “애티튜드”로 명명되는 제어 요소가 낮은 레벨로 설정될 때 청취자의 심장 박동이 일반적으로 감소하는 것을 습득했다. 따라서, 청취자가 낮은 심장 박동을 달성하는 것을 돕기 위해, 음악 생성기 모듈(160)은 “애티튜드” 제어를 낮은 레벨로 자동화할 수 있다.
청취자가 특정 환경에서 기대하는 음악의 종류를 생성함으로써, 음악 생성기 모듈(160)은 특정 환경을 생성하는 것을 도울 수 있다. 예시는 심장 박동, 청취자의 물리적 공간에서 사운드의 전체 볼륨, 스토어에서 매출액 등을 포함한다. 일부 환경적 센서 및 상태 데이터는 목표 상태에 적합하지 않을 수 있다. 예를 들어, 날의 시간은 수면을 포함하는 목표 상태를 달성하기 위한 입력으로서 사용되는 환경 측정치일 수 있지만, 음악 생성기 모듈(160)은 날의 시간 그 자체를 제어하지 않을 수 있다.
다양한 실시예에서, 센서 입력은 제어 요소 맵퍼와 연결해제될 수 있는 한편, 상태 목표에 도달하려고 노력하는 동안, 센서는 계속해서 기록할 수 있고 대신에 실제 상태를 목표로 하는 목표 상태와 비교하기 위한 측정치를 제공할 수 있다. 목표 상태와 실제 환경적 상태 사이의 차이는 목표 상태를 달성하려고 노력하는 모드 동안에 제어 요소 맵퍼에서 맵핑을 조절할 수 있는 머신 러닝 알고리즘을 위한 보상 기능으로서 만들어질 수 있다. 알고리즘은 목표와 실제 환경 상태 사이의 차이를 감소시키도록 매핑을 조절할 수 있다.
음악 콘텐츠의 많은 생리적 심리적 효과가 있는 한편, 청취자가 특정 환경에서 기대하는 음악 콘텐츠를 생성하는 것은 청취자를 위한 환경을 생성하는 것을 항상 돕지 못할 수 있다. 일부 예에서, 목표로 하는 상태를 충족하는 것에 대해 어떠한 효과 또는 부정적인 효과도 발생하지 않을 수 있다. 일부 실시예에서, 음악 생성기 모듈(160)은 지난 결과에 기반해 음악 특성을 조절할 수 있는 한편, 변화가 임계를 충족하지 못하면 다른 방향으로 분기한다. 예를 들어, “애티튜드” 제어 요소를 감소하는 것이 청취자를 위해 더 낮은 심장 박동을 초래하지 않았다면, 음악 생성기 모듈(160)은 다른 제어 요소를 사용하여 새로운 전략을 전이하고 전개하거나, 회귀 또는 신경망 모델을 위한 긍정적 또는 부정적 강화로서 목표 변수의 실제 상태를 사용하여 새로운 제어 요소를 생성할 수 있다.
일부 실시예에서, 맥락이 특정 청취자에 대해 제어 요소의 기대되는 거동에 영향을 미치는 것으로 발견되면, 일부 특정 맥락에서 제어 요소에 의해 수정되는 데이터 지점(예를 들어, 오디오 파라미터)이 청취자에 대한 맥락에 관련됨을 함축할 수 있다. 그러한 바와 같이, 이들 데이터 지점은 환경적 변경을 생성하는 음악을 생성하려고 노력하기 위한 양호한 최초 지점을 제공할 수 있다. 예를 들어, 청취자가 기차역에 갔을 때 청취자가 “리듬” 제어 요소를 항상 수동으로 턴 업하면, 그때 음악 생성기 모듈(160)은 청취자가 기차역에 있음을 감지할 때, 이러한 제어 요소를 자동으로 증가시키기 시작할 수 있다.
여기서 기재된 바와 같은 일부 실시예에서, 음악 생성기 모듈(160)은 사용자의 기대에 일치하는 제어 요소를 실행시키도록 훈련된다. 음악 생성기 모듈(160)이 각각의 제어 요소에 대해 끝에서 끝으로(예를 들어, 제어 요소 레벨로부터 출력 음악 콘텐츠(140)로) 훈련되면, 각각의 제어 요소에 대한 훈련의 복잡성은 높아질 수 있고, 이는 훈련을 더 늦출 수 있다. 또한, 다중 제어 요소의 이상적인 조합의 효과를 확립하는 것은 어려울 수 있다. 그러나 각각의 제어 요소에 있어서, 음악 생성기 모듈(160)은 제어 요소에 기반해서 기대되는 음악적 변경을 수행하도록 이상적으로 훈련되어야만 한다. 예를 들어, 음악 생성기 모듈(160)은 “에너지”가 증가됨에 따라 리듬 밀도가 증가하도록 청취자에 의해 “에너지” 제어 요소에 대해 훈련될 수 있다. 청취자가 최종 출력 음악 콘텐츠(140)에 노출되고 음악 콘텐츠의 단지 개별적인 레이어에 노출되지 않기 때문에, 음악 생성기 모듈(160)은 제어 요소를 사용하여 최종 출력 음악 콘텐츠에 영향을 미치도록 훈련될 수 있다. 그러나 이는 특정 제어 설정에 있어서, 음악이 X처럼 들려야만하고, X처럼 들리는 음악을 생성하기 위해, 오디오 파일(Y)의 세트가 각각의 트랙 상에 사용되어야만 하는 것과 같은 다중 단계 문제가 될 수 있다.
특정 실시예에서, 교사/학생 프레임워크는 위의 기재된 문제를 다루기 위해 채택된다. 도 10은 일부 실시예에 따른 예시적인 교사/학생 프레임워크 시스템을 도시하는 블록도이다. 도시된 실시예에서, 시스템(1000)은 교사 모델 실행 모듈(1010) 및 학생 모델 실행 모듈(1020)을 포함한다.
특정 실시예에서, 교사 모델 실행 모듈(1010)은 훈련된 교사 모델을 실행한다. 예를 들어, 훈련된 교사 모델은 최종 믹스(예를 들어, 스테레오 믹스)가 최종 믹스에서 이용가능한 루프의 세트의 임의의 고려 없이 어떻게 들려야하는지를 예측하는 방법을 학습하는 모델일 수 있다. 일부 실시예에서, 교사 모델을 위한 학습 과정은 단시간 단계의 시퀀스에 있어서 다른 주파수를 가로질러 사운드의 분포를 계산하기 위해 고속 푸리에 변환(FFT)을 사용하여 출력 음악 콘텐츠(140)의 실시간 분석을 이용한다. 교사 모델은 순환 신경망(RNN)과 같은 시간 시퀀스 예측 모델을 이용하는 이러한 시퀀스에서 패턴을 검색할 수 있다. 일부 실시예에서, 교사 모델 실행 모듈(1010)에서 교사 모델은 개별적인 루프 또는 오디오 파일이 이용가능하지 않은 스테레오 레코딩 상에 오프라인으로 훈련될 수 있다.
도시된 실시예에서, 교사 모델 실행 모듈(1010)은 출력 음악 콘텐츠(140)를 수용하고 출력 음악 콘텐츠의 컴팩트한 기술(1012)을 생성한다. 훈련된 교사 모델을 사용하여, 교사 모델 실행 모듈(1010)은 출력 음악 콘텐츠(140)에서 오디오 트랙 또는 오디오 파일의 임의의 고려 없이 컴팩트한 기술(1012)을 생성한다. 컴팩트한 기술(1012)은 교사 모델 실행 모듈(1010)에 의해 결정된 바와 같이 출력 음악 콘텐츠(140)가 어떻게 들려야 하는지에 관한 기술(X)을 포함할 수 있다. 컴팩트한 기술(1012)은 출력 음악 콘텐츠(140) 자체보다 더 컴팩트하다.
컴팩트한 기술(1012)은 학생 모델 실행 모듈(1020)에 제공될 수 있다. 학생 모델 실행 모듈(1020)은 훈련된 학생 모델을 실행한다. 예를 들어, 훈련된 학생 모델은 (X와는 다른) 오디오 파일 또는 루프(Y)를 사용하여 컴팩트한 기술에 일치하는 음악을 생성하는 방법을 학습하는 모델일 수 있다. 도시된 실시예에서, 학생 모델 실행 모듈(1020)은 출력 음악 콘텐츠(140)에 실질적으로 일치하는 학생 출력 음악 콘텐츠(1014)를 생성한다. 여기 사용된 바와 같이, 어구 “실질적으로 일치하는”은 학생 출력 음악 콘텐츠(1040)가 출력 음악 콘텐츠(140)와 유사하게 들린다는 것을 나타낸다. 예를 들어, 훈련된 청취자는 학생 출력 음악 콘텐츠(1014) 및 출력 음악 콘텐츠(140)가 동일하게 들린다는 것을 고려할 수 있다.
다수의 경우에, 제어 요소는 음악에서 유사한 패턴에 영향을 미치도록 기대될 수 있다. 예를 들어, 제어 요소는 피치 관계 및 리듬 모두에 영향을 미칠 수 있다. 일부 실시예에서, 음악 생성기 모듈(160)은 하나의 교사 모델에 따라 매우 많은 수의 제어 요소에 대해 훈련된다. 단일 교사 모델로 매우 많은 수의 제어 요소에 대해 음악 생성기 모듈(160)을 훈련시킴으로써, 유사한 기본 패턴은 각각의 제어 요소에 대해 재학습될 필요가 없을 수 있다. 그러한 실시예에서, 교사 모델의 학생 모델은 그때 최종 음악 믹스에서 소망하는 속성을 달성하도록 각각의 트랙에 대해 루프의 선택을 변경하는 방법을 학습한다. 일부 실시예에서, 루프의 특성은 (제어 요소의 최적 맵핑을 발견할 가능성을 잠재적으로 감소시키는 것을 희생할 수 있음에도) 학습 도전 및 베이스라인 연주를 감소시키도록 미리 계산될 수 있다.
학생 모델 훈련을 위해 사용될 수 있는 각각의 루프 또는 오디오 파일에 대해 미리 계산된 음악 속성의 비제한적인 예시는 다음을 포함한다: 베이스 대 트레블 주파수의 비, 초당 음 온셋의 수, 검출된 피치된 사운드 대 피치되지 않은 사운드의 비, 스펙트럼 범위, 평균 온셋 강도. 일부 실시예에서, 학생 모델은 최종 스테레오 믹스에서 가장 가까운 음악 특성을 얻기 위해 각각의 트랙에 대한 루프를 선택하도록 훈련된 단순한 회귀 모델이다. 다양한 실시예에서, 학생/교사 모델 프레임워크는 일부 이점을 가질 수 있다. 예를 들어, 신규한 특성이 루프에 관한 사전 계산 루틴에 더해지면, 전체 종간 모델, 단지 학생 모델을 재훈련시킬 필요가 없다.
또 다른 실시예에서, 다른 제어에 영향을 미치는 최종 스테레오 믹스의 특성이 다른 제어 요소와 공통인 경향이 있음에 따라, 종간 모델로서 각각의 제어 요소에 대해 음악 생성기 모듈(160)을 훈련시키는 것은 각각의 모델이 최고의 루프 선택을 갖도록 동일한 것(스테레오 믹스 음악 특성)을 학습할 필요가 있음을 의미할 것이고, 이는 훈련을 필요로 할 수 있는 것보다 더 늦추고 어렵게 한다. 스테레오 출력만이 실시간으로 분석될 필요가 있고, 출력 음악 콘텐츠가 청취자에 대해 실시간으로 생성됨에 따라 음악 생성기 모듈(160)은 계산적으로 “프리”에 관한 신호를 얻을 수 있다. FFT조차 시각화 및 오디오 믹싱 목적을 위해 이미 적용될 수 있다. 이러한 방식으로, 교사 모델은 제어 요소의 조합된 거동을 예측하도록 훈련될 수 있고 음악 생성기 모듈(160)은 다른 제어 요소에 적응하는 방식을 찾도록 훈련되는 한편, 여전히 소망하는 출력 음악 콘텐츠를 생성한다. 이는 특정 제어 요소의 고유한 효과를 강조하고 다른 제어 요소의 효과를 약화시키는 효과를 갖는 제어 요소를 감소시키도록 제어 요소에 대한 훈련을 고무시킬 수 있다.
예시적인 저해상도 피치 검출 시스템
폴리포닉 음악 콘텐츠에 강건한 피치 검출 및 다양한 악기 유형은 전통적으로 달성되기 어렵다. 종간 음악 채보를 실행하는 툴은 오디오 레코딩을 취할 수 있고 작성된 스코어, 또는 MIDI의 형태로 상징적인 음악 표현을 생성하는 것을 시도할 수 있다. 비트 배치 또는 템포의 지식 없이, 이들 툴은 음악적 리듬 구조, 인스트루멘테이션, 및 피치를 추론할 필요가 있을 수 있다. 결과는 오디오 파일에서 너무나 많은 짧고 존재하지 않는 음을 검출하고 기본 피치로서 음의 하모닉스를 검출하는 공통의 문제로 변할 수 있다.
그러나 피치 검출은 또한 종간 채보가 필요하지 않은 상황에서 유용할 수 있다. 예를 들어, 음악 루프의 화성적으로 인지가능한 조합을 구성하기 위해, 음의 정확한 배치를 알 필요 없이 어느 피치가 각각의 비트 상에서 잘 들리는지를 아는 것으로 충분할 수 있다. 루프의 길이 및 템포가 알려지면, 비트의 시간 위치는 오디오로부터 추론될 필요가 없을 수 있다.
일부 실시예에서, 피치 검출 시스템은 어느 기본 피치(예를 들어, C, C# .... B)가 알려진 비트 길이의 짧은 음악 오디오 파일에 존재하는지를 검출하도록 구성된다. 문제 범위를 감소시키고 악기 텍스처에 강건성에 초점을 둠으로써, 고정밀 결과가 비트 해상도 피치 검출에 대해 달성될 수 있다.
일부 실시예에서, 피치 검출 시스템은 실측 자료가 알려진 예시에 대해 훈련된다. 일부 실시예에서, 오디오 데이터는 스코어 데이터로부터 생성된다. MIDI 및 다른 상징적인 음악 포맷은 텍스처 및 효과에 관한 랜덤 파라미터를 갖는 소프트웨어 오디오 신시사이저를 사용하여 합성될 수 있다. 각각의 오디오 파일에 대해, 시스템은 각각의 피치 클래스에 대해 다중 주파수 빈을 갖는 로그 스펙트로그램 2D 표현을 생성할 수 있다. 이러한 2D 표현은 신경망 또는 다수의 컨볼루션 레이어가 주파수의 특징 표현 및 오디오의 시간 표현을 생성하도록 사용되는 다른 AI 기법에 입력으로 사용된다. 컨볼루션 스트라이드 및 패딩은 다른 템포 입력을 갖는 일정한 모델 출력 형상을 생성하도록 오디오 파일 길에 따라 변화될 수 있다. 일부 실시예에서, 피치 검출 시스템은 예측의 일시적으로 의존적인 시퀀스를 출력하도록 컨볼루션 레이어에 순환 레이어를 첨부한다. 범주형 크로스 엔트로피 손실은 스코어의 2진수 표현과 신경망의 로직 출력을 비교하도록 사용될 수 있다.
순환 레이어와 조합된 컨볼루션 레이어의 설계는 수정을 갖는 스피치 투 텍스트에서의 작업과 유사할 수 있다. 예를 들어, 스피치 투 텍스트는 일반적으로 절대 피치가 아닌 상대 피치 변화에 민감할 것을 필요로 한다. 따라서, 주파수 범위 및 해상도는 일반적으로 작다. 또한, 텍스트는 정적 템포 음악에서 소망가능하지 않은 방식으로 속도에 대해 불변일 필요가 있을 수 있다. 예를 들어, 출력 시퀀스의 길이가 미리 알려져서 훈련에 대한 복잡성을 감소시키기 때문에, 스피치 투 텍스트 업무에서 종종 이용되는 연결주의 시간 분류(CTC) 손실 계산은 필요하지 않을 수 있다.
다음의 표현은 각각의 비트에 대해 12개의 피치 클래스를 갖고 1은 오디오를 합성하도록 사용되는 스코어에서 기본 음의 존재를 나타낸다. (C,C#.... B) 및 각각의 행은 비트를 나타낸다, 예를 들어, 나중 행은 다른 비트에서 스코어를 나타낸다:
0 1 0 0 1 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1
일부 실시예에서, 신경망은 클래식 음악 및 1-4파트(또는 그 이상)의 화음 및 폴리포니의 의사 랜덤 생성된 음악 스코어에 대해 훈련된다. 데이터 증강은 필터를 갖는 음악 콘텐츠에 대한 강건성 및 에코와 같은 효과를 도울 수 있고, 이는 (예를 들어, 본래 음이 끝난 후에 기본 톤의 부분이 오래 머물기 때문에) 피치 검출에 있어서 어려움의 지점일 수 있다. 일부 실시예에서, 데이터세트는 편향될 수 있고 피치 클래스가 각각의 비트 상에 재생되는 음을 갖지 않게 하는 경향이 훨씬 더 있음에 따라 손실 가중치가 사용된다.
일부 실시예에서, 출력의 포맷은 화음 충돌이 각각의 비트 상에서 회피되는 것을 허용하는 한편, 루프가 사용되는 화음 맥락의 범위를 극대화한다. 예를 들어, 베이스 루프는 F만을 포함하고 루프의 마지막 비트 상에서 E로 하향 이동할 수 있다. 이러한 루프는 F의 키에서 대부분의 사람들에게 화음적으로 용인되게 들리는 것 같을 것이다. 어떠한 시간 해상도도 제공되지 않고 E 및 F가 오디오에 있는 것만이 알려지면, 그때 그것은 끝에서 짧은 F를 갖는 유지된 E일 수 있고, 이는 F의 키의 맥락에서 대부분의 사람들에 대해 용인가능하게 들리지 않을 수 있다. 더 높은 해상도와 함께, 하모닉스, 플랫보드 사운드, 및 슬라이드가 개별적인 음으로 검출되는 기회가 증가하고 따라서 추가 음이 잘못되게 식별될 수 있다. 화음적으로 타당한 조합을 갖는 음악적 믹스를 생성하도록 악기의 짧은 오디오 레코딩을 조합하기 위해 시간 및 피치 정보의 최적 해상도를 갖는 시스템을 전개함으로써, 일부 실시예에 따라, 피치 검출 문제의 복잡성은 감소될 수 있고, 짧고 덜 현저한 피치 이벤트에 대한 강건성은 증가된다.
여기 기재된 음악 생성기 시스템의 다양한 실시예에서, 시스템은 청취자가 시스템이 신규한 음악을 구성하는(생성하는) 풀을 생성하도록 사용되는 오디오 콘텐츠를 선택하는 것을 허용할 수 있다. 사용자가 개별적인 트랙을 선택하거나 순차적으로 선택을 체계화할 필요가 없음에 따라 이러한 접근은 플레이리스트를 생성하는 것과 다를 수 있다. 추가로, 다중 아트스트로부터의 콘텐츠는 동시에 함께 사용될 수 있다. 일부 실시예에서, 음악 콘텐츠는 소프트웨어 공급자에 의해 또는 기여 아트스트에 의해 설계된 “팩”으로 그룹화된다. 팩은 상응하는 이미지 특징 및 특징 메타데이터 파일을 갖는 다중 오디오 파일을 포함한다. 단일 팩은 예를 들어, 음악을 생성할 음악 생성기 시스템에 의해 사용을 위해 이용가능한 20 내지 100 개의 오디오 파일을 포함할 수 있다. 일부 실시예에서, 단일 팩이 선택될 수 있거나 다중 팩이 조합해서 선택될 수 있다. 플레이백 동안, 팩은 음악을 멈추지 않고 추가되거나 제거될 수 있다.
음악 콘텐츠 생성을 위한 예시적인 오디오 기법
다양한 실시예에서, 실시간 생성된 오디오를 관리하기 위한 소프트웨어 프레임워크는 특정 유형의 기능성을 지지하는 것으로부터 혜택을 받을 수 있다. 예를 들어, 오디오 프로세싱 소프트웨어는 아날로그 하드웨어로부터 물려받은 모듈식 신호 체인 메타포를 따를 수 있고, 오디오 생성 및 오디오 효과를 제공하는 다른 모듈이 오디오 신호 그래프에 함께 체인화된다. 개별적인 모듈은 일반적으로 모듈의 신호 처리의 실시간 수정을 감안하는 다양한 연속적인 파라미터를 노출할 것이다. 전자 음악의 초창기에, 파라미터는 종종 그 자체로 아날로그 신호였고, 따라서 파라미터 처리 체인 및 신호 처리 체인은 동시에 발생했다. 디지털 해상도 때문에, 파라미터는 분리 디지털 신호인 경향이 있었다.
여기 개시된 실시예는 실시간 음악 생성 시스템에 있어서 - 음악을 생성하기 위해 시스템이 라이브로 인간 연주자와 상호작용하는지 또는 시스템이 머신 러닝 또는 다른 인공 지능(AI) 기법을 실행하는지 - 파라미터 조작의 조정 및 조합을 허용하는 유연한 제어 시스템이 유리할 수 있음을 인지한다. 부가적으로, 본 개시는 파라미터 변화의 효과가 템포에서의 변화에 대해 불변인 것이 역시 유리할 수 있음을 인지한다.
일부 실시예에서, 음악 생성기 시스템은 오디오 신호의 다른 파라미터 표현에 기반해서 플레이백 음악 콘텐츠로부터 신규한 음악 콘텐츠를 생성한다. 예를 들어, 오디오 신호는 시간에 관련한 신호의 그래프(예를 들어, 오디오 신호 그래프) 및 비트에 관련된 신호의 그래프(예를 들어, 신호 그래프) 모두에 의해 표현될 수 있다. 신호 그래프는 템포에 대해 불변이고, 이는 오디오 신호 그래프에 기반한 템포 변화 수정에 더해서 음악 콘텐트의 오디오 파라미터의 템포 불변 수정을 감안한다.
도 11은 일부 실시예에 따라서, 음악 콘텐츠 생성에서 오디오 기법을 실행하도록 구성된 예시적인 시스템을 도시하는 블록도이다. 도시된 실시예에서, 시스템(1100)은 그래프 생성 모듈(1110) 및 오디오 기법 음악 생성기 모듈(1120)을 포함한다. 오디오 기법 음악 생성기 모듈(1120)은 음악 생성기 모듈로서 작동할 수 있거나(예를 들어, 오디오 기법 음악 생성기 모듈은 여기 기재된 바와 같이 음악 생성기 모듈(160)이다) 오디오 기법 음악 생성기 모듈은 음악 생성기 모듈의 부분으로서(예를 들어, 음악 생성기 모듈(160)의 부분으로서) 실행될 수 있다.
도시된 실시예에서, 오디오 파일 데이터를 포함하는 음악 콘텐츠(1112)는 그래프 생성 모듈(1110)에 의해 접근된다. 그래프 생성 모듈(1110)은 접근된 음악 콘텐츠(1112)에서 오디오 신호에 대해 제 1 그래프(1114) 및 제 2 그래프(1116)를 생성할 수 있다. 특정 실시예에서, 제 1 그래프(1114)는 시간의 함수로서 오디오 신호를 그래프로 표현한 오디오 신호 그래프이다. 오디오 신호는 예를 들어, 진폭, 주파수, 또는 그 둘 모두의 조합을 포함할 수 있다. 특정 실시예에서, 제 2 그래프(1116)는 비트의 함수로서 오디오 신호를 그래프로 표현한 신호 그래프이다.
특정 실시예에서, 도 11의 도시된 실시예에 도시된 바와 같이, 그래프 생성 모듈(1110)은 제 1 그래프(1114) 및 제 2 그래프(1116)를 생성하도록 시스템(1100)에 위치된다. 그러한 실시예에서, 그래프 생성 모듈(1110)은 오디오 기법 음악 생성기 모듈(1120)과 동위치될 수 있다. 그러나 다른 실시예가 고려되고, 그래프 생성 모듈(1110)은 분리 시스템에 위치되고 오디오 기법 음악 생성기 모듈(1120)은 분리 시스템으로부터 그래프에 접근한다. 예를 들어, 그래프는 오디오 기법 음악 생성기 모듈(1120)에 의해 접근가능한 클라우드 기반 서버 상에 생성되고 저장될 수 있다.
도 12는 오디오 신호 그래프(예를 들어, 제 1 그래프(1114))의 예시를 도시한다. 도 13은 신호 그래프(예를 들어, 제 2 그래프(1116))의 예시를 도시한다. 도 12 및 도 13에 도시된 그래프에서, 오디오 신호에서 각각의 변화(예를 들어, 도 12에 오디오 신호 노드(1202) 및 도 13에 신호 노드(1302))는 노드로서 표현된다. 따라서, 특정된 노드의 파라미터는 특정된 노드에서 오디오 신호에 대한 변화를 결정한다(예를 들어, 규정한다). 제 1 그래프(1114) 및 제 2 그래프(1116)가 동일한 오디오 신호에 기반함에 따라, 그래프는 그래프 사이의 변화가 X 축 스케일(시간 대 비트)인 것과 유사한 구조를 가질 수 있다. 그래프에서 유사한 구조를 갖는 것은 하나의 그래프에서 노드의 하류에 또는 상류에 파라미터에 의해 결정될 다른 하나의 그래프에서 노드(예를 들어, 제 1 그래프(1114)에서 노드(1202))에 상응하는 하나의 그래프에서 노드(예를 들어, 제 2 그래프(1116)에서 노드(1302))에 대한 (아래 기재된 바와 같은) 파라미터의 수정을 허용한다.
도 11로 되돌아 가서, 제 1 그래프(1114) 및 제 2 그래프(1116)는 오디오 기법 음악 생성기 모듈(1120)에 의해 수용된다(또는 접근된다). 특정 실시예에서, 오디오 기법 음악 생성기 모듈(1120)은 제 1 그래프(1114)로부터 선택된 오디오 수정자 파라미터 및 제 2 그래프(1116)로부터 선택된 오디오 수정자 파라미터에 기반해서 플레이백 음악 콘텐츠(1118)로부터 신규한 음악 콘텐츠(1122)를 생성한다. 예를 들어, 오디오 기법 음악 생성기 모듈(1120)은 제 1 그래프(1114)로부터 오디오 수정자 파라미터, 제 2 그래프(1116)로부터 오디오 수정자 파라미터, 또는 그의 조합으로 플레이백 음악 콘텐츠(1118)를 수정할 수 있다. 신규한 음악 콘텐츠(1122)는 오디오 수정자 파라미터에 기반해서 플레이백 음악 콘텐츠(1118)의 수정에 의해 생성된다.
다양한 실시예에서, 오디오 기법 음악 생성기 모듈(1120)은 템포 변화 수정, 템포 불변 수정, 또는 그의 조합이 소망되는지 여부에 기반해서 플레이백 음악 콘텐츠(1118)의 수정에서 실행할 오디오 수정자 파라미터를 선택할 수 있다. 예를 들어, 템포 변화 수정은 제 1 그래프(1114)로부터 선택되거나 결정된 오디오 수정자 파라미터에 기반해서 이루어질 수 있는 한편, 템포 불변 수정은 제 2 그래프(1116)로부터 선택되거나 결정된 오디오 수정자 파라미터에 기반해서 이루어질 수 있다. 템포 변화 수정 및 템포 불변 수정의 조합이 소망되는 실시예에서, 오디오 수정자 파라미터는 제 1 그래프(1114) 및 제 2 그래프(1116) 모두로부터 선택될 수 있다. 일부 실시예에서, 각각의 개별적인 그래프로부터 오디오 수정자 파라미터는 플레이백 음악 콘텐츠(1118)에서 다른 특성(예를 들어, 진폭 또는 주파수) 또는 다른 층(예를 들어, 다른 악기층)에 분리하여 적용된다. 일부 실시예에서, 각각의 그래프로부터 오디오 수정자 파라미터는 플레이백 음악 콘텐츠(1118)에서 단일 특성 또는 층에 적용할 단일 오디오 수정자 파라미터로 조합된다.
도 14는 일부 실시예에 따라 오디오 기법 음악 생성기 모듈(1420)을 사용하여 음악 콘텐츠의 실시간 수정을 실행하기 위한 예시적인 시스템을 도시한다. 도시된 실시예에서, 오디오 기법 음악 생성기 모듈(1420)은 제 1 노드 결정 모듈(1410), 제 2 노드 결정 모듈(1420), 오디오 파라미터 결정 모듈(1430), 및 오디오 파라미터 수정 모듈(1440)을 포함한다. 함께, 제 1 노드 결정 모듈(1410), 제 2 노드 결정 모듈(1420), 오디오 파라미터 결정 모듈(1430), 및 오디오 파라미터 수정 모듈(1440)은 시스템(1400)을 실행한다.
도시된 실시예에서, 오디오 기법 음악 생성기 모듈(1420)은 오디오 신호를 포함하는 플레이백 음악 콘텐츠(1418)를 수용한다. 오디오 기법 음악 생성기 모듈(1420)은 제 1 노드 결정 모듈(1410)에서 제 1 그래프(1414)(예를 들어, 시간 기반 오디오 신호 그래프) 및 제 2 그래프(1416)(예를 들어, 비트 기반 신호 그래프)를 통해 오디오 신호를 처리할 수 있다. 오디오 신호가 제 1 그래프(1414)를 통과함에 따라, 그래프에서 각각의 노드에 대한 파라미터는 오디오 신호에 대한 변화를 결정한다. 도시된 실시예에서, 제 2 노드 결정 모듈(1420)은 제 1 노드(1412) 상의 정보를 수용하고 제 2 노드(1422)에 관한 정보를 결정한다. 특정 실시예에서, 제 2 노드 결정 모듈(1420)은 제 1 그래프(1414)를 통과하는 오디오 신호에서 제 1 노드 정보(1412)에서 발견된 제 1 노드의 위치에 기반해서 제 2 그래프(1416)에서 파라미터를 판독한다. 따라서, 예시로서, 제 1 노드 결정 모듈(1410)에 의해 결정된 바와 같은 (도 12에 도시된) 제 1 그래프(1414)에서 노드(1202)로 가는 오디오 신호는 (도 13에 도시된) 제 2 그래프(1416)에 상응하는 (병렬) 노드(1302)를 결정하는 제 2 노드 결정 모듈(1420)을 트리거할 수 있다.
도 14에 도시된 바와 같이, 오디오 파라미터 결정 모듈(1430)은 제 2 노드 정보(1422)를 수용하고 제 2 노드 정보에 기반해 특정된 오디오 파라미터(1432)를 결정한다(예를 들어, 선택한다). 예를 들어, 오디오 파라미터 결정 모듈(1430)은 제 2 노드 정보(1422)에서 식별된 바와 같이 제 2 노드의 위치를 따르는 제 2 그래프(1416)에서 다음의 비트의 일부(예를 들어, 다음 비트의 x 개수)에 기반해서 오디오 파라미터를 선택할 수 있다. 일부 실시예에서, 실시간 변환에 대한 비트는 오디오 파라미터가 판독될 수 있는 제 2 그래프(1416)의 부분을 결정하도록 실행될 수 있다. 특정된 오디오 파라미터(1432)는 오디오 파라미터 수정 모듈(1440)에 제공될 수 있다.
오디오 파라미터 수정 모듈(1440)은 신규한 음악 콘텐츠를 생성하도록 음악 콘텐츠의 수정을 제어할 수 있다. 예를 들어, 오디오 파라미터 수정 모듈(1440)은 신규한 음악 콘텐츠(1122)를 생성하도록 플레이백 음악 콘텐츠(1418)를 수정할 수 있다. 특정 실시예에서, 오디오 파라미터 수정 모듈(1440)은 플레이백 음악 콘텐츠에서 오디오 신호에 대해 (오디오 파라미터 결정 모듈(1430)에 의해 결정된 바와 같이) 특정된 오디오 파라미터(1432)를 수정함으로써 플레이백 음악 콘텐츠(1418)의 특성을 수정한다. 예를 들어, 플레이백 음악 콘텐츠(1418)에서 오디오 신호에 관해 특정된 오디오 파라미터(1432)를 수정하는 것은 오디오 신호에서 진폭, 주파수, 또는 그 둘의 조합과 같은 특성을 수정한다. 다양한 실시예에서, 오디오 파라미터 수정 모듈(1440)은 플레이백 음악 콘텐츠(1418)에서 다른 오디오 신호의 특성을 수정한다. 예를 들어, 플레이백 음악 콘텐츠(1418)에서 다른 오디오 신호는 플레이백 음악 콘텐츠(1418)에서 표현된 다른 악기에 상응할 수 있다.
일부 실시예에서, 오디오 파라미터 수정 모듈(1440)은 머신 러닝 알고리즘 또는 다른 AI 기법을 사용하여 플레이백 음악 콘텐츠(1418)에서 오디오 신호의 특성을 수정한다. 일부 실시예에서, 오디오 파라미터 수정 모듈(1440)은 모듈에 대한 사용자 입력에 따라 플레이백 음악 콘텐츠(1418)의 특성을 수정하고, 이는 음악 생성 시스템과 연관된 사용자 인터페이스를 통해 제공될 수 있다. 오디오 파라미터 수정 모듈(1440)이 AI 기법 및 사용자 입력의 조합을 사용하여 플레이백 음악 콘텐츠(1418)의 특성을 수정하는 실시예 역시 고려될 수 있다. 오디오 파라미터 수정 모듈(1440)에 의한 플레이백 음악 콘텐츠(1418)의 특성의 수정에 관한 다양한 실시예는 음악 콘텐츠의 실시간 조작(예를 들어, 플레이백 동안의 조작)을 허용한다. 위에 기재된 바와 같이, 실시간 조작은 플레이백 음악 콘텐츠(1418)에서 오디오 신호에 템포 변화 수정, 템포 불변 조합, 또는 그 둘의 조합을 적용하는 것을 포함할 수 있다.
일부 실시예에서, 오디오 기법 음악 생성기 모듈(1420)은 오디오 파라미터 수정 모듈(1440)에 의해 플레이백 음악 콘텐츠(1418)의 특성의 수정에 관한 2 줄로 배열된 파라미터 시스템을 실행한다. 2 줄로 배열된 파라미터 시스템에서, 아래 기재된 바와 같이, 오디오 파라미터 값을 직접 제어하는 “자동화”(예를 들어, 음악 생성 시스템에 의해 자동으로 수행된 업무)와 곱셈식으로 자동화의 최상부 상에 오디오 파라미터 수정을 레이어하는 “모듈화”사이에 차이가 있을 수 있다. 2 줄로 배열된 파라미터 시스템은 다른 음악적 측면을 분리하여 고려하도록 음악 생성 시스템의 다른 부분(예를 들어, 시스템 아키텍처에서 다른 머신 러닝 모델)을 허용할 수 있다. 예를 들어, 음악 생성 시스템의 일부는 의도된 섹션 유형의 작곡에 따라 특정 악기의 볼륨을 설정할 수 있는 반면에, 또 다른 부분은 더해진 관심에 대해 볼륨의 주기적 변화를 오버레이할 수 있다.
음악 콘텐츠 생성에서 실시간 오디오 효과를 위한 예시적인 기법
음악 테크놀로지 소프트웨어는 일반적으로 작곡가/프로듀서가 자동화를 통해 다양한 추상적인 엔빌로프를 제어하는 것을 허용한다. 일부 실시예에서, 자동화는 (볼륨 또는 에코 양과 같은) 일부 오디오 프로세싱 파라미터의 미리 프로그램된 시간 조작이다. 자동화는 일반적으로 수동으로 규정된 중단점 엔빌로프(예를 들어, 구간적 선형 함수) 또는 사인파(달리 저주파수 오실레이터(LFO)로 알려짐)와 같은 프로그램 함수이다.
개시된 음악 생성기 시스템은 일반적인 음악 소프트웨어일 수 있다. 예를 들어, 대개의 파라미터는 어느 정도 디폴트에 의해 자동화된다. 음악 생성기 시스템에서 AI 기법은 다양한 방식으로 대개의 또는 모든 오디오 파라미터를 제어할 수 있다. 베이스 레벨에서, 신경망은 훈련에 기반해서 각각의 오디오 파라미터에 대해 적합한 설정을 예측할 수 있다. 그러나 음악 생성기 시스템에 일부 더 높은 수준의 자동화 규칙을 제공하는 것은 도움이될 수 있다. 예를 들어, 대형 스케일 음악 구조는 그렇지 않으면 예측될 수 있는 낮은 레벨 설정의 최상부 상에 추가 고려로서 볼륨에 느린 빌드를 지시할 수 있다.
본 개시는 일반적으로, 음악적으로 일관성 있고 변화된 계속적인 출력을 생성하도록 계층 생성적 시스템의 다른 레벨에 의해 동시에 발생된 다중 파라미터 명령을 조합하기 위한 정보 아키텍처 및 절차 접근에 관한 것이다. 개시된 음악 생성기 시스템은 여러 시간 동안 계속적으로 경험하도록 의도된 긴 형태의 음악적 경험을 생성할 수 있다. 긴 형태의 음악 경험은 더 만족스러운 경험을 위해 일관성 있는 음악 여행을 생성할 필요가 있다. 이를 행하기 위해, 음악 생성기 시스템은 긴 기간에 걸쳐 그 자체를 참조할 수 있다. 이러한 참조는 직접으로부터 추상적으로 변할 수 있다.
특정 실시예에서, 더 큰 스케일의 음악 규칙을 용이하게 하기 위해, 음악 생성기 시스템(예를 들어, 음악 생성기 모듈(160))은 자동화 API(어플리케이션 프로그래밍 인터페이스)를 노출한다. 도 15는 일부 실시예에 따라, 오디오 파라미터의 자동화를 위한 시스템에서 예시적인 API 모듈의 블록도를 도시한다. 도시된 실시예에서, 시스템(1500)은 API 모듈(1505)을 포함한다. 특정 실시예에서, API 모듈(1505)은 자동화 모듈(1510)을 포함한다. 음악 생성기 시스템은 웨이브테이블-스타일 LFO 및 임의의 중단점 엔빌로프 모두를 지지할 수 있다. 자동화 모듈(1510)은 임의의 오디오 파라미터(1520)에 자동화(1512)를 적용할 수 있다. 일부 실시예에서, 자동화(1512)는 반복적으로 적용된다. 예를 들어, 그 자체로 파라미터(주파수, 진폭, 등)를 갖는 사인파와 같은 임의의 프로그램 자동화는 파라미터에 적용된 자동화를 가질 수 있다.
다양한 실시예에서, 자동화(1512)는 위에 기재된 바와 같이, 오디오 신호 그래프와 평행한 신호 그래프를 포함한다. 신호 그래프는 “풀(pull)” 기법을 통해 유사하게 취급될 수 있다. “풀” 기법에서, API 모듈(1505)은 자동화 모듈(1510)이 필요에 따라 재계산하고, 자동화(1512)가 동일한 것을 행함에 따라 업스트림 자동화를 반복적으로 요청하는 바와 같이 재계산을 수행하도록 요청할 수 있다. 특정 실시예에서, 자동화를 위한 신호 그래프는 조절된 비율에서 업데이트된다. 예를 들어, 신호 그래프는 연주 엔진 업데이트 루틴의 각각의 작동마다 1회 업데이트할 수 있고, 이는 (예를 들어, 오디오 신호 그래프가 하나의 블록을 제공한 후에 (하나의 블록은 예를 들어, 512 개의 샘플이다)) 오디오의 블록 비율과 정렬할 수 있다.
일부 실시예에서, 오디오 파라미터(1520) 그 자체가 오디오 샘플 비율에서 변하는 것이 소망가능할 수 있고, 그렇지 않으면 오디오 블록 경계에서 불연속 파라미터 변화는 가청 아티팩트로 유도할 수 있다. 특정 실시예에서, 음악 생성기 시스템은 파라미터 값 목표로서 자동화 업데이트를 처리함으로써 이러한 문제를 관리한다. 실시간 오디오 스레드가 오디오 블록을 제공할 때, 오디오 스레드는 블록의 과정에 걸쳐 현재 값으로부터 공급된 목표 값으로 소정 파라미터를 평활하게 증가시킬 것이다.
여기 기재된 음악 생성기 시스템(예를 들어, 도 1에 도시된 음악 생성기 모듈(160))은 계층적 성질을 갖는 아키텍처를 가질 수 있다. 일부 실시예에서, 계층의 다른 부분은 특정 오디오 파라미터의 값에 대한 다중 제안을 제공할 수 있다. 특정 실시예에서, 음악 생성기 시스템은 다중 제안을 조합하고/해소하기 위해 두 개의 분리 메커니즘을 제공한다: 모듈화 및 오버라이딩. 도 15의 도시된 실시예에서, 모듈화(1532)는 모듈화 모듈(1530)에 의해 실행되고 오버라이드(1542)는 오버라이딩 모듈(1540)에 의해 실행된다.
일부 실시예에서, 자동화(1512)는 모듈화(1532)이도록 선언될 수 있다. 그러한 선언은 오디오 파라미터의 값을 직접 설정한다기 보다는, 자동화(1512)가 오디오 파라미터의 현재 값 상에 곱셉식으로 작동해야만 함을 의미할 수 있다. 따라서, 대형 스케일 음악 섹션은 오디오 파라미터(예를 들어, 볼륨 페이더를 위한 느린 크레센도)에 긴 모듈레이션(1532)을 적용할 수 있고, 모듈화의 값은 음악 생성기 시스템의 다른 부분이 지시할 수 있는 어떤 값이든 곱할 것이다.
다양한 실시예에서, API 모듈(1505)은 오버라이딩 모듈(1540)을 포함한다. 오버라이팅 모듈(1540)은 예를 들어, 오디오 파라미터 자동화를 위한 오버라이드 설비일 수 있다. 오버라이딩 모듈(1540)은 외부 제어 인터페이스(예를 들어, 아티스트 제어 사용자 인터페이스)에 의해 사용되도록 의도될 수 있다. 오버라이딩 모듈(1540)은 음악 생성기 시스템이 그것으로 하려고 시도하는 것에 상관 없이 오디오 파라미터(1520)에 걸쳐 제어할 수 있다. 오디오 파라미터(1520)가 오버라이드(1542)에 의해 오버라이딩될 때, 음악 생성기 시스템은 오디오 파라미터가 오버라이딩되지 않았다면 있을 곳(예를 들어, 오디오 파라미터가 자동화(1512) 또는 모듈화(1532)에 기반해 있을 곳)을 추적하는 “그림자 파라미터”(1522)를 생성할 수 있다. 따라서, 오버라이드(1542)는 “해제”될 때(예를 들어, 아티스트에 의해 제거될 때), 오디오 파라미터(1520)는 자동화(1512) 또는 모듈화(1532)에 따라 있을 곳으로 스냅 백할 수 있다.
다양한 실시예에서, 이러한 두 개의 접근이 조합될 수 있다. 예를 들어, 오버라이드(1542)는 모듈화(1532)일 수 있다. 오버라이드(1542)가 모듈화(1532)일 때, 오디오 파라미터(1520)의 기본값은 여전히 음악 생성기 시스템에 의해 설정될 수 있지만, 그런 후에 (임의의 다른 모듈화를 오버라이딩하는) 오버라이드(1542)에 의해 곱셈으로 조절될 수 있다. 각각의 오디오 파라미터(1520)는 각각의 오버라이드(1542) 중 하나 (또는 영 개)는 물론 하나의(또는 영 개의) 자동화(1512) 및 하나의(또는 영 개의) 모듈화(1532)를 동시에 가질 수 있다.
다양한 실시예에서, 추상적 클래스 계층은 다음과 같이 규정된다(일부 다중 유전이 있음을 명심한다):
자동화가능한
자동화 파라미터
파라미터
오디오 노드 파라미터
마이크로 파라미터
그림자 파라미터
비트 의존적
자동화
엔빌로프
파라미터 팔로워
주기적
변형된 자동화
우버 자동화
마이크로 파라미터
그림자 파라미터
추상적인 클래스 계층에 기반해서, 이들은 자동화( Automations ), 또는 자동화가능한( Automatable )으로서 간주될 수 있다. 일부 실시예에서, 임의의 자동화는 자동화가능한 어느 것에든 적용될 수 있다. 자동화는 LFO, 중단점 엔빌로프 등과 같은 것들을 포함한다. 이들 자동화는 모두 템포가 잠겨지고, 이는 그들이 현재 비트에 따라 시간을 통해 변함을 의미한다.
자동화는 그 자체로 자동화가능한 파라미터를 가질 수 있다. 예를 들어, LFO 자동화의 주파수 및 진폭은 자동화 가능하다. 따라서, 의존적인 자동화 및 오디오 신호 그래프에 평행하게 작동하는 자동화 파라미터에 관한 신호 그래프가 있지만, 오디오 비율이 아닌 제어 비율에서이다. 위에 기재된 바와 같이, 신호 그래프는 풀 모델을 사용한다. 음악 생성기 시스템은 오디오 파라미터(1520)에 적용된 임의의 자동화(1512)의 트랙을 유지하고 이들을 “게임 루프”마다 1회 업데이트한다. 자동화(1512)는 차례로 자신의 자동화된 오디오 파라미터(1520)의 업데이트를 반복적으로 요청한다. 이러한 반복적 업데이트 로직은 베이스 클래스 비트 의존적( Beat-Dependent )에 머물 수 있고, 이는 자주 호출되길 기대한다(그러나 반드시 정기적으로 그런 것은 아니다). 업데이트 로직은 다음과 같이 기재된 프로토타입을 가질 수 있다:
BeatDependent::update(double currentBeat, int updateCounter, bool overRider)
특정 실시예에서, 비트 의존적( BeatDependent ) 클래스는 자신의 종속(예를 들어, 다른 비트 의존적( BeatDependent ) 예)의 리스트를 유지하고, 반복적으로 업데이트 함수를 호출한다. 업데이트 카운터( updateCounter )는 신호 그래프가 이중 업데이팅 없이 사이클을 가질 수 있는 바와 같이 체인을 지나칠 수 있다. 이는 자동화가 여러 다른 자동화가능함에 적용될 수 있기 때문에 중요할 수 있다. 일부 실시예에서, 이는 제 2 업데이트가 처음과 동일한 현재 비트( currentBeat )를 가질 것이기 때문에 문제가 될 수 없고, 이러한 업데이트 루틴은 비트가 변하지 않는 한 무력해야만 한다.
다양한 실시예에서, 자동화가 “게임 루프”의 자동화가능한 각각의 사이클에 적용될 때, 음악 생성기 시스템은 (반복적으로) 각각의 자동화로부터 업데이트된 값을 요청할 수 있고, 자동화가능함의 값을 설정( set )하도록 그것을 사용할 수 있다. 이러한 예에서, “설정( set )”은 특정 하위 클래스에 따를 수 있고, 또한 파라미터도 조절되고 그리고/또는 오버라이딩되는지 여부에 따를 수 있다.
특정 실시예에서, 모듈화(1532)는 절대적으로 보다는 곱셈으로 적용되는 자동화(1512)이다. 예를 들어, 모듈화(1532)는 이미 자동화된 오디오 파라미터(1520)에 적용될 수 있고, 그 효과는 자동화된 값의 백분률로서 일 것이다. 이는 곱셈으로 예를 들어, 이동 평균 주위의 진행 중인 오실레이션을 허용할 수 있다. 
일부 실시예에서, 오디오 파라미터(1520)은 오버라이딩(overridden)될 수 있고, 이는 위에 기재된 바와 같이, 그들에 적용된 임의의 자동화(1512) 또는 모듈화(1532), 또는 다른 (덜 특권화된) 요청이 오버라이드(1542)에서 오버라이딩 값에 의해 오버라이딩된다. 이러한 오버라이딩은 음악 생성기 시스템의 일부 측면에 걸쳐 외부 제어를 허용할 수 있는 한편, 음악 생성기 시스템은 그렇지 않으면 그럴 바와 같이 계속한다. 오디오 파라미터(1520)가 오버라이딩될 때, 음악 생성기 시스템은 값이 무엇일지 추적한다(예를 들어, 적용된 자동화/모듈화 및 다른 요청을 추적한다). 오버라이드가 해제될 때, 음악 생성기 시스템은 그것이 있었을 곳으로 파라미터를 스냅핑한다.
모듈화(1532) 및 오버라이드(1542)를 용이하게 하도록, 음악 생성기 시스템은 파라미터( Parameter )의 설정값( setValue ) 방법을 추출할 수 있다. 실제로 값을 설정하는 프라이빗 방법 _setValue 역시 있을 수 있다. 대중적인 방법의 예는 다음과 같다:
void Parameter::setValue(float value, bool overRider)
{
_unmodulated->setValue(value, overRider);
if (!modulated())
_setValue(value, overRider);
}
대중적인 방법은 호출된_조절되지 않은 파라미터( Parameter ) 클래스의 멤버 변수를 참조할 수 있다. 이러한 변수는 위에 기재된 그림자 파라미터( ShadowParameter )의 예이다. 매 오디오 파라미터(1520)는 조절되지 않았다면 있었을 곳을 추적하는 그림자 파라미터(1522)를 가진다. 오디오 파라미터(1520)가 현재 조절되지 않으면, 오디오 파라미터(1520) 및 그림자 파라미터(1522) 모두는 요청된 값으로 업데이트 된다. 그렇지 않으면, 그림자 파라미터(1522)는 요청을 추적하고, 실제 오디오 파라미터 값(1520)은 다른 곳에(예를 들어, 업데이트 조절( updateModulations ) 루틴에 - 조절 인자가 실제 파라미터 값을 부여하도록 그림자 파라미터 값에 의해 곱해지는 곳) 설정된다.
다양한 실시예에서, 긴 형태 음악 경험에서 대형 스케일 구조는 다양한 메커니즘에 의해 달성된다. 하나의 광범위한 접근은 시간에 걸친 음악적 자기 참조의 사용일 수 있다. 예를 들어, 매우 직접 자기 참조는 이미 재생된 일부 오디오 세그먼트를 정확하게 반복할 수 있다. 음악 이론에서, 반복된 세그먼트는 테마(또는 모티브)로서 불릴 수 있다. 더 일반적으로, 음악 콘텐츠는 테마 및 변화를 사용하고, 이로써 테마는 일관성의 관점을 부여하지만 진행의 관점을 유지하도록 일부 변화와 함께 나중 시간에 반복된다. 여기 개시된 음악 생성기 시스템은 직접 반복을 포함하거나 추상적 엔빌로프의 사용을 통해 여러 방식으로 대형 스케일 구조를 생성하도록 테마 및 변화를 사용할 수 있다.
추상적 엔빌로프는 시간을 통한 오디오 파라미터의 값이다. 오디오 파라미터로부터 추출된 것이 제어하면서, 추상적 엔빌로프는 임의의 다른 오디오 파라미터에 적용될 수 있다. 예를 들어, 오디오 파라미터의 수집은 단일 제어 추상적 엔빌로프에 의해 콘서트에서 자동화될 수 있다. 이러한 기법은 단기간 동안 인식하여 함께 다른 레이어를 “본딩”할 수 있다. 추상적 엔빌로프는 또한 일시적으로 재사용될 수 있고 다른 오디오 파라미터에 적용될 수 있다. 이러한 방식으로, 추상적 엔빌로프는 추상적 음악 테마가 될 수 있고, 이러한 테마는 청취 경험에서 나중에 다른 오디오 파라미터에 엔빌로프를 적용함으로써 반복된다. 따라서, 테마 상에 변화가 있는 반면에 구조 및 장기간 일관성의 관점이 확립된다.
음악 테마로서 보여지듯, 추상적 엔빌로프는 다수의 음악 특징을 추출할 수 있다. 추출될 수 있는 음악적 특징의 예는 다음을 포함하지만 그로 한정되지 않는다:
Figure pct00001
텐션(임의의 트랙의 볼륨, 왜곡의 레벨 등)에서 빌딩.
Figure pct00002
리듬(볼륨 조절 및/또는 게이팅은 패드에 적용된 리듬 효과를 생성한다 등).
Figure pct00003
멜로디(피치 필터링은 패드에 적용된 멜로디 컨투어를 모방할 수 있다 등).
실시간 음악 콘텐츠 생성을 위한 예시적인 추가 오디오 기법
실시간 음악 콘텐츠 생성은 고유한 도전을 나타낼 수 있다. 예를 들어, 어려운 실시간 제한 때문에, 예측가능하지 않고 잠재적으로 결합되지 않은 실행 시간을 갖는 함수 호출 또는 서브루틴은 회피되어야만 한다. 이러한 문제를 회피하는 것은 가장 높은 수준의 프로그래밍 언어 및 C 및 C++과 같은 낮은 수준 언어의 상당 부분의 사용을 배제할 수 있다. 뮤텍스를 잠그는 것과 같이 잠재적으로 블록킹할 수 있는 것은 물론, (후드 하의 멀락을 통해) 힙으로부터 메모리를 할당하는 것이 배제될 수 있다. 이는 실시간 음악 콘텐츠 생성 동안 멀티스레디드 프로그래밍을 특히 어렵게 만들 수 있다. 대개의 표준 메모리 관리 접근은 또한 실행가능하지 않을 수 있고, 결과적으로 C++ STL 컨테이너와 같은 동적 데이터 구조는 실시간 음악 콘텐츠 생성을 위한 제한된 사용을 가진다.
도전의 또 다른 영역은 (필터용 컷오프 주파수와 같은) DSP(디지털 신호 처리) 함수에 수반된 오디오 파라미터의 관리일 수 있다. 예를 들어, 동적으로 오디오 파라미터를 변경할 때, 오디오 파라미터가 계속적으로 변화되지 않으면, 가청 아티팩트가 발생할 수 있다. 따라서, 실시간 DSP 오디오 스레드(들)와 사용자-페이싱 인터페이스 또는 프로그램 인터페이스 사이의 통신은 오디오 파라미터를 변경하도록 요구될 수 있다.
다양한 오디오 소프트웨어가 이들 제한을 다루도록 실행될 수 있고, 다양한 접근이 존재한다. 예를 들어:
Figure pct00004
스레드간 통신은 락 프리 메시지 큐로 취급될 수 있다.
Figure pct00005
함수는 플레인 C로 작성될 수 있고 함수 포인터 콜백을 사용할 수 있다.
Figure pct00006
메모리 관리는 고객 정의 “구역” 또는 “아레나”를 통해 실행될 수 있다.
Figure pct00007
“투-스피드” 시스템은 오디오 비율에서 작동하는 실시간 오디오 스레드 계산으로 실행될 수 있고, “제어율”에서 작동하는 오디오 스레드를 제어할 수 있다. 제어 오디오 스레드는 오디오 파라미터 변경 목표를 설정할 수 있고, 실시간 오디오 스레드는 그로 평활하게 증가한다.
일부 실시예에서, 제어율 오디오 파라미터 조작과 실제 DSP 루틴에서 사용을 위한 오디오 파라미터 값의 실시간 오디오 스레드 세이프 저장 사이의 동기화는 오디오 파라미터 목표의 일종의 스레드 세이프 통신을 요구할 수 있다. 오디오 루틴을 위한 대개의 오디오 파라미터는 (이산적이기 보다는) 연속적이고 따라서 일반적으로 플로팅 포인트 데이터 유형에 의해 표현된다. 데이터에 대한 다양한 뒤틀림은 락 프리 원자 플로팅 포인트 데이터 유형의 결핍에 의해 역사적으로 필요로 되어왔다.
특정 실시예에서, 단순한 록 프리 원자 플로팅 포인트 데이터 유형은 여기 기재된 음악 생성기 시스템에서 실행된다. 록 프리 원자 플로팅 포인트 데이터 유형은 비트의 시퀀스로서 플로팅 포인트 유형을 취급하고, 컴파일러를 동일한 비트 폭의 원자 정수 유형으로서 그것을 취급하는 것에 “트릭킹”함으로써 달성될 수 있다. 이러한 접근은 여기 기재된 음악 생성기 시스템에 적합한 원자 얻음/설정을 지지할 수 있다. 록 프리 원자 플로팅 포인트 데이터 유형의 예시 실행은 다음과 같이 기재된다:
// atomic float
class af32 {
public:
af32() {}
af32(float x) { operator()(x); }
~af32() {}
af32(const af32& x) : valueStore(x()) { }
af32& operator=(const af32& x) { this->operator()(x()); return *this; }
float operator()() const { uint32_t voodoo = atomic_load(&valueStore);
return ((float )&voodoo); }
void operator()(float value) {
uint32_t voodoo = ((uint32_t )&value); atomic_store(&_valueStore, voodoo);
}
private:
std::atomic_uint32_t _valueStore { 0 };
};
일부 실시예에서, 힙으로부터 동적 메모리 할당은 음악 콘텐츠 생성과 연관된 실시간 코드에 대해 실행가능하지 않다. 예를 들어, 정적 스택 기반 할당은 동적 저장 컨테이너 및 함수형 프로그램 접근과 같은 프로그래밍 기법을 사용하는 것을 어렵게 만들 수 있다. 특정 실시예에서, 여기 기재된 음악 생성기 시스템은 실시간 맥락에서 메모리 관리를 위한 “메모리 구역”을 실행한다. 여기 사용된 바와 같이, “메모리 구역”은 (예를 들어, 실시간 제한이 아직 존재하지 않거나 멈췄을 때), 실시간 제한 없이 전위에 할당된 힙 할당된 메모리의 영역이다. 메모리 저장 대상은 그때 시스템으로부터 더 많은 메모리를 요청할 필요 없이 힙 할당된 메모리의 영역에 생성될 수 있고, 그로써 메모리를 실시간으로 안전하게 만든다. 가비지 컬렉션은 전체로서 메모리 구역을 할당해제하는 것을 포함할 수 있다. 음악 생성기 시스템에 의한 메모리 실행은 또한 멀티스레딩 세이프하고, 실시간 안전하며, 효율적일 수 있다.
도 16은 일부 실시예에 따른 예시적인 메모리 구역(1600)의 블록도이다. 도시된 실시예에서, 메모리 구역(1600)은 힙 할당된 메모리 모듈(1610)을 포함한다. 다양한 실시예에서, 힙 할당된 메모리 모듈(1610)은 제 1 그래프(1114)(예를 들어, 오디오 신호 그래프), 제 2 그래프(1116)(예를 들어, 신호 그래프), 및 오디오 신호 데이터(1602)를 수용하고 저장한다. 저장된 아이템의 각각은 예를 들어, (도 14에 도시된) 오디오 파라미터 수정 모듈(1440)에 의해 검색될 수 있다.
메모리 구역의 예시 실행은 다음과 같이 기재된다:
// memory poolclass MemoryZone
{ public:
MemoryZone(uint64_t sz) : sz(sz), zone((char)malloc(sz)) {}
~MemoryZone() { free(zone); }
void* bags(size_t obj_size, size_t alignment) {
uint64_t p = atomic_load(&p);
uint64_t q = p % uint64_t(alignment);
if (p + q > sz) return nullptr;
uint64_t pp = atomic_fetch_add(&p, uint64_t(obj_size) + q);
if (pp == p) { return zone_ + p + q; }
else { return bags(obj_size, alignment); }
} uint64_t used() { return atomic_load(&p); }
uint64_t available() { return int64_t(sz) - int64_t(atomic_load(&p)); }
void hose() { atomic_store(&p, 0ULL); }
private:
char zone;
uint64_t sz;
std::atomic_uint64_t p_ { 0 };
};
일부 실시예에서, 음악 생성기 시스템의 다른 오디오 스레드는 서로 통신할 필요가 있다. (‘상호 배타적’ 데이터 구조를 록킹하는 것을 포함할 수 있는) 일반적인 스레드 세이프티 접근은 실시간 맥락에서 이용가능하지 않을 수 있다. 특정 실시예에서, 단일 프로듀서 단일 소비자 순환 버퍼의 풀에 대한 동적 라우팅 데이터 직렬화가 실행된다. 순환 버퍼는 일반적으로 개시 후에 동적 메모리 할당을 요구하지 않는 FIFO (선입 선출) 큐 데이터 구조의 유형이다. 단일 프로듀서 단일 소비자 스레드 세이프 순환 버퍼는 하나의 오디오 스레드가 데이터를 큐로 미는 것을 허용할 수 있는 한편, 또 다른 오디오 스레드는 데이터를 끌어낸다. 여기 기재된 음악 생성기 시스템에 있어서, 순환 버퍼는 다중 프로듀서 단일 소비자 오디오 스레드를 허용하도록 연장될 수 있다. 이들 버퍼는 음악 생성기 시스템에 의해 생성된 음악 콘텐츠에 더해진 식별자에 따라 순환 버퍼의 정적 어레이를 미리 할당하고 특정 “채널”(예를 들어, 특정 순환 버퍼)에 직렬화된 데이터를 동적으로 라우팅함으로써 실행될 수 있다. 순환 버퍼의 정적 어레이는 단일 사용자(예를 들어, 단일 소비자)에 의해 접근가능할 수 있다.
도 17은 일부 실시예에 따라 신규한 음악 콘텐츠를 저장하기 위한 예시적인 시스템의 블록도를 도시한다. 도시된 실시예에서, 시스템(1700)은 순환 버퍼 정적 어레이 모듈(1710)을 포함한다. 순환 버퍼 정적 어레이 모듈(1710)은 스레드 식별자에 따른 다중 프로듀서 단일 소비자 오디오 스레드의 저장을 허용하는 복수의 순환 버퍼를 포함할 수 있다. 예를 들어, 순환 버퍼 정적 어레이 모듈(1710)은 신규한 음악 콘텐츠(1122)를 수용할 수 있고 1712에서 사용자에 의한 접근을 위해 신규한 음악 콘텐츠를 저장할 수 있다.
다양한 실시예에서, 동적 컨테이너(벡터, 큐, 리스트)와 같은 추상적 데이터 구조는 비실시간 세이프 방식으로 실행된다. 그러나, 이러한 추상적 데이터 구조는 오디오 프로그래밍에 있어서 유용할 수 있다. 특정 실시예에서, 여기 기재된 음악 생성기 시스템은 고객 정의 리스트 데이터 구조(예를 들어, 개별적으로 링크된 리스트)를 실행한다. 다수의 함수형 프로그래밍 기법은 고객 정의 리스트 데이터 구조로부터 실행될 수 있다. 고객 정의 리스트 데이터 구조 실행은 기저 메모리 관리를 위해 (위에 기재된) “메모리 구역”을 사용할 수 있다. 일부 실시예에서, 고객 정의 리스트 데이터 구조는 직렬화가능하고, 이는 실시간 사용을 안전하게 하고 위에 기재된 다중 프로듀서 단일 소비자 오디오 스레드를 사용하여 오디오 스레드 사이에 통신가능하게 할 수 있다.
예시적인 블록체인 원장 기법
개시된 시스템은 루프 또는 트랙과 같은 생성된 음악 또는 요소에 관한 정보를 기록하도록 일부 실시예에서, 블록체인 또는 다른 암호 원장와 같은 안전한 기록 기법을 사용할 수 있다. 일부 실시예에서, 시스템은 출력 음악 콘텐츠를 생성하도록 다중 오디오 파일(예를 들어, 트랙 또는 루프)을 조합한다. 시간에서 적어도 부분적으로 중첩하는 바와 같이, 조합은 오디오 콘텐츠의 다층을 조합함으로써 수행될 수 있다. 출력 콘텐츠는 음악의 이산 피스일 수 있거나 연속적일 수 있다. 음악 요소의 추적 사용은 예를 들어, 관련 이해당사자에게 로열티를 제공하도록 연속적인 음악의 맥락에서 도전적일 수 있다. 그러므로, 일부 실시예에서, 개시된 시스템은 작곡된 음악 콘텐츠에 사용된 오디오 파일을 위한 식별자 및 사용 정보(예를 들어, 타임스탬프 또는 플레이 개수)를 기록한다. 또한, 개시된 시스템은 예를 들어, 블렌디드 오디오 파일의 맥락에서 플레이백 시간을 추적하기 위한 다양한 알고리즘을 사용할 수 있다.
여기 사용된 바와 같이, 용어 “블록체인”은 암호로 연결된 기록(블록으로 언급됨)의 세트를 언급한다. 예를 들어, 각각의 블록은 이전 블록의 암호화 해시, 타임스탬프, 및 트랜잭션 데이터를 포함할 수 있다. 블록체인은 공공 배포된 원장으로서 사용될 수 있고 통신 및 신규한 블록을 유효화하기 위해 동의된 프로토콜을 사용하는 컴퓨팅 장치의 네트워크에 의해 관리될 수 있다. 일부 블록체인 실행은 불변일 수 있는 반면에 다른 것들은 블록의 이어지는 변경을 허용할 수 있다. 일반적으로, 블록체인은 검증가능하고 영구적인 방식으로 트랜잭션을 기록할 수 있다. 블록체인 원장이 도시의 목적을 위해 여기 논의되는 한편, 개시된 기법이 다른 실시예에서 다른 유형의 암호화 원장으로 사용될 수 있음이 이해되어야만 한다.
도 18은 일부 실시예에 따른 예시적인 플레이백 데이터를 도시하는 도해이다. 도시된 실시예에서, 데이터베이스 구조는 다중 파일을 위한 엔트리를 포함한다. 각각의 도시된 엔트리는 파일 식별자, 시작 타임스탬프, 및 총 시간을 포함한다. 파일 식별자는 시스템에 의해 추적된 오디오 파일을 고유하게 식별할 수 있다. 시작 타임스탬프는 혼합된 오디오 콘텐츠에서 오디오 파일의 제 1 포함을 나타낼 수 있다. 이러한 타임스탬프는 예를 들어, 플레이백 장치의 로컬 클록에 기반하거나 인터넷 클록에 기반할 수 있다. 총 시간은 오디오 파일이 병합된 간격의 길이를 나타낸다. 예를 들어, 오디오 파일의 일부만이 사용될 수 있다면, 오디오 파일이 믹스에서 속도를 높이거나 늦춘다 등이면, 이것은 오디오 파일의 길이와 다를 수 있음을 명심한다. 일부 실시예에서, 오디오 파일이 다중 다른 시간에 병합될 때, 각각은 시간은 엔트리를 초래한다. 다른 실시예에서, 엔트리가 이미 파일에 존재한다면, 파일을 위한 추가 플레이는 기존 엔트리의 시간 필드에 대한 증가를 초래할 수 있다. 여전히 다른 실시예에서, 데이터 구조는, 병합의 길이보다는 각각의 오디오 파일이 사용되는 시간의 개수를 추적할 수 있다. 또한, 시간 기반 사용 데이터의 다른 인코딩이 고려된다.
다양한 실시예에서, 다른 장치는 플레이백 데이터를 기록할 원장를 결정하고, 저장하고, 사용할 수 있다. 예시 시나리오 및 토폴로지는 도 19를 참조하여 아래에 논의된다. 플레이백 데이터는 원장에 할당되기 전에 컴퓨팅 장치 상에 임시로 저장될 수 있다. 저장된 플레이백 데이터는 예를 들어, 엔트리의 조작 또는 거짓 엔트리의 삽입을 감소하거나 회피하도록 암호화될 수 있다.
도 19는 일부 실시예에 따라 예시 작곡 시스템을 도시한 블록도이다. 도시된 예시에서, 시스템은 플레이백 장치(1910), 컴퓨팅 시스템(1920), 및 원장(1930)을 포함한다.
도시된 실시예에서 플레이백 장치(1910)는 컴퓨팅 시스템(1920)으로부터 제어 시그널링을 수신하고 컴퓨팅 시스템(1920)으로 플레이백 데이터를 보낸다. 이러한 실시예에서, 플레이백 장치(1910)는 플레이백 장치(1910)에 의해 재생된 오디오 믹스에 기반해서 플레이백 데이터를 기록할 수 있는 플레이백 데이터 기록 모듈(1912)을 포함한다. 플레이백 장치(1910)는 또한 원장에 또는 둘 모두에 임시로 플레이백 데이터를 저장하도록 구성된 플레이백 데이터 저장 모듈(1914)을 포함한다. 플레이백 장치(1910)는 컴퓨팅 시스템(1920)에 플레이백 데이터를 주기적으로 보고할 수 있거나 실시간으로 플레이백 데이터를 보고할 수 있다. 예를 들어, 플레이백 장치(1910)가 오프라인일 때, 플레이백 데이터는 나중에 보고하기 위해 저장될 수 있다.
도시된 실시예에서, 컴퓨팅 시스템(1920)은 플레이백 데이터를 수용하고 플레이백 데이터를 반영하는 엔트리를 원장(1930)에 할당한다. 컴퓨팅 시스템(1920)은 또한 플레이백 장치(1910)에 제어 시그널링을 보낸다. 이러한 제어 시그널링은 다른 실시예에서 다양한 유형의 정보를 포함할 수 있다. 예를 들어, 제어 시그널링은 음악 콘텐츠를 작곡하기 위해 플레이백 장치(1910)에 의한 사용을 위한 구성 데이터, 믹싱 파라미터, 오디오 샘플, 머신 러닝 업데이트 등을 포함할 수 있다. 다른 실시예에서, 컴퓨팅 시스템(1920)은 음악 콘텐츠를 구성하고 제어 시그널링을 통해 음악 콘텐츠 데이터를 플레이백 장치(1910)에 스트리밍할 수 있다. 이들 실시예에서, 모듈(1912 및 1914)은 컴퓨팅 시스템(1920)에 포할될 수 있다. 일반적으로 말해서, 도 19를 참조하여 논의된 모듈 및 기능은 다양한 토폴로지에 따라서 다중 장치 사이에 분배될 수 있다.
일부 실시예에서, 플레이백 장치(1910)는 엔트리를 원장(1930)에 직접 할당하도록 구성된다. 예를 들어, 모바일 폰과 같은 플레이백 장치는 음악 콘텐츠를 구성하고, 플레이백 데이터를 결정하고 플레이백 데이터를 저장할 수 있다. 이러한 시나리오에서, 모바일 장치는 컴퓨팅 시스템(1920)과 같은 서버에 또는 원장(1930)을 유지하는 컴퓨팅 시스템(또는 컴퓨팅 노드의 세트)에 직접 플레이백 데이터를 보고할 수 있다.
일부 실시예에서, 시스템은 예를 들어, 오디오 파일 식별자에 대한 또는 오디오 파일의 세트에 대한 맵핑으로, 권리자의 기록을 유지한다. 이러한 개체의 기록은 원장(1930)에서 또는 분리 원장 또는 일부 다른 데이터 구조에서 유지될 수 있다. 예를 들어, 원장(1930)이 대중적이지만 일부 다른 데이터 구조에서 개체에 맵핑되는 비식별적 개체 식별자를 포함할 때, 이는 권리자가 익명을 유지하는 것을 허용한다.
일부 실시예에서, 음악 작곡 알고리즘은 믹스에서 포함을 위해 두 개 이상의 기존 오디오 파일로부터 신규한 오디오 파일을 생성할 수 있다. 예를 들어, 시스템은 두 개의 오디오 파일(A 및 B)에 기반해서 신규한 오디오 파일(C)를 생성할 수 있다. 그러한 블렌딩을 위한 하나의 기법은 벡터로부터 오디오 표현으로 역 변환을 사용하여 파일(A 및 B) 및 생성 파일(C)의 오디오의 벡터 표현 사이에 보간법을 사용한다. 이러한 예에서, 오디오 파일(A 및 B)을 위한 플레이 시간은 모두 증분될 수 있지만, 예를 들어, 그들이 블렌딩되었기 때문에 실제 플레이 시간보다 더 적은 시간에 의해 증분될 수 있다.
예를 들어, 오디오 파일(C)이 20초 동안 혼합된 콘텐츠에 병합되면, 오디오 파일(A)은 15초를 나타내는 플레이백 데이터를 가질 수 있고 오디오 파일(B)은 5초를 나타내는 플레이백 데이터를 가질 수 있다(그리고 블렌딩된 오디오 파일의 합계는 결과 파일(C)의 사용의 길이에 일치하거나 일치하지 않을 수 있음을 명심한다). 일부 실시예에서, 각각의 원본 파일에 대한 플레이백 시간은 블렌딩된 파일(C)와의 유사성에 기반한다. 예를 들어, 벡터 실시예에서, n 차원 벡터 표현에 있어서, 보간된 벡터(a)는 오디오 파일(A 및 B)의 벡터 표현으로부터 다음의 거리(d)를 가진다.
Figure pct00008
Figure pct00009
이들 실시예에서, 각각의 원본 파일에 대한 플레이백 시간(i)은 다음과 같이 결정될 수 있다:
Figure pct00010
Figure pct00011
여기서 t는 파일(C)의 플레이백 시간을 나타낸다.
일부 실시예에서, 보수의 형태는 원장 구조에 병합될 수 있다. 예를 들어, 특정 개체는 링크를 디스플레이하거나 광고를 포함하는 것과 같은 연주 요구사항을 갖는 정보 연관 오디오 파일을 포함할 수 있다. 이들 실시예에서, 작곡 시스템은 믹스에서 오디오 파일을 포함할 때 연관된 동작(예를 들어, 광고를 디스플레이하는 것)의 연주의 증거를 제공할 수 있다. 연주의 증거는 어떻게 그리고 언제 동작이 수행되었는지를 보여주도록 특정 분야를 요구하는 다양한 적합한 보고 템플릿 중 하나에 따라 보고될 수 있다. 연주의 증거는 시간 정보를 포함할 수 있고 연주의 거짓 주장을 회피하도록 암호 방식을 사용할 수 있다. 이들 실시예에서, 또한 연관된 요구되는 동작의 연주의 증거를 보이지 않는 오디오 파일의 사용은 로얄티 지불과 같은 보수의 일부 다른 형태를 요구할 수 있다. 일반적으로, 오디오 파일을 제출하는 다른 개체는 보수의 다른 형태에 등록할 수 있다.
위에 논의된 바와 같이, 개시된 기법은 실시간으로 구성될 때조차, 음악 믹스에서 오디오 파일 사용의 신뢰할 수 있는 기록을 제공할 수 있다. 원장의 공공성은 보수의 공정성에서 신뢰를 제공할 수 있다. 이는 차례로 아티스트 및 다른 콜라보레이터의 관여를 고무시킬 수 있고, 이는 자동화된 믹싱에 이용가능한 오디오 파일의 다양성 및 품질을 개선할 수 있다.
일부 실시예에서, 아티스트 팩은 연속적인 사운드스케이프를 생성하도록 음악 엔진에 의해 사용된 요소로 구성될 수 있다. 아트스트 팩은 전문적으로(또는 그렇지 않으면) 아티스트 또는 그룹과 같은 개체와 연관된 하나 이상의 데이터 구조에 저장된 요소의 큐레이티드된 세트일 수 있다. 이들 요소의 예는 제한 없이 루프, 작곡 규칙, 휴리스틱스, 및 신경망 벡터를 포함한다. 루프는 음악 어구의 데이터베이스에 포함될 수 있다. 각각의 루프는 일반적으로 시간의 기간에 걸쳐 음악적 진행을 연주하는 단일 악기 또는 연관된 악기의 세트이다. 이들은 짧은 루프(예를 들어, 4 바) 내지 더 긴 루프(예를 들어, 32 바 내지 64 바) 등의 범위에 있을 수 있다. 루프는 멜로디, 화음, 드럼, 베이스, 톱, FX 등과 같은 층으로 체계화될 수 있다. 루프 데이터베이스는 또한 인코딩된 루프 표현을 갖는 변분 자동 인코터로서 표현될 수 있다. 이러한 경우에, 루프는 그 자체로 필요로되지 않고, 그보다는 NN이 NN에서 인코딩된 사운드를 생성하도록 사용된다. 
휴리스틱스는 음악 엔진이 음악의 생성임을 안내하는 파라미터, 규칙, 또는 데이터를 말한다. 파라미터는 선택 길이, 효과의 사용, 변분 기법의 주파수, 음악의 복잡성, 또는 일반적으로 말해서 그것이 음악을 구성하고 발생시킴에 따라 음악 엔진 의사 결정을 증가시키도록 사용될 수 있는 임의의 유형의 파라미터로서 그러한 요소를 안내한다. 
원장은 그와 연관된 권리자를 갖는 콘텐츠의 소비에 관련된 트랜잭션을 기록한다. 이는 예를 들어, 루프, 휴리스틱스, 또는 신경망 벡터일 수 있다. 원장의 목표는 이러한 트랜잭션을 기록하고 그들을 투명한 회계에 대해 점검가능하게 하는 것이다. 원장은 발생하는 트랜잭션을 캡처하도록 의도되고, 이는 콘텐츠의 소비, 음악 엔진을 안내하는데 있어서 파라미터의 사용, 및 신경망 상의 벡터의 사용 등을 포함할 수 있다. 원장은 이산 이벤트를 포함하는 다양한 트랜잭션 유형을 기록할 수 있다(예를 들어, 이러한 루프는 이번에 재생되었다), 이러한 팩은 이러한 시간의 양 동안 재생되었다, 또는 이러한 머신 러닝 모듈(예를 들어, 신경망 모듈)은 이러한 시간의 양 동안 사용되었다.
원장은 다중 권리자와 임의의 소정 아티스트 팩, 그리고 더 입상으로, 아티스트 팩의 특정 루프 또는 다른 요소와 연관시키는 것을 가능하게 한다. 예를 들어, 라벨, 아티스트, 및 작곡가는 소정 아티스트 팩에 관한 권리를 가질 수 있다. 원장은 그들이 무리의 각각이 몇 퍼센트를 받게될지를 특정하는 팩에 관한 지불 세부사항을 연관시키는 것을 허용할 수 있다. 예를 들어, 아티스트는 25%, 라벨은 25%, 작곡가는 50%를 받을 수 있다. 이러한 트랜잭션을 관리하는 블록체인의 사용은 소액 지불이 권리자의 각각에 대해 실시간으로 이루어지거나 적절한 시간 기간에 걸쳐 축적되는 것을 허용할 수 있다. 
위에 지시된 바와 같이, 일부 실행에서, 루프는 핵심적으로 머신 러닝 모듈에서 루프의 인코딩인 VAE로 교체될 수 있다. 이러한 경우에, 원장은 재생시간을 머신 러닝 모듈을 포함하는 특정 아티스트 팩과 연관시킬 수 있다. 예를 들어, 아티스트 팩이 모든 장치를 가로질러 총 재생 시간의 총 10% 상에 재생되면, 그때 이러한 아티스트는 총 수입 분배의 10%를 받을 수 있다.  
일부 실시예에서, 시스템은 아티스트가 아티스트 프로필을 생성하는 것을 허용한다. 프로파일은 아티스트 신원을 확인하도록 요구되는 바이오, 프로필 사진, 뱅킹 세부사항, 및 다른 데이터를 포함하는 아티스트를 위한 적절한 정보를 포함한다. 일단 아티스트 프로필이 생성되면, 그때 아티스트는 아티스트 팩을 업로드하고 공개할 수 있다. 이들 팩은 사운드스케이프를 생성하도록 음악 엔진에 의해 사용된 요소를 포함한다. 
생성되는 각각의 아티스트 팩에 있어서, 권리자는 규정될 수 있고 팩과 연관될 수 있다. 각각의 권리자는 팩의 퍼센트를 청구할 수 있다. 덧붙여, 각각의 권리자는 프로필을 생성하고 은행 계좌를 지불을 위한 프로필과 연관시킨다. 아티스트는 스스로 권리자이고 팩과 연관된 권리의 100%를 소유할 수 있다.  
수입 인식을 위해 사용될 원장에서 이벤트를 기록하는 것에 덧붙여, 원장은 아티스트 팩과 연관된 홍보를 관리할 수 있다. 예를 들어, 아티스트 팩은 한 달 무료 홍보를 가질 수 있고, 발생된 수입은 홍보가 작동하지 않을 때와는 다를 것이다. 원장이 권리자에 대한 지불을 계산함에 따라, 그것은 자동으로 이들 수입 입력에 대해 계산한다.   
권리 관리에 관한 이러한 동일 모델은 아티스트가 하나 이상의 외부 권리자에게 팩에 대한 권리를 판매하는 것을 허용할 수 있다. 예를 들어, 신규한 팩의 론칭에서, 아티스트는 팬이나 투자자에게 팩에 지분의 50%를 판매함으로써 팩을 미리 펀딩할 수 있다. 이러한 경우에 투자자/권리자의 수는 임으로 클 수 있다. 예로서, 아티스트는 10만명의 사용자에게 그들 퍼센트의 50%를 팔 수 있고, 그들은 팩에 의해 발생된 수입의 10만분의 1을 얻을 것이다. 모든 회계가 원장에 의해 관리되기 때문에, 투자자는 이러한 시나리오에서 직접 지불받을 수 있고, 아티스트 계좌의 감사에 대한 임의의 필요를 제거한다.
예시적인 사용자 및 기업 GUI
도 20a 및 도 20b는 일부 실시예에 따른 그래픽 사용자 인터페이스를 예시하는 블록도이다. 도시된 실시예에서, 도 20a는 사용자 애플리케이션(2010)에 의해 디스플레이된 GUI를 포함하고 도 20b는 기업 애플리케이션(2030)에 의해 디스플레이된 GUI를 포함한다. 일부 실시예에서, 도 20a 및 도 20b에 표시된 GUI는 애플리케이션이 아닌 웹 사이트에 의해 생성된다. 다양한 실시예에서, 다이얼(예를 들어, 볼륨, 에너지 등을 제어하기 위함), 버튼, 노브, 디스플레이 박스(예를 들어, 사용자에게 업데이트된 정보 제공) 중 하나 이상을 포함하는 다양한 적절한 요소 중 임의의 것이 디스플레이될 수 있다.
도 20a에서, 사용자 애플리케이션(2010)은 하나 이상의 아티스트 팩을 선택하기 위한 섹션(2012)을 포함하는 GUI를 표시한다. 일부 실시예에서, 팩(2014)은 대안 적으로 또는 추가적으로 테마 팩 또는 특정 행사(예를 들어, 결혼식, 생일 파티, 졸업식 등)를 위한 팩을 포함할 수 있다. 일부 실시예에서, 섹션(2012)에 도시된 팩의 수는 한 번에 섹션(2012)에 디스플레이될 수 있는 수보다 많다. 따라서, 일부 실시예에서, 사용자는 하나 이상의 팩(2014)을 보기 위해 섹션(2012)에서 위 및/또는 아래로 스크롤한다. 일부 실시예에서, 사용자는 자신이 듣기 원하는 출력 음악 콘텐츠의 기반이 된 아티스트 팩(2014)을 선택할 수 있다. 일부 실시예에서, 아티스트 팩은 예를 들어 구매 및/또는 다운로드될 수 있다.
예시된 실시예에서, 선택 요소(2016)는 사용자가 하나 이상의 음악 속성(예를 들어, 에너지 레벨)을 조절할 수 있게 한다. 일부 실시예에서, 선택 요소(2016)는 사용자가 하나 이상의 타겟 음악 속성을 추가/삭제/수정하도록 하게 한다. 다양한 실시예에서, 선택 요소(2016)는 하나 이상의 UI 제어 요소(예를 들어, 제어 요소(830))를 발생시킬 수 있다.
예시된 실시예에서, 선택 요소(2020)는 사용자가 장치(예를 들어, 모바일 장치)가 목표 음악적 속성을 결정하기 위해 환경을 청취하게 할 수 있게 한다. 일부 실시예에서, 장치는 사용자가 선택 요소(2020)를 선택한 후 하나 이상의 센서(예를 들어, 카메라, 마이크, 온도계 등)를 사용하여 환경에 대한 정보를 수집한다. 일부 실시예에서, 애플리케이션(2010)은 또한 사용자가 선택 요소(2020)를 선택할 때 애플리케이션에 의해 수집된 환경 정보에 기초하여 하나 이상의 아티스트 팩을 선택하거나 제안한다.
예시된 실시예에서, 선택 요소(2022)는 사용자가 새로운 규칙 세트를 생성하기 위해 다수의 아티스트 팩을 결합할 수 있게 한다. 일부 실시예에서, 새로운 규칙 세트는 사용자가 동일한 아티스트에 대해 하나 이상의 팩을 선택하는 것에 기초한다. 다른 실시예에서, 새로운 규칙 세트는 사용자가 상이한 아티스트들에 대해 하나 이상의 팩을 선택하는 것에 기초한다. 예를 들어, 사용자는 상이한 규칙 세트에 대한 가중치를 표시할 수 있으며, 이로써, 예를 들어, 가중치가 높은 규칙 세트는 가중치가 낮은 규칙 세트보다 생성된 음악에 더 많은 영향을 미친다. 음악 생성기는 예를 들어, 상이한 규칙 세트로부터의 규칙들 간을 스위칭하고, 다수의 상이한 규칙 세트로부터의 규칙들에 대한 값들을 평균화함으로써, 다수의 상이한 방식으로 규칙 세트를 결합할 수 있다.
예시된 실시예에서, 선택 요소(2024)는 사용자가 하나 이상의 규칙 세트 내의 규칙(들)을 수동으로 조절할 수 있게 한다. 예를 들어, 일부 실시예에서, 사용자는 음악 콘텐츠를 생성하는 데 사용되는 규칙 세트에서 하나 이상의 규칙을 조절함으로써 더 세분화된 레벨에서 생성되게 음악 콘텐츠를 조절하기를 원한다. 일부 실시예에서, 이로써, 애플리케이션(2010)의 사용자가, 출력 음악 콘텐츠를 생성하기 위해 음악 생성기에 의해 사용되는 규칙 세트를 조절하기 위해, 도 20a의 GUI에 디스플레이된 제어사항을 사용함으로써, 자신의 디스크 자키(DJ)가 되도록 하게 한다. 이들 실시예는 또한 타겟 음악 속성의 보다 세밀한 제어를 실현할 수 있다.
도 20b에서, 기업 애플리케이션(2030)은 아티스트 팩(2014)을 갖는 아티스트 팩 선택 섹션(2012)을 또한 포함하는 GUI를 디스플레이한다. 예시된 실시예에서, 애플리케이션(2030)에 의해 디스플레이되는 기업 GUI는 또한 하나 이상의 음악 속성을 조절/추가/삭제하기 위한 요소(2016)를 포함한다. 일부 실시예에서, 도 20b에 표시된 GUI는 음악 콘텐츠를 생성함으로써 (예를 들어, 판매를 최적화하기 위한) 특정 환경을 생성하기 위해서 비즈니스 또는 상점 프론트에서 사용된다. 일부 실시예에서, 직원은 애플리케이션(2030)을 사용하여 이전에 판매를 증가시키는 것으로 보여진 하나 이상의 아티스트 팩을 선택한다(예를 들어, 소정의 규칙 세트에 대한 메타 데이터는 실제 상황에서 규칙 세트를 사용하여 실제 실험 결과를 나타낼 수 있음).
예시된 실시예에서, 입력 하드웨어(2040)는 기업 애플리케이션(2030)을 디스플레이하고 있는 애플리케이션 또는 웹 사이트에 정보를 전송한다. 일부 실시예에서, 입력 하드웨어(2040)는 금전 등록기, 열 센서, 광 센서, 시계, 소음 센서 등 중 하나이다. 일부 실시예에서, 위에 나열된 하나 이상의 하드웨어 장치로부터 전송된 정보는 특정 환경에 대한 출력 음악 콘텐츠를 생성하기 위한 목표 음악 속성 및/또는 규칙 세트를 조절하는 데 사용된다. 예시된 실시예에서, 선택 요소(2038)는 애플리케이션(2030)의 사용자가 환경 입력을 수신할 하나 이상의 하드웨어 장치를 선택할 수 있게 한다.
예시된 실시예에서, 디스플레이(2034)는 입력 하드웨어(2040)로부터의 정보에 기초하여 애플리케이션(2030)의 사용자에게 환경 데이터를 디스플레이한다. 예시된 실시예에서, 디스플레이(2032)는 환경 데이터에 기초한 규칙 세트에 대한 변경을 보여준다. 일부 실시예에서, 디스플레이(2032)는 애플리케이션(2030)의 사용자가 환경 데이터에 기초하여 이루어진 변경을 볼 수 있게 한다.
일부 실시예에서, 도 20a 및 20b에 도시된 요소는 테마 팩 및/또는 행사 팩을 위한 것이다. 즉, 일부 실시예에서, 애플리케이션(2010 및 2030)에 의해 디스플레이되는 GUI를 사용하는 사용자 또는 기업은 하나 이상의 행사 및/또는 테마에 대한 음악 콘텐츠를 생성하기 위해 규칙 세트를 선택/조정/수정할 수 있다.
상세한 예시적인 음악 생성기 시스템
도 21 내지 도 23는 음악 생성기 모듈(160)의 특정 실시예에 관한 세부 사항을 도시한다. 이들 특정 예는 예시의 목적으로 개시되었지만, 본 발명의 범위를 제한하려는 의도는 없다는 점에 유의한다. 이들 실시예에서, 루프들로부터 음악의 구성은 개인용 컴퓨터, 모바일 장치, 미디어 장치 등과 같은 클라이언트 시스템에 의해 수행된다. 도 21 내지 도 23의 설명에서 사용된 바와 같이, 용어 "루프"는 용어 "오디오 파일"과 상호교차가능하다. 일반적으로, 루프는 여기 기술된 바와 같이 오디오 파일에 포함된다. 루프는 아티스트 팩이라고도 하는 전문적으로 큐레이트된 루프 팩으로 분할될 수 있다. 루프는 음악 속성에 대해 분석될 수 있으며 속성은 루프 메타 데이터로 저장될 수 있다. 구성된 트랙의 오디오를 분석(예를 들어, 실시간)하고 필터링하여 출력 스트림을 믹싱 및 마스터링할 수 있다. 슬라이더 또는 버튼과의 사용자 상호 작용과 같은 명시적 피드백 및 예를 들어, 청취 길이, 환경 정보 등에 기초하거나 볼륨 변화에 기초하거나 센서에 의해 생성되는 암시적 피드백을 포함하는 다양한 피드백이 서버로 전송될 수 있다. 일부 실시예에서, 제어 입력은 (예를 들어, 직접 또는 간접적으로 타겟 음악 속성을 지정하기 위한) 공지된 효과를 가지며 작곡 모듈에 의해 사용된다.
다음 설명에서는, 도 21 내지 도 23를 참조하여 사용되는 다양한 용어를 소개한다. 일부 실시예에서, 루프 라이브러리는 서버에 의해 저장될 수 있는 루프의 마스터 라이브러리이다. 각 루프에는 오디오 데이터 및 오디오 데이터를 설명하는 메타 데이터가 포함될 수 있다. 일부 실시예에서, 루프 패키지는 루프 라이브러리의 서브세트이다. 루프 패키지는 특정 아티스트, 특정 분위기, 특정 유형의 이벤트 등에 대한 팩일 수 있다. 클라이언트 장치는 오프라인 청취를 위해 루프 팩을 다운로드하거나 온라인 청취와 같은 요청에 따라 루프 팩의 일부를 다운로드할 수 있다.
일부 실시예에서, 생성된 스트림은 사용자가 음악 생성기 시스템을 사용할 때 듣는 음악 콘텐츠를 지정하는 데이터이다. 실제 출력 오디오 신호는 예를 들어 오디오 출력 장비의 연주에 따라, 소정의 생성된 특정 스트림마다 약간 다를 수 있다.
일부 실시예에서, 작곡 모듈은 루프 패키지에서 이용 가능한 루프로부터 작곡물을 구성한다. 작곡 모듈은 루프, 루프 메타 데이터 및 사용자 입력을 파라미터로 수신할 수 있으며 클라이언트 장치에 의해 실행될 수 있다. 일부 실시예에서, 작곡 모듈은 연주 모듈 및 하나 이상의 머신 러닝 엔진으로 전송되는 연주 스크립트를 출력한다. 일부 실시예에서, 연주 스크립트는 생성된 스트림의 각 트랙에서 재생될 루프와 스트림에 적용될 효과를 개략적으로 설명한다. 연주 스크립트는 이벤트 발생시기를 나타내기 위해 비트-상대 타이밍을 활용할 수 있다. 연주 스크립트는 또한 효과 파라미터를 인코딩할 수 있다(예를 들어, 리버브, 지연, 압축, 이퀄라이제이션 등과 같은 효과에 대한 파라미터).
일부 실시예에서, 연주 모듈은 입력으로서 연주 스크립트를 수신하고 이를 생성된 스트림으로 렌더링한다. 연주 모듈은 연주 스크립트에 의해 지정된 개수의 트랙을 생성하고 트랙들을 스트림(예를 들어, 스테레오 스트림)으로 믹싱할 수 있다(단, 스트림은 다양한 실시예들에서, 서라운드 인코딩, 객체 기반 오디오 인코딩, 다중 채널 스테레오를 포함한 다양한 인코딩을 가질 수 있다). 일부 실시예에서, 특정 연주 스크립트가 제공될 때, 연주 모듈은 항상 동일한 출력을 생성한다.
일부 실시예에서, 분석 모듈은 피드백 정보를 수신하고 (예를 들어, 관리자 명령 등에 기초하여, 실시간으로, 주기적으로) 작성 모듈을 구성하는 서버 구현 모듈이다. 일부 실시예에서, 분석 모듈은 연주 스크립트 및 루프 라이브러리 메타 데이터와 사용자 피드백을 상관시키기 위해 머신 러닝 기술의 조합을 사용한다.
도 21은 일부 실시예에 따른, 분석 모듈 및 작곡 모듈을 포함하는 예시적인 음악 생성기 시스템을 나타내는 블록도이다. 일부 실시예에서, 도 21의 시스템은 음악의 분위기 및 스타일에 대한 직접적인 사용자 제어로 잠재적으로 무한한 음악 스트림을 생성하도록 구성된다. 예시된 실시예에서, 시스템은 분석 모듈(2110), 작곡 모듈(2120), 연주 모듈(2130) 및 오디오 출력 장치(2140)를 포함한다. 일부 실시예에서, 분석 모듈(2110)은 서버에 의해 구현되고 작곡 모듈(2120) 및 연주 모듈(2130)은 하나 이상의 클라이언트 장치에 의해 구현된다. 다른 실시예에서, 모듈(2110, 2120 및 2130)은 모두 클라이언트 장치에서 구현될 수 있거나 모두 서버 측에서 구현될 수 있다.
예시된 실시예에서, 분석 모듈(2110)은 하나 이상의 아티스트 팩(2112)을 저장하고 특징 추출 모듈(2114), 클라이언트 시뮬레이터 모듈(2116) 및 심층 신경망(2118)을 구현한다.
일부 실시예에서, 특징 추출 모듈(2114)은 루프 오디오를 분석한 후에 루프를 루프 라이브러리에 추가한다(단, 일부 루프는 이미 생성된 메타 데이터와 함께 수신될 수 있고 분석을 필요로 하지 않을 수 있음에 유의한다). 예를 들어, wav, aiff 또는 FLAC와 같은 형식의 로우(raw) 오디오는 다수의 주파수 빈에서 악기 분류, 피치 트랜스크립션, 비트 타이밍, 템포, 파일 길이 및 오디오 진폭과 같은 정량화 가능한 음악 속성에 대해 분석될 수 있다. 분석 모듈(2110)은 또한 예를 들어 아티스트 또는 기계 청취에 의한 수동 태깅에 기초하여 루프에 대한 더 추상적인 음악 속성 또는 분위기 기술사항들을 저장할 수 있다. 예를 들어, 분위기는 소정의 루프에 대한 각 범주의 값 범위와 함께 다수의 개별 범주를 사용하여 정량화될 수 있다.
예를 들어, 루프 A가 분석되어, G2, Bb2, D2 음표가 사용되고, 제 1 비트는 파일에서 6 밀리초에서 시작하며, 템포는 122bpm이며, 파일 길이는 6483 밀리초이며, 루프는 5 개의 주파수 빈에 걸쳐 0.3, 0.5, 0.7, 0.3 및 0.2의 정규화된 진폭 값을 갖는다고 결정된 것을 고려해보자. 아티스트는 다음의 분위기 값을 사용하여 루프를 "펑크 장르"로 분류할 수 있다.
초월 평화 기쁨 슬픔 긴장
높음 높음 낮음 중간 없음 낮음
분석 모듈(2110)은 이러한 정보를 데이터베이스에 저장할 수 있고 클라이언트는 예를 들어 루프 패키지로서 이 정보의 서브섹션을 다운로드할 수 있다. 아티스트 팩(2112)이 예시 목적으로 도시되었지만, 분석 모듈(2110)은 다양한 유형의 루프 패키지를 합성 모듈(2120)에 제공할 수 있다.
예시된 실시예에서, 클라이언트 시뮬레이터 모듈(2116)은 다양한 유형의 피드백을 분석하여 심층 신경망(2118)에 의해 지원되는 형식으로 피드백 정보를 제공한다. 예시된 실시예에서, 심층 신경망(2118)은 또한 입력으로서 합성 모듈에 의해 생성된 연주 스크립트를 수신한다. 일부 실시예에서, 심층 신경망은 예를 들어 생성된 음악 출력 유형과 원하는 피드백 사이의 상관 관계를 개선하기 위해 이러한 입력에 기초하여 작곡 모듈을 구성한다. 예를 들어, 심층 신경망은 작곡 모듈(2120)을 구현하는 클라이언트 장치에 업데이트를 주기적으로 입력할 수 있다. 심층 신경망(2118)은 예시의 목적으로 도시되고, 개시된 실시예에서 강력한 머신 러닝 연주을 제공할 수 있지만, 본 발명의 범위를 제한하려는 의도는 아님에 유의한다. 다양한 실시예에서, 다양한 유형의 머신 러닝 기술은 유사한 기능을 수행하기 위해 단독으로 또는 다양한 조합으로 구현될 수 있다. 머신 러닝 모듈은 일부 실시예에서, 직접적으로 규칙 세트(예를 들어, 정렬 규칙 또는 기술)를 구현하는 데 사용될 수 있거나, 예를 들어, 예시된 실시예에서의 심층 신경망(2118)을 사용하여, 다른 유형의 규칙 세트를 구현하는 모듈을 제어하는 데 사용될 수 있다.
일부 실시예들에서, 분석 모듈(2110)은 목표 피드백과 특정 파라미터의 사용 간의 상관 관계를 개선하기 위해 작곡 모듈(2120)을 위한 작곡 파라미터를 생성한다. 예를 들어, 실제 사용자 피드백은 예를 들어 부정적인 피드백을 줄이기 위해 작곡 파라미터를 조절하는 데 사용될 수 있다.
일례로, 모듈(2110)이 부정적인 피드백(예를 들어, 명시적 낮은 순위, 낮은 볼륨 청취, 짧은 청취 시간 등)과 많은 수의 레이어를 사용하는 작곡물 간의 상관 관계를 발견하는 상황을 고려해보자. 일부 실시예에서, 모듈(2110)은 더 많은 트랙을 추가하기 위해 사용되는 확률 파라미터를 조절하는 것이 이러한 문제의 빈도를 감소시키는지 결정하기 위해 역전파와 같은 기술을 사용한다. 예를 들어, 모듈(2110)은 확률 파라미터를 50 % 감소시키면 부정적인 피드백이 8 % 감소할 것이라고 예측할 수 있으며, 이러한 감소를 수행하고 업데이트된 파라미터를 합성 모듈에 입력하기로 결정할 수 있다(단, 확률 파라미터는 아래에서 자세히 논의되지만, 통계 모델에 대한 다양한 파라미터가 유사하게 조절될 수 있음).
다른 예로서, 모듈(2110)이 부정적인 피드백이 사용자가 분위기 제어를 높은 긴장감으로 설정하는 것과 상관 관계가 있음을 발견하는 상황을 고려해보자. 낮은 긴장감 태그를 갖는 루프와 사용자가 높은 긴장감을 요구하는 것 간의 상관 관계도 찾을 수 있다. 이 경우, 모듈(2110)은 사용자가 높은 긴장감 음악을 요청할 때 높은 긴장감 태그를 갖는 루프를 선택할 확률이 높아지도록 파라미터를 증가시킬 수 있다. 따라서, 머신 러닝은 작곡 출력, 피드백 정보, 사용자 제어 입력 등을 포함하는 다양한 정보를 기반으로 할 수 있다.
예시된 실시예에서, 작곡 모듈(2120)은 섹션 시퀀서(2122), 섹션 정렬 기(2124), 기법 구현 모듈(2126) 및 루프 선택 모듈(2128)을 포함한다. 일부 실시예에서, 작곡 모듈(2120)은 루프 메타 데이터 및 사용자 제어 입력(예를 들어, 분위기 제어)에 기초하여 작곡물의 섹션을 조직하고 구성한다.
섹션 시퀀서(2122)는 일부 실시예에서, 상이한 유형의 섹션을 시퀀싱한다. 일부 실시예에서, 섹션 시퀀서(2122)는 동작 중에 다음 유형의 섹션을 연속적으로 출력하기 위해 유한 상태 머신을 구현한다. 예를 들어, 작곡 모듈(2120)은 도 23를 참조하여 아래에서 더 상세히 논의되는 바와 같이, 인트로, 빌드업, 드롭, 브레이크다운 및 브리지와 같은 상이한 유형의 섹션을 사용하도록 구성될 수 있다. 또한, 각 섹션은 예를 들어, 트랜지션-인 서브섹션, 메인 콘텐츠 서브섹션 및 트랜지션-아웃 서브섹션과 같은, 섹션 전체에 걸쳐서 음악이 어떻게 변경되는지를 정의하는 다수의 서브섹션을 포함할 수 있다.
섹션 정렬기(2124)는 일부 실시예에서, 정렬 규칙에 따라 서브섹션들을 구성한다. 예를 들어, 일 규칙은 트랙을 점진적으로 추가함으로써 트랜지션-인되도록 지정할 수 있다. 또 다른 규칙은 트랙 세트에서 게인(gain)을 점진적으로 증가시킴으로써 트랜지션-인되도록 지정할 수 있다. 또 다른 규칙은 멜로디를 만들기 위해 보컬 루프를 자르도록 지정할 수 있다. 일부 실시예에서, 루프 라이브러리 내의 루프가 트랙에 추가될 확률은 섹션 또는 서브섹션 내에서의 현재 위치, 다른 트랙 상에서 시간적으로 겹치는 루프들, 및 (생성된 음악 콘텐츠에 대한 타겟 속성을 결정하는 데 사용될 수 있는) 분위기 변수와 같은 사용자 입력 파라미터의 함수이다. 예를 들어, 기계 학습을 기반으로 계수를 조절함으로써 상기 함수가 조절될 수 있다.
일부 실시예에서, 기법 구현 모듈(2120)은 예를 들어, 아티스트에 의해 지정되거나 특정 아티스트의 작곡물을 분석함으로써 결정되는 규칙들을 추가함으로써 섹션 정렬을 용이하게 하도록 구성된다. "기법"은 특정 아티스트가 테크니컬 수준에서 정렬 규칙을 구현하는 방식을 설명할 수 있다. 예를 들어, 트랙들을 점진적으로 추가하여 트랜지션-인되도록 지정하는 정열 규칙의 경우, 일 기법은 드럼, 베이스, 패드, 보컬 순으로 트랙들을 추가하도록 지시할 수 있고, 다른 기법은 베이스, 패드, 보컬, 드럼의 순으로 트랙을 추가하도록 지시할 수 있다. 유사하게, 멜로디를 만들기 위해 보컬 루프를 자르도록 지정하는 정렬 규칙의 경우, 기법은 매 두 번째 비트에서 보컬을 자르고, 다음의 잘린 섹션으로 이동하기 전에 루프의 잘린 섹션을 두 번 반복하도록 지시할 수 있다.
예시된 실시예에서, 루프 선택 모듈(2128)은 섹션 정렬기(2124)가 섹션에 포함시킬 루프를, 정렬 규칙 및 기법에 따라, 선택한다. 섹션이 완료되면, 대응하는 연주 스크립트가 생성되어 연주 모듈(2130)로 전송될 수 있다. 연주 모듈(2130)은 다양한 입도에서 연주 스크립트 부분을 수신할 수 있다. 예를 들어, 이는 특정 길이의 연주에 대한 전체 연주 스크립트, 각 섹션에 대한 연주 스크립트, 각 서브섹션에 대한 연주 스크립트 등을 포함할 수 있다. 일부 실시예에서, 정렬 규칙, 기법 또는 루프 선택은 통계적으로 구현되며, 예를 들어, 상이한 방식들이 상이한 시간 비율을 사용한다.
예시된 실시예에서, 연주 모듈(2130)은 필터 모듈(2131), 효과 모듈(2132), 믹스 모듈(2133), 마스터 모듈(2134) 및 수행 모듈(2135)을 포함한다. 일부 실시예에서, 이들 모듈은 연주 스크립트를 처리하고 오디오 출력 장치(2140)에 의해 지원되는 포맷으로 음악 데이터를 생성한다. 연주 스크립트는 재생될 루프, 재생되어야하는 시기, 모듈(2132)에 의해 적용되어야 하는 효과(예를 들어, 트랙별 또는 서브섹션별), 모듈(2131)에 의해 적용되어야 하는 필터, 등을 지정할 수 있다.
예를 들어, 연주 스크립트는 특정 트랙 상에서 0에서 5000 밀리초까지 1000에서 20000Hz까지 램핑하는 저역 통과 필터를 적용하도록 지정할 수 있다. 또 다른 예로, 연주 스크립트는 특정 트랙 상에서 5000에서 15000 밀리초까지 0.2 웨트(wet) 설정으로 리버브(reverb)를 적용하도록 지정할 수 있다.
일부 실시예에서, 믹스 모듈(2133)은 결합되는 트랙에 대해 자동화된 레벨 제어를 수행하도록 구성된다. 일부 실시예에서, 믹스 모듈(2133)은 결합된 트랙의 주파수 도메인 분석을 사용하여 너무 많거나 너무 적은 에너지를 갖는 주파수를 측정하고 믹스에도 상이한 주파수 대역들의 트랙들에 대한 이득을 적용한다. 일부 실시예에서, 마스터 모듈(2134)은 수행 모듈(2135)에 의한 최종 포맷팅을 위한 데이터를 생성하기 위해 다중 대역 압축, 등화(EQ) 또는 제한 절차를 수행하도록 구성된다. 도 21의 실시예는 사용자 입력 또는 다른 피드백 정보에 따라 다양한 출력 음악 콘텐츠를 자동으로 생성할 수 있는 반면, 머신 러닝 기술은 시간이 지남에 따라 개선된 사용자 경험을 실현할 수 있다.
도 22은 일부 실시예에 따른 음악 콘텐츠의 예시적인 빌드업 섹션을 예시하는 다이어그램이다. 도 21의 시스템은 정렬 규칙과 기법을 적용하여 이러한 섹션을 구성할 수 있다. 예시된 예에서, 빌드업 섹션에는 보컬, 패드, 드럼,베이스 및 화이트 노이즈에 대한 세 개의 서브섹션과 별도의 트랙이 포함되어 있다.
예시된 예에서, 트랜지션-인 서브섹션은 드럼 루프 A를 포함하며, 이는 메인 콘텐츠 서브섹션에 대해서도 반복된다. 트랜지션-인 서브섹션은 베이스 루프 A도 포함한다. 도시된 바와 같이, 섹션에 대한 이득은 낮게 시작하여 섹션 전체에 걸쳐 선형적으로 증가한다(단, 비선형 증가 또는 감소가 고려될 수도 있다). 예시된 예에서, 메인 콘텐츠 및 트랜지션-아웃 서브섹션에는 다양한 보컬, 패드, 드럼 및 베이스 루프가 포함된다. 전술한 바와 같이, 섹션들을 자동으로 시퀀싱하고, 섹션들을 정렬하고, 기법을 구현하기 위한 개시된 기술은, 다양한 사용자 조절 가능한 파라미터에 기초하여 출력 음악 콘텐츠의 거의 무한 스트림을 생성할 수 있다.
일부 실시예에서, 컴퓨터 시스템은 도 22과 유사한 인터페이스를 표시하고 아티스트가 섹션들을 구성하는 데 사용되는 기법들을 지정할 수 있도록 한다. 예를 들어, 아티스트는 작곡 모듈을 위한 코드 내로 파싱될될 수 있는 도 22과 같은 구조를 생성할 수 있다.
도 23는 일부 실시예에 따라, 음악 콘텐츠의 섹션을 정렬하기 위한 예시적인 기술을 예시하는 다이어그램이다. 예시된 실시예에서, 생성된 스트림(2310)은 각각이 시작 서브섹션(2322), 전개 서브섹션(2324) 및 트랜지션 서브섹션(2326)을 포함하는 다수의 섹션(2320)을 포함한다. 예시된 예에서, 각 섹션/서브섹션의 다수의 유형이 점선으로 연결된 테이블에 표시된다. 예시된 실시예에서, 원형 요소는 정렬 도구의 예이며, 이는 아래에서 논의되는 특정 기법을 사용하여 추가로 구현될 수 있다. 도시된 바와 같이, 다양한 작곡 결정사항은 통계적 백분율에 따라 의사 무작위로 수행될 수 있다. 예를 들어, 서브섹션의 유형, 특정 유형 또는 서브섹션에 대한 정렬 도구 또는 정렬 도구를 구현하는 데 사용되는 기법이 통계적으로 결정될 수 있다.
예시된 예에서, 소정의 섹션(2320)은 인트로, 빌드업, 드롭, 브레이크다운 및 브리지의 5 가지 유형 중 하나이며, 각각은 해당 섹션에 대한 강도를 제어하는 상이한 기능을 갖는다. 본 예에서, 상태 서브섹션은 느린 빌드, 갑작스러운 시프트 또는 미니멀과 같은 세 가지 유형 중 하나이며, 각각은 상이한 거동을 갖는다. 본 예에서, 전개 서브섹션은 축소, 변환 또는 증가의 세 가지 유형 중 하나이다. 본 예에서, 트랜지션 서브섹션은 컬랩스(collapse), 램프(ramp) 또는 힌트의 세 가지 유형 중 하나이다. 상이한 유형의 섹션 및 서브섹션은 규칙에 기초하여 선택될 수 있거나, 예를 들어 의사 무작위로 선택될 수 있다.
예시된 예에서, 상이한 서브섹션 유형에 대한 거동은 하나 이상의 정렬 도구를 사용하여 구현된다. 느린 빌드의 경우, 본 예에서는, 시간의 40 %만큼, 저역 통과 필터가 적용되고, 시간의 80 %만큼, 레이어가 추가된다. 변환 전개 서브섹션의 경우, 본 예에서는, 시간의 25 %만큼, 루프가 잘린다(chopped). 원샷, 드롭 아웃 비트, 리버브 적용, 패드 추가, 테마 추가, 레이어 제거 및 화이트 노이즈를 포함한 다양한 추가 정렬 도구가 표시된다. 이들 예는 예시의 목적으로 포함되며 본 발명 내용의 범위를 제한하려는 의도가 아니다. 또한, 예시를 용이하게 하기 위해, 이러한 예는 완전하지 않을 수 있다(예를 들어, 실제 정렬은 일반적으로 훨씬 더 많은 정렬 규칙을 포함할 수 있음).
일부 실시예에서, 하나 이상의 정렬 도구는 특정 기법(아티스트의 콘텐츠의 분석에 기초하여 결정되거나 아티스트에 의해서 특정될 수 있음)을 사용하여 구현될 수 있다. 예를 들어, 원샷은 사운드 효과 또는 보컬을 사용하여 구현할 수 있으며, 루프 쵸핑(loop chopping)은 스터터(stutter) 또는 촙-인-하프(chop-in-half) 기법을 사용하여 구현할 수 있으며, 레이어 제거는 신스(synth)를 제거하거나 보컬을 제거하여 구현할 수 있으며, 화이트 노이즈는 램프 또는 펄스 기능 등을 사용하여 구현될 수 있다. 일부 실시예에서, 소정의 정렬 도구에 대해 선택된 특정 기법은 통계 함수에 따라 선택될 수 있다(예를 들어, 시간의 30 %만큼, 레이어 제거는 신스를 제거할 수 있고 시간의 70%만큼, 소정의 아티스트에 대한 보컬을 제거할 수 있음). 위에서 논의한 바와 같이, 정렬 규칙 또는 기법은 예를 들어 기계 학습을 사용하여 기존의 작곡물들을 분석함으로써 자동으로 결정될 수 있다.
예시 방법
도 24는 일부 실시예에 따라 원장를 사용하기 위한 흐름도 방법이다. 도 24에 도시된 방법은 다른 것들 가운데, 컴퓨터 회로, 시스템, 장치, 요소, 또는 여기 개시된 구성요소 중 어느 하나와 연관해서 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소의 일부는 도시된 바와 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 추가 방법 요소는 또한 소망에 따라 수행될 수 있다.
도시된 실시예에서, 2410에서, 컴퓨팅 장치는 음악 콘텐츠 믹스의 플레이백의 특성을 나타내는 플레이백 데이터를 판단한다. 믹스는 다중 오디오 트랙의 결정된 조합을 포함할 수 있다(트랙의 조합은 실시간으로, 예를 들어, 콘텐츠의 연속적인 스트림일 수 있는 음악 콘텐츠 믹스의 현재 부분의 출력 바로 전에 결정될 수 있음에 유념한다). 결정은 (예를 들어, 모바일 폰과 같은 서버 또는 플레이백 장치에 의해) 콘텐츠 믹스를 구성하는 것에 기반할 수 있거나 믹스에 포함될 오디오 파일을 결정하는 또 다른 장치로부터 수용될 수 잇다. 플레이백 데이터는 (예를 들어, 오프라인 모드에) 저장될 수 있고 암호화될 수 있다. 플레이백 데이터는 주기적으로 또는 특정 이벤트(예를 들어, 서버에 대한 연결성을 재획득함)에 응답해서 보고될 수 있다.
2420에서, 도시된 실시예에서, 컴퓨팅 장치는 전자 블록 체인 원장 데이터 구조에서, 음악 콘텐츠 믹스에서 다중 오디오 트랙 중 하나 이상에 대해 개별적인 플레이백 데이터를 특정하는 정보를 기록한다. 도시된 실시예에서, 개별적인 오디오 트랙에 있어서 개별적인 플레이백 데이터를 특정하는 정보는 개별적인 오디오 트랙에 관한 사용 데이터 및 개별적인 오디오 트랙과 연관된 시그니처 정보를 포함한다.
일부 실시예에서, 시그니처 정보는 하나 이상의 개체를 위한 식별자이다. 예를 들어, 시그니처 정보는 스트링 또는 고유한 식별자일 수 있다. 다른 실시예에서, 서명 정보는 암호화되거나 그렇지 않으면 다른 것들이 개체(들)를 식별하는 것을 회피하도록 난독화될 수 있다. 일부 실시예에서, 사용 데이터는 음악 콘텐츠 믹스에 대해 재생되는 시간 또는 음악 콘텐츠 믹스에 대해 재생되는 다수의 시간 중 적어도 하나를 포함한다.
일부 실시예에서, 음악 콘텐츠 믹스에서 개별적인 오디오 트랙을 식별하는 데이터는 또한 하나 이상의 개별적인 오디오 트랙의 포함과 연관해서 수행될 동작을 나타내는 데이터 스토어로부터 검색된다. 이들 실시예에서, 레코딩은 지시된 동작의 연주의 증거의 지시를 기록하는 것을 포함할 수 있다.
일부 실시예에서, 시스템은 전자 블록체인 원장에 기록된 개별적인 플레이백 데이터를 특정하는 정보에 기반해서, 복수의 오디오 트랙과 연관된 복수의 개체에 관한 수입을 결정한다.
일부 실시예에서, 시스템은 원본 음악 형태로 음악 콘텐츠 믹스에 포함되지 않은 제 1 개별적인 오디오 트랙에 관한 사용 데이터를 결정한다. 예를 들어, 오디오 트랙은 신규한 오디오 트랙을 생성하도록 수정되고 사용될 수 있고, 사용 데이터는 이러한 수정 또는 사용을 반영하도록 조절될 수 있다. 일부 실시예에서, 시스템은 다중 오디오 트랙 중 적어도 두 개에서 오디오의 벡터 표현 사이에 보간에 기반해서 신규한 오디오 트랙을 생성하고, 사용 데이터는 제 1 개별적인 오디오 트랙의 벡터 표현과 신규한 오디오 트랙의 벡터 표현 사이의 거리에 기반해 결정된다. 일부 실시예에서, 사용 데이터는 보간된 벡터 표현과 다중 오디오 트랙 중 적어도 두 개에서 벡터로부터 유클리드 거리의 비에 기반한다.
도 25는, 일부 실시예에 따른, 오디오 파일을 조합하기 위한 이미지 표현을 사용하기 위한 방법의 흐름도이다. 도 25에 도시된 방법은 여기서 개시된 컴퓨터 회로, 시스템, 장치, 요소 또는 구성 요소 중 임의의 것과 함께 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나, 도시된 것과 다른 순서로 수행될 수 있거나 생략될 수 있다. 추가 방법 요소들도 원하는대로 수행할 수 있다.
2510에서, 도시된 실시예에서, 컴퓨팅 장치는 복수의 오디오 파일의 복수의 이미지 표현을 생성하고, 특정된 오디오 파일에 관한 이미지 표현은 특정된 오디오 파일에 데이터 및 특정된 오디오 파일의 MIDI 표현에 기반해서 생성된다). 일부 실시예에서, 이미지 표현에서 픽셀 값은 오디오 파일에서 속도를 나타내고, 이미지 표현은 속도의 해상도에서 압축된다.
일부 실시예에서, 이미지 표현은 오디오 파일의 2차원 표현이다. 일부 실시예에서, 피치는 2차원 표현에서 행에 의해 표현되고, 시간은 2차원 표현에서 열에 의해 표현되며, 2차원 표현에서 픽셀 값은 속도를 나타낸다. 일부 실시예에서, 피치는 2차원 표현에서 행에 의해 표현되고, 시간은 2차원 표현에서 열에 의해 표현되고, 2차원 표현에서 픽셀 값은 속도를 나타낸다. 일부 실시예에서, 피치축은 8 옥타브 범위에서 옥타브의 두 개의 세트로 밴딩되고, 픽셀의 제 1의 12개의 행은 제 1의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 1의 4개의 옥타브 중 어느 것이 표현되는지를 결정하고, 픽셀의 제 2의 12의 행은 제 2의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 2의 4개의 옥타브 중 어느 것이 표현되는지를 결정한다. 일부 실시예에서, 시간축에 따른 홀수 픽셀값은 음이 시작함을 나타내고, 시간축에 따른 짝수 픽셀값은 음이 유지하는 것을 나타낸다. 일부 실시예에서, 각각의 픽셀은 시간 차원에서 비트의 프랙션을 나타낸다.
2520에서, 도시된 실시예에서, 컴퓨팅 장치는 복수의 이미지 표현에 기반해서 오디오 파일 중 다중의 것을 선택한다.
2530에서, 도시된 실시예에서, 컴퓨팅 장치는 출력 음악 콘텐츠를 생성하도록 오디오 파일 중 다중의 것을 조합한다.
일부 실시예에서, 하나 이상의 작곡 규칙이 복수의 이미지 표현에 기반해 오디오 파일 중 다중것을 선택하도록 적용된다. 일부 실시예에서, 하나 이상의 작곡 원칙을 적용하는 것은 제 1 임계 위의 이미지 표현에서 픽셀값을 제거하고 제 2 임계 아래의 이미지 표현에서 픽셀 값을 제거하는 것을 포함한다.
일부 실시예에서, 하나 이상의 머신 러닝 알고리즘은 오디오 파일 중 다중의 것을 선택하고 조합하기 위한 이미지 표현에 적용되고 출력 음악 콘텐츠를 생성한다. 일부 실시예에서, 화음 및 리듬 일관성은 출력 음악 콘텐츠에서 테스트된다.
일부 실시예에서, 단일 이미지 표현은 복수의 이미지 표현으로부터 생성되고 텍스처 특징의 기술은 단일 이미지 표현에 부가되고 텍스처 특징은 복수의 오디오 파일로부터 추출된다. 일부 실시예에서, 단일 이미지 표현은 복수의 오디오 파일과 함께 저장된다. 일부 실시예에서, 오디오 파일의 다중의 것은 단일 이미지 표현 상에 하나 이상의 작곡 규칙을 적용함으로써 선택된다.
도 26은 일부 실시예에 따라 사용자에 의해 생성된 제어 요소를 실행하기 위한 흐름도 방법이다. 도 26에 도시된 방법은 다른 것들 가운데 컴퓨터 회로, 시스템, 장치, 요소, 또는 여기 개시된 구성요소 중 어느 하나와 연관해서 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소의 일부는 도시된 바와 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 추가 방법 요소는 또한 소망에 따라 수행될 수 있다.
2610에서, 도시된 실시예에서, 컴퓨팅 장치는 복수의 오디오 파일에 접근한다. 일부 실시예에서, 오디오 파일은 컴퓨터 시스템의 메모리로부터 접근되고, 사용자는 접근된 오디오 파일에 대한 권리를 가진다.
2620에서, 도시된 실시예에서, 컴퓨팅 장치는 적어도 하나의 훈련된 머신 러닝 알고리즘을 사용하여 두 개 이상의 오디오 파일로부터 음악 콘텐츠를 조합함으로써 출력 음악 콘텐츠를 생성한다. 일부 실시예에서, 음악 콘텐츠의 조합은 두 개 이상의 오디오 파일 내에 음악 콘텐츠에 기반해서 적어도 하나의 훈련된 머신 러닝 알고리즘에 의해 결정된다. 일부 실시예에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 두 개 이상의 오디오 파일 내에 음악 콘텐츠에 기반해서 두 개 이상의 오디오 파일로부터 음악 콘텐츠를 순차적으로 선택함으로써 음악 콘텐츠를 조합한다.
일부 실시예에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 특정 시간까지 재생된 음악 콘텐츠의 메타데이터에 기반해서 특정된 시간 후에 다가오는 비트에 대해 음악 콘텐츠를 선택하도록 훈련되었다. 일부 실시예에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 제어 요소의 레벨에 기반해서 특정된 시간 후에 다가오는 비트에 대해 음악 콘텐츠를 선택하도록 더 훈련되었다.
2630에서, 도시된 실시예에서, 컴퓨팅 장치는 사용자 인터페이스 상에, 생성된 출력 음악 콘텐츠에 사용자에 의해 특정된 파라미터의 변화에 대해 사용자에 의해 생성된 제어 요소를 실행하고, 생성된 출력 음악 콘텐츠에 하나 이상의 오디오 파라미터의 레벨은 제어 요소의 레벨에 기반해 결정되고, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 적어도 하나의 음악 플레이백 세션 동안 사용자 입력에 기반한다. 일부 실시예에서, 사용자에 의해 특정된 파라미터의 레벨은 하나 이상의 환경 조건에 기반해 변화된다.
일부 실시예에서, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 다음에 의해 결정된다: 적어도 하나의 음악 플레이백 세션 동안 다중 오디오 트랙을 연주하는 것, 여기서다중 오디오 트랙은 변화하는 오디오 파라미터를 갖고; 오디오 트랙의 각각에 대해, 오디오 트랙에 사용자에 의해 특정된 파라미터의 사용자 선택된 레벨을 특정하는 입력을 수용하는 것; 오디오 트랙의 각각에 대해, 오디오 트랙에서 하나 이상의 오디오 파라미터의 레벨을 평가하는 것; 및 사용자에 의해 특정된 파라미터의 사용자 선택된 레벨의 각각과 하나 이상의 오디오 파라미터의 평가된 레벨의 각각 상의 상관관계에 기반해서 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계를 결정하는 것.
일부 실시예에서, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계가 하나 이상의 머신 러닝 알고리즘을 사용하여 결정된다. 일부 실시예에서, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 생성된 출력 음악 콘텐츠의 플레이백 동안 제어 요소의 레벨의 사용자 변화에 기반해서 정제된다. 일부 실시예에서, 오디오 트랙에서 하나 이상의 오디오 파라미터의 레벨은 오디오 트랙으로부터 메타데이터를 사용하여 평가된다. 일부 실시예에서, 하나 이상의 오디오 파라미터의 레벨과 사용자에 의해 특정된 파라미터의 레벨 사이의 관계는 하나 이상의 추가적인 음악 플레이백 세션 동안 추가적인 사용자 입력에 더 기반한다.
일부 실시예에서, 컴퓨팅 장치는 사용자 인터페이스 상에, 생성된 출력 음악 콘텐츠에 추가적인 사용자에 의해 특정된 파라미터의 변화에 대해 사용자에 의해 생성된 적어도 하나의 추가적인 제어 요소를 실행하고, 추가적인 사용자에 의해 특정된 파라미터는 사용자에 의해 특정된 파라미터의 하위 파라미터이다. 일부 실시예에서, 생성된 출력 음악 콘텐츠는 제어 요소의 레벨의 사용자 조절에 기반해 수정된다. 일부 실시예에서, 피드백 제어 요소는 사용자 인터페이스 상에 실행되고, 피드백 제어 요소는 사용자가 플레이백 동안 생성된 출력 음악 콘텐츠에 대해 긍정적 또는 부정적 피드백을 제공하는 것을 허용한다. 일부 실시예에서, 적어도 하나의 훈련된 기계 알고리즘은 플레이백 동안 수신된 피드백에 기반해서 뒤이어 생성된 출력 음악 콘텐츠의 생성을 수정한다.
도 27은 일부 실시예에 따라 오디오 파라미터를 수정함으로써 음악 콘텐츠를 생성하기 위한 흐름도 방법이다. 도 27에 도시된 방법은 다른 것들 가운데 컴퓨터 회로, 시스템, 장치, 요소, 또는 여기 개시된 구성요소 중 어느 하나와 연관해서 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소의 일부는 도시된 바와 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 추가 방법 요소는 또한 소망에 따라 수행될 수 있다.
2710에서, 도시된 실시예에서, 컴퓨팅 장치는 음악 콘텐츠의 세트에 접근한다.
2720에서, 도시된 실시예에서, 컴퓨팅 장치는 음악 콘텐츠의 오디오 신호의 제 1 그래프를 생성하고, 제 1 그래프는 시간에 관련한 오디오 파라미터의 그래프이다.
2730에서, 도시된 실시예에서, 컴퓨팅 장치는 음악 콘텐츠의 오디오 신호의 제 2 그래프를 생성하고, 제 2 그래프는 비트에 관련된 오디오 파라미터의 신호 그래프이다. 일부 실시예에서, 오디오 신호의 제 2 그래프는 오디오 신호의 제 1 그래프와 유사한 구조를 가진다.
2740에서, 도시된 실시예에서, 컴퓨팅 장치는 플레이백 음악 콘텐츠에서 오디오 파라미터를 수정함으로써 플레이백 음악 콘텐츠로부터 신규한 음악 콘텐츠를 생성하고, 오디오 파라미터는 제 1 그래프 및 제 2 그래프의 조합에 기반해서 수정된다.
일부 실시예에서, 제 1 그래프 및 제 2 그래프에서 오디오 파라미터는 오디오 신호의 특성에서 변화를 결정하는 그래프에서 노드에 의해 규정된다. 일부 실시예에서, 신규한 음악 콘텐츠를 생성하는 것은 다음을 포함한다: 플레이백 음악 콘텐츠를 수용하는 것; 플레이백 음악 콘텐츠에서 오디오 신호에 상응하는 제 1 그래프에 제 1 노드를 결정하는 것; 제 1 노드에 상응하는 제 2 그래프에 제 2 노드를 결정하는 것; 제 2 노드에 기반해서 하나 이상의 특정된 오디오 파라미터를 결정하는 것; 및 특정된 오디오 파라미터를 수정함으로써 플레이백 음악 콘텐츠에서 오디오 신호의 하나 이상의 특성을 수정하는 것. 일부 실시예에서, 하나 이상의 추가 특정된 오디오 파라미터는 제 1 노드에 기반해서 결정되고, 플레이백 음악 콘텐츠에 추가 오디오 신호의 하나 이상의 특성은 추가 특정된 오디오 파라미터를 수정함으로써 수정된다.
일부 실시예에서, 하나 이상의 오디오 파라미터를 결정하는 것은 다음을 포함한다: 제 2 그래프에 제 2 노드의 위치에 기반해서 오디오 파라미터에 대해 실행하도록 제 2 그래프의 일부를 결정하고, 하나 이상의 오디오 특정된 파라미터로서 제 2 그래프의 결정된 부분으로부터 오디오 파라미터를 선택하는 것. 일부 실시예에서, 하나 이상의 특정된 오디오 파라미터를 수정하는 것은 제 2 그래프의 결정된 부분에 상응하는 플레이백 음악 콘텐츠의 일부를 수정한다. 일부 실시예에서, 플레이백 음악 콘텐츠에 오디오 신호의 수정된 특징은 신호 진폭, 신호 주파수, 또는 그 조합을 포함한다.
일부 실시예에서, 하나 이상의 자동화는 오디오 파라미터에 적용되고, 자동화의 적어도 하나는 적어도 하나의 오디오 파라미터의 미리 프로그램된 시간 조작이다. 일부 실시예에서, 하나 이상의 모듈화는 오디오 파라미터에 적용되고, 모듈화의 적어도 하나는 적어도 하나의 자동화의 최상부 상에 곱셈으로 적어도 하나의 오디오 파라미터를 수정한다.
다음은 여기서 개시된 다양한 비한정적 실시예들을 제시한다:
세트 A
A1. 컴퓨터 시스템에 의해 복수의 오디오 파일의 복수의 이미지 표현을 생성하는 단계로서, 특정 오디오 파일에 관한 이미지 표현은 상기 특정 오디오 파일 내의 데이터 및 상기 특정 오디오 파일의 MIDI 표현에 기반하여 생성되는, 이미지 표현 생성 단계;
상기 복수의 이미지 표현에 기반하여 상기 오디오 파일 중 다중 오디오 파일을 선택하는 단계; 및
출력 음악 콘텐츠를 생성하도록 상기 오디오 파일 중 상기 다중 오디오 파일을 조합하는 단계;를 포함하는, 방법.
A2. 세트 A에서 상기 기재된 방법에서, 상기 이미지 표현에서의 픽셀 값은 오디오 파일에서 속도를 나타내고, 상기 이미지 표현은 속도의 해상도에서 압축되는, 방법.
A3. 세트 A에서 상기 기재된 방법에서, 상기 이미지 표현은 오디오 파일의 2차원 표현인, 방법.
A4. 세트 A에서 상기 기재된 방법에서, 피치는 2차원 표현에서 행에 의해 표현되고, 시간은 2차원 표현에서 열에 의해 표현되며, 상기 2차원 표현에서 픽셀 값은 속도를 나타낸다.
A5. 세트 A에서 상기 기재된 방법에서, 상기 2차원 표현은 32 픽셀 폭에 24 픽셀 높이이며, 각각의 픽셀은 시간 차원에서 비트의 프랙션을 나타내는, 방법.
A6. 세트 A에서 상기 기재된 방법에서, 피치축은 8 옥타브 범위에서 옥타브의 두 개의 세트로 밴딩되고, 픽셀의 제 1의 12개의 행은 제 1의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 1의 4개의 옥타브 중 어느 것이 표현되는지를 결정하며, 픽셀의 제 2의 12의 행은 제 2의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 2의 4개의 옥타브 중 어느 것이 표현되는지를 결정하는, 방법.
A7. 세트 A에서 상기 기재된 방법에서, 시간축에 따른 홀수 픽셀값은 음이 시작함을 나타내고, 시간축에 따른 짝수 픽셀값은 음이 유지되는 것을 나타낸다.
A8. 세트 A에서 상기 기재된 방법에서, 하나 이상의 작곡 규칙이 복수의 이미지 표현에 기반해 오디오 파일 중 다중것을 선택하도록 적용하는 단계를 더 포함하는, 방법.
A9. 세트 A에서 상기 기재된 방법에서, 하나 이상의 작곡 원칙을 적용하는 것은, 제 1 임계 위의 이미지 표현에서 픽셀값을 제거하고 제 2 임계 아래의 이미지 표현에서 픽셀 값을 제거하는 것을 포함하는, 방법.
A10. 세트 A에서 상기 기재된 방법에서, 하나 이상의 머신 러닝 알고리즘을 오디오 파일 중 다중의 것을 선택하고 조합하기 위한 이미지 표현에 적용하고 출력 음악 콘텐츠를 생성하는 것을 더 포함하는, 방법.
A11. 세트 A에서 상기 기재된 방법에서, 출력 음악 콘텐츠에서 화음 및 리듬 일관성을 테스트하는 것을 더 포함하는, 방법.
A12. 세트 A에서 상기 기재된 방법에서,
복수의 이미지 표현으로부터 단일 이미지 표현은 생성하는 단계;
복수의 오디오 파일로부터 하나 이상의 텍스처 특징을 추출하는 단계; 및,
단일 이미지 표현에 추출된 텍스처 특징의 명세를 첨부하는 단계;를 더 포함하는, 방법.
A13. 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 인스트럭션들은 컴퓨터 장치에 의해 실행될 때:
세트 A 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하는, 비일시적 컴퓨터 판독 가능 매체.
A14. 하나 이상의 프로세서; 및
세트 A 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하도록, 상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션들이 저장되는 하나 이상의 메모리;를 포함하는 장치.
세트 B
B1. 컴퓨팅 장치에 의해, 일 세트의 음악 콘텐츠에 접근하는 단계;
음악 콘텐츠의 오디오 신호의 제 1 그래프로서, 시간에 대한 오디오 파라미터의 그래프인 제 1 그래프를, 컴퓨팅 장치에 의해 생성하는 단계;
음악 콘텐츠의 오디오 신호의 제 2 그래프로서, 비트에 대한 오디오 파라미터의 신호 그래프인 제 2 그래프를, 컴퓨팅 장치에 의해 생성하는 단계;
플레이백 음악 콘텐츠에서, 제 1 그래프 및 제 2 그래프의 조합에 기반해서 오디오 파라미터를 수정함으로써, 플레이백 음악 콘텐츠로부터 신규한 음악 콘텐츠를 생성하는 단계;를 포함하는 방법.
B2. 세트 B에서 상기 기재된 방법에서, 오디오 신호의 제 2 그래프는 오디오 신호의 제 1 그래프와 유사한 구조를 가지는, 방법.
B3. 세트 B에서 상기 기재된 방법에서, 제 1 그래프 및 제 2 그래프에서 오디오 파라미터는 오디오 신호의 특성에서 변화를 결정하는 그래프에서 노드에 의해 규정되는, 방법.
B4. 세트 B에서 상기 기재된 방법에서, 신규한 음악 콘텐츠를 생성하는 단계는:
플레이백 음악 콘텐츠를 수용하는 것;
플레이백 음악 콘텐츠에서 오디오 신호에 대응되는 제 1 그래프의 제 1 노드를 결정하는 것;
제 1 노드에 대응하는 제 2 그래프의 제 2 노드를 결정하는 것;
제 2 노드에 기반해서 하나 이상의 특정된 오디오 파라미터를 결정하는 것; 및
특정된 오디오 파라미터를 수정함으로써 플레이백 음악 콘텐츠에서 오디오 신호의 하나 이상의 특성을 수정하는 것;을 포함하는, 방법.
B5. 세트 B에서 상기 기재된 방법에서,
하나 이상의 추가 특정된 오디오 파라미터를 제 1 노드에 기반해서 결정하는 것; 및,
추가 특정된 오디오 파라미터를 수정함으로써, 레이백 음악 콘텐츠에서 추가 오디오 신호의 하나 이상의 특성을 수정하는 것;을 더 포함하는 방법.
B6. 세트 B에서 상기 기재된 방법에서, 하나 이상의 오디오 파라미터를 결정하는 것은:
제 2 그래프에서 제 2 노드의 위치에 기반하여 오디오 파라미터에 대해 실행하기 위한 제 2 그래프의 일부를 결정하는 것; 및
하나 이상의 특정된 오디오 파라미터로서 제 2 그래프의 결정된 부분으로부터 오디오 파라미터를 선택하는 것;을 포함한다.
B7. 세트 B에서 상기 기재된 방법에서, 하나 이상의 특정된 오디오 파라미터를 수정하는 것은 제 2 그래프의 결정된 부분에 대응하는 플레이백 음악 콘텐츠의 일부를 수정하는 방법.
B8. 세트 B에서 상기 기재된 방법에서, 플레이백 음악 콘텐츠에서 오디오 신호의 수정된 특징은 신호 진폭, 신호 주파수, 또는 그 조합을 포함하는, 방법.
B9. 세트 B에서 상기 기재된 방법에서, 하나 이상의 자동화를 오디오 파라미터에 적용하는 것을 더 포함하고, 자동화의 적어도 하나는 적어도 하나의 오디오 파라미터의 미리 프로그램된 시간 조작인, 방법.
B10. 세트 B에서 상기 기재된 방법에서, 하나 이상의 모듈화를 오디오 파라미터에 적용하는 것을 더 포함하고, 모듈화의 적어도 하나는 적어도 하나의 자동화의 최상부 상에 곱셈으로 적어도 하나의 오디오 파라미터를 수정하는, 방법.
B11. 세트 B에서 상기 기재된 방법에서, 컴퓨팅 시스템에 의해, 상기 음악 콘텐츠 세트와 관련된 하나 이상의 대상들의 저장을 위한 힙 할당된 메모리를 제공하는 것을 더 포함하며, 상기 하나 이상의 대상들은 다음 중 적어도 하나를 포함하는 방법: 오디오 신호, 제 1 그래프, 및 제 2 그래프.
B12. 세트 B에서 상기 기재된 방법에서, 상기 힙 할당된 메모리의 데이터 구조 리스트에 하나 이상의 대상들을 저장하는 것을 더 포함하며, 상기 데이터 구조 리스트는 상기 대상들을 위한 링크들의 일련의 리스트를 포함하는 방법.
B13. 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 인스트럭션들은 컴퓨터 장치에 의해 실행될 때:
세트 B 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하는, 비일시적 컴퓨터 판독 가능 매체.
B14. 하나 이상의 프로세서; 및
세트 B 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하도록, 상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션들이 저장되는 하나 이상의 메모리;를 포함하는 장치.
세트 C
C1. 컴퓨팅 장치에 의해, 복수의 오디오 파일에 접근하는 단계;
적어도 하나의 훈련된 머신 러닝 알고리즘을 사용하여 두 개 이상의 오디오 파일로부터 음악 콘텐츠를 조합함으로써 출력 음악 콘텐츠를 생성하는 단계; 및,
컴퓨팅 시스템과 관련된 사용자 인터페이스 상에, 생성된 출력 음악 콘텐츠에서 사용자에 의해 특정된 파라미터의 변화에 대해 사용자에 의해 생성된 제어 요소를 실행하는 단계;를 포함하며,
생성된 출력 음악 콘텐츠에서의 하나 이상의 오디오 파라미터의 레벨은 제어 요소의 레벨에 기반해 결정되고, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는 적어도 하나의 음악 플레이백 세션 동안 사용자 입력에 기반하는, 방법.
C2. 세트 C에서 상기 기재된 방법에서, 음악 콘텐츠의 조합은 두 개 이상의 오디오 파일 내의 음악 콘텐츠에 기반해서 적어도 하나의 훈련된 머신 러닝 알고리즘에 의해 결정되는, 방법.
C3. 세트 C에서 상기 기재된 방법에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 두 개 이상의 오디오 파일 내의 음악 콘텐츠에 기반해서 두 개 이상의 오디오 파일로부터 음악 콘텐츠를 순차적으로 선택함으로써 음악 콘텐츠를 조합하는, 방법.
C4. 세트 C에서 상기 기재된 방법에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 특정 시간까지 재생된 음악 콘텐츠의 메타데이터에 기반해서 특정된 시간 후에 다가오는 비트에 대해 음악 콘텐츠를 선택하도록 훈련되는, 방법.
C5. 세트 C에서 상기 기재된 방법에서, 적어도 하나의 훈련된 머신 러닝 알고리즘은 제어 요소의 레벨에 기반해서 특정된 시간 후에 다가오는 비트에 대해 음악 콘텐츠를 선택하도록 더 훈련되는, 방법.
C6. 세트 C에서 상기 기재된 방법에서, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계는:
적어도 하나의 음악 플레이백 세션 동안 변화하는 오디오 파라미터를 갖는 다중 오디오 트랙을 연주하는 것;
각각의 오디오 트랙의 대해, 오디오 트랙에서 사용자에 의해 특정된 파라미터의 사용자 선택된 레벨을 특정하는 입력을 수용하는 것;
각각의 오디오 트랙에 대해, 오디오 트랙에서 하나 이상의 오디오 파라미터의 레벨을 평가하는 것; 및
사용자에 의해 특정된 파라미터의 사용자 선택된 레벨의 각각과 하나 이상의 오디오 파라미터의 평가된 레벨의 각각 상의 상관관계에 기반해서 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계를 결정하는 것;에 의해 결정되는 방법.
C7. 세트 C에서 상기 기재된 방법에서, 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계가 하나 이상의 머신 러닝 알고리즘을 사용하여 결정되는, 방법.
C8. 세트 C에서 상기 기재된 방법에서, 생성된 출력 음악 콘텐츠의 플레이백 동안 제어 요소의 레벨의 사용자 변화에 기반해서 하나 이상의 오디오 파라미터의 레벨과 제어 요소의 레벨 사이의 관계를 정제하는 것을 더 포함하는, 방법.
C9. 세트 C에서 상기 기재된 방법에서, 오디오 트랙에서 하나 이상의 오디오 파라미터의 레벨은 오디오 트랙으로부터 메타데이터를 사용하여 평가되는, 방법.
C10. 세트 C에서 상기 기재된 방법에서, 컴퓨팅 시스템에 의해, 사용자에 의해 특정된 파라미터의 레벨을 하나 이상의 환경 조건에 기반해 변화시키는 것을 더 포함하는, 방법.
C11. 세트 C에서 상기 기재된 방법에서, 컴퓨팅 시스템과 관련된 사용자 인터페이스 상에서, 생성된 출력 음악 콘텐츠에 추가적인 사용자에 의해 특정된 파라미터의 변화에 대해 사용자에 의해 생성된 적어도 하나의 추가적인 제어 요소를 실행하는 것을 더 포함하며, 추가적인 사용자에 의해 특정된 파라미터는 사용자에 의해 특정된 파라미터의 하위 파라미터인, 방법.
C12. 세트 C에서 상기 기재된 방법에서, 컴퓨터 시스템의 메모리로부터 오디오 파일에 접근하는 것을 더 포함하고, 사용자는 접근된 오디오 파일에 대한 권리를 가지는, 방법.
C13. 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 인스트럭션들은 컴퓨터 장치에 의해 실행될 때:
세트 C 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하는, 비일시적 컴퓨터 판독 가능 매체.
C14. 하나 이상의 프로세서; 및
세트 C 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하도록, 상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션들이 저장되는 하나 이상의 메모리;를 포함하는 장치.
세트 D
D1. 컴퓨터 시스템에 의해, 음악 콘텐츠 믹스를 위한 플레이백 데이터를 결정하는 단계로서, 상기 플레이백 데이터는 음악 콘텐츠 믹스의 플레이백의 특성을 나타내고, 상기 음악 콘텐츠 믹스는 다중 오디오 트랙의 결정된 조합을 포함하는, 단계; 및
컴퓨터 시스템에 의해, 전자 블록 체인 원장 데이터 구조에서, 음악 콘텐츠 믹스에서 다중 오디오 트랙 중 하나 이상에 대해 개별적인 플레이백 데이터를 특정하는 정보를 기록하는 단계로서, 개별적인 오디오 트랙에 대한 개별적인 플레이백 데이터를 특정하는 정보는 개별적인 오디오 트랙에 대한 사용 데이터 및 개별적인 오디오 트랙과 연관된 시그니처 정보를 포함하는, 단계;를 포함하는 방법.
D2. 세트 D에서 상기 기재된 방법에서, 상기 사용 데이터는: 음악 콘텐츠 믹스를 위한 플레이 시간 또는 음악 콘텐츠 믹스를 위한 플레이 횟수 중 적어도 하나를 포함하는 방법.
D3. 세트 D에서 상기 기재된 방법에서, 음악 콘텐츠 믹스의 플레이백 데이터 및 음악 콘텐츠 믹스에서 개별적인 오디오 트랙을 식별하는 데이터에 기반하는 개별적인 오디오 트랙에 대한 개별적인 플레이백 데이터를 특정하는 정보를 결정하는 것을 더 포함하는, 방법.
D4. 세트 D에서 상기 기재된 방법에서, 음악 콘텐츠 믹스에서 개별적인 오디오 트랙을 식별하는 데이터는 또한 하나 이상의 개별적인 오디오 트랙의 포함과 연관해서 수행될 동작을 나타내는 데이터 스토어로부터 검색되며, 레코딩은 지시된 동작의 연주의 증거의 지시를 기록하는 것을 포함하는, 방법.
D5. 세트 D에서 상기 기재된 방법에서, 시그니처 정보 에 기반하는 개별적인 오디오 트랙과 연관된 하나 이상의 개체 및 다수의 오디오 트랙과 연관된 다수의 개체에 대한 시그니처 정보를 특정하는 데이터를 식별하는 것을 더 포함하는, 방법.
D6. 세트 D에서 상기 기재된 방법에서, 전자 블록체인 원장에 기록된 개별적인 플레이백 데이터를 특정하는 정보에 기반해서, 복수의 오디오 트랙과 연관된 복수의 개체에 관한 수입을 결정하는 것을 더 포함하는, 방법.
D7.세트 D에서 상기 기재된 방법에서, 플레이백 데이터는 음악 믹스를 생성하는데 사용되는 하나 이상의 머신 러닝 모듈에 대한 사용 데이터를 포함하는, 방법.
D8. 세트 D에서 상기 기재된 방법에서, 플레이백 장치에 의해 적어도 일시적으로, 음악 콘텐츠 믹스의 플레이백 데이터를 저장하는 것을 더 포함하는, 방법.
D9. 세트 D에서 상기 기재된 방법에서, 저장된 플레이백 데이터는, 플레이백 장치에 의해, 주기적으로 또는 이벤트에 대응하여, 다른 컴퓨터 시스템과 통신하는, 방법.
D10. 세트 D에서 상기 기재된 방법에서, 플레이백 장치에 의해, 음악 콘텐츠 믹스의 플레이백 데이터를 암호화하는 것을 더 포함하는, 방법.
D11. 세트 D에서 상기 기재된 방법에서, 불변의 블록 체인 원장은 대중적으로 접근가능하고 불변인, 방법.
D12. 세트 D에서 상기 기재된 방법에서:
원본 음악 형태로 음악 콘텐츠 믹스에 포함되지 않은 제 1 개별적인 오디오 트랙에 관한 사용 데이터를 결정하는 것을 포함하는, 방법.
D13. 세트 D에서 상기 기재된 방법에서:
다중 오디오 트랙 중 적어도 두 개에서 오디오의 벡터 표현들 사이의 보간에 기반해서 신규한 오디오 트랙을 생성하는 것을 더 포함하고,
사용 데이터의 결정은, 제 1 개별적인 오디오 트랙의 벡터 표현과 신규한 오디오 트랙의 벡터 표현 사이의 거리에 기반해 결정되는, 방법.
D14. 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 인스트럭션들은 컴퓨터 장치에 의해 실행될 때:
세트 D 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하는, 비일시적 컴퓨터 판독 가능 매체.
D15. 하나 이상의 프로세서; 및
세트 D 내의 상기 기재된 방법에 의해 수행되는 동작들의 임의의 조합을 수행하도록, 상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션들이 저장되는 하나 이상의 메모리;를 포함하는 장치.
세트 E
E1. 컴퓨팅 시스템에 의해, 다수의 다른 개체들에 대한 다수의 트랙을 특정하는 데이터를 저장하는 단계로서, 상기 데이터는 다수의 음악 트랙의 각각의 트랙에 대한 시그니처 정보를 포함하는, 단계;
컴퓨팅 시스템에 의해, 출력 음악 컨텐츠를 생성하는 다중 트랙을 레이어링하는 단계;
전자 블록 체인 원장 데이터 구조에서, 상기 레이어링에 포함된 트랙을 특정하는 정보 및 이들 트랙의 각각의 시그니처 정보를 기록하는 단계;를 포함하는, 방법.
E2. 세트 E에서 상기 기재된 방법에서, 블록 체인 원장은 대중적으로 접근가능하고 불변인, 방법.
E3. 세트 E에서 상기 기재된 방법에서:
시그니처 정보에 부합하지 않는 개체에 의해 트랙들 중 하나의 사용을 감지하는 것을 포함하는, 방법.
E4. 컴퓨팅 시스템에 의해, 다수의 다른 개체들에 대한 다수의 트랙을 특정하는 데이터를 저장하는 단계로서, 상기 데이터는 다른 컨텐츠에 연결되는 메타데이터를 포함하는, 단계;
컴퓨팅 시스템에 의해, 출력 음악 컨텐츠를 생성하는 다중 트랙을 선택하는 단계;
선택된 트랙에 대한 메타데이터에 기반하여, 출력 음악 컨텐츠와 함께 출력되는 컨텐츠를 검색하는 단계;를 포함하는 방법.
E5. 세트 E에서 상기 기재된 방법에서, 상기 다른 컨텐츠는 시각 광고를 포함하는, 방법.
E6. 컴퓨팅 시스템에 의해, 복수의 트랙을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 다중 음악 샘플들의 출력을 유발하는 단계;
컴퓨팅 시스템에 의해, 하나 이상의 음악 샘플들이 제1 음악 파라미터를 나타내는지 여부에 관한 사용자의 의견을 표시하는 사용자 입력을 수신하는 단계;
상기 수신에 기반하여 사용자에 대한 습관 정보를 저장하는 단계;
컴퓨팅 시스템에 의해, 제1 음악 파라미터에 대한 조절을 나타내는 사용자 입력을 수신하는 단계;
컴퓨팅 시스템에 의해, 상기 습관 정보에 기초하여, 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하거나 레이어링하는 단계;를 포함하는 방법.
E7. 세트 E에서 상기 기재된 방법에서, 사용자는 제1 음악 파라미터에 대한 명칭을 특정하는, 방법.
E8. 세트 E에서 상기 기재된 방법에서, 사용자는 제1 음악 파라미터의 하나 이상의 범위에 대한 하나 이상의 타겟 목표를 측정하고, 상기 선택 및 레이어링은 과거 피드백 정보에 기반하는, 방법.
E9. 세트 E에서 상기 기재된 방법에서, 과거 피드백 정보에 기반하는 선택 및 레이어링이 하나 이상의 타겟 목표를 충족하지 않는다는 결정에 대응하여, 다중의 다른 음악 속성들을 조절하고, 하나 이상의 타겟 목표에서 다중의 다른 음악 속성들의 조절의 효과를 결정하는 것을 포함하는, 방법.
E10. 세트 E에서 상기 기재된 방법에서, 상기 타겟 목표는 사용자의 심박동수인, 방법.
E11. 세트 E에서 상기 기재된 방법에서, 상기 선택 및 레이어링은 머신 러닝 엔진에 의해 실행되는, 방법.
E12. 세트 E에서 상기 기재된 방법에서, 다중 유형의 사용자 입력에 기반한 교사 모델 훈련 및 수신된 사용자 입력에 기반한 학생 모델 훈련을 포함하는 머신 러닝 엔진을 훈련하는 것을 더 포함하는 방법.
E13. 컴퓨팅 시스템에 의해, 복수의 트랙을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 제1 유형의 환경에 위치되는 오디오 장치를 결정하는 단계;
오디오 장치가 제1 유형의 환경에 위치되는 동안, 제1 음악 파라미터를 조절하는 사용자 입력을 수신하는 단계;
컴퓨팅 시스템에 의해, 조절된 제1 음악 파라미터 및 제1 유형의 환경에 기반하여, 오디오 장치를 통해 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하고 레이어링하는 단계;
컴퓨팅 시스템에 의해, 오디오 장치가 제2 유형의 환경에 위치되는 것을 결정하는 단계;
오디오 장치가 제2 유형의 환경에 위치되는 동안, 제1 음악 파라미터를 조절하는 사용자 입력을 수신하는 단계;
컴퓨팅 시스템에 의해, 조절된 제1 음악 파라미터 및 제2 유형의 환경에 기반하여, 오디오 장치를 통해 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하고 레이어링하는 단계;를 포함하는 방법.
E14. 세트 E에서 상기 기재된 방법에서, 상기 선택 및 레이어링은, 오디오 장치가 제2 유형의 환경에 있을 때 보다 오디오 장치가 제1 유형의 환경에 있을 때, 제1 음악 파라미터에 대한 조절에 기반하여 다른 음악 속성을 조절하는, 방법.
E15. 컴퓨팅 시스템에 의해, 복수의 트랙을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 음악 컨텐츠를 특정하는 데이터를 저장하는 단계;
저장된 음악 컨텐츠의 하나 이상의 파라미터를 결정하는 단계;
컴퓨팅 시스템에 의해, 저장된 음악 컨텐츠의 하나 이상의 파라미터에 기반하여, 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하고 레이어링하는 단계;
출력 음악 컨텐츠의 출력 및 저장된 음악 컨텐츠를 시간상으로 서로 겹치도록 유발하는 단계;를 포함하는 방법.
E16. 컴퓨팅 시스템에 의해, 복수의 트랙 및 대응하는 트랙 속성을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 음악 컨텐츠를 특정하는 데이터를 저장하는 단계;
저장된 음악 컨텐츠의 하나 이상의 파라미터를 결정하고, 저장된 음악 컨텐츠에 포함된 하나 이상의 트랙을 결정하는 단계;
컴퓨팅 시스템에 의해, 하나 이상의 파라미터에 기반하여, 출력 음악 컨텐츠를 생성하도록 저장된 음악 컨텐츠 중 하나와 결정된 트랙 중 하나를 선택하고 레이어링하는 단계;를 포함하는 방법.
E17. 컴퓨팅 시스템에 의해, 복수의 트랙을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하고 레이어링하는 단계;를 포함하고,
상기 선택은:
최근 사용된 트랙에 기반하여, 미래의 트랙을 선택하도록 구성되는 신경망 모듈; 및,
다음 출력 음악 컨텐츠에 대한 구조를 선택하고, 선택된 구조에 기반한 신경망 모듈을 제한하도록 구성된 하나 이상의 계층적 은닉 마르코프 모델; 모두를 사용하여 실행되는, 방법.
E18. 세트 E에서 상기 기재된 방법에서:
출력 음악 컨텐츠에 대한 양의 또는 음의 사용자 피드백에 기반하여 상기 하나 이상의 계층적 은닉 마르코프 모델을 훈련하는 것을 더 포함하는, 방법.
E19. 세트 E에서 상기 기재된 방법에서:
음악 컨텐츠의 다중 샘플에 반응하여 제공된 사용자 선택에 기반하여 신경망 모듈을 훈련하는 것을 더 포함하는, 방법.
E20. 세트 E에서 상기 기재된 방법에서, 상기 신경망 모듈은, 적어도 하나의 전역적 훈련 층과 특정 사용자 계정으로부터의 피드백에 기반하여 특히 훈련된 적어도 하나의 층을 포함하는 다수의 층들을 포함하는, 방법.
E21. 컴퓨팅 시스템에 의해, 복수의 트랙을 특정하는 데이터를 저장하는 단계;
컴퓨팅 시스템에 의해, 출력 음악 컨텐츠를 생성하는 다중 트랙들을 선택하고 레이어링하는 단계로서, 상기 선택은 전역적 훈련된 머신 러닝 모듈 및 국지적 훈련된 머신 러닝 모듈 모두를 사용하여 실행되는, 단계;를 포함하는 방법.
E22. 세트 E에서 상기 기재된 방법에서, 다중 사용자 계정으로부터의 피드백을 사용하는 전역적 훈련된 머신 러닝 모듈의 훈련 및 단일 사용자 계정으로부터의 피드백에 기반하는 국지적 훈련된 머신 러닝 모듈의 훈련을 더 포함하는, 방법.
E23. 세트 E에서 상기 기재된 방법에서, 전역적 훈련된 머신 러닝 모듈 및 국지적 훈련된 머신 러닝 모듈 모두는 음악 속성의 사용자 조절에 기반한 출력 정보를 제공하는, 방법.
E24. 세트 E에서 상기 기재된 방법에서, 전역적 훈련된 머신 러닝 모듈 및 국지적 훈련된 머신 러닝 모듈은 신경망의 다른 층들에 포함되는, 방법.
E25. 상위 레벨의 음악 작곡 파라미터에 대한 값을 나타내는 제1 사용자 입력을 수신하는 단계;
음악 컨텐츠를 출력하는 동안, 상위 레벨의 음악 작곡 파라미터와 연관된 하나 이상의 하위 파라미터의 다중 값을 사용하는 것을 포함하여, 상위 레벨의 음악 작곡 파라미터에 대한 값에 기반하여 오디오 트랙을 자동으로 선택하고 조합하는 단계;
하나 이상의 하위 파라미터에 대한 하나 이상의 값을 나타내는 제2 사용자 입력을 수신하는 단계; 및,
상기 제2 사용자 입력에 기반하여 상기 자동으로 선택하고 조합하는 것을 제한하는 단계;를 포함하는, 방법.
E26. 세트 E에서 상기 기재된 방법에서, 상위 레벨의 음악 작곡 파라미터는 에너지 파라미터이고, 하나 이상의 하위 파라미터는, 템포, 층수, 보털 파라미터, 또는 베이스 파라미터인, 방법.
E27. 컴퓨팅 시스템에 의해, 스코어 정보에 접근하는 단계;
컴퓨팅 시스템에 의해, 스코어 정보에 기반하여 음악 컨텐츠를 합성하는 단계;
시간상 다른 지점에서 다수의 주파수 빈에 대하여 주파수 정보를 생성하도록 음악 컨텐츠를 분석하는 단계;
주파수 정보를 입력하는 것과 훈련을 위한 레이블로서 스코어 정보를 사용하는 것을 포함하여, 머신 러닝 엔진을 훈련하는 단계;를 포함하는 방법.
E28. 세트 E에서 상기 기재된 방법에서:
훈련된 머신 러닝 엔진에 음악 컨텐츠를 입력하는 단계; 및,
음악 컨텐츠를 위한 스코어 정보를 생성하도록 머신 러닝 엔진을 사용하는 단계;를 포함하며,
생성된 스코어 정보는 시간상 다른 지점에서 다수의 주파수 빈에 대하여 주파수 정보를 포함하는, 방법.
E29. 세트 E에서 상기 기재된 방법에서, 상기 시간상 다른 지점들은 이들 사이의 고정된 거리를 가지는, 방법.
E30. 세트 E에서 상기 기재된 방법에서, 상기 시간상 다른 지점들은 음악 컨텐츠의 비트에 대응하는, 방법.
E31. 세트 E에서 상기 기재된 방법에서, 상기 머신 러닝 엔진은 컨볼루션 레이어와 순환 레이어를 포함하는, 방법.
E32. 세트 E에서 상기 기재된 방법에서, 상기 주파수 정보는, 음악 컨텐츠가 시간 상 일 지점에서 주파수 빈의 컨텐츠에 포함되는지 여부에 대한 2진 표시를 포함하는, 방법.
E33. 세트 E에서 상기 기재된 방법에서, 상기 음악 컨텐츠는 다중의 다른 악기들을 포함하는, 방법.
특정 실시예가 위에서 설명되었지만, 이러한 실시예는 특정 특징에 대해 단일 실시예만이 설명되는 경우에도, 본 발명의 범위를 제한하려는 의도는 아니다. 본 발명에서 제공되는 특징들의 예는 달리 언급되지 않는 한 제한적이기 보다는 예시적인 것으로 의도된다. 상기 설명은 본 발명의 이점을 갖는 당업자에게 명백한 대안, 수정 및 등가물을 포함하도록 의도된다.
본 발명의 범위는 본 명세서에서 언급된 문제의 일부 또는 전부를 완화하는지 여부에 관계없이, 본 명세서에서 (명시적 또는 내포적으로) 개시된 임의의 특징 또는 특징들의 조합, 또는 이들의 임의의 일반화를 포함한다. 따라서, 이러한 특징들의 조합에 대해 본 출원(또는 우선권을 주장하는 출원)을 심사하는 동안 새로운 청구항들이 작성될 수 있다. 특히, 첨부된 청구항을 참조하면, 종속 청구항의 특징은 독립 청구항의 특징과 결합될 수 있으며, 각 독립 청구항의 특징은 첨부된 청구항에 열거된 특정 조합만이 아닌 임의의 적절한 방식으로 결합될 수 있다.

Claims (20)

  1. 컴퓨터 시스템에 의해 복수의 오디오 파일의 복수의 이미지 표현을 생성하는 단계로서, 특정 오디오 파일에 관한 이미지 표현은 상기 특정 오디오 파일 내의 데이터 및 상기 특정 오디오 파일의 MIDI 표현에 기반하여 생성되는, 이미지 표현 생성 단계;
    상기 복수의 이미지 표현에 기반하여 상기 오디오 파일 중 다중 오디오 파일을 선택하는 단계; 및
    출력 음악 콘텐츠를 생성하도록 상기 오디오 파일 중 상기 다중 오디오 파일을 조합하는 단계;를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 이미지 표현에서의 픽셀 값은 오디오 파일에서 속도를 나타내고, 상기 이미지 표현은 속도의 해상도에서 압축되는, 방법.
  3. 제1항에 있어서,
    상기 이미지 표현은 오디오 파일의 2차원 표현인, 방법.
  4. 제3항에 있어서,
    피치는 2차원 표현에서 행에 의해 표현되고, 시간은 2차원 표현에서 열에 의해 표현되며, 상기 2차원 표현에서 픽셀 값은 속도를 나타내는, 방법.
  5. 제4항에 있어서,
    상기 2차원 표현은 32 픽셀 폭에 24 픽셀 높이이며, 각각의 픽셀은 시간 차원에서 비트의 프랙션을 나타내는, 방법.
  6. 제4항에 있어서,
    피치축은 8 옥타브 범위에서 옥타브의 두 개의 세트로 밴딩되고, 픽셀의 제 1의 12개의 행은 제 1의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 1의 4개의 옥타브 중 어느 것이 표현되는지를 결정하며, 픽셀의 제 2의 12의 행은 제 2의 4개의 옥타브를 나타내고, 픽셀의 픽셀값은 제 2의 4개의 옥타브 중 어느 것이 표현되는지를 결정하는, 방법.
  7. 제4항에 있어서,
    시간축에 따른 홀수 픽셀값은 음이 시작함을 나타내고, 시간축에 따른 짝수 픽셀값은 음이 유지되는 것을 나타내는, 방법.
  8. 제1항에 있어서,
    하나 이상의 작곡 규칙이 복수의 이미지 표현에 기반해 오디오 파일 중 다중것을 선택하도록 적용하는 단계를 더 포함하는, 방법.
  9. 제8항에 있어서,
    하나 이상의 작곡 원칙을 적용하는 것은, 제 1 임계 위의 이미지 표현에서 픽셀값을 제거하고 제 2 임계 아래의 이미지 표현에서 픽셀 값을 제거하는 것을 포함하는, 방법.
  10. 제1항에 있어서,
    하나 이상의 머신 러닝 알고리즘을 오디오 파일 중 다중의 것을 선택하고 조합하기 위한 이미지 표현에 적용하고 출력 음악 콘텐츠를 생성하는 것을 더 포함하는, 방법.
  11. 제10항에 있어서,
    출력 음악 콘텐츠에서 화음 및 리듬 일관성을 테스트하는 것을 더 포함하는, 방법.
  12. 제1항에 있어서,
    복수의 이미지 표현으로부터 단일 이미지 표현을 생성하는 단계;
    복수의 오디오 파일로부터 하나 이상의 텍스처 특징을 추출하는 단계; 및,
    단일 이미지 표현에 추출된 텍스처 특징의 명세를 첨부하는 단계;를 더 포함하는 방법.
  13. 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
    상기 인스트럭션들은 컴퓨터 장치에 의해 실행될 때:
    특정 오디오 파일에 관한 이미지 표현은 상기 특정 오디오 파일 내의 데이터 및 상기 특정 오디오 파일의 MIDI 표현에 기반하여 생성되는, 복수의 오디오 파일의 복수의 이미지 표현을 생성하는 동작;
    상기 복수의 이미지 표현에 기반하여 상기 오디오 파일 중 다중 오디오 파일을 선택하는 동작; 및
    출력 음악 콘텐츠를 생성하도록 상기 오디오 파일 중 상기 다중 오디오 파일을 조합하는 동작;을 수행하는, 비일시적 컴퓨터 판독 가능 매체.
  14. 제13항에 있어서,
    상기 이미지 표현은, 행에 의해 표현되는 피치 및 열에 의해 표현되는 시간을 가진 오디오 파일의 2차원 표현이고, 상기 이미지 표현에서 픽셀의 픽셀 값은 상기 특정 오디오 파일의 MIDI 표현으로부터의 속도를 나타내는, 비일시적 컴퓨터 판독 가능 매체.
  15. 제14항에 있어서,
    각각의 픽셀은 시간 차원에서 비트의 프랙션을 나타내는, 비일시적 컴퓨터 판독 가능 매체.
  16. 제13항에 있어서,
    복수의 이미지 표현으로부터 단일 이미지 표현의 생성; 및,
    단일 이미지 표현에, 복수의 오디오 파일로부터 추출된 텍스처 특징의 명세를 첨부;를 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  17. 제16항에 있어서,
    단일 이미지 표현을 복수의 오디오 파일과 함께 저장하는 것을 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  18. 제16항에 있어서,
    단일 이미지 표현 상에 하나 이상의 작곡 규칙을 적용함으로써 오디오 파일 중 다중 오디오 파일을 선택하는 것을 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  19. 하나 이상의 프로세서; 및
    특정 오디오 파일에 관한 이미지 표현은 상기 특정 오디오 파일 내의 데이터 및 상기 특정 오디오 파일의 MIDI 표현에 기반하여 생성되는, 복수의 오디오 파일의 복수의 이미지 표현을 생성하고,
    상기 복수의 이미지 표현에 기반하여 상기 오디오 파일 중 다중 오디오 파일을 선택하고, 및
    출력 음악 콘텐츠를 생성하도록 상기 오디오 파일 중 상기 다중 오디오 파일을 조합하도록,
    상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 인스트럭션들이 저장되는 하나 이상의 메모리;를 포함하는, 장치.
  20. 제19항에 있어서,
    상기 하나 이상의 메모리에 저장된 프로그램 인스트럭션들은, 생성된 출력 음악 콘텐츠를 재생하도록 하나 이상의 프로세서에 의해 실행되는, 장치.
KR1020227030076A 2020-02-11 2021-02-11 음악 콘텐츠 생성 KR20220128672A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US202062972711P 2020-02-11 2020-02-11
US62/972,711 2020-02-11
US202063028233P 2020-05-21 2020-05-21
US63/028,233 2020-05-21
US202063068433P 2020-08-21 2020-08-21
US202063068431P 2020-08-21 2020-08-21
US63/068,431 2020-08-21
US63/068,433 2020-08-21
PCT/US2021/017722 WO2021163377A1 (en) 2020-02-11 2021-02-11 Music content generation

Publications (1)

Publication Number Publication Date
KR20220128672A true KR20220128672A (ko) 2022-09-21

Family

ID=74860461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227030076A KR20220128672A (ko) 2020-02-11 2021-02-11 음악 콘텐츠 생성

Country Status (6)

Country Link
US (5) US20210248213A1 (ko)
EP (1) EP4104072A1 (ko)
JP (1) JP7440651B2 (ko)
KR (1) KR20220128672A (ko)
CN (1) CN115066681A (ko)
WO (1) WO2021163377A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102636709B1 (ko) * 2023-09-14 2024-02-14 주식회사 포자랩스 강화 학습을 이용한 오디오 생성

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109599079B (zh) * 2017-09-30 2022-09-23 腾讯科技(深圳)有限公司 一种音乐的生成方法和装置
CN112189193A (zh) * 2018-05-24 2021-01-05 艾米有限公司 音乐生成器
IT201800008080A1 (it) * 2018-08-13 2020-02-13 Viscount Int Spa Sistema per la generazione di suono sintetizzato in strumenti musicali.
EP3959896A1 (en) * 2019-04-22 2022-03-02 Soclip! Automated audio-video content generation
US11232773B2 (en) * 2019-05-07 2022-01-25 Bellevue Investments Gmbh & Co. Kgaa Method and system for AI controlled loop based song construction
US20210090535A1 (en) * 2019-09-24 2021-03-25 Secret Chord Laboratories, Inc. Computing orders of modeled expectation across features of media
US20210248213A1 (en) * 2020-02-11 2021-08-12 Aimi Inc. Block-Chain Ledger Based Tracking of Generated Music Content
US11430420B2 (en) * 2020-04-29 2022-08-30 At&T Intellectual Property L, L.P. System for ledger and parametric marketplace for algorithmic content creations
US11670322B2 (en) * 2020-07-29 2023-06-06 Distributed Creation Inc. Method and system for learning and using latent-space representations of audio signals for audio content-based retrieval
US11593059B2 (en) * 2020-08-26 2023-02-28 Spotify Ab Systems and methods for generating recommendations in a digital audio workstation
US11929051B2 (en) * 2020-10-01 2024-03-12 General Motors Llc Environment awareness system for experiencing an environment through music
US11183160B1 (en) * 2021-02-16 2021-11-23 Wonder Inventions, Llc Musical composition file generation and management system
US12008821B2 (en) * 2021-05-07 2024-06-11 Google Llc Machine-learned models for unsupervised image transformation and retrieval
US11954318B2 (en) * 2022-02-20 2024-04-09 Monday.com Ltd. Dynamically adjusting GUI elements to reflect user multi-selection
US20230394966A1 (en) * 2022-06-06 2023-12-07 International Business Machines Corporation Adaptive sound generation

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2559390B2 (ja) 1987-01-28 1996-12-04 株式会社日立製作所 音・画像変換装置
US5963916A (en) * 1990-09-13 1999-10-05 Intouch Group, Inc. Network apparatus and method for preview of music products and compilation of market data
KR940004830B1 (ko) 1991-03-14 1994-06-01 주식회사 금성사 연주용 데이타화일 기록방법 및 재생장치
JPH06102890A (ja) * 1992-09-22 1994-04-15 Pioneer Electron Corp カラオケシステム
JPH08293039A (ja) * 1995-04-24 1996-11-05 Matsushita Electric Ind Co Ltd 音楽画像変換装置
AUPP547898A0 (en) 1998-08-26 1998-09-17 Canon Kabushiki Kaisha System and method for automatic music generation
FR2785438A1 (fr) 1998-09-24 2000-05-05 Baron Rene Louis Procede et dispositif de generation musicale
US7169996B2 (en) 2002-11-12 2007-01-30 Medialab Solutions Llc Systems and methods for generating music using data/music data file transmitted/received via a network
US7653550B2 (en) 2003-04-04 2010-01-26 Apple Inc. Interface for providing modeless timeline based selection of an audio or video file
JP2006084749A (ja) 2004-09-16 2006-03-30 Sony Corp コンテンツ生成装置およびコンテンツ生成方法
US7601904B2 (en) 2005-08-03 2009-10-13 Richard Dreyfuss Interactive tool and appertaining method for creating a graphical music display
US20090231968A1 (en) 2005-08-31 2009-09-17 Matsushita Electric Industrial Co., Ltd. Recording medium storing management information for content attribute and recording device and playback device for the recording medium
US7491878B2 (en) 2006-03-10 2009-02-17 Sony Corporation Method and apparatus for automatically creating musical compositions
US7541534B2 (en) 2006-10-23 2009-06-02 Adobe Systems Incorporated Methods and apparatus for rendering audio data
US8461443B2 (en) 2006-10-31 2013-06-11 Tp Vision Holding B.V. Control of light in response to an audio signal
JP5259075B2 (ja) 2006-11-28 2013-08-07 ソニー株式会社 マッシュアップ装置およびコンテンツの作成方法
US8280539B2 (en) 2007-04-06 2012-10-02 The Echo Nest Corporation Method and apparatus for automatically segueing between audio tracks
JP4467601B2 (ja) 2007-05-08 2010-05-26 ソニー株式会社 ビート強調装置、音声出力装置、電子機器、およびビート出力方法
JP5130809B2 (ja) 2007-07-13 2013-01-30 ヤマハ株式会社 楽曲を制作するための装置およびプログラム
JP2009063714A (ja) 2007-09-05 2009-03-26 Sony Computer Entertainment Inc オーディオ再生装置およびオーディオ早送り再生方法
US8173883B2 (en) 2007-10-24 2012-05-08 Funk Machine Inc. Personalized music remixing
US8426715B2 (en) 2007-12-17 2013-04-23 Microsoft Corporation Client-side audio signal mixing on low computational power player using beat metadata
US20090164034A1 (en) 2007-12-19 2009-06-25 Dopetracks, Llc Web-based performance collaborations based on multimedia-content sharing
US10311446B2 (en) 2008-12-05 2019-06-04 Nokia Technologies Oy Method and apparatus for obfuscating context information
US8035023B2 (en) 2009-08-25 2011-10-11 Volkswagen Ag Predictive environment music playlist selection
JP5949544B2 (ja) 2010-12-01 2016-07-06 ヤマハ株式会社 リズムパターンの類似度に基づく楽音データの検索
CN102903375B (zh) 2011-07-25 2017-06-13 富泰华工业(深圳)有限公司 音乐播放装置及播放方法
US20150347971A1 (en) * 2011-12-29 2015-12-03 Brandon E. D'Amore Systems and methods of creative work collaborative systems
WO2014028891A1 (en) 2012-08-17 2014-02-20 Be Labs, Llc Music generator
US8927846B2 (en) 2013-03-15 2015-01-06 Exomens System and method for analysis and creation of music
KR20140114238A (ko) 2013-03-18 2014-09-26 삼성전자주식회사 오디오와 결합된 이미지 표시 방법
JP6179221B2 (ja) 2013-06-28 2017-08-16 ヤマハ株式会社 音響処理装置および音響処理方法
JP6341032B2 (ja) 2013-10-17 2018-06-13 ヤマハ株式会社 楽音情報を処理する装置およびプログラム
JP6197631B2 (ja) * 2013-12-19 2017-09-20 ヤマハ株式会社 楽譜解析装置および楽譜解析方法
KR20150072597A (ko) * 2013-12-20 2015-06-30 삼성전자주식회사 멀티미디어 장치 및 이의 음악 작곡 방법, 그리고 노래 보정 방법
US9207857B2 (en) 2014-02-14 2015-12-08 EyeGroove, Inc. Methods and devices for presenting interactive media items
US20160379611A1 (en) 2015-06-23 2016-12-29 Medialab Solutions Corp. Systems and Method for Music Remixing
WO2017031421A1 (en) 2015-08-20 2017-02-23 Elkins Roy Systems and methods for visual image audio composition based on user input
US10388321B2 (en) 2015-08-26 2019-08-20 Twitter, Inc. Looping audio-visual file generation based on audio and video analysis
US9721551B2 (en) 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions
US9977645B2 (en) * 2015-10-01 2018-05-22 Moodelizer Ab Dynamic modification of audio content
US10068556B2 (en) 2015-11-18 2018-09-04 Pandora Media, Inc. Procedurally generating background music for sponsored audio
US10347004B2 (en) 2016-04-01 2019-07-09 Baja Education, Inc. Musical sonification of three dimensional data
US9799312B1 (en) * 2016-06-10 2017-10-24 International Business Machines Corporation Composing music using foresight and planning
EP3545696B1 (en) 2016-12-20 2023-09-13 Appix Project Inc. Systems and methods for displaying images across multiple devices
EP3577651A1 (en) 2017-02-06 2019-12-11 Kodak Alaris Inc. Method for creating audio tracks for accompanying visual imagery
CN112189193A (zh) * 2018-05-24 2021-01-05 艾米有限公司 音乐生成器
US11972746B2 (en) * 2018-09-14 2024-04-30 Bellevue Investments Gmbh & Co. Kgaa Method and system for hybrid AI-based song construction
US11361741B2 (en) 2019-06-21 2022-06-14 Obeebo Labs Ltd. Systems, devices, and methods for harmonic structure in digital representations of music
CN110444185B (zh) 2019-08-05 2024-01-12 腾讯音乐娱乐科技(深圳)有限公司 一种音乐生成方法及装置
US20210248213A1 (en) 2020-02-11 2021-08-12 Aimi Inc. Block-Chain Ledger Based Tracking of Generated Music Content
WO2022040410A1 (en) 2020-08-21 2022-02-24 Aimi Inc. Comparison training for music generator
CN115331648A (zh) 2022-08-03 2022-11-11 腾讯科技(深圳)有限公司 音频数据处理方法、装置、设备、存储介质及产品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102636709B1 (ko) * 2023-09-14 2024-02-14 주식회사 포자랩스 강화 학습을 이용한 오디오 생성

Also Published As

Publication number Publication date
US11947864B2 (en) 2024-04-02
US11914919B2 (en) 2024-02-27
JP2023513586A (ja) 2023-03-31
US20210248983A1 (en) 2021-08-12
US20210247955A1 (en) 2021-08-12
US20230259327A1 (en) 2023-08-17
EP4104072A1 (en) 2022-12-21
WO2021163377A1 (en) 2021-08-19
US11635936B2 (en) 2023-04-25
US20210247954A1 (en) 2021-08-12
JP7440651B2 (ja) 2024-02-28
JP2024069216A (ja) 2024-05-21
CN115066681A (zh) 2022-09-16
US20210248213A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
US11947864B2 (en) Music content generation using image representations of audio files
Herremans et al. A functional taxonomy of music generation systems
KR102505818B1 (ko) 음악 생성기
US7790974B2 (en) Metadata-based song creation and editing
US20080215599A1 (en) Internet Music Composition Application With Pattern-Combination Method
US20220059062A1 (en) Comparison Training for Music Generator
Canazza et al. Expressiveness in music performance: analysis, models, mapping, encoding
Ostermann et al. AAM: a dataset of Artificial Audio Multitracks for diverse music information retrieval tasks
Foulon et al. Automatic classification of guitar playing modes
JP7506840B2 (ja) 音楽コンテンツの生成
Miranda et al. i-Berlioz: Interactive Computer-Aided Orchestration with Temporal Control
US20240153475A1 (en) Music management services
US20240038205A1 (en) Systems, apparatuses, and/or methods for real-time adaptive music generation
Walczyński et al. Using Machine Learning Algorithms to Explore Listeners Musical Tastes
Johansson et al. The Gunnlod Dataset: Engineering a dataset for multi-modal music generation
Vande Veire Music information retrieval methods for analyzing and modifying percussion-based audio
KR20240021753A (ko) 청각적으로 올바른 형태를 가지는 음악 작품을 자동으로 생성하는 시스템 및 방법
de Treville Wager Data-Driven Pitch Correction for Singing
McAllister Generating Remixed Music via Style Transfer
Sethi et al. Training Deep Convolutional Networks with Unlimited Synthesis of Musical Examples for Multiple Instrument Recognition
Ó Nuanáin et al. Rhythmic Concatenative Synthesis for Electronic Music
O'Connell Musical Mosaicing with High Level

Legal Events

Date Code Title Description
E902 Notification of reason for refusal