一种基于LSTM的音乐自动合成方法及系统与流程

文档序号:18515212发布日期:2019-08-24 09:24阅读:1024来源:国知局
一种基于LSTM的音乐自动合成方法及系统与流程

本发明涉及一种基于lstm的音乐自动合成方法及系统,属于计算机音乐合成领域。



背景技术:

音乐作品是具有创造性的,直观的,是人类特有的。然而,hiller和isaacson提出使用马尔可夫链进行自动合成,因此自动合成相关的数学方法具有悠久的历史。自动合成领域包括各种各样的任务,例如旋律合成,和弦合成,节奏合成,甚至歌词合成,包揽了音乐的每个典型组成部分,并且已经进行了大量的研究。自动合成也有很多其他应用,例如,自动背景音乐生成,ai辅助合成系统等。

隐马尔可夫模型(hmm)是模型和预测序列的最流行的方法之一。实际上,鉴于数据,计算能力和可行的优化策略,hmm最适合于时间序列建模。然而,hmm的一个缺点是隐藏状态的1-k方案的效率低。当存在n个隐藏状态时,hmm的存储器被限制为log2n比特,这需要学习转移矩阵的n2参数。

递归神经网络(rnn)允许在模型中结合长期依赖性。但是rnn缺乏的一个能力是学习全部结构,这使得训练rnn的困难。从理论上讲,它可以记住有限长序列,但是在实践中它受到消失梯度问题的限制。

lstm(长短期记忆)单元解决了这种消失的梯度问题。lstm允许梯度由单独的路径流动,而不是乘法而是加法运算。lstm被采用来学习和弦进行和旋律。网络直接分析鼓轨的音频内容并使用lstm学习特征。



技术实现要素:

本发明提供了一种基于lstm的音乐自动合成方法及系统,用于解决现有技术的不足。

本发明的技术方案包括一种基于lstm的音乐自动合成方法,其特征在于,该方法包括:s10,准备多种不同类型的音乐数据,解析音乐数据获取对应的乐谱及时间节点,以及,将midi音符创建对应的第一向量;s20,将对应歌曲的歌词进行分词处理,并以歌词为基准创建对应具有相关性的第二向量;s30,使用时间循环神经网络将第一向量作为输入,以及,将第二向量作为输出,使用优化器学习预测处理;s40,在时间索引的每个预测中输出每个状态的概率;s50,将生成的结果重新编码为midi文件。

根据所述的基于lstm的音乐自动合成方法,其中步骤s10具体包括:从多种类型流行曲的midi中提解析相关的乐谱及时间节点,并用使用onehot编码将对应的127个不同的音符编码成一个长度为127维的onehot向量。

根据所述的基于lstm的音乐自动合成方法,其中步骤s20具体包括:基于现有的分词库将歌词分词,并使用df-if算法将各个词汇编码成对应唯一的有相关性的向量。

根据所述的基于lstm的音乐自动合成方法,其中步骤s30具体包括:使用第一lstm层及第二lstm层将音符编码进行作为输入,词汇编码进行输出,使用用优化器进行预测学习。

根据所述的基于lstm的音乐自动合成方法,其中第一lstm层及第二lstm层后添加带有滑动模块的attention机制层,并且使用分类交叉熵作为损失函数,第一lstm层及第二lstm层包括512个隐藏单元。

根据所述的基于lstm的音乐自动合成方法,其中优化器为adam优化器。

根据所述的基于lstm的音乐自动合成方法,其中步骤s40具体包括:s41,在预测阶段添加多样性参数α,所述α用于通过加权概率抑制或鼓励预测多样性,其中α的第i个状态pi的概率被重新加权为s42,根据重新加权概率对状态进行采样来选择状态之一,其中第一lstm层及第二lstm层始终保持相同成熟。

本发明的技术方案还包括一种用于执行上述任意所述方法的基于lstm的音乐自动合成系统,其特征在于,该系统包括:准备模块,用于准备多种不同类型的音乐数据,解析音乐数据获取对应的乐谱及时间节点,以及,将midi音符创建对应的第一向量;分词模块,用于将对应歌曲的歌词进行分词处理,并以歌词为基准创建对应具有相关性的第二向量;训练模块,用于使用时间循环神经网络将第一向量作为输入,以及,将第二向量作为输出,使用优化器学习预测处理;预测模块,用于在时间索引的每个预测中输出每个状态的概率;输出模块,用于将生成的结果重新编码为midi文件。

本发明的有益效果为:使用的lstm网络旨在从文本数据中学习,而不是学习音乐符号或数值的表示,方便分析;直接使用文本数据最小化了编码-解码方案和网络的整体设计过程,提高了效率;其次,lstm网络使用大型数据集进行训练,这使得自己能够在大型集合中学习更复杂的和弦之间的关系,使得使用者更好的发现艺术的规律。

附图说明

图1所示为根据本发明实施方式的总体流程图;

图2所示为根据本发明实施方式的系统框图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

图1所示为根据本发明实施方式的总体流程图。该方法流程包括:s10,准备多种不同类型的音乐数据,解析音乐数据获取对应的乐谱及时间节点,以及,将midi音符创建对应的第一向量;s20,将对应歌曲的歌词进行分词处理,并以歌词为基准创建对应具有相关性的第二向量;s30,使用时间循环神经网络将第一向量作为输入,以及,将第二向量作为输出,使用优化器学习预测处理;s40,在时间索引的每个预测中输出每个状态的概率;s50,将生成的结果重新编码为midi文件。

基于图1的流程,本发明进一步提供了以下技术方案:

第一步:进行数据准备,搜集各种类型流行曲并从midi中提解析相关的乐谱和对应时刻,并用使用onehot编码把对应的127个音符编码成一个长度为127维的向量。

第二步:歌词采用现有的现有的分词库将歌词分词,并用df-if算法将各个词汇编码成对应唯一的有相关性的向量。

第三步:在tensorflow深度学习框架使用两个lstm层,每个层由512个隐藏单元组成,在每个lstm层之后添加带有滑动模块的attention机制层,并且使用分类交叉熵作为损失函数,并且将音符编码作为输入,词汇编码作为输出使用adam优化器进行学习。该优化器显示了具有随机梯度下降的等效最终性能,并且收敛速度更快。

第四步:在时间索引的每个预测中输出每个状态的概率。为了使系统可调,在预测阶段使用多样性参数α,它通过重新加权概率来抑制(α<1)或鼓励(α>1)预测多样性,第i个状态pi的概率被重新加权为

然后,通过根据重新加权概率对状态进行采样来选择状态之一。两个网络始终保持相同的层数,尽管它们会产生不同的有效长度。

图2所示为根据本发明实施方式的系统框图。该系统包括:准备模块,用于准备多种不同类型的音乐数据,解析音乐数据获取对应的乐谱及时间节点,以及,将midi音符创建对应的第一向量;分词模块,用于将对应歌曲的歌词进行分词处理,并以歌词为基准创建对应具有相关性的第二向量;训练模块,用于使用时间循环神经网络将第一向量作为输入,以及,将第二向量作为输出,使用优化器学习预测处理;预测模块,用于在时间索引的每个预测中输出每个状态的概率;输出模块,用于将生成的结果重新编码为midi文件。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1