一种编曲方法、装置及电子设备与流程

文档序号:18457637发布日期:2019-08-17 01:44阅读:274来源:国知局
一种编曲方法、装置及电子设备与流程

本发明涉及数据处理技术领域,特别是涉及一种编曲方法、装置及电子设备。



背景技术:

通常,编曲这种艺术创作是由专业的作曲家耗费较长的时间和较大的精力来完成的,创作效率较低。

随着计算机技术的发展,目前,已经出现了基于机器学习进行自动化编曲的方法。现有技术中,基于机器学习的编曲方法是对各种风格的样本乐曲的音频进行机器学习,从而产生相似风格的乐曲的音频。具体的,基于机器学习进行编曲的过程为:将初始音频输入已训练的机器学习模型,提取该初始音频的音频特征,直接对该音频特征进行处理,得到对应的输出音频特征,利用该输出音频特征生成输出音频;将输出音频输入已训练的机器学习模型,循环上述过程,得到多个输出音频,从而生成乐曲。

然而,由于现有的编曲方法是音频到音频的学习过程,也就是输入音频,直接对该输入音频的音频特征进行处理,得到输出音频的过程,而音频所包括的元素内容较为复杂,这样使得编曲所耗费的时间较长,导致现有技术存在编曲效率较低的问题。



技术实现要素:

本发明实施例的目的在于提供一种编曲方法、装置及电子设备,以提高编曲的效率。具体技术方案如下:

第一方面,本发明实施例提供了一种编曲方法,包括:

获取预设的初始音频;其中,所述初始音频是编曲所利用的初始的音符数据的音频;

获取所述初始音频对应的音符数据,并将所述初始音频对应的音符数据作为目标音符数据;

将当前目标音符数据输入预先训练的第一机器学习模型,得到当前目标音符数据对应的输出音符数据;其中,所述输出音符数据与所述当前目标音符数据之间的顺序符合预定顺序,所述第一机器学习模型为根据第一样本乐谱训练得到的、用于预测作为输入内容的音符数据对应的输出音符数据的模型;

判断基于所述第一机器学习模型所得到的音符数据中音符的数量,是否达到预设音符数量;

若未达到,将所述输出音符数据作为目标音符数据,返回所述将当前目标音符数据输入预先训练的第一机器学习模型,得到当前目标音符数据对应的输出音符数据的步骤;

若达到,根据所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将所述目标乐谱数据转换为对应的目标音频。

可选地,所述根据所述初始音频对应的音符数据和所述第一机器学习模型所得到的各个音符数据,生成与预定乐曲风格相匹配的目标乐谱数据的步骤,包括:

将所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的音符数据,按照各个音符数据的获取顺序进行组合,得到初始乐谱数据;

将所述初始乐谱数据输入至预先训练的第二机器学习模型,得到与编曲所需的预定乐曲风格相匹配的目标乐谱数据,所述第二机器学习模型为用于将所输入的乐谱数据的乐曲风格迁移为所述预定乐曲风格的模型。

可选地,所述第一机器学习模型的训练过程,包括:

获取第一样本乐谱数据;

利用所述第一样本乐谱数据,对初始的第一机器学习模型进行训练,得到训练完成的第一机器学习模型。

可选地,所述获取第一样本乐谱数据,包括:

获取第一样本音频;

识别所述第一样本音频对应的乐谱数据;

将所识别到的乐谱数据作为第一样本乐谱数据。

可选地,所述识别所述第一样本音频对应的乐谱数据,包括:

识别所述第一样本音频对应的五线谱数据或简谱数据。

可选地,所述第一机器学习模型包括:长短期记忆网络lstm模型或生成式对抗网络gan模型。

第二方面,本发明实施例提供了一种编曲装置,包括:

第一获取模块,用于获取预设的初始音频;其中,所述初始音频是编曲所利用的初始的音符数据的音频;

第二获取模块,用于获取所述初始音频对应的音符数据,并将所述初始音频对应的音符数据作为目标音符数据;

输入模块,用于将当前目标音符数据输入预先训练的第一机器学习模型,得到当前目标音符数据对应的输出音符数据;其中,所述输出音符数据与所述当前目标音符数据之间的顺序符合预定顺序,所述第一机器学习模型为根据第一样本乐谱训练得到的、用于预测作为输入内容的音符数据对应的输出音符数据的模型;

判断模块,用于判断基于所述第一机器学习模型所得到的音符数据中音符的数量,是否达到预设音符数量;若未达到,触发返回模块,若达到,触发生成模块;

返回模块,用于若未达到,将所述输出音符数据作为目标音符数据,触发所述输入模块;

生成模块,用于若达到,根据所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将所述目标乐谱数据转换为对应的目标音频。

可选地,所述生成模块,包括:

组合单元,用于将所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的音符数据,按照各个音符数据的获取顺序进行组合,得到初始乐谱数据;

输入单元,用于将所述初始乐谱数据输入至预先训练的第二机器学习模型,得到与编曲所需的预定乐曲风格相匹配的目标乐谱数据,所述第二机器学习模型为用于将所输入的乐谱数据的乐曲风格迁移为所述预定乐曲风格的模型。

可选地,所述装置还包括:

训练模块,用于获取第一样本乐谱数据;利用所述第一样本乐谱数据,对初始的第一机器学习模型进行训练,得到训练完成的第一机器学习模型。

可选地,所述训练模块,具体用于获取第一样本音频;识别所述第一样本音频对应的乐谱数据;将所识别到的乐谱数据作为第一样本乐谱数据。

可选地,所述训练模块,具体用于识别所述第一样本音频对应的五线谱数据或简谱数据。

可选地,所述第一机器学习模型包括:长短期记忆网络lstm模型或生成式对抗网络gan模型。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现如上第一方面所述的编曲方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述的编曲方法步骤。

本发明实施例提供的方案,预先对第一样本乐谱进行训练学习,得到第一机器学习模型。进而,在编曲时,将预设的初始音频对应的音符数据输入预先训练的第一机器学习模型,使得第一机器学习模块循环地输出各个音符数据,从而基于初始音频对应的音符数据和第一机器学习模型输出的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将该目标乐谱数据转换为对应的目标音频。本发明实施例由于直接基于样本乐谱,学习音符到音符的对应关系,使得训练学习时所需要处理的数据量减少,降低了机器学习的复杂度。因此,基于训练好的第一机器学习模型进行编曲,可以提高编曲的效率。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种编曲方法的流程图;

图2为本发明实施例提供的一种编曲装置的结构图;

图3本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了解决现有技术问题,本发明实施例提供了一种编曲方法、装置及电子设备。

需要说明的是,本发明实施例提供的一种编曲方法可以应用于电子设备中。在具体应用中,该电子设备可以是各种终端设备,也可以是服务器,本发明对此并不限定。

如图1所示,本发明实施例提供的一种编曲方法,可以包括如下步骤:

s101,获取预设的初始音频。

其中,所述初始音频是编曲所利用的初始的音符数据的音频。

一首乐曲的音频是由各个音符数据的音频连接而成的。具体在编曲时,通常是逐个地编写各个音符数据,将编写好的各个音符数据按照编写的顺序进行组合,得到所编写的乐谱,进而将所编写的乐谱转换为对应的音频。所以在编曲时,可以先获得预设的初始音频,进一步获取该初始音频对应的音符数据,以从该音符数据开始逐个地确定后续的各个音符数据。

在具体应用中,可以随机地从音频数据库中选择一个音频作为初始音频。也可以根据希望生成的乐曲风格来确定初始音频。例如,希望生成爵士风格的乐曲,可以从多个低音音频中选择一个音频作为初始音频。希望生成现代电子风格的乐曲,可以从多个高音音频中选择一个音频作为初始音频。

需要说明的是,在本实施例中,初始音频可以是一个音符的音频。上述音频数据库可以包括一个音符的音频,也可以包括多个音符各自的音频。

s102,获取初始音频对应的音符数据,并将初始音频对应的音符数据作为目标音符数据。

本步骤获取的音符数据可以是从初始音频a转化得到的谱曲中提取得到的预设数量个音符,也可以是直接获取预设数量个音符的初始音频,再将该初始音频转换为音符得到的。

具体地,预设数量可以为一个音符,即目标音符可以为从初始音频a转化得到的谱曲中提取得到的一个音符,或者若初始音频a为一个音符的音频,则目标音符可以为将该初始音频a转换得到的音符。

在编写乐谱时,可以预先确定希望编写的目标乐谱类型。相应地,初始音频对应的音符数据就可以是目标乐谱类型所包含的多个音符中的一个音符。其中,目标乐谱类型可以是五线谱,也可以是简谱。例如,希望编写五线谱,五线谱包含100个音符,那么,初始音频对应的音符数据可以是该100个音符中的一个音符,如c4四分音符。

本发明实施例中,可以通过人工智能技术识别出初始音频对应的音符数据,也可以通过特定的识曲工具(如overture)将初始音频转化为目标乐谱类型的音符数据,或获取该初始音频的名称id,直接搜索该id对应的音符数据,还可以基于预先存储的音频与音符的对应关系,确定初始音频对应的音符数据,本发明对获取初始音频对应的音符数据的方式并不限定。

获取初始音频对应的音符数据后,就可以从该音符数据开始逐个地确定该初始音频后续的各个音符数据。

s103,将当前目标音符数据输入预先训练的第一机器学习模型,得到当前目标音符数据对应的输出音符数据。

其中,输出音符数据与当前目标音符数据之间的顺序符合预定顺序,第一机器学习模型为根据第一样本乐谱训练得到的、用于预测作为输入内容的音符数据对应的输出音符数据的模型。

本实施例中,上述预定顺序可以是:输出音符数据为当前目标音符数据的下一个音符数据。也可以是:输出音符数据为当前目标音符数据的上一个音符数据。也就是,可以按照从乐谱的第一个音符到最后一个音符的顺序,或从乐谱的最后一个音符到第一个音符的顺序得到各个音符数据。下述示例中均以输出音符数据为目标音符数据的下一个音符数据为例进行说明。

为了从当前目标音符数据开始逐个确定后续的音符数据,可以预先根据第一样本乐谱训练第一机器学习模型。进而,在训练好第一机器学习模型后,可以将当前目标音符数据输入训练好的第一机器学习模型,使得训练好的第一机器学习模型输出当前目标音符数据对应的输出音符数据。

可选地,第一机器学习模型的训练过程,可以包括以下步骤a1-a2:

步骤a1:获取第一样本乐谱数据。

其中,第一样本乐谱数据是用于训练第一机器学习模型的训练样本。第一样本乐谱数据的个数,即训练样本的个数可以根据经验或需要来确定。可以理解的,一个第一样本乐谱数据是指:一首完整的乐曲所对应的乐谱。

而且,在训练第一机器学习模型时,在一种情况中,可以针对不同的乐曲风格,获取相应乐曲风格的第一样本乐谱进行训练,得到不同的乐曲风格对应的第一机器学习模型。例如,利用爵士风格的第一样本乐谱训练,得到爵士风格对应的第一机器学习模型,利用摇滚风格的第一样本乐谱训练,得到摇滚风格对应的第一机器学习模型。这样,在编曲时,可以按照希望生成的乐曲风格,选择相应乐曲风格的第一机器学习模型来完成编曲。

在另一种情况中,也可以通过不同乐曲风格的样本乐谱来训练该模型,从而利用该模型,来生成新的乐谱。即,通过不同乐曲风格的样本乐谱来训练一个模型。举例来说,通过c调风格和d调风格的样本乐谱来训练该模型。那么,将c调风格的音频所对应的音符输入该模型时,可以得到c调风格的输出音符,而将d调风格的音频所对应的音符输入该模型时,可以得到d调风格的输出音符。

可选地,步骤a1中的获取第一样本乐谱数据,可以包括以下步骤b1-b3:

步骤b1:获取第一样本音频。

其中,第一样本音频可以从现有的音频数据库中获取。而且,为了训练不同的乐曲风格的第一机器学习模型,可以获取多个乐曲风格相同的第一样本音频。

获取第一样本音频后,可以进一步地识别第一样本音频对应的乐谱数据。

步骤b2:识别第一样本音频对应的乐谱数据。

可选地,可以通过ai(artificialintelligence,人工智能)技术识别第一样本音频对应的乐谱数据。当然,也可以通过其他方式识别第一样本音频对应的乐谱数据。任一种能够识别第一样本音频对应的乐谱数据的方式都可以应用于本申请,本申请对此并不限定。

本实施例中,可以识别第一样本音频对应的五线谱数据或简谱数据。具体的,在编曲时,如果希望编写五线谱类型的乐谱,则可以识别第一样本音频对应的五线谱数据,以进行下一步的训练;如果希望编写简谱类型的乐谱,则可以识别第一样本音频对应的简谱数据,以进行下一步的训练。也就是说,第一样本音频对应的乐谱数据的类型,与希望编写的乐谱的类型是一致的。

识别出第一样本音乐对应的乐谱数据,也就获得了训练样本。

步骤b3:将所识别到的乐谱数据作为第一样本乐谱数据。

将所识别到的乐谱数据作为第一样本乐谱数据后,可以根据第一样本乐谱数据,训练第一机器学习模型。

步骤a2:利用第一样本乐谱数据,对初始的第一机器学习模型进行训练,得到训练完成的第一机器学习模型。

其中,第一机器学习模型可以包括:lstm(longshort-termmemory,长短期记忆网络)模型。lstm模型是一种循环神经网络,在lstm的展开形式中,每个循环单元,即每个神经网络模块通过这样三步来输出信息:第一步,通过一个遗忘门对输入的信息进行筛选,即通过一定的规则确定丢弃哪些信息;第二步,通过一个输入门决定对哪些信息进行更新,并确定具体的更新内容,这样,就获得了更新后的信息;第三步,通过一个输出门对更新后的信息进行过滤,将过滤后的信息作为输出信息。这样,在每一次循环时利用过去的信息预测本次循环输出的信息。

下面以第一机器学习模型是lstm模型为例,说明其训练的目的。利用第一样本乐谱数据,对初始的第一机器学习模型进行训练,使得模型针对第一样本乐谱数据的当前音符,学习到:在多个音符中选择可能性最大的一个音符作为当前音符的下一个音符。例如,学习到:针对当前音符c4四分音符,在多个音符中将d4八分音符作为c4四分音符的下一个音符。多个音符可以是第一样本乐谱数据的类型对应的所有音符或部分音符。例如,第一样本乐谱数据的类型为五线谱,假设五线谱对应的所有音符有100种,则可以将所有的100种音符作为多个音符,从中选择出可能性最大的一个音符作为当前音符的下一个音符。在实际应用中,也可以根据第一样本乐谱数据的乐曲风格确定相应的乐曲约束,基于该乐曲约束从所有的100中音符中淘汰一部分,将剩余的音符作为多个音符。

在训练完成lstm模型后,将当前目标音符表示为向量x,将该向量x输入lstm模型,得到相应的输出y,y是由多个概率值组成的向量,多个概率值与上述的多个音符一一对应,每个概率值表示:多个音符中一个音符作为该当前目标音符的下一个音符的可能性。进一步,将多个概率值中最大概率值对应的音符作为当前目标音符的下一个音符。将下一个音符作为当前目标音符,重复以上过程。

例如,将当前目标音符表示为向量x,该向量x为one-hot的形式;将向量x输入lstm模型,经过lstm模型(该lstm模型的最后一层为softmax)计算得到输出向量y=(0.4,0.9,0.3,0.2),其中,0.4,0.9,0.3,0.2分别表示:多个音符中第1~第4个音符作为该当前目标音符的下一个音符的可能性;取向量y中数值最大的元素0.9表示为1,其他元素表示为0,这样就把向量y转化为one-hot形式,表示为(0,1,0,0);将多个音符中第2个音符作为下一个音符;将第2个音符作为当前目标音符,重复以上过程。

关于训练lstm模型的过程,将在后续内容中通过具体示例来说明。

可选地,第一机器学习模型还可以是:gan(generativeadversarialnetworks,生成式对抗网络)模型。同样,通过训练gan模型,针对当前音符,可以学习到:在多个音符中选择可能性最大的一个音符作为当前音符的下一个音符。

训练好第一机器学习模型后,可以基于该模型生成与第一样本乐谱数据的乐曲风格相似的乐谱。

s104,判断基于第一机器学习模型所得到的音符数据中音符的数量,是否达到预设音符数量;若未达到,转至步骤s105,若达到,转至步骤s106。

预设音符数量可以根据实际需要来设定。具体的,可以根据希望编写的乐曲的长度来确定音符数量。例如,希望编写长度为2分钟的乐曲,则将预设音符数量设定为300。

由于第一机器学习模型每次输出一个音符数据,所以,在第一机器学习模型每次输出一个音符数据后,可以判断:截止目前,基于第一机器学习模型所得到的音符数据的数量,是否达到预设音符数量。以根据判断结果执行下一步操作。

s105,将输出音符数据作为目标音符数据,返回步骤s103。

若基于第一机器学习模型所得到的音符数据的累积数量未达到预设音符数量,则可以将输出音符数据作为目标音符数据,返回步骤s103,通过第一机器学习模型继续得到当前目标音符数据对应的输出音符数据。

s106,根据初始音频对应的音符数据和基于第一机器学习模型所得到的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将面部乐谱数据转换为对应的目标音频。

初始音频对应的音符数据和基于第一机器学习模型所得到的各个音符数据,即为所希望生成的目标乐谱数据所需的全部音符数据。基于该全部音符数据,可以生成目标乐谱数据。

可选地,在一种实现方式中,在基于第一机器学习模型得到各个音符数据之前,预先确定乐曲风格a。这样,可以选择乐曲风格为a对应的第一机器学习模型来得到各个音符数据。那么,可以将初始音符数据和所得到的各个音符数据,按照获取顺序进行组合,生成与编曲所需的预定乐曲风格a相匹配的目标乐谱数据。

可选地,在另一种实现方式中,在基于第一机器学习模型得到各个音符数据之后,确定风格迁移后的乐曲风格b。也就是说,对由初始音符数据和模型输出的各个音符数据按获取顺序组合后得到的乐谱数据的原乐曲风格进行风格迁移,迁移为预定乐曲风格b。

针对上述另一种实现方式,步骤s106中的根据初始音频对应的音符数据和第一机器学习模型所得到的各个音符数据,生成与预定乐曲风格相匹配的目标乐谱数据的步骤,可以包括步骤c1-c2:

步骤c1:将初始音频对应的音符数据和基于第一机器学习模型所得到的音符数据,按照各个音符数据的获取顺序进行组合,得到初始乐谱数据。

其中,所得到的初始乐谱数据具有原乐曲风格。

步骤c2:将初始乐谱数据输入至预先训练的第二机器学习模型,得到与编曲所需的预定乐曲风格相匹配的目标乐谱数据,第二机器学习模型为用于将所输入的乐谱数据的乐曲风格迁移为预定乐曲风格的模型。

为了对初始乐谱数据的原乐曲风格进行风格迁移,可以预先训练第二机器学习模型。训练好的第二机器学习模型可以对一完整的乐谱数据进行风格迁移,即转换该完整的乐谱数据的乐谱风格。所以,实质上,通过训练,第二机器学习模型学习到:原乐曲风格到预定乐曲风格b的映射关系。具体的,风格迁移可以是调节:初始乐谱数据中的各个音符的音高,或节拍等,使得调整后的乐谱数据呈现出预定乐曲风格b。

其中,第二机器学习模型可以是lstm模型或gan模型,也可以是其他的机器学习模型。由于第二机器学习模型是用于对乐谱数据进行风格迁移的模型,所以在训练之前,需要先确定迁移前的原乐曲风格和迁移后的目标乐曲风格,然后,利用原乐曲风格和目标乐曲风格训练第二机器学习模型。具体的,可以利用具有原乐曲风格的原样本乐谱数据和具有目标乐曲风格的目标样本乐谱数据,对初始的第二机器学习模型进行训练,得到训练完成的第二机器学习模型。

在生成目标乐谱数据后,可以进一步地将该目标乐谱数据转换为对应的目标音频,即将目标乐谱数据表现为目标音频。转换为目标音频后,更便于听众来欣赏所编写的乐曲。具体的,可以通过tts(texttospeech,文本到语音)技术将目标乐谱数据转换为对应的目标音频。当然,也可以通过其他自动化的转换方式,将目标乐谱数据转换为对应的目标音频。

本发明实施例提供的方案,预先对第一样本乐谱进行训练学习,得到第一机器学习模型。进而,在编曲时,将预设的初始音频对应的音符数据输入预先训练的第一机器学习模型,使得第一机器学习模块循环地输出各个音符数据,从而基于初始音频对应的音符数据和第一机器学习模型输出的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将该目标乐谱数据转换为对应的目标音频。本发明实施例由于直接基于样本乐谱,学习音符到音符的对应关系,使得训练学习时所需要处理的数据量减少,降低了机器学习的复杂度。因此,基于训练好的第一机器学习模型进行编曲,可以提高编曲的效率。

为了便于理解图1所示实施例中的方法步骤,下面通过一个编曲的具体示例来说明,在该具体示例中,包括以下步骤:

步骤1,获取初始音频a;

步骤2,获取初始音频a对应的音符数据a,将该音符数据a作为目标音符数据;

其中,该音符数据a在本实施例中为一个简谱音符,该简谱音符可以是从初始音频a转化得到的简谱曲中的一个音符,也可以是直接获取只有一个音符的初始音频,再将初始音频转换为音符即可。

步骤3,将目标音符数据a表示为向量x,将向量x输入预先训练的第一机器学习模型,得到对应的输出向量y,y=[n1,n2,…,ni,…,nm];

其中,i的取值为1~m,m表示简谱音符库中音符的数量,ni表示简谱音符库中第i个音符作为目标音符数据a的下一个音符的可能性,向量y中所有元素之和为1,即。

简谱音符库中包括有使用简谱谱曲所需的所有音符,例如,简谱音符库中包括有do、re、mi、fa、sol、la、si和休止符,共8个音符组成,此时m=8。

其中,第一机器学习模型为预定乐曲风格s对应的模型,即利用第一机器学习模型,可以编写具有预定乐曲风格s的乐谱。

本具体示例中,第一机器学习模型为lstm模型。

步骤4,将输出向量y中最大的元素所对应的音符作为目标音符数据a的下一音符数据;

例如,输出向量y中最大的元素为n6,那么,将简谱音符库中第6个音符作为目标音符数据a的下一个音符。

步骤5,判断当前得到的音符数据中音符的数量,是否达到预设音符数量;若未达到,转到步骤6,若达到,转到步骤7;

预设音符数量为设定的编写一篇完整乐谱所需的音符数量,例如,预设音符数量为100。

步骤6,将步骤4得到的下一音符数据作为目标音符数据;返回步骤3;

步骤7,将初始音频a对应的音符数据a和基于第一机器学习模型得到的各个音符数据,按照获取的顺序进行组合,得到目标乐谱数据;

其中,目标乐谱数据具有预定乐曲风格s。

步骤8,通过tts技术将目标乐谱数据转换为对应的目标音频。

得到目标音频即完成编曲,即得到了具有预定乐曲风格s的一首完整的乐曲。

为了便于理解上述具体示例中预先训练第一机器学习模型的过程,以下仍然通过具体示例的方式来说明。上述具体示例中,第一机器学习模型为lstm模型,训练lstm模型,包括以下步骤:

s1,获得样本乐谱;

该样本乐谱包含4个音符,a,b,c,d。

s2,生成样本乐谱对应的数据对;

生成的数据对包括:数据对<a,b>,数据对<b,c>,和数据对<c,d>。在训练时,所生成的每个数据对中,前一个音符表示模型的输入,后一个音符表示模型的输出标签。

需要说明的是,在训练过程中,上述4个音符a,b,c,d,均以one-hot的形式来表示,即均以独热编码的形式来表示。

s3,将所生成的数据对输入lstm模型,经过多次迭代,得到准确率达到阈值的模型,则模型训练完成。

需要说明的是,在图1所示实施例以及上述具体示例中,均是逐个确定音符,在实际应用中,确定音符的方式不仅限于此,例如,还可以输入一个音符,输出多个音符,或者,输入多个音符,输出一个音符,或者,输入多个音符,输出多个音符,这都是合理的。

相应于图1所示方法实施例,本发明实施例提供了一种编曲装置,如图2所示,所述装置包括:

第一获取模块201,用于获取预设的初始音频;其中,所述初始音频是编曲所利用的初始的音符数据的音频;

第二获取模块202,用于获取所述初始音频对应的音符数据,并将所述初始音频对应的音符数据作为目标音符数据;

输入模块203,用于将当前目标音符数据输入预先训练的第一机器学习模型,得到当前目标音符数据对应的输出音符数据;其中,所述输出音符数据与所述当前目标音符数据之间的顺序符合预定顺序,所述第一机器学习模型为根据第一样本乐谱训练得到的、用于预测作为输入内容的音符数据对应的输出音符数据的模型;

判断模块204,用于判断基于所述第一机器学习模型所得到的音符数据中音符的数量,是否达到预设音符数量;若未达到,触发返回模块205,若达到,触发生成模块206;

返回模块205,用于将所述输出音符数据作为目标音符数据,触发所述输入模块203;

生成模块206,用于根据所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将所述目标乐谱数据转换为对应的目标音频。

本发明实施例提供的方案,预先对第一样本乐谱进行训练学习,得到第一机器学习模型。进而,在编曲时,将预设的初始音频对应的音符数据输入预先训练的第一机器学习模型,使得第一机器学习模块循环地输出各个音符数据,从而基于初始音频对应的音符数据和第一机器学习模型输出的各个音符数据,生成与编曲所需的预定乐曲风格相匹配的目标乐谱数据,并将该目标乐谱数据转换为对应的目标音频。本发明实施例由于直接基于样本乐谱,学习音符到音符的对应关系,使得训练学习时所需要处理的数据量减少,降低了机器学习的复杂度。因此,基于训练好的第一机器学习模型进行编曲,可以提高编曲的效率。

可选地,所述生成模块206,包括:

组合单元,用于将所述初始音频对应的音符数据和基于所述第一机器学习模型所得到的音符数据,按照各个音符数据的获取顺序进行组合,得到初始乐谱数据;

输入单元,用于将所述初始乐谱数据输入至预先训练的第二机器学习模型,得到与编曲所需的预定乐曲风格相匹配的目标乐谱数据,所述第二机器学习模型为用于将所输入的乐谱数据的乐曲风格迁移为所述预定乐曲风格的模型。

可选地,所述装置还包括:

训练模块,用于获取第一样本乐谱数据;利用所述第一样本乐谱数据,对初始的第一机器学习模型进行训练,得到训练完成的第一机器学习模型。

可选地,所述训练模块,具体用于获取第一样本音频;识别所述第一样本音频对应的乐谱数据;将所识别到的乐谱数据作为第一样本乐谱数据。

可选地,所述训练模块,具体用于识别所述第一样本音频对应的五线谱数据或简谱数据。

可选地,所述第一机器学习模型包括:长短期记忆网络lstm模型或生成式对抗网络gan模型。

本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,

存储器303,用于存放计算机程序;

处理器301,用于执行存储器303上所存放的程序时,实现上述实施例中任一的编曲方法,以获得相同的技术效果。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的编曲方法,以获得相同的技术效果。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的编曲方法,以获得相同的技术效果。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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