音符序列生成方法及装置与流程

文档序号:11954725阅读:423来源:国知局
音符序列生成方法及装置与流程
本发明涉及智能声乐领域,特别涉及一种音符序列生成方法及装置。
背景技术
:随着音乐的发展,用户对原创音乐的需求越来越大,即用户不仅想要获取专业音乐创作人创作的音乐,还希望自己能够创作音乐。然而,音乐创作对用户的要求很高,要想完成音乐创作不仅需要拥有乐理知识、具备一定的音乐素养,还需要一定的创作灵感,而一般的用户往往缺乏乐理知识,且创作灵感也比较匮乏,其进行音乐创作十分困难。技术实现要素:为了解决现有技术的问题,本发明实施例提供了一种音符序列生成方法及装置。所述技术方案如下:一方面,提供了一种音符序列生成方法,所述方法包括:获取第一音符序列,所述第一音符序列包括至少一个音符向量,所述音符向量用于指示音符的音调值和音符时值;基于所述第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值,所述至少一个音符向量中第i个音符向量的概率值用于指示所述第i个音符向量为所述第一音符序列之后的下一个音符向量的概率,所述i大于等于1,所述音符序列模型包括至少一个函数,所述至少一个函数中的参数根据音符序列样本训练得到;将所述概率值大于预设阈值的任一音符向量确定为所述目标音符向量;将所述目标音符向量添加在所述第一音符序列之后生成第二音符序列。另一方面,提供了一种音符序列生成装置,所述装置包括:获取模块,用于获取第一音符序列,所述第一音符序列包括至少一个音符向量,所述音符向量用于指示音符的音调值和音符时值;概率确定模块,用于基于所述获取模块获取的所述第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值,所述至少一个音符向量中第i个音符向量的概率值用于指示所述第i个音符向量为所述第一音符序列之后的下一个音符向量的概率,所述i大于等于1,所述音符序列模型包括至少一个函数,所述至少一个函数中的参数根据音符序列样本训练得到;向量确定模块,用于将所述概率值大于预设阈值的任一音符向量确定为所述目标音符向量;序列生成模块,用于将所述向量确定模块确定的所述目标音符向量添加在所述第一音符序列之后生成第二音符序列。本发明实施例提供的技术方案带来的有益效果是:通过该第一音符序列和音符序列模型确定目标音符向量,并将该目标音符向量添加至该第一音符序列之后,形成第二音符序列,使得本发明可以仅根据预先获取的第一音符序列即可得到第二音符序列,而不需要用户本人的创作,使得不具有乐理知识以及灵感匮乏的用户也能获得原创乐曲。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种音符序列生成方法的流程图。图2是本发明实施例提供的另一种音符序列生成方法的流程图。图3是本发明实施例提供的一种音符序列生成装置300的框图。图4是本发明实施例提供的一种音符序列生成装置400的框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。图1是根据一示例性实施例示出的一种音符序列生成方法的流程图,如图1所示,该音符序列生成方法可以应用于服务器或终端中,该音符序列生成方法包括以下步骤:步骤110、获取第一音符序列,该第一音符序列包括至少一个音符向量,该音符向量用于指示音符的音调值和音符时值。步骤120、基于该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值,该至少一个音符向量中第i个音符向量的概率值用于指示该第i个音符向量为该第一音符序列之后的下一个音符向量的概率,该i大于等于1,该音符序列模型包括至少一个函数,该至少一个函数中的参数根据音符序列样本训练得到。步骤130、将该概率值大于预设阈值的任一音符向量确定为该目标音符向量。步骤140、将该目标音符向量添加在该第一音符序列之后生成第二音符序列。综上所述,本实施例提供的音符序列生成方法,通过该第一音符序列和音符序列模型确定目标音符向量,并将该目标音符向量添加至该第一音符序列之后,形成第二音符序列,使得本发明可以仅根据预先获取的第一音符序列即可得到第二音符序列,而不需要用户本人的创作,使得不具有乐理知识以及灵感匮乏的用户也能获得原创乐曲。可选的,该基于该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值之前,该方法还包括:判断该第一音符序列中包含的音符向量的个数是否小于第一阈值;该基于该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值包括:当该第一音符序列中包含的音符向量的个数小于该第一阈值时,基于该第一音符序列和该音符序列模型确定至少一个音符向量中每一个音符向量的概率值。可选的,该基于该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值之前,该方法还包括:获取至少一个指定音符序列,该指定音符序列包括至少一个音符向量;将该至少一个指定音符序列中的每一个指定音符序列分割成至少一个子音符序列,每个该子音符序列中包含的音符向量个数小于第二阈值;基于至少一个该子音符序列训练得到该音符序列模型。上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。图2是根据一示例性实施例示出的一种音符序列生成方法的流程图,如图2所示,该音符序列生成方法可以应用于服务器或终端中,本实施例仅以该方法应用于服务器中为例进行说明,该音符序列生成方法包括以下步骤:步骤210、服务器获取第一音符序列,该第一音符序列包括至少一个音符向量,该音符向量用于指示音符的音调值和音符时值。需要说明的是,上述音符向量用于指示音符,其中,一个音符包括音调值和音符时值,而且,一个音符向量一般用于指示一个音符。上述音调值用于反映音符的音调高低,在本发明的一个实施例中,该音调值可以分为倍低音、低音、中音、高音和倍高音五个音区,其中,每个音区可以分为七个音阶。当然,在实际应用中,该音调值还可以包括倍倍低音、倍倍高音等其他音区,或者,该音调值可以包括倍低音、低音、中音、高音和倍高音中的任一个或任多个的组合,本发明对此不做具体限定。此外,每个音区还可以分为五个音阶,如宫商角徵羽,或十二个音阶等,本发明对此也不做具体限定。上述音符时值用于反映音符的相对持续时间,该音符时值可以包括全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符,其中,全音符表示音符的持续时间为四拍,二分音符表示音符的持续时间为二拍,四分音符表示音符的持续时间为一拍,八分音符表示音符的持续时间为半拍,十六分音符表示音符的持续时间为四分之一拍,三十分音符表示音符的持续时间为八分之一拍。需要说明的是,在实际应用中,上述音符还可以包括休止符,对于休止符而言,其音调值可以视为0,而其音符时值可以包括上述全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符等,本发明对此不做具体限定。例如,“0000”即为全休止符,其音调值为0,其音符时值为全音符。例如,某一音符可以为其表示的音调值为高音区第5音阶,其表示的音符时值为全音符,即音符的持续时间为四拍。如上所述,音符向量用于指示音符,实际应用中,音符向量可以包括多个按照顺序排列的数字,例如,某一音符向量可以为[0,1,0,0,……,0],其中,该音符向量中包括210个数字。本发明提供了两种生成音符对应的音符向量的方法,下面本发明将对这两种方法进行简要说明。第一种方法,由技术人员为每一个音符设定对应的音符向量。本发明以音调值分为五个音区,每个音区分为7个音阶,以及音符时值包括全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符为例,对技术人员为每一个音符设定对应的音符向量的技术过程进行说明。具体地,在音调值分为五个音区,每个音区分为7个音阶,以及音符时值包括全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符的情况下,音符的数量总共有210个。则技术人员可以设定每个音符向量包括210个数字,即音符向量包含的数字的个数等于音符的总个数,且每一个音符向量包含的210个数字中只有一个数字为“1”,其他数字均为“0”,不同的音符向量“1”在210个数字中的位置不同。例如,对应的音符向量可以为[1,0,0,0,……,0],对应的音符向量可以为[0,1,0,0,……,0]。技术人员为每一个音符设定对应的音符向量的方法,一方面可以使音符的表示数学化,方便进行后续处理,另一方面,获取音符对应的音符向量不需要服务器进行计算处理,可以减少服务器的运算量。第二种方法,通过音符序列模型训练计算出每一个音符对应的音符向量。同样地,利用这种方法得到的音符向量也包括多个按照顺序排列的数字,且,每个音符向量中包含的数字的个数可以由技术人员进行设定。具体地,本发明可以获取多个音符序列作为音符序列模型训练样本对音符序列模型进行训练,在本发明的一个实施例中,音符序列模型训练可以使用skip-gram模型,即对于任一个音符序列x1,......,xT,使目标函数最大化,其中,c为一个音符序列模型训练样本中包含的音符个数。其中,p(xt+j|xj)可以使用softmax函数表示,即其中,v为音符向量,X是音符的总数量(例如,在音调值分为五个音区,每个音区分为7个音阶,以及音符时值包括全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符的情况下,X为210)。通过音符序列模型训练计算出每一个音符对应的音符向量的方法,一方面也可以使音符的表示数学化,方便进行后续处理,另一方面,使用这种方法生成的音符向量中包含的数字的个数可以小于音符的总个数,从而可以减小后续步骤220至250的技术过程中的计算量,例如,在本发明的一个实施例中,使用音符序列模型训练计算出的音符向量可以只包含100个数字。如上所述,在第二种生成音符对应的音符向量的方法中,需要获取多个音符序列作为音符序列模型训练样本。具体地,本发明可以先获取多个乐谱,每个乐谱中包含多个音符,而后对每个乐谱进行分词操作,忽略掉乐谱中包含的除音符以外的其他符号,如小节线、连音线等,以形成音符序列,服务器可以使用该多个乐谱经分词操作后形成的多个音符序列作为音符序列模型训练样本。此外,还需要说明的是,上述第一音符序列中包含的音符向量的个数可以为一个也可以为多个。当该第一音符序列中音符向量的个数为一个时,该第一音符序列中的一个音符向量可以是服务器随机确定的音符向量,也可以为服务器根据用户的选择操作确定的音符向量,本发明对此不做具体限定。当该第一音符序列中音符向量的个数为一个以上时,该第一音符序列可以为服务器随机确定的音符序列,也可以为服务器根据用户的选择操作确定的音符序列,还可以为服务器根据后续步骤220至250生成的音符序列,本发明对此也不做具体限定。步骤220、服务器判断该第一音符序列中包含的音符向量的个数是否小于第一阈值,若小于,则执行步骤230,若不小于,则结束流程。本发明提供的音符序列生成方法可以生成音符序列,该音符序列中至少一个音符向量所指示的至少一个音符可以形成一种艺术的、令人愉快的声音,即形成乐曲。在实际应用中,乐曲一般都有一定的长度,因此,在本发明中,服务器生成的音符序列中包含的音符向量的个数也应当大于某一阈值,即第一阈值,否则,该音符序列中至少一个音符向量所指示的至少一个音符的个数将不足以生成乐曲。因此,若该第一音符序列中包含的音符向量的个数是不小于第一阈值,则说明该第一音符序列中至少一个音符向量所指示的至少一个音符的个数已经足以形成乐曲,此时本发明可以结束流程,若该第一音符序列中包含的音符向量的个数小于第一阈值,则说明该第一音符序列中至少一个音符向量所指示的至少一个音符的个数不足以形成乐曲,则本发明可以执行步骤230的技术过程。步骤230、服务器基于该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值,该至少一个音符向量中第i个音符向量的概率值用于指示该第i个音符向量为该第一音符序列之后的下一个音符向量的概率,该i大于等于1,该音符序列模型包括至少一个函数,该至少一个函数中的参数根据音符序列样本训练得到。在本发明中,服务器可以将该第一音符序列作为音符序列模型的输入值,以利用该音符序列模型计算至少一个音符向量中每一个音符向量的概率值。上述至少一个音符向量可以是所有的音符向量,例如,在音调值分为五个音区,每个音区分为7个音阶,以及音符时值包括全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符的情况下,所有的音符向量为210个不同的音符中每一个音符对应的音符向量,当然,上述至少一个音符向量可以是所有的音符向量中的一部分音符向量,本发明对此不做具体限定。需要说明的是,上述音符向量的概率值用于指示音符向量为该第一音符序列之后的下一个音符向量的概率,概率值较大的音符向量为该第一音符序列之后的下一个音符向量的概率也较大,即将概率值较大的音符向量放在该第一音符序列之后而生成的第二音符序列为乐曲的概率越大。示例的,上述音符序列模型可以为递归神经网络模型,该模型包括输入层、隐含层和输出层,其中,输入层为最下一层,输出层为最上一层,隐含层位于输入层和输出层之间,“输入层”用于接收针对该音符序列模型的输入值,即上文所述的“第一音符序列”,“隐含层”的输出值可以通过“输入层”输入的输入值直接或间接地得到,音符序列模型的最终输出值通过上述“输出层”得到,即上文所述的至少一个音符向量中每一个音符向量的概率值。其中,输入层、隐含层和输出层均包含至少一个节点,每层中的节点均通过有向弧指向上一层节点,隐含层和输出层中的每个节点对应于一个函数,该函数的参数为指向该节点的有向弧对应的权重值,该函数的输入值为指向该节点的下层节点的输出值,该函数可以基于该参数和该输入值得到输出值。其中,有向弧对应的权重值,即该函数的参数可以根据音符序列样本训练得到。由于本发明最终的目的是生成乐曲,即生成音符序列,因此本发明可以获取大量的音符序列样本,本发明在对该音符序列模型训练之前,虽然无法确定该音符序列模型中包含的参数,但是,本发明基于该音符序列样本获知该音符序列模型的输入值和输出值,基于大量的输入值和输出值,本发明最终可以训练得到该音符序列模型中包含的参数。示例的,在本发明的一个实施例中,本发明提供的音符序列模型中包含的函数可以为:st=tanh(Uxt+Wst-1)ot=softmax(Vst)其中,xt为第一音符序列中的第t个音符向量,st为第t层隐含层的输出值,ot为输出层的输出值,即模型的输出即至少一个音符向量中每一个音符向量的概率值,U,W,V为函数的参数。如上所述,该音符序列模型可以根据音符序列样本训练得到,上述音符序列样本的获取方式与上文所述的获取多个音符序列作为音符序列模型训练样本的方式类似,所不同之处在于对每个乐谱进行分词操作,忽略掉乐谱中包含的除音符以外的其他符号,如小节线、连音线等,形成音符序列后,还需将音符序列中的各个音符转换为音符向量,以最终得到音符序列样本。下面,本发明将对根据音符序列样本训练得到音符序列模型的技术过程进行简要说明。具体地,服务器获取至少一个指定音符序列,并将该至少一个指定音符序列中的每一个指定音符序列分割成至少一个子音符序列,每个该子音符序列中包含的音符向量个数小于第二阈值,而后服务器基于至少一个该子音符序列训练得到该音符序列模型。需要说明的是,上述“至少一个指定音符序列”即为上文所述的“音符序列样本”。下面本发明将对服务器基于至少一个该子音符序列训练得到该音符序列模型的技术过程进行简要说明。具体地,本发明可以使用递归神经网络模型对音符序列模型进行训练,即对于任一个子音符序列x1,……,xT,使目标函数最大化,其中,p(xt|x1,..…,xt)=g(ht),g为sigmoid函数或tanh函数,而ht可以用以下公式表示:ht=0,t=1φ(Wxt+Uht-1),otherwise]]>其中,φ也可以为sigmoid函数,使用梯度下降法不断调整参数从而完成对该音符序列模型的训练。步骤240、服务器将该概率值大于预设阈值的任一音符向量确定为目标音符向量。在本发明的一个实施例中,目标音符向量可以为上述至少一个音符向量中概率值最大的音符向量。实际应用中,服务器还可以使用多项分布抽样的方法抽取出最大的概率值,并将该最大的概率值对应的音符向量确定为目标音符向量。具体地,设p1=p(x=X1),……,pk=p(x=Xk),其中,Xi为上述至少一个音符向量中第i个音符向量,p是x的离散多项分布,随机抽取一个0-1的随机数u~U(0,1)服从均匀分布,将p1,p2,……pk累加不超过u的k对应的Xk作为抽样出的下一个音符。例如,该至少一个音符向量中每一个音符向量的概率值如表1所示:表1音符向量X1X2X3X4X5……X210概率值0.00010.00020.00030.00010.0001……0.98在表1中,本发明可以使用多项分布抽样的方法,将X210确定为目标音符向量。步骤250、服务器将该目标音符向量添加在该第一音符序列之后生成第二音符序列。在本发明中,生成第二音符序列之后,可以重复执行步骤220至步骤250的技术过程。综上所述,本实施例提供的音符序列生成方法,通过该第一音符序列和音符序列模型确定目标音符向量,并将该目标音符向量添加至该第一音符序列之后,形成第二音符序列,使得本发明可以仅根据预先获取的第一音符序列即可得到第二音符序列,而不需要用户本人的创作,使得不具有乐理知识以及灵感匮乏的用户也能获得原创乐曲。图3是根据一示例性实施例示出的一种音符序列生成装置300的框图。参照图3,该装置包括获取模块310、概率确定模块320、向量确定模块330和序列生成模块340。该获取模块310,用于获取第一音符序列,该第一音符序列包括至少一个音符向量,该音符向量用于指示音符的音调值和音符时值。该概率确定模块320,用于基于该获取模块310获取的该第一音符序列和音符序列模型确定至少一个音符向量中每一个音符向量的概率值,该至少一个音符向量中第i个音符向量的概率值用于指示该第i个音符向量为该第一音符序列之后的下一个音符向量的概率,该i大于等于1,该音符序列模型包括至少一个函数,该至少一个函数中的参数根据音符序列样本训练得到。该向量确定模块330,用于将该概率值大于预设阈值的任一音符向量确定为该目标音符向量。该序列生成模块340,用于将该向量确定模块330确定的该目标音符向量添加在该第一音符序列之后生成第二音符序列。在本发明的一个实施例中,该序列生成模块340,还用于判断该获取模块310获取的该第一音符序列中包含的音符向量的个数是否小于第一阈值。该概率确定模块320,还用于当该第一音符序列中包含的音符向量的个数小于该第一阈值时,基于该第一音符序列和该音符序列模型确定至少一个音符向量中每一个音符向量的概率值。该获取模块310,还用于获取至少一个指定音符序列,该指定音符序列包括至少一个音符向量。参见图4,在本发明的另一个实施例中,还提供了另一种音符序列生成装置400,该装置基于上述图3的实施例结构,还包括训练模块350。该训练模块350,用于将该至少一个指定音符序列中的每一个指定音符序列分割成至少一个子音符序列,每个该子音符序列中包含的音符向量个数小于第二阈值。该训练模块350,还用于基于至少一个该子音符序列训练得到该音符序列模型。综上所述,本实施例提供的音符序列生成装置,通过该第一音符序列和音符序列模型确定目标音符向量,并将该目标音符向量添加至该第一音符序列之后,形成第二音符序列,使得本发明可以仅根据预先获取的第一音符序列即可得到第二音符序列,而不需要用户本人的创作,使得不具有乐理知识以及灵感匮乏的用户也能获得原创乐曲。需要说明的是:上述实施例提供的音符序列生成装置在生成序列时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的音符序列生成装置与音符序列生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1