基于神经网络的歌词生成方法、装置、设备和存储介质与流程

文档序号:17130998发布日期:2019-03-16 01:13阅读:149来源:国知局
基于神经网络的歌词生成方法、装置、设备和存储介质与流程

本发明涉及音频处理技术领域,特别是涉及基于神经网络的歌词生成方法、装置、设备和存储介质。



背景技术:

歌词是歌曲的重要组成部分,能够表达作曲家和作词人的真实情感,随着科技发展,自动生成歌词的技术也在不断进步,人们可以用同样的曲调、不同的歌词来表达不同的具体内容和情感;同时,自动生成歌词技术也能为作词人提供无限的创作灵感,增加歌曲表达的多样性。因此,在已有乐曲的情况下,研发出能够自动生成匹配原曲的新歌词的装置成为了一个新的挑战。现在已有能够根据图片内容来生成与图片风格类型相对应歌词的技术,但现有的歌词生成技术所生成的歌词之间逻辑关联性较差,且难以与用户所需歌词的主题密切相关。

根据以上情况,本技术方案提供了一种基于神经网络的歌词生成方法,使得预测的词与前几个词有较强的联系,且同时神经网络使得预测的词受到已生成的所有词的影响,最终所得歌词与输入的风格类型相匹配,歌词之间词末相互押韵,联系紧密。



技术实现要素:

基于此,有必要针对现有技术所生成的歌词之间逻辑关联性较差,且难以与用户所需歌词的主题密切相关的问题,提供一种基于神经网络的歌词生成方法、装置、设备和存储介质。

一种基于神经网络的歌词生成方法,所述基于神经网络的歌词生成方法,包括如下步骤:

根据输入的歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集,所述全集是指包括所有风格类型的字词的集合,所述子集是指包括某个风格类型的字词的集合;

根据输入的歌词特征词,从所述子集中生成对应的多个字或词;

计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词;

判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词;

根据输入的歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词。

在一个实施例中,所述根据输入的歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集之前,包括:

从数据库中获取一定数量的不同风格类型的歌曲进行学习;

在学习阶段,设置初始权重,当该权重值随学习深度的增加而达到一定精度后进入工作阶段;

在工作阶段,根据不同风格类型的歌曲筛选相关词,形成包含各风格类型的全集,所述全集中包含了与各风格类型相关的所有字和词以及通用的、中性的字和词。

在一个实施例中,所述根据输入的歌词特征词,从所述子集中生成对应的多个字或词,包括:

获取每一句歌词的特征词并进行比较,若所有的所述特征词都一致时,直接从对应的所述子集中搜索与所述特征词最相近的字或词;若存在有多个所述特征词时,则根据所述特征词分别从对应的所述子集中搜索对应的字或词。

在一个实施例中,所述计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词,包括:

计算所述特征词对应的所述多个字或词中的每一个字或词可能成为当前词的下一个词的概率,并对概率较大的字或词进行标记;

根据当前词词末的押韵和词组的风格类型建立歌词规则;

根据所述标记和所述歌词规则综合评选出下一个将要输出的词。

在一个实施例中,所述计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词,还包括基于循环神经网络模型来实现所述将要输出的词的概率计算和规则评选,具体包括:

根据权重矩阵u计算得到隐藏层s的权重矩阵,所述隐藏层s的权重矩阵的计算公式如公式(1)所示,

st=f(u×xt+w×st1)(1),

公式(1)中t表示时刻,st表示t时刻隐藏层的权重矩阵,u、w为自定义概率变换矩阵,st1表示t1时刻隐藏层的权重矩阵,xt表示输入的独热向量;所述隐藏层s的权重矩阵取决于输入向量x,同时还通过权重矩阵w与隐藏层的上一次的值s相关;

在所述隐藏层s通过权重矩阵v后,输出一个与已生成的所有词都有一定联系的词,输出的词的计算公式如公式(2)所示,

ot=g(v×st)(2),

公式(2)中ot表示t时刻输出层输出的结果,v为自定义概率变换矩阵,g表示学习效率。

在一个实施例中,所述判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词,包括:

基于马尔科夫模型来判定所述将要输出的词与前几个词的联系是否紧密,如果判定结果为是,则输出该词;如果判定结果为否,则返回至基于循环神经网络模型中的权重矩阵u,调整权重矩阵u,继续生成新的词。

在一个实施例中,所述根据输入的歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词,包括:

获取将要输出的一句歌词的字数要求;

对所述将要输出的一句歌词进行字数判断,当字数符合所述字数要求时则输出该句歌词,当字数不符合所述字数要求时则重新调整该句歌词的字数;

并对每一句输出的歌词进行判断,判断该句歌词是否是最后一句歌词,当输出的一句歌词不是最后一句歌词时,将所输出的那句歌词作为特征词与下一句歌词的特征词结合在一起作为下一句歌词的新的特征词;

当输出的一句歌词是最后一句歌词时,在所生成的歌词输出后,结束一首歌词的生成作业。

基于相同的构思,本申请还提供了一种基于神经网络的歌词生成装置,所述基于神经网络的歌词生成装置包括:

搜索模块,设置为根据输入的歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集,所述全集是指包括所有风格类型的字词的集合,所述子集是指包括某个风格类型的字词的集合;

生成模块,设置为根据输入的歌词特征词,从所述子集中生成对应的多个字或词;

运算模块,设置为计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词;

判断模块,设置为判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词;

输出模块,设置为根据输入的歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词。

基于相同的技术构思,本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述基于神经网络的歌词生成方法的步骤。

基于相同的技术构思,本申请实施例还提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行如上述基于神经网络的歌词生成方法的步骤。

上述基于神经网络的歌词生成方法、装置、设备和存储介质,通过获取歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集;获取歌词特征词,从所述子集中生成对应的多个字或词;计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词;判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词;获取歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词。因此,在已有乐曲的情况下,能够根据特征词、乐曲风格类型和歌词字数要求自动生成匹配乐曲的新歌词,且生成的歌词之间逻辑关联性好,与用户所需歌词的主题密切相关。

附图说明

图1为本申请在一个实施例中基于神经网络的歌词生成方法的流程图;

图2为本申请在一个实施例中生成风格类型集合的流程图;

图3为本申请在一个实施例中评选输出词的流程图;

图4为本申请在一个实施例中输出歌词的流程图;

图5为本申请在一个实施例中基于神经网络的歌词生成装置的结构框图。

具体实施方式

为了是本发明的目的、技术方案及有点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本申请在一个实施例中提供的基于神经网络的歌词生成方法的流程图,如图所示,包括:

s1、根据输入的歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集,所述全集是指包括所有风格类型的字词的集合,所述子集是指包括某个风格类型的字词的集合;

本步骤通过获取包括但不限于怀旧、浪漫、清新、伤感、放松、感动、兴奋等歌曲风格类型,从全集中搜索与搜索歌曲风格类型相对应的子集。

s2、根据输入的歌词特征词,从所述子集中生成对应的多个字或词;

本步骤中通过获取一句歌词的特征词,根据特征词与对应的子集中的字符序列,从而生成与该特征词对应的多个字或词,所述字符序列是指所述特征词中的每一个字或词均为离散特征,都有一个映射到子集中的唯一编号,都转换为一个n维的独热张量。

s3、计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词;

本步骤中基于循环神经网络模型来计算将要输出的字或词的概率,并结合歌词规则来评选出适合的字或词,所述歌词规则由词末的押韵和词组的风格类型来建立。

s4、判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词;

本步骤中基于马尔科夫模型来判定生成的字或词与前几个词和特征词之间的联系是否紧密,若判定为是,则输出该字或词,若判定为否,则返回至循环神经网络中重新生成新的字或词。

s5、根据输入的歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词;

本步骤中根据歌词的字数要求对将要输出的一句歌词的字数进行判定,若字数符合要求,则输出该句歌词,若字数不符合要求,则重新生成歌词;同时还要判断每一句输出的歌词是否是最后一句歌词,若是则结束生成歌词,若不是则继续生成下一句歌词。

本实施例通过循环网络神经模型对歌词的概率进行计算,通过马尔科夫模型对歌词与特征词的紧密性进行判定,使得预测的词能够受到已生成的所有词的影响,最终得到词与输入的风格类型相匹配,歌词之间词末相互押韵,联系紧密。

图2为本申请在一个实施例中提供的生成风格类型集合的流程图,如图所示,包括:

s101、从数据库中获取一定数量的不同风格类型的歌曲进行学习;

本步骤中从数据库中选取不同风格类型的歌曲进行学习,其中歌曲的风格包括但不限于怀旧、浪漫、清新、伤感、放松、感动、兴奋等,每种风格类型的歌曲各选取1000首进行学习。

s102、在学习阶段,设置初始权重,当该权重值随学习深度的增加而达到一定精度后进入工作阶段;

本步骤中通过设置一初始权重和一精度值,随着学习深度的增加,初始权重的精度不断的进行调整,当达到满意的精度值时即进入工作阶段,比如精度值设置为0.7,当初始权重的精度值达到0.7时即进入工作阶段。

s103、在工作阶段,根据不同风格类型的歌曲筛选相关词,形成包含各风格类型的全集,所述全集中包含了与各风格类型相关的所有字和词以及通用的、中性的字和词;

本步骤中通过筛选不同风格类型的歌曲的相关词,并形成包含各风格类型的全集,所述全集中包含的各风格类型的子集按照各风格类型的相关词进行分类,比如歌曲风格类型为怀旧,其对应的子集的关键词为怀旧,当需要生成歌词的特征词与怀旧相关时均可到怀旧的子集中获取相关的字或词。

本实施例通过对数据库中的歌曲进行学习后建立全集,为后续根据歌曲风格类型而快速匹配对应的子集提供基础。

在一个实施例中,所述根据输入的歌词特征词,从所述子集中生成对应的多个字或词,包括:

获取每一句歌词的特征词并进行比较,若所有的所述特征词都一致时,直接从对应的所述子集中搜索与所述特征词最相近的字或词;若存在有多个所述特征词时,则根据所述特征词分别从对应的所述子集中搜索对应的字或词。

本步骤根据歌词的特征词,从对应的子集中搜索对应的字或词,比如歌曲名字为《终于等到你》,某一句歌词的特征词为“终于”,从对应的子集中搜索到对应的字或词可以是“等到”、“挽留”、“哀求”等。

本实施例中通过特征词从对应的子集中生成新的一句歌词中的字或词,使得生成的字或词与特征词的联系较为紧密,更加符合需要生成歌词的歌曲的风格类型。

图3为本申请在一个实施例中提供的评选输出词的流程图,如图所示,包括:

s301、计算所述特征词对应的所述多个字或词中的每一个字或词可能成为当前词的下一个词的概率,并对概率较大的字或词进行标记;

本步骤中通过循环神经网络来计算所述特征词对应的多个字或词可能成为当前词的下一个词的概率,循环神经网络中通过权重矩阵将可能输出的字或词与已输出的当前词进行联系;比如将所述特征词对应的字或词与权重矩阵的交叉次数进行计数,并且定义总的权重矩阵数量为10,用交叉次数除以总的数量10即得到某个字或词的概率,比如某个词与权重矩阵的交叉次数为2,总的权重矩阵数量为10,其可能成为当前词的下一个词的概率为0.2,将概率高于0.6的字或词进行标记。

s302、根据当前词词末的押韵和词组的风格类型建立歌词规则;

本步骤中通过已输出的当前词的词末的押韵方式和已输出的词的风格类型来建立下一句歌词的规则,由于每一个字或词所对应的押韵方式稍有不同,故每次在输出一个新的字或词之前,都需根据具体的押韵方式和词组风格类型建立将要输出的新的字或词所对应的歌词规则。

s303、根据所述标记和所述歌词规则综合评选出下一个将要输出的词;

本步骤中获取进行了标记的可能成为下一个词的概率较高的字或词,然后从所标记的字或词中选出最符合所述歌词规则的字或词,将其作为将要输出的字或词。

本实施例中通过循环神经网络模型来计算所述特征词对应的字或词的概率,并结合所述歌词规则优选出将要输出的字或词,使得一句歌词中前后的字或词之间的联系更为紧密,输出的字或词更加符合歌曲的风格类型。

在一个实施例中,所述计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词,还包括基于循环神经网络模型来实现所述将要输出的词的概率计算和规则评选,具体包括:

根据权重矩阵u计算得到隐藏层s的权重矩阵,所述隐藏层s的权重矩阵的计算公式如公式(1)所示,

st=f(u×xt+w×st1)(1),

公式(1)中t表示时刻,st表示t时刻隐藏层的权重矩阵,u、w为自定义概率变换矩阵,st1表示t1时刻隐藏层的权重矩阵,xt表示输入的独热向量;所述隐藏层s的权重矩阵取决于输入向量x,同时还通过权重矩阵w与隐藏层的上一次的值s相关;

在所述隐藏层s通过权重矩阵v后,输出一个与已生成的所有词都有一定联系的词,输出的词的计算公式如公式(2)所示,

ot=g(v×st)(2),

公式(2)中ot表示t时刻输出层输出的结果,v为自定义概率变换矩阵,g表示学习效率。

本实施例中通过循环神经网络模型中的权重矩阵来联系一句歌词中已输出的词与将要输出的词,若一个字或词经过的权重矩阵越多,即其与已输出的词之间的联系越为紧密,其成为下一个将要输出的字或词的概率就越大;通过循环神经网络模型评选出的下一个词,其与已输出的词之间的逻辑关联性更强。

在一个实施例中,所述判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词,包括:

基于马尔科夫模型来判定所述将要输出的词与前几个词的联系是否紧密,如果判定结果为是,则输出该词;如果判定结果为否,则返回至基于循环神经网络模型中的权重矩阵u,调整权重矩阵u,继续生成新的词。

本实施例中通过运用马尔科夫模型来判断将要输出的词与前几个词之间的联系,进一步加强将要输出的词与已输出的词之间的逻辑紧密性,使得生成的词更加符合歌曲的风格类型。

图4为本申请在一个实施例中提供的输出歌词的流程图,如图所示,包括:

s501、获取将要输出的一句歌词的字数要求;

本步骤中获取对于将要输出的一句歌词的字数要求,即该句歌词的歌词长度,比如要求某句歌词中包含5个字,即该句歌词的长度为5。

s502、对所述将要输出的一句歌词进行字数判断,当字数符合所述字数要求时则输出该句歌词,当字数不符合所述字数要求时则重新调整该句歌词的字数;

本步骤中对所述将要输出的一句歌词进行字数的判断,比如一句歌词长度要求为5,且特征词为“终于”,歌曲名字为《终于等到你》,若生成“终于等到你”,则符合字数要求,可输出该句歌词;若生成“终于等到了你”,则不符合字数要求,需要重新调整歌词的字数。

s503、并对每一句输出的歌词进行判断,判断该句歌词是否是最后一句歌词,当输出的一句歌词不是最后一句歌词时,将所输出的那句歌词作为特征词与下一句歌词的特征词结合在一起作为下一句歌词的新的特征词;

本步骤中需要对每一句输出的歌词进行判断,判断其是否为最后一句歌词,比如输出某句歌词以后,后续不再有特征词的输入,即可判断该句歌词为最后一句歌词,若后续仍然有特征词的输入,则不是最后一句歌词,并且继续进行下一句歌词的生成工作。

s504、当输出的一句歌词是最后一句歌词时,在所生成的歌词输出后,结束一首歌词的生成作业;

本步骤中若判断了某一句歌词为最后一句歌词时,将所有生成的歌词进行整理后输出,并且结束一首歌曲的歌词的生成工作。

本实施例中通过对输出的歌词的字数进行判定,使得输出的歌词更加工整,更加符合歌曲的韵律。

基于相同的构思,本申请还提出了一种基于神经网络的歌词生成装置,如图5所示,所述基于神经网络的歌词生成装置包括搜索模块、生成模块、运算模块、判断模块和输出模块,其中:搜索模块,设置为根据输入的歌曲风格类型,从全集中搜索到与所述歌曲风格类型相对应的子集,所述全集是指包括所有风格类型的字词的集合,所述子集是指包括某个风格类型的字词的集合;生成模块,设置为根据输入的歌词特征词,从所述子集中生成对应的多个字或词;运算模块,设置为计算所述多个字或词为当前词的下一个词的概率,并结合歌词规则得到下一个将要输出的词;判断模块,设置为判断所述将要输出的词与其前几个词之间的联系是否紧密,若判断为是,则输出该词,若判断为否,则根据所述特征词重新生成新的词;输出模块,设置为根据输入的歌词的字数要求,对将要输出的一句歌词进行字数判断,若字数符合要求则输出该句歌词,若字数不符合要求则重新生成该句歌词。

在一个实施例中,所述基于神经网络的歌词生成装置还包括建模模块,所述建模模块包括:

获取单元,设置为从数据库中获取一定数量的不同风格类型的歌曲进行学习;

学习单元,设置为在学习阶段,设置初始权重,当该权重值随学习深度的增加而达到一定精度后进入工作阶段;

工作单元,设置为在工作阶段,根据不同风格类型的歌曲筛选相关词,形成包含各风格类型的全集,所述全集中包含了与各风格类型相关的所有字和词以及通用的、中性的字和词。

在一个实施例中,所述建模模块的执行顺序位于所述搜索模块之前。

在一个实施例中,所述生成模块包括:

输入单元,设置为在生成每一句歌词前都要输入该句歌词对应的特征词;

映射单元,设置为特征词中的每一个字或词均具有离散特征,都有一个映射到对应子集中的唯一编号,同时特征词只使用一个字符序列,除最后一个字外,字符序列中其它字或词都作为输入,从第二个字开始作为真是参考值。

在一个实施例中,所述运算模块包括:

计算单元,设置为计算所述特征词对应的所述多个字或词中的每一个字或词可能成为当前词的下一个词的概率,并对概率较大的字或词进行标记;

建立规则单元,设置为根据当前词词末的押韵和词组的风格类型建立歌词规则;

评选单元,设置为根据所述标记和所述歌词规则综合评选出下一个将要输出的词。

在一个实施例中,所述运算模块中的所述计算单元包括:

神经网络单元,设置为根据权重矩阵u计算得到隐藏层s的权重矩阵,所述隐藏层s的权重矩阵的计算公式如公式(1)所示,

st=f(u×xt+w×st1)(1),

公式(1)中t表示时刻,st表示t时刻隐藏层的权重矩阵,u、w为自定义概率变换矩阵,st1表示t1时刻隐藏层的权重矩阵,xt表示输入的独热向量;所述隐藏层s的权重矩阵取决于输入向量x,同时还通过权重矩阵w与隐藏层的上一次的值s相关;

在所述隐藏层s通过权重矩阵v后,输出一个与已生成的所有词都有一定联系的词,输出的词的计算公式如公式(2)所示,

ot=g(v×st)(2),

公式(2)中ot表示t时刻输出层输出的结果,v为自定义概率变换矩阵,g表示学习效率。

在一个实施例中,所述判断模块包括:

判定单元,设置为基于马尔科夫模型来判定所述将要输出的词与前几个词的联系是否紧密,如果判定结果为是,则输出该词;如果判定结果为否,则返回至基于循环神经网络模型中的权重矩阵u,调整权重矩阵u,继续生成新的词。

在一个实施例中,所述输出模块包括:

获取字数单元,设置为获取将要输出的一句歌词的字数要求;

判断字数单元,设置为对将要输出的一句歌词进行字数判断,当字数符合字数要求时则输出该句歌词,当字数不符合字数要求时则重新调整该句歌词的字数;

判断结束句单元,设置为对每一句输出的歌词进行判断,判断该句歌词是否是最后一句歌词,当输出的一句歌词不是最后一句歌词时,将所输出的那句歌词作为特征词与下一句歌词的特征词结合在一起作为下一句歌词的新的特征词;

结束生成单元,设置为当输出的一句歌词是最后一句歌词时,在所生成的歌词输出后,结束一首歌词的生成作业。

基于相同的技术构思,本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行计算机可读指令时实现上述各实施例中的基于神经网络的歌词生成方法的步骤。

基于相同的技术构思,本申请实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行所述计算机可读指令时实现上述各实施例中的基于神经网络的歌词生成方法的步骤。其中,所述存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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