CN115066681A - 音乐内容生成 - Google Patents

音乐内容生成 Download PDF

Info

Publication number
CN115066681A
CN115066681A CN202180013939.XA CN202180013939A CN115066681A CN 115066681 A CN115066681 A CN 115066681A CN 202180013939 A CN202180013939 A CN 202180013939A CN 115066681 A CN115066681 A CN 115066681A
Authority
CN
China
Prior art keywords
music
audio
content
module
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180013939.XA
Other languages
English (en)
Inventor
爱德华·巴拉萨尼亚
帕特里克·E·哈金斯
托比·吉福
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amy Ltd
Original Assignee
Amy Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amy Ltd filed Critical Amy Ltd
Publication of CN115066681A publication Critical patent/CN115066681A/zh
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

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

Abstract

公开了与基于音频文件的图像表示自动生成新音乐内容有关的技术。还公开了与实施用于实时音频生成的音频技术有关的技术。公开了与实施用于修改音乐内容的用户创建的控件有关的附加技术。还公开了与跟踪对创作的音乐内容的贡献有关的更多技术。

Description

音乐内容生成
技术领域
本公开涉及音频工程,并且更具体地涉及生成音乐内容。
背景技术
流媒体音乐服务通常经由互联网向用户提供歌曲。用户可以通过网络浏览器或应用程序订阅这些服务并流式传输音乐。此类服务的示例包括PANDORA、SPOTIFY、GROOVESHARK等。用户常常可以选择音乐流派或特定艺术家进行流式传输。用户通常可以对歌曲进行评级(例如,使用星级评级或喜欢/不喜欢的系统),并且一些音乐服务可以根据之前的评级来定制哪些歌曲被流式传输给用户。运行流媒体服务的成本(可能包括为每首流媒体歌曲支付版税)通常由用户订阅成本和/或歌曲之间播放的广告支付。
歌曲选择可能会受到许可协议和为特定流派创作的歌曲数量的限制。用户可能会厌倦听到特定流派的相同歌曲。此外,这些服务可能无法根据用户的口味、环境、行为等调整音乐。
附图说明
图1是示出示例性音乐生成器的示意图。
图2是示出根据一些实施例的用于基于来自多个不同源的输入生成输出音乐内容的系统的示例性概览的框图。
图3是示出根据一些实施例的被配置为基于对音频文件的图像表示的分析来输出音乐内容的示例性音乐生成器系统的框图。
图4描绘了音频文件的图像表示的示例。
图5A和图5B分别描绘了用于旋律图像特征表示和鼓节拍图像特征表示的灰度图像的示例。
图6是示出根据一些实施例的被配置为生成单个图像表示的示例性系统的框图。
图7描绘了多个音频文件的单个图像表示的示例。
图8是示出根据一些实施例的被配置为在音乐内容生成中实施用户创建的控件的示例性系统的框图。
图9描绘了根据一些实施例的用于基于用户创建的控制元件来训练音乐生成器模块的方法的流程图。
图10是示出根据一些实施例的示例性教师/学生框架系统的框图。
图11是示出根据一些实施例的被配置为在音乐内容生成中实施音频技术的示例性系统的框图。
图12描绘了音频信号图的示例。
图13描绘了音频信号图的示例。
图14描绘了根据一些实施例的用于使用音频技术音乐生成器模块来实施音乐内容的实时修改的示例性系统。
图15描绘了根据一些实施例的系统中的用于音频参数自动化的示例性API模块的框图。
图16描绘了根据一些实施例的示例性存储区的框图。
图17描绘了根据一些实施例的用于存储新音乐内容的示例性系统的框图。
图18是示出根据一些实施例的示例回放数据的示意图。
图19是示出根据一些实施例的示例创作系统的框图。
图20A-图20B是示出根据一些实施例的图形用户界面的框图。
图21是示出根据一些实施例的包括分析和创作模块的示例音乐生成器系统的框图。
图22是示出根据一些实施例的音乐内容的示例增进章节的示意图。
图23是示出根据一些实施例的用于布置音乐内容的章节的示例技术的示意图。
图24是根据一些实施例的用于使用分类帐(ledger)的流程图方法。
图25是根据一些实施例的用于使用图像表示来组合音频文件的流程图方法。
图26是根据一些实施例的用于实施用户创建的控制元件的流程图方法。
图27是根据一些实施例的用于通过修改音频参数来生成音乐内容的流程图方法。
尽管本文公开的实施例容许各种修改和替代形式,但具体实施例在附图中以示例的方式示出并在本文中详细描述。然而,应当理解,附图及对其的详细描述并不旨在将权利要求的范围限制为所公开的特定形式。相反,本申请旨在涵盖落入如所附权利要求所限定的本申请的公开的精神和范围内的所有修改、等同物和替代物。
本公开包括对“一个实施例”、“特定实施例”、“一些实施例”、“各种实施例”或“实施例”的引用。短语“在一个实施例中”、“在特定实施例中”、“在一些实施例中”、“在各种实施例中”或“在实施例中”的出现不一定指相同的实施例。特定特征、结构或特性可以以与本公开一致的任何合适方式组合。
在所附权利要求中引用元素被“配置为”执行一项或多项任务明确不旨在针对该权利要求元素援引35U.S.C.§112(f)。因此,本申请中所提交的权利要求均不旨在被解释为具有“装置加功能”要素。如果申请人希望在专利申请期间援引第112(f)条,它将使用“用于[执行功能]的装置”结构来记载权利要求要素。
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的附加因素的可能性。也就是说,确定可以仅基于指定的因素或基于指定的因素以及其他未指定的因素。考虑“基于B确定A”这一短语。该短语指定B是用于确定A或影响A的确定的因素。该短语不排除A的确定也可能基于特定其他因素,例如C。该短语也旨在涵盖仅基于B确定A的实施例。如本文所用,短语“基于”与短语“至少部分基于”同义。
如本文所用,短语“响应于”描述了触发效果的一个或多个因素。该短语并不排除可能影响或以其他方式触发效果的附加因素的可能性。也就是说,效果可能仅响应于那些因素,或者可能响应于指定的因素以及其他未指定的因素。
如本文所用,术语“第一”、“第二”等用作它们前面的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非另有说明。如本文所用,术语“或”用作包含性的或而不用作排他性的或。例如,短语“x、y或z中的至少一个”是指x、y和z中的任何一个,以及它们的任何组合(例如,x和y,但不是z)。在特定情况下,使用术语“或”的上下文可能表明它是以排他性意义使用的,例如,其中“选择x、y或z中的一个”表示在该示例中选择了x、y和z中的仅一个。
在以下描述中,阐述了许多特定细节以提供对所公开的实施例的透彻理解。然而,本领域普通技术人员应当认识到,可以在没有这些具体细节的情况下实践所公开的实施例的各方面。在一些实例中,未详细示出公知的结构、计算机程序指令和技术以避免混淆所公开的实施例。
具体实施方式
于2013年8月16日提交的第13/969,372号美国专利申请(现为第8,812,144号美国专利)讨论了用于基于一个或多个音乐属性生成音乐内容的技术,该专利的全部内容以引用方式并入本文。就基于上述申请372的定义与本公开的其余部分之间的感知冲突作出的任何解释而言,本公开旨在进行支配。音乐属性可以由用户输入或者可以基于诸如环境噪声、照明等的环境信息来确定。上述公开372讨论了用于选择存储的循环和/或曲目或生成新循环/曲目以及使选择的循环/曲目分层以生成输出音乐内容的技术。
于2019年5月23日提交的美国专利申请第16/420,456号(现为美国专利第10,679,596号)讨论了用于生成音乐内容的技术,该专利的全部内容以引用方式并入本文。就基于上述申请456的定义与本公开的其余部分之间的感知冲突作出的任何解释而言,本公开旨在进行支配。可以基于用户的输入或使用计算机实施的方法来生成音乐。上述公开456讨论了各种音乐生成器实施例。
本公开总体上涉及用于通过基于各种参数选择和组合音轨来生成定制音乐内容的系统。在各种实施例中,机器学习算法(包括诸如深度学习神经网络之类的神经网络)被配置为针对特定用户生成和定制音乐内容。在一些实施例中,用户可以创建他们自己的控制元件,并且可以训练计算系统以根据用户定义的控制元件的用户预期功能来生成输出音乐内容。在一些实施例中,可以记录由本文描述的技术生成的音乐内容的回放数据,以便记录和跟踪不同权利持有者(例如,版权持有者)对各种音乐内容的使用。下面讨论的各种技术可以为不同的上下文提供更相关的定制音乐,促进根据特定声音生成音乐,允许用户更好地控制音乐的生成方式,生成实现一个或多个特定目标的音乐,伴随其他内容一起实时生成音乐等。
如本文所用,术语“音频文件”是指针对音乐内容的声音信息。例如,声音信息可以包括将音乐内容描述为诸如wav、aiff或FLAC格式的原始音频的数据。音乐内容的属性可以包括在声音信息中。属性可以包括例如可量化的音乐属性,例如乐器分类、音高转录、节拍计时、拍子、文件长度和多个频率分段中的音频幅度。在一些实施例中,音频文件包括特定时间间隔内的声音信息。在各种实施例中,音频文件包括循环。如本文所用,术语“循环”是指单个乐器在特定时间间隔内的声音信息。参考音频文件讨论的各种技术也可以使用包括单个乐器的循环来执行。音频文件或循环可以以重复方式播放(例如,一个30秒的音频文件可以连续播放四次以生成2分钟的音乐内容),但音频文件也可以播放一次,例如不重复。
在一些实施例中,音频文件的图像表示被生成并用于生成音乐内容。可以基于音频文件中的数据和音频文件的MIDI表示来生成音频文件的图像表示。例如,图像表示可以是从音频文件的MIDI表示确定的音高和节奏的二维(2D)图像表示。可以将规则(例如,创作规则)应用于图像表示以选择要用于生成新音乐内容的音频文件。在各种实施例中,在图像表示上实施机器学习/神经网络以选择音频文件来进行组合以生成新音乐内容。在一些实施例中,图像表示是音频文件的压缩(例如,较低分辨率)版本。压缩图像表示可以提高在图像表示中搜索所选音乐内容的速度。
在一些实施例中,音乐生成器可以基于音频文件的各种参数表示来生成新音乐内容。例如,音频文件通常具有可以表示为信号(例如,信号幅度、频率或其组合)相对于时间的图表的音频信号。然而,基于时间的表示取决于音乐内容的拍子。在各种实施例中,还使用信号相对于节拍的图表(例如,信号图)来表示音频文件。信号图独立于拍子,允许对音乐内容的音频参数进行拍子不变的修改。
在一些实施例中,音乐生成器允许用户创建和标记用户定义的控件。例如,用户可以创建一个控件,然后音乐生成器可以训练该控件以根据用户的偏好影响音乐。在各种实施例中,用户定义的控件是高级控件,例如调整情绪、强度或流派的控件。此类控件通常是基于听众个人偏好的主观测量。在一些实施例中,用户为用户定义的参数创建并标记控件。然后音乐生成器可以播放各种音乐文件并允许用户根据用户定义的参数修改音乐。音乐生成器可以基于用户对用户定义参数的调整来学习和存储用户的偏好。因此,在稍后的回放期间,用户可以调整用户定义参数的用户定义控件,并且音乐生成器根据用户的偏好调整音乐回放。在一些实施例中,音乐生成器还可以根据用户定义参数设置的用户偏好来选择音乐内容。
在一些实施例中,由音乐生成器生成的音乐内容包括具有各种利益相关者实体(例如,权利持有者或版权持有者)的音乐。在对生成的音乐内容进行连续回放的商业应用中,基于单个音轨(文件)回放的报酬可能很困难。因此,在各种实施例中,实施了用于记录连续音乐内容的回放数据的技术。所记录的回放数据可以包括与在与每个单独音轨的利益相关者匹配的连续音乐内容内的单独音轨的回放时间有关的信息。另外,可以实施技术以防止篡改回放数据信息。例如,回放数据信息可以存储在可公开访问的不可变区块链分类账中。
本公开最初参考图1和图2描述示例音乐生成器模块和具有多种应用程序的整体系统组织。参考图3至图7讨论了用于从图像表示生成音乐内容的技术。参考图8和图10讨论了用于实施用户创建的控制元件的技术。参考图11至图17讨论了用于生成实施音频技术的技术。参考图18至图19讨论了用于在区块链或其他加密分类帐中记录关于生成的音乐或元素的信息的技术。图20A至图20B示出了示例性应用程序界面。
一般而言,所公开的音乐生成器包括音频文件、元数据(例如,描述音频文件的信息)以及用于基于元数据组合音频文件的语法。生成器可以创建音乐体验使用规则来识别基于元数据和音乐体验的目标特性的音频文件。该生成器可以被配置为通过添加或修改规则、音频文件和/或元数据来扩展其可以创建的体验集。可以手动执行调整(例如,艺术家添加新的元数据),或者音乐生成器可以按照其监视给定环境内的音乐体验和期望的目标/特性来增加规则/音频文件/元数据,。例如,可以实施听众定义的控件用于获取用户对音乐目标或特性的反馈。
示例性音乐生成器的概述
图1是示出根据一些实施例的示例性音乐生成器的示意图。在所示实施例中,音乐生成器模块160从多个不同源接收各种信息并生成输出音乐内容140。
在所示实施例中,模块160访问存储的(一个或多个)音频文件和针对存储的(一个或多个)音频文件的对应属性110,并且组合音频文件以生成输出音乐内容140。在一些实施例中,音乐生成器模块160基于它们的属性选择音频文件并且基于目标音乐属性130组合音频文件。在一些实施例中,可以基于环境信息150结合目标音乐属性130来选择音频文件。在一些实施例中,环境信息150被间接用于确定目标音乐属性130。在一些实施例中,目标音乐属性130由用户明确地指定,例如,通过指定期望的能量水平、情绪、多个参数等。例如,可以实施本文描述的听众定义的控件以指定使用的听众偏好作为目标音乐属性。目标音乐属性130的示例包括能量、复杂性和多样性,但是也可以指定更具体的属性(例如,对应于所存储曲目的属性)。一般而言,当指定较高级别的目标音乐属性时,系统可以在生成输出音乐内容之前确定较低级别的特定音乐属性。
复杂性可以指作品中包含的音频文件、循环和/或乐器的数量。能量可能与其他属性相关或可能与其他属性不相关。例如,改变调式或拍子可能影响能量。然而,对于给定的拍子和调式,可以通过调整乐器类型(例如,通过添加高帽(high hats)或白噪声)、复杂性、音量等来改变能量。多样性可以指生成的音乐随时间的变化量。多样性可以针对一组静态的其他音乐属性来生成(例如,通过为给定的拍子和调式选择不同的曲目),或者可以通过随时间改变音乐属性来生成(例如,通过在期望更大的多样性时更频繁地改变拍子和调式)。在一些实施例中,可以认为目标音乐属性存在于多维空间中,并且音乐生成器模块160可以缓慢地移动通过该空间,例如,如果需要的话则基于环境变化和/或用户输入进行路线校正。
在一些实施例中,与音频文件一起存储的属性包含关于一个或多个音频文件的信息,包括:拍子、音量、能量、种类、频谱、包络、调制、周期性、上升和衰减时间、噪声、艺术家、乐器、主题等。请注意,在一些实施例中,音频文件被分区,使得一组一个或多个音频文件特定于特定音频文件类型(例如,一种乐器或一种乐器类型)。
在所示实施例中,模块160访问存储的(一个或多个)规则集120。在一些实施例中,存储的(一个或多个)规则集120指定要覆盖多少音频文件以使得它们同时播放的规则(这可能对应于输出音乐的复杂性),在音频文件或乐句之间过渡时使用哪个大调式/小调式进程,要一起使用哪些乐器(例如,彼此具有亲和力的乐器)等,以实现目标音乐属性。换言之,音乐生成器模块160使用存储的(一个或多个)规则集120来实现由目标音乐属性(和/或目标环境信息)定义的一个或多个声明性目标。在一些实施例中,音乐生成器模块160包括一个或多个伪随机数生成器,其被配置为引入伪随机性以避免重复输出音乐。
在一些实施例中,环境信息150包括以下一项或多项:照明信息、环境噪声、用户信息(面部表情、身体姿势、活动水平、运动、皮肤温度、特定活动的表现、服装类型等)、温度信息、区域中的购买活动、一天中的时间、一周中的一天、一年中的时间、在场人数、天气状况等。在一些实施例中,音乐生成器模块160不接收/处理环境信息。在一些实施例中,环境信息150由基于环境信息确定目标音乐属性130的另一个模块接收。目标音乐属性130也可以基于其他类型的内容(例如视频数据)来导出。在一些实施例中,环境信息用于调整一个或多个存储的规则集120,例如,以实现一个或多个环境目标。类似地,音乐生成器可以使用环境信息来调整一个或多个音频文件的存储属性,例如,以指示与那些音频文件特别相关的目标音乐属性或目标观众特性。
如本文所使用的,术语“模块”是指被配置为执行指定操作的电路或存储指示其他电路(例如,处理器)执行指定操作的信息(例如,程序指令)的物理非暂时性计算机可读介质。模块可以以多种方式实施,包括作为硬接线电路或作为其中存储有程序指令的存储器,这些程序指令可由一个或多个处理器执行以执行操作。硬件电路可以包括例如定制的超大规模集成(VLSI)电路或门阵列、现成的半导体,例如逻辑芯片、晶体管或其他分立组件。模块还可以实施在可编程硬件设备中,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件或类似物。模块还可以是存储可执行以执行指定操作的程序指令的任何合适形式的非暂时性计算机可读介质。
如本文所用,短语“音乐内容”既指音乐本身(音乐的可听表示),也指可用于播放音乐的信息。因此,作为文件记录在存储介质(例如但不限于光盘、闪存驱动器等)上的歌曲是音乐内容的示例;通过输出该记录文件或其他电子表示(例如,通过扬声器)产生的声音也是音乐内容的示例。
术语“音乐”包括其公知的含义,包括乐器产生的声音以及人声。因此,音乐包括例如乐器表演或录音、无伴奏合唱表演或录音,以及包括乐器和声音的表演或录音。本领域的普通技术人员将认识到“音乐”不包括所有的声音记录。不包含诸如节奏或韵律之类的音乐属性(例如,演讲、新闻广播和有声读物)的作品不是音乐。
一段音乐“内容”可以以任何合适的方式与另一段音乐内容区分开来。例如,对应于第一首歌曲的数字文件可以代表第一段音乐内容,而对应于第二首歌曲的数字文件可以代表第二段音乐内容。短语“音乐内容”还可用于区分给定音乐作品中的特定音程,使得同一首歌曲的不同部分可以被视为不同的音乐内容片段。类似地,给定音乐作品内的不同曲目(例如,钢琴曲目、吉他曲目)也可以对应于不同的音乐内容片段。在可能无穷无尽的生成音乐流媒体的上下文中,短语“音乐内容”可用于指代流媒体的特定部分(例如,几个小节或几分钟)。
本公开的实施例产生的音乐内容可以是“新音乐内容”——以前从未产生过的音乐元素的组合。一个相关的(但更广泛的)概念——“原创音乐内容”——将在下面进一步描述。为了便于解释该术语,描述了与音乐内容生成的实例相关的“控制实体”的概念。与短语“原创音乐内容”不同,短语“新音乐内容”不涉及控制实体的概念。因此,新音乐内容是指以前从未由任何实体或计算机系统生成的音乐内容。
从概念上讲,本公开将一些“实体”称为控制计算机生成的音乐内容的特定实例。此类实体拥有可能对应于计算机生成内容的任何合法权利(例如版权)(在任何此类权利可能实际存在的范围内)。在一个实施例中,创建(例如,编码各种软件例程)计算机实施的音乐生成器或操作(例如,提供输入到)计算机实施的音乐生成的特定实例的个体将是控制实体。在其他实施例中,计算机实施的音乐生成器可以由法律实体(例如,公司或其他商业组织)创建,例如以软件产品、计算机系统或计算设备的形式。在一些实例中,可以将这种计算机实施的音乐生成器部署到许多客户端。在各种实例中,根据与该音乐生成器的分发相关联的许可的条款,控制实体可以是创建者、分发者或客户端。如果不存在这样的明确法律协议,则计算机实施的音乐生成器的控制实体是促进(例如,提供输入并由此操作)音乐内容的计算机生成的特定实例的实体。
在本公开的含义内,控制实体对“原创音乐内容”的计算机生成是指1)控制实体或任何其他人以前从未生成过的音乐元素的组合,以及2)之前已生成但最初由控制实体生成的音乐元素的组合。内容类型1)在本文中称为“新颖音乐内容”,其与“新音乐内容”的定义类似,不同之处在于“新颖音乐内容”的定义是指“控制实体”的概念,而“新音乐内容”的定义并不是。另一方面,内容类型2)在本文中称为“专有音乐内容”。请注意,上下文中的术语“专有”并不是指内容中任何隐含的合法权利(尽管可能存在此类权利),而仅用于表示音乐内容最初是由控制实体生成的。因此,控制实体“重新生成”由控制实体先前且最初生成的音乐内容构成本公开中的“原始音乐内容的生成”。针对特定控制实体的“非原创音乐内容”为并非是该控制实体的“原创音乐内容”的音乐内容。
一些音乐内容片段可以包括来自一个或多个其他音乐内容片段的音乐成分。以这种方式创建音乐内容被称为“采样”音乐内容,并且在特定音乐作品中很常见,特别是在特定音乐流派中。这样的音乐内容在本文中被称为“具有采样成分的音乐内容”、“衍生音乐内容”或使用其他类似术语。相比之下,不包括采样成分的音乐内容在本文中被称为“没有采样成分的音乐内容”、“非衍生音乐内容”或使用其他类似术语。
在应用这些术语时,应注意,如果任何特定音乐内容被减少到足够的粒度级别,则可以论证该音乐内容是衍生的(实际上意味着所有音乐内容都是衍生的)。在本公开中,术语“衍生物”和“非衍生物”没有在这个意义上使用。关于音乐内容的计算机生成,如果计算机生成从控制实体以外的实体(例如,计算机程序选择流行艺术家作品的音频文件的特定部分以包含在正在生成的一段音乐内容中)从预先存在的音乐内容中选择成分的部分,则此类计算机生成被认为是衍生的(并产生衍生的音乐内容)。另一方面,如果计算机生成不利用此类预先存在的内容的此类成分,则音乐内容的计算机生成被认为是非衍生的(并产生非衍生音乐内容)。请注意,一些“原创音乐内容”的片段可能是衍生音乐内容,而一些片段可能是非衍生音乐内容。
请注意,术语“衍生”在本公开中意在具有比美国版权法中使用的术语“衍生作品”更广泛的含义。例如,根据美国版权法,衍生音乐内容可能是也可能不是衍生作品。本公开中的术语“衍生物”并非旨在传达负面含义;它仅用于表示特定音乐内容片段是否“借用”了另一部作品的部分内容。
此外,短语“新音乐内容”、“新颖音乐内容”和“原创音乐内容”不旨在包含与预先存在的音乐元素组合仅细微不同的音乐内容。例如,仅仅改变预先存在的音乐作品的几个音符不会产生新的、新颖的或原创的音乐内容,如本公开中使用的那些短语。类似地,仅仅改变预先存在的音乐作品的调式或拍子或调整频率的相对强度(例如,使用均衡器界面)不会产生新的、新颖的或原创的音乐内容。此外,短语、新的、新颖的和原创音乐内容并不旨在涵盖那些介于原创和非原创内容之间的音乐内容;相反,这些条款旨在涵盖毫无疑问且可证明是原创的音乐内容,包括有资格获得控制实体版权保护的音乐内容(在本文中称为“受保护的”音乐内容)。此外,如本文所用,术语“可用”音乐内容是指不侵犯除控制实体之外的任何实体的版权的音乐内容。新的和/或原创的音乐内容常常是受保护的和可用的。这在防止复制音乐内容和/或为音乐内容支付版税方面可能是有利的。
尽管本文讨论的各种实施例使用基于规则的引擎,但是各种其他类型的计算机实施的算法可以用于本文讨论的任何计算机学习和/或音乐生成技术。然而,基于规则的方法在音乐环境中可能特别有效。
可以在示例性音乐系统中使用的应用程序、存储元件和数据的概述
音乐生成器模块可以与多个不同的应用程序、模块、存储元件等交互以生成音乐内容。例如,终端用户可以为不同类型的计算设备(例如,移动设备、台式计算机、DJ设备等)安装多种类型的应用程序之一。类似地,可以向企业用户提供另一种类型的应用程序。在生成音乐内容的同时与应用程序交互可以允许音乐生成器接收外部信息,该外部信息可以用于确定目标音乐属性和/或更新用于生成音乐内容的一个或多个规则集。除了与一个或多个应用程序交互之外,音乐生成器模块还可以与其他模块交互以接收规则集、更新规则集等。最后,音乐生成器模块可以访问一个或多个规则集、音频文件和/或存储在一个或多个存储元件中的生成的音乐内容。此外,音乐生成器模块可以将上面列出的任何项目存储在一个或多个存储元件中,该存储元件可以是本地的或经由网络访问的(例如,基于云的)。
图2是示出根据一些实施例的用于基于来自多个不同源的输入生成输出音乐内容的系统的示例性概览的框图。在所示实施例中,系统200包括规则模块210、用户应用程序220、web应用程序230、企业应用程序240、艺术家应用程序250、艺术家规则生成器模块260、所生成音乐270的存储和外部输入280。
在所示实施例中,用户应用程序220、web应用程序230和企业应用程序240接收外部输入280。在一些实施例中,外部输入280包括:环境输入、目标音乐属性、用户输入、传感器输入等。在一些实施例中,用户应用程序220安装在用户的移动设备上并包括允许用户与规则模块210交互/通信的图形用户界面(GUI)。在一些实施例中,web应用程序230没有安装在用户设备上,但是被配置为在用户设备的浏览器内运行并且可以通过网站来访问。在一些实施例中,企业应用程序240是由更大规模的实体用来与音乐生成器交互的应用程序。在一些实施例中,应用程序240与用户应用程序220和/或web应用程序230结合使用。在一些实施例中,应用程序240与一个或多个外部硬件设备和/或传感器通信以收集关于周围环境的信息。
在所示实施例中,规则模块210与用户应用程序220、web应用程序230和企业应用程序240通信以产生输出音乐内容。在一些实施例中,音乐生成器160被包括在规则模块210中。请注意,规则模块210可以包括在应用程序220、230和240之一中,或者可以安装在服务器上并经由网络访问。在一些实施例中,应用程序220、230和240从规则模块210接收生成的输出音乐内容并且使该内容被播放。在一些实施例中,规则模块210请求来自应用程序220、230和240的例如关于目标音乐属性和环境信息的输入,并且可以使用该数据来生成音乐内容。
在所示实施例中,存储的(一个或多个)规则集120由规则模块210访问。在一些实施例中,规则模块210基于与应用程序220、230和240的通信来修改和/或更新存储的规则集120。在一些实施例中,规则模块210访问存储的(一个或多个)规则集120以生成输出音乐内容。在所示实施例中,存储的(一个或多个)规则集120可以包括来自艺术家规则生成器模块260的规则,下面将进一步详细讨论。
在所示实施例中,艺术家应用程序250与艺术家规则生成器模块260(例如,其可以是同一应用程序的一部分或者可以是基于云的)通信。在一些实施例中,艺术家应用程序250允许艺术家为他们的特定声音创建规则集,例如,基于先前的作品。第10,679,596号美国专利进一步讨论了此功能。在一些实施例中,艺术家规则生成器模块260被配置为存储生成的艺术家规则集以供规则模块210使用。用户可以在使用特定艺术家通过他们的特定应用程序生成输出音乐之前从特定艺术家那里购买规则集。针对特定艺术家的规则集可以称为签名包。
在所示实施例中,存储的(一个或多个)音频文件和对应的(一个或多个)属性110在应用规则以选择和组合曲目以生成输出音乐内容时由模块210访问。在所示实施例中,规则模块210将生成的输出音乐内容270存储在存储元件中。
在一些实施例中,在服务器上实施并通过网络访问图2的一个或多个元件,这可以称为基于云的实施。例如,存储的(一个或多个)规则集120、(一个或多个)音频文件/(一个或多个)属性110和生成的音乐270都可以存储在云上并由模块210访问。在另一个示例中,模块210和/或模块260也可以在云中实施。在一些实施例中,生成的音乐270被存储在云中并以数字方式进行水印。例如,这可以允许检测复制生成的音乐以及生成大量定制音乐内容。
在一些实施例中,所公开的模块中的一个或多个被配置为生成除了音乐内容之外的其他类型的内容。例如,系统可以被配置为基于目标音乐属性、确定的环境条件、当前使用的规则集等来生成输出视觉内容。作为另一个示例,系统可以基于正在生成的音乐的当前属性来搜索数据库或互联网,并且显示随着音乐的变化而动态变化并与音乐的属性相匹配的图像拼贴画。
示例性机器学习方法
如本文所述,图1所示的音乐生成器模块160可以实施多种人工智能(AI)技术(例如,机器学习技术)来生成输出音乐内容140。在各种实施例中,实施的人工智能技术包括深度神经网络(DNN)与更传统的机器学习技术和基于知识的系统的组合。这种组合可以将这些技术的各自优势和劣势与音乐作品和个性化系统中固有的挑战相结合。音乐内容具有多个层次的结构。例如,一首歌有章节、乐句、旋律、音符和质地。DNN可以有效地分析和生成非常高级别和非常低级别细节的音乐内容。例如,DNN可以擅长将声音的质地分类为属于低级别的单簧管或电吉他,或者检测高级别的诗句和合唱。中间级别的音乐内容细节,例如旋律的构建、管弦乐编曲等可能会比较困难。DNN通常擅长在单个模型中收集广泛的风格,因此,DNN可以实施为具有大量表达范围的生成工具。
在一些实施例中,音乐生成器模块160通过将人类编写的音频文件(例如循环)作为音乐生成器模块使用的音乐内容的基本单元来利用专家知识。例如,专家知识的社会背景可以通过节奏、旋律和质地的选择被嵌入,以记录多级别结构中的启发式。与DNN和基于结构层面的传统机器学习的分离不同,专家知识可以应用于任何可以增加音乐性的领域,而不会对音乐生成器模块160的可训练性施加过强的限制。
在一些实施例中,音乐生成器模块160使用DNN来找出音频层如何组合的模式,通过将声音相互层叠来垂直组合,并且通过将音频文件或循环组合成序列来水平组合。例如,音乐生成器模块160可以实施LSTM(长期-短期记忆)递归神经网络,该LSTM递归神经网络在多曲目音频录音中使用的循环的MFCC(梅尔频率倒谱系数)音频特征上进行训练。在一些实施例中,网络被训练以基于对先前节拍的音频特征的了解来预测和选择即将到来的节拍的循环的音频特征。例如,可以训练网络以基于对最后128个节拍的音频特征的了解来预测接下来8个节拍的循环的音频特征。因此,网络被训练为利用低维特征表示来预测即将到来的节拍。
在特定实施例中,音乐生成器模块160使用已知的机器学习算法将多曲目音频的序列组装成具有强度和复杂性的动态特征的音乐结构。例如,音乐生成器模块160可以实施分层隐马尔可夫模型,它可以像状态机一样进行状态转换,其概率由多级分层结构确定。例如,在增进章节之后可能更有可能发生特定种类的下降,但如果增进结束时没有鼓,则不太可能发生。在各种实施例中,概率可以被透明地训练,这与正在学习的内容更不透明的DNN训练形成对比。
马尔可夫模型可以处理更大的时间结构,因此可能不容易通过呈现示例曲目来训练,因为示例可能太长。反馈控制元件(例如用户界面上的拇指向上/向下)可用于随时对音乐提供反馈。在特定实施例中,反馈控制元件被实现为(一个或多个)UI控制元件830之一,如图8所示。然后可以使用音乐结构和反馈之间的相关性来更新用于作曲的结构模型,例如转换表或马尔可夫模型。该反馈也可以从心率、销售或系统能够确定明确分类的任何其他度量的测量结果中直接收集。如上所述,专家知识启发式也被设计为尽可能概率性,并以与马尔可夫模型相同的方式进行训练。
在特定实施例中,训练可以由作曲家或DJ执行。此类训练可以与听众训练分开。例如,听众(例如典型用户)进行的训练可能仅限于分别基于正面和负面模型反馈来识别正确或不正确的分类。对于作曲家和DJ而言,训练可能包括数百个时间步长,并包括有关使用的层和音量控制的详细信息,以提供更明确的细节来了解推动音乐内容变化的因素。例如,作曲家和DJ执行的训练可以包括与上述DNN的全局训练类似的序列预测训练。
在各种实施例中,通过用多曲目音频和界面交互来训练DNN,以预测DJ或作曲家接下来会做什么。在一些实施例中,这些交互可以被记录并用于开发更透明的新启发式。在一些实施例中,DNN接收许多先前的音乐度量作为输入,并且利用如上所述的低维特征表示,以及描述对DJ或作曲家已应用的曲目的修改的附加特征。例如,DNN可以接收音乐的最后32小节作为输入,并且利用低维特征表示以及附加特征来描述DJ或作曲家对曲目应用的修改。这些修改可以包括调整特定曲目的增益、应用的滤波器、延迟等。例如,DJ可能会在表演期间使用相同的鼓循环重复五分钟,但可能会随着时间的推移逐渐增加曲目上的增益和延迟。因此,除了循环选择之外,还可以训练DNN来预测这种增益和延迟变化。当没有为特定乐器播放循环时(例如,没有播放鼓循环),对于该乐器而言特征集可能是全零,这可以允许DNN学习预测全零可能是一个成功的策略,这可能导致选择性分层。
在一些实例中,DJ或作曲家使用混音器和诸如TRAKTOR(本地乐器GmbH)之类的设备录制现场表演。这些录音通常以高分辨率捕获(例如,4曲目录音或MIDI)。在一些实施例中,系统将录音分解成其组成循环,从而产生关于作品中循环的组合以及每个单独循环的声音质量的信息。用该信息训练DNN(或其他机器学习)为DNN提供了将作品(例如,排序、分层、循环的定时等)和循环的声音质量相关联的能力,以告知音乐生成器模块160如何创建与艺术家表演相似的音乐体验,而不使用艺术家在表演中使用的实际循环。
使用音频文件的图像表示的示例性音乐生成器
广受欢迎的音乐常具有被广泛观察到的节奏、质地和音高的组合。当为作品中的每个乐器逐个音符创建音乐时(如可以由音乐生成器完成的),可以基于这些组合实施规则以创建连贯的音乐。一般来说,规则越严格,创造变化的空间就越小,因此更有可能创建现有音乐的副本。
当通过组合已经演奏并记录为音频的乐句来创建音乐时,可能需要考虑每个乐句中的多个不可更改的音符组合来创建组合。然而,当从具有数千个录音的库中提取时,搜索每个可能的组合可能在计算上很昂贵。此外,可能需要逐个音符比较以检查谐波不和谐的组合,尤其是在节拍上。通过组合多个文件创建的新节奏也可以针对组合乐句的节奏构成规则进行检查。
从音频文件中提取必要的特征来进行组合可能并不总是可能的。即使在可能的情况下,从音频文件中提取所需的特征也可能在计算上很昂贵。在各种实施例中,符号音频表示用于音乐创作以减少计算开销。符号音频表示可能依赖于音乐作曲家对乐器质地的记忆以及存储的节奏和音高信息。一种常见的符号音乐表示格式是MIDI。MIDI包含精确的时序、音高和演奏控制信息。在一些实施例中,可以通过钢琴卷纸表示进一步简化和压缩MIDI,其中音符在离散时间/音高图上显示为条形,通常具有8个八度音程。
在一些实施例中,音乐生成器被配置为通过生成音频文件的图像表示并基于对图像表示的分析选择音乐的组合来生成输出音乐内容。图像表示可以是从钢琴卷纸表示进一步压缩的表示。例如,图像表示可以是基于音频文件的MIDI表示生成的低分辨率表示。在各种实施例中,将创作规则应用于图像表示以从音频文件中选择音乐内容以组合并生成输出音乐内容。例如,可以使用基于规则的方法来应用创作规则。在一些实施例中,实施机器学习算法或模型(例如深度学习神经网络)以选择和组合音频文件,以用于生成输出音乐内容。
图3是图示根据一些实施例的被配置为基于对音频文件的图像表示的分析来输出音乐内容的示例性音乐生成器系统的框图。在所示实施例中,系统300包括图像表示生成模块310、音乐选择模块320和音乐生成器模块160。
在所示实施例中,图像表示生成模块310被配置为生成音频文件的一个或多个图像表示。在特定实施例中,图像表示生成模块310接收音频文件数据312和MIDI表示数据314。MIDI表示数据314包括音频文件数据312中的(一个或多个)指定音频文件的(一个或多个)MIDI表示。例如,对于音频文件数据312中的指定音频文件,在MIDI表示数据314中可以具有对应的MIDI表示。在音频文件数据312中具有多个音频文件的一些实施例中,音频文件数据312中的每个音频文件在MIDI表示数据314中具有对应的MIDI表示。在所示实施例中,将MIDI表示数据314与音频文件数据312一起提供给图像表示生成模块310。然而,在一些设想的实施例中,图像表示生成模块310可以本身从音频文件数据312生成MIDI表示数据314。
如图3所示,图像表示生成模块310从音频文件数据312和MIDI表示数据314生成(一个或多个)图像表示316。MIDI表示数据314可以包括与音频文件相关联的音乐中音符的音高、时间(或节奏)和速度(或音符强度)数据,而音频文件数据312包括用于回放音乐本身的数据。在特定实施例中,图像表示生成模块310基于来自MIDI表示数据314的音高、时间和速度数据为音频文件生成图像表示。图像表示例如可以是音频文件的二维(2D)图像表示。在音频文件的2D图像表示中,x轴表示时间(节奏),y轴表示音高(类似于钢琴卷纸表示),其中每个xy坐标处的像素值表示速度。
音频文件的2D图像表示可以具有多种图像大小,尽管通常选择图像大小以对应于音乐结构。例如,在一个设想的实施例中,2D图像表示是32(x轴)×24图像(y轴)。32像素宽的图像表示允许每个像素在时间维度上表示四分之一节拍。因此,8节拍的音乐可以用32像素宽的图像表示来表示。虽然该表示可能没有足够的细节来捕捉音频文件中音乐的表现细节,但表现细节保留在音频文件本身中,其与系统300的图像表示结合以用于生成输出音乐内容。然而,四分之一节拍时间分辨率确实允许对常见的音高和节奏组合规则进行大量覆盖。
图4描绘了音频文件的图像表示316的示例。图像表示316是32像素宽(时间)和24像素高(音高)。每个像素(正方形)402具有表示该时间的速度和音频文件中的音高的值。在各种实施例中,图像表示316可以是音频文件的灰度图像表示,其中像素值由变化的灰度强度表示。基于像素值的灰色变化可能很小并且对许多人来说是难以察觉的。图5A和图5B分别描绘了用于旋律图像特征表示和鼓节拍图像特征表示的灰度图像的示例。然而,也可以考虑其他表示(例如,颜色或数字)。在这些表示中,每个像素可以具有对应于不同音乐属性的多个不同值。
在特定实施例中,图像表示316是音频文件的8位表示。因此,每个像素可以有256个可能的值。MIDI表示通常有128个可能的速度值。在各种实施例中,速度值的细节可能不如选择音频文件进行组合的任务重要。因此,在此类实施例中,音高轴(y轴)可以被带状覆盖成8个八度音程范围内的两组八度音程,每组有4个八度音程。例如,8个八度音程可以定义如下:
八度音程0:行0-11,值0-63;
八度音程1:行12-23,值0-63;
八度音程2:行0-11,值64-127;
八度音程3:行12-23,值64-127;
八度音程4:行0-11,值128-191;
八度音程5:行12-23,值128-191
八度音程6:行0-11,值192-255;和
八度音程7:行12-23,值192-255。
通过这些定义的八度音程范围,像素的行和值决定了音符的八度音程和速度。例如,行1中的像素值10表示速度为10的八度音程0中的音符,而行1中的像素值74表示速度为10的八度音程2中的音符。作为另一个示例,行13中的像素值79表示速度为15的八度音程3中的音符,而行13中的像素值207表示速度为15的八度音程7中的音符。因此,使用上述八度音程的定义范围,前12行(行0-11)表示第一组4个八度音程(八度音程0、2、4和6),像素值确定前4个八度音程中的哪一个被表示(像素值也确定了音符的速度)。类似地,第二个12行(行12-23)表示第二组4个八度音程(八度音程1、3、5和7),像素值确定第二个4个八度音程中的哪一个被表示(像素值也确定了音符的速度)。
如上所述,通过将音高轴分等级(banding)以覆盖8个八度音程范围,每个八度音程的速度可以由64个值而不是MIDI表示的128个值来定义。因此,2D图像表示(例如,图像表示316)可以比相同音频文件的MIDI表示被压缩(例如,具有更低的分辨率)。在一些实施例中,可以允许进一步压缩图像表示,因为64个值可能比系统300选择音乐组合所需的更多。例如,可以通过使奇数像素值表示音符开始和偶数像素值表示音符持续来进一步降低速度分辨率以允许在时间表示中进行压缩。以这种方式降低分辨率允许基于奇数或偶数像素值将快速连续演奏的具有相同速度的两个音符与一个较长的音符区分开来。
如上所述,图像表示的紧凑性减少了表示音乐所需的文件大小(例如,与MIDI表示相比)。因此,实施音频文件的图像表示减少了所需的磁盘存储量。此外,压缩图像表示可以存储在允许快速搜索可能的音乐组合的高速存储器中。例如,8位图像表示可以存储在计算机设备上的图形存储器中,从而允许一起实施大型并行搜索。
在各种实施例中,为多个音频文件生成的图像表示被组合成单个图像表示。例如,数十、数百或数千个音频文件的图像表示可以组合成单个图像表示。单个图像表示可以是可用于并行搜索构成单个图像的多个音频文件的大的、可搜索的图像。例如,可以使用诸如MegaTextures(来自id Software)之类的软件以与视频游戏中的大质地类似的方式搜索单个图像。
图6是示出根据一些实施例的被配置为生成单个图像表示的示例性系统的框图。在所示实施例中,系统600包括单个图像表示生成模块610和质地特征提取模块620。在特定实施例中,单个图像表示生成模块610和质地特征提取模块620位于图像表示生成模块310中,如图3所示。然而,单个图像表示生成模块610或质地特征提取模块620可以位于图像表示生成模块310之外。
如图6所示的实施例所示,生成多个图像表示316A-N。图像表示316A-N可以是N个单独的音频文件的N个单独的图像表示。单个图像表示生成模块610可以将单独的图像表示316A-N组合成单个的组合图像表示316。在一些实施例中,由单个图像表示生成模块610组合的单独的图像表示包括用于不同乐器的单独的图像表示。例如,管弦乐队中的不同乐器可以由单独的图像表示来表示,这些单独的图像表示然后被组合成单个图像表示以用于搜索和选择音乐。
在特定实施例中,将单独的图像表示316A-N组合成单个图像表示316,其中单独的图像表示彼此相邻放置而没有交叠。因此,单个图像表示316是所有单独的图像表示316A-N的完整数据集表示,没有数据丢失(例如,没有来自一个图像表示的任何数据修改用于另一图像表示的数据)。图7描绘了多个音频文件的单个图像表示316的示例。在所示实施例中,单个图像表示316是从单独的图像表示316A、316B、316C和316D生成的组合图像。
在一些实施例中,单个图像表示316附加有质地特征622。在所示实施例中,质地特征622作为单行附加到单个图像表示316。回到图6,质地特征622由质地特征提取模块620确定。质地特征622可以包括,例如,音频文件中音乐的乐器质地。例如,质地特征可以包括来自不同乐器(例如鼓、弦乐器等)的特征。
在特定实施例中,质地特征提取模块620从音频文件数据312中提取质地特征622。质地特征提取模块620可以实施例如基于规则的方法、机器学习算法或模型、神经网络或其他特征提取技术来确定来自音频文件数据312的质地特征。在一些实施例中,质地特征提取模块620可以从(一个或多个)图像表示316(例如,多个图像表示或单个图像表示)中提取质地特征622。例如,质地特征提取模块620可以实施基于图像的分析(例如基于图像的机器学习算法或模型)以从(一个或多个)图像表示316中提取质地特征622。
向单个图像表示316添加质地特征622为单个图像表示提供了在音频文件的MIDI表示或钢琴卷纸表示中通常不可用的附加信息。在一些实施例中,单个图像表示316(图7所示)中具有质地特征622的行可能不需要是人类可读的。例如,质地特征622可能只需要机器可读以在音乐生成系统中实施。在特定实施例中,质地特征622被附加到单个图像表示316以用于单个图像表示的基于图像的分析。例如,质地特征622可以由在音乐选择中使用的基于图像的机器学习算法或模型使用,如下所述。在一些实施例中,可以在选择音乐期间忽略质地特征622,例如在基于规则的选择中,如下所述。
回到图3,在所示实施例中,(一个或多个)图像表示316(例如,多个图像表示或单个图像表示)被提供给音乐选择模块320。音乐选择模块320可以选择音频文件或音频文件的部分以在音乐生成器模块160中进行组合。在特定实施例中,音乐选择模块320应用基于规则的方法来搜索和选择音频文件或音频文件的部分以供音乐生成器模块160组合。如图3所示,音乐选择模块320从存储的(一个或多个)规则集120访问基于规则的方法的规则。例如,音乐选择模块320访问的规则可以包括用于搜索和选择的规则,例如但不限于创作规则和音符组合规则。可以使用计算机设备上可用的图形处理来实施向(一个或多个)图像表示316应用规则。
例如,在各种实施例中,音符组合规则可以表示为向量和矩阵计算。图形处理单元通常被优化以进行矢量和矩阵计算。例如,相隔一个音高的音符通常可能是不和谐的并且经常被避免。可以通过基于规则搜索叠加分层图像(或大图像的片段)中的相邻像素来找到诸如这些的音符。因此,在各种实施例中,所公开的模块可以调用内核以在计算设备的图形处理器上执行全部或部分所公开的操作。
在一些实施例中,如上所述的图像表示中的音高分等级允许使用图形处理来植入音频的高通或低通滤波。去除(例如,过滤掉)低于阈值的像素值可以模拟高通滤波,而去除高于阈值的像素值可以模拟低通滤波。例如,在上述分等级示例中过滤掉(去除)低于64的像素值可能具有与通过在示例中去除八度音程0和1来在B1处应用具有搁板的高通滤波器类似的效果。因此,可以通过对音频文件的图像表示应用规则来有效地模拟对每个音频文件使用滤波器。
在各种实施例中,当将音频文件分层在一起以创建音乐时,可以改变指定音频文件的音高。改变音高可能会打开更大范围的可能成功组合和组合搜索空间。例如,每个音频文件都可以在12个不同的音高转换调式中进行测试。在解析图像时偏移图像表示中的行顺序,并在必要时调整八度音程转换,可以允许通过这些组合进行优化搜索。
在特定实施例中,音乐选择模块320在(一个或多个)图像表示316上实施机器学习算法或模型,以搜索和选择音频文件或音频文件的部分以供音乐生成器模块160组合。机器学习算法/模型可以包括例如深度学习神经网络或基于算法的训练对图像进行分类的其他机器学习算法。在此类实施例中,音乐选择模块320包括一个或多个机器学习模型,这些机器学习模型基于提供所需音乐属性的音频文件的组合和序列进行训练。
在一些实施例中,音乐选择模块320包括在选择输出音乐内容期间不断学习的机器学习模型。例如,机器学习模型可以接收用户输入或反映输出音乐内容的属性的其他输入,这些属性可以用于调整由机器学习模型实施的分类参数。类似于基于规则的方法,机器学习模型可以使用计算机设备上的图形处理单元来实施。
在一些实施例中,音乐选择模块320实施基于规则的方法和机器学习模型的组合。在一个设想的实施例中,机器学习模型被训练以找到音频文件和图像表示的组合,以用于开始搜索音乐内容来进行组合,其中使用基于规则的方法来实施搜索。在一些实施例中,音乐选择模块320测试由音乐生成器模块160选择用于组合的音乐中的和声和节奏规则的连贯性。例如,音乐选择模块320可以在将所选音频文件提供给音乐生成器模块160之前测试所选音频文件322中的和声和节奏,如下所述。
在图3所示的实施例中,如上所述,由音乐选择模块320选择的音乐作为选择的音频文件322被提供给音乐生成器模块160。所选音频文件322可以包括由音乐生成器模块160组合以生成输出音乐内容140的完整或部分音频文件,如本文所述。在一些实施例中,音乐生成器模块160访问存储的(一个或多个)规则集120以检索应用于所选音频文件322的规则以用于生成输出音乐内容140。由音乐生成器模块160检索的规则可能不同于由音乐选择模块320应用的规则。
在一些实施例中,选择的音频文件322包括用于组合选择的音频文件的信息。例如,由音乐选择模块320实施的机器学习模型可以向输出提供指令,该指令描述除了对要组合的音乐的选择之外如何组合音乐内容。这些指令然后可以被提供给音乐生成器模块160并且由音乐生成器模块实施以用于组合选择的音频文件。在一些实施例中,音乐生成器模块160在最终确定输出音乐内容140之前测试和声和节奏规则的连贯性。此类测试可以补充或代替由音乐选择模块320实施的测试。
音乐内容生成的示例性控件
在各种实施例中,如本文所述,音乐生成器系统被配置为通过基于各种参数选择和组合音轨来自动生成输出音乐内容。如本文所述,机器学习模型(或其他AI技术)用于生成音乐内容。在一些实施例中,实施AI技术来为特定用户定制音乐内容。例如,音乐生成器系统可以实施用于个性化音乐生成的各种类型的自适应控件。除了通过AI技术生成内容外,个性化音乐生成允许作曲家或听众控制内容。在一些实施例中,用户创建他们自己的控制元件,音乐生成器系统可以对其进行训练(例如,使用AI技术)以根据用户创建的控制元件的用户预期功能来生成输出音乐内容。例如,用户可以创建控制元件,然后音乐生成器系统训练该控制元件以根据用户的偏好影响音乐。
在各种实施例中,用户创建的控制元件是高级控件,例如调整情绪、强度或流派的控件。此类用户创建的控制元件通常是基于听众个人偏好的主观度量。在一些实施例中,用户标记用户创建的控制元件以定义用户指定的参数。音乐生成器系统可以播放各种音乐内容并允许用户使用控制元件修改音乐内容中的用户指定参数。音乐生成器系统可以学习和存储用户定义的参数改变音乐内容中的音频参数的方式。因此,在稍后的回放期间,用户可以调整用户创建的控制元件,并且音乐生成系统根据用户指定参数的调整级别来调整音乐回放中的音频参数。在一些设想的实施例中,音乐生成器系统还可以根据由用户指定参数设置的用户偏好来选择音乐内容。
图8是示出根据一些实施例的被配置为在音乐内容生成中实施用户创建的控件的示例性系统的框图。在所示实施例中,系统800包括音乐生成器模块160和用户界面(UI)模块820。在各种实施例中,音乐生成器模块160实施本文描述的用于生成输出音乐内容140的技术。例如,音乐生成器模块160可以访问存储的(一个或多个)音频文件810并基于存储的(一个或多个)规则集120生成输出音乐内容140。
在各种实施例中,音乐生成器模块160基于来自在UI模块820中实施的一个或多个UI控制元件830的输入来修改音乐内容。例如,在与UI模块820交互期间,用户可以调整(一个或多个)控制元件830的级别。控制元件的示例包括但不限于滑块、转盘、按钮或旋钮。(一个或多个)控制元件830的级别然后设置(一个或多个)控制元件级别832,将其提供给音乐生成器模块160。音乐生成器模块160然后可以基于(一个或多个)控制元件级别832来修改输出音乐内容140。例如,音乐生成器模块160可以实施AI技术以基于(一个或多个)控制元件级别830修改输出音乐内容140。
在特定实施例中,一个或多个控制元件830是用户定义的控制元件。例如,控制元件可以由作曲家或听众定义。在此类实施例中,用户可以创建并标记UI控制元件,该UI控制元件指定用户想要实施以控制输出音乐内容140的参数(例如,用户创建用于在控制输出音乐内容140中控制用户指定的参数的控制元件)。
在各种实施例中,音乐生成器模块160可以学习或被训练以基于来自用户创建的控制元件的输入以指定的方式影响输出音乐内容140。在一些实施例中,音乐生成器模块160被训练以基于由用户设置的用户创建的控制元件的级别来修改输出音乐内容140中的音频参数。训练音乐生成器模块160可以包括例如确定输出音乐内容140中的音频参数与用户创建的控制元件的级别之间的关系。然后,音乐生成器模块160可以利用输出音乐内容140中的音频参数与用户创建的控制元件的级别之间的关系以基于用户创建的控制元件的输入级别来修改输出音乐内容140。
图9描绘了根据一些实施例的用于基于用户创建的控制元件来训练音乐生成器模块160的方法的流程图。方法900开始于在910中用户创建和标记控制元件。例如,如上所述,用户可以创建并标记UI控制元件,以用于控制由音乐生成器模块160生成的输出音乐内容140中的用户指定参数。在各种实施例中,UI控制元件的标签描述了用户指定的参数。例如,用户可以将控制元件标记为“态度”以指定用户想要控制生成的音乐内容中的态度(由用户定义)。
在创建UI控制元件之后,方法900继续回放会话915。回放会话915可用于训练系统(例如,音乐生成器模块160)如何基于用户创建的UI控制元件的级别来修改音频参数。在回放会话915中,在920中播放音轨。音轨可以是来自存储在设备上或由设备访问的音频文件的音乐的循环或样本。
在930中,用户提供关于他/她对正在播放的音轨中用户指定参数的解释的输入。例如,在特定实施例中,要求用户收听音轨并选择用户认为描述音轨中的音乐的用户指定参数的级别。例如,可以使用用户创建的控制元件来选择用户指定参数的级别。可以在回放会话915中对多个音轨重复该过程,以针对用户指定参数的级别生成多个数据点。
在一些设想的实施例中,可以要求用户一次收听多个音轨并基于用户定义的参数对音轨进行比较评价。例如,在定义“态度”的用户创建控件的示例中,用户可以收听多个音轨并选择哪些音轨具有更多“态度”和/或哪些音轨具有更少“态度”。用户做出的每个选择可以是用户指定参数级别的数据点。
在回放会话915完成之后,在940中评估来自回放会话的音轨中的音频参数的级别。音频参数的示例包括但不限于:音量、音调、低音、高音、混响等。在一些实施例中,在播放音轨时评估音轨中的音频参数的级别(例如,在回放会话915期间)。在一些实施例中,在回放会话915结束之后评估音频参数。
在各种实施例中,从音轨的元数据评估音轨中的音频参数。例如,音频分析算法可用于为音轨(可能是短的、预先录制的音乐文件)生成元数据或符号音乐数据(例如MIDI)。元数据可以包括例如录音中存在的音符音高、每节拍起始、音高与非音高声音的比率、音量和声音的其他可量化属性。
在950中,确定用户指定参数的用户选择级别和音频参数之间的相关性。由于用户指定参数的用户选择级别对应于控制元件的级别,因此用户指定参数的用户选择级别与音频参数之间的相关性可以用于定义一个或多个音频参数的级别与960中控制元件的级别之间的关系。在各种实施例中,使用AI技术(例如,回归模型或机器学习算法)确定用户指定参数的用户选择级别与音频参数之间的相关性以及一个或多个音频参数的级别与控制元件的级别之间的关系。
回到图8,然后可以由音乐生成器模块160实施一个或多个音频参数的级别与控制元件的级别之间的关系,以确定如何基于从用户创建的控制元件830接收的控制元件级别832的输入来调整输出音乐内容140中的音频参数。在特定实施例中,音乐生成器模块160实施机器学习算法以基于从用户创建的控制元件830接收的控制元件级别832的输入生成输出音乐内容140和关系。例如,机器学习算法可以分析音轨的元数据描述如何在整个录音中变化。机器学习算法可以包括例如神经网络、马尔可夫模型或动态贝叶斯网络。
如本文所述,机器学习算法可以被训练以在提供到该点的音乐元数据时预测即将到来的音乐片段的元数据。音乐生成器模块160可以通过在预先录制的音频文件池中搜索具有与预测接下来要出现的元数据最接近匹配的属性的那些文件来实施预测算法。选择最接近的匹配音频文件接下来播放有助于创建具有顺序进展的音乐属性的输出音乐内容,该输出音乐内容类似于训练预测算法的示例录音。
在一些实施例中,使用预测算法对音乐生成器模块160的参数控制可以包括在预测算法本身中。在此类实施例中,一些预定义的参数可以与音乐元数据一起用作算法的输入,并且预测基于该参数而变化。替代地,可以将参数控制应用于预测以对这些预测进行修改。作为一个示例,通过顺序选择预测算法预测接下来会出现的最接近的音乐片段并将文件的音频首尾相接,制成生成作品。在某些时候,听众可以增加控制元件级别(例如每节拍起始的控制元件),并且通过增加预测的“每节拍起始”数据字段来修改预测模型的输出。在选择要附加到作品的下一个音频文件时,在这种场景下更有可能选择具有较高每节拍起始属性的音频文件。
在各种实施例中,诸如音乐生成器模块160之类的利用音乐内容的元数据描述的生成系统可以在每个音乐片段的元数据中使用数百或数千个数据字段。为了提供更多的可变性,可以使用多个并发曲目,每个曲目都以不同的乐器和声音类型为特征。在这些实例中,预测模型可能有成千上万个表示音乐属性的数据字段,每个数据字段对聆听体验都有明显的影响。为了让听众在此类实例中控制音乐,可以使用用于修改预测模型输出的每个数据字段的界面,从而创建数千个控制元件。替代地,可以组合多个数据字段并将其作为单个控制元件公开。随着单个控制元件影响的音乐属性越多,控制元件由于特定音乐属性而变得越抽象,并且这些控件的标签变得主观。以这种方式,可以实施主要控制元件和子参数控制元件(如下所述),以用于对输出音乐内容140的动态和个性化控制。
如本文所述,用户可以指定他们自己的控制元件并训练音乐生成器模块160关于如何基于用户对控制元件的调整来行动。这个过程可以减少偏差和复杂性,并且数据字段可能对听众完全隐藏。例如,在一些实施例中,在用户界面上向听众提供用户创建的控制元件。然后向听众呈现一个简短的音乐剪辑,要求他们设置一个他们认为最能描述所听到的音乐的控制元件的级别。通过重复这个过程,可以创建多个数据点,这些数据点可用于对控制对音乐的期望效果进行回归建模。在一些实施例中,这些数据点可以作为附加输入添加到预测模型中。然后,预测模型可以尝试预测将产生类似于它已被训练的序列的作品序列同时还匹配被设置为特定级别的控制元件的预期行为的音乐属性。替代地,可以使用回归模型形式的控制元件映射器以将预测修改器映射到控制元件,而无需重新训练预测模型。
在一些实施例中,针对给定控制元件的训练可以包括全局训练(例如,基于来自多个用户账户的反馈的训练)和本地训练(例如,基于来自当前用户账户的反馈的训练)。在一些实施例中,可以创建一组控制元件,其特定于由作曲家提供的音乐元素的子集。例如,一个场景可能包括一个艺术家创建一个循环包,并且然后训练音乐生成器模块160使用他们之前使用这些循环创建的表演或作品的示例。这些示例中的模式可以使用回归或神经网络模型进行建模,并用于创建规则用于创建具有相似模式的新音乐。这些规则可以参数化并作为控制元件公开,以供作曲家在听众开始使用音乐生成器模块160之前离线手动修改,或者供听众边听边调整。作曲家感觉与控件的期望效果相反的示例也可以用于负强化。
在一些实施例中,除了利用示例音乐中的模式之外,音乐生成器模块160可以在听众开始收听生成的音乐之前,在它创建的音乐中找到与作曲家输入相对应的模式。作曲家可以通过直接反馈(如下所述)来做到这一点,例如轻敲一个竖起大拇指的控制元件以用于积极强化模式,或者轻敲一个大拇指向下的控制元件以用于负强化。
在各种实施例中,音乐生成器模块160可以允许作曲家创建他们自己的子参数控制元件,如下所述的音乐生成器模块学会的控制元件。例如,“强度”的控制元件可能已经从与每个节拍的音符开始数和演奏乐器的质地质量相关的学习模式中创建为主要控制元件。然后,作曲家可以通过选择与音符开始相关的模式来创建两个子参数控制元件,例如用于质地模式的“节奏强度”控制元件和“质地强度”控制元件。子参数控制元件的示例包括人声控制元件、特定频率范围的强度(例如,低音)、复杂度、拍子等。这些子参数控制元件可以与注入能量之类的更抽象的控制元件(例如,主要控制元件)结合。这些作曲家技能控制元件可以由作曲家以类似于本文描述的用户创建的控件的方式训练用于音乐生成器模块160。
如本文所述,训练音乐生成器模块160基于来自用户创建的控制元件的输入来控制音频参数允许为不同的用户实施单独的控制元件。例如,一个用户可以将增加的态度与增加的低音内容相关联,而另一用户可以将增加的态度与某种类型的人声或某个节拍数范围相关联。音乐生成器模块160可以基于针对特定用户的音乐生成器模块的训练来修改用于不同态度说明的音频参数。在一些实施例中,个性化控件可以与以相同方式为许多用户实施的全局规则或控制元件结合使用。全局和本地反馈或控制的结合可以为所涉及的个体提供具有专门控制的高质量音乐制作。
在各种实施例中,如图8所示,一个或多个UI控制元件830在UI模块820中实施。如上所述,在与UI模块820交互期间,用户可以使用(一个或多个)控制元件830来调整(一个或多个)控制元件级别832,以修改输出音乐内容140。在特定实施例中,一个或多个控制元件830是系统定义的控制元件。例如,控制元件可以被系统800定义为可控参数。在此类实施例中,用户可以调整系统定义的控制元件以根据系统定义的参数修改输出音乐内容140。
在特定实施例中,系统定义的UI控制元件(例如,旋钮或滑块)允许用户控制由音乐生成器模块160自动生成的输出音乐内容140的抽象参数。在各种实施例中,抽象参数充当主要控制元件输入。抽象参数的示例包括但不限于强度、复杂性、情绪、流派和能量水平。在一些实施例中,强度控制元件可以调整合并的低频循环的数量。复杂性控制元件可以指导所覆盖的曲目的数量。诸如情绪控制元件之类的其他控制元件可以在从清醒到快乐的范围内并且影响例如正在播放的音乐的调式以及其他属性。
在各种实施例中,系统定义的UI控制元件(例如,旋钮或滑块)允许用户控制由音乐生成器模块160自动生成的输出音乐内容140的能量水平。在一些实施例中,控制元件的标签(例如,“能量”)可以改变大小、颜色或其他属性以反映调整能量水平的用户输入。在一些实施例中,当用户调整控制元件时,可以输出控制元件的当前水平,直到用户释放控制元件(例如,释放鼠标点击或从触摸屏上移开手指)。
系统定义的能量可以是与多个更具体的音乐属性相关的抽象参数。例如,在各种实施例中,能量可以与拍子有关。例如,能量水平的变化可以与选择的每分钟节拍数(例如,~6节拍每分钟)的拍子变化相关联。在一些实施例中,在一个参数(例如拍子)的给定范围内,音乐生成器模块160可以通过改变其他参数来探索音乐变化。例如,音乐生成器模块160可以创建增进和下降、创建张力、改变同时分层的曲目数量、改变调式、添加或移除人声、添加或移除低音、播放不同的旋律等。
在一些实施例中,一个或多个子参数控制元件被实施为(一个或多个)控制元件830。子参数控制元件可以允许对结合到诸如能量控制元件之类的主要控制元件中的属性进行更具体的控制。例如,能量控制元件可以修改打击声的层的数量和使用的人声量,但是单独的控制元件允许直接控制这些子参数,使得所有控制元件不一定是独立的。这样,用户可以选择他们希望使用的控件特异性水平。在一些实施例中,可以为用户创建的控制元件实施子参数控制元件,如上所述。例如,用户可以创建和标记指定另一个用户指定参数的子参数的控制元件。
在一些实施例中,用户界面模块820允许用户扩展UI控制元件830以显示一个或多个子参数用户控制元件的选项。此外,特定艺术家可以提供用于在高级别控制元件(例如,能量滑块)的用户控件下引导音乐创作的属性信息。例如,艺术家可以提供“艺术家包”,其具有该艺术家的曲目和音乐创作规则。艺术家可以使用艺术家界面来为子参数用户控制元件提供值。例如,DJ可能将节奏和鼓作为向用户公开的控制元件,以允许听众或多或少地结合节奏和鼓。在一些实施例中,如本文所述,艺术家或用户可以生成他们自己的自定义控制元件。
在各种实施例中,人在循环生成系统可用于在人工干预和控制的帮助下生成人工制品,以潜在地为个人目的提高所生成音乐的质量和适合度。对于音乐生成器模块160的一些实施例,听众可以通过在UI模块820中实施的界面控制元件830控制生成过程而成为听众-作曲家。这些控制元件的设计和实施可能会影响个人的听众和作曲家角色之间的平衡。例如,高度详细和技术性的控制元件可能会减少生成算法的影响,并将更多的创造性控制权交给用户,同时需要更多的动手交互和技术技能来管理。
相反,更高级别的控制元件可能会减少所需的工作量和交互时间,同时减少创造性控制。例如,对于期望更多听众类型角色的个人,如本文所述的主要控制元件可能是有利的。例如,主要控制元件可以基于诸如情绪、强度或流派之类的抽象参数。音乐的这些抽象参数可能是经常单独解释的主观度量。例如,在许多情况下,聆听环境会影响听众如何描述音乐。因此,在聚会上听众可能称之为“放松”的音乐对于冥想课程来说可能过于精力充沛和紧张。
在一些实施例中,一个或多个UI控制元件830被实施为接收关于输出音乐内容140的用户反馈。用户反馈控制元件可以包括例如星级评定、竖起大拇指/大拇指向下等。在各种实施例中,用户反馈可以用于训练系统适应用户的特定品味和/或应用到多个用户的更多的全局品味。在带有竖起大拇指/大拇指向下(例如,正/负)反馈的实施例中,反馈是二元的。包括强正面和强负面响应的二元反馈可以有效地为(一个或多个)控制元件830的功能提供正面和负面强化。在一些设想的实施例中,来自竖起大拇指/大拇指向下控制元件的输入可用于控制输出音乐内容140(例如,竖起大拇指/大拇指向下控制元件用于控制输出本身)。例如,竖起大拇指控制元件可用于修改当前播放的输出音乐内容140的最大重复次数。
在一些实施例中,每个音频文件的计数器跟踪该音频文件的一个章节(例如,8节拍章节)最近已播放了多少次。一旦一个文件被使用在一个期望的阈值之上,就可以对它的选择施加偏差。随着时间的推移,这种偏差可能会逐渐恢复为零。与设置音乐的期望功能(例如,增进、下降、分解、前奏、维持)的规则定义的音乐部分一起,这种重复计数器和偏差可用于将音乐塑造成具有连贯主题的章节。例如,音乐生成器模块160可以在大拇指向下按压时增加计数,使得输出音乐内容140的音频内容受鼓励更快地改变,而不会破坏该章节的音乐功能。类似地,音乐生成器模块160可以在竖起大拇指按下时减小计数,使得输出音乐内容140的音频内容不会在较长时间段内偏离重复。在达到阈值并应用偏差之前,音乐生成器模块160中的其他机器学习和基于规则的机制仍可能导致对其他音频内容的选择。
在一些实施例中,音乐生成器模块160被配置为在接收到用户反馈的时间前后确定各种上下文信息(例如,图1所示的环境信息150)。例如,结合从用户接收“竖起大拇指”指示,音乐生成器模块160可以从环境信息150确定一天中的时间、位置、设备速度、生物统计数据(例如,心率)等。在一些实施例中,该上下文信息可用于训练机器学习模型以生成用户在各种不同上下文中喜欢的音乐(例如,机器学习模型是上下文感知的)。
在各种实施例中,音乐生成器模块160确定当前环境类型并针对不同环境中的相同用户调整而采取不同动作。例如,当听众训练“态度”控制元件时,音乐生成器模块160可以进行环境测量和听众生物统计。在训练期间,音乐生成器模块160被训练以包括这些度量作为控制元件的一部分。在此示例中,当听众在健身房进行高强度健身时,“态度”控制元件可能会影响鼓节拍的强度。当坐在电脑前时,改变“态度”控制元件可能不会影响鼓节拍,但可能会增加低音线的失真。在此类实施例中,单个用户控制元件可以具有不同的规则集或不同训练的机器学习模型,它们在不同的收听环境中以不同方式单独或组合地使用。
与上下文感知相反,如果控制元件的预期行为是静态的,则很可能对于每个使用的收听情境音乐生成器模块160而言,许多控件可能变得是必需或期望的。因此,在一些实施例中,所公开的技术可以为具有单个控制元件的多个环境提供功能。为多个环境实施单个控制元件可以减少控制元件的数量,使用户界面更简单,搜索速度更快。在一些实施例中,控制元件行为是动态的。控制元件的动力可以来自利用环境测量结果,例如:麦克风记录的声级、心率测量、一天中的时间和运动速率等。这些测量结果可以用作控制元件训练的附加输入。因此,同一听众与控制元件的交互可能会产生不同的音乐效果,这取决于交互发生的环境上下文。
在一些实施例中,上述上下文感知功能不同于基于环境上下文改变生成过程的生成音乐系统的概念。例如,这些技术可以基于环境上下文修改用户控制元件的效果,这可以单独使用或与基于环境上下文和用户控件的输出生成音乐的概念结合使用。
在一些实施例中,音乐生成器模块160被配置为控制生成的输出音乐内容140以实现既定目标。既定目标的示例包括但不限于销售目标、诸如心率或血压之类的生物统计目标以及环境噪声目标。音乐生成器模块160可以学习如何使用本文描述的技术来修改手动(用户创建的)或算法(系统定义的)产生的控制元件,以生成输出音乐内容140,以便满足既定目标。
目标状态可以是可测量的环境和听众状态,听众希望在使用音乐生成器模块160收听音乐时并借助音乐生成器模块160收听音乐。这些目标状态可能会受到直接影响——通过音乐改变听众所在空间的声学体验,或者可能通过心理效应来调节,例如特定音乐鼓励注意力。作为一个示例,听众可以设定目标以在跑步期间具有较低的心率。通过记录听众在可用控制元件的不同状态下的心率,音乐生成器模块160了解到,当名为“态度”的控制元件设置为低水平时,听众的心率通常会降低。因此,为了帮助听众实现低心率,音乐生成器模块160可以将“态度”控制自动化到低水平。
通过在特定环境中创建听众期望的那种音乐,音乐生成器模块160可以帮助创建特定环境。示例包括心率、听众物理空间中的总音量、商店的销售等。一些环境传感器和状态数据可能不适合目标状态。例如,一天中的时间可以是用作实现诱导睡眠的目标状态的输入的环境量度,但是音乐生成器模块160本身不能控制一天中的时间。
在各种实施例中,虽然传感器输入可以在尝试达到状态目标时与控制元件映射器断开连接,但是传感器可以继续记录并且替代地提供用于将实际状态与目标状态进行比较的测量。目标和实际环境状态之间的差异可以被表述为机器学习算法的奖励函数,该机器学习算法可以在尝试实现目标状态的模式下调整控制元件映射器中的映射。该算法可以调整映射以减少目标和实际环境状态之间的差异。
虽然音乐内容有许多生理和心理影响,但在特定环境中创建听众期望的音乐内容可能并不总是有助于为听众创造那种环境。在特定情况下,可能不会对达到目标状态产生影响或负面影响。在一些实施例中,如果变化不满足阈值,音乐生成器模块160可以基于过去的结果调整音乐属性,同时在其他方向上分支。例如,如果降低“态度”控制元件不会导致听众的心率降低,则音乐生成器模块160可以使用其他控制元件转换和开发新策略,或者使用目标变量作为回归或神经网络模型的正强化或负强化的实际状态来生成新的控制元件。
在一些实施例中,如果发现上下文影响特定听众的控制元件的预期行为,则可能暗示在特定上下文中由控制元件修改的数据点(例如,音频参数)与该听众的上下文相关。因此,这些数据点可以为尝试生成产生环境变化的音乐提供良好的初始点。例如,如果听众在去火车站时总是手动调高“节奏”控制元件,则音乐生成器模块160可以在其检测到听众在火车站时开始自动增加该控制元件。
在一些实施例中,如本文所述,音乐生成器模块160被训练以实施匹配用户期望的控制元件。如果音乐生成器模块160针对每个控制元件进行端到端训练(例如,从控制元件级别到输出音乐内容140),则每个控制元件的训练的复杂性可能很高,这可能会使训练变慢。此外,建立多个控制元件的理想组合效果可能很困难。然而,对于每个控制元件,音乐生成器模块160应该理想地被训练以基于控制元件执行预期的音乐变化。例如,音乐生成器模块160可以由听众针对“能量”控制元件进行训练,以使节奏密度随着“能量”的增加而增加。因为听众暴露于最终输出的音乐内容140而不仅仅是音乐内容的各个层,所以可以训练音乐生成器模块160以使用控制元件来影响最终输出的音乐内容。然而,这可能成为一个多步骤的问题,例如,对于特定的控制设置,音乐应该听起来像X,并且要创建听起来像X的音乐,应该在每个曲目上使用一组音频文件Y。
在特定实施例中,采用教师/学生框架来解决上述问题。图10是示出根据一些实施例的示例性教师/学生框架系统的框图。在所示实施例中,系统1000包括教师模型实施模块1010和学生模型实施模块1020。
在特定实施例中,教师模型实施模块1010实施受过训练的教师模型。例如,受过训练的教师模型可以是学习如何预测最终混音(例如,立体声混音)应该如何发声而不考虑最终混音中可用的循环集合的模型。在一些实施例中,教师模型的学习过程利用使用快速傅里叶变换(FFT)对输出音乐内容140的实时分析来计算针对短时间步长序列的不同频率上的声音分布。教师模型可以利用诸如递归神经网络(RNN)之类的时间序列预测模型来搜索这些序列中的模式。在一些实施例中,教师模型实施模块1010中的教师模型可以在没有单独循环或音频文件可用的立体声录音上进行离线训练。
在所示实施例中,教师模型实施模块1010接收输出音乐内容140并生成输出音乐内容的紧凑描述1012。使用受过训练的教师模型,教师模型实施模块1010可以在不考虑输出音乐内容140中的音轨或音频文件的情况下生成紧凑描述1012。紧凑描述1012可以包括对输出音乐内容140应该听起来像什么的描述X,这是由教师模型实施模块1010确定的。紧凑描述1012比输出音乐内容140本身更紧凑。
紧凑描述1012可以提供给学生模型实施模块1020。学生模型实施模块1020实施受过训练的学生模型。例如,受过训练的学生模型可能是一个学习如何使用音频文件或循环Y(不同于X)来制作与紧凑描述相匹配的音乐的模型。在所示实施例中,学生模型实施模块1020生成与输出音乐内容140基本上匹配的学生输出音乐内容1014。如这里使用的,短语“基本上匹配”表示学生输出音乐内容1014听起来与输出音乐内容140相似。例如,受过训练的听众可能认为学生输出音乐内容1014和输出音乐内容140听起来相同。
在许多实例中,控制元件预计会影响音乐中的类似模式。例如,控制元件可能会影响音高关系和节奏。在一些实施例中,音乐生成器模块160根据一种教师模型针对大量控制元件进行训练。通过使用单个教师模型为大量控制元件训练音乐生成器模块160,可能不需要为每个控制元件重新学习类似的基本模式。在此类实施例中,教师模型的学生模型然后学习如何改变每个曲目的循环选择以在最终的音乐混合中实现期望的属性。在一些实施例中,可以预先计算循环的属性以减少学习挑战和基线性能(尽管它可能以潜在地降低找到控制元件的最佳映射的可能性为代价)。
为可用于学生模型训练的每个循环或音频文件预先计算的音乐属性的非限制性示例包括以下:低音与高音频率的比率、每秒音符开始的数量、检测到的有调声与无调声的比率,光谱范围,平均起始强度。在一些实施例中,学生模型是简单的回归模型,其被训练为每个曲目选择循环以获得最终立体声混音中最接近的音乐属性。在各种实施例中,学生/教师模型框架可能具有一些优点。例如,如果将新属性添加到循环的预计算例程中,则无需重新训练整个端到端模型,只需重新训练学生模型。
作为另一个示例,由于影响不同控制的最终立体声混音的属性可能对其他控制元件是共同的,因此将每个控制元件的音乐生成器模块160训练为端到端模型将意味着每个模型需要学习相同的东西(立体声混音音乐特征)以获得最佳循环选择,使训练比它可能需要的更慢和更难。只有立体声输出需要实时分析,并且由于为听众实时生成输出音乐内容,所以音乐生成器模块160可以通过计算获得“免费”信号。甚至FFT也可能已经应用于可视化和音频混合目的。以此方式,教师模型可以被训练以预测控制元件的组合行为,并且音乐生成器模块160被训练以找到适应其他控制元件的方式,同时仍然产生期望的输出音乐内容。这可以鼓励对控制元件进行培训,以强调特定控制元件的独特效果,并减少具有削弱其他控制元件影响的效果的控制元件。
示例性低分辨率音高检测系统
对复音音乐内容和多种乐器类型具有鲁棒性的音高检测传统上可能难以实现。实施端到端音乐转录的工具可能会记录音频并尝试生成书面乐谱或MIDI形式的符号音乐表示。在不了解节拍位置或拍子的情况下,这些工具可能需要推断音乐节奏结构、乐器和音高。结果可能会有所不同,常见问题是在音频文件中检测到太多短的、不存在的音符,并将音符的谐波检测为基本音高。
然而,在不需要端到端转录的情况下,音高检测也可能很有用。例如,为了制作音乐循环的谐波合理组合,知道每个节拍上可以听到哪些音高就足够了,而无需知道音符的确切位置。如果循环的长度和拍子已知,则可能不需要从音频中推断节拍的时间位置。
在一些实施例中,音高检测系统被配置为检测哪些基本音高(例如,C、C#....B)存在于已知节拍长度的短音乐音频文件中。通过减少问题范围并专注于对乐器质地的鲁棒性,可以实现节拍分辨率音高检测的高精度结果。
在一些实施例中,音高检测系统在已知基本事实的示例上进行训练。在一些实施例中,音频数据是从乐谱数据创建的。MIDI和其他符号音乐格式可以使用带有随机参数的软件音频合成器进行合成,以获得质地和效果。对于每个音频文件,系统可以为每个音高等级生成具有多个频率区间的对数频谱图2D表示。这种2D表示用作神经网络或其他AI技术的输入,其中使用多个卷积层来创建音频频率和时间表示的特征表示。卷积步幅和填充可以根据音频文件长度而变化,以产生具有不同拍子输入的恒定模型输出形状。在一些实施例中,音高检测系统将循环层附加到卷积层以输出与时间相关的预测序列。分类交叉熵损失可用于将神经网络的逻辑输出与乐谱的二进制表示进行比较。
卷积层与循环层相结合的设计可能类似于语音到文本的工作,但需要进行修改。例如,语音到文本通常需要对相对音高变化敏感,而不是绝对音高。因此,频率范围和分辨率通常很小。此外,文本可能需要保持不变,以便以静态拍子的音乐中不希望的方式加速。可能不需要在语音到文本任务中经常使用的连接主义时间分类(CTC)损失计算,例如,因为输出序列的长度是预先知道的,这降低了训练的复杂性。
以下表示为每个节拍有12个音高等级,其中1表示用于合成音频的乐谱中存在该基本音符。(C,C#....B)以及每一行代表一个节拍,例如,后面的行代表不同节拍的乐谱:
Figure BDA0003792053190000381
在一些实施例中,神经网络在古典音乐和1-4部分(或更多)和声和复调的伪随机生成乐谱上进行训练。数据增强可以通过滤波器和诸如混响之类的效果来帮助增强音乐内容的鲁棒性,这可能是音高检测的一个难点(例如,因为在原始音符结束后部分基础音调仍然存在)。在一些实施例中,数据集可能是有偏差的并且使用损失权重,因为音高等级更有可能没有在每个节拍上播放音符。
在一些实施例中,输出格式允许在每个节拍上避免和声冲突,同时最大化循环可以使用的和声上下文的范围。例如,低音循环可以仅包括F并向下移动到E在循环的最后一拍。对于F调式中的大多数人来说,这个循环听起来很和谐。如果没有提供时间分辨率,并且只知道音频中有一个E和一个F,那么它最后可能是一个带有短F的持续E,这对于大多数人来说在F调式的背景下听起来是不可接受的。随着分辨率的提高,谐波、指板声音和滑音作为单个音符被检测到的机会增加,因此可能会错误地识别附加的音符。根据一些实施例,通过开发具有最佳时间和音高信息分辨率的系统,用于组合乐器的短音频记录以创建具有谐波声音组合的音乐混音,可以降低音高检测问题的复杂性,并且可以增加对短的、不太重要的音高事件的鲁棒性。
在本文描述的音乐生成器系统的各种实施例中,系统可以允许听众选择音频内容,该音频内容用于创建系统从中构造(生成)新音乐的池。这种方法可能与创建播放列表不同,因为用户不需要选择单独的曲目或按顺序组织选择。此外,来自多个艺术家的内容可以同时一起使用。在一些实施例中,音乐内容被分组成由软件提供商或贡献艺术家设计的“包”。一个包包含具有相应图像特征和特征元数据文件的多个音频文件。例如,单个包可能包含20到100个可供音乐生成器系统来创建音乐的音频文件。在一些实施例中,可以选择单个包或可以组合选择多个包。在回放期间,可以在不停止音乐的情况下添加或删除包。
用于音乐内容生成的示例性音频技术
在各种实施例中,用于管理实时生成的音频的软件框架可以受益于支持特定类型的功能。例如,音频处理软件可能遵循从模拟硬件继承的模块化信号链隐喻,其中提供音频生成和音频效果的不同模块链接在一起形成音频信号图。单独的模块通常会公开各种连续参数,从而允许实时修改模块的信号处理。在电子音乐的早期,参数本身往往是模拟信号,因此参数处理链和信号处理链重合。自数字革命以来,参数往往是一个单独的数字信号。
本文公开的实施例认识到,对于实时音乐生成系统——无论系统与人类表演者现场交互还是系统实施机器学习或其他人工智能(AI)技术来生成音乐——灵活的控制系统允许参数操作的协调和组合可能是有利的。另外,本公开认识到参数改变的效果对于拍子的改变是不变的也可能是有利的。
在一些实施例中,音乐生成器系统基于音频信号的不同参数表示从回放音乐内容生成新音乐内容。例如,音频信号可以由相对于时间的信号图(例如,音频信号图)和相对于节拍的信号图(例如,信号图)二者来表示。信号图对拍子是不变的,这允许除了基于音频信号图的拍子变化修改之外,音乐内容的音频参数的拍子不变修改。
图11是示出根据一些实施例的被配置为在音乐内容生成中实现音频技术的示例性系统的框图。在所示实施例中,系统1100包括图形生成模块1110和音频技术音乐生成器模块1120。音频技术音乐生成器模块1120可以作为音乐生成器模块操作(例如,音频技术音乐生成器模块是音乐生成器模块160,如本文所述)或者音频技术音乐生成器模块可以实施为音乐生成器模块的一部分(例如,作为音乐生成器模块160的一部分)。
在所示实施例中,包括音频文件数据的音乐内容1112由图生成模块1110访问。图生成模块1110可以生成第一图1114和第二图1116用于访问的音乐内容1112中的音频信号。在特定实施例中,第一图1114是音频信号图,其将音频信号绘制为时间的函数。音频信号可以包括例如幅度、频率或两者的组合。在特定实施例中,第二图1116是将音频信号绘制为节拍函数的信号图。
在特定实施例中,如图11的所示实施例所示,图生成模块1110位于系统1100中以生成第一图1114和第二图1116。在此类实施例中,图生成模块1110可以与音频技术音乐生成器模块1120并置。然而,设想其他实施例,其中图生成模块1110位于单独的系统中并且音频技术音乐生成器模块1120从单独的系统访问图。例如,可以生成图并将其存储在音频技术音乐生成器模块1120可访问的基于云的服务器上。
图12描绘了音频信号图(例如,第一图1114)的示例。图13描绘了信号图的示例(例如,第二图1116)。在图12和图13所示图中,音频信号的每个变化被表示为一个节点(例如,图12中的音频信号节点1202和图13中的信号节点1302)。因此,指定节点的参数确定(例如,定义)指定节点处的音频信号的变化。因为第一图1114和第二图1116基于相同的音频信号,图可能具有相似的结构,图之间的变化是x轴刻度(时间与节拍)。在图中具有相似结构允许修改由一个图中节点的下游或上游的参数确定的对应于另一图中的节点(例如,第一图1114中的节点1202)一个图中的节点(例如,第二图1116中的节点1302)的参数(如下所述)。
回到图11,第一图1114和第二图1116由音频技术音乐生成器模块1120接收(或访问)。在特定实施例中,音频技术音乐生成器模块1120基于从第一图1114选择的音频修改器参数和从第二图1116选择的音频修改器参数从回放音乐内容1118生成新音乐内容1122。例如,音频技术音乐生成器模块1120可以使用来自第一图1114的音频修改器参数、来自第二图1116的音频修改器参数,或其组合来修改回放音乐内容1118。新音乐内容1122是基于音频修改器参数由修改回放音乐内容1118而生成的。
在各种实施例中,音频技术音乐生成器模块1120可以基于是否需要拍子变化修改、拍子不变修改或其组合来选择音频修改器参数以在回放内容1118的修改中实施。例如,可以基于从第一图1114中选择或确定的音频修改器参数进行拍子变化修改,而可以基于从第二图1116中选择或确定的音频修改器参数进行拍子不变修改。在需要拍子变化修改和拍子不变修改的组合的实施例中,音频修改器参数可以从第一图1114和第二图1116两者中选择。在一些实施例中,来自每个单独图的音频修改器参数被分别应用于回放音乐内容1118中的不同属性(例如,幅度或频率)或不同层(例如,不同乐器层)。在一些实施例中,来自每个图的音频修改器参数被组合成单个音频修改器参数以应用于回放音乐内容1118中的单个属性或层。
图14描绘了根据一些实施例的用于使用音频技术音乐生成器模块1420来实施音乐内容的实时修改的示例性系统。在所示实施例中,音频技术音乐生成器模块1420包括第一节点确定模块1410、第二节点确定模块1420、音频参数确定模块1430和音频参数修改模块1440。第一节点确定模块1410、第二节点确定模块1420、音频参数确定模块1430和音频参数修改模块1440一起实施系统1400。
在所示实施例中,音频技术音乐生成器模块1420接收包括音频信号的回放音乐内容1418。音频技术音乐生成器模块1420可以通过第一图1414(例如,基于时间的音频信号图)和第二图1416(例如,基于节拍的信号图)在第一节点确定模块1410中处理音频信号。当音频信号通过第一图1414时,图中每个节点的参数确定音频信号的变化。在所示实施例中,第二节点确定模块1420可以接收关于第一节点1412的信息并确定第二节点1422的信息。在特定实施例中,第二节点确定模块1420基于在通过第一图1414的音频信号中的第一节点信息1412中找到的第一节点的位置,读取第二图1416中的参数。因此,作为示例,由第一节点确定模块1410确定的去往第一图1414(图12所示)中的节点1202的音频信号可以触发第二节点确定模块1420确定第二图1416(图13所示)中的对应(并行)节点1302。
如图14所示,音频参数确定模块1430可以接收第二节点信息1422并基于第二节点信息确定(例如,选择)指定的音频参数1432。例如,音频参数确定模块1430可以基于在第二节点信息1422中标识的第二节点的位置之后的第二图1416中的下一个节拍的一部分(例如,x个下一个节拍)来选择音频参数。在一些实施例中,可以实施节拍到实时的转换以确定第二图1416的可以从中读取音频参数的部分。指定的音频参数1432可以提供给音频参数修改模块1440。
音频参数修改模块1440可以控制音乐内容的修改以生成新音乐内容。例如,音频参数修改模块1440可以修改回放音乐内容1418以生成新音乐内容1122。在特定实施例中,音频参数修改模块1440通过修改回放音乐内容中的音频信号的(由音频参数确定模块1430确定的)指定音频参数1432来修改回放音乐内容1418的属性。例如,修改回放音乐内容1418中的音频信号的指定音频参数1432修改音频信号中的诸如幅度、频率或两者的组合的属性。在各种实施例中,音频参数修改模块1440修改回放音乐内容1418中不同音频信号的属性。例如,回放音乐内容1418中的不同音频信号可以对应于回放音乐内容1418中表示的不同乐器。
在一些实施例中,音频参数修改模块1440使用机器学习算法或其他AI技术修改回放音乐内容1418中的音频信号的属性。在一些实施例中,音频参数修改模块1440根据对模块的用户输入来修改回放音乐内容1418的属性,该用户输入可以通过与音乐生成系统相关联的用户界面来提供。还可以设想音频参数修改模块1440使用AI技术和用户输入的组合来修改回放音乐内容1418的属性的实施例。用于通过音频参数修改模块1440修改回放音乐内容1418的属性的各种实施例允许对音乐内容的实时操纵(例如,回放期间的操纵)。如上所述,实时操纵可以包括将拍子变化修改、拍子不变组合或两者的组合应用到回放音乐内容1418中的音频信号。
在一些实施例中,音频技术音乐生成器模块1420实施2层参数系统,用于通过音频参数修改模块1440修改回放音乐内容1418的属性。在2层参数系统中,在直接控制音频参数值的“自动化”(例如,由音乐生成系统自动执行的任务)和将音频参数修改以乘法方式叠加在自动化之上的“调制”之间可能存在差异化,如下所述。2层参数系统可能允许音乐生成系统的不同部分(例如,系统架构中的不同机器学习模型)分别考虑不同的音乐方面。例如,音乐生成系统的一部分可以根据乐曲的预期部分类型设置特定乐器的音量,而另一部分可以覆盖音量的周期性变化用于增加兴趣。
用于音乐内容生成中的实时音频效果的示例性技术
音乐技术软件通常允许作曲家/制作人通过自动化控制各种抽象包络。在一些实施例中,自动化是一些音频处理参数(例如音量或混响量)的预编程时间操纵。自动化通常是手动定义的断点包络(例如,分段线性函数)或编程函数,例如正弦波(也称为低频振荡器(LFO))。
所公开的音乐生成器系统可能不同于典型的音乐软件。例如,在某种意义上,大多数参数在默认情况下都是自动化的。音乐生成器系统中的AI技术可以以各种方式控制大部分或所有音频参数。在基础级别,神经网络可以根据其训练预测每个音频参数的适当设置。但是,为音乐生成器系统提供一些更高级别的自动化规则可能会有所帮助。例如,大型音乐结构可能会要求将音量缓慢构建作为额外考虑因素,在可能被预测的低级设置之上。
本公开一般涉及用于组合由分层生成系统的不同级别同时发出的多个参数命令以创建音乐连贯和变化的连续输出的信息架构和程序方法。所公开的音乐生成器系统可以创建旨在连续体验几个小时的长形式的音乐体验。长形式的音乐体验需要创造一个连贯的音乐旅程,以获得更令人满意的体验。为此,音乐生成器系统可以在很长的时间尺度上引用自身。这些引用可能从直接变化到抽象。
在特定实施例中,为了促进更大规模的音乐规则,音乐生成器系统(例如,音乐生成器模块160)公开自动化API(应用程序编程接口)。图15描绘了根据一些实施例的用于音频参数自动化的系统中的示例性API模块的框图。在所示实施例中,系统1500包括API模块1505。在特定实施例中,API模块1505包括自动化模块1510。音乐生成器系统可以支持波表式LFO和任意断点包络。自动化模块1510可以将自动化1512应用于任何音频参数1520。在一些实施例中,自动化1512被递归地应用。例如,任何程序自动化(如正弦波)本身具有参数(频率、幅度等),都可以将自动化应用于这些参数。
在各种实施例中,自动化1512包括与音频信号图平行的信号图,如上所述。可以类似地处理信号图:通过“拉”技术。在“拉”技术中,API模块1505可以请求自动化模块1510根据需要重新计算,并且进行重新计算,使得自动化1512递归地请求它所依赖的上游自动化进行相同的操作。在特定实施例中,用于自动化的信号图以受控速率更新。例如,信号图可以更新一次性能引擎更新例程的每次运行,这可以与音频的块速率对齐(例如,在音频信号图呈现一个块之后(例如,一个块是512个样本))。
在一些实施例中,可能希望音频参数1520本身以音频采样率变化,否则音频块边界处的不连续参数改变会导致可听伪影。在特定实施例中,音乐生成器系统通过将自动化更新视为参数值目标来管理该问题。当实时音频线程呈现一个音频块时,音频线程将在块的过程中将给定参数从其当前值平滑地渐变到提供的目标值。
本文描述的音乐生成器系统(例如,图1中所示的音乐生成器模块160)可以具有带分级性质的架构。在一些实施例中,层次结构的不同部分可以为特定音频参数的值提供多个建议。在特定实施例中,音乐生成器系统提供用于组合/解决多个建议的两种独立机制:调制和覆盖。在图15的所示实施例中,调制1532由调制模块1530实施,覆盖1542由覆盖模块1540实施。
在一些实施例中,自动化1512可以被声明为调制1532。此类声明可能意味着不是直接设置音频参数的值,自动化1512应该以乘法方式作用于音频参数的当前值。因此,大型音乐部分可以将长调制1532应用于音频参数(例如,音量推子的缓慢渐强),并且调制的值将乘以音乐生成器系统的其他部分可能规定的任何值。
在各种实施例中,API模块1505包括覆盖模块1540。覆盖模块1540例如可以是用于音频参数自动化的覆盖工具。覆盖模块1540可以旨在由外部控件界面(例如,艺术家控件用户界面)使用。覆盖模块1540可以控制音频参数1520,而不管音乐生成器系统试图用它做什么。当覆盖1542覆盖音频参数1520时,音乐生成器系统可以创建“影子参数”1522,其跟踪如果没被覆盖音频参数将在哪里(例如,音频参数将基于自动化1512或调制1532在哪里)。因此,当覆盖1542被“释放”(例如,被艺术家移除)时,音频参数1520可以根据自动化1512或调制1532快速回到它本来应该处于的位置。
在各种实施例中,可以组合这两种方法。例如,覆盖1542可以是调制1532。当覆盖1542是调制1532时,音频参数1520的基本值仍可以由音乐生成器系统设置,但随后被覆盖1542以乘法方式调制(覆盖任何其他调制)。每个音频参数1520可以同时具有一个(或零)自动化1512和一个(或零)调制1532,以及每个覆盖1542中的一个(或零)。
在各种实施例中,抽象类层次结构定义如下(注意存在一些多重继承):
Figure BDA0003792053190000451
Figure BDA0003792053190000461
基于抽象类层次结构,事物可以被认为是自动化,或者可自动化。在一些实施例中,任何自动化都可以应用于可自动化的任何事物。自动化包括LFO、断点包络等事物。这些自动化都是拍子锁定的,这意味着它们会根据当前节拍随时间变化。
自动化本身可能具有可自动化的参数。例如,LFO自动化的频率和幅度是可自动化的。因此,存在与音频信号图并行但以控制速率而非音频速率运行的依赖自动化和自动化参数的信号图。如上所述,信号图使用拉模型。音乐生成器系统跟踪应用于音频参数1520的任何自动化1512,并且每个“游戏循环”更新一次这些。自动化1512依次递归地请求更新它们自己的自动化音频参数1520。此递归更新逻辑可能驻留在基类节拍依赖中,预计会被频繁调用(但不一定是定期调用)。更新逻辑可能有如下描述的原型:
节拍依赖::更新(双当前节拍,整数更新计数器,布尔值覆盖)
在特定实施例中,节拍依赖类维护其自身依赖项的列表(例如,其他节拍依赖实例),并递归调用它们的更新函数。一个更新计数器可以向上传递,使得信号图可以有循环而无需双重更新。这可能很重要,因为自动化可以应用于几个不同的可自动化。在一些实施例中,这可能无关紧要,因为第二次更新将具有相同的当前节拍作为第一个,除非节拍发生变化,否则这些更新例程应该是无效的。
在各种实施例中,当自动化应用于可自动化的“游戏循环”的每个循环时,音乐生成器系统可以从每个自动化请求更新的值(递归地),并使用它来设置可自动化的值。在这种情况下,“设置”可能取决于特定的子类,也取决于参数是否也在被调制和/或被覆盖。
在特定实施例中,调制1532是以乘法方式而非绝对方式应用的自动化1512。例如,调制1532可以应用于已经自动化的音频参数1520,其效果将是自动化值的百分比。例如,这种以乘法方式可能允许围绕移动平均值进行持续振荡。
在一些实施例中,音频参数1520可以被覆盖,如上所述,意味着任何自动化1512或应用于它们的调制1532,或其他(较少特权)请求被覆盖1542中的覆盖值覆盖。这种覆盖可以允许对音乐生成器系统的特定方面进行外部控制,而音乐生成器系统会继续进行。当音频参数1520被覆盖时,音乐生成器系统跟踪该值将是什么(例如,跟踪应用的自动化/调制和其他请求)。当覆盖被释放时,音乐生成器系统将参数捕捉到它本来应该在的位置。
为了便于调制1532和覆盖1542,音乐生成器系统可以抽象出Parameter的setValue方法。也可能有私有方法_setValue,它实际上设置了值。公共方法的示例如下:
Figure BDA0003792053190000471
公共方法可以引用名为_未调制的Parameter类的成员变量。这个变量是ShadowParameter的实例,如上所述。每个音频参数1520都有一个影子参数1522,它跟踪如果不调制它会在哪里。如果音频参数1520当前没有被调制,则音频参数1520和它的影子参数1522都用请求的值更新。否则,影子参数1522跟踪请求,并且实际音频参数值1520设置在别处(例如,在updateModulations例程——其中调制因子乘以影子参数值以给出实际参数值)。
在各种实施例中,长形式的音乐体验中的大规模结构通过各种机制来实现。一种广泛的方法可能是随着时间的推移使用音乐自我参照。例如,一个非常直接的自引用将完全重复以前播放的特定音频片段。在音乐理论中,重复的片段可以称为主题(或主题)。更典型地,音乐内容使用主题和变奏,由此主题在稍后的时间以一些变化重复,以提供连贯感但保持进步感。本文公开的音乐生成器系统可以使用主题和变奏以多种方式创建大规模结构,包括直接重复或通过使用抽象包络。
抽象包络是音频参数随时间变化的值。从它所控制的音频参数中抽象出来,抽象包络可以应用于任何其他音频参数。例如,音频参数的集合可以通过单个控制抽象包络一致地自动化。这种技术可以在短期内在感知上将不同的层“粘合”在一起。抽象包络也可以暂时重用并应用于不同的音频参数。这样,抽象包络就变成了抽象的音乐主题,并且通过在稍后的聆听体验中将包络应用到不同的音频参数来重复这个主题。因此,在建立结构感和长期连贯性的同时,主题存在变化。
作为音乐主题,抽象包络可以抽象出许多音乐特征。可以抽象的音乐特征示例包括但不限于:
·建立张力(任何曲目的音量,失真程度等)。
·节奏(音量调节和/或门控创建应用于打击垫等的节奏效果)。
·旋律(音高过滤可以模仿应用到打击垫等的旋律轮廓)。
用于实时音乐内容生成的示例性附加音频技术
实时音乐内容生成可能会带来独特的挑战。例如,由于严格的实时约束,应避免具有不可预测且可能无限执行时间的函数调用或子例程。避免这个问题可能会排除使用大多数高级编程语言以及大部分低级语言(例如C和C++)。从堆中分配存储器的任何事情(例如,通过遮挡下的malloc函数)都可能被排除,以及任何可能阻塞的事情,例如锁定互斥锁。这可能使多线程编程对于实时音乐内容生成特别困难。大多数标准内存管理方法也可能不可行,因此动态数据结构(例如C++、STL容器)在实时音乐内容生成方面的用途有限。
另一个挑战领域可能是管理DSP(数字信号处理)功能中涉及的音频参数(例如滤波器的截止频率)。例如,当动态改变音频参数时,除非音频参数连续改变,否则可能会出现可听的伪影。因此,可能需要实时DSP音频线程和面向用户或编程接口之间的通信来改变音频参数。
·可以实施各种音频软件来处理这些限制,并且存在各种方法。例如:
·线程间通信可以使用无锁消息队列来处理。
·函数可以用纯C编写并利用函数指针回调。
·存储器管理可以通过自定义“区域”或“竞技场”来实施
·“双速”系统可以通过以音频速率运行的实时音频线程计算和以“控制速率”运行的控制音频线程来实施。控制音频线程可以设置音频参数变化目标,实时音频线程平滑地斜升到该目标。
在一些实施例中,在控制速率音频参数操纵和用于实际DSP例程的音频参数值的实时音频线程安全存储之间进行同步可能需要音频参数目标的某种线程安全通信。音频例程的大多数音频参数是连续的(而不是离散的),因此通常由浮点数据类型表示。由于缺乏无锁原子浮点数据类型,历史上需要对数据进行各种扭曲。
在特定实施例中,在本文描述的音乐生成器系统中实施了简单的无锁原子浮点数据类型。可以通过将浮点类型视为位序列并“欺骗”编译器将其视为具有相同位宽的原子整数类型来实现无锁原子浮点数据类型。这种方法可以支持原子获取/设置,适用于本文描述的音乐生成器系统。无锁原子浮点数据类型的示例实施描述如下:
//atomic float
class af32{
public:
af32(){}
af32(float x){operator()(x);}
~af32(){}
af32(const af32&x):valueStore(x()){}
af32&operator=(const af32&x){this->operator()(x());return*this;}
float operator()()const{uint32_t voodoo=atomic_load(&valueStore);
return((float)&voodoo);}
void operator()(float value){
uint32_t voodoo=((uint32_t)&value);atomic_store(&_valueStore,voodoo);
}
private:
std::atomic_uint32_t_valueStore{0};
};
在一些实施例中,来自堆的动态存储器分配对于与音乐内容生成相关联的实时代码是不可行的。例如,基于静态堆栈的分配可能使使用诸如动态存储容器和函数式编程方法之类的编程技术变得困难。在特定实施例中,本文描述的音乐生成器系统实施“存储区”以用于实时上下文中的存储器管理。如本文所用,“存储器区域”是堆分配存储器的区域,其在没有实时约束的情况下预先分配(例如,当实时约束尚未存在或暂停时)。然后可以在堆分配存储器区域中创建存储器存储对象,而无需向系统请求更多存储器,从而使存储器实时安全。垃圾收集可能包括作为一个整体解除分配存储器区域。音乐生成器系统的存储器实施也可以是多线程安全、实时安全和高效的。
图16描绘了根据一些实施例的示例性存储器区域1600的框图。在所示实施例中,存储器区域1600包括堆分配存储器模块1610。在各种实施例中,堆分配存储器模块1610接收并存储第一图1114(例如,音频信号图)、第二图1116(例如,信号图)和音频信号数据1602。例如,可以通过音频参数修改模块1440(图14中所示)来检索每个存储的项目。
存储器区域的示例实施描述如下:
//存储器池类存储器区域
{public:
MemoryZone(uint64_t sz):sz(sz),zone((char)malloc(sz)){}
~MemoryZone(){free(zone);}
void*bags(size_t obj_size,size_t alignment){
uint64_t p=atomic_load(&p);
uint64_t q=p%uint64_t(alignment);
if(p+q>sz)return nullptr;
uint64_t pp=atomic_fetch_add(&p,uint64_t(obj_size)+q);
if(pp==p){return zone_+p+q;}
else{return bags(obj_size,alignment);}
}uint64_t used(){return atomic_load(&p);}
uint64_t available(){return int64_t(sz)-int64_t(atomic_load(&p));}
void hose(){atomic_store(&p,0ULL);}
private:
char zone;
uint64_t sz;
std::atomic_uint64_t p_{0};
};
在一些实施例中,音乐生成器系统的不同音频线程需要相互通信。典型的线程安全方法(可能包括锁定“互斥”数据结构)可能无法在实时上下文中使用。在特定实施例中,实施了到单生产者单消费者循环缓冲器池的动态路由数据序列化。循环缓冲器是一种FIFO(先进先出)队列数据结构,通常在初始化后不需要动态存储器分配。单生产者、单消费者线程安全的循环缓冲器可能允许一个音频线程将数据推入队列,而另一个音频线程拉出数据。对于本文描述的音乐生成器系统,循环缓冲器可以扩展为允许多生产者、单消费者音频线程。这些缓冲器可以通过预先分配循环缓冲器的静态阵列并且根据添加到由音乐生成器系统产生的音乐内容的标识符将串行化数据动态地路由到特定“通道”(例如,特定循环缓冲器)来实施。单个用户(例如,单个消费者)可以访问循环缓冲器的静态阵列。
图17描绘了根据一些实施例的用于存储新音乐内容的示例性系统的框图。在所示实施例中,系统1700包括循环缓冲器静态阵列模块1710。循环缓冲器静态阵列模块1710可以包括根据线程标识符允许存储多生产者、单消费者音频线程的多个循环缓冲器。例如,循环缓冲器静态阵列模块1710可以接收新音乐内容1122并且在1712中存储新音乐内容供用户访问。
在各种实施例中,诸如动态容器(向量、队列、列表)之类的抽象数据结构通常以非实时安全的方式实施。然而,这些抽象数据结构可能对音频编程很有用。在特定实施例中,本文描述的音乐生成器系统实施了自定义列表数据结构(例如,单链列表)。许多函数式编程技术可以从自定义列表数据结构中实施。自定义列表数据结构实施可以使用“存储器区域”(如上所述)进行底层存储器管理。在一些实施例中,自定义列表数据结构是可序列化的,这可以使其安全地用于实时使用并且能够使用上述多生产者、单消费者音频线程在音频线程之间进行通信。
示例性区块链分类帐技术
在一些实施例中,所公开的系统可以利用诸如区块链或其他密码分类账之类的安全记录技术来记录关于生成的音乐或其元素的信息,例如循环或曲目。在一些实施例中,系统组合多个音频文件(例如,曲目或循环)以生成输出音乐内容。该组合可以通过组合多个音频内容层使得它们至少部分地在时间上重叠来执行。输出内容可以是离散的音乐片段,也可以是连续的。在连续音乐的背景下,跟踪音乐元素的使用可能具有挑战性,例如,为了向相关利益相关者提供版税。因此,在一些实施例中,所公开的系统记录用于在组成的音乐内容中使用的音频文件的标识符和使用信息(例如,时间戳或播放次数)。此外,例如,所公开的系统可以利用各种算法在混合音频文件的上下文中跟踪回放时间。
如本文所用,术语“区块链”是指以密码方式链接的一组记录(称为块)。例如,每个块可以包括前一个块的密码散列、时间戳和交易数据。区块链可以用作公共分布式分类帐,并且可以由计算设备的网络管理,这些计算设备使用商定的协议进行通信和验证新块。一些区块链实施可能是不可变的,而另一些可能允许随后更改块。通常,区块链可以以可验证和永久的方式记录交易。尽管为了说明的目的本文讨论了区块链分类账,但是应当理解,在其他实施例中,所公开的技术可以与其他类型的密码分类账一起使用。
图18是示出根据一些实施例的示例回放数据的图。在所示实施例中,数据库结构包括多个文件的条目。每个所示条目包括文件标识符、开始时间戳和总时间。文件标识符可以唯一地标识系统跟踪的音频文件。开始时间戳可以指示音频文件首次包含在混合音频内容中。例如,该时间戳可以基于回放设备的本地时钟或基于互联网时钟。总时间可以指示合并音频文件的间隔长度。请注意,这可能与音频文件的长度不同,例如,如果仅使用音频文件的一部分,如果音频文件在混音中加速或减速等。在一些实施例中,当音频文件在多个不同时间合并,每次都会产生一个条目。在其他实施例中,如果文件的条目已经存在,则文件的附加播放可能导致现有条目的时间字段的增加。在又一些实施例中,数据结构可以跟踪每个音频文件被使用的次数而不是合并的长度。此外,设想基于时间的使用数据的其他编码。
在各种实施例中,不同的设备可以确定、存储和使用分类帐来记录回放数据。下面参考图19讨论示例场景和拓扑。回放数据可以在提交到分类帐之前临时存储在计算设备上。存储的回放数据可以被加密,例如,以减少或避免对条目的操纵或错误条目的插入。
图19是示出根据一些实施例的示例作曲系统的框图。在所示示例中,系统包括回放设备1910、计算系统1920和分类帐1930。
在所示实施例中,回放设备1910接收来自计算系统1920的控制信令并将回放数据发送到计算系统1920。在本实施例中,回放设备1910包括回放数据记录模块1912,其可以基于由回放设备1910播放的音频混合记录回放数据。回放设备1910还包括回放数据存储模块1914,其被配置为将回放数据临时存储在分类帐中,或两者兼有。回放设备1910可以周期性地向计算系统1920报告回放数据或者可以实时报告回放数据。例如,当回放设备1910离线时,可以存储回放数据以供以后报告。
在所示实施例中,计算系统1920接收回放数据并将反映回放数据的条目提交给分类帐1930。计算系统1920还向回放设备1910发送控制信令。在不同的实施例中,该控制信令可以包括各种类型的信息。例如,控制信令可以包括配置数据、混合参数、音频样本、机器学习更新等,以供回放设备1910用于创作音乐内容。在其他实施例中,计算系统1920可以编写音乐内容并且通过控制信令将音乐内容数据流式传输到回放设备1910。在这些实施例中,模块1912和1914可以包括在计算系统1920中。一般而言,参考图19讨论的模块和功能可以根据各种拓扑分布在多个设备中。
在一些实施例中,回放设备1910被配置为将条目直接提交给分类帐1930。例如,诸如手机之类的回放设备可以编写音乐内容,确定回放数据,并存储回放数据。在这种情况下,移动设备可以将回放数据报告给服务器,例如计算系统1920,或者直接报告给维护分类帐1930的计算系统(或一组计算节点)。
在一些实施例中,系统维护权利持有者的记录,例如,具有到音频文件标识符或到音频文件集的映射。该实体记录可以保存在分类帐1930中或单独的分类帐中或一些其他数据结构中。这可以允许权利持有者保持匿名,例如,当分类帐1930是公开的但包括映射到某个其他数据结构中的实体的非识别实体标识符时。
在一些实施例中,音乐作曲算法可以从两个或多个现有音频文件生成新的音频文件以包含在混音中。例如,系统可以基于两个音频文件A和B生成新的音频文件C。一种用于此类混合的技术使用文件A和文件B的音频的向量表示之间的插值,并使用从向量到音频表示的逆变换生成文件C。在此示例中,音频文件A和音频文件B的播放时间都可以增加,但它们的增加量可能小于它们的实际播放时间,例如,因为它们是混合的。
例如,如果音频文件C被合并到混合内容中20秒,则音频文件A可能具有指示15秒的回放数据,而音频文件B可能具有指示5秒的回放数据(并请注意混合音频文件的总和可能与结果文件C的使用长度相匹配,也可能不匹配)。在一些实施例中,每个原始文件的回放时间基于其与混合文件C的相似性。例如,在向量实施例中,对于n维向量表示,内插向量a与音频文件A和B的向量表示具有以下距离d:
d(a,c)=((a1-c1)2+(a2-c2)2+...+(an-cn)2)1/2
d(b,c)=((b1-c1)2+(b2-c2)2+...+(bn-cn)2)1/2
在这些实施例中,每个原始文件的回放时间i可以确定为:
Figure BDA0003792053190000551
Figure BDA0003792053190000552
其中t表示文件C的回放时间。
在一些实施例中,报酬的形式可以并入分类帐结构中。例如,特定实体可以包括将音频文件与性能要求相关联的信息,例如显示链接或包括广告。在这些实施例中,当在混合中包括音频文件时,合成系统可以提供相关联操作(例如,显示广告)的性能证明。可以根据需要特定字段来显示如何以及何时执行操作的各种适当报告模板之一来报告性能证明。性能证明可以包括时间信息并利用密码学来避免错误的性能断言。在这些实施例中,使用也没有显示相关所需操作的执行证明的音频文件可能需要某种其他形式的报酬,例如版税支付。通常,提交音频文件的不同实体可以注册不同形式的报酬。
如上所述,所公开的技术可以提供在音乐混合中使用的音频文件的可靠记录,即使是在实时合成时也是如此。分类账的公开性可能会为报酬的公平性提供信心。这反过来可能会鼓励艺术家和其他合作者的参与,这可能会提高可用于自动混音的音频文件的种类和质量。
在一些实施例中,可以用音乐引擎用来创建连续音景的元件来制作艺术家包。艺术家包可以是专业(或以其他方式)策划的元件集,这些元件存储在与诸如艺术家或团体的实体相关联的一个或多个数据结构中。这些元件的示例包括但不限于循环、创作规则、启发式和神经网络向量。循环可以包含在音乐短语数据库中。每个循环通常是单个乐器或一组相关乐器在一段时间内演奏音乐进行。这些范围可以从短循环(例如4个小节)到较长的循环(例如32到64个小节)等等。循环可以组织成层,例如旋律、和声、鼓、低音、顶部、FX等。循环数据库也可以表示为具有编码循环表示的变分自动编码器。在这种情况下,不需要循环本身,而是使用NN来生成在NN中编码的声音。
启发式是指引导音乐引擎创作音乐的参数、规则或数据。参数指导诸如部分长度、效果的使用、变分技术的频率、音乐的复杂性之类的元素,或者一般来说,可以用来在音乐引擎创作和呈现音乐时增强决策制定的任何类型的参数。
分类账记录与权利持有者相关联的内容消费相关的交易。例如,这可以是循环、启发式或神经网络向量。分类帐的目标是记录这些交易并使其可用于透明会计检查。分类账旨在捕获发生的交易,其中可能包括内容的消费、引导音乐引擎的参数的使用以及神经网络上向量的使用等。分类账可以记录各种交易类型,包括离散事件(例如这个循环在这个时候播放),这个包被播放了这个时间量,或者这个机器学习模块(例如,神经网络模块)被使用了这个时间量。
分类帐可以将多个权利持有者与任何给定的艺术家包相关联,或者更详细地说,与艺术家包的特定循环或其他元件相关联。例如,标签、艺术家和作曲家可能对给定的艺术家包拥有权利。分类帐可以允许他们关联包的付款细节,具体说明每一方将收到的百分比。例如,艺术家可以获得25%、唱片公司25%和作曲家50%。使用区块链来管理这些交易可以允许实时向每个权利持有人进行小额支付,或在适当的时间段内累积。
如上所述,在一些实施方式中,循环可能被替换为本质上是机器学习模块中循环的编码的VAE。在这种情况下,分类账可以将游戏时间与包含机器学习模块的特定艺术家包相关联。例如,如果一个艺术家包在所有设备上的总播放时间占总播放时间的10%,则该艺术家可以获得总收入分配的10%。
在一些实施例中,系统允许艺术家创建艺术家简介。简介包括艺术家的相关信息,包括个人简历、简介图片、银行详细信息以及验证艺术家身份所需的其他数据。创建艺术家简介后,艺术家就可以上传和发布艺术家包。这些包包括音乐引擎用来创建音景的元件。
对于创建的每个艺术家包,可以定义权利持有者并将其与包关联。每个权利持有人都可以索取一定比例的包。此外,每个权利持有人都会创建简介并将银行帐户与其简介相关联以进行付款。艺术家本身就是权利持有者,并且可能拥有与他们的作品包相关联的100%权利。
除了在分类帐中记录将用于收入确认的事件之外,分类帐还可以管理与艺术家包相关联的促销活动。例如,艺术家包可能有一个免费的月份促销活动,其中产生的收入将不同于促销活动未运行时产生的收入。分类账在计算支付给权利持有人的款项时会自动考虑这些收入输入。
相同的版权管理模式可以允许艺术家将其包的版权出售给一个或多个外部权利持有人。例如,在推出新包时,艺术家可以通过将包中50%的股份出售给粉丝或投资者来预先为他们的包提供资金。在这种情况下,投资者/权利持有人的数量可以任意大。例如,艺术家可以将其50%的百分比出售给10万用户,这些用户将获得该包产生的收入的1/10万。由于所有会计都由分类帐管理,因此在这种场景下,投资者将直接获得报酬,无需对艺术家账户进行审计。
示例性用户和企业GUI
图20A至图20B是示出根据一些实施例的图形用户界面的框图。在所示的实施例中,图20A包含由用户应用程序2010显示的GUI,而图20B包含由企业应用程序2030显示的GUI。在一些实施例中,图20A和图20B显示的GUI由网站而不是由应用程序生成。在各种实施例中,可以显示各种适当元件中的任何一个,包括以下元件中的一个或多个:转盘(例如,控制音量、能量等)、按钮、旋钮、显示框(例如,为用户提供更新信息)等。
在图20A中,用户应用程序2010显示包含用于选择一个或多个艺术家包的部分2012的GUI。在一些实施例中,包2014可替代地或附加地包括主题包或用于特定场合(例如,婚礼、生日派对、毕业典礼等)的包。在一些实施例中,部分2012中显示的包的数量大于可以在部分2012中一次显示的数量。因此,在一些实施例中,用户在部分2012中向上和/或向下滚动以查看一个或多个包2014。在一些实施例中,用户可以基于他/她想要听到输出音乐内容来选择艺术家包2014。在一些实施例中,例如可以购买和/或下载艺术家包。
在所示实施例中,选择元件2016允许用户调整一个或多个音乐属性(例如,能量水平)。在一些实施例中,选择元件2016允许用户添加/删除/修改一个或多个目标音乐属性。在各种实施例中,选择元件2016可以呈现一个或多个UI控制元件(例如,控制元件830)。
在所示实施例中,选择元件2020允许用户让设备(例如,移动设备)收听环境以确定目标音乐属性。在一些实施例中,设备在用户选择选择元件2020之后使用一个或多个传感器(例如,相机、麦克风、温度计等)收集关于环境的信息。在一些实施例中,应用程序2010还基于当用户选择元件2020时由应用程序收集的环境信息来选择或建议一个或多个艺术家包。
在所示实施例中,选择元件2022允许用户组合多个艺术家包以生成新规则集。在一些实施例中,新规则集基于用户为同一艺术家选择一个或多个包。在其他实施例中,新规则集基于用户为不同艺术家选择一个或多个包。用户可以指示不同规则集的权重,例如,使得高权重的规则集比低权重的规则集对生成的音乐具有更大的影响。音乐生成器可以以多种不同方式组合规则集,例如,通过在来自不同规则集的规则之间切换、对来自多个不同规则集的规则的值进行平均等。
在所示实施例中,选择元件2024允许用户手动调整一个或多个规则集中的规则。例如,在一些实施例中,用户希望通过调整用于生成音乐内容的规则集中的一个或多个规则来以更精细的水平调整正在生成的音乐内容。在一些实施例中,这允许应用程序2010的用户通过使用在图2中的GUI中显示的控件成为他们自己的唱片骑师(DJ),来调整由音乐生成器使用的规则集以生成输出音乐内容。这些实施例还可以允许对目标音乐属性进行更精细的控制。
在图20B中,企业应用程序2030显示还包含具有艺术家包2014的艺术家包选择部分2012的GUI。在所示实施例中,由应用程序2030显示的企业GUI还包含用于调整/添加/删除一个或多个音乐属性的元件2016。在一些实施例中,显示在图20B中的GUI在商业或店面中用于通过生成音乐内容来生成特定环境(例如,用于优化销售)。在一些实施例中,员工使用应用程序2030来选择先前已被展示以增加销售额的一个或多个艺术家包(例如,给定规则集的元数据可以指示在现实世界上下文中使用规则集的实际实验结果)。
在所示实施例中,输入硬件2040将信息发送到正在显示企业应用程序2030的应用程序或网站。在一些实施例中,输入硬件2040是以下各项之一:收银机、热传感器、光传感器、时钟、噪声传感器等。在一些实施例中,使用从上面列出的硬件设备的一个或多个发送的信息调整目标音乐属性和/或用于为特定环境生成输出音乐内容的规则集。在所示实施例中,选择元件2038允许应用程序2030的用户选择一个或多个硬件设备从其接收环境输入。
在所示实施例中,显示2034基于来自输入硬件2040的信息向应用程序2030的用户显示环境数据。在所示实施例中,显示2032示出了基于环境数据对规则集的改变。在一些实施例中,显示2032允许应用程序2030的用户看到基于环境数据所做的改变。
在一些实施例中,图20A和图20B中所示的元件用于主题包和/或场合包。也就是说,在一些实施例中,使用由应用程序2010和应用程序2030显示的GUI的用户或企业可以选择/调整/修改规则集以生成用于一个或多个场合和/或主题的音乐内容。
详细的示例音乐生成器系统
图21至图23示出了关于音乐生成器模块160的具体实施例的细节。请注意,尽管为了说明的目的公开了这些具体示例,但它们并不旨在限制本公开的范围。在这些实施例中,由诸如个人计算机、移动设备、媒体设备等的客户端系统执行从循环构建音乐。如图21至图23中讨论所用的,术语“循环”可以与术语“音频文件”互换。通常,如本文所述,循环包括在音频文件中。循环可以分为专业策划的循环包,可以称为艺术家包。可以针对音乐属性分析循环,并且可以将属性存储为循环元数据。可以分析(例如,实时)和过滤构造曲目中的音频以混合和控制输出流媒体。可以将各种反馈发送到服务器,包括诸如来自用户与滑块或按钮的交互的显式反馈和隐式反馈(例如由传感器基于音量变化、基于收听长度、环境信息等生成)。在一些实施例中,控制输入具有已知效果(例如,直接或间接指定目标音乐属性)并由组合模块使用。
以下讨论介绍了参考图21至图23使用的各种术语。在一些实施例中,循环库是可以由服务器存储的循环的主库。每个循环可以包括音频数据和描述音频数据的元数据。在一些实施例中,循环包是循环库的子集。循环包可以是针对特定艺术家、针对特定心情、针对特定事件类型等的包。客户端设备可以下载循环包以供离线收听或按需下载循环包的部分,例如用于在线收听。
在一些实施例中,生成的流媒体是指定用户在使用音乐生成器系统时听到的音乐内容的数据。请注意,对于给定的生成流媒体,实际输出的音频信号可能会略有不同,例如,基于音频输出设备的能力。
在一些实施例中,组合模块从循环包中可用的循环构建组合。组合模块可以接收循环、循环元数据和用户输入作为参数并且可以由客户端设备执行。在一些实施例中,组合模块输出发送到表演模块和一个或多个机器学习引擎的表演脚本。在一些实施例中,表演脚本概述了将在生成的流媒体的每个曲目上播放哪些循环以及将对流媒体应用什么效果。表演脚本可以利用节拍相关时间来表示事件发生的时间。表演脚本还可以对效果参数进行编码(例如,用于诸如混响、延迟、压缩、均衡等效果)。
在一些实施例中,表演模块接收表演脚本作为输入并将其呈现为生成的流媒体。表演模块可以产生由表演脚本指定的多个曲目并将这些曲目混合成一个流媒体(例如,立体声流媒体,尽管该流媒体在各种实施例中可以具有各种编码,包括环绕编码、基于对象的音频编码、多声道立体声等)。在一些实施例中,当提供特定的表演脚本时,表演模块将总是产生相同的输出。
在一些实施例中,分析模块是服务器实施的模块,其接收反馈信息并配置组合模块(例如,实时地、定期地、基于管理员命令等)。在一些实施例中,分析模块使用机器学习技术的组合来将用户反馈与表演脚本和循环库元数据相关联。
图21是示出根据一些实施例的包括分析和组合模块的示例音乐生成器系统的框图。在一些实施例中,图21的系统被配置为生成潜在无限的音乐流媒体,用户可以直接控制音乐的情绪和风格。在所示实施例中,系统包括分析模块2110、组合模块2120、表演模块2130和音频输出设备2140。在一些实施例中,分析模块2110由服务器实施,组合模块2120和表演模块2130由一个或多个客户端设备实施。在其他实施例中,模块2110、2120和2130都可以在客户端设备上实施或者可以都在服务器端实施。
在所示实施例中,分析模块2110存储一个或多个艺术家包2112并实施特征提取模块2114、客户端模拟器模块2116和深度神经网络2118。
在一些实施例中,特征提取模块2114在分析循环音频之后将循环添加到循环库中(尽管注意一些循环可以与已经生成的元数据一起被接收并且可能不需要分析)。例如,可以分析诸如wav、aiff或FLAC之类格式的原始音频以获取可量化的音乐属性,例如乐器分类、音高转录、节拍计时、拍子、文件长度和多个频率仓中的音频幅度。分析模块2110还可以存储更抽象的音乐属性或循环的情绪描述,例如,基于艺术家的手动标记或机器收听。例如,可以使用多个离散类别来量化情绪,其中每个类别的值范围用于给定循环。
例如,考虑循环A,它被分析以确定使用了音符G2、Bb2和D2,第一个节拍在文件6毫秒处开始,节拍数为122bpm,文件长度为6483毫秒,并且循环在五个频率仓内具有0.3、0.5、0.7、0.3和0.2的归一化幅度值。艺术家可以将循环标记为具有以下情绪值的“放克流派”:
超越 和平 力量 喜悦 悲伤 紧张
分析模块2110可以将该信息存储在数据库中并且客户端可以下载该信息的子部分,例如,作为循环包。尽管出于说明的目的示出了艺术家包2112,但是分析模块2110可以向组合模块2120提供各种类型的循环包。
在所示实施例中,客户端模拟器模块2116分析各种类型的反馈以提供深度神经网络2118支持的格式的反馈信息。在所示实施例中,深度神经网络2118还接收由组合模块生成的演奏脚本作为输入。在一些实施例中,深度神经网络基于这些输入来配置组合模块,例如,以改进生成的音乐输出类型和期望反馈之间的相关性。例如,深度神经网络可以周期性地向实施组合模块2120的客户端设备推送更新。请注意,深度神经网络2118是出于说明的目的而示出的,并且可以在所公开的实施例中提供强大的机器学习性能,但并不旨在限制本公开的范围。在各种实施例中,可以单独或以各种组合实施各种类型的机器学习技术以执行类似的功能。请注意,机器学习模块可用于在一些实施例中直接实施规则集(例如,排列规则或技术),或者可用于控制实施其他类型的规则集的模块,例如,在所示实施例中使用深度神经网络2118。
在一些实施例中,分析模块2110为组合模块2120生成组合参数以改进期望的反馈和特定参数的使用之间的相关性。例如,实际的用户反馈可用于调整组合参数,例如,以尝试减少负面反馈。
作为一个示例,考虑模块2110发现负反馈(例如,明确的低排名、低音量收听、短收听时间等)与使用大量层的作品之间的相关性的情况。在一些实施例中,模块2110使用诸如反向传播的技术来确定调整用于添加更多曲目的概率参数会降低此问题的频率。例如,模块2110可以预测将概率参数减少50%将减少8%的负反馈,并且可以确定执行减少并将更新的参数推送到组合模块(请注意,概率参数在下面详细讨论,但可以类似地调整统计模型的各种参数之一)。
作为另一个示例,考虑模块2110发现负反馈与用户将情绪控件设置为高度紧张相关的情况。还可以发现带有低度紧张标签的循环与要求高度紧张的用户之间的相关性。在这种情况下,模块2110可以增加一个参数,使得当用户请求高度紧张音乐时选择具有高度紧张标签的循环的概率增加。因此,机器学习可以基于各种信息,包括组合输出、反馈信息、用户控件输入等。
在所示实施例中,组合模块2120包括部分定序器2122、部分排列器2124、技术实施模块2126和循环选择模块2128。在一些实施例中,组合模块2120基于循环元数据和用户控件输入(例如,情绪控制)来组织和构造组合的部分。
在一些实施例中,部分定序器2122对不同类型的部分进行定序。在一些实施例中,部分定序器2122实施有限状态机以在操作期间连续输出下一种类型的部分。例如,组合模块2120可以被配置为使用不同类型的部分,例如前奏、增进、下降、分解和桥接,如下面参考图23进一步详细讨论的。此外,每个部分可以包括定义音乐如何在整个部分中变化的多个子部分,例如,包括转入子部分、主要内容子部分和转出子部分。
在一些实施例中,部分排列器2124根据排列规则构造子部分。例如,一条规则可以指定通过逐渐添加曲目来转入。另一个规则可以通过逐渐增加一组曲目的增益来指定转入。另一条规则可以指定切分人声循环来创建一个旋律。在一些实施例中,循环库中的循环被附加到曲目的概率是部分或子部分中的当前位置的函数、在另一个曲目上在时间上重叠的循环以及诸如情绪变量之类的用户输入参数(可用于确定生成的音乐内容的目标属性)。例如,可以通过基于机器学习调整系数来调整函数。
在一些实施例中,技术实施模块2120被配置为通过添加例如由艺术家指定的或通过分析特定艺术家的作品确定的规则来促进部分排列。“技术”可以描述特定艺术家如何在技术层面实施排列规则。例如,对于指定通过逐渐添加曲目来转入的排列规则,一种技术可以指示按鼓、低音、打击垫、然后人声的顺序添加曲目,而另一种技术可以指示按低音、打击垫、人声、然后鼓的顺序添加曲目。类似地,对于指定切分人声循环以创建旋律的排列规则,一种技术可以指示在每第二个节拍上切分人声并在移动到下一个切分部分之前重复循环的切分部分两次。
在所示实施例中,循环选择模块2128根据排列规则和技术选择循环,以包括在部分排列器2124的部分中。一旦部分完成,就可以生成相应的表演脚本并将其发送到表演模块2130。表演模块2130可以以各种间隔尺寸接收表演脚本部分。这可以包括例如用于特定长度的表演的整个表演脚本、每个部分的表演脚本、每个子部分的表演脚本等。在一些实施例中,排列规则、技术或循环选择是统计实施,例如,不同的方法使用不同的时间百分比。
在所示实施例中,表演模块2130包括滤波器模块2131、效果模块2132、混合模块2133、主模块2134和执行模块2135。在一些实施例中,这些模块处理表演脚本并以音频输出设备2140支持的格式生成音乐数据。表演脚本可以指定要播放的循环、它们应该在什么时候播放、模块2132应该应用什么效果(例如,在每个曲目或每个子部分的基础上)、模块2131应该应用什么滤波器等。
例如,表演脚本可以指定在特定曲目上应用从到5000毫秒从1000到20000赫兹的低通滤波器。作为另一个示例,表演脚本可以指定在特定曲目上应用0.2湿设置(wetsetting)从5000到15000毫秒的混响。
在一些实施例中,混合模块2133被配置为对被组合的曲目执行自动级别控制。在一些实施例中,混合模块2133使用组合曲目的频域分析来测量具有太多或太少能量的频率,并将增益应用于不同频带中的曲目以均匀混合。在一些实施例中,主模块2134被配置为执行多频带压缩、均衡(EQ)或限制程序以生成用于由执行模块2135进行最终格式化的数据。图21的实施例可以根据用户输入或其他反馈信息自动生成各种输出音乐内容,而机器学习技术可以允许随着时间的推移改进用户体验。
图22是示出根据一些实施例的音乐内容的示例增进部分的图。图21的系统可以通过应用排列规则和技术来组成这样的部分。在所示示例中,增进部分包括三个子部分和用于人声、打击垫、鼓、低音和白噪声的单独曲目。
在所示示例中,子部分中的过渡包括鼓循环A,该循环也针对主要内容子部分重复。子部分中的过渡还包括低音循环A。如图所示,该部分的增益从低开始并在整个部分中线性增加(尽管可以设想非线性增加或减少)。在所示示例中,主要内容和转出子部分包括各种人声、打击垫、鼓和低音循环。如上所述,用于自动排序部分、排列部分和实施技术的公开技术可以基于各种用户可调整的参数生成近乎无限的输出音乐内容的流媒体。
在一些实施例中,计算机系统显示类似于图22的界面并允许艺术家指定用于组成部分的技术。例如,艺术家可以创建结构,如图22所示,可以被解析为组合模块的代码。
图23是示出根据一些实施例的用于布置音乐内容的部分的示例技术的图。在所示实施例中,生成的流媒体2310包括多个部分2320,每个部分包括开始子部分2322、发展子部分2324和过渡子部分2326。在所示示例中,每个部分/子部分的多种类型示于通过虚线连接的表格中。在所示实施例中,圆形元件是排列工具的示例,其可以使用如下所述的特定技术进一步实施。如所示,可以根据统计百分比伪随机地执行各种组合决策。例如,可以统计地确定子部分的类型、特定类型或子部分的排列工具或用于实施排列工具的技术。
在所示示例中,给定部分2320是以下五种类型之一:前奏、增进、下降、分解和桥接,每一种都具有控制该部分的强度的不同功能。在该示例中,状态子部分是以下三种类型之一:缓慢构建、突然转换或最小,每种都有不同的行为。在该示例中,开发子部分是以下三种类型之一:减少、转换或增加。在该示例中,转换子部分是以下三种类型之一:折叠、渐变或提示。例如,可以基于规则选择不同类型的部分和子部分,或者可以伪随机选择。
在所示示例中,不同子部分类型的行为是使用一种或多种排列工具来实施的。对于缓慢构建,在该示例中,40%的时间应用低通滤波器,80%的时间添加层。对于转换开发子部分,在该示例中,25%的时间循环被切分。示出了各种附加的排列工具,包括单次、压差节拍、应用混响、添加打击垫、添加主题、删除层和白噪声。包括这些示例是为了说明的目的,并不旨在限制本公开的范围。此外,为了便于说明,这些示例可能并不完整(例如,实际排列通常可能涉及更多数量的排列规则)。
在一些实施例中,一个或多个排列工具可以使用特定技术来实施(其可以是艺术家指定的或基于对艺术家内容的分析而确定的)。例如,单次可以使用音效或人声来实施,循环切分可以使用口吃或半切技术来实施,去除层可以通过去除合成器或去除人声来实施,白噪声可以使用渐变或脉冲函数等来实施。在一些实施例中,为给定的排列工具选择的特定技术可以根据统计函数来选择(例如,30%的时间去除层可以去除合成器,70%的时间可以去除给定艺术家的人声)。如上所述,可以通过分析现有的作品,例如使用机器学习来自动确定排列规则或技术。
示例方法
图24是根据一些实施例的用于使用分类帐的流程图方法。图24所示的方法可以与本文公开的任何计算机电路、系统、设备、元件或组件等结合使用。在各种实施例中,所示的一些方法元件可以以与所示不同的顺序同时执行,或者可以被省略。还可以根据需要执行附加的方法元件。
在2410中,在所示实施例中,计算设备确定指示音乐内容混合的回放特性的回放数据。混合可以包括多个音轨的确定组合(请注意,曲目的组合可以实时确定,例如,就在音乐内容混合的当前部分的输出之前,其可以是连续的内容流媒体)。该确定可以基于组成内容混合(例如,通过服务器或诸如移动电话之类的回放设备)或者可以从确定哪些音频文件包括在混合中的另一个设备接收。回放数据可以被存储(例如,以离线模式)并且可以被加密。可以周期性地或响应于特定事件(例如,重新获得与服务器的连接)来报告回放数据。
在2420中,在所示实施例中,计算设备在电子区块链分类帐数据结构中记录指定音乐内容混合中的多个音轨中的一个或多个的单独回放数据的信息。在所示实施例中,指定单独音轨的单独回放数据的信息包括单独音轨的使用数据和与单独音轨相关联的签名信息。
在一些实施例中,签名信息是一个或多个实体的标识符。例如,签名信息可以是字符串或唯一标识符。在其他实施例中,签名信息可以被加密或以其他方式混淆以避免其他人识别实体。在一些实施例中,使用数据包括以下至少一项:音乐内容混合的播放时间或音乐内容混合的播放次数。
在一些实施例中,识别音乐内容混合中的各个音轨的数据是从数据存储中检索的,该数据存储还指示要与包含一个或多个单独的音轨相关联地执行的操作。在这些实施例中,记录可以包括记录指示的操作的执行证明的指示。
在一些实施例中,系统基于指定记录在电子区块链分类账中的单独的回放数据的信息来确定与多个音轨相关联的多个实体的报酬。
在一些实施例中,系统确定不包括在以其原始音乐形式的音乐内容混合中的第一单独音轨的使用数据。例如,可以修改音轨,用于生成新的音轨等,并且可以调整使用数据以反映该修改或使用。在一些实施例中,系统基于在多个音轨中的至少两个音轨中的音频的向量表示之间进行插值来生成新的音轨,并且使用数据是基于第一单独音轨的向量表示与新音轨的向量表示之间的距离来确定的。在一些实施例中,使用数据基于与内插矢量表示的欧几里得距离与多个音轨中的至少两个音轨中的矢量的比率。
图25是根据一些实施例的用于使用图像表示来组合音频文件的流程图方法。图25所示的方法可以与本文公开的任何计算机电路、系统、设备、元件或组件等结合使用。在各种实施例中,所示的一些方法元件可以以与所示不同的顺序同时执行,或者可以被省略。还可以根据需要执行附加的方法元件。
在2510中,在所示实施例中,计算设备生成多个音频文件的多个图像表示,其中基于指定音频文件中的数据和指定音频文件的MIDI表示生成指定音频文件的图像表示)。在一些实施例中,图像表示中的像素值表示音频文件中的速度,其中图像表示在速度分辨率中被压缩。
在一些实施例中,图像表示是音频文件的二维表示。在一些实施例中,音高由二维表示中的行表示,其中时间由二维表示中的列表示并且其中二维表示中的像素值表示速度。在一些实施例中,音高由二维表示中的行表示,其中时间由二维表示中的列表示并且其中二维表示中的像素值表示速度。在一些实施例中,音高轴被带入8个八度音程范围内的两组八度音程,其中前12行像素表示前4个八度音程,其中像素的像素值确定前4个八度音程中的哪一个被表示,并且其中第二个12行像素表示第二个4个八度音程,其中像素的像素值确定第二个4个八度音程中的哪一个被表示。在一些实施例中,沿时间轴的奇数像素值表示音符开始并且沿时间轴的偶数像素值表示音符持续。在一些实施例中,每个像素代表时间维度中节拍的一部分。
在2520中,在所示实施例中,计算设备基于多个图像表示来选择多个音频文件。
在2530中,在所示实施例中,计算设备组合多个音频文件以生成输出音乐内容。
在一些实施例中,应用一个或多个创作规则以基于多个图像表示来选择多个音频文件。在一些实施例中,应用一个或多个创作规则包括去除图像表示中高于第一阈值的像素值和去除图像表示中低于第二阈值的像素值。
在一些实施例中,将一种或多种机器学习算法应用于图像表示以用于选择和组合多个音频文件并生成输出音乐内容。在一些实施例中,在输出音乐内容中测试和声和节奏的连贯性。
在一些实施例中,从多个图像表示中生成单个图像表示并且质地特征的描述被附加到从多个音频文件中提取质地特征的单个图像表示中。在一些实施例中,单个图像表示与多个音频文件一起存储。在一些实施例中,通过对单个图像表示应用一个或多个创作规则来选择多个音频文件。
图26是根据一些实施例的用于实施用户创建的控制元件的流程图方法。图26所示的方法可以与本文公开的任何计算机电路、系统、设备、元件或组件等结合使用。在各种实施例中,所示的一些方法元件可以以与所示不同的顺序同时执行,或者可以被省略。还可以根据需要执行附加的方法元件。
在2610中,在所示实施例中,计算设备访问多个音频文件。在一些实施例中,从计算机系统的存储器访问音频文件,其中用户对访问的音频文件具有权限。
在2620中,在所示实施例中,计算设备通过使用至少一个受过训练的机器学习算法组合来自两个或多个音频文件的音乐内容来生成输出音乐内容。在一些实施例中,音乐内容的组合由至少一个受过训练的机器学习算法基于两个或多个音频文件内的音乐内容来确定。在一些实施例中,至少一个受过训练的机器学习算法通过基于两个或多个音频文件内的音乐内容从两个或多个音频文件中顺序地选择音乐内容来组合音乐内容。
在一些实施例中,至少一个受过训练的机器学习算法已经被训练为基于播放到指定时间的音乐内容的元数据在指定时间之后为即将到来的节拍选择音乐内容。在一些实施例中,至少一个受过训练的机器学习算法已进一步被训练以基于控制元件的级别在指定时间之后为即将到来的节拍选择音乐内容。
在所示实施例中,在2630中,计算设备在用户界面上实施由用户创建的用于改变所生成的输出音乐内容中的用户指定参数的控制元件,其中基于控制元件的级别确定在生成的输出音乐内容中的一个或多个音频参数的级别,并且其中一个或多个音频参数的级别与控制元件的级别之间的关系基于至少一个音乐回放会话期间的用户输入。在一些实施例中,用户指定参数的级别基于一种或多种环境条件而变化。
在一些实施例中,一个或多个音频参数的级别与控制元件的级别之间的关系通过以下方式确定:在至少一个音乐回放会话期间播放多个音轨,其中多个音轨具有变化的音频参数;对于每个音轨,接收指定音轨中用户指定参数的用户选择级别的输入;为每个音轨评估音轨中一个或多个音频参数的级别;以及基于用户指定参数的每个用户选择级别与一个或多个音频参数的每个评估级别之间的相关性,确定一个或多个音频参数的级别与控制元件的级别之间的关系。
在一些实施例中,使用一种或多种机器学习算法来确定一个或多个音频参数的级别与控制元件的级别之间的关系。在一些实施例中,基于在所生成的输出音乐内容的回放期间控制元件的级别的用户变化,而细化一个或多个音频参数的级别与控制元件的级别之间的关系。在一些实施例中,使用来自音轨的元数据来评估音轨中的一个或多个音频参数的级别。在一些实施例中,一个或多个音频参数的级别与用户指定参数的级别之间的关系进一步基于一个或多个附加音乐回放会话期间的附加用户输入。
在一些实施例中,计算设备在用户界面上实施由用户创建的至少一个附加控制元件,用于改变生成的输出音乐内容中的附加用户指定参数,其中附加用户指定参数是用户指定参数的子参数。在一些实施例中,生成的输出音乐内容基于用户对控制元件的级别的调整而被修改。在一些实施例中,在用户界面上实施反馈控制元件,其中反馈控制元件允许用户在回放期间对所生成的输出音乐内容提供正反馈或负反馈。在一些实施例中,至少一个受过训练的机器算法基于在回放期间接收到的反馈来修改后续生成的输出音乐内容的生成。
图27是根据一些实施例的用于通过修改音频参数来生成音乐内容的流程图方法。图27所示的方法可以与本文公开的任何计算机电路、系统、设备、元件或组件等结合使用。在各种实施例中,所示的一些方法元件可以以与所示不同的顺序同时执行,或者可以被省略。还可以根据需要执行附加的方法元件。
在2710中,在所示实施例中,计算设备访问一组音乐内容。在一些实施例中。
在2720中,在所示实施例中,计算设备生成音乐内容的音频信号的第一图,其中第一图是音频参数相对于时间的图。
在2730中,在所示实施例中,计算设备生成音乐内容的音频信号的第二图,其中第二图是音频参数相对于节拍的信号图。在一些实施例中,音频信号的第二图具有与音频信号的第一图类似的结构。
在2740中,在所示实施例中,计算设备通过修改回放音乐内容中的音频参数从回放音乐内容生成新音乐内容,其中基于第一图和第二图的组合来修改音频参数。
在一些实施例中,第一图和第二图中的音频参数由图中确定音频信号的属性变化的节点定义。在一些实施例中,生成新音乐内容包括:接收回放音乐内容;确定第一图中对应于回放音乐内容中的音频信号的第一节点;确定第二图中对应于第一节点的第二节点;基于第二节点确定一个或多个指定音频参数;以及通过修改指定的音频参数来修改回放音乐内容中音频信号的一个或多个属性。在一些实施例中,一种或多种附加指定的音频参数基于第一节点确定并且通过修改附加指定的音频参数来修改回放音乐内容中附加音频信号的一个或多个属性。
在一些实施例中,确定一个或多个音频参数包括:基于第二图中的第二节点的位置确定第二图的一部分以实施音频参数,并且从第二图的所确定部分中选择音频参数作为一个或多个音频指定参数。在一些实施例中,修改一个或多个指定的音频参数修改与第二图的所确定部分相对应的回放音乐内容的一部分。在一些实施例中,回放音乐内容中的音频信号的修改属性包括信号幅度、信号频率或其组合。
在一些实施例中,将一个或多个自动化应用于音频参数,其中自动化中的至少一个是对至少一个音频参数的预编程时间操纵。在一些实施例中,将一个或多个调制应用于音频参数,其中调制中的至少一个在至少一个自动化之上以乘法方式修改至少一个音频参数。
以下编号条款列出了本文公开的各种非限制性实施例:
集合A
A1.一种方法,包括:
计算机系统生成多个音频文件的多个图像表示,其中基于指定音频文件中的数据和指定音频文件的MIDI表示生成指定音频文件的图像表示;
基于多个图像表示选择多个音频文件;以及
组合多个音频文件以生成输出音乐内容。
A2.根据集合A中任何前述条款的方法,其中图像表示中的像素值表示音频文件中的速度,并且其中图像表示在速度分辨率中被压缩。
A3.根据集合A中任何前述条款的方法,其中图像表示是音频文件的二维表示。
A4.根据集合A中任何前述条款的方法,其中音高由二维表示中的行表示,其中时间由二维表示中的列表示,并且其中二维表示中的像素值表示速度。
A5.根据集合A中任何前述条款的方法,其中二维表示为32像素宽乘以24像素高,并且其中每个像素表示时间维度中节拍的一部分。
A6.根据集合A中任何前述条款的方法,其中音高轴被带入8个八度音程范围内的两组八度音程,其中前12行像素表示前4个八度音程,其中像素的像素值确定前4个八度音程中的哪一个被表示,并且其中第二个12行像素表示第二个4个八度音程,其中像素的像素值确定第二个4个八度音程中的哪一个被表示。
A7.根据集合A中任何前述条款的方法,其中沿时间轴的奇数像素值表示音符开始并且沿时间轴的偶数像素值表示音符持续。
A8.根据集合A中任何前述条款的方法,还包括应用一个或多个创作规则以基于多个图像表示来选择多个音频文件。
A9.根据集合A中任何前述条款的方法,其中应用一个或多个创作规则包括去除图像表示中高于第一阈值的像素值和去除图像表示中低于第二阈值的像素值。
A10.根据集合A中任何前述条款的方法,还包括将一个或多个机器学习算法应用于图像表示用于选择和组合多个音频文件并生成输出音乐内容。
A11.根据集合A中任何前述条款的方法,还包括测试输出音乐内容中的和声和节奏连贯性。
A12.根据集合A中任何前述条款的方法,还包括:
从多个图像表示中生成单个图像表示;
从多个音频文件中提取一个或多个质地特征;以及
将提取的质地特征的描述附加到单个图像表示中。
A13.一种非暂态计算机可读介质,具有存储在其上的指令,这些指令可由计算设备执行以执行操作,包括:
根据集合A中任何前述条款的方法执行的操作的任何组合。
A14.一种装置,包括:
一个或多个处理器;和
一个或多个存储器,具有存储在其上的程序指令,这些程序指令可由一个或多个处理器执行,以:
执行根据集合A中任何前述条款的方法执行的操作的任何组合。
集合B
B1.一种方法,包括:
计算机系统访问一组音乐内容;
计算机系统生成音乐内容的音频信号的第一图,其中第一图是音频参数相对于时间的图;
计算机系统生成音乐内容的音频信号的第二图,其中第二图是音频参数相对于节拍的信号图;以及
计算机系统通过修改回放音乐内容中的音频参数从回放音乐内容中生成新音乐内容,其中音频参数是基于第一图和第二图的组合而修改的。
B2.根据集合B中任何前述条款的方法,其中音频信号的第二图具有与音频信号的第一图相似的结构。
B3.根据集合B中任何前述条款的方法,其中第一图和第二图中的音频参数由图中确定音频信号的属性变化的节点定义。
B4.根据集合B中任何前述条款的方法,其中生成新音乐内容包括:
接收回放音乐内容;
确定第一图中对应于回放音乐内容中的音频信号的第一节点;
确定第二图中对应于第一节点的第二节点;
基于第二节点确定一个或多个指定音频参数;以及
通过修改指定的音频参数来修改回放音乐内容中音频信号的一个或多个属性。
B5.根据集合B中任何前述条款的方法,还包括:
基于第一节点确定一个或多个附加的指定音频参数;以及
通过修改附加的指定音频参数来修改回放音乐内容中的附加音频信号的一个或多个属性。
B6.根据集合B中任何前述条款的方法,其中确定一个或多个音频参数包括:
基于第二图中第二节点的位置,确定第二图的一部分以实施音频参数;以及
从第二图的确定部分中选择音频参数作为一个或多个音频指定参数。
B7.根据集合B中任何前述条款的方法,其中修改一个或多个指定音频参数修改对应于第二图的确定部分的回放音乐内容的一部分。
B8.根据集合B中任何前述条款的方法,其中回放音乐内容中的音频信号的修改属性包括信号幅度、信号频率或其组合。
B9.根据集合B中任何前述条款的方法,还包括将一个或多个自动化应用于音频参数,其中自动化中的至少一个是对至少一个音频参数的预编程时间操纵。
B10.根据集合B中任何前述条款的方法,还包括将一个或多个调制应用于音频参数,其中调制中的至少一个在至少一个自动化之上以乘法方式修改至少一个音频参数。
B11.根据集合B中任何前述条款的方法,还包括计算机系统提供堆分配存储器,用于存储与该组音乐内容相关联的一个或多个对象,该一个或多个对象包括以下各项中的至少一个:音频信号、第一图和第二图。
B12.根据集合B中任何前述条款的方法,还包括将一个或多个对象存储在堆分配存储器中的数据结构列表中,其中数据结构列表包括用于对象的链接的序列化列表。
B13.一种非暂态计算机可读介质,具有存储在其上的指令,这些指令可由计算设备执行以执行操作,包括:
根据集合B中任何前述条款的方法执行的操作的任何组合。
B14.一种装置,包括:
一个或多个处理器;和
一个或多个存储器,具有存储在其上的程序指令,这些程序指令可由一个或多个处理器执行,以:
执行根据集合B中任何前述条款的方法执行的操作的任何组合。
集合C
C1.一种方法,包括:
计算机系统访问多个音频文件;
通过使用至少一个受过训练的机器学习算法组合来自两个或多个音频文件的音乐内容来生成输出音乐内容;以及
在与计算机系统相关联的用户界面上实施由用户创建的用于改变生成的输出音乐内容中的用户指定参数的控制元件,其中基于控制元件的级别确定在生成的输出音乐内容中的一个或多个音频参数的级别,并且其中一个或多个音频参数的级别与控制元件的级别之间的关系基于至少一个音乐回放会话期间的用户输入。
C2.根据集合C中任何前述条款的方法,其中音乐内容的组合由至少一个受过训练的机器学习算法基于两个或多个音频文件内的音乐内容来确定。
C3.根据集合C中任何前述条款的方法,其中至少一个受过训练的机器学习算法通过基于两个或多个音频文件内的音乐内容从两个或多个音频文件中顺序地选择音乐内容来组合音乐内容。
C4.根据集合C中任何前述条款的方法,其中至少一个受过训练的机器学习算法已经被训练为基于播放到指定时间的音乐内容的元数据在指定时间之后为即将到来的节拍选择音乐内容。
C5.根据集合C中任何前述条款的方法,其中至少一个受过训练的机器学习算法已进一步被训练以基于控制元件的级别在指定时间之后为即将到来的节拍选择音乐内容。
C6.根据集合C中任何前述条款的方法,其中一个或多个音频参数的级别与控制元件的级别之间的关系通过以下方式确定:
在至少一个音乐回放会话期间播放多个音轨,其中多个音轨具有变化的音频参数;
对于每个音轨,接收指定音轨中用户指定参数的用户选择级别的输入;为每个音轨评估音轨中一个或多个音频参数的级别;以及
基于用户指定参数的每个用户选择级别与一个或多个音频参数的每个评估级别之间的相关性,确定一个或多个音频参数的级别与控制元件的级别之间的关系。
C7.根据集合C中任何前述条款的方法,其中使用一种或多种机器学习算法来确定一个或多个音频参数的级别与控制元件的级别之间的关系。
C8.根据集合C中任何前述条款的方法,还包括基于在所生成的输出音乐内容的回放期间控制元件的级别的用户变化而细化一个或多个音频参数的级别与控制元件的级别之间的关系。
C9.根据集合C中任何前述条款的方法,其中使用来自音轨的元数据评估音轨中的一个或多个音频参数的级别。
C10.根据集合C中任何前述条款的方法,还包括计算机系统基于一个或多个环境条件改变用户指定参数的级别。
C11.根据集合C中任何前述条款的方法,还包括在与计算机系统相关联的用户界面上实施由用户创建的至少一个附加控制元件,用于改变生成的输出音乐内容中的附加用户指定参数,其中附加用户指定参数是用户指定参数的子参数。
C12.根据集合C中任何前述条款的方法,还包括从计算机系统的存储器访问音频文件,其中用户对访问的音频文件具有权限。
C13.一种非暂态计算机可读介质,具有存储在其上的指令,这些指令可由计算设备执行以执行操作,包括:
根据集合C中任何前述条款的方法执行的操作的任何组合。
C14.一种装置,包括:
一个或多个处理器;和
一个或多个存储器,具有存储在其上的程序指令,这些程序指令可由一个或多个处理器执行,以:
执行根据集合C中任何前述条款的方法执行的操作的任何组合。
集合D
D1.一种方法,包括:
计算机系统确定音乐内容混合的回放数据,其中回放数据指示音乐内容混合的回放特性,其中音乐内容混合包括多个音轨的确定组合;以及
计算机系统在电子区块链分类帐数据结构中记录指定音乐内容混合中的多个音轨中的一个或多个的单独回放数据的信息,其中指定单独音轨的单独回放数据的信息包括单独音轨的使用数据和与单独音轨相关联的签名信息。
D2.根据集合D中任何前述条款的方法,其中使用数据包括以下至少一项:音乐内容混合的播放时间或音乐内容混合的播放次数。
D3.根据集合D中任何前述条款的方法,还包括基于音乐内容混合的回放数据和识别音乐内容混合中的单独音轨的数据来确定指定单独音轨的单独回放数据的信息。
D4.根据集合D中任何前述条款的方法,其中从数据存储中检索识别音乐内容混合中的单独音轨的数据,该数据存储还指示与包含一个或多个单独音轨相关联的要执行的操作,其中记录包括记录指示操作的性能证明的指示。
D5.根据集合D中任何前述条款的方法,还包括基于签名信息和指定与多个音轨相关联的多个实体的签名信息的数据来识别与单独音轨相关联的一个或多个实体。
D6.根据集合D中任何前述条款的方法,还包括基于指定记录在电子区块链分类账中的单独回放数据的信息,确定与多个音轨相关联的多个实体的报酬。
D7.根据集合D中任何前述条款的方法,其中回放数据包括用于生成音乐混合的一个或多个机器学习模块的使用数据。
D8.根据集合D中任何前述条款的方法,还包括回放设备至少临时存储音乐内容混合的回放数据。
D9.根据集合D中任何前述条款的方法,其中所存储的回放数据由回放设备周期性地或响应于事件而传送到另一个计算机系统。
D10.根据集合D中任何前述条款的方法,还包括回放设备对音乐内容混合的回放数据进行加密。
D11.根据集合D中任何前述条款的方法,其中区块链分类账可公开访问且不可变。
D12.根据集合D中任何前述条款的方法,还包括:
确定不包括在以其原始音乐形式的音乐内容组合中的第一单独音轨的使用数据。
D13.根据集合D中任何前述条款的方法,还包括:
基于在多个音轨中的至少两个中的音频的矢量表示之间进行插值来生成新的音轨;
其中确定使用数据是基于第一单独音轨的向量表示和新音轨的向量表示之间的距离。
D14.一种非暂态计算机可读介质,具有存储在其上的指令,这些指令可由计算设备执行以执行操作,包括:
根据集合D中任何前述条款的方法执行的操作的任何组合。
D15.一种装置,包括:
一个或多个处理器;和
一个或多个存储器,具有存储在其上的程序指令,这些程序指令可由一个或多个处理器执行,以:
执行根据集合D中任何前述条款的方法执行的操作的任何组合。
集合E
E1.一种方法,包括:
计算系统存储指定多个不同实体的多个曲目的数据,其中该数据包括多个音乐曲目的各个曲目的签名信息;
计算系统对多个曲目进行分层以生成输出音乐内容;
在电子区块链分类帐数据结构中记录指定分层中包含的曲目的信息以及那些曲目的各个签名信息。
E2.根据集合E中任何条款的方法,其中区块链分类账可公开访问且不可变。
E3.根据集合E中任何条款的方法,还包括:
检测与签名信息不匹配的实体对曲目之一的使用。
E4.一种方法,包括:
计算系统存储为多个不同实体指定多个曲目的数据,其中该数据包括链接到其他内容的元数据;
计算系统选择和分层多个曲目以生成输出音乐内容;
基于所选曲目的元数据检索要与输出音乐内容一起输出的内容。
E5.根据集合E中任何条款的方法,其中其他内容包括视觉广告。
E6.一种方法,包括:
计算系统存储指定多个曲目的数据;
计算系统导致多个音乐示例的输出;
计算系统接收用户输入,该用户输入指示用户关于音乐示例的一个或多个是否展示第一音乐参数的意见;
基于接收存储用户的自定义规则信息;
计算系统接收指示对第一音乐参数的调整的用户输入;
计算系统基于自定义规则信息,对多个曲目进行选择和分层,以生成输出音乐内容。
E7.根据集合E中任何条款的方法,其中用户指定第一音乐参数的名称。
E8.根据集合E中任何条款的方法,其中用户为第一音乐参数的一个或多个范围指定一个或多个目标目标,并且其中选择和分层基于过去的反馈信息。
E9.根据集合E中任何条款的方法,还包括:响应于确定基于过去反馈信息的选择和分层不满足一个或多个目标目标,调整多个其他音乐属性并确定调整多个其他音乐属性对一个或多个目标目标的效果。
E10.根据集合E中任何条款的方法,其中目标目标是用户心率。
E11.根据集合E中任何条款的方法,其中选择和分层由机器学习引擎执行。
E12.根据集合E中任何条款的方法,还包括训练机器学习引擎,包括基于多种类型的用户输入训练教师模型和基于接收到的用户输入训练学生模型。
E13.一种方法,包括:
计算系统存储指定多个曲目的数据;
计算系统确定音频设备位于第一类型的环境中;
当音频设备位于第一类型的环境中时,接收调整第一音乐参数的用户输入;
计算系统基于调整后的第一音乐参数和第一类型的环境,选择并分层多个曲目,以生成通过音频设备的输出音乐内容;
计算系统确定音频设备位于第二类型的环境中;
当音频设备位于第二类型的环境中时,接收调整第一音乐参数的用户输入;
计算系统基于调整后的第一音乐参数和第二类型的环境选择并分层多个曲目,以通过音频设备生成输出音乐内容。
E14.根据集合E中任何条款的方法,其中当音频设备处于第一类型的环境时与音频设备处于第二类型的环境时相比,基于对第一音乐参数的调整选择和分层调整不同的音乐属性。
E15.一种方法,包括:
计算系统存储指定多个曲目的数据;
计算系统存储指定音乐内容的数据;
确定存储的音乐内容的一个或多个参数;
计算系统基于存储的音乐内容的一个或多个参数选择和分层多个曲目以生成输出音乐内容;以及
导致输出音乐内容和存储的音乐内容的输出,使得它们在时间上重叠。
E16.一种方法,包括:
计算系统存储指定多个曲目和相应曲目属性的数据;
计算系统存储指定音乐内容的数据;
确定存储的音乐内容的一个或多个参数,并确定包括在存储的音乐内容中的一个或多个曲目;
基于一个或多个参数,计算系统选择和分层存储的曲目和确定的曲目以生成输出音乐内容。
E17.一种方法,包括:
计算系统存储指定多个曲目的数据;
计算系统选择和分层多个曲目以生成输出音乐内容;
其中选择是使用以下两者执行的:
神经网络模块,被配置为基于最近使用的曲目选择未来使用的曲目;和
一个或多个分层隐藏马尔可夫模型,被配置为选择用于即将输出音乐内容的结构并基于所选结构约束神经网络模块。
E18.根据集合E中任何条款的方法,还包括:
基于关于输出音乐内容的正面或负面用户反馈训练一个或多个分层隐藏马尔可夫模型。
E19.根据集合E中任何条款的方法,还包括:
基于响应多个音乐内容样本而提供的用户选择训练神经网络模型。
E20.根据集合E中任何条款的方法,其中神经网络模块包括多个层,包括至少一个全局训练的层和基于来自特定用户帐户的反馈而专门训练的至少一个层。
E21.一种方法,包括:
计算系统存储指定多个曲目的数据;
计算系统选择和分层多个曲目以生成输出音乐内容,其中使用全局训练的机器学习模块和本地训练的机器学习模块两者来执行选择。
E22.根据集合E中任何条款的方法,还包括使用来自多个用户帐户的反馈来训练全局训练的机器学习模块,以及基于来自单个用户帐户的反馈训练本地训练的机器学习模块。
E23.根据集合E中任何条款的方法,其中全局训练的机器学习模块和本地训练的机器学习模块都基于用户对音乐属性的调整来提供输出信息。
E24.根据集合E中任何条款的方法,其中全局训练的机器学习模块和本地训练的机器学习模块包括在神经网络的不同层中。
E25.一种方法,包括:
接收指示更高级别音乐创作参数的值的第一用户输入;
基于更高级别音乐创作参数的值自动选择和组合音轨,包括在输出音乐内容时使用与更高级别音乐创作参数相关联的一个或多个子参数的多个值;
接收指示一个或多个子参数的一个或多个值的第二用户输入;以及
约束基于第二用户输入的自动选择和组合。
E26.根据集合E中任何条款的方法,其中更高级别音乐创作参数是能量参数,并且其中一个或多个子参数包括速度、层数、人声参数或低音参数。
E27.一种方法,包括:
计算系统访问乐谱信息;
计算系统基于乐谱信息合成音乐内容;
分析音乐内容以生成不同时间点的多个频率仓的频率信息;
训练机器学习引擎,包括输入频率信息和使用乐谱信息作为训练的标签。
E28.根据集合E中任何条款的方法,还包括:
将音乐内容输入到受过训练的机器学习引擎;以及
使用机器学习引擎为音乐内容生成乐谱信息,其中生成的乐谱信息包括不同时间点的多个频率仓的频率信息。
E29.根据集合E中任何条款的方法,其中不同的时间点之间具有固定的距离。
E30.根据集合E中任何条款的方法,其中不同的时间点对应于音乐内容的节拍。
E31.根据集合E中任何条款的方法,其中机器学习引擎包括卷积层和循环层。
E32.根据集合E中任何条款的方法,其中频率信息包括在时间点音乐内容是否包括频率仓中的内容的二进制指示。
E33.根据集合E中任何条款的方法,其中音乐内容包括多种不同的乐器。
尽管上面已经描述了具体实施例,但这些实施例并不旨在限制本公开的范围,即使仅针对特定特征描述了单个实施例。除非另有说明,否则本公开中提供的特征示例旨在说明性而非限制性的。上面的描述旨在覆盖对受益于本公开的本领域技术人员显而易见的此类替代、修改和等效物。
本公开的范围包括本文公开的任何特征或特征的组合(显式或隐含),或其任何概括,无论其是否减轻了本文所解决的任何或所有问题。因此,在对任何此类特征组合进行本申请(或要求其优先权的申请)期间,可以提出新的权利要求。特别地,参考所附权利要求,来自从属权利要求的特征可以与独立权利要求的特征组合,并且来自各个独立权利要求的特征可以以任何适当的方式组合,而不仅仅是以所附权利要求中列举的特定组合。

Claims (20)

1.一种方法,包括:
通过计算机系统生成多个音频文件的多个图像表示,其中,指定音频文件的图像表示是基于所述指定音频文件中的数据和所述指定音频文件的MIDI表示而生成的;
基于所述多个图像表示选择几个音频文件;以及
组合所述几个音频文件以生成输出音乐内容。
2.根据权利要求1所述的方法,其中,所述图像表示中的像素值表示所述音频文件中的速度,并且其中,所述图像表示在速度分辨率方面被压缩。
3.根据权利要求1所述的方法,其中,所述图像表示是所述音频文件的二维表示。
4.根据权利要求3所述的方法,其中音高由所述二维表示中的行表示,其中时间由所述二维表示中的列表示,并且其中所述二维表示中的像素值表示速度。
5.根据权利要求4所述的方法,其中,所述二维表示为32像素宽乘以24像素高,并且其中,每个像素表示时间维度中的节拍的一部分。
6.根据权利要求4所述的方法,其中,音高轴被分等级为8个八度音程范围内的两组八度音程,其中前12行像素表示前4个八度音程,其中像素的像素值确定所述前4个八度音程中的哪一个被表示,并且其中,第二个12行像素表示再4个八度音程,其中所述像素的像素值确定所述再4个八度音程中的哪一个被表示。
7.根据权利要求4所述的方法,其中,沿时间轴的奇数像素值表示音符开始并且沿所述时间轴的偶数像素值表示音符持续。
8.根据权利要求1所述的方法,还包括应用一个或多个创作规则以基于所述多个图像表示来选择所述几个音频文件。
9.根据权利要求8所述的方法,其中,应用一个或多个创作规则包括去除所述图像表示中高于第一阈值的像素值和去除所述图像表示中低于第二阈值的像素值。
10.根据权利要求1所述的方法,还包括将一个或多个机器学习算法应用于所述图像表示以用于选择和组合所述几个音频文件并生成所述输出音乐内容。
11.根据权利要求10所述的方法,还包括针对所述输出音乐内容中的和声和节奏连贯性进行测试。
12.根据权利要求1所述的方法,还包括:
从所述多个图像表示生成单个图像表示;
从所述多个音频文件中提取一个或多个质地特征;以及
将所提取的质地特征的描述附加到所述单个图像表示。
13.一种非暂态计算机可读介质,具有存储在其上的指令,所述指令能够由计算设备执行以执行操作,所述操作包括:
生成多个音频文件的多个图像表示,其中,指定音频文件的图像表示是基于所述指定音频文件中的数据和所述指定音频文件的MIDI表示而生成的;
基于所述多个图像表示选择几个音频文件;以及
组合所述几个音频文件以生成输出音乐内容。
14.根据权利要求13所述的非暂态计算机可读介质,其中,所述图像表示是所述音频文件的二维表示,其中音高由行表示,时间由列表示,并且其中,所述图像表示中的像素的像素值表示来自所述指定音频文件的所述MIDI表示的速度。
15.根据权利要求14所述的非暂态计算机可读介质,其中,每个像素表示时间维度中的节拍的一部分。
16.根据权利要求13所述的非暂态计算机可读介质,还包括:
从所述多个图像表示生成单个图像表示;以及
将质地特征的描述附加到所述单个图像表示,其中,所述质地特征是从所述多个音频文件中提取的。
17.根据权利要求16所述的非暂态计算机可读介质,还包括将所述单个图像表示与所述多个音频文件一起存储。
18.根据权利要求16所述的非暂态计算机可读介质,还包括通过在所述单个图像表示上应用一个或多个创作规则来选择所述几个音频文件。
19.一种装置,包括:
一个或多个处理器;和
一个或多个存储器,具有存储在其上的程序指令,所述程序指令能够由所述一个或多个处理器执行,以执行以下操作:
生成多个音频文件的多个图像表示,其中,指定音频文件的图像表示是基于所述指定音频文件中的数据和所述指定音频文件的MIDI表示而生成的;
基于所述多个图像表示选择几个音频文件;以及
组合所述几个音频文件以生成输出音乐内容。
20.根据权利要求19所述的装置,其中,存储在所述一个或多个存储器上的所述程序指令能够由所述一个或多个处理器执行以播放所生成的输出音乐内容。
CN202180013939.XA 2020-02-11 2021-02-11 音乐内容生成 Pending CN115066681A (zh)

Applications Claiming Priority (9)

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

Publications (1)

Publication Number Publication Date
CN115066681A true CN115066681A (zh) 2022-09-16

Family

ID=74860461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180013939.XA Pending CN115066681A (zh) 2020-02-11 2021-02-11 音乐内容生成

Country Status (6)

Country Link
US (5) US11635936B2 (zh)
EP (1) EP4104072A1 (zh)
JP (2) JP7440651B2 (zh)
KR (1) KR20220128672A (zh)
CN (1) CN115066681A (zh)
WO (1) WO2021163377A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109599079B (zh) * 2017-09-30 2022-09-23 腾讯科技(深圳)有限公司 一种音乐的生成方法和装置
US10679596B2 (en) * 2018-05-24 2020-06-09 Aimi Inc. Music generator
IT201800008080A1 (it) * 2018-08-13 2020-02-13 Viscount Int Spa Sistema per la generazione di suono sintetizzato in strumenti musicali.
CN113767644B (zh) * 2019-04-22 2024-01-09 索可立谱公司 自动的音频-视频内容生成
US11232773B2 (en) * 2019-05-07 2022-01-25 Bellevue Investments Gmbh & Co. Kgaa Method and system for AI controlled loop based song construction
US20210090535A1 (en) * 2019-09-24 2021-03-25 Secret Chord Laboratories, Inc. Computing orders of modeled expectation across features of media
KR20220128672A (ko) * 2020-02-11 2022-09-21 에이미 인코퍼레이티드 음악 콘텐츠 생성
US11430420B2 (en) * 2020-04-29 2022-08-30 At&T Intellectual Property L, L.P. System for ledger and parametric marketplace for algorithmic content creations
US11670322B2 (en) * 2020-07-29 2023-06-06 Distributed Creation Inc. Method and system for learning and using latent-space representations of audio signals for audio content-based retrieval
WO2022040410A1 (en) * 2020-08-21 2022-02-24 Aimi Inc. Comparison training for music generator
US11593059B2 (en) * 2020-08-26 2023-02-28 Spotify Ab Systems and methods for generating recommendations in a digital audio workstation
US11929051B2 (en) * 2020-10-01 2024-03-12 General Motors Llc Environment awareness system for experiencing an environment through music
US11183160B1 (en) * 2021-02-16 2021-11-23 Wonder Inventions, Llc Musical composition file generation and management system
US12008821B2 (en) * 2021-05-07 2024-06-11 Google Llc Machine-learned models for unsupervised image transformation and retrieval
US11954318B2 (en) * 2022-02-20 2024-04-09 Monday.com Ltd. Dynamically adjusting GUI elements to reflect user multi-selection
US20230394966A1 (en) * 2022-06-06 2023-12-07 International Business Machines Corporation Adaptive sound generation
US20240203387A1 (en) * 2022-12-20 2024-06-20 Macdougal Street Technology, Inc. Generating music accompaniment
KR102636709B1 (ko) * 2023-09-14 2024-02-14 주식회사 포자랩스 강화 학습을 이용한 오디오 생성

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267819A1 (en) * 1990-09-13 2005-12-01 Kaplan Joshua D Network apparatus and method for preview of music products and compilation of market data
US20140052282A1 (en) * 2012-08-17 2014-02-20 Be Labs, Llc Music generator
WO2017087333A1 (en) * 2015-11-18 2017-05-26 Pandora Media, Inc. Procedurally generating background music for sponsored audio
CN110089137A (zh) * 2016-12-20 2019-08-02 阿佩克思项目公司 用于跨多个设备显示图像的系统和方法
CN110444185A (zh) * 2019-08-05 2019-11-12 腾讯音乐娱乐科技(深圳)有限公司 一种音乐生成方法及装置
US20190362696A1 (en) * 2018-05-24 2019-11-28 Aimi Inc. Music generator

Family Cites Families (47)

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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050267819A1 (en) * 1990-09-13 2005-12-01 Kaplan Joshua D Network apparatus and method for preview of music products and compilation of market data
US20140052282A1 (en) * 2012-08-17 2014-02-20 Be Labs, Llc Music generator
WO2017087333A1 (en) * 2015-11-18 2017-05-26 Pandora Media, Inc. Procedurally generating background music for sponsored audio
CN110089137A (zh) * 2016-12-20 2019-08-02 阿佩克思项目公司 用于跨多个设备显示图像的系统和方法
US20190362696A1 (en) * 2018-05-24 2019-11-28 Aimi Inc. Music generator
CN110444185A (zh) * 2019-08-05 2019-11-12 腾讯音乐娱乐科技(深圳)有限公司 一种音乐生成方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
US11914919B2 (en) Listener-defined controls for music content generation
US11625217B2 (en) Music generator
Herremans et al. A functional taxonomy of music generation systems
US11450301B2 (en) Music generator
Sturm et al. Folk the algorithms:(Mis) Applying artificial intelligence to folk music
Kang et al. Video2music: Suitable music generation from videos using an affective multimodal transformer model
Paiva Melody detection in polyphonic audio
Cádiz Compositional control of computer music by fuzzy logic
US20240153475A1 (en) Music management services
US20240038205A1 (en) Systems, apparatuses, and/or methods for real-time adaptive music generation
Huo et al. An LSTM-based Framework for the Synthesis of Original Soundtracks
Rawat et al. Challenges in Music Generation Using Deep Learning
Gillick Creating and Collecting Meaningful Musical Material with Machine Learning
Norowi Human-Centred Artificial Intelligence in Concatenative Sound Synthesis
KR20240021753A (ko) 청각적으로 올바른 형태를 가지는 음악 작품을 자동으로 생성하는 시스템 및 방법
O'Connell Musical Mosaicing with High Level

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40075572

Country of ref document: HK