KR20230052298A - 음악 생성기에 대한 비교 트레이닝 - Google Patents
음악 생성기에 대한 비교 트레이닝 Download PDFInfo
- Publication number
- KR20230052298A KR20230052298A KR1020237009613A KR20237009613A KR20230052298A KR 20230052298 A KR20230052298 A KR 20230052298A KR 1020237009613 A KR1020237009613 A KR 1020237009613A KR 20237009613 A KR20237009613 A KR 20237009613A KR 20230052298 A KR20230052298 A KR 20230052298A
- Authority
- KR
- South Korea
- Prior art keywords
- music
- content
- output
- parameters
- music content
- Prior art date
Links
- 238000012549 training Methods 0.000 title description 43
- 230000000052 comparative effect Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 104
- 238000004519 manufacturing process Methods 0.000 claims abstract description 86
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 30
- 238000010801 machine learning Methods 0.000 claims description 44
- 230000002787 reinforcement Effects 0.000 claims description 32
- 230000000694 effects Effects 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000003190 augmentative effect Effects 0.000 abstract 1
- 239000000203 mixture Substances 0.000 description 42
- 238000010586 diagram Methods 0.000 description 26
- 230000007704 transition Effects 0.000 description 22
- 238000013515 script Methods 0.000 description 21
- 230000007613 environmental effect Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 238000004458 analytical method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 11
- 230000001755 vocal effect Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000002156 mixing Methods 0.000 description 10
- 230000036651 mood Effects 0.000 description 8
- 239000011295 pitch Substances 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000033764 rhythmic process Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 208000009119 Giant Axonal Neuropathy Diseases 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 201000003382 giant axonal neuropathy 1 Diseases 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000009527 percussion Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001404 mediated effect Effects 0.000 description 2
- 230000001020 rhythmical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001342895 Chorus Species 0.000 description 1
- 206010027951 Mood swings Diseases 0.000 description 1
- 241001647280 Pareques acuminatus Species 0.000 description 1
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007786 learning performance Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011042 selective layering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000009736 wetting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0008—Associated control or indicating means
- G10H1/0025—Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/638—Presentation of query results
- G06F16/639—Presentation of query results using playlists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/65—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
- G10H1/04—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
- G10H1/053—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/031—Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/105—Composing aid, e.g. for supporting creation, edition or modification of a piece of music
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/111—Automatic composing, i.e. using predefined musical rules
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2220/00—Input/output interfacing specifically adapted for electrophonic musical tools or instruments
- G10H2220/091—Graphical 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/101—Graphical 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/116—Graphical 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 sound parameters or waveforms, e.g. by graphical interactive control of timbre, partials or envelope
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2220/00—Input/output interfacing specifically adapted for electrophonic musical tools or instruments
- G10H2220/155—User input interfaces for electrophonic musical instruments
- G10H2220/351—Environmental parameters, e.g. temperature, ambient light, atmospheric pressure, humidity, used as input for musical purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/075—Musical metadata derived from musical analysis or for use in electrophonic musical instruments
- G10H2240/081—Genre classification, i.e. descriptive metadata for classification or selection of musical pieces according to style
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/075—Musical metadata derived from musical analysis or for use in electrophonic musical instruments
- G10H2240/085—Mood, i.e. generation, detection or selection of a particular emotional content or atmosphere in a musical piece
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/121—Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
- G10H2240/125—Library distribution, i.e. distributing musical pieces from a central or master library
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/121—Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
- G10H2240/131—Library retrieval, i.e. searching a database or selecting a specific musical piece, segment, pattern, rule or parameter set
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/121—Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
- G10H2240/131—Library retrieval, i.e. searching a database or selecting a specific musical piece, segment, pattern, rule or parameter set
- G10H2240/141—Library retrieval matching, i.e. any of the steps of matching an inputted segment or phrase with musical database contents, e.g. query by humming, singing or playing; the steps may include, e.g. musical analysis of the input, musical feature extraction, query formulation, or details of the retrieval process
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/325—Synchronizing two or more audio tracks or files according to musical features or musical timings
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/005—Algorithms for electrophonic musical instruments or musical processing, e.g. for automatic composition or resource allocation
- G10H2250/015—Markov chains, e.g. hidden Markov models [HMM], for musical processing, e.g. musical analysis or musical composition
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/311—Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/641—Waveform 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Acoustics & Sound (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 오디오 파일의 이미지 표현에 기초하여 새로운 음악 콘텐츠를 자동으로 생성하는 것과 관련된 기술에 관한 것이다. 음악 생성 시스템은 음악 생성 하위 시스템과 음악 분류 하위 시스템을 포함한다. 음악 생성 하위 시스템은 음악 생성 정책을 정의하는 음악 파라미터에 따라 출력 음악 콘텐츠를 생성할 수 있다. 분류 하위 시스템은 음악이 음악 생성 하위 시스템에 의해 생성되는지 또는 전문적으로 제작된 음악 콘텐츠인지를 분류하기 위해 사용될 수 있다. 음악 생성 하위 시스템은 음악 분류 하위 시스템으로부터의 예측 출력에 의해 강화되는 알고리즘을 구현할 수 있다. 상기 강화는 보다 인간과 유사한 음악 콘텐츠를 생성하기 위해 음악 파라미터를 조정하는 것을 포함할 수 있다.
Description
본 개시는 오디오 공학에 관한 것으로, 특히 음악 콘텐츠를 생성하는 것에 관한 것이다.
스트리밍 음악 서비스는 일반적으로 인터넷을 통해 사용자에게 노래를 제공한다. 사용자는 이러한 서비스에 가입하고 웹 브라우저나 애플리케이션을 통해 음악을 스트리밍할 수 있다. 이러한 서비스의 예로는 PANDORA, SPOTIFY, GROOVESHARK 등이 있다. 종종 사용자는 스트리밍할 음악 장르 또는 특정 아티스트를 선택할 수 있다. 사용자는 일반적으로 노래를 평가할 수 있으며(예: 별점 또는 좋아요/싫어요 시스템 사용) 일부 음악 서비스는 이전 평가를 기반으로 사용자에게 스트리밍되는 노래를 조정할 수 있다. 스트리밍 서비스 운영 비용(스트리밍된 각 노래에 대한 로열티 지불이 포함될 수 있음)은 일반적으로 사용자 구독 비용 및/또는 노래 사이에 재생되는 광고로 충당된다.
노래 선택은 라이선스 계약 및 특정 장르용으로 작성된 노래의 수에 의해 제한될 수 있다. 사용자는 특정 장르의 동일한 노래를 듣는 데 지칠 수 있다. 또한 이러한 서비스는 사용자의 취향, 환경, 행동 등에 음악을 맞추지 않을 수 있다.
도 1은 예시적인 음악 생성기를 도시하는 다이어그램이다.
도 2는 일부 실시예에 따라 다수의 상이한 소스로부터의 입력에 기초하여 출력 음악 콘텐츠를 생성하기 위한 시스템의 예시적인 개요를 나타내는 블록도이다.
도 3은 일부 실시예에 따라 음악 생성 및 음악 콘텐츠의 분류를 트레이닝하도록 구성된 예시적인 음악 생성기 시스템을 나타내는 블록도이다.
도 4는 일부 실시예에 따른 예시적인 음악 분류 하위 시스템을 나타내는 블록도이다.
도 5는 일부 실시예에 따른 음악 생성 하위 시스템에서의 예시적인 음악 제어 구현을 나타내는 블록도이다.
도 6은 일부 실시예에 따른 음악 분류 하위 시스템을 위한 예시적인 트레이닝 시스템을 나타내는 블록도이다.
도 7은 일부 실시예에 따라 구성 하위 시스템(composition subsystem) 및 공연(performance) 하위 시스템을 갖는 예시적인 음악 생성기를 도시하는 블록도이다.
도 8은 일부 실시예에 따른 구성 및 공연 하위 시스템의 보다 상세한 실시예를 예시하는 블록도이다.
도 9a - 도 9b는 일부 실시예에 따른 그래픽 사용자 인터페이스를 나타내는 블록도이다.
도 10은 일부 실시예에 따라 분석 및 구성(composition) 모듈을 포함하는 예시적인 음악 생성기 시스템을 도시하는 블록도이다.
도 11은 일부 실시예에 따른 음악 콘텐츠의 예시적인 빌드업 섹션을 나타내는 도면이다.
도 12는 일부 실시예에 따라 음악 콘텐츠의 섹션을 배열하기 위한 예시적인 기술을 도시하는 도면이다.
도 13은 일부 실시예에 따른 음악 생성 시스템을 트레이닝하기 위한 흐름도 방법이다.
도 14 및 도 15는 일부 실시예에 따른 예시적인 방법을 나타내는 흐름도이다.
도 2는 일부 실시예에 따라 다수의 상이한 소스로부터의 입력에 기초하여 출력 음악 콘텐츠를 생성하기 위한 시스템의 예시적인 개요를 나타내는 블록도이다.
도 3은 일부 실시예에 따라 음악 생성 및 음악 콘텐츠의 분류를 트레이닝하도록 구성된 예시적인 음악 생성기 시스템을 나타내는 블록도이다.
도 4는 일부 실시예에 따른 예시적인 음악 분류 하위 시스템을 나타내는 블록도이다.
도 5는 일부 실시예에 따른 음악 생성 하위 시스템에서의 예시적인 음악 제어 구현을 나타내는 블록도이다.
도 6은 일부 실시예에 따른 음악 분류 하위 시스템을 위한 예시적인 트레이닝 시스템을 나타내는 블록도이다.
도 7은 일부 실시예에 따라 구성 하위 시스템(composition subsystem) 및 공연(performance) 하위 시스템을 갖는 예시적인 음악 생성기를 도시하는 블록도이다.
도 8은 일부 실시예에 따른 구성 및 공연 하위 시스템의 보다 상세한 실시예를 예시하는 블록도이다.
도 9a - 도 9b는 일부 실시예에 따른 그래픽 사용자 인터페이스를 나타내는 블록도이다.
도 10은 일부 실시예에 따라 분석 및 구성(composition) 모듈을 포함하는 예시적인 음악 생성기 시스템을 도시하는 블록도이다.
도 11은 일부 실시예에 따른 음악 콘텐츠의 예시적인 빌드업 섹션을 나타내는 도면이다.
도 12는 일부 실시예에 따라 음악 콘텐츠의 섹션을 배열하기 위한 예시적인 기술을 도시하는 도면이다.
도 13은 일부 실시예에 따른 음악 생성 시스템을 트레이닝하기 위한 흐름도 방법이다.
도 14 및 도 15는 일부 실시예에 따른 예시적인 방법을 나타내는 흐름도이다.
전체가 인용에 의해 본원에 포함되는, 2013년 8월 16일에 출원된 미국 특허 출원 제 13/969,372호(현재 미국 특허 제8,812,144호)는 하나 이상의 음악적 속성을 기반으로 음악 콘텐츠를 생성하는 기술을 논의한다. '372 출원의 정의와 나머지 개시 내용 사이의 인지된 충돌에 기초하여 해석이 이루어지는 한, 본 개시 내용이 지배하도록 의도된다. 음악 속성은 사용자에 의해 입력될 수 있거나 주변 소음, 조명 등과 같은 환경 정보에 기초하여 결정될 수 있다. '372 개시내용은 저장된 루프 및/또는 트랙을 선택하거나 새로운 루프/트랙을 생성하고 출력 음악 콘텐츠를 생성하기 위해 선택된 루프/트랙을 레이어링(layering)하기 위한 기술을 논의한다.
전체가 인용에 의해 본원에 포함되는, 2019년 5월 23일에 출원된 미국 특허 출원 제 16/420,456호(현재 미국 특허 제 10,679,596호)는 음악 콘텐츠를 생성하는 기술을 논의한다. '456 출원의 정의와 나머지 개시 내용 사이의 인지된 충돌에 기초하여 해석이 이루어지는 한, 본 개시 내용이 지배하도록 의도된다. 음악은 사용자 입력 또는 컴퓨터 구현 방법을 사용하여 생성될 수 있다. '456 개시는 다양한 음악 생성기 실시예를 논의한다.
본 명세서에서 사용되는 바와 같이, "오디오 파일(audio file)"이라는 용어는 음악 콘텐츠에 대한 사운드 정보를 의미한다. 예를 들어, 사운드 정보에는 wav, aiff. 또는 FLAC와 같은 형식의 원시 오디오로 음악 콘텐츠를 설명하는 데이터가 포함될 수 있다. 음원 정보에는 음악 컨텐츠의 속성이 포함될 수 있다. 속성에는 예를 들어 악기 분류, 피치 표기(pitch transcription), 박자 타이밍, 템포, 파일 길이, 및 다중 주파수 빈의 오디오 진폭과 같은 정량화할 수 있는 음악적 속성이 포함될 수 있다. 일부 실시예에서, 오디오 파일은 특정 시간 간격에 대한 사운드 정보를 포함한다. 다양한 실시예에서, 오디오 파일은 루프를 포함한다. 본 명세서에서 사용되는 바와 같이, "루프(loop)"라는 용어는 특정 시간 간격 동안 단일 악기에 대한 사운드 정보를 의미한다. 오디오 파일과 관련하여 논의된 다양한 기술은 단일 악기를 포함하는 루프를 사용하여 수행될 수도 있다. 오디오 파일 또는 루프는 반복 방식으로 재생될 수 있지만(예를 들어, 30초 오디오 파일이 2분 분량의 음악 콘텐츠를 생성하기 위해 연속으로 4회 재생될 수 있음), 예를 들어 반복 없이 한 번 재생될 수도 있다.
본 개시는 먼저 도 1 및 도 2를 참조하여, 여러 애플리케이션이 있는 예시적인 음악 생성기 모듈과 전체 시스템 구성을 설명한다. 음악 생성 시스템을 트레이닝하기 위한 기술은 도 3 내지 도 6을 참조하여 논의된다. 음악 생성을 위한 기술은 도 7 및 도 8을 참조하여 논의된다. 도 9a-도 9b는 예시적인 애플리케이션 인터페이스를 도시한다.
일부 실시예에서, 하나 이상의 분류기는 서버 시스템에서(예를 들어, 클라우드에서) 트레이닝되는 반면 강화 학습은 음악 생성을 개선하기 위해 사용자 디바이스에서 구현된다. 개시된 기술은 다중 시스템에 의해 사용되는 글로벌 분류기 모델에 기초한 맞춤형 사용자 음악 생성기 모듈을 유리하게 허용하여 트레이닝 시간 및 비용을 줄이고 중앙 집중식 트레이닝을 허용하지만 개인화된 결과를 허용할 수 있다.
일반적으로 말해서, 개시된 음악 생성기는 오디오 파일, 메타데이터(예를 들어, 오디오 파일을 설명하는 정보) 및 메타데이터에 기초하여 오디오 파일을 결합하는 기술을 포함한다. 생성기는 음악 경험의 대상 특성 및 메타데이터에 기초하여 오디오 파일을 식별하는 규칙을 사용하여 음악 경험을 생성할 수 있다. 규칙, 오디오 파일 및/또는 메타데이터를 추가하거나 수정하여 만들 수 있는 경험 세트를 확장하도록 구성할 수 있다. 조정은 수동으로 수행될 수 있거나(예를 들어, 새로운 메타데이터를 추가하는 아티스트) 음악 생성기는 주어진 환경 및 원하는 목표/특성 내에서 음악 경험을 모니터링할 때 규칙/오디오 파일/메타데이터를 강화할 수 있다. 예를 들어, 음악 목표 또는 특성에 대한 사용자 피드백을 얻기 위해 청취자 정의 제어가 구현될 수 있다.
예시적인 음악 생성기의 개요(
Overview of Exemplary Music Generator)
도 1은 일부 실시예에 따른 예시적인 음악 생성기를 나타내는 도면이다. 예시된 실시예에서, 음악 생성기 모듈(160)은 다수의 상이한 소스로부터 다양한 정보를 수신하고 출력 음악 콘텐츠(140)를 생성한다.
예시된 실시예에서, 모듈(160)은 저장된 오디오 파일(들) 및 저장된 오디오 파일(들)에 대한 대응하는 속성(들)(110)에 액세스하고 출력 음악 콘텐츠(140)를 생성하기 위해 오디오 파일들을 결합한다. 일부 실시예에서, 음악 생성기 모듈(160)은 그 속성에 기초하여 오디오 파일을 선택하고 대상 음악 속성(130)에 기초하여 오디오 파일을 결합한다. 일부 실시예에서, 오디오 파일은 대상 음악 속성(130)과 조합된 환경 정보(150)에 기초하여 선택될 수 있다. 일부 실시예에서, 환경 정보(150)는 대상 음악 속성(130)을 결정하기 위해 간접적으로 사용된다. 일부 실시예에서, 대상 음악 속성(130)은 예를 들어 원하는 에너지 레벨, 무드, 다중 파라미터 등을 지정함으로써 사용자에 의해 명시적으로 지정된다. 예를 들어, 본원에서 설명된, 청취자 정의 제어는 대상 음악 속성으로 사용되는 청취자 기본 설정을 지정하기 위해 구현될 수 있다. 대상 음악 속성(130)의 예는 에너지, 복잡도 및 다양성을 포함하지만, 보다 구체적인 속성(예를 들어, 저장된 트랙의 속성에 대응하는 것)이 지정될 수도 있다. 일반적으로 말하자면, 더 높은 수준의 대상 음악 속성이 지정되면 더 낮은 수준의 특정 음악 속성이 출력 음악 콘텐츠를 생성하기 전에 시스템에 의해 결정될 수 있다.
복잡도는 구성(composition)에 포함된 오디오 파일, 루프 및/또는 악기의 수를 나타낼 수 있다. 에너지는 다른 속성과 관련되거나 다른 속성과 독립적일 수 있다. 예를 들어 키나 템포를 변경하면 에너지에 영향을 미칠 수 있다. 그러나 주어진 템포와 키에 대해 악기 유형(예: 높은 모자 또는 백색 잡음 추가), 복잡성, 볼륨 등을 조정하여 에너지를 변경할 수 있다. 다양성은 시간이 지남에 따라 생성된 음악의 변화량을 의미할 수 있다. 다양성은 다른 음악적 속성의 정적 세트에 대해 생성될 수 있거나(예: 주어진 템포 및 키에 대해 다른 트랙을 선택하여) 시간이 지남에 따라 음악적 속성을 변경하여 생성될 수 있다(예: 더 큰 다양성을 원할 때 템포 및 키를 더 자주 변경함으로써). 일부 실시예에서, 대상 음악 속성은 다차원 공간에 존재하는 것으로 생각될 수 있고 음악 생성기 모듈(160)은 예를 들어, 필요한 경우 환경 변화 및/또는 사용자 입력에 기초하여 경로 수정과 함께 그 공간을 통해 천천히 이동할 수 있다.
일부 실시예에서, 오디오 파일과 함께 저장된 속성은 템포, 볼륨, 에너지, 다양성, 스펙트럼, 엔벨로프, 변조, 주기성, 상승 및 감쇠 시간, 노이즈, 아티스트, 악기, 테마 등을 포함하는 하나 이상의 오디오 파일에 대한 정보를 포함한다. 일부 실시예에서 오디오 파일은 하나 이상의 오디오 파일 세트가 특정 오디오 파일 유형(예를 들어, 하나의 악기 또는 하나의 악기 유형)에 특정하도록 분할된다는 점에 유의하시오.
예시된 실시예에서, 모듈(160)은 저장된 규칙 세트(들)(120)에 액세스한다. 일부 실시예에서, 저장된 규칙 세트(들)(120)는 그들이 동시에 재생되도록 얼마나 많은 오디오 파일이 오버레이될 것인지에 대한 규칙을 지정하고(출력 음악의 복잡성에 해당할 수 있음), 오디오 파일 또는 악구 사이를 전환할 때 사용할 메이저/마이너 키 진행, 함께 사용할 악기(예: 서로 친화력이 있는 악기) 등 대상 음악 속성을 달성한다. 달리 말하면, 음악 생성기 모듈(160)은 대상 음악 속성(및/또는 대상 환경 정보)에 의해 정의된 하나 이상의 선언적 목표를 달성하기 위해 저장된 규칙 세트(들)(120)를 사용한다. 일부 실시예에서, 음악 생성기 모듈(160)은 반복적인 출력 음악을 피하기 위해 의사 난수를 도입하도록 구성된 하나 이상의 의사 난수 생성기를 포함한다.
일부 실시예에서, 환경 정보(150)는 다음 중 하나 이상를 포함한다: 조명 정보, 주변 소음, 사용자 정보(얼굴 표정, 신체 자세, 활동 수준, 움직임, 피부 온도, 특정 활동 수행, 의복 유형, 등), 온도 정보, 지역에서의 구매 활동, 하루 중 시간, 요일, 연중 시간, 참석한 사람 수, 날씨 상태 등. 일부 실시예에서, 음악 생성기 모듈(160)은 환경 정보를 수신/처리하지 않는다. 일부 실시예에서, 환경 정보(150)는 환경 정보에 기초하여 대상 음악 속성(130)을 결정하는 다른 모듈에 의해 수신된다. 대상 음악 속성(130)은 또한 다른 유형의 콘텐츠, 예를 들어 비디오 데이터에 기초하여 유도될 수 있다. 일부 실시예에서, 환경 정보는 예를 들어 하나 이상의 환경 목표를 달성하기 위해 하나 이상의 저장된 규칙 세트(들)(120)를 조정하는 데 사용된다. 유사하게, 음악 생성기는 하나 이상의 오디오 파일에 대한 저장된 속성을 조정하기 위해, 예를 들어, 오디오 파일이 특히 관련된 대상 음악 속성 또는 대상 청중 특성을 나타내기 위해 환경 정보를 사용할 수 있다.
본 명세서에서 사용되는 바와 같이, "모듈(module)"이라는 용어는 특정 동작을 수행하도록 구성된 회로 또는 다른 회로(예를 들어, 프로세서)가 지정된 작업을 수행하도록 지시하는 정보(예를 들어, 프로그램 명령)를 저장하는 물리적 비일시적 컴퓨터 판독 가능 매체를 지칭한다. 모듈은 하드와이어 회로 또는 작업을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 프로그램 명령이 저장된 메모리를 포함하여 여러 방식으로 구현될 수 있다. 하드웨어 회로는 예를 들어 맞춤형 초대형 통합(VLSI) 회로 또는 게이트 어레이, 논리 칩과 같은 기성품 반도체, 트랜지스터, 또는 기타 개별 구성요소를 포함할 수 있다. 모듈은 또한 필드 프로그램 가능 게이트 어레이, 프로그램 가능 어레이 논리, 프로그램 가능 논리 디바이스, 등과 같은 프로그램 가능 하드웨어 디바이스에서 구현될 수 있다. 모듈은 또한 특정 작업을 수행하기 위해 실행 가능한 프로그램 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체의 임의의 적합한 형태일 수 있다.
본 명세서에서 사용되는 바와 같이, "음악 콘텐츠(music content)"라는 어구는 음악 자체(음악의 가청 표현)뿐만 아니라 음악을 재생하는 데 사용할 수 있는 정보를 모두 지칭한다. 따라서 저장 매체(콤팩트 디스크, 플래시 드라이브 등과 같은 제한 없이)에 파일로 기록된 노래는 음악 콘텐츠의 예이고; 이 녹음 파일 또는 기타 전자적 표현(예: 스피커를 통해)을 출력하여 생성된 사운드도 음악 콘텐츠의 예이다.
"음악(music)"이라는 용어는 보컬 사운드뿐만 아니라 악기에 의해 생성되는 사운드를 포함하는 잘 알려진 의미를 포함한다. 따라서, 음악에는 예를 들어 기악 공연 또는 녹음, 아카펠라 공연 또는 녹음, 악기와 음성을 모두 포함하는 공연 또는 녹음이 포함된다. 당업자는 "음악"이 모든 음성 녹음을 포함하지 않는다는 것을 인식할 것이다. 리듬이나 라임과 같은 음악적 속성을 포함하지 않는 저작물(예: 연설, 뉴스 캐스트 및 오디오북)은 음악이 아니다.
하나의 음악 "콘텐츠(content)"는 임의의 적절한 방식으로 다른 음악 콘텐츠와 구별될 수 있다. 예를 들어, 제 1 노래에 대응하는 디지털 파일은 제 1 음악 콘텐츠를 나타낼 수 있는 반면, 제 2 노래에 대응하는 디지털 파일은 제 2 음악 콘텐츠를 나타낼 수 있다. "음악 콘텐츠(music content)"라는 어구는 주어진 음악 작품 내에서 특정 음정을 구별하는 데 사용될 수도 있으므로 동일한 노래의 다른 부분이 음악 콘텐츠의 다른 부분으로 간주될 수 있다. 마찬가지로, 주어진 음악 작품 내의 다른 트랙(예: 피아노 트랙, 기타 트랙)은 음악 콘텐츠의 다른 부분에 해당할 수도 있다. 생성된 음악의 잠재적으로 끝없는 스트림의 맥락에서, "음악 콘텐츠"라는 문구는 스트림의 일부(예: 몇 소절 또는 몇 분)를 나타내는 데 사용될 수 있다.
본 발명의 실시예에 의해 생성된 음악 콘텐츠는 이전에 생성된 적이 없는 음악적 요소의 조합인 "새로운 음악 콘텐츠(new music content)"일 수 있다. 관련된(하지만 더 포괄적인) 개념인 "오리지널 음악 콘텐츠(original music content)"는 아래에 자세히 설명되어 있다. 이 용어의 설명을 용이하게 하기 위해 음악 콘텐츠 생성 인스턴스와 관련된 "제어 개체(controlling entity)"의 개념이 설명된다. "오리지널 음악 콘텐츠"라는 문구와 달리 "신규 음악 콘텐츠"라는 문구는 지배 개체의 개념을 의미하지 않는다. 따라서 새로운 음악 콘텐츠는 이전에 어떤 개체나 컴퓨터 시스템에 의해 생성된 적이 없는 음악 콘텐츠를 의미한다.
개념적으로, 본 발명은 컴퓨터 생성 음악 콘텐츠의 특정 인스턴스를 제어하는 일부 "개체(entity)"를 지칭한다. 이러한 개체는 컴퓨터에서 생성된 콘텐츠에 해당할 수 있는 모든 법적 권리(예: 저작권)를 소유한다(해당 권리가 실제로 존재할 수 있는 범위까지). 일 실시예에서, 컴퓨터 구현 음악 생성기를 생성(예를 들어, 다양한 소프트웨어 루틴을 코딩)하거나 컴퓨터 구현 음악 생성의 특정 인스턴스를 작동(예를 들어, 입력을 제공)하는 개인이 제어 개체일 것이다. 다른 실시예에서, 컴퓨터 구현 음악 생성기는 소프트웨어 제품, 컴퓨터 시스템 또는 컴퓨팅 디바이스의 형태와 같은 법적 개체(예를 들어, 기업 또는 기타 비즈니스 조직)에 의해 생성될 수 있다. 어떤 경우에는 이러한 컴퓨터 구현 음악 생성기가 많은 클라이언트에 배포될 수 있다. 이 음악 생성기의 배포와 관련된 라이선스 조건에 따라, 제어 개체는 제작자, 배포자 또는 다양한 경우 클라이언트가 될 수 있다. 이러한 명시적인 법적 계약이 없는 경우, 컴퓨터 구현 음악 생성기의 제어 개체는 음악 콘텐츠의 컴퓨터 생성의 특정 인스턴스를 촉진(예: 입력을 제공하여 작동)하는 개체이다.
본 발명의 의미 내에서, 제어 개체에 의한 "오리지널 음악 콘텐츠"의 컴퓨터 생성은 1) 제어 개체 또는 다른 사람에 의해 이전에 생성된 적이 없는 음악적 요소의 조합, 및 2) 이전에 생성된 음악적 요소의 조합이지만 처음에는 제어 개체에 의해 생성되었다. 콘텐츠 유형 1)은 본 명세서에서 "신규 음악 콘텐츠"로 지칭되며, "신규 음악 콘텐츠"의 정의가 "통제 개체"의 개념을 지칭한다는 점을 제외하고는 "신규 음악 콘텐츠"의 정의와 유사하며, "새로운 음악 콘텐츠"의 정의는 그렇지 않다. 반면, 콘텐츠 유형 2)는 본 명세서에서 "독점 음악 콘텐츠(proprietary music content)"라고 한다. 이 문맥에서, "독점(proprietary)"이라는 용어는 콘텐츠에 대한 묵시적인 법적 권리를 의미하는 것이 아니라(해당 권리가 존재할 수 있음) 음악 콘텐츠가 원래 제어 개체에 의해 생성되었음을 나타내는 데만 사용된다. 따라서, 제어 개체에 의해 이전에 원래 생성되었던 음악 콘텐츠를 "재생성하는(re-generating)" 제어 개체는 본 개시 내용 내에서 "오리지널 음악 콘텐츠의 생성(generation of original music content)"을 구성한다. 특정 제어 개체와 관련된 "원본이 아닌 음악 콘텐츠(non-original music content)"는 해당 제어 개체의 "원본 음악 콘텐츠"가 아닌 음악 콘텐츠이다.
일부 음악 콘텐츠는 하나 이상의 다른 음악 콘텐츠로부터의 음악적 구성요소를 포함할 수 있다. 이러한 방식으로 음악 콘텐츠를 생성하는 것을 음악 콘텐츠 "샘플링(sampling)"이라고 하며 특정 음악 작품, 특히 특정 음악 장르에서 일반적이다. 이러한 음악 콘텐츠는 여기에서 "샘플링된 구성요소가 있는 음악 콘텐츠(music content with sampled components)", "파생 음악 콘텐츠(derivative music content)" 또는 기타 유사한 용어를 사용하여 언급된다. 대조적으로, 샘플링된 구성요소를 포함하지 않는 음악 콘텐츠는 본 명세서에서 "샘플링된 구성요소가 없는 음악 콘텐츠(music content without sampled components)", "비파생 음악 콘텐츠(non-derivative music content)" 또는 다른 유사한 용어를 사용하여 지칭된다.
이러한 용어를 적용할 때, 임의의 특정 음악 콘텐츠가 충분한 수준의 세분성으로 축소되면 이 음악 콘텐츠가 파생적이라는 주장이 제기될 수 있다는 점에 유의해야 한다(사실상 모든 음악 콘텐츠가 파생적이라는 의미). "파생물(derivative)" 및 "비파생물(non-derivative)"이라는 용어는 본 명세서에서 이러한 의미로 사용되지 않는다. 음악 콘텐츠의 컴퓨터 생성과 관련하여, 이러한 컴퓨터 생성은 컴퓨터 생성이 제어 개체가 아닌 다른 개체의 기존 음악 콘텐츠에서 구성요소의 일부를 선택하는 경우(예: 컴퓨터 프로그램은 생성되고 있는 음악 콘텐츠에 포함하기 위해 인기 아티스트 작품의 오디오 파일의 특정 부분을 선택하는 경우), 파생이라 한다. 한편, 컴퓨터 생성이 이러한 기존 콘텐츠의 구성요소를 활용하지 않는 경우 음악 콘텐츠의 컴퓨터 생성은 비파생적(그리고 비파생적 음악 콘텐츠가 됨)이라고 한다. 일부 "오리지널 음악 콘텐츠"는 파생 음악 콘텐츠일 수 있는 반면 일부 작품은 비파생 음악 콘텐츠일 수 있다.
"파생물(derivative)"이라는 용어는 미국 저작권법에서 사용되는 "파생 저작물(derivative work)"이라는 용어보다 본 개시 내용 내에서 더 넓은 의미를 갖도록 의도된다는 점에 유의한다. 예를 들어 파생 음악 콘텐츠는 미국 저작권법에 따라 파생 작품일 수도 있고 아닐 수도 있다. 본 명세서에서 "유도체"라는 용어는 부정적인 의미를 전달하려는 의도가 아니다; 단지 음악 콘텐츠의 특정 부분이 다른 작업에서 콘텐츠의 일부를 "차용(borrows)"했는지 여부를 의미하는 데 사용된다.
또한, "새로운 음악 콘텐츠", "신규 음악 콘텐츠" 및 "오리지널 음악 콘텐츠"라는 문구는 기존의 음악적 요소의 조합과 약간만 다른 음악 콘텐츠를 포함하도록 의도되지 않는다. 예를 들어, 기존 음악 저작물의 몇 가지 음만 변경하는 것은 본 개시에서 사용되는 어구와 같이 새롭거나 참신하거나 독창적인 음악 콘텐츠를 생성하지 않는다. 마찬가지로 기존 음악 작품의 키나 템포를 변경하거나 주파수의 상대적 강도를 조정하는 것(예: 이퀄라이저 인터페이스 사용)은 새롭거나 참신하거나 독창적인 음악 콘텐츠를 생성하지 않는다. 더욱이, 새로운, 신규 및 원본 음악 콘텐츠라는 문구는 원본 콘텐츠와 원본이 아닌 콘텐츠 사이의 경계선에 있는 음악 콘텐츠를 포함하기 위한 것이 아닙니다; 대신, 이러한 조건은 지배 개체가 저작권 보호를 받을 수 있는 음악 콘텐츠(여기서는 "보호 가능한(protectable)" 음악 콘텐츠라고 함)를 포함하여 의심할 여지 없이 독창적인 음악 콘텐츠를 포함하기 위한 것이다. 또한, 본 명세서에서 사용되는 바와 같이, "이용 가능한(available)" 음악 콘텐츠라는 용어는 제어 개체 이외의 다른 개체의 저작권을 위반하지 않는 음악 콘텐츠를 의미한다. 신규 및/또는 원본 음악 콘텐츠는 보호 및 사용이 가능한 경우가 많다. 이는 음악 콘텐츠의 복제 방지 및/또는 음악 콘텐츠에 대한 로열티 지불에 유리할 수 있다.
본 명세서에서 논의되는 다양한 실시예가 규칙 기반 엔진을 사용하지만, 다양한 다른 유형의 컴퓨터 구현 알고리즘이 본 명세서에서 논의되는 임의의 컴퓨터 학습 및/또는 음악 생성 기술에 사용될 수 있다. 그러나 규칙 기반 접근 방식은 음악 콘텐츠에서 특히 효과적일 수 있다.
예시적인 음악 시스템에서 사용될 수 있는 애플리케이션, 저장 요소, 및 데이터의 개요
음악 생성기 모듈은 음악 콘텐츠를 생성하기 위해 다수의 상이한 애플리케이션, 모듈, 저장 요소 등과 상호작용할 수 있다. 예를 들어 최종 사용자는 다양한 유형의 컴퓨팅 디바이스(예: 모바일 디바이스, 데스크톱 컴퓨터, 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)과의 통신에 기초하여 저장된 규칙 세트(들)(120)를 수정 및/또는 업데이트한다. 일부 실시예에서, 규칙 모듈(210)은 저장된 규칙 세트(들)(120)에 액세스하여 출력 음악 콘텐츠를 생성한다. 예시된 실시예에서, 저장된 규칙 세트(들)(120)는 아래에서 더 상세히 논의되는 아티스트 규칙 생성기 모듈(260)로부터의 규칙을 포함할 수 있다.
예시된 실시예에서, 아티스트 애플리케이션(250)은 아티스트 규칙 생성기 모듈(260)(동일한 애플리케이션의 일부일 수 있거나 예를 들어 클라우드 기반일 수 있음)과 통신한다. 일부 실시예에서, 아티스트 애플리케이션(250)은 아티스트가 예를 들어 이전 작곡에 기초하여 자신의 특정 사운드에 대한 규칙 세트를 생성하도록 허용한다. 이 기능은 미국 특허 제10,679,596호에서 추가로 논의된다. 일부 실시예에서, 아티스트 규칙 생성기 모듈(260)은 규칙 모듈(210)에 의해 사용하기 위해 생성된 아티스트 규칙 세트를 저장하도록 구성된다. 사용자는 특정 애플리케이션을 통해 출력 음악을 생성하기 위해 규칙 세트를 사용하기 전에 특정 아티스트로부터 규칙 세트를 구매할 수 있다. 특정 아티스트에 대한 규칙 세트를 서명 팩(signature pack)이라고 할 수 있다.
예시된 실시예에서 저장된 오디오 파일(들) 및 대응하는 속성(들)(110)은 출력 음악 콘텐츠를 생성하기 위해 트랙을 선택 및 조합하기 위한 규칙을 적용할 때 모듈(210)에 의해 액세스된다. 예시된 실시예에서, 규칙 모듈(210)은 생성된 출력 음악 콘텐츠(270)를 저장 요소에 저장한다.
일부 실시예에서, 도 2의 요소 중 하나 이상는 서버에서 구현되고 네트워크를 통해 액세스되며, 이는 클라우드-기반 구현이라고 할 수 있다. 예를 들어, 저장된 규칙 세트(들)(120), 오디오 파일(들)/속성(들)(110), 및 생성된 음악(270)은 모두 클라우드에 저장되고 모듈(210)에 의해 액세스될 수 있다. 다른 예에서, 모듈(210) 및/또는 모듈(260)은 클라우드에서도 구현될 수 있다. 일부 실시예에서, 생성된 음악(270)은 클라우드에 저장되고 디지털 워터마크된다. 예를 들어 생성된 음악 복사를 감지할 수 있을 뿐만 아니라 많은 양의 사용자 지정 음악 콘텐츠를 생성할 수 있다.
일부 실시예에서, 개시된 모듈 중 하나 이상는 음악 콘텐츠 외에 다른 유형의 콘텐츠를 생성하도록 구성된다. 예를 들어, 시스템은 대상 음악 속성, 결정된 환경 조건, 현재 사용되는 규칙 세트 등에 기초하여 시각적 콘텐츠를 생성하도록 구성될 수 있다. 다른 예로서, 시스템은 생성되는 음악의 현재 속성에 기초하여 데이터베이스 또는 인터넷을 검색할 수 있고 음악이 변경되고 음악의 속성과 일치함에 따라 동적으로 변경되는 이미지 콜라주를 표시한다.
예시적인 기계 학습 접근법
여기에 설명된 바와 같이, 도 1에 도시된 음악 생성기 모듈(160)은 출력 음악 콘텐츠(140)를 생성하기 위해 다양한 인공 지능(AI) 기술(예를 들어, 기계 학습 기술)을 구현할 수 있다. 다양한 실시예에서, 구현된 AI 기술은 보다 전통적인 기계 학습 기술을 갖는 심층 신경망(DNN)과 지식 기반 시스템의 조합을 포함한다. 이 조합은 이러한 기술의 각각의 강점과 약점을 음악 구성(music compositon) 및 개인화 시스템에 내재된 문제와 일치시킬 수 있다. 음악 콘텐츠에는 여러 수준의 구조가 있다. 예를 들어, 노래에는 섹션, 구, 멜로디, 음표 및 질감이 있다. 일부 기계 학습 기술은 음악 콘텐츠의 높은 수준 및 낮은 수준의 세부 정보를 분석하고 생성하는 데 효과적일 수 있다. 예를 들어, DNN은 낮은 수준에서 클라리넷이나 전자 기타에 속하는 것으로 소리의 질감을 분류하거나 높은 수준에서 절과 코러스를 감지하는 데 능숙할 수 있다. 멜로디 구성, 오케스트레이션 등과 같은 중간 수준의 음악 콘텐츠 세부 사항은 더 어려울 수 있다. DNN은 일반적으로 단일 모델에서 다양한 스타일을 캡처하는 데 능숙하므로 DNN은 표현 범위가 많은 생성 도구로 구현될 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 음악 생성기 모듈에 의해 사용되는 음악 콘텐츠의 기본 단위로서 사람이 구성한 오디오 파일(예를 들어, 루프)을 가짐으로써 전문 지식을 활용한다. 예를 들어, 전문가 지식의 사회적 맥락은 여러 수준의 구조에서 발견법을 기록하기 위해 리듬, 멜로디 및 질감의 선택을 통해 내장될 수 있다. 구조적 수준에 기반한 DNN과 전통적인 기계 학습의 분리와 달리 음악 생성기 모듈(160)의 트레이닝 가능성에 너무 강한 제한을 두지 않고 음악성을 높일 수 있는 모든 영역에 전문 지식을 적용할 수 있다.
일부 실시예에서, 음악 생성기 모듈(160)은 오디오 파일 또는 루프를 시퀀스로 결합함으로써 오디오 레이어가 수직으로 결합되는 방식의 패턴을 찾기 위해 DNN을 사용하고, 오디오 파일 또는 루프를 시퀀스로 결합함으로써 수평으로 사운드를 서로의 위에 레이어링한다. 예를 들어, 음악 생성기 모듈(160)은 멀티트랙 오디오 녹음에 사용되는 루프의 멜 주파수 켑스트럴 계수(MFCC) 오디오 특징에 대해 트레이닝된 장단기 메모리(LSTM) 순환 신경망을 구현할 수 있다. 일부 실시예에서, 네트워크는 이전 비트의 오디오 특징에 대한 지식에 기초하여 다가오는 음악 비트에 대한 루프의 오디오 특징을 예측하고 선택하도록 트레이닝된다. 예를 들어, 네트워크는 마지막 128비트의 오디오 특징에 대한 지식을 기반으로 다음 8비트에 대한 루프의 오디오 특징을 예측하도록 트레이닝될 수 있다. 따라서 네트워크는 다가오는 비트를 예측하기 위해 저차원 기능 표현을 활용하도록 트레이닝된다.
특정 실시예에서, 음악 생성기 모듈(160)은 멀티트랙 오디오의 시퀀스를 강도 및 복잡성의 동역학을 갖는 음악 구조로 조합하기 위해 알려진 기계 학습 알고리즘을 사용한다. 예를 들어, 음악 생성기 모듈(160)은 여러 레벨의 계층 구조에 의해 결정된 확률로 상태 전이를 만드는 상태 기계처럼 동작할 수 있는 계층적 은닉 마르코프 모델(Hierarchical Hidden Markov Models)을 구현할 수 있다. 예를 들어 특정 유형의 드롭은 빌드업 섹션 이후에 발생할 가능성이 더 높을 수 있지만 해당 빌드업의 끝에 드럼이 없는 경우에는 가능성이 낮다. 다양한 실시예에서, 확률은 학습되는 것이 더 불투명한 DNN 트레이닝과 대조적으로 투명하게 트레이닝될 수 있다.
마르코프(Markov) 모델은 더 큰 시간적 구조를 다룰 수 있고 따라서 예제가 너무 길 수 있으므로 예제 트랙을 제시함으로써 쉽게 트레이닝되지 않을 수 있다. 피드백 제어 요소(예: 사용자 인터페이스의 좋아요/싫어요)를 사용하여 언제든지 음악에 대한 피드백을 제공할 수 있다. 그런 다음 음악 구조와 피드백 간의 상관 관계를 사용하여 전환 테이블 또는 마르코프 모델과 같은 구성에 사용되는 구조 모델을 업데이트할 수 있다. 이 피드백은 시스템이 명확한 분류를 결정할 수 있는 심박수, 판매 또는 기타 메트릭의 측정에서 직접 수집될 수도 있다. 위에서 설명한 전문 지식 휴리스틱(heuristics)도 가능한 경우 확률적으로 설계되었으며 마르코프 모델과 동일한 방식으로 트레이닝된다.
특정 실시예에서, 트레이닝은 작곡가 또는 DJ에 의해 수행될 수 있다. 이러한 트레이닝은 청취자 트레이닝과 별개일 수 있다. 예를 들어 청취자(예: 일반 사용자)가 수행하는 트레이닝은 각각 긍정적 및 부정적 모델 피드백을 기반으로 올바른 분류 또는 잘못된 분류를 식별하는 것으로 제한될 수 있다. 작곡가와 DJ의 경우 트레이닝에는 수백 가지 시간 단계가 포함될 수 있으며 사용된 레이어에 대한 세부 정보와 음악 콘텐츠의 변화를 주도하는 요소에 대한 보다 명확한 세부 정보를 제공하는 볼륨 제어가 포함될 수 있다. 예를 들어 작곡가와 DJ가 수행하는 트레이닝에는 위에서 설명한 DNN의 글로벌 트레이닝과 유사한 시퀀스 예측 트레이닝이 포함될 수 있다.
다양한 실시예에서, DNN은 가장 최근에 재생된 음악의 시퀀스가 주어진 시간에 임의의 순간에 DJ가 자신의 오디오 인터페이스와 가질 수 있는 상호작용을 예측하도록 트레이닝된다. 일부 실시예에서, 이러한 상호작용은 더 투명한 새로운 휴리스틱을 개발하기 위해 기록되고 사용될 수 있다. 일부 실시예에서, DNN은 입력으로서 음악의 다수의 이전 소절을 수신하고 DJ 또는 작곡가가 적용한 트랙에 대한 수정을 설명하는 추가 기능과 함께 위에서 설명한 바와 같이 저차원 기능 표현을 활용한다. 예를 들어, DNN은 음악의 마지막 32개 소절을 입력으로 수신하고 DJ 또는 작곡가가 적용한 트랙에 대한 수정 사항을 설명하기 위해 추가 기능과 함께 저차원 기능 표현을 활용할 수 있다. 이러한 수정 사항에는 특정 트랙의 게인, 적용된 필터, 지연 등에 대한 조정이 포함될 수 있다. 예를 들어, DJ는 공연 중 5분 동안 반복되는 동일한 드럼 루프를 사용할 수 있지만 시간이 지남에 따라 트랙의 게인 및 지연을 점진적으로 증가시킬 수 있다. 따라서 DNN은 루프 선택 외에도 이러한 이득 및 지연 변화를 예측하도록 트레이닝될 수 있다. 특정 악기에 대해 루프가 재생되지 않는 경우(예: 드럼 루프가 재생되지 않음) 기능 세트는 해당 악기에 대해 모두 0일 수 있으며, 이를 통해 DNN은 모든 0을 예측하는 것이 선택적 레이어링으로 이어질 수 있는 성공적인 전략일 수 있음을 학습할 수 있다.
경우에 따라, DJ 또는 작곡가는 믹서 및 TRAKTOR(Native Instruments GmbH)와 같은 디바이스를 사용하여 라이브 공연을 녹음한다. 이러한 녹음은 일반적으로 고해상도로 캡처된다(예: 4트랙 녹음 또는 MIDI). 일부 실시예에서, 시스템은 각각의 개별 루프의 음질뿐만 아니라 구성의 루프 조합에 대한 정보를 생성하는 구성 루프로 녹음을 분해한다. 이 정보로 DNN(또는 다른 기계 학습)을 트레이닝하면 구성(예: 시퀀싱, 레이어링, 루프의 타이밍 등)과 루프의 음향 품질을 모두 연관시켜 음악 생성기 모듈(160)에 아티스트가 공연에 사용한 실제 루프를 사용하지 않고 아티스트의 공연과 유사한 음악 경험의 생성 방법을 알리는 기능을 DNN에 제공한다.
비교
트레이닝이
포함된 예시적인 음악 생성기
음악 콘텐츠를 생성하는 하나의 기술은 생성된 음악에서 새로운 아티팩트를 생성하기 위해 생성기와 분류자(또는 "판별기(discriminator)") 하위 시스템을 결합한다. 명명된 기술 중 하나는 "생성적 적대 신경망(또는 GAN)"이다. GAN은 음악 생성기를 트레이닝하는 접근 방식을 활용하여 분류자를 잘못된 분류로 "속이고(fool)" 분류자를 트레이닝하고 개선하기 위한 새로운 데이터로 올바른 분류 시도와 잘못된 분류 시도를 사용한다. 이러한 입력은 생성기가 분류자를 더 잘 속이고 분류자가 올바르게 분류하여 두 가지 모두에서 더 나은 공연을 제공하는 피드백 루프를 생성하는 데 더 능숙해질 것이라는 희망으로 제공된다. 이러한 하위 시스템을 트레이닝하는 프로세스는 종종 역전파 프로세스를 통해 트레이닝할 수 있는 차별화 가능한 네트워크로 구성되는 하위 시스템에 의존한다.
그러나 미분 불가능한 복잡한 프로세스가 음악 생성기의 일부인 경우, 역전파만으로는 트레이닝에 적합하지 않을 수 있으며 더 느리고 더 복잡한 강화 학습 접근 방식이 필요할 수 있다. GAN과 달리 강화 학습에는 시스템이 "에이전트(agent)"와 "환경(environment)"을 포함하고 환경 설계가 시스템 결과에 큰 영향을 미칠 수 있지만 특정 기술을 통해 트레이닝이 수행되지 않는 기계 학습이 포함된다. 경우에 따라, 강화 학습은 느리고 비용이 많이 들 수 있으며 흥미롭지만 반드시 고품질 결과는 아니다. 이러한 결점을 극복하기 위해, 본 발명자들은 휴먼 인 더 루프(Human-in-the-Loop) 프로세스 및 고품질 오디오 처리의 활용을 통해 시스템 출력의 음악성을 증가시키도록 설계된 새로운 음악 특정 환경으로 강화 학습 접근법을 활용하는 시스템을 구현함으로써 개선이 이루어질 수 있음을 인식하였다.
도 3은 일부 실시예에 따라, 음악 생성 및 음악 콘텐츠의 분류를 트레이닝하도록 구성된 예시적인 음악 생성기 시스템을 나타내는 블록도이다. 도시된 실시예에서, 시스템(300)은 음악 생성 하위 시스템(310) 및 음악 분류 하위 시스템(320)을 포함한다. 특정 실시예에서, 음악 생성 하위 시스템(310)은 특정 사용자 디바이스(예: 개인용 컴퓨터, 랩톱, 모바일 디바이스 또는 휴대용 디바이스)에 위치하는 동안 음악 분류 하위 시스템은 원격에 있다(예: 클라우드에서). 하위 시스템에 대한 위치의 다른 실시예도 고려된다. 특정 실시예에서, 음악 생성 하위 시스템(310)은 음악 생성기 모듈(160) 및 파라미터 생성 모듈(312)을 포함한다. 시스템(300)은 또한 음악 생성 하위 시스템(310) 및 음악 분류 하위 시스템(320)과 별도로 위치할 수 있거나 그 하위 시스템의 하나에 위치할 수 있는 강화 입력 생성 모듈(330)을 포함한다.
다양한 실시예에서, 음악 생성기 모듈(160)은 저장된 오디오 파일(302)에 액세스하여 출력 음악 콘텐츠(316)를 생성한다. 특정 실시예에서, 음악 생성기 모듈(160)은 저장된 오디오 파일(302)의 디지털 음악 단편들(digital music fragments)로부터 출력 음악 콘텐츠(316)를 생성한다. 디지털 음악 단편은 미리 녹음된 음악 단편이다. 디지털 음악 단편에는 예를 들어 미리 녹음된 디지털 음악의 샘플 또는 비트(예: 노래 또는 구성의 부분 샘플)가 포함될 수 있다. 디지털 음악 단편에는 사전 녹음된 악기 샘플링 또는 기타 사전 녹음된 음악 샘플링도 포함될 수 있다.
특정 실시예에서, 출력 음악 콘텐츠(316)는 지정된 길이(30초 또는 60초와 같은)의 음악 스트림 또는 구성이다. 예를 들어, 출력 음악 콘텐츠(316)는 다수의 오디오 파일, 다수의 오디오 파일의 일부, 또는 다수의 음악 단편으로부터 생성된 특정 길이를 갖는 구성일 수 있다. 다양한 실시예에서, 출력 음악 콘텐츠(316)는 상이한 출력 음악 콘텐츠의 어레이를 포함한다. 예를 들어, 어레이는 음악 단편의 임의의 조합으로부터 생성된 지정된 길이의 다양한 구성을 포함할 수 있다.
다양한 실시예에서, 출력 음악 콘텐츠(316)의 어레이는 시스템(300)에서 강화 학습을 위한 환경을 제공한다. 특정 실시예에서, 환경을 제공하는 것은 어레이를 저장된 오디오 파일로부터 음악 생성기 모듈(160)에 의해 검색된 음악 단편 세트로부터 생성될 수 있는 특정 길이의 임의의 수의 가능한 구성으로 채우는 것을 포함한다. 일부 실시예에서, 어레이는 음악 단편 세트로부터 생성될 수 있는 지정된 길이의 모든 가능한 구성으로 채워질 수 있다. 다수의 구성이 음악 단편 세트로부터 가능하므로, 많은 실시예에서, 음악 생성기 모듈(160)에 의해 생성된 구성의 조각(아마도, 단지 작은 조각)은 일반적인 사람이 음악으로 간주할 수 있는 것이다.
다양한 실시예에서, 음악 생성기 모듈(160)은 하나 이상의 음악 생성 파라미터(314)에 따라 저장된 오디오 파일(302)(예를 들어, 디지털 음악 단편)로부터 출력 음악 콘텐츠(316)를 생성한다. 여기서 사용된 바와 같이, 음악 생성 파라미터(314)는 출력 음악 콘텐츠(316)를 생성하기 위해 결합되는 음악 단편 또는 다른 샘플의 선택 및 처리를 제어하는 파라미터를 포함한다. 다양한 실시예에서, 음악 생성 파라미터(314)는 음악 생성을 위한 정책을 정의한다. 예를 들어, 정책은 디지털 음악 단편이 어떻게 순서대로 그리고 동시 레이어로 결합될 수 있는지 설명할 수 있고 그런 다음 리버브, 지연, 노이즈 게이트, 이퀄라이제이션, 게인 제어, 및 밴드 필터를 포함하는 음악 제작 오디오 효과(예를 들어, 여기에 설명된 음악 제어를 통해)로 수정될 수 있다. 이러한 프로세스 및 효과는 현대 음악 제작에서 일반적으로 사용된다. 일부 고려되는 실시예에서, 디지털 음악 단편 세트가 일부 음악적 지식을 가진 사람에 의해 큐레이팅되는 경우(예를 들어, 음악 제어를 통해), 정책에서 프로세스의 무작위 적용은 대부분의 사람들이 음악(그리고 아마도 좋은 음악)이라고 생각할 것인 음악 콘텐츠 구성의 기준선 출력을 초래할 수 있다.
다양한 실시예에서, 음악 생성 파라미터(314)는 이전에 생성된 파라미터(예컨대, 파라미터 생성 모듈(312)에 의해) 또는 사용자 생성된 파라미터(예컨대, 도 5에 도시된 음악 제어 입력(510)을 사용하여)를 포함한다. 특정 실시예에서, 음악 생성 파라미터(314)는 파라미터 생성 모듈(312)에 의해 생성된다. 도시된 실시예에서, 파라미터 생성 모듈(112) 및 음악 생성 하위 시스템(310)에 대한 강화 학습은 강화 입력 생성 모듈(330)로부터 수신된 강화 입력(332)에 의해 제공된다. 특정 실시예에서, 파라미터 생성 모듈(312)은 음악 생성 파라미터(314)를 생성하도록 알고리즘(예를 들어, 트레이닝되는 기계 학습 알고리즘)을 구현할 수 있다. 예를 들어, 파라미터 생성 모듈(312)은 다른 시스템으로부터의 입력에 기초하여 음악 생성 파라미터(314)를 조정하는 알고리즘을 구현할 수 있다. 따라서, 알고리즘은 강화 입력(332)에 기초하여 조정 가능(예를 들어, 트레이닝 가능)하며 음악 생성 파라미터(314)는 음악 생성 하위 시스템(310)에서 조정 가능 파라미터로 간주될 수 있다.
일부 실시예에서, 알고리즘의 튜닝을 위한 입력은 음악 분류 하위 시스템(320)으로부터의 출력을 포함한다. 예를 들어, 강화 입력(332)은 음악 생성기 모듈(160)에 의해 생성된 출력 음악 콘텐츠에 대한 음악 분류 하위 시스템(320)에 의한 음악 소스의 예측에 기초할 수 있다. 도 4는 일부 실시예에 따른 예시적인 음악 분류 하위 시스템(320)을 예시하는 블록도이다. 예시된 실시예에서, 음악 분류 하위 시스템(320)은 분류기 모듈(400)을 포함한다. 분류기 모듈(400)은 예를 들어 하나 이상의 분류기를 사용하여 분류를 제공하는 기계 학습 알고리즘을 구현할 수 있다. 특정 실시예에서, 분류기 모듈(400)은 음악 콘텐츠의 분류를 제공하기 위해 하나 이상의 트레이닝된 분류기(402)를 사용하는 트레이닝된 분류기 모듈이다. 분류기 모듈(400)의 트레이닝은, 후술되는 바와 같이, 도 6의 실시예에서 더 상세히 설명된다.
특정 실시예에서, 분류기 모듈(400)은 입력으로서 출력 음악 콘텐츠(316)(다른 음악 출력 콘텐츠의 어레이를 포함할 수 있음)를 수신한다. 이 입력으로부터, 분류기 모듈(400)은 출력 음악 콘텐츠(316)에 대한 음악 소스 예측(410)을 결정하기 위해 하나 이상의 트레이닝된 분류기(402)를 구현할 수 있다. 음악 소스 예측(410)은 출력 음악 콘텐츠(316)가 인간 작곡가에 의해 생성되었는지 또는 음악 생성기 모듈(160)(예를 들어, 음악 소스가 인간 작곡가인지 또는 음악 생성기 모듈인지 여부)에 의해 생성되었는지에 대한 예측을 포함할 수 있다. 일부 실시예에서, 음악 소스 예측(410) 예측은 출력 음악 콘텐츠(316)가 인간 작곡가 또는 음악 생성기 모듈(160)에 의해 생성될 확률을 포함한다. 예를 들어, 음악 소스 예측(410)은 출력 음악 콘텐츠(316)가 음악 생성기 모듈(160)에 의해 생성된 백분율 확률일 수 있다. 이어서 음악 소스 예측(410)은 강화 입력 생성 모듈(330)에 제공될 수 있다.
도 3으로 되돌아가면, 다양한 실시예에서, 출력 음악 콘텐츠(316)에 대한 음악 소스 예측(410)은 파라미터 생성 모듈(312) 및 음악 생성 하위 시스템(310)에 의해 미분가능하지 않을 수 있다. 따라서, 소정의 실시예에서, 파라미터 생성 모듈(312)에서 알고리즘을 튜닝하기 위한 강화 입력(332)은 강화 입력 생성 모듈(330)에 의해 음악 소스 예측(410)으로부터 결정될 수 있다. 일부 실시예에서, 강화 입력 생성 모듈(330)은 보상형 시스템에 기초하여 음악 소스 예측(410)을 튜닝한다. 이러한 실시예에서, 강화 입력 생성 모듈(330)은 음악 콘텐츠(316)를 얼마나 잘 출력하여 음악 분류 하위 시스템(320)이 출력 음악 콘텐츠가 인간 작곡가에 의해 생성되었다고 믿도록 "속였는가(tricked)"에 기초하여 음악 생성 하위 시스템(310)에 보상할 수 있다. 예를 들어, 강화 입력 생성 모듈(330)은 예측된 확률이 높을수록 음악 분류 하위 시스템(320)이 음악 생성 하위 시스템(310)에 의해 출력 음악 콘텐츠가 인간 작곡가에 의해 생성된 것이라고 믿도록 속았을 가능성이 높기 때문에 출력 음악 콘텐츠(316)가 인간 작곡가에 의해 생성되었다는 음악 소스 예측(410)의 더 높은 확률에 대해 더 높은 보상을 제공할 수 있다.
일부 실시예에서, 강화 입력(332)은 이진 입력일 수 있다. 이진 입력은 음악 생성 파라미터(314)를 생성하기 위해 파라미터 생성 모듈(312)에서 알고리즘의 튜닝을 위한 미분 입력의 대체물로서 제공될 수 있다. 다양한 실시예에서, 이진 입력은 음악 콘텐츠가 청취 임계값을 만족하는지 여부에 대한 이진 결정을 포함한다. 예를 들어, 음악 콘텐츠가 "좋음(good)"(예를 들어, 음악적) 대 "나쁨(bad)"(예를 들어, 음악적이지 않음)으로 결정될 때 청취 임계값이 충족될 수 있다. 일부 실시예에서, 이진 입력 결정은 컴퓨터 알고리즘(예를 들어, 트레이닝된 기계 학습 알고리즘)에 의해 구현될 수 있다. 다른 실시예에서, 이진 입력은 출력 음악 콘텐츠(316) 상에서 본 명세서에 기술된 인간 입력(318)으로서 제공될 수 있다.
다양한 실시예에서, 음악 생성 파라미터(314)의 생성(예를 들어, 음악 생성 정책의 생성)은 인간이 읽을 수 있고 인간이 수정할 수 있다. 생성 파라미터(314)를 인간이 읽을 수 있거나 인간이 수정할 수 있게 만드는 것은 음악을 생성하는 시간과 프로세서 비용을 줄일 수 있다. 추가로, 사용자에 의한 보다 쉬운 수동 최적화를 용이하게 하고 음악 생성 파라미터(314)를 생성하기 위해 파라미터 생성 모듈(312)에서 알고리즘의 트레이닝에 강화를 제공함으로써, 본질적으로 음악 작곡을 생성할 가능성이 증가될 수 있다. 특정 실시예에서, 음악 생성 파라미터(314)의 생성을 인간이 읽을 수 있거나 인간이 수정할 수 있게 만드는 구현은 음악 생성 프로세스에서 사용자 대면 음악 제어를 추가하는 것을 포함한다.
도 5는 일부 실시예에 따른 음악 생성 하위 시스템(310)에서의 예시적인 음악 제어 구현을 도시하는 블록도이다. 예시된 실시예에서, 음악 제어(500)는 파라미터 생성 모듈(312)에 의해 구현되고 사용자 인터페이스에 제공된다. 사용자로부터의 음악 제어 입력(510)은 사용자 인터페이스로부터 파라미터 생성 모듈(312)에 의해 수신된다. 전술한 바와 같이, 음악 생성 파라미터(314)는 음악 생성 모듈(160)에 의한 음악 생성 프로세스를 제어하는 데 사용되는 정책을 정의할 수 있다. 음악 제어(500)는 음악 제작자, 음악 아티스트, 또는 기타 음악 지식이 있는 사용자에게 친숙한 음악 제작 방법에 따라 표현되는 음악 제작에 대한 사용자 입력을 허용할 수 있다. 따라서, 사용자는 생성된 출력 음악 콘텐츠(316)에 유리하게 영향을 미치는 음악 제어(500)를 통해 입력을 제공함으로써 음악 콘텐츠를 생성할 수 있다.
일부 실시예에서, 파라미터 생성 모듈(312)과 음악 생성기 모듈(160) 사이의 음악 생성 프로세스는 음악 생성 하위 시스템(310) 내에서 구별 가능하다. 예를 들어, 음악 제어 입력(510)은 음악 내의 음악 생성 파라미터(314)의 생성과 구별 가능할 수 있다. 따라서, 음악 생성 파라미터(314)에 대한 초기 설정은 음악 제어(510)와 파라미터 생성 모듈(312) 사이의 역전파를 통해 발견될 수 있다. 초기 설정의 생성은 강화 입력(332)에 기초한 음악 생성 파라미터(314)의 개선(예를 들어, 튜닝)을 위한 비임 시작 위치를 제공할 수 있다. 예를 들어, 강화 입력(332)에 기초한 음악 생성 파라미터(314)의 개선은 임의의 미지의 음악적 위치보다는 더 음악적으로 "공지된(known)" 위치에서 시작할 수 있다.
음악 제어(500)를 구현하면 음악 이벤트(생성된 음악 콘텐츠의 재생과 같은)에 기초하여 음악 생성 파라미터(314)를 생성할 수도 있다. 따라서, 출력 음악 콘텐츠의 고유한 분의 넓은 범위(잠재적으로 수백만 또는 수십억)가 지속적으로 변경되고 과도하게 반복되지 않는 음악 생성기 모듈(160)에 의해 생성될 수 있다.
전술한 바와 같이, 음악 제어(500)은 음악 지식을 가진 사람을 위한 공통 음악 제어의 사용을 통해 설계된 음악 생성 정책(음악 생성 파라미터(314)를 통해)을 정의하도록 구현될 수 있다. 따라서, 사람은 음악 생성 하위 시스템(310)을 트레이닝하는 시간과 비용을 줄이기 위해 음악 생성 정책을 신속하게 손으로 조정할 수 있다. 다양한 실시예에서, 음악 제어(500)는 출력 음악 콘텐츠(316)를 생성할 때 음악 생성기 모듈(160)에 의해 음악 단편의 선택 및 처리에 대한 제어를 제공하기 위해 적용된다. 특정 실시예에서, 음악 제어(500)는 출력 음악 콘텐츠(316)의 하나 이상의 오디오 속성에 대한 제어를 제공한다. 음악 제어(500)의 예는 게인, 하이 패스 컷오프, 로우 패스 컷오프, 리버브 전송 레벨, 리버브 길이, 딜레이 레벨, 딜레이 시간, 베이스, 비트, 패드, 탑, 멜로디, 백킹 멜로디, 코드, 효과 및 이들의 조합을 포함하지만 이에 제한되지 않는다. 음악 제어(500)는 오디오 단편(예를 들어, 디지털 음악 단편), 음악 트랙(예를 들어, 출력 음악 콘텐츠(316)) 또는 이들의 조합에 적용될 수 있다.
전술한 바와 같이, 음악 콘텐츠(316)를 출력하기 위한 음악 제어 입력(510)의 애플리케이션은 사용자의 음악 취향에 따라 출력 음악 콘텐츠를 수정할 수 있다. 다양한 실시예에서, 음악 생성 모듈(160)에 의해 생성된 수정된 출력 음악 콘텐츠(316)는 파라미터 생성 모듈(312)에 대한 강화 입력(332)으로서 제공된다. 이러한 실시예에서, 수정된 출력 음악 콘텐츠(316)는 파라미터 생성 모듈(312)에 벡터 또는 벡터 세트로서 입력될 수 있다. 벡터(들)로서 수정된 음악 콘텐츠를 제공하는 것은 파라미터 생성 모듈(312)에 의한 강화 학습 후에 출력 음악 콘텐츠(316)에서 재생할 처리되지 않은 오디오 콘텐츠(예를 들어, 디지털 음악 단편)의 선택(대 생성)을 용이하게 할 수 있다. 예를 들어, 파라미터 생성 모듈(312)에 의해 결정된 음악 생성 파라미터는 (음악 생성 파라미터(314)에 의해 설명된 바와 같이) 정책에 의해 설명된 것과 가장 가까운 특징을 갖는 디지털 음악 단편에 대한 (저장된 오디오 파일(302)과 같은) 오디오 파일 라이브러리의 검색을 용이하게 할 수 있고 출력 음악 콘텐츠(316)를 생성하기 위해 선택된 단편들을 사용한다. 따라서, 음악 생성기 모듈(160)은 음악 작곡가(예를 들어, 개별 음표로부터 새로운 음악을 생성하는 것)보다 음악 편곡자(예를 들어, 음악 단편을 선택하고 배열하는 것)와 더 유사한 역할로 구현된다.
예를 들어, 출력 음악 콘텐츠(316)의 30초 오디오 샘플은 사용자가 음악 제어(500)을 적용하여 출력 음악 콘텐츠를 수정한 경우 벡터 형식의 파라미터 생성 모듈(312)에 대한 강화 입력(332)으로 사용될 수 있다. 벡터 콘텐츠의 비제한적 예는 예를 들어 {0.1,0.2,0.1,0.4...0.7}-음악의 다음 비트에 대한 베이스 트랙에 사용되는 오디오의 감소된 특징 표현을 설명하는 64개 요소 벡터; {0.6} 선택된 오디오 재생에 사용되는 오디오 신호 이득; {20.0} 20Hz의 하이 패스 필터를 적용해야 하고; {16000.0} 16000Hz의 로우 패스 필터를 적용해야 하고; {0.1} 0.1의 리버브 보조 전송 레벨; {2.0} 2비트의 감쇠 시간; {0.0} 지연을 사용하지 않아야 하고; 그리고 {1.0} 1비트의 지연 길이를 포함할 수 있다.
전술한 것과 같은 벡터는 기계 학습 알고리즘 또는 수학적 변환에 의해 부동 소수점 숫자 벡터(들)를 생성하는 다른 알고리즘을 통해 생성될 수 있다. 예를 들어, 감소된 특징의 공간을 정규화하는 특징 감소 알고리즘(예: Variational Auto-Encoder) 또는 일반적인 오디오 콘텐츠 분석 벡터를 통해 벡터가 생성될 수 있다. 다양한 실시예에서, 정책으로 이루어진 결정의 이력(예를 들어, 수정된 콘텐츠에 기초한 튜닝의 이력) 및 선택된 디지털 음악 단편 콘텐츠는 원장 또는 다른 라이브러리에 저장될 수 있다. 이 정보를 저장하면 다른 아티스트의 콘텐츠 라이브러리(예: 저장된 오디오 파일(302))에서 파일의 백분율 및 특정 선택을 결정할 수 있다.
도 3으로 되돌아가면, 전술한 바와 같이, 출력 음악 콘텐츠(316)에 대한 사람의 입력(318)은 사용자(아티스트 또는 청취자와 같은)에 의해 제공될 수 있다. 특정 실시예에서, 사람 입력(318)을 구현하는 것은 출력 음악 콘텐츠(316)의 사용자 해석에 기초한 입력을 포함한다. 예를 들어, 사람 사용자는 음악 소리가 좋은지 나쁜지에 대한 입력을 사용자에게 제공할 수 있다. 입력은 디바이스의 사용자 인터페이스(예: 좋아요/싫어요 선택)를 통해 제공될 수 있다.
강화 입력(332)에서의 인간 입력 구현의 다른 실시예도 고려된다. 예를 들어, 분류기 모듈(도 4에 도시된 분류기 모듈(400) 또는 시스템에 구현된 다른 분류기 모듈과 같은)은 청취자(예: 사용자 인터페이스의 좋아요/싫어요 선택을 통해)가 선택한 음악을 좋아하는 음악과 싫어하는 음악을 분류하도록 트레이닝될 수 있다. 청취자가 좋아하는 음악이 음악 생성기 모듈(160)에 의해 생성되었을 때, 청취자에 의한 음악 등이 강화 입력 생성 모듈(330)에 제공될 수 있고 강화 입력(332)으로서 사용될 수 있어 음악 생성 파라미터(314)를 강화(예를 들어, 긍정적인 피드백을 제공)할 수 있어 파라미터 생성 모듈(312)에 의해 생성된 음악 생성 파리미터(314)는 사용자에게 호감을 주는 음악을 생성하고 있다.
도 6은 일부 실시예에 따른 음악 분류 하위 시스템(320)을 위한 예시적인 트레이닝 시스템(600)을 도시하는 블록도이다. 트레이닝의 도시된 실시예에서, 분류기 모듈(400)은 출력 음악 콘텐츠(316) 또는 생성된 음악 콘텐츠(612)를 수신한다. 어느 유형의 음악 콘텐츠도 지정된 길이(예를 들어, 30초 또는 60초 샘플)로 수신될 수 있다. 제작된 음악 콘텐츠(612)는 예를 들어 전문적으로 제작된 음악 콘텐츠 또는 음악 전문가에 의해 제작된 다른 음악 콘텐츠를 포함할 수 있다. 트레이닝 실시예에서, 출력 음악 콘텐츠(316) 또는 생성된 음악 콘텐츠(612)는 음악 콘텐츠의 파라미터를 식별하는 라벨을 갖는 분류기 모듈(400)에 입력될 수 있다. 예를 들어, 라벨은 음악이 음악 생성기 모듈(160)에 의해 생성되었는지 또는 음악이 전문적으로 생성되었는지에 대한 식별을 포함할 수 있다. 다른 라벨도 고려된다.
특정 실시예에서, 분류기 모듈(400)은 입력 음악 콘텐츠에 대한 음악 소스 예측(614)을 결정하기 위해 하나 이상의 분류기를 구현한다. 예를 들어, 분류기 모듈(400)은 모듈에 입력된 음악 콘텐츠의 소스가 음악 생성기 모듈(160) 또는 인간(전문) 제작자라는 예측을 결정할 수 있다. 다양한 실시예에서, 음악 소스 예측(614)은 입력 음악 콘텐츠가 음악 생성기 모듈(160)에 의해 또는 인간 작곡가에 의해 생성될 확률을 포함한다. 예를 들어, 음악 소스 예측(614)은 입력 음악 콘텐츠가 음악 생성기 모듈(160)에 의해 생성된 백분율 확률일 수 있다. 일부 실시예에서, 도 4에 도시된 바와 같이, 음악 소스 예측(410)(예를 들어, 분류기 모듈(400)에 입력된 출력 음악 콘텐츠(316)에 대한 음악 소스 예측)은 강화 입력 생성 모듈(330)로 출력된다.
트레이닝을 위한 도시된 실시예에서, 어느 유형의 음악 콘텐츠 입력에 대한 음악 소스 예측(614)을 포함하는 분류기(616)에 대한 트레이닝 입력은 분류기 모듈(400)에서 역전파를 위해 사용되는 정확도 측정의 기초로서 사용된다. 분류기 모듈(400)로 다시 전파하는 음악 소스 예측(614)은 음악 콘텐츠 입력에 대한 소스를 식별하는 라벨 및 음악 콘텐츠 입력의 소스에 대한 출력 예측(음악 소스 예측(614)) 모두를 제공하는 것을 포함한다. 분류기 모듈(400)은 라벨과 음악 소스 예측(614)의 차이에 따라 모듈의 분류기(들)를 조정할 수 있다. 트레이닝 후, 분류기 모듈(400)은 트레이닝된 분류기(618)를 출력할 수 있다. 트레이닝된 분류기(618)는 음악 생성 시스템(예: 디바이스에 설치된 음악 생성 시스템 애플리케이션이 있는 개인 또는 휴대용 디바이스)을 설치하는 디바이스에 제공될 수 있다. 일부 실시예에서, 트레이닝된 분류기는 디바이스 상에 음악 생성 시스템의 설치의 일부로서 디바이스에 제공된다.
분류기 모듈(400)이 음악 콘텐츠에 대해 다른 분류를 하도록 트레이닝되는 추가 실시예가 고려된다. 예를 들어, 분류자 모듈(400)이 음악을 특정 제작자에 의해 생성되는 것으로 분류하도록 트레이닝되는 일부 실시예가 고려된다. 그러한 실시예에서, 음악 콘텐츠의 특정 제작자를 식별하는 것은 특정 제작자로부터인 것으로 분류될 가능성이 더 큰 음악 콘텐츠를 생성하는 정책의 생성을 (파라미터 생성 모듈(312)에 의해) 허용할 수 있다.
도 3으로 되돌아가면, 다양한 실시예에서, 음악 생성 하위 시스템(310) 및 음악 분류 하위 시스템(320)은 청취자(예를 들어, 사용자)로부터의 피드백에 기초하여 변경되는 음악을 생성하도록 구현된다. 그러나, 일부 실시예에서, 특정 유형의 디바이스(예를 들어, 모바일 디바이스)에 설치된 음악 생성 하위 시스템(310)에 대해 대규모로 사람의 입력(예를 들어, 음악의 좋아요/싫어요)에 기초한 분류를 구현하는 것은 이러한 디바이스의 제한된 저장 용량과 분류기에 의한 트레이닝/학습을 위해 저장해야 하는 정보 라이브러리에 의해 바람직하지 않거나 가능하지 않을 수 있다. 따라서, 특정 실시예에서, 음악 생성 하위 시스템(310)은 초기 트레이닝 파라미터(예를 들어, 초기 트레이닝된 분류기)를 갖는 디바이스에 설치되고 강화 학습은 시스템에 의한 음악 생성을 향상시키기 위해 디바이스에서 구현된다. 이러한 실시예에서, 하나 이상의 사용자로부터의 좋아요/싫어요(또는 다른 유사한 선택)에 대한 입력은 음악 생성 시스템이 설치된 디바이스에 연결된 원격 컴퓨팅 디바이스에 위치한 분류기 모듈(예를 들어, 클라우드에 위치된 분류기 모듈)을 트레이닝하는 데 사용될 수 있다.
클라우드에 위치한 분류기 모듈은 사용자(들)가 좋아하거나 싫어할 수 있는 음악 콘텐츠를 더 잘 예측하기 위해 음악 생성 시스템의 동작 동안 사용자(들)로부터의 입력(피드백)에 기초하여 트레이닝될 수 있다. 클라우드에서 분류자 모듈의 일부 추가 트레이닝 후 사용자에 대한 벡터(또는 여러 사용자에 대한 벡터 세트)가 생성될 수 있다. 특정 사용자의 음악적 취향을 나타내는 벡터가 생성될 수 있다. 벡터는 예를 들어 특정 사용자의 음악적 취향을 나타내는 64개의 요소로 이루어진 벡터일 수 있다. 그런 다음 벡터는 디바이스에 설치된 음악 생성 하위 시스템(310)에 대한 강화 입력(예: 강화 입력(332))으로서 구현을 위해 특정 사용자의 디바이스에 제공될 수 있다. 따라서 분류자에 대한 업데이트를 디바이스로 보낼 필요가 없으며 디바이스에 많은 수의 라이브러리를 저장할 필요가 없다. 추가로, 음악 생성 하위 시스템(310)에 대해 단일 초기 종합 트레이닝 프로세스가 구현될 수 있으며, 이는 이후 특정 디바이스에 설치된다. 디바이스에 설치된 음악 생성 하위 시스템(310)은 클라우드로부터 입력으로 수신된 강화 학습에 의해 업데이트되어 각 디바이스에서 각 음악 생성 하위 시스템을 완전히 트레이닝할 필요가 없다. 이것은 수백만 개의 고유한 음악 생성 하위 시스템이 모바일 디바이스에 배포될 수 있고 단일 분류기 모듈이 모든 하위 시스템에 대해 트레이닝되어 트레이닝 시간과 비용을 줄이고 중앙 집중식 관리 트레이닝 환경을 허용하면서 각각의 음악 생성기에 대해 개인화된 결과를 얻을 수 있기 때문에 유리할 수 있다.
사용자-정의 제어 요소를 기반으로 한 예제 음악 생성의 개요(
Overview of Example Music Generation based on User-Defined Control Elements)
구성 모듈과 공연 모듈 사이의 상호 작용으로 음악 콘텐츠를 생성하기 위한 다양한 기술이 개시되어 있다. 일반적으로 말하면, 구성 하위 시스템은 음악 콘텐츠를 구성하기 위해 오디오 파일을 선택하고 배열할 수 있는 반면, 공연 하위 시스템은 실제로 재생될 출력 음악 콘텐츠를 생성하기 위해 선택된 오디오 파일에 필터링, 추가 효과, 믹스, 마스터 등을 수행할 수 있다.
일부 개시된 실시예에서, 구성 하위 시스템 및 공연 하위 시스템 둘 모두는 (하나 이상의 사용자 인터페이스를 통해 보여질 수 있는) 음악 제어 요소에 대한 사용자 입력에 기초하여 동작한다. 한 예로서, 아티스트는 구성 하위 시스템(예를 들어, 서버 시스템에서 구현될 수 있음)에 사용자 입력을 제공할 수 있고 최종 사용자는 공연 하위 시스템(예를 들어, 휴대폰과 같은 사용자 디바이스에서 구현될 수 있음)에 사용자 입력을 제공할 수 있다. 다른 실시예에서, 동일한 사용자는 두 모듈 모두에 입력을 제공할 수 있다.
일부 실시예에서, 시스템은 사용자가 자신의 음악 제어를 정의할 수 있게 하고 기계 학습 또는 다른 알고리즘을 구현하여 보다 추상적일 수 있는 사용자-정의 제어에 대한 조정에 기초하여 음악 파라미터를 조정하도록 한다. 예를 들어, 사용자는 "조화(harmony)", "행복(happiness)" 또는 "무디(moody)" 제어를 정의할 수 있으며 구성 하위 시스템은 조정할 하위 수준 파라미터의 유형과 이 제어 요소에 대한 아티스트의 비전을 달성하기 위한 조정의 양을 결정할 수 있다. 일부 실시예에서, 사용자-정의 음악 제어의 전부 또는 하위 세트는 예를 들어 사용자가 아티스트 정의 제어를 구현할 수 있도록 공연 하위 시스템에서도 사용할 수 있다. 일부 실시예에서, 2개의 하위 시스템은 사용자-정의 음악 제어에 기초하여 적절한 공연 파라미터를 제공하기 위해 통신할 수 있다. 개시된 기술은 아티스트가 최종 사용자에게 맞춤형 음악 제어 요소를 제공하도록 유리하게 허용할 수 있다. 또한, 개시된 기술은 최종 사용자가 생성 음악의 실시간 공연을 맞춤화할 수 있게 하면서 자동 음악 구성의 특정 측면의 중앙 집중식 제어를 허용할 수 있다.
구성 하위 시스템 및 공연 시스템에 이용가능한 음악 제어의 하위 세트는 중첩될 수도 있고 중첩되지 않을 수도 있다. 또한, 공연 모듈의 사용자는 일부 실시예에서 구성 모듈에 의해 정의된 추상 음악 제어와 함께 사용될 수 있는 그들 자신의 추상 음악 제어를 지정할 수 있다.
일반적으로, 개시된 기술은 음악 생성기 시스템에 의해 보다 인간과 유사한(human-like) 음악 구성의 생성을 용이하게 할 수 있다. 본 발명자들은 음악 생성에 대한 추상적인 제어를 제공함으로써 음악 생성 시스템이 사용자의 문체, 구조 또는 예술적 선호도에 따라 음악 콘텐츠를 생성할 수 있음을 인식하였다.
도 7은 일부 실시예에 따라 작곡 하위 시스템(710) 및 공연 하위 시스템(720)을 포함하는 예시적인 음악 생성기 시스템(700)을 도시하는 블록도이다.
예시된 실시예에서 구성 하위 시스템(710)은 사용자 입력에 기초하여 구성 제어 출력 정보를 생성한다. 일부 실시예에서, 구성 제어 출력 정보는 결합될 선택된 오디오 파일을 식별하고 출력 음악 콘텐츠에 포함하기 위한 상대적 타이밍을 나타낸다. 구성 하위 시스템(710)은 아래에서 더 자세히 논의되는 바와 같이 음악 콘텐츠의 섹션을 배열하는 방법 및 섹션 사이를 전환하는 방법 및 시기를 결정할 수 있다.
예시된 실시예에서, 작곡 하위 시스템(710)은 또한 공연 하위 시스템(720)을 위한 제어 요소 구성 신호를 생성한다. 일부 실시예에서, 이들 신호는 공연 하위 시스템(720)을 구성하여 의도된 방식으로 추상적 음악 제어에 대한 사용자 입력을 구현한다. 예를 들어, 구성은 사용자-정의 음악 제어에 대한 조정에 따라 다양한 공연 작업(예: 필터링, 효과 추가, 믹싱, 마스터링 등)을 조정하는 방법을 지정할 수 있다.
도시된 바와 같이, 구성 하위 시스템(710)은 사용자 입력을 수신한다. 이 사용자 입력은 예를 들어 사용자 지정 음악 제어 요소를 지정할 수 있다. 사용자 입력은 특정 아티스트의 이전 작곡에 대한 라벨 정보를 제공할 수도 있다. 예를 들어, 추상 제어 요소 "조화"의 경우, 아티스트는 조화에 대한 아티스트의 인식을 기반으로 이전 작곡에 0에서 N까지의 라벨을 지정하여 기계 학습 모델을 트레이닝시켜 음악 구성 파라미터를 조정하여 하모니 제어 요소의 상이한 레벨을 반영할 수 있다. 음악 제어 요소는 특정 값, 증가/감소, 좋음/나쁨과 같은 이진 입력을 지정하는 사용자 입력 수락을 포함하여 다양한 인코딩을 가질 수 있다.
예시된 실시예에서, 공연 하위 시스템(720)은 구성 하위 시스템(710)으로부터의 구성 제어 및 제어 요소 구성 정보에 기초하여 출력 음악 콘텐츠를 생성하도록 구성된다. 도시된 바와 같이, 공연 하위 시스템(720)은 또한 예를 들어 잠재적으로 구성 하위 시스템(710)에 의해 구현되는 음악 제어 요소의 모든 하위 세트에 대해(일부 실시예에서, 공연 하위 시스템(720)은 추가 음악 제어 요소를 구현할 수도 있음). 일부 실시예에서, 공연 하위 시스템(720) 상의 사용자 입력에 이용 가능한 제어 요소 세트는 구성 하위 시스템(710)에 대한 사용자 입력에 의해 제어된다.
다양한 실시예에서, 다중 레벨에서의 구성 제어는 다양한 음악 스타일에 대한 사용자 맞춤화를 허용하면서 음악 출력을 유리하게 제공할 수 있다. 개시된 실시예에서 구성 하위 시스템(710)에 의해 수행되는 다양한 기능이 다른 실시예에서 공연 하위 시스템(720)으로 이동될 수 있고 그 반대도 가능하다는 점에 유의한다. 개시된 기능의 분리는 특정 맥락에서 좋은 결과를 제공할 수 있지만, 본 발명의 범위를 제한하려는 의도는 아니다. 따라서, 도 7의 구성 제어 정보는 다양한 실시예에서 원시 선택된 오디오 파일로부터 적어도 부분적으로 혼합된 출력 콘텐츠에 이르는 다양한 유형의 정보를 포함할 수 있다.
일부 실시예에서, 구성 하위 시스템(710) 및 공연 하위 시스템(720)은 상이한 컴퓨터 시스템에서 구현되고 네트워크를 통해 통신한다. 아래에서 자세히 논의되는 바와 같이, 인터페이스 간의 통신은 맞춤형 스트링(string) 조작 및 저장 기술을 사용하여 실시간 모니터링 및 제어 API를 허용할 수 있다(예: 개방형 사운드 제어(OSC) 프로토콜 사용). 다른 실시예에서, 하위 시스템은 동일한 컴퓨터 시스템에서 구현된다.
공연 하위 시스템(720)은 예를 들어 최종 사용자 조정이 결합될 오디오 파일 선택과 같은 구성 동작에 영향을 미치도록 제어 요소 구성 정보를 구성 하위 시스템(710)(명시적으로 도시되지 않음)에 보낼 수도 있음에 유의하십시오. 일반적으로 개시된 기술은 하나의 디바이스/인터페이스에 정의된 사용자-정의 제어 요소를 다른 디바이스/인터페이스의 사용자가 사용할 수 있게 하고 잠재적으로 다른 하위 시스템 또는 디바이스의 파라미터 조정을 제어할 수 있게 한다.
구성 및 공연 하위 시스템이 있는 자세한 예제 음악 생성기
도 8은 일부 실시예에 따른 보다 상세한 예시적인 음악 생성기 시스템을 도시하는 블록도이다. 예시된 실시예에서, 구성 하위 시스템(710)은 맞춤형 음악 제어용 모듈(810A), 구성 모듈(들)(820), 및 기계 학습 모듈(830)을 포함한다. 예시된 실시예에서, 공연 하위 시스템(720)은 맞춤형 음악 제어용 모듈(810B) 및 공연 모듈(들)(850)을 포함한다. 상이한 하위 시스템에 포함된 구성 모듈(들)(820) 및 공연 모듈(들)(850)의 보다 상세한 예들이 도 6을 참조하여 아래에서 논의된다는 점에 유의한다.
모듈(810A)은 사용자 입력에 기초하여 기계 학습 모듈(830)과 통신하여 하위 레벨 파라미터를 사용하여 맞춤형 음악 제어를 구현하는 방법을 결정할 수 있다. 도시된 바와 같이, 기계 학습 모듈(830)은 이전 구성(840)(하나 이상의 맞춤형 음악 제어에 따라 사용자에 의해 전체 또는 다른 부분에 대한 라벨로 라벨이 지정될 수 있음)에 액세스하여 하위 레벨 구성 파라미터(및 이들 파라미터는 하위 시스템(710) 및 하위 시스템(720) 모두에 의해 사용되는 파라미터를 포함할 수 있음)를 사용하여 추상 제어를 구현하는 방법을 결정할 수 있다. 트레이닝은 사용자 지정 제어 요소의 목적을 결정하기 위해 다양한 적절한 기계 학습 모델, 예를 들어 심층 신경망을 사용할 수 있다. 도시된 바와 같이, 모듈(810A)은 모듈(810B)에 제어 요소 구성 정보를 통신하고, 이는 사용자 입력에 기초하여 공연 파라미터를 조정하기 위해 공연 모듈(들)(850)과 통신한다. 유사하게, 구성 모듈(들)(820)은 모듈(810A)로부터의 신호에 기초하여 구성 파라미터를 조정한다.
일부 실시예에서, 아티스트는 커스텀 음악 제어과 하위 레벨 파라미터 사이의 관계를 명시적으로 지정할 수 있다. 예를 들어, "하모니(harmony)" 제어의 경우, 아티스트는 하모니가 약한 구성보다 강한 조화 움직임이 있는 구성에 대해 텐션 생성(예: 레이어 추가, 라이저 효과, 멜로디 자르기 등)을 위한 다른 파라미터를 지정할 수 있다. 명시적 제어는 일부 실시예에서 단독으로 또는 기계 학습 분석과 조합하여 사용되어 하위 수준 파라미터를 생성할 수 있다.
다음의 논의는 예를 들어 기계 학습 또는 제어와 파라미터 사이의 관계의 사용자 표시에 기초하여 맞춤형 사용자 인터페이스 요소를 통해 간접적으로 제어될 수 있는 다양한 파라미터를 제시한다. 음악 생성기 시스템은 일부 실시예에서 추상 및 하위 수준 제어를 모두 노출할 수 있음에 유의하십시오.
일부 실시예에서, 연속 음악의 생성은 알고리즘적으로 정의된 음악 섹션 및 전환의 조합을 통해 달성된다. 섹션은 음악적 기능(예: 텐션 구축, 유지 및 감소)으로 정의할 수 있다. 일부 실시예에서, 텐션의 섹션은 음악 콘텐츠의 반복에 의해 천천히 생성되며, 사운드의 더 크거나 더 많은 레이어드 믹스를 갖거나 서로 대조되는 음악 리듬 또는 피치를 공연한다. 대조적으로, 청취자의 기대를 무시함으로써 텐션이 빠르게 형성될 수 있다. 예를 들어, 반복 주기 중간에 반복되는 구(phrase)를 끝내고, 갑자기 키를 변경하고, 이전에 음악에 등장하지 않은 새로운 질감을 도입하고, 볼륨을 갑자기 높이는 등의 동작은 빠르게 텐션을 조성할 수 있다. 텐션을 조성하는 동일한 기술이 자주 반복되면 듣는 사람이 기대하게 될 수 있으며 텐션을 유발하는 효과가 크게 감소한다.
일부 실시예에서, 층을 감소시키거나, 이전에 대조되는 사운드의 리듬 또는 피치를 정렬하거나, 악구의 반복을 중단함으로써 텐션이 서서히 해제된다. 이전 구를 일시적으로 중단한 후 반복을 재개하거나, 조화로운 불협화음을 해결하거나, 예를 들어 시끄러운 심벌즈 충돌과 같이 섹션의 끝을 표시하는 클라이맥스 포인트를 제공하는 것과 같이 이전에 설정된 기대로 돌아가서 텐션을 빠르게 풀 수 있다.
효과적인 연속 음악의 생성은 다양한 방식으로 텐션의 축적 및 해제를 시퀀싱함으로써 발생할 수 있다.
일부 실시예에서, 구성 하위 시스템(710)은 디폴트 또는 선택적 값을 갖는 특정 제어를 노출한다. 예를 들어 제어에는 게인 믹스, 오디오 효과 체인, 시간 경과에 따른 음악 편곡, 및 악구의 동시 레이어링이 포함될 수 있다. 사용자가 추가한 작곡 과정만이 음악적 효과를 내는 일반적인 작곡 도구와 달리, 옵션 값을 활용하지 않는 경우 기계 학습 알고리즘을 사용하여 작곡 과정에 영향을 미칠 수 있다.
구성 하위 시스템(710)에 의해 제어되는 파라미터의 예는 예를 들어 단일 루핑 가능한 오디오 단편의 최대 반복, 합성된 잡음의 사용 및 기본 EQ 레벨을 포함할 수 있다. 일부 실시예에서, 최대 반복은 엄격한 제한으로 설정되거나 제한이 없는 무한대에 남을 수 있지만, 다른 구성 프로세스는 제한 없이 반복에서 벗어나도록 유도할 수 있다. "합성된 노이즈(synthesized noise)" 제어는 적용 시기를 제어하지 않고 구성의 일부 지점에서 합성된 노이즈를 활성화 또는 비활성화하는 이진 스위치로 사용할 수 있다. 타이밍은 다른 제어 및 기계 학습 알고리즘의 영향을 받을 수 있다. 기본 EQ 레벨은 8개 대역의 주파수, 게인 및 대역폭에 대한 참조 레벨을 허용할 수 있으며, 이는 기계 학습 알고리즘에 의해 주도되는 것을 포함하여 다른 구성 프로세스에 의해 조정될 수 있다. 구성 하위 시스템(710)은 구성에서 시간 구조가 발생할 정확한 시기를 정의하지 않고 구성의 서로 다른 시간 구조에서 어떤 유형의 오디오 파일이 사용될 수 있는지 정의할 수 있다.
일반적으로, 다양한 오디오 파일 카테고리 또는 '그룹(group)'은 서로 다른 음악 편곡 구조 내에서 활성화 또는 비활성화될 수 있다. 일부 실시예에서, 활성화되는 그룹은 그것이 하위 시스템에 의해 이용될 수 있지만 그것이 보장되지 않는다는 것을 의미한다. 다음은 그룹의 예이다.
● 비트(Beats): 리듬 베드, 일반적으로 드럼 키트를 정의함-언피치
● 베이스(Bass): 베이스 라인 - 피치(pitched)
● 하모니: 하모니에 살을 붙이는 폴리포닉 미드레인지 - 피치
● 패드: 배경 사운드스케이프 또는 드론 - 피치
● 상판: 추가 리듬 콘텐츠, 종종 타악기, 일반적으로 당김음(syncopated) - 언피치(unpitched)
● 멜로디: 대부분 모노포닉 멜로디 라인 - 피치
● 피치 FX: 강한 조성을 갖는 추가 음향 효과 - 피치
● 언피치 FX: 추가 무음(non-tonal) 음향 효과(예: 잡음 - 언피치)
이러한 각각의 그룹에는 이러한 품질에 대한 참조 값을 설정하도록 조정할 수 있는 제어가 있을 수 있다:
● 볼륨
● 리버브 양
● 지연 펀치 확률
● 습윤 지연
일부 실시예에서, 다음 섹션이 이용될 수 있다: 빌드업(buildup): 텐션(tension)의 느린 증가; 지속(sustain): 텐션 수준 유지; 드롭(drop); 클라이막스 포인트(climax point)에 이어 낮은 텐션; 브레이크다운(breakdown); 텐션의 느린 감소. 또한, 다음과 같은 전환이 활용될 수 있다. 레이어 추가: 급격한 텐션 증가; 레이어 제거: 급격한 텐션 감소; 라이저 효과: 빠른 텐션 증가; 컷 멜로디 미드웨이(cut melody midway); 빠른 텐션 증가. 구성 하위 시스템(710)은 예를 들어 아티스트 그룹의 특정 아티스트의 구성 선호도를 기반으로 다양한 섹션 및 전환을 적용하는 방법을 학습할 수 있다.
일부 실시예에서, 확률 기반 규칙은 텐션의 느린 구축 및 해제에 대한 변형을 장려하기 위해 전환 시퀀스를 안내하고 전환은 이러한 느린 추세에서 예기치 않은 전환을 생성하는 데 사용된다. 전환을 과도하게 사용하면 전환이 차지하는 섹션의 전체 텐션 이동이 줄어들 수 있으므로 전환의 최대 및 최소 빈도가 섹션 길이로 조정될 수 있다.
다음 표는 상이한 섹션에 대한 전이 확률의 예를 제공한다. 일부 실시예에서, 구성 하위 시스템(710)의 사용자는 섹션의 미리 결정된 절대 타이밍 없이 단계별 음악 구조를 변경하기 위해 이러한 테이블을 수정한다:
이 예에서, 브레이크다운 섹션에서 전환하는 것은 시간의 40%는 빌드업 섹션으로, 시간의 30%는 드롭 섹션으로, 시간의 30%는 지속 섹션으로 이동한다.
구성 하위 시스템은 섹션 및 하위 섹션의 계층적 구조를 생성하기 위해 섹션을 더 분해할 수 있다. 하위 섹션의 예는 다음과 같다:
* 구(phrase)의 제 1 비트만 공연하고 피드백과 함께 지연을 사용하여 모든 멜로디 또는 하모니 루프에 대해 새로운 리듬 구의 생성.
* 특히 드럼 레이어 제거.
* 하모니 루프는 8비트마다 4비트 동안 음소거.
* 현재 베이스 라인을 페이드 아웃하고 점차 새로운 베이스 라인을 페이드 인.
* 하위 섹션의 마지막 8비트에 대한 리듬 레이어 음소거.
* 모든 레이어에 대한 로우 패스 필터는 20,000Hz에서 500Hz로 점진적으로 감소.
각각의 하위 섹션은 시작, 끝 및 경우에 따라 중간에서 전환을 생성하므로 특정 하위 섹션은 특정 섹션 또는 섹션의 특정 지점에서만 발생한다. 하위 섹션 규칙의 예:
* 드롭 섹션 시작 시 비트를 제거하는 하위 섹션이 발생하지 않음.
* 빌드업 섹션에서 베이스라인을 바꾸는 하위 섹션이 발생하지 않음.
* 재생되는 레이어의 총 개수가 브레이크다운 구간이 아닌 이상 4개 미만인 구간에서 레이어를 제거하는 하위 구간이 발생하지 않음.
각각의 섹션에서 사용되는 레이어의 수와 선택은 음악적 텐션감을 형성하기 위해 결정될 수 있다. 레이어 조합의 예는 다음과 같다:
* 도입: 전체적으로 베이스와 드럼.
* 빌드업: 전체적으로 베이스와 드럼, 타악기, 멜로디, 패드의 점진적인 페이드 인.
* 드롭: 베이스, 드럼, 타악기, 패드 및 멜로디 전체
* 분해: 전체적으로 베이스와 드럼, 다른 모든 레이어에서 점진적으로 페이드 아웃
* 지속: 진행 섹션 마지막에 사용된 동일한 레이어
하위 섹션에 더하여, 루프 기반의 반복 음악에서 특히 효과적인 변화 및 미세 텐션을 생성하기 위해 짧은 음악 편차가 사용될 수 있다. 예를 들어, 다음 유도 기술이 일부 실시예에서 사용된다:
* 딜레이-펀치(delay-punch): 드럼의 마지막 또는 제 1 비트가 피드백 없이 1 비트 또는 1/2 비트 지연으로 다시 공연된다.
* 하이 패스 필터는 8비트에 걸쳐 0Hz에서 50Hz로 증가하고 즉시 0Hz로 다시 낮아져 강력한 비트 펄스를 제공한다.
* 헤비 리버브(heavy reverb)는 단일 루프에 적용된다.
일부 실시예에서, 하위 섹션 및 편차는 구성 하위 시스템에서 활성화 또는 비활성화될 수 있으며, 일부 경우에는 파라미터화될 수 있다. 따라서, 일반적으로 말하면, 구성 하위 시스템은 공연 하위 시스템에 비해 더 많은 구성 파라미터의 제어를 사용자(예를 들어, 아티스트)에게 제공할 수 있다.
일부 실시예에서, 공연 하위 시스템(720)은 출력 음악 콘텐츠를 생성하기 위해 구성 하위 시스템(예를 들어, 구성 스크립트)으로부터의 구성 제어 정보에 대해 동작하도록 구성된다.
일부 실시예에서, 구성 하위 시스템(710)은 공연 하위 시스템(720)에 의해 매개되는 피드백 데이터를 스크립트의 음악 제어과 연관시킴으로써 결정을 내린다. 예를 들어 명시적인 좋아요/싫어요 피드백 외에도 공연-제어 하위 시스템을 수동적으로 재생하는 행위는 어느 정도의 선호도를 암시한다. 사용자가 소비한 구성과 제공된 피드백에 대한 소급 분석은 기계 학습 시스템이 사용자 디바이스에 표시된 루프와 구성 기술을 모두 조정하는 데 도움이 된다. 공연-제어 하위 시스템은 피드백 분석을 사용하여 코어 세트에서 유사한 스타일 및 속성의 오디오 콘텐츠를 찾을 수 있다.
아티스트가 규칙, 휴리스틱, 및 트레이닝 데이터로 아티스트 팩의 스타일을 지정할 수 있는 것처럼 공연-제어 하위 시스템은 최종 사용자가 공연 하위 시스템이 제공하는 일련의 루프로 동일한 작업을 수행할 수 있도록 한다. 이 시나리오에서, 공연 하위 시스템은 재생을 위한 대규모(및 증가하는) 루프 세트를 제공할 수 있다. 사용자는 공연-제어 하위 시스템이 사운드스케이프를 생성할 때 사용할 루프 및 믹싱 기술의 유형을 학습하는 데 도움이 되는 좋아요 및 싫어요(thumbs up and down)을 포함하는 입력을 할 수 있다. 또한, 공연-제어 하위 시스템이 콘텐츠를 혼합하는 방식을 보다 세밀하게 제어할 수 있는 UX 제어가 사용자에게 제공될 수 있다. 여기에는 믹싱 레벨, 섹션 길이, 음악의 복잡성, 빌드 및 드롭 등과 같은 믹싱 기술의 사용이 포함될 수 있다. 이러한 미세 조정을 통해 본질적으로 청취자는 사운드스케이프를 생성할 때 공연-제어 하위 시스템이 사용할 자신만의 "스타일"을 만들 수 있다. 또한, 사용자는 아래에서 논의되는 다양한 구성 측면에 대한 상위 수준 제어를 위해 모듈(810A)을 사용하여 정의된 사용자-정의 제어 요소 또는 자신의 사용자-정의 제어 요소를 사용할 수 있다.
사용자가 좋아요/싫어요를 선택하면 현재 구성의 많은 다른 요소가 고려될 수 있다. 여기에는 다음이 포함될 수 있다:
* 다양한 레이어의 게인과 같은 현재 믹싱 레벨
* 입력 시간 주변의 루프와 관련된 속성
* 시간, 날씨, 위치 등과 같은 환경 입력
* 위의 추가 UX 제어를 통한 명시적 입력.
이들 품질은 공연 하위 시스템에 의해 포착된 다음 긍정적 또는 부정적 피드백과 연관될 수 있다. 시간이 지남에 따라 이 데이터는 기계 학습 모듈(도 8에 명시적으로 표시되지 않음) 트레이닝에서 공연-제어 하위 시스템을 긍정적 및 부정적 강화로 안내하는 데 도움이 되며 공연-제어 하위 시스템이 음악 재생을 위한 파라미터를 조정할 수 있도록 한다(예: , 규칙 엔진에 대한 파라미터). 이러한 파라미터를 조정하는 데 사용되는 모델은 단일 사용자에게 위임할 필요가 없다. 예를 들어 기계 학습을 사용하여 음악 앱에 대한 집계 피드백을 기반으로 구성 및 재생에 변경 사항을 적용할 수 있다. 즉, 특정 사용자가 싫어요를 누르고 이때 식별된 패턴이 다른 많은 사용자가 싫어요를 누르는 패턴과 일치하면 시스템은 다른 사용자에 대해 했던 것과 동일한 방식으로 그에 따라 음악을 조정할 수 있다. 이를 통해 공연-제어 하위 시스템은 사용자를 위해 개인화된 변경을 수행할 수 있지만 그럼에도 불구하고 많은 사용자에 대해 수집된 집계 데이터를 기반으로 한다.
음악 특성과 피드백의 상관관계는 환경 측정으로 매개될 수 있다. 이러한 방식으로 보다 미묘한 사용자 선호도 모델이 구성된다. 예를 들어 "이 청취자는 이러한 유형의 비트를 좋아한다" 대신 공연-제어 하위 시스템은 "이 청취자는 이러한 유형의 비트를 이 시간에 또는 비가 올 때 좋아한다."를 학습할 수 있다.
최종 사용자를 위한 개인화의 성공은 궁극적으로 재생과 관련된 긍정적인 이벤트에 의해 측정될 수 있다. 여기에는 "좋아요", 플레이 시간 등과 같은 이벤트가 포함된다. 이러한 이벤트 외에도 다른 파라미터가 성공적인 개인화와 연관될 수 있다. 예를 들어, 공연-제어 하위 시스템을 사용하는 식당은 시간당 매출 증가를 성공 지표로 연결할 수 있다. 공연-제어 하위 시스템은 구성을 긍정적으로 반영하여 POS 및 관련된 시간당 판매의 긍정적 변화를 모니터링할 수 있다. 이러한 방식으로 공연-제어 하위 시스템은 명시적인 입력 없이 암묵적으로 스스로 트레이닝할 수 있다. 트레이닝은 사용되는 정확한 루프만큼이나 음악 구성에 관한 것이므로 이 트레이닝 모델은 모든 기본 루프 세트에 적용될 수 있다.
구성 및 공연 하위 시스템 간의 예시적인 통신 기술
일부 실시예에서, 하위 시스템 간의 통신은 예를 들어 OSC를 통한 API를 사용하여 실시간 모니터링 및 제어를 구현한다. 아래에서 상세히 논의되는 개시된 기술은 그러한 맥락에서 실시간 공연을 용이하게 할 수 있다. 분산된 실시예에서 네트워크를 통해 전송되는 데이터의 양은 예를 들어 전체 오디오 스트림에 비해 여전히 작지만 모든 파라미터 및 RMS 레벨을 모니터링할 때 중요해질 수 있다. 그러나 이러한 메시지는 개별적으로 구문 분석될 수 있기 때문에 관련 스트링 조작에 비용이 많이 들 수 있다. 메모리 할당 및 호출 차단을 줄이기 위해 실시간 스레드에서 보낼 이러한 스트링을 만드는 작업은 주의해서 수행할 수 있다.
OSC는 예를 들어 "/master/compressor/threshold" 또는 "/performance_module/ effect_module/ parameter_C"와 같이 엔드포인트를 처리하기 위해 일반 텍스트 슬래시 구분 스트링(URL과 유사)을 사용한다. 이러한 스트링은 예를 들어 구성 모듈에서 공연 모듈 내의 적절한 엔드포인트로 다양한 정보를 라우팅하는 데 사용할 수 있으며 다른 방향(예: 모니터링 목적)으로 라우팅할 수 있다. 따라서 구분된 스트링의 조작은 일부 실시예에서 일반적인 작업이며, 특히 구분된 스트링과 스트링 배열 사이를 변환하고 주어진 구분된 스트링 앞에 추가 및 추가하는 '분할(split)' 및 '결합(join)'과 유사한 기능이다.
분할/결합 등을 구현하는 전통적인 스트링 조작 라이브러리는 실시간 작업을 염두에 두고 설계되지 않을 수 있다. 특히, 저장 모델은 일반적으로 예를 들어 구분된 스트링을 분할할 때 구성요소 토큰의 복사본을 생성한다. 할당을 줄이기 위해, 일부 실시예에서 개시된 시스템은 특수 DelimitedString 컨테이너를 사용한다. DelimitedString 클래스는 실제 구분된 스트링을 백업 저장소로 활용하고 그 위에 목록과 같은 API를 노출할 수 있다. 기본적으로 포인터의 배열이 토큰을 표시하는 전체 스트링로 오프셋된다. 보조 스트링은 양쪽에 여유 용량이 있는 상태로 생성될 수 있으므로 비용이 많이 드는 재할당 없이 추가 토큰을 쉽게 추가/첨부할 수 있다.
DelimitedString 클래스는 양쪽 끝에서 효율적인 '트리밍(trimming)'을 허용하도록 설계될 수도 있다. 이러한 실시예에서, OSC 메시지의 수신기(예를 들어, 공연 하위 시스템(720))는 OSC 주소를 계층적 라우팅 메커니즘으로 취급하고, 일반적으로 각각의 단계에서 주소의 제 1 토큰을 잘라내는 위임 체인을 통해 메시지를 아래로 전달한다. DelimitedString은 오프셋을 참조하는 "HEAD" 포인터를 전체 스트링 백업 저장소로 이동하여 이를 효율적으로 관리할 수 있다. 또한 상태 스택을 관리하여 상태를 저장하고 반복적으로 주소의 일부를 잘라낸 다음 상태를 복원할 수 있다. 이렇게 하면 동일한 DelimitedString을 다시 사용할 수 있다.
예시적인 사용자 및 엔터프라이즈 GUI
도 9a-도 9b는 일부 실시예에 따른 그래픽 사용자 인터페이스를 나타내는 블록도이다. 도시된 실시예에서, 도 9a는 사용자 애플리케이션(910)에 의해 디스플레이되는 GUI를 포함하고 도 9b는 엔터프라이즈 애플리케이션(930)에 의해 디스플레이되는 GUI를 포함한다. 도 9a 및 도 9b에 디스플레이된 GUI는 애플리케이션이 아닌 웹사이트에 의해 생성된다. 다양한 실시예에서, 다음 요소 중 하나 이상를 포함하는 다양한 적절한 요소 중 임의의 것이 디스플레이될 수 있다: 다이얼(예를 들어, 볼륨, 에너지 등을 제어하기 위해), 버튼, 노브, 디스플레이 박스(예를 들어, 사용자에게 업데이트 정보를 제공하기 위해), 등
도 9a에서, 사용자 애플리케이션(910)은 하나 이상의 아티스트 팩을 선택하기 위한 섹션(912)을 포함하는 GUI를 표시한다. 일부 실시예에서, 팩(914)은 테마 팩 또는 특정 행사(예를 들어, 결혼식, 생일 파티, 졸업식 등)를 위한 팩을 대안적으로 또는 추가로 포함할 수 있다. 일부 실시예에서, 섹션(912)에 도시된 팩의 수는 한 번에 섹션(912)에 표시될 수 있는 수보다 많다. 따라서, 일부 실시예에서, 사용자는 하나 이상의 팩(914)을 보기 위해 섹션(912)에서 위 및/또는 아래로 스크롤링한다. 일부 실시예에서, 사용자는 출력 음악 콘텐츠를 듣고자 하는 아티스트 팩(914)을 선택할 수 있다. 일부 실시예에서, 아티스트 팩은 예를 들어 구매 및/또는 다운로드될 수 있다.
예시된 실시예에서 선택 요소(916)는 사용자가 하나 이상의 음악 속성(예를 들어, 에너지 레벨)을 조정할 수 있게 한다. 일부 실시예에서, 선택 요소(916)는 사용자가 하나 이상의 대상 음악 속성을 추가/삭제/수정하도록 허용한다. 다양한 실시예에서, 선택 요소(916)는 하나 이상의 UI 제어 요소(예를 들어, 음악 제어(500))를 렌더링할 수 있다.
도시된 실시예에서, 선택 요소(920)는 사용자가 디바이스(예를 들어, 모바일 디바이스)가 타겟 음악적 속성을 결정하기 위해 환경을 듣도록 허용한다. 일부 실시예에서, 디바이스는 사용자가 선택 요소(920)를 선택한 후 하나 이상의 센서(예를 들어, 카메라, 마이크, 온도계 등)를 사용하여 환경에 대한 정보를 수집한다. 일부 실시예에서, 애플리케이션(910)은 또한 사용자가 요소(920)를 선택했을 때 애플리케이션에 의해 수집된 환경 정보를 기반으로 하나 이상의 아티스트 팩을 선택하거나 제안한다.
예시된 실시예에서, 선택 요소(922)는 사용자가 새로운 규칙 세트를 생성하기 위해 다수의 아티스트 팩을 결합할 수 있게 한다. 일부 실시예에서, 새로운 규칙 세트는 동일한 아티스트에 대한 하나 이상의 팩을 선택하는 사용자에 기초한다. 다른 실시예에서, 새로운 규칙 세트는 상이한 아티스트에 대한 하나 이상의 팩을 선택하는 사용자에 기초한다. 예를 들어 가중치가 높은 규칙 세트가 가중치가 낮은 규칙 세트보다 생성된 음악에 더 많은 영향을 미치도록 사용자는 다른 규칙 세트에 대한 가중치를 나타낼 수 있다. 음악 생성기는 예를 들어, 상이한 규칙 세트들로부터의 규칙간의 전환, 여러 상이한 규칙 세트로부터의 규칙에 대한 값을 평균화하는 등에 의해, 여러 다른 방식으로 규칙 세트를 결합할 수 있다.
예시된 실시예에서, 선택 요소(924)는 사용자가 하나 이상의 규칙 세트에서 규칙(들)을 수동으로 조정할 수 있게 한다. 예를 들어, 일부 실시예에서, 사용자는 음악 콘텐츠를 생성하는 데 사용되는 규칙 세트에서 하나 이상의 규칙을 조정함으로써 생성되는 음악 콘텐츠를 보다 세분화된 레벨로 조정하기를 원한다. 일부 실시예에서, 이것은, 출력 음악 콘텐츠를 생성하기 위해 음악 생성기에 의해 사용되는 규칙 세트를 조정하기 위해, 애플리케이션(910)의 사용자가 도 9a의 GUI에 디스플레이된 제어를 사용함으로써 그들 자신의 디스크 자키(DJ)가 되도록 허용한다. 이들 실시예는 또한 대상 음악 속성의 더 세밀한 제어를 허용할 수 있다.
도 9b에서, 엔터프라이즈 애플리케이션(930)은 아티스트 팩(914)을 갖는 아티스트 팩 선택 섹션(912)을 또한 포함하는 GUI를 디스플레이한다. 예시된 실시예에서, 애플리케이션(930)에 의해 디스플레이되는 엔터프라이즈 GUI는 또한 하나 이상의 음악 속성을 조정/추가/삭제하기 위한 요소(916)를 포함한다. 일부 실시예에서, 도 9b에 표시된 GUI는 음악 콘텐츠를 생성하여 특정 환경(예: 판매 최적화)을 생성하기 위해 비즈니스 또는 상점에서 사용된다. 일부 실시예에서, 직원은 애플리케이션(930)을 사용하여 판매를 증가시키기 위해 이전에 보여진 하나 이상의 아티스트 팩을 선택한다(예를 들어, 주어진 규칙 세트에 대한 메타데이터는 실제 상황에서 규칙 세트를 사용하여 실제 실험 결과를 나타낼 수 있다).
예시된 실시예에서, 입력 하드웨어(940)는 엔터프라이즈 애플리케이션(930)을 디스플레이하고 있는 애플리케이션 또는 웹사이트에 정보를 전송한다. 일부 실시예에서, 입력 하드웨어(940)는 다음 중 하나이다: 금전 등록기, 열 센서, 광 센서, 시계, 소음 센서 등. 일부 실시예에서, 위에 열거된 하나 이상의 하드웨어 디바이스로부터 전송된 정보는 특정 환경에 대한 출력 음악 콘텐츠를 생성하기 위한 대상 음악 속성 및/또는 규칙 세트를 조정하는 데 사용된다. 예시된 실시예에서, 선택 요소(938)는 애플리케이션(930)의 사용자가 환경 입력을 수신할 하나 이상의 하드웨어 디바이스를 선택할 수 있게 한다.
예시된 실시예에서 디스플레이(934)는 입력 하드웨어(940)로부터의 정보에 기초하여 애플리케이션(930)의 사용자에게 환경 데이터를 디스플레이한다. 예시된 실시예에서 디스플레이(932)는 환경 데이터에 기초한 규칙 세트에 대한 변경을 보여준다. 일부 실시예에서, 디스플레이(932)는 애플리케이션(930)의 사용자가 환경 데이터에 기초하여 이루어진 변경을 볼 수 있게 한다.
일부 실시예에서, 도 9a 및 도 9b에 도시된 요소는 테마 팩 및/또는 행사 팩용이다. 즉, 일부 실시예에서, 애플리케이션(910 및 930)에 의해 디스플레이되는 GUI를 사용하는 사용자 또는 비즈니스는 하나 이상의 경우 및/또는 테마에 대한 음악 콘텐츠를 생성하기 위해 규칙 세트를 선택/조정/수정할 수 있다.
자세한 예제 음악 생성기 시스템(Detailed Example Music Generator System)
도 10 내지 도 12는 음악 생성기 모듈(160)의 특정 실시예에 관한 세부사항을 도시한다. 이들 특정 예는 설명의 목적으로 개시되지만 본 발명의 범위를 제한하려는 의도가 아님에 유의한다. 이러한 실시예에서, 루프로부터의 음악의 구성은 개인용 컴퓨터, 모바일 디바이스, 미디어 디바이스 등과 같은 클라이언트 시스템에 의해 수행된다. 도 10 내지 도 12에서 "루프(loop)"라는 용어는 "오디오 파일(audio file)"이라는 용어와 호환될 수 있다. 일반적으로 루프는 여기에 설명된 대로 오디오 파일에 포함된다. 루프는 아티스트 팩이라고도 하는 전문적으로 선별된 루프 팩으로 나눌 수 있다. 루프는 음악 속성에 대해 분석될 수 있으며 속성은 루프 메타데이터로 저장될 수 있다. 구성된 트랙의 오디오는 분석(예: 실시간) 및 필터링되어 출력 스트림을 믹스 및 마스터링할 수 있다. 슬라이더 또는 버튼과의 사용자 상호작용으로부터의 것과 같은 명시적 피드백 및 예를 들어 음량 변화에 기초하여, 청취 길이, 환경 정보 등에 기초하여 센서에 의해 생성되는 암시적 피드백을 포함하는 다양한 피드백이 서버로 전송될 수 있다. 일부 실시예에서, 제어 입력은 알려진 효과(예: 대상 음악 속성을 직접 또는 간접적으로 지정)를 가지며 구성 모듈에서 사용된다.
다음 논의는 도 10 내지 도 12를 참조하여 사용되는 다양한 용어를 소개한다. 일부 실시예에서, 루프 라이브러리는 서버에 의해 저장될 수 있는 루프의 마스터 라이브러리이다. 각각의 루프에는 오디오 데이터와 오디오 데이터를 설명하는 메타데이터가 포함될 수 있다. 일부 실시예에서, 루프 패키지는 루프 라이브러리의 하위 세트이다. 루프 패키지는 특정 아티스트, 특정 분위기, 특정 유형의 이벤트 등을 위한 팩일 수 있다. 클라이언트 디바이스는 오프라인 청취를 위해 루프 팩을 다운로드하거나 예를 들어 온라인 청취를 위해 요청 시 루프 팩의 일부를 다운로드할 수 있다.
일부 실시예에서, 생성된 스트림은 사용자가 음악 생성 시스템을 사용할 때 사용자가 듣는 음악 콘텐츠를 지정하는 데이터이다. 실제 출력 오디오 신호는 예를 들어 오디오 출력 장비의 기능에 따라 주어진 생성된 스트림에 대해 약간 다를 수 있다.
구성 모듈은 일부 실시예에서 루프 패키지에서 이용 가능한 루프로부터 구성을 구성한다. 구성 모듈은 루프, 루프 메타데이터 및 사용자 입력을 파라미터로 수신할 수 있으며 클라이언트 디바이스에 의해 실행될 수 있다. 일부 실시예에서, 구성 모듈은 공연 모듈 및 하나 이상의 기계 학습 엔진으로 전송되는 공연 스크립트를 출력한다. 공연 스크립트는, 일부 실시예에서, 생성된 스트림의 각각의 트랙에서 재생될 루프와 스트림에 적용될 효과를 설명한다. 공연 스크립트는 비트 관련 타이밍을 활용하여 이벤트가 발생하는 시기를 나타낼 수 있다. 공연 스크립트는 효과 파라미터(예: 리버브, 지연, 압축, 이퀄라이제이션 등과 같은 효과)를 인코딩할 수도 있다.
일부 실시예에서 공연 모듈은 입력으로서 공연 스크립트를 수신하고 이를 생성된 스트림으로 렌더링한다. 공연 모듈은 공연 스크립트에 의해 지정된 다수의 트랙을 생성하고 트랙을 스트림(예: 스테레오 스트림, 비록 스트림이 다양한 실시예에서 서라운드 인코딩, 객체-기반 오디오 인코딩, 다중-채널 스테레오 등을 포함하는 다양한 인코딩을 가질 수 있지만)으로 혼합할 수 있다. 일부 실시예에서, 특정 공연 스크립트가 제공될 때 공연 모듈은 항상 동일한 출력을 생성할 것이다.
일부 실시예에서, 분석 모듈은 피드백 정보를 수신하고 (예를 들어, 관리자 명령 등에 기초하여 실시간으로, 주기적으로) 구성 모듈을 구성하는 서버 구현 모듈이다. 일부 실시예에서, 분석 모듈은 기계 학습 기술의 조합을 사용하여 사용자 피드백을 공연 스크립트 및 루프 라이브러리 메타데이터와 연관시킨다.
도 10은 일부 실시예에 따라 분석 및 구성 모듈을 포함하는 예시적인 음악 생성기 시스템을 도시하는 블록도이다. 일부 실시예에서, 도 10의 시스템은 음악의 분위기와 스타일에 대한 직접적인 사용자 제어로 잠재적으로 무한한 음악 스트림을 생성하도록 구성된다. 예시된 실시예에서, 시스템은 분석 모듈(1010), 구성 모듈(1020), 공연 모듈(1030), 및 오디오 출력 디바이스(1040)를 포함한다. 일부 실시예에서, 분석 모듈(1010)은 서버에 의해 구현되고 구성 모듈(1020) 및 공연 모듈(1030)은 하나 또는 더 많은 클라이언트 디바이스에 의해 구현된다. 다른 실시예에서, 모듈(1010, 1020 및 1030)은 모두 클라이언트 디바이스에서 구현될 수 있거나 모두 서버측에서 구현될 수 있다.
설명된 실시예에서, 분석 모듈(1010)은 하나 이상의 아티스트 팩(1012)을 저장하고 특징 추출 모듈(1014), 클라이언트 시뮬레이터 모듈(1016), 및 심층 신경망(1018)을 구현한다.
일부 실시예에서, 특징 추출 모듈(1014)은 루프 오디오를 분석한 후 루프를 루프 라이브러리에 추가한다(일부 루프는 이미 생성된 메타데이터와 함께 수신될 수 있고 분석을 필요로 하지 않을 수 있음에 유의하십시오). 예를 들어 wav, aiff 또는 FLAC와 같은 형식의 원시 오디오는 악기 분류, 피치 표기, 비트 타이밍, 템포, 파일 길이, 및 여러 주파수 빈의 오디오 진폭과 같은 정량화 가능한 음악적 속성에 대해 분석될 수 있다. 분석 모듈(1010)은 또한 예를 들어 아티스트에 의한 수동 태깅 또는 기계 청취에 기초하여 루프에 대한 보다 추상적인 음악적 속성 또는 무드 설명을 저장할 수 있다. 예를 들어 무드는 주어진 루프에 대한 각각의 범주의 값 범위와 함께 여러 개별 범주를 사용하여 정량화될 수 있다.
예를 들어, 노트 G2, Bb2 및 D2가 사용되고, 제 1 비트가 파일의 6밀리초에서 시작하고, 템포가 122bpm이고, 파일 길이가 6483밀리초이고, 루프가 5개의 주파수 빈에서 0.3, 0.5, 0.7, 0.3 및 0.2의 정규화된 진폭 값을 갖는 것을 결정하기 위해 분석되는 루프 A를 고려하시오. 아티스트는 다음 무드 값을 사용하여 루프를 "펑크 장르(funk genre)"로 표시할 수 있다.
초월 | 평온함 | 파워 | 기쁨 | 슬픔 | 텐션 |
높음 | 높음 | 낮음 | 중간 | 없음 | 낮음 |
분석 모듈(1010)은 이 정보를 데이터베이스에 저장할 수 있고 클라이언트는 예를 들어 루프 패키지로서 정보의 하위 섹션을 다운로드할 수 있다. 아티스트 팩(1012)이 설명의 목적으로 도시되어 있지만, 분석 모듈(1010)은 다양한 유형의 루프 패키지를 구성 모듈(1020)에 제공할 수 있다.
도시된 실시예에서 클라이언트 시뮬레이터 모듈(1016)은 심층 신경망(1018)에 의해 지원되는 형식으로 피드백 정보를 제공하기 위해 다양한 유형의 피드백을 분석한다. 도시된 실시예에서 심층 신경망(1018)은 또한 구성 모듈에 의해 생성된 공연 스크립트를 입력으로 수신한다. 일부 실시예에서, 심층 신경망은 예를 들어 생성된 음악 출력의 유형과 원하는 피드백 사이의 상관 관계를 개선하기 위해 이러한 입력에 기초하여 구성 모듈을 구성한다. 예를 들어, 심층 신경망은 구성 모듈(1020)을 구현하는 클라이언트 디바이스에 업데이트를 주기적으로 푸시할 수 있다. 심층 신경망(1018)은 설명의 목적으로 도시되었으며 개시된 실시예에서 강력한 기계 학습 공연을 제공할 수 있지만 본 개시의 범위를 제한하려는 의도는 아니다. 다양한 실시예에서, 다양한 유형의 기계 학습 기술이 단독으로 구현되거나 유사한 기능을 수행하기 위해 다양한 조합으로 구현될 수 있다. 기계 학습 모듈은 일부 실시예에서 규칙 세트(예를 들어, 배열 규칙 또는 기술)를 직접 구현하는 데 사용될 수 있거나 예를 들어 도시된 실시예에서 심층 신경망(1018)을 사용하여 다른 유형의 규칙 세트를 구현하는 모듈을 제어하는 데 사용될 수 있음을 유의하시오.
일부 실시예에서, 분석 모듈(1010)은 구성 모듈(1020)을 위한 구성 파라미터를 생성하여 원하는 피드백과 특정 파라미터의 사용 사이의 상관관계를 개선한다. 예를 들어, 부정적인 피드백을 줄이기 위해 구성 파라미터를 조정하기 위해 실제 사용자 피드백이 사용될 수 있다.
하나의 예로서, 모듈(1010)이 부정적인 피드백(예를 들어, 명백한 낮은 순위, 낮은 볼륨 청취, 짧은 청취 시간 등)과 많은 수의 레이어를 사용하는 구성 사이의 상관관계를 발견하는 상황을 고려하시오. 일부 실시예에서, 모듈(1010)은 더 많은 트랙을 추가하는 데 사용되는 확률 파라미터를 조정하는 것이 이 문제의 빈도를 줄이는지 결정하기 위해 역전파와 같은 기술을 사용한다. 예를 들어, 모듈(1010)은 확률 파라미터를 50% 감소시키는 것이 부정적인 피드백을 8% 감소시킬 것이라고 예측할 수 있고 감소를 수행하기로 결정할 수 있고 구성 모듈에 업데이트된 파라미터를 푸시할 수 있다(확률 파라미터는 아래에서 자세히 논의되지만 임의의 통계 모델에 대한 다양한 파라미터가 유사하게 조정될 수 있음).
다른 예로서, 모듈(1010)이 부정적인 피드백이 사용자가 무드 조절을 높은 텐션으로 설정하는 것과 상관된다는 것을 발견하는 상황을 고려한다. 낮은 텐션 태그가 있는 루프와 높은 텐션을 요구하는 사용자 사이의 상관 관계도 찾을 수 있다. 이 경우, 모듈(1010)은 사용자가 하이 텐션 음악을 요청할 때 하이 텐션 태그가 있는 루프를 선택할 확률이 증가하도록 파라미터를 증가시킬 수 있다. 따라서, 기계 학습은 구성 출력, 피드백 정보, 사용자 제어 입력 등을 포함하는 다양한 정보를 기반으로 할 수 있다.
예시된 실시예에서 구성 모듈(1020)은 섹션 시퀀서(1022), 섹션 배열기(1024), 기술 구현 모듈(1026) 및 루프 선택 모듈(1028)을 포함한다. 일부 실시예에서, 구성 모듈(1020)은 루프 메타데이터 및 사용자 제어 입력(예: 무드 제어)에 기초하여 구성의 섹션을 조직하고 구성한다.
섹션 시퀀서(1022)는 일부 실시예에서 상이한 유형의 섹션을 시퀀싱한다. 일부 실시예에서, 섹션 시퀀서(1022)는 작동 중에 섹션의 다음 유형을 연속적으로 출력하기 위해 유한 상태 기계를 구현한다. 예를 들어, 구성 모듈(1020)은 도 10을 참조하여 아래에서 더 상세히 논의되는 바와 같이, 도입, 빌드업, 드롭, 브레이크다운 및 브리지(bridge)와 같은 상이한 유형의 섹션을 사용하도록 구성될 수 있다. 또한, 각각의 섹션은 음악이 섹션 전체에서 어떻게 변경되는지를 정의하는 다수의 하위 섹션을 포함할 수 있고, 예를 들어 트랜지션-인(transition-in) 하위 섹션, 주요 콘텐츠 하위 섹션 및 트랜지션-아웃(transition-out) 하위 섹션을 포함한다.
섹션 배열기(1024)는 일부 실시예에서 배열 규칙에 따라 하위 섹션을 구성한다. 예를 들어 하나의 규칙은 점진적으로 트랙을 추가하여 트랜지션-인하도록 지정할 수 있다. 또 다른 규칙은 일련의 트랙에서 점진적으로 게인을 증가시켜 트랜지션-인을 지정할 수 있다. 또 다른 규칙은 멜로디를 만들기 위해 보컬 루프를 자르도록 지정할 수 있다. 일부 실시예에서, 루프 라이브러리의 루프가 트랙에 추가될 확률은 섹션 또는 하위 섹션의 현재 위치, 또 다른 트랙에서 시간적으로 겹치는 루프, 분위기 변수와 같은 사용자 입력 파라미터( 생성된 음악 콘텐츠에 대한 대상 속성을 결정하는 데 사용될 수 있음)의 함수이다. 상기 함수는 예를 들어 기계 학습을 기반으로 계수를 조정하여 조정할 수 있다.
일부 실시예에서, 기술 구현 모듈(1020)은 예를 들어 아티스트에 의해 지정되거나 특정 아티스트의 구성을 분석하여 결정되는 규칙을 추가함으로써 섹션 배열을 용이하게 하도록 구성된다. "기술(technique)"은 특정 아티스트가 기술 수준에서 배열 규칙을 구현하는 방법을 설명할 수 있다. 예를 들어, 트랙을 점진적으로 추가하여 트랜지션-인을 지정하는 편곡 규칙의 경우 드럼, 베이스, 패드, 보컬 순으로 트랙을 추가하는 기술이 있고, 베이스, 패드, 보컬, 이어서 드럼 순으로 트랙을 추가하는 기술이 있을 수 있다. 유사하게, 멜로디를 생성하기 위해 보컬 루프를 절단하도록 지정하는 배열 규칙의 경우 기술은 매초 비트에서 보컬을 절단하고 다음 절단 섹션으로 이동하기 전에 루프의 절단 섹션을 두 번 반복하도록 나타낼 수 있다.
도시된 실시예에서, 루프 선택 모듈(1028)은 섹션별 배열기(1024)에 포함시키기 위해 배열 규칙 및 기술에 따라 루프를 선택한다. 일단 섹션이 완료되면, 대응하는 수행 스크립트가 생성되어 공연 모듈(1030)로 전송될 수 있다. 공연 모듈(1030)은 다양한 단위로 공연 스크립트 부분을 수신할 수 있다. 이는, 예를 들어, 일정 길이의 공연에 대한 전체 공연 스크립트, 구간별 공연 스크립트, 하위 구간별 공연 스크립트 등을 포함할 수 있다. 일부 실시예에서, 배열 규칙, 기술, 또는 루프 선택은 예를 들어 서로 다른 접근 방식을 사용하여 시간의 서로 다른 백분율을 사용하여 통계적으로 구현된다.
도시된 실시예에서 공연 모듈(1030)은 필터 모듈(1031), 효과 모듈(1032), 혼합 모듈(1033), 마스터 모듈(1034) 및 수행 모듈(1035)을 포함한다. 일부 실시예에서, 이들 모듈은 공연 스크립트를 처리하고 오디오 출력 디바이스(1040)에 의해 지원되는 포맷에서 음악 데이터를 생성한다. 공연 스크립트는 재생될 루프가 재생될 때, 어떤 효과가 모듈(1032)에 의해 적용되어야 하는지(예를 들어, 트랙별 또는 하위 섹션별 기준), 어떤 필터가 모듈(1031) 등에 의해 적용되어야 하는지를 지정할 수 있다.
예를 들어, 공연 스크립트는 특정 트랙에서 0밀리초에서 5000밀리초까지 1000Hz에서 20000Hz로 램핑(ramping)하는 로우 패스 필터를 적용하도록 지정할 수 있다. 다른 예로서, 공연 스크립트는 특정 트랙에서 5000에서 15000밀리초까지 0.2 웨트(wet) 설정으로 리버브를 적용하도록 지정할 수 있다.
일부 실시예에서, 혼합 모듈(1033)은 결합되는 트랙에 대한 자동 레벨 제어를 수행하도록 구성된다. 일부 실시예에서, 혼합 모듈(1033)은 결합된 트랙의 주파수 도메인 분석을 사용하여 에너지가 너무 많거나 적은 주파수를 측정하고 서로 다른 주파수 대역의 트랙에 게인을 적용하여 혼합을 고르게 한다. 마스터 모듈(1034)은 일부 실시예에서 수행 모듈(1035)에 의해 최종 포맷을 위한 데이터를 생성하기 위해 다중 대역 압축, 등화(EQ) 또는 제한 절차를 수행하도록 구성된다. 도 10의 실시예는 사용자 입력 또는 기타 피드백 정보에 따라 다양한 출력 음악 콘텐츠를 자동으로 생성할 수 있는 반면, 기계 학습 기술은 시간이 지남에 따라 향상된 사용자 경험을 허용할 수 있다.
도 11은 일부 실시예에 따른 음악 콘텐츠의 예시적인 빌드업 섹션을 나타내는 도면이다. 도 10의 시스템은 배치 규칙과 기술을 적용하여 이러한 섹션을 구성할 수 있다. 예시된 예에서, 빌드업 섹션에는 3개의 하위 섹션과 보컬, 패드, 드럼, 베이스 및 백색 소음에 대한 별도의 트랙이 포함되어 있다.
예시된 예에서 하위 섹션의 전환은 주요 콘텐츠 하위 섹션에 대해 반복되는 베이스 루프(A)를 포함한다. 하위 섹션의 전환은 베이스 루프(A)도 포함한다. 도시된 바와 같이, 섹션에 대한 게인은 낮게 시작하여 섹션 전체에 걸쳐 선형적으로 증가한다(비선형 증가 또는 감소가 고려되지만). 예시된 예에서 주요 콘텐츠 및 전환 하위 섹션에는 다양한 보컬, 패드, 드럼 및 베이스 루프가 포함된다. 전술한 바와 같이, 섹션을 자동으로 시퀀싱하고, 섹션을 배열하고, 구현하는 기술을 위한 개시된 기술은 다양한 사용자 조정 가능한 파라미터에 기초하여 출력 음악 콘텐츠의 거의 무한 스트림을 생성할 수 있다.
일부 실시예에서, 컴퓨터 시스템은 도 11과 유사한 인터페이스를 디스플레이하고 아티스트가 섹션을 구성하는 데 사용되는 기술을 지정할 수 있다. 예를 들어, 아티스트는 도 11에 도시된 것과 같은 구조를 생성할 수 있고 이는 구성 모듈에 대한 코드로 파싱(parse)될 수 있다.
도 12는 일부 실시예에 따라 음악 콘텐츠의 섹션을 배열하기 위한 예시적인 기술을 도시하는 도면이다. 도시된 실시예에서, 생성된 스트림(1210)은 시작 하위 섹션(1222), 개발 하위 섹션(1224), 및 전이 하위 섹션(1226)을 각각 포함하는 다수의 섹션(1220)을 포함한다. 예시된 예에서, 다수의 유형의 각각의 섹션/하위 섹션이 점선을 통해 연결된 표에 도시된다. 예시된 실시예에서, 원형 요소는 정렬 도구의 예이며, 아래에서 논의되는 특정 기술을 사용하여 추가로 구현될 수 있다. 도시된 바와 같이, 다양한 구성 결정은 통계적 백분율에 따라 유사-랜덤하게 수행될 수 있다. 예를 들어, 하위 섹션의 유형, 특정 유형 또는 하위 섹션에 대한 정렬 도구 또는 정렬 도구를 구현하는 데 사용되는 기술이 통계적으로 결정될 수 있다.
예시된 예에서, 주어진 섹션(1220)은 5가지 유형: 도입, 빌드업, 드롭, 브레이크다운, 및 브리지 중 하나이며, 각각은 섹션에 대한 강도를 제어하는 상이한 행동을 갖는다. 이 예에서 상태 하위 섹션은 세 가지 유형 중 하나이다: 느린 빌드, 급격한 변화, 또는 최소로서, 각각 다른 동작을 한다. 이 예에서 개발 하위 섹션은 감소, 변환 또는 증가의 세 가지 유형 중 하나이다. 이 예에서 전환 하위 섹션은 축소, 램프 또는 힌트의 세 가지 유형 중 하나이다. 상이한 유형의 섹션 및 하위 섹션은 예를 들어 규칙에 기초하여 선택될 수 있거나 의사-랜덤하게 선택될 수 있다.
예시된 예에서, 상이한 하위 섹션 유형에 대한 동작은 하나 이상의 배열 도구를 사용하여 구현된다. 느린 빌드의 경우, 이 예에서는, 로우 패스 필터가 적용되는 시간의 40%와 시간 레이어의 80%가 추가된다. 변환 개발 하위-섹션의 경우, 이 예에서는, 시간 루프의 25%가 잘린다. 원샷, 드롭아웃 비트(dropout beat), 리버브 적용, 패드 추가, 테마 추가, 레이어 제거, 백색 소음을 포함하는 다양한 추가 편곡 도구가 표시된다. 이들 예는 예시의 목적으로 포함되며 본 개시내용의 범위를 제한하려는 의도가 아니다. 또한, 예시를 용이하게 하기 위해, 이들 예는 완전하지 않을 수 있다(예를 들어, 실제 배열은 전형적으로 훨씬 더 많은 수의 배열 규칙을 포함할 수 있다).
일부 실시예에서, 하나 이상의 배열 도구는 특정 기술(아티스트가 특정하거나 아티스트의 콘텐츠 분석에 기초하여 결정될 수 있음)을 사용하여 구현될 수 있다. 예를 들어 원샷은 음향 효과나 보컬을 사용하여 구현할 수 있고, 루프 초핑(loop chopping)은 스터터(stutter)나 촙-인-하프(chop-in-half) 기술을 사용하여 구현할 수 있으며 레이어 제거는 신시사이저를 제거하거나 보컬을 제거하여 구현할 수 있으며 백색 잡음은 램프 또는 펄스 기능 등을 사용하여 구현될 수 있다. 일부 실시예에서, 주어진 배열 도구에 대해 선택된 특정 기술은 통계 함수에 따라 선택될 수 있다(예를 들어, 레이어를 제거하는 시간의 30%는 신시사이저를 제거할 수 있고 시간의 70%는 특정 아티스트의 보컬을 제거할 수 있다). 전술한 바와 같이, 예를 들어 기계 학습을 사용하여 기존 구성을 분석함으로써 배치 규칙 또는 기술이 자동으로 결정될 수 있다.
예시 방법
도 13은 일부 실시예에 따른 음악 생성 시스템을 트레이닝하기 위한 흐름도 방법이다. 도 13에 도시된 방법은 특히 본원에 개시된 임의의 컴퓨터 회로, 시스템, 디바이스, 요소 또는 컴포넌트와 함께 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소 중 일부는 도시된 것과 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 원하는 대로 추가 방법 요소가 수행될 수도 있다.
1310에서, 예시된 실시예에서, 컴퓨터 시스템 상의 음악 생성기는 복수의 디지털 음악 단편으로부터 지정된 길이의 출력 음악 콘텐츠를 생성하며, 여기서 출력 음악 콘텐츠는 복수의 디지털 음악 단편으로부터 생성된 상이한 출력 음악 콘텐츠의 어레이를 포함하고, 음악 생성기는 일련의 해석 규칙에 따라 하나 이상의 음악 생성 파라미터를 순차적으로 해석하여 오디오 형식의 다양한 출력 음악 콘텐츠 어레이를 생성한다.
1320에서, 도시된 실시예에서, 음악 생성기는 생성된 출력 음악 콘텐츠로부터 결정된 강화 입력을 수신한다.
1330에서, 예시된 실시예에서, 음악 생성 파라미터가 이전에 생성된 음악 생성 파라미터 또는 사용자-생성 음악 생성 파라미터 중 적어도 하나를 포함하는 알고리즘을 사용하여 강화 입력에 기초하여 음악 생성기에 대한 음악 생성 파라미터가 조정된다.
1340에서, 예시된 실시예에서, 지정된 길이의 새로운 출력 음악 콘텐츠가 조정된 음악 생성 파라미터에 기초하여 복수의 디지털 음악 단편으로부터 생성된다.
도 14는 일부 실시예에 따라 사용자-특정 음악 제어 요소를 제어하기 위한 흐름도 방법이다. 도 14에 도시된 방법은 본원에 개시된 임의의 컴퓨터 회로, 시스템, 디바이스, 요소 또는 컴포넌트와 함께 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소 중 일부는 도시된 것과 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 원하는 대로 추가 메서드 요소를 수행할 수도 있다.
1410에서, 예시된 실시예에서, 컴퓨팅 시스템은 사용자-정의 음악 제어 요소를 지정하는 사용자 입력을 수신한다.
1420에서, 예시된 실시예에서, 컴퓨팅 시스템은 하나 이상의 악곡에 대한 사용자-정의 음악 제어 요소에 대한 라벨을 지정하는 사용자 입력을 수신한다.
1430에서, 예시된 실시예에서, 컴퓨팅 시스템은 라벨에 기초하여 하나 이상의 기계 학습 모델을 트레이닝하여 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 하나 이상의 구성 파라미터를 조정하고, 결합될 오디오 트랙을 선택하여 출력 음악 콘텐츠를 생성하고 사용자-정의 음악 제어 요소에 대한 사용자 입력에 따라 선택된 오디오 트랙을 기반으로 출력 음악 콘텐츠를 생성하기 위한 하나 이상의 공연 파라미터를 조정한다.
1440에서, 예시된 실시예에서, 컴퓨팅 시스템은 하나 이상의 구성 파라미터 및 하나 이상의 공연 파라미터에 따라 다수의 오디오 트랙을 결합함으로써 출력 음악 콘텐츠가 생성되게 한다.
일부 실시예에서, 컴퓨팅 시스템은 하나 이상의 기계 학습 모델에 기초한 구성 정보를 사용자 디바이스로 전송하며, 여기서 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 공연 파라미터를 조정하는 방법을 나타낸다. 일부 실시예에서, 컴퓨팅 시스템은 하나 이상의 기계 학습 모델에 따라 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 하나 이상의 구성 파라미터를 조정한다. 일부 실시예에서, 컴퓨팅 시스템의 사용자 디바이스는 구성 정보에 따라 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 하나 이상의 구성 파라미터를 조정한다.
일부 실시예에서, 송신은 데이터 타겟을 지정하기 위해 구분된 스트링을 사용하고, 방법은 스트링의 오프셋에 대한 포인터를 갖는 데이터 구조에 기초하여 스트링을 형성하는 단계를 더 포함하고, 스트링 형성은 기존 스트링에 추가하거나 추가하는 것을 포함한다.
일부 실시예에서, 트레이닝은 구성 파라미터와 사용자-정의 음악 제어 요소에 대한 사용자 입력 사이의 관계를 명시적으로 지정하는 사용자 입력에 더 기초한다.
일부 실시예에서, 하나 이상의 구성 파라미터는 다음을 위한 파라미터를 포함한다: 음악 섹션 사이의 텐션 구축, 유지 및 감소, 오디오 파일 카테고리 활성화 또는 비활성화, 하나 이상의 오디오 파일에 대한 다음 음악 측면 중 하나 이상 조정 카테고리: 볼륨, 리버브 양, 지연 펀치 확률, 및 지연 웨트니스 등. 일부 실시예에서, 하나 이상의 공연 파라미터는 다음 유형의 파라미터 중 적어도 하나를 포함한다: 필터 파라미터, 효과 파라미터, 및 혼합 파라미터.
도 15는 일부 실시예에 따라 사용자-특정 음악 제어 요소에 기초하여 음악 콘텐츠를 생성하기 위한 흐름도 방법이다. 도 15에 도시된 방법은 본원에 개시된 임의의 컴퓨터 회로, 시스템, 디바이스, 요소 또는 컴포넌트와 함께 사용될 수 있다. 다양한 실시예에서, 도시된 방법 요소 중 일부는 도시된 것과 다른 순서로 동시에 수행될 수 있거나 생략될 수 있다. 원하는 대로 추가 방법 요소가 수행될 수도 있다.
1510에서, 예시된 실시예에서, 컴퓨팅 시스템은 구성 정보를 수신하는데, 여기서 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 조정에 기초하여 하나 이상의 공연 파라미터를 조정하는 방법을 지정하고 하나 이상의 공연이 파라미터는 선택한 오디오 트랙을 기반으로 출력 음악 콘텐츠를 생성하기 위한 것이다.
1520에서, 예시된 실시예에서, 컴퓨팅 시스템은 제 1 사용자 인터페이스를 통해 사용자 입력을 수신하고, 여기서 사용자 입력은 사용자-정의 음악 제어 요소에 대한 조정을 지정한다.
1530에서, 예시된 실시예에서, 컴퓨팅 시스템은 사용자 입력 및 구성 정보에 기초하여 하나 이상의 공연 파라미터 중 하나 이상를 조정한다.
1540에서, 예시된 실시예에서, 컴퓨팅 시스템은 하나 이상의 조정된 공연 파라미터에 따라 다수의 오디오 파일을 결합함으로써 출력 음악 콘텐츠를 생성한다.
일부 실시예에서, 컴퓨팅 시스템은 결합될 다수의 오디오 파일을 표시하고 음악 섹션 사이의 전환을 표시하는 구성 제어 정보(예를 들어, 구성 스크립트)를 수신한다. 일부 실시예에서, 구성 제어 정보는 사용자-정의 음악 제어 요소에 대한 조정을 지정하는 (예를 들어, 아티스트 사용자 인터페이스를 통한 아티스트 또는 제 1 사용자 인터페이스를 통한 최종 사용자에 의한) 사용자 입력에 기초하여 생성된다.
일부 실시예에서, 사용자-정의 음악 제어 요소는 구성 정보를 전송한 서버 시스템에 의해 생성된 제 2 사용자 인터페이스를 통해 정의된다. 일부 실시예에서, 사용자-정의 음악 제어 요소는 제 1 사용자 인터페이스를 통해 사용자 입력을 제공하는 사용자와 다른 사용자에 의해 정의된다.
일부 실시예에서, 컴퓨팅 시스템은 구성 정보의 대상을 나타내는 구분 스트링 내의 위치에 대한 포인터를 사용하여 구성 정보를 분석한다.
본 명세서의 다양한 실시예에서, 새로운 음악 콘텐츠를 자동으로 생성하는 것과 관련된 기술이 개시된다. 일부 실시예에서, 컴퓨팅 시스템은 사용자-정의 음악 제어 요소를 지정하는 사용자 입력을 수신한다. 컴퓨팅 시스템은 사용자-정의 음악 제어 요소에 대한 사용자 조정에 기초하여 구성 및 공연 파라미터 모두를 변경하도록 기계 학습 모델을 트레이닝시킬 수 있다. 구성 및 공연 하위 시스템이 다른 디바이스에 있는 실시예에서, 하나의 디바이스는 다른 디바이스에 구성 정보를 전송할 수 있으며, 여기서 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 파라미터를 조정하는 방법을 지정한다. 공개된 기술은 개별 사용자에 대한 개별 맞춤화를 허용하면서 인간과 유사한 음악 제작을 위한 중앙 집중식 학습을 용이하게 할 수 있다. 또한, 개시된 기술은 아티스트가 자신의 추상적인 음악 제어를 정의하고 이러한 제어를 최종 사용자가 사용할 수 있도록 할 수 있다.
다음의 번호가 매겨진 조항은 본 명세서에 개시된 다양한 비제한적 실시예를 설명한다:
세트 A
A1. 방법으로서:
컴퓨팅 시스템에 의해 사용자-정의 음악 제어 요소를 지정하는 사용자 입력을 수신하는 단계;
컴퓨팅 시스템에 의해, 하나 이상의 악곡에 대한 사용자-정의 음악 제어 요소에 대한 라벨을 지정하는 사용자 입력을 수신하는 단계;
라벨을 기반으로 하는 상기 컴퓨팅 시스템에 의해, 하나 이상의 기계 학습 모델을 트레이닝하여:
사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여, 출력 음악 콘텐츠를 생성하기 위해 결합될 오디오 트랙을 선택하기 위한 하나 이상의 구성 파라미터를 조정하도록; 그리고
사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여, 선택된 오디오 트랙에 기초하여 출력 음악 콘텐츠를 생성하기 위한 하나 이상의 공연 파라미터를 조정하도록 하는, 단계; 및
다수의 오디오 트랙을 결합함으로써 하나 이상의 구성 파라미터 및 하나 이상의 공연 파라미터에 따라 출력 음악 콘텐츠가 생성되게 하는 단계를 포함하는, 방법.
A2. 세트 A 내의 임의의 이전 조항의 방법으로서, 상기 컴퓨팅 시스템은 서버 시스템이고, 상기 방법은:
하나 이상의 기계 학습 모델에 기초한 구성 정보를 사용자 디바이스로 전송하는 단계로서, 상기 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 공연 파라미터를 조정하는 방식을 나타내는, 단계를 더 포함하는, 방법.
A3. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 하나 이상의 기계 학습 모델에 따라 상기 컴퓨팅 시스템에 의해, 상기 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 하나 이상의 구성 파라미터를 조정하는 단계를 더 포함하는, 방법.
A4. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 구성 정보에 따라 상기 사용자 디바이스에 의해, 상기 사용자-정의 음악 제어 요소에 대한 사용자 입력에 기초하여 하나 이상의 구성 파라미터를 조정하는 단계를 더 포함하는, 방법.
A5. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 송신 단계는 구분된 스트링을 사용하여 데이터 대상을 지정하고, 상기 방법은 스트링의 오프셋에 대한 포인터를 갖는 데이터 구조에 기초하여 스트링을 형성하는 단계를 더 포함하고, 상기 스트링 형성은 기존 스트링에 추가하거나 첨부하는 것을 포함하는, 방법.
A6. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 트레이닝은 구성 파라미터와 사용자-정의 음악 제어 요소에 대한 사용자 입력 사이의 관계를 명시적으로 지정하는 사용자 입력에 추가로 기초하는, 방법.
A7. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 하나 이상의 구성 파라미터는 음악 섹션 간의 텐션 구축, 지속, 및 감소에 대한 파라미터를 포함하는, 방법.
A8. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 하나 이상의 구성 파라미터는:
오디오 파일 범주 활성화 또는 비활성화; 및
하나 이상의 오디오 파일 범주에 대한 다음 음악 측면: 볼륨, 리버브 양, 지연 펀치 확률, 및 지연 웨트니스 중 하나 이상를 조정하기 위한 파라미터를 포함하는, 방법.
A9. 세트 A 내의 임의의 이전 조항의 방법으로서,
상기 하나 이상의 공연 파라미터는 다음 유형의 파라미터: 필터 파라미터, 효과 파라미터, 및 혼합 파라미터 중 적어도 하나를 포함하는, 방법.
A10. 연산을 수행하기 위해 컴퓨팅 디바이스에 의해 실행 가능한 명령이 저장되어 있는, 비일시적 컴퓨터 판독 가능 매체로서,
구성 정보를 수신하는 단계로서, 상기 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 조정에 기초하여 하나 이상의 공연 파라미터를 조정하는 방식을 지정하고, 상기 하나 이상의 공연 파라미터는 선택된 오디오 트랙에 기초하여 출력 음악 콘텐츠를 생성하기 위한 단계;
제 1 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계로서, 상기 사용자 입력은 상기 사용자-정의 음악 제어 요소에 대한 조정을 지정하는, 단계;
상기 사용자 입력 및 상기 구성 정보에 기초하여 상기 하나 이상의 공연 파라미터 중 하나 이상를 조정하는 단계; 및
상기 하나 이상의 조정된 공연 파라미터에 따라 다수의 오디오 파일을 결합함으로써 출력 음악 콘텐츠를 생성하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
A11. 세트 A 내의 임의의 이전 조항의 비일시적 컴퓨터 판독 가능 매체로서,
결합될 다수의 오디오 파일을 나타내고 음악 섹션 간의 전환을 나타내는 구성 제어 정보를 수신하는 것을 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
A12. 세트 A 내의 임의의 이전 조항의 비일시적 컴퓨터 판독가능 매체로서,
상기 구성 제어 정보는 사용자-정의 음악 제어 요소에 대한 조정을 지정하는 사용자 입력에 기초하여 생성되는, 비일시적 컴퓨터 판독 가능 매체.
A13. 세트 A 내의 임의의 이전 조항의 비일시적 컴퓨터 판독가능 매체로서,
상기 사용자-정의 음악 제어 요소는 구성 정보를 전송한 서버 시스템에 의해 생성된 제 2 사용자 인터페이스를 통해 정의되는, 비일시적 컴퓨터 판독 가능 매체.
A14. 세트 A 내의 임의의 이전 조항의 비일시적 컴퓨터 판독가능 매체로서,
상기 사용자-정의 음악 제어 요소는 상기 제 1 사용자 인터페이스를 통해 상기 사용자 입력을 제공하는 사용자와 다른 사용자에 의해 정의되는, 비일시적 컴퓨터 판독 가능 매체.
A15. 세트 A 내의 임의의 이전 조항의 비일시적 컴퓨터 판독가능 매체로서,
상기 구성 정보의 대상을 나타내는 구분 스트링 내의 위치에 대한 포인터를 사용하여 상기 구성 정보를 파싱(parse)하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
A16. 장치로서,
하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는:
구성 정보를 수신하고, 상기 구성 정보는 사용자-정의 음악 제어 요소에 대한 사용자 조정에 기초하여 하나 이상의 공연 파라미터를 조정하는 방식을 지정하며, 상기 하나 이상의 공연 파라미터는 선택된 오디오 트랙에 기초하여 출력 음악 콘텐츠를 생성하도록;
제 1 사용자 인터페이스를 통해 사용자 입력을 수신하고, 상기 사용자 입력은 상기 사용자-정의 음악 제어 요소에 대한 조정을 지정하도록;
상기 사용자 입력 및 상기 구성 정보에 기초하여 상기 하나 이상의 공연 파라미터 중 하나 이상를 조정하도록; 그리고
상기 하나 이상의 조정된 공연 파라미터에 따라 다수의 오디오 파일을 결합함으로써 출력 음악 콘텐츠를 생성하도록 구성된, 장치.
A17. 세트 A 내의 임의의 이전 조항의 장치로서,
상기 하나 이상의 프로세서는:
결합될 다수의 오디오 파일을 나타내고 음악 섹션들 사이의 전환을 나타내는 구성 제어 정보를 수신하도록 더 구성되고,
상기 구성 제어 정보는 상기 사용자-정의 음악 제어 요소에 대한 조정을 지정하는 사용자 입력에 기초하여 기계 학습 모델에 의해 생성되는, 장치.
A18. 세트 A 내의 임의의 이전 조항의 장치로서,
상기 사용자-정의 음악 제어 요소는 상기 구성 정보를 전송한 서버 시스템에 의해 생성된 제 2 사용자 인터페이스를 통해 정의되는, 장치.
A19. 세트 A 내의 임의의 이전 조항의 장치로서,
상기 하나 이상의 프로세서는:
상기 구성 정보의 대상을 나타내는 구분 스트링 내의 위치에 대한 포인터를 사용하여 구성 정보를 파싱하도록 더 구성되는, 장치.
A20. 세트 A 내의 임의의 이전 조항의 장치로서,
상기 장치는 제 1 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 및 무선 네트워크에 연결하도록 구성된 하나 이상의 무선 라디오를 포함하는 모바일 디바이스인, 장치.
A21. 연산을 수행하기 위해 컴퓨팅 디바이스에 의해 실행 가능한 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 매체로서,
세트 A 내에서 임의의 이전 조항의 방법에 의해 수행되는 연산의 모든 조합을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
A22. 장치로서,
하나 이상의 프로세서; 및
세트 A 내에서 임의의 이전 조항의 방법에 의해 수행된 연산의 임의의 조합을 수행하도록 하나 이상의 프로세서에 의해 실행 가능한 프로그램 명령이 저장된 하나 이상의 메모리를 포함하는, 장치.
본 발명은 "실시예" 또는 "실시예들"의 그룹(예를 들어, "일부 실시예" 또는 "다양한 실시예")에 대한 언급을 포함한다. 실시예는 개시된 개념의 상이한 구현 또는 예이다. "일 실시예", "하나의 실시예", "특정 실시예" 등에 대한 언급은 반드시 동일한 실시예를 지칭하는 것은 아니다. 구체적으로 개시된 것 뿐만 아니라 본 개시의 사상 또는 범위 내에 속하는 수정 또는 대안을 포함하는 다수의 가능한 실시예가 고려된다.
본 개시는 개시된 실시예로부터 발생할 수 있는 잠재적 이점을 논의할 수 있다. 이들 실시예의 모든 구현이 반드시 잠재적 이점의 일부 또는 전부를 나타내는 것은 아니다. 특정 구현에 대해 장점이 실현되는지 여부는 많은 요인에 따라 달라지며, 그 중 일부는 본 개시의 범위를 벗어난다. 사실, 청구항의 범위 내에 속하는 구현이 개시된 장점의 일부 또는 전부를 나타내지 않을 수 있는 많은 이유가 있다. 예를 들어, 특정 구현은 개시된 실시예 중 하나와 관련하여 하나 이상의 개시된 이점을 무효화하거나 감소시키는 개시의 범위 밖의 다른 회로를 포함할 수 있다. 또한, 특정 구현(예: 구현 기술 또는 도구)의 최적이 아닌 설계 실행은 공개된 이점을 무효화하거나 감소시킬 수도 있다. 숙련된 구현을 가정하더라도 이점의 실현은 여전히 구현이 배포되는 환경 상황과 같은 다른 요인에 따라 달라질 수 있다. 예를 들어, 특정 구현에 제공된 입력은 본 개시에서 다루어진 하나 이상의 문제가 특정 경우에 발생하는 것을 방지할 수 있으며, 그 결과 해법의 이점이 실현되지 않을 수 있다. 본 개시 내용 외부의 가능한 요인의 존재를 감안할 때, 여기에 기술된 임의의 잠재적 이점은 침해를 입증하기 위해 충족되어야 하는 청구 제한으로 해석되지 않아야 한다는 것이 명백히 의도된다. 오히려, 이러한 잠재적 이점의 식별은 본 개시의 이점을 갖는 설계자가 이용할 수 있는 개선의 유형(들)을 예시하기 위한 것이다. 이러한 이점이 허용적으로 기술되는 것은(예: 특정 이점이 "발생할 수 있음"을 언급함) 그러한 이점이 실제로 실현될 수 있는지 여부에 대한 의심을 전달하기 위한 것이 아니라 그러한 이점의 실현이 종종 추가 요인에 의존한다는 기술적 현실을 인식하기 위한 것이다.
달리 언급하지 않는 한, 실시예는 비제한적이다. 즉, 개시된 실시예는 특정 특징에 대해 단지 하나의 예가 설명된 경우에도 본 개시에 기초하여 작성된 청구항의 범위를 제한하도록 의도되지 않는다. 개시된 실시예는 제한적이기보다는 예시적인 것으로 의도되며, 개시 내용에 반대되는 어떠한 진술도 없다. 따라서 본 출원은 개시된 실시예를 포함하는 청구범위뿐만 아니라 본 개시의 이점을 갖는 당업자에게 명백할 그러한 대안, 수정 및 등가물을 허용하도록 의도된다.
예를 들어, 본 출원의 특징은 임의의 적절한 방식으로 조합될 수 있다. 따라서, 본 출원(또는 우선권을 주장하는 출원)을 진행하는 동안 이러한 특징의 조합에 대한 새로운 청구가 공식화될 수 있다. 특히, 첨부된 청구범위와 관련하여 종속항의 특징은 적절한 경우 다른 독립항에 의존하는 청구항을 포함하여 다른 종속항의 특징과 결합될 수 있다. 유사하게, 각각의 독립항으로부터의 특징은 적절한 경우 결합될 수 있다.
따라서, 첨부된 종속항은 각각이 하나의 다른 청구항에 의존하도록 작성될 수 있지만, 추가적인 종속항도 고려된다. 본 개시내용과 일치하는, 종속하는 특징들의 임의의 조합이 고려되고 본 출원 또는 다른 출원에서 청구될 수 있다. 요컨대, 조합은 첨부된 청구범위에 구체적으로 열거된 조합으로 제한되지 않는다.
적절한 경우, 하나의 형식 또는 법적 유형(예를 들어, 장치)으로 작성된 청구항이 다른 형식 또는 법적 유형(예를 들어, 방법)의 대응하는 청구를 지원하도록 의도된다는 것도 고려된다.
본 공개는 법적 문서이기 때문에 다양한 용어와 문구는 행정 및 사법 해석의 대상이 될 수 있다. 본 개시에 기초하여 작성된 청구범위를 해석하는 방법을 결정하는 데 있어서 개시 전체에 걸쳐 제공되는 정의뿐만 아니라 다음 단락이 사용됨을 공고한다.
항목의 단수형에 대한 참조(즉, "a", "an" 또는 "the"가 앞에 오는 명사 또는 명사구)는 문맥에서 달리 명시하지 않는 한 "하나 이상(one or more)"을 의미하는 것으로 의도된다. 따라서, 청구범위에서 "항목(an item)"에 대한 언급은 문맥을 수반하지 않고 항목의 추가 인스턴스를 배제하지 않는다. 항목의 "복수(plurality)"는 두 개 또는 그 초과의 항목 세트를 나타낸다.
여기서 "할 수 있다(may)"라는 단어는 강제적인 의미(즉, 반드시 하여야 한다(must))가 아니라 허용적인 의미(즉, ~할 가능성이 있는 것(having the potential to), 할 수 있는 것(being able to))로 사용된다.
용어 "포함하는(comprising and including)" 및 그 형태는 제한이 없으며 "포함하지만 이에 제한되지 않음(including, but not limited to)"을 의미한다.
옵션 목록과 관련하여 본 명세서에서 "또는(or)"이라는 용어가 사용되는 경우, 일반적으로 문맥상 달리 제공되지 않는 한 포괄적인 의미로 사용되는 것으로 이해될 것이다. 따라서 "x 또는 y"의 인용은 "x 또는 y 또는 둘 다"와 동일하므로 1) y가 아닌 x, 2) x가 아닌 y, 3) x와 y 모두를 포함한다. 반면에 "x 또는 y 중 하나이지만 둘 다는 아님"과 같은 문구는 "또는"이 배타적 의미로 사용되고 있음을 분명히 한다.
"w, x, y, z, 또는 이들의 조합" 또는 "w, x, y, z 중 적어도 하나"의 인용은 단일 요소를 포함하는 모든 가능성을 최대 세트의 총 요소 수를 포함하는 것이 의도된다. 예를 들어, 세트 [w, x, y, z]가 주어지면 이러한 문구는 세트의 모든 단일 요소(예: w는 포함하지만 x, y 또는 z는 아님), 임의의 두 요소(예: w 및 x는 포함하지만 y 또는 z 아님), 임의의 3개 요소(예: w, x 및 y, 그러나 z는 아님) 및 4개 요소 모두를 포함한다. 따라서, "w, x, y 및 z 중 적어도 하나"라는 문구는 세트 [w, x, y, z]의 적어도 하나의 요소를 참조하므로 이 요소 목록에서 가능한 모든 조합을 포함한다. 이 문구는 적어도 하나의 w 인스턴스, 적어도 하나의 x 인스턴스, 적어도 하나의 y 인스턴스 및 적어도 하나의 z 인스턴스가 있어야 한다고 해석해서는 안 된다.
다양한 "라벨"은 본 명세서에서 명사 또는 명사구 앞에 올 수 있다. 문맥에서 달리 제공하지 않는 한 기능에 사용되는 다른 라벨(예: "제 1 회로", "제 2 회로", "특정 회로", "주어진 회로" 등)은 기능의 다른 예를 나타낸다. 또한, 기능에 적용될 때 "제 1", "제 2" 및 "제 3" 라벨은 달리 명시되지 않는 한 어떤 유형의 순서(예: 공간, 시간, 논리적 등)를 의미하지 않습니다.
"~에 기초한(based on)"이라는 문구는 결정에 영향을 미치는 하나 이상의 요인을 설명하는 데 사용된다. 이 용어는 추가 요소가 결정에 영향을 미칠 수 있는 가능성을 배제하지 않습니다. 즉, 결정은 특정 요소에만 기반하거나 특정 요소 및 기타 불특정 요소를 기반으로 할 수 있다. "B를 기반으로 A 결정(determine A based on B)"이라는 문구를 고려하시오. 이 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 미치는 요소임을 지정한다. 이 문구는 A의 결정이 C와 같은 다른 요소에 기반할 수도 있음을 배제하지 않는다. 이 문구는 또한 A가 B에만 기초하여 결정되는 실시예를 포함한다. 본 명세서에서 사용되는 바와 같이, "~에 기초한"이라는 문구는 "적어도 부분적으로 기초하는(based at least in part on)"이라는 문구와 동의어이다.
"~에 응답하여(in response to)" 및 "~에 반응하여(responsive to)"라는 문구는 효과를 유발하는 하나 이상의 요인을 설명한다. 이 문구는 추가 요인이 지정된 요인과 공동으로 또는 지정된 요인과 독립적으로 영향을 미치거나 영향을 미칠 가능성을 배제하지 않는다. 즉, 효과는 이러한 요인에만 반응할 수도 있고 특정 요인 및 기타 불특정 요인에 반응할 수도 있다. "B에 대한 응답으로 A를 수행하다"라는 문구를 고려하시오. 이 문구는 B가 A의 공연을 유발하거나 A에 대한 특정 결과를 유발하는 요인임을 지정한다. 이 문구는 A를 수행하는 것이 C와 같은 다른 요인에 대한 반응일 수도 있음을 배제하지 않는다. 이 문구는 또한 A를 수행하는 것이 B와 C에 대해 공동으로 응답할 수 있음을 배제하지 않는다. 이 문구는 또한 A가 B에 대한 응답으로 단독으로 수행되는 실시예를 커버하도록 의도된다. 본 명세서에서 사용된 바와 같이, 문구 "~에 반응하여"는 "~에 적어도 부분적으로 반응하여"라는 문구와 동의어이다. 유사하게, "~에 응답하여"라는 문구는 "~에 적어도 부분적으로 응답하여"라는 문구와 동의어이다.
본 개시내용 내에서, 상이한 개체("유닛", "회로", 기타 구성요소 등으로 다양하게 지칭될 수 있음)는 하나 이상의 태스크 또는 동작을 수행하도록 "구성된" 것으로 설명되거나 청구될 수 있다. [하나 이상의 작업을 수행]하도록 구성된 [개체]라는 공식은 여기에서 구조(즉, 물리적인 것)를 나타내는 데 사용된다. 보다 구체적으로, 이 공식은 이 구조가 작동 중에 하나 이상의 태스크를 수행하도록 배열되었음을 나타내는 데 사용된다. 구조는 현재 작동되고 있지 않더라도 어떤 작업을 수행하도록 "구성"되었다고 말할 수 있다. 따라서 어떤 태스크를 수행하도록 "구성된" 것으로 설명되거나 언급된 개체는 디바이스, 회로, 프로세서 유닛이 있는 시스템 및 태스크를 구현하기 위해 실행 가능한 프로그램 명령을 저장하는 메모리 등과 같은 물리적인 것을 지칭한다. 이 문구는 무형의 것을 언급하기 위해 여기에서 사용되지 않는다.
일부 경우에, 다양한 유닛/회로/컴포넌트는 일련의 태스크 또는 동작을 수행하는 것으로 여기에서 설명될 수 있다. 이러한 개체는 구체적으로 언급되지 않더라도 해당 태스크/작업을 수행하도록 "구성"되는 것으로 이해된다.
"~하도록 구성된다"이라는 용어는 "~하도록 구성 가능하다"를 의미하는 것이 아니다. 예를 들어 프로그래밍되지 않은 FPGA는 특정 기능을 수행하도록 "구성"된 것으로 간주되지 않는다. 그러나, 이 프로그래밍되지 않은 FPGA는 해당 기능을 수행하도록 "구성 가능"할 수 있다. 적절한 프로그래밍 후에 FPGA는 특정 기능을 수행하도록 "구성"되었다고 말할 수 있다.
본 개시 내용에 기초한 미국 특허 출원의 목적을 위해, 구조가 하나 이상의 태스크를 수행하도록 "구성"된다는 청구항을 인용하는 것은 명시적으로 해당 청구항 요소에 대한 35 U.S.C.§112(f)를 적용하지 않는 것이 의도된다. 출원인이 본 공개를 기반으로 미국 특허 출원을 진행하는 동안 섹션 112(f)를 적용하고자 하는 경우, "수단" [기능 수행] 구성을 사용하여 청구 요소를 인용할 것이다.
상이한 "회로"가 본 명세서에서 설명될 수 있다. 이러한 회로 또는 "회로망"은 조합 논리, 클럭 저장 디바이스(예: 플립-플롭, 레지스터, 래치 등), 유한 상태 기계, 메모리(예: 랜덤 액세스 메모리, 임베디드 동적 랜덤 액세스 메모리), 프로그램 가능 로직 어레이 등과 같은 다양한 유형의 회로 요소를 포함하는 하드웨어를 구성한다. 회로는 맞춤 설계되거나 표준 라이브러리에서 가져올 수 있다. 다양한 구현에서, 회로는 적절하게 디지털 구성요소, 아날로그 구성요소 또는 이 둘의 조합을 포함할 수 있다. 특정 유형의 회로는 일반적으로 "유닛"(예: 디코드 유닛, 산술 논리 유닛(ALU), 기능 유닛, 메모리 관리 유닛(MMU) 등)으로 지칭될 수 있다. 이러한 유닛은 또한 회로 또는 회로망을 나타낸다.
따라서 개시된 회로/유닛/컴포넌트 및 도면에 도시되고 본 명세서에 설명된 다른 요소는 이전 단락에서 설명된 것과 같은 하드웨어 요소를 포함한다. 많은 경우에, 특정 회로 내 하드웨어 요소의 내부 배열은 해당 회로의 기능을 설명하여 지정할 수 있다. 예를 들어, 특정 "디코드 유닛(decode unit)"은 "명령어의 연산 코드(opcode)를 처리하고 그 명령을 복수의 기능 유닛 중 하나 이상으로 라우팅하는" 기능을 수행하는 것으로 설명될 수 있으며, 이는 디코드 유닛이 이 기능을 수행하도록 "구성"되는 것을 의미한다. 이 기능 사양은 컴퓨터 분야의 숙련자에게 회로의 가능한 구조 세트를 암시하기에 충분하다.
다양한 실시예에서, 이전 단락에서 논의된 바와 같이, 회로, 유닛 및 기타 요소는 이들이 구현하도록 구성된 기능 또는 동작에 의해 정의될 수 있다. 서로에 대한 배열 및 이러한 회로/유닛/구성요소 및 이들이 상호 작용하는 방식은 궁극적으로 집적 회로에서 제조되거나 마이크로 아키텍처 정의의 물리적 구현을 형성하기 위해 FPGA로 프로그래밍되는 하드웨어의 마이크로 아키텍처 정의를 형성한다. 따라서, 마이크로아키텍처 정의는 마이크로아키텍처 정의에 의해 설명된 더 넓은 구조에 모두 속하는 많은 물리적 구현이 유도될 수 있는 구조로서 당업자에 의해 인식된다. 즉, 본 개시에 따라 제공된 마이크로아키텍처 정의를 제시하는 숙련된 기술자는 과도한 실험 없이 통상의 기술을 적용하여 Verilog 또는 VHDL과 같은 하드웨어 기술 언어(HDL)로 회로/유닛/구성요소의 기술을 코딩함으로써 구조를 구현할 수 있다. HDL 설명은 종종 기능적으로 보일 수 있는 방식으로 표현된다. 그러나 이 분야의 당업자에게 이 HDL 설명은 회로, 디바이스 또는 구성요소의 구조를 다음 수준의 구현 세부 사항으로 변환하는 데 사용되는 방식이다. 이러한 HDL 설명은 동작 코드(일반적으로 합성할 수 없음), 레지스터 전송 언어(RTL) 코드(동작 코드와 달리 일반적으로 합성 가능함) 또는 구조 코드(예: 논리 게이트 및 이들의 연결성를 지정하는 넷리스트)의 형태를 취할 수 있다. HDL 설명은 이후 주어진 집적 회로 제조 기술을 위해 설계된 셀의 라이브러리에 대해 합성될 수 있으며 타이밍, 전력 및 기타 이유로 수정되어 최종 설계 데이터베이스가 생성되어 파운드리로 전송되어 마스크를 생성할 수 있어, 궁극적으로 집적 회로를 생산한다. 일부 하드웨어 회로 또는 그 일부는 회로도 편집기에서 맞춤 설계되어 합성 회로와 함께 집적 회로 설계에 캡처될 수도 있다. 집적 회로는 트랜지스터 및 기타 회로 요소(예를 들어, 커패시터, 저항기, 인덕터 등과 같은 수동 요소)를 포함할 수 있으며 트랜지스터와 회로 요소 사이를 상호 연결한다. 일부 실시예는 하드웨어 회로를 구현하기 위해 함께 결합된 다수의 집적 회로를 구현할 수 있고 및/또는 개별 요소가 일부 실시예에서 사용될 수 있다. 대안적으로, HDL 설계는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 프로그래머블 로직 어레이로 합성될 수 있고 FPGA에서 구현될 수 있다. 회로 그룹의 설계와 이러한 회로의 후속 하위 수준 구현 사이의 이러한 분리는 일반적으로 회로 또는 논리 설계자가 이 프로세스는 회로 구현 프로세스의 다른 단계에서 수행되므로 회로는 수행하도록 구성된다는 설명 이상으로 하위 수준 구현에 대한 특정 구조 세트를 지정하지 않는 시나리오를 초래한다.
회로의 동일한 사양을 구현하기 위해 회로 요소의 많은 상이한 저수준 조합이 사용될 수 있다는 사실은 그 회로에 대한 많은 수의 등가 구조를 초래한다. 언급한 바와 같이 이러한 저수준 회로 구현은 제조 기술의 변화, 집적 회로를 제조하기 위해 선택한 파운드리, 특정 프로젝트를 위해 제공된 셀 라이브러리 등에 따라 달라질 수 있다. 이러한 다양한 구현을 생성하는 도구 또는 방법론은 임의적일 수 있다.
더욱이, 회로의 특정 기능 사양의 단일 구현이 주어진 실시예에 대해 많은 수의 디바이스(예를 들어, 수백만 개의 트랜지스터)를 포함하는 것이 일반적이다. 따라서, 이 정보의 엄청난 양은 단일 실시예를 구현하는 데 사용되는 저수준 구조의 전체 설명을 제공하는 것을 비실용적으로 만듭니다. 이러한 이유로, 본 발명은 산업계에서 일반적으로 사용되는 기능적 속기를 사용하여 회로의 구조를 기술한다.
Claims (20)
- 컴퓨터 시스템 상의 음악 생성기에 의해, 복수의 디지털 음악 단편들로부터 출력 음악 콘텐츠를 생성하는 단계로서, 상기 출력 음악 콘텐츠는 복수의 디지털 음악 단편들로부터 생성된 서로 다른 출력 음악 콘텐츠의 어레이를 포함하고, 상기 음악 생성기는 일 세트의 해석 규칙에 따라 하나 이상의 음악 생성 파라미터를 순차적으로 해석함으로써 오디오 형식의 서로 다른 출력 음악 콘텐츠의 어레이를 생성하는, 상기 출력 음악 콘텐츠를 생성하는 단계;
상기 음악 생성기에 의해, 생성된 출력 음악 콘텐츠로부터 결정된 강화 입력을 수신하는 단계;
알고리즘을 사용하여, 상기 강화 입력에 기초하여 음악 생성기를 위한 음악 생성 파라미터를 조정하는 단계로서, 상기 음악 생성 파라미터는 이전에 생성된 음악 생성 파라미터들 또는 사용자-생성 음악 생성 파라미터들 중 적어도 하나를 포함하는, 상기 음악 생성 파라미터를 조정하는 단계; 및
상기 조정된 음악 생성 파라미터에 기초하여 복수의 디지털 음악 단편들로부터 새로운 출력 음악 콘텐츠를 생성하는 단계;를 포함하는, 방법. - 제 1 항에 있어서,
음악 소스의 예측을 결정하기 위한 하나 이상의 트레이닝된 분류기의 일 세트를 사용하여, 컴퓨터 시스템상의 분류기에 의해, 출력 음악 콘텐츠를 분류하는 단계를 더 포함하는, 방법. - 제 2 항에 있어서,
상기 강화 입력은 상기 분류기에 의해 결정된 예측에 기초하여 결정되는, 방법. - 제 2 항에 있어서,
상기 예측을 결정하는 단계는 상기 출력 음악 콘텐츠가 상기 음악 생성기에 의해 생성될 확률의 결정을 포함하고, 상기 강화 입력은 상기 확률에 대응하는, 방법. - 제 2 항에 있어서,
출력 음악 콘텐츠와 관련된 하나 이상의 아티스트의 예측을 결정하기 위한 하나 이상의 트레이닝된 분류기의 추가의 일 세트를 사용하여, 분류기에 의해, 출력 음악 콘텐츠를 분류하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 강화 입력은 상기 알고리즘에 대한 이진 입력을 포함하고, 상기 이진 입력은 출력 음악 콘텐츠가 청취 임계값을 만족하는지 여부의 결정인, 방법. - 제 6 항에 있어서,
출력 음악 콘텐츠에 대한 사람의 입력으로서 상기 이진 입력을 수신하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 음악 생성기의 음악 생성 파라미터는 트레이닝된 기계 학습 알고리즘에 의해 구현되는, 방법. - 제 1 항에 있어서,
상기 음악 생성기에 대한 상기 음악 생성 파라미터를 조정하는 단계는, 상기 음악 생성기가 더 인간과 유사한 출력 음악 콘텐츠를 생성하도록 상기 음악 생성 파라미터를 조정하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 음악 생성 파라미터는 음악 단편들의 선택 및 처리를 제어하는 파라미터인, 방법. - 컴퓨팅 디바이스에 의해 실행 가능한 명령들이 저장되는, 비일시적 컴퓨터 판독 가능 매체로서,
음악 생성기에 의해, 복수의 디지털 음악 단편들로부터 출력 음악 콘텐츠를 생성하는 동작으로서, 상기 출력 음악 콘텐츠는 복수의 디지털 음악 단편들로부터 생성된 서로 다른 출력 음악 콘텐츠의 어레이를 포함하고, 상기 음악 생성기는 일 세트의 해석 규칙에 따라 하나 이상의 음악 생성 파라미터를 순차적으로 해석하여 오디오 형식의 상이한 출력 음악 콘텐츠의 어레이를 생성하는, 상기 출력 음악 콘텐츠를 생성하는 동작;
상기 음악 생성기에 의해, 생성된 출력 음악 콘텐츠로부터 결정된 강화 입력을 수신하는 동작;
알고리즘을 사용하여, 상기 강화 입력에 기초하여 음악 생성기를 위한 음악 생성 파라미터를 조정하는 동작으로서, 상기 음악 생성 파라미터는 이전에 생성된 음악 생성 파라미터들 또는 사용자-생성 음악 생성 파라미터들 중 적어도 하나를 포함하는, 상기 음악 생성 파라미터를 조정하는 동작; 및
상기 조정된 음악 생성 파라미터에 기초하여 복수의 디지털 음악 단편들로부터 지정된 길이의 새로운 출력 음악 콘텐츠를 생성하는 동작;을 포함하는 동작들을 실행하도록, 컴퓨팅 디바이스에 의해 실행 가능한 명령들이 저장되는, 비일시적 컴퓨터 판독 가능 매체. - 제 11 항에 있어서,
음악 생성기 또는 인간 작곡가에 의해 출력 음악 콘텐츠가 생성되었는지 여부에 대한 예측을 결정하기 위한 하나 이상의 트레이닝된 분류기의 일 세트를 사용하여, 출력 음악 콘텐츠를, 분류기에 의해, 분류하는 동작을 더 포함하는, 비일시적 컴퓨터 판독 가능 매체. - 제 11 항에 있어서,
음악 생성기에 대한 음악 생성 파라미터를 조정하는 동작은, 상기 음악 생성기가 인간과 유사한 구성으로 출력 음악 콘텐츠를 생성하도록 음악 생성 파라미터를 조정하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 매체. - 제 11 항에 있어서,
상기 음악 생성 파라미터는 음악 단편들의 선택 및 처리를 제어하는 파라미터들이고, 음악 단편들의 처리는 출력 음악 콘텐츠에 다양한 음악 제어를 적용하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 매체. - 제 14 항에 있어서,
상기 음악 제어는, 오디오 속성들: 게인(gain), 하이 패스 컷오프(high pass cutoff), 로우 패스 컷오프(low pass cutoff), 리버브 전송 레벨(reverb send level), 리버브 길이(reverb length), 지연 레벨(delay level), 지연 시간(delay time), 베이스(bass), 비트(beats), 패드(pads), 상판(tops), 멜로디(melodies), 반주 멜로디(backing melodies), 코드(chords), 및 효과(effects) 중 하나 이상의 오디오 속성을 제어하는, 비일시적 컴퓨터 판독 가능 매체. - 제 11 항에 있어서,
상기 음악 생성기에 대한 음악 생성 파라미터를 조정하는 동작은 상기 알고리즘에 이진 입력을 제공하는 것을 포함하고, 상기 이진 입력은 출력 음악 콘텐츠가 청취 임계값을 만족하는지 여부에 대한 예측인, 비일시적 컴퓨터 판독 가능 매체. - 하나 이상의 프로세서로서, 적어도 하나의 프로세서는 적어도 하나의 알고리즘을 구현하는 음악 생성기와 연관되는, 하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 명령이 저장된 하나 이상의 메모리로서:
상기 음악 생성기에 의해, 복수의 디지털 음악 단편들로부터 지정된 길이의 출력 음악 콘텐츠를 생성하는 동작으로서, 상기 출력 음악 콘텐츠는 복수의 디지털 음악 단편들로부터 생성된 서로 다른 출력 음악 콘텐츠의 어레이를 포함하고, 상기 음악 생성기는 일 세트의 해석 규칙에 따라 하나 이상의 음악 생성 파라미터를 순차적으로 해석함으로써 오디오 형식의 서로 상이한 출력 음악 콘텐츠의 어레이를 생성하는, 상기 출력 음악 콘텐츠를 생성하는 동작;
상기 음악 생성기에 의해, 생성된 출력 음악 콘텐츠로부터 결정된 강화 입력을 수신하는 동작;
알고리즘을 사용하여, 상기 강화 입력에 기초하여 음악 생성기에 대한 음악 생성 파라미터를 조정하는 동작으로서, 상기 음악 생성 파라미터는 이전에 생성된 음악 생성 파라미터들 또는 사용자-생성 음악 생성 파라미터들 중 적어도 하나를 포함하는, 상기 음악 생성 파라미터를 조정하는 동작; 및
상기 조정된 음악 생성 파라미터에 기초하여 복수의 디지털 음악 단편들로부터 지정된 길이의 새로운 출력 음악 콘텐츠를 생성하는 동작;을 실행하도록, 상기 하나 이상의 프로세서에 의해 실행 가능한 프로그램 명령이 저장된 하나 이상의 메모리;를 포함하는, 장치. - 제 17 항에 있어서,
적어도 하나의 프로세서는 분류기를 포함하고, 음악 콘텐츠가 인간 작곡가에 의해 생성되는지 또는 음악 생성기에 의해 생성되는지 여부를 결정하도록 상기 분류기에 의해 추가의 프로그램 명령들이 실행 가능한, 장치. - 제 18 항에 있어서,
상기 음악 생성기는, 상기 출력 음악 콘텐츠가 상기 분류기에 의해 분류될 수 있는 것보다 더 빠른 속도로, 출력 음악 콘텐츠를 생성하는, 장치. - 제 17 항에 있어서,
상기 강화 입력은 상기 알고리즘에 대한 이진 입력을 포함하고, 상기 이진 입력은 출력 음악 콘텐츠가 인간에 의해 결정된 청취 임계값을 만족하는지 여부의 결정인, 장치.
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063068431P | 2020-08-21 | 2020-08-21 | |
US202063068426P | 2020-08-21 | 2020-08-21 | |
US202063068433P | 2020-08-21 | 2020-08-21 | |
US202063068421P | 2020-08-21 | 2020-08-21 | |
US202063068411P | 2020-08-21 | 2020-08-21 | |
US202063068436P | 2020-08-21 | 2020-08-21 | |
US202063068415P | 2020-08-21 | 2020-08-21 | |
US63/068,411 | 2020-08-21 | ||
US63/068,433 | 2020-08-21 | ||
US63/068,415 | 2020-08-21 | ||
US63/068,436 | 2020-08-21 | ||
US63/068,421 | 2020-08-21 | ||
US63/068,431 | 2020-08-21 | ||
US63/068,426 | 2020-08-21 | ||
PCT/US2021/046658 WO2022040410A1 (en) | 2020-08-21 | 2021-08-19 | Comparison training for music generator |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230052298A true KR20230052298A (ko) | 2023-04-19 |
Family
ID=77739139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237009613A KR20230052298A (ko) | 2020-08-21 | 2021-08-19 | 음악 생성기에 대한 비교 트레이닝 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20220059062A1 (ko) |
EP (1) | EP4200719A1 (ko) |
JP (1) | JP7547621B2 (ko) |
KR (1) | KR20230052298A (ko) |
CN (1) | CN115885276A (ko) |
WO (1) | WO2022040410A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT201800008080A1 (it) * | 2018-08-13 | 2020-02-13 | Viscount Int Spa | Sistema per la generazione di suono sintetizzato in strumenti musicali. |
US11551652B1 (en) * | 2019-11-27 | 2023-01-10 | Amazon Technologies, Inc. | Hands-on artificial intelligence education service |
JP7440651B2 (ja) * | 2020-02-11 | 2024-02-28 | エーアイエムアイ インコーポレイテッド | 音楽コンテンツの生成 |
WO2022040410A1 (en) * | 2020-08-21 | 2022-02-24 | Aimi Inc. | Comparison training for music generator |
US11183160B1 (en) * | 2021-02-16 | 2021-11-23 | Wonder Inventions, Llc | Musical composition file generation and management system |
WO2024081836A1 (en) * | 2022-10-14 | 2024-04-18 | Aimi Inc. | Dynamic control of generative music composition |
WO2024178038A1 (en) * | 2023-02-24 | 2024-08-29 | Aimi Inc. | Machine learning model trained based on music and decisions generated by expert system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6051770A (en) * | 1998-02-19 | 2000-04-18 | Postmusic, Llc | Method and apparatus for composing original musical works |
JP4626376B2 (ja) * | 2005-04-25 | 2011-02-09 | ソニー株式会社 | 音楽コンテンツの再生装置および音楽コンテンツ再生方法 |
WO2007072467A1 (en) * | 2005-12-19 | 2007-06-28 | Thurdis Developments Limited | An interactive multimedia apparatus |
US7541534B2 (en) * | 2006-10-23 | 2009-06-02 | Adobe Systems Incorporated | Methods and apparatus for rendering audio data |
WO2014028891A1 (en) | 2012-08-17 | 2014-02-20 | Be Labs, Llc | Music generator |
US9263018B2 (en) * | 2013-07-13 | 2016-02-16 | Apple Inc. | System and method for modifying musical data |
JP6696140B2 (ja) * | 2015-09-30 | 2020-05-20 | ヤマハ株式会社 | 音響処理装置 |
US9880805B1 (en) * | 2016-12-22 | 2018-01-30 | Brian Howard Guralnick | Workout music playback machine |
US20200135237A1 (en) * | 2017-06-29 | 2020-04-30 | Virtual Voices Pty Ltd | Systems, Methods and Applications For Modulating Audible Performances |
JP6729517B2 (ja) * | 2017-08-02 | 2020-07-22 | ヤマハ株式会社 | 学習モデル生成方法、学習モデル生成装置、プログラムおよび自動演奏ロボット |
KR102459109B1 (ko) * | 2018-05-24 | 2022-10-27 | 에이미 인코퍼레이티드 | 음악 생성기 |
JP7440651B2 (ja) * | 2020-02-11 | 2024-02-28 | エーアイエムアイ インコーポレイテッド | 音楽コンテンツの生成 |
EP4115629A1 (en) * | 2020-03-06 | 2023-01-11 | algoriddim GmbH | Method, device and software for applying an audio effect to an audio signal separated from a mixed audio signal |
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 |
WO2022040410A1 (en) * | 2020-08-21 | 2022-02-24 | Aimi Inc. | Comparison training for music generator |
-
2021
- 2021-08-19 WO PCT/US2021/046658 patent/WO2022040410A1/en unknown
- 2021-08-19 CN CN202180050778.1A patent/CN115885276A/zh active Pending
- 2021-08-19 JP JP2023512470A patent/JP7547621B2/ja active Active
- 2021-08-19 EP EP21769850.5A patent/EP4200719A1/en active Pending
- 2021-08-19 KR KR1020237009613A patent/KR20230052298A/ko unknown
- 2021-08-20 US US17/408,076 patent/US20220059062A1/en active Pending
- 2021-08-20 US US17/408,105 patent/US20220059063A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220059063A1 (en) | 2022-02-24 |
EP4200719A1 (en) | 2023-06-28 |
JP2023538411A (ja) | 2023-09-07 |
JP7547621B2 (ja) | 2024-09-09 |
US20220059062A1 (en) | 2022-02-24 |
WO2022040410A1 (en) | 2022-02-24 |
CN115885276A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102459109B1 (ko) | 음악 생성기 | |
KR20230052298A (ko) | 음악 생성기에 대한 비교 트레이닝 | |
JP7440651B2 (ja) | 音楽コンテンツの生成 | |
US11625217B2 (en) | Music generator | |
US9263018B2 (en) | System and method for modifying musical data | |
US9251773B2 (en) | System and method for determining an accent pattern for a musical performance | |
KR20240021753A (ko) | 청각적으로 올바른 형태를 가지는 음악 작품을 자동으로 생성하는 시스템 및 방법 |