歌词生成方法、系统、计算机设备及计算机可读存储介质与流程

文档序号:18940744发布日期:2019-10-23 01:08阅读:142来源:国知局
歌词生成方法、系统、计算机设备及计算机可读存储介质与流程
本发明实施例涉及人工智能领域,尤其涉及一种歌词生成方法、系统、计算机设备及计算机可读存储介质。
背景技术
:在待生成歌曲的歌词创作过程中对于待生成歌曲的歌词有诸多要求,这些要求限制了普通人或组织创作个性化歌曲的可能性。在很多情况中,普通人或组织如果想要获得定制的歌曲,往往需要求助于具有专业作词和作曲能力的人或组织。随着计算机时代的到来,特别是随着人工智能的不断进步,期望能够自动地生成期望的歌曲,例如生成待生成歌曲的歌词。技术实现要素:有鉴于此,本发明实施例的目的是提供一种歌词生成方法、系统、计算机设备及计算机可读存储介质,使得普通人或组织可以创作出比较专业的歌词。为实现上述目的,本发明实施例提供了一种歌词生成方法,包括以下步骤:步骤1、接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度;步骤2、基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成的字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及步骤3、基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字;步骤4、重复执行步骤2和步骤3,以生成所述待生成歌曲的全部句子。进一步地,所述基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态的步骤包括:基于正向长短期记忆的循环神经网络模型对所述输入序列进行正向编码以生成正向隐状态;基于反向长短期记忆的循环神经网络模型对所述输入序列进行正反向编码以生成反向隐状态;拼接所述正向隐状态与所述反向隐状态,以生成所述一组隐状态。进一步地,所述基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字的步骤包括:基于所述汉语语言模型n-grams获取所述隐状态对应的信息向量;根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字。进一步地,所述基于所述汉语语言模型n-grams获取所述隐状态对应的信息向量的步骤包括:基于所述汉语语言模型n-grams获取所述隐状态对应的各个信息向量的注意力得分;及将具有最高注意力得分的信息向量作为所述隐状态对应的信息向量。进一步地,所述的歌词生成方法还包括:训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。进一步地,所述训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型的步骤包括:获取主题样本和所述主题样本对应的歌词样本;及根据所述主题样本和所述歌词样本训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。进一步地,当不存在所述已生成字时,基于双向长短期记忆的循环神经网络模型对所述向量数据进行编码,以将所述输入序列转换为一组隐状态。为实现上述目的,本发明实施例还提供了一种歌词生成系统,包括:接收模块,用于接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度;编码模块,用于基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及解码模块,用于基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字。为实现上述目的,本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述歌词生成方法的步骤。为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的歌词生成方法的步骤。本发明实施例提供的歌词生成方法、系统、计算机设备及计算机可读存储介质,通过接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度;基于双向长短期记忆的循环神经网络模型对向量数据和已生成的字组成的输入序列进行编码,以将输入序列转换为一组隐状态;基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对隐状态进行解码,以生成待生成歌曲的当前字;重复执行上述步骤,以生成待生成歌曲的全部句子。这样,利用双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以及利用包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,从而可以自动生成待生成歌曲的歌词,使得普通人或组织可以创作出比较专业的歌词。附图说明图1为本发明歌词生成方法第一实施例的实施流程示意图。图2为本发明中基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态的步骤的细化流程示意图。图3为本发明中基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字的步骤的细化流程示意图。图4为本发明歌词生成方法第二实施例的实施流程示意图。图5为本发明一实施方式的歌词生成系统的程序模块示意图。图6为本发明一实施方式的计算机设备的硬件结构示意图。附图标记歌词生成系统500、604接收模块501编码模块502解码模块503计算机设备600存储器601处理器602网络接口603本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参阅图1,示出了本发明实施例一之歌词生成方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以歌词生成系统(下文以“生成系统”简称)为执行主体进行示例性描述,所述生成系统可以应用于服计算机设备中。具体如下:步骤s100,接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度。具体地,用户的输入信息可以为文本信息、图片信息、音频信息等,该输入信息中包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度。在本实施例中,所述歌曲的主题为用户对于该歌曲的创作意图。例如,若用户输入的输入信息为文本格式的“大海”,则表明用户期望生成的待生成歌曲的歌词是有关大海的;若用户输入的信息为文本格式的“天空”,则表明用户期望生成的待生成歌曲的歌词是有关天空的;若用户的输入信息是一张全家福图片,则表明用户期望生成的待生成歌曲的歌词是有关家庭的;若用户的输入信息为音频格式的“大海”,则先将该音频转换为文本信息,然后根据转换后的文本信息确定待生成歌曲的主题为有关大海的。该待生成的歌曲的句子数量为该待生成的歌曲总共由多少个句子组成,该每个句子的数量为每句歌词包含多少个字。在本实施例中,在将所述输入信息转换为对应的向量数据时,首先需要对该输入信息进行预处理。具体地,在所述输入信息为文本信息时,可以先对输入的文本信息进行分词处理,转换为一定长度的多个句子,然后可以通过嵌入层(embedding层)将分词后得到的句子转换为所述向量数据;当用户的输入信息为图像信息时,则先需要对该图像信息进行文本化处理,输出可识别和可处理的纯文本数据,之后再对该纯文本数据进行分词处理,以将其转换为长度的多个句子,最后通过嵌入层(embedding层)将分词后得到的句子转换为所述向量数据;当用户的输入信息为音频信息时,则可以先将该音频信息转换为文本信息,之后对得到的文本信息进行分词以及向量化处理,从而得到所述向量数据。在一实施方式中,所述接收用户的输入信息,并将所述输入信息转换为对应的向量数据的步骤包括:接收所述用户的输入信息,并从所述输入信息中提取所述待生成歌曲的主题;及将所述主题转换为对应的向量数据。在本实施例中,用户的输入信息除了所述待生成歌曲的主题之外,可能还包含其他信息,因此,为了避免将除了待生成歌曲的主题之外的其他信息转换为所述向量数据,在接收到所述输入信息之后,需要对该输入信息进行处理,以提取到该输入信息中所包含的待生成歌曲的主题,则对于其他信息可以舍弃。具体地,可以将该输入信息与预设的主题模板进行匹配,以从所述输入信息中提取出所述待生成歌曲的主题,比如,用户的输入信息为一张大海的图片,则在对该图片进行文本化处理之后,可以得到文本信息“一张大海的图片”,在将该文本信息与预设主题模板进行匹配后,可以从预设主题模板库中匹配出主题“大海”。在提取出待生成歌曲的主题之后,将该主题转换为对应的向量数据,具体转换过程,在上文已做详细描述,在本实施例中不在赘述。步骤s102,基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态。具体地,双向长短期记忆的循环神经网络(bi-directionallstmrnn)模型是rnn(recurrentneuralnetwork,循环神经网络)模型的一种改进模型,在双向长短期记忆(lstm)的循环神经网络模型中,利用存储单元代替rnn模型中的常规神经元,每个存储单元与一个输入门、一个输出门和一个跨越时间步骤无干扰送入自身的内部状态相关联。双向长短期记忆的循环神经网络,能够学习长期依赖性,不是仅使用单个神经网络层(通常是tanh层),而是使用三个门来调节(添加或移除)lstm的状态变量,lstm保存lstm单元的存储器。在本实施例中,首先将所述向量数据和已生成字按照顺序组成一个输入序列,然后利用双向长短期记忆循环神经网络模型对输入序列进行编码,以将输入序列转换为一组隐状态。举例而言,假设将所述向量数据和已生成字按照顺序组合后,形成一个长度为t的输入序列,记为:x=(x1,x2,…,xt),将该输入序列输入至双向长短期记忆循环神经网络模型中进行编码,即可获得一组隐状态,记为:y=(y1,y2,...yt)。需要说明的是,在生成第一个歌词时,由于此前没有已生成字,因此,此时只将所述向量数据作为所述输入序列输入至双向长短期记忆循环神经网络模型中进行编码来将其转换为一组隐状态。请参阅图2,在一实施方式中,所述基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态的步骤包括:步骤s200,基于正向长短期记忆的循环神经网络模型对所述输入序列进行正向编码以生成正向隐状;步骤s202,基于反向长短期记忆的循环神经网络模型对所述输入序列进行正反向编码以生成反向隐状态;步骤s204,拼接所述正向隐状态与所述反向隐状态,以生成所述一组隐状态。在本实施例中,在将所述向量数据和已生成字组成输入序列之后,基于正向长短期记忆的循环神经网络模型对所述输入序列进行正向编码生成正向隐状;基于反向长短期记忆的循环神经网络模型对所述输入序列进行正反向编码生成反向隐状态。需要说明的是,本实施例中获取正向隐状和反向隐状态的步骤可以同时进行,也可以是先后进行的,本发明对此不作限定。在获取到正向隐状态与反向隐状态之后,拼接该正向隐状态与该反向隐状态,从而生成所述输入序列对应的一组隐状态。步骤s104,基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字。具体地,在发明实施例中,将歌词生成问题作为创建单词序列的概率分布并从中随机抽样。为了对这种概率分布进行建模,可以从现有的歌词中学习下一个词的调节对前一个词序列的概率分布。换句话说,需要知道句子s在歌词样本语料库出现的可能性,即也就是数学上所说的概率p(s),其中,句子s由一串特定顺序排列的词wn,wn-1,...,w2,w1组成,n是句子的长度。根据概率链规则,其中wi代表歌词文档中的第i个单词。原则上可以从训练数据中导出每个单词的条件分布,然而,将这些分布中的每一个分配到第一个单词是不切实际的。更易处理的方法是仅使用之前的n-1个单词,即:p(wn|wn-1,…w1)≈p(wn|wn-1,…wn-n+1)。基于该算法,可以通过首先滑动长度为n的窗口来实现该算法。具体地,通过训练文本获得一系列短词序列(n-grams),然后计算在n-grams集合中每个n-1个单词之后每个可能的最后一个单词的出现次数,通过这种方式,我们获得p(wn|wn-1,…w1)的近似值p(wn|wn-1,…wn-n+1)。为了生成新的歌词,可以根据条件分布不断选择新单词。在本实施例中,在获得所述向量数据与已生成歌词组成的输入序列对应的隐状态之后,基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对获得的隐状态进行解码,即可生成所述待生成歌曲的当前字。请参阅图3,在一实施方式中,所述基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字的步骤包括:步骤s300,基于所述汉语语言模型n-grams获取所述隐状态对应的信息向量。具体地,通过所述汉语语言模型n-grams可以获取隐状态对应的各个信息向量的注意力得分,所述注意力得分为所述汉语语言模型n-grams根据所述隐状态所预测得到的各个单词对应的信息向量所对应的概率。在获取到各个信息向量的注意力得分之后,将具有最高得分的信息向量作为所述隐状态对应的信息向量。举例如下:根据所述隐状态:y=(y1,y2,...yt)得到的信息向量为:y1,y2,y3,y4等,且y1,y2,y3,y4的注意力得分依次为0.7,0.9,0.4,0.6,则可将信息向量y2作为所述隐状态对应的信息向量。步骤s302,根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字。在本实施例中,在获得所述信息向量之后,即可根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字。在一实施方式中,当第一次生成当前字时,由于不存在前一个生成字,即不存在已生成字,则直接基于双向长短期记忆的循环神经网络模型对所述向量数据进行编码,以将所述输入序列转换为一组隐状态,而不用先将所述向量数据与以生成的字组成输入序列,然后在对该输入系列序列进行编码,从而将该输入序列转换为一组隐状态。在本发明实施例中,在生成当前字之后,需要将该当前生成的字与之前的信息向量进行拼接组成新的序列向量输入至包含汉语语言模型n-grams的长短期记忆循环神经网络模型中,以生成下一个字,重复上述步骤,直到完成所有歌词句子的生成。在本发明实施中,在生成当前字之后,会根据输入信息中的待生成歌曲的句子数量以及每个句子的长度来判断当前字是否已经生成完毕,若没有生成完毕,则会继续执行步骤s102-s104,直至所有的句子生成完成。例如,若待生成的歌曲的句子数量为10句,每个句子的长度为6,则总的待生成字为60个,当根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字之后,即会判断该当前字是否为最后一个当前字,若该当前字为最后一个当前字,则会停止当前字的生成,即完成对所述待生成歌曲的生成;若当前字不是最后一个当前字时,则会继续执行上述步骤s102-s104。在完成所有歌词句子的生成之后,即可将生成的多个字组合成所述待生成歌曲的歌词句子。举例而言,假设,采用本实施例中的歌词生成方法生成的生成字分别为“你”、“是”、“我”、“的”、“天”、“空”,则将这些字组合可以获得歌词“你是我的天空”。通过上述步骤s100-s104,本发明所提出的歌词生成方法,通过接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题;基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的歌词。这样,利用双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以及利用包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,从而可以自动生成待生成歌曲的歌词,使得普通人或组织可以创作出比较专业的歌词。参阅图4,是本发明歌词生成方法第二实施例的实施流程示意图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面以歌词生成系统(下文以“生成系统”简称)为执行主体进行示例性描述,所述生成系统可以应用于服务器中。具体如下:步骤s400,训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。具体地,为了能够利用所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型生成歌词,需要对上述两个模型进行训练。在一实施方式中,所述训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型的步骤包括:获取主题样本和所述主题样本对应的歌词样本;及根据所述主题样本和所述歌词样本训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。在本实施例中,所述主题样本为包括多个主题的数据集合,所述主题为用户期望的歌曲的歌词的创作意图。该主题样本可以从现有的歌词库中的句歌词中进行提取,同时可以将该句歌词作为歌词样本。在使用主题样本和所述歌词样本训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型时,随着训练样本数据的输入,双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型会自动调整其中的参数,直到得到符合要求的模型为止。在本实施例中,在训练所述双向长短期记忆循环神经网络模型及所述包含汉语语言模型n-grams的长短期记忆循环神经网络模型时,使用小批量梯度下降法训练模型,其中学习率α(i)随着时期数而衰减,α(i)=α0*(rd)t,其中α0=1是初始学习率,rd=0.85是衰减率,并且时期的数量为t=50。在本实施方式中,可以使用80%的歌词样本用于训练,10%歌词样本用于验证,另外10%歌词样本用于测试。随着时期数的增加,rnn开始以正确的语法输出正确的单词。在对模型训练时,可以通过以下几个方面来评估模型的效果:(1)复杂度使用复杂度perplexity作为模型表现:其中n是序列的长度,ptarget是在rnn之后通过n-gram或softmax回归输出的第i个字或字符的概率。(2)隐藏尺寸没有跳出的情况下,较大的隐藏层大小会降低训练复杂度,但会增加验证复杂度,这是过度拟合的标志。rnn的这种行为是可解释的,因为具有较大隐藏尺寸的rnn具有比具有较小隐藏尺寸的rnn更多的参数,这使得模型更可能过度拟合数据。(3)批量尺寸没有跳出的情况下,较大的批量尺寸具有更快的训练速度并且导致训练过程中的过度拟合。(4)跳出率跳出在每次迭代中随机禁用某一部分神经元以避免过度拟合。实验中发现,较大的隐藏尺寸具有引起过度拟合的风险,因为更多参数被引入到模型中。这可以通过使用跳出降低风险。字符级rnn似乎擅长捕获句子的语法,但在生成在上下文中有意义的文本时可能很弱。因此在训练中需要使用更大的数据集。步骤s402,接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题;步骤s404,基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及步骤s406,基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字。具体地,上述步骤s402-s406与步骤s100-s104类似,在本实施方式中不再赘述。通过上述步骤s400-s406,本发明所提出的歌词生成方法,训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型;接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题;基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的歌词。这样,利用训练好的双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以及利用包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,从而可以自动生成待生成歌曲的歌词,使得普通人或组织可以创作出比较专业的歌词。请参阅图5,示出了本发明实施例之歌词生成系统500(以下简称为“生成系统”500)的程序模块示意图。在本实施例中,生成系统500可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述歌词生成方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述歌词生成方法在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:接收模块501,接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度。具体地,用户的输入信息可以为文本信息、图片信息、音频信息等,该输入信息中包括待生成歌曲的主题、待生成歌曲的句子数量以及每个句子的长度。在本实施例中,所述歌曲的主题为用户对于该歌曲的创作意图。例如,若用户输入的输入信息为文本格式的“大海”,则表明用户期望生成的待生成歌曲的歌词是有关大海的;若用户输入的信息为文本格式的“天空”,则表明用户期望生成的待生成歌曲的歌词是有关天空的;若用户的输入信息是一张全家福图片,则表明用户期望生成的待生成歌曲的歌词是有关家庭的;若用户的输入信息为音频格式的“大海”,则先将该音频转换为文本信息,然后根据转换后的文本信息确定待生成歌曲的主题为有关大海的。该待生成的歌曲的句子数量为该待生成的歌曲总共由多少个句子组成,该每个句子的数量为每句歌词包含多少个字。在本实施例中,在将所述输入信息转换为对应的向量数据时,首先需要对该输入信息进行预处理。具体地,在所述输入信息为文本信息时,可以先对输入的文本信息进行分词处理,转换为一定长度的多个句子,然后可以通过嵌入层(embedding层)将分词后得到的句子转换为所述向量数据;当用户的输入信息为图像信息时,则先需要对该图像信息进行文本化处理,输出可识别和可处理的纯文本数据,之后再对该纯文本数据进行分词处理,以将其转换为长度的多个句子,最后通过嵌入层(embedding层)将分词后得到的句子转换为所述向量数据;当用户的输入信息为音频信息时,则可以先将该音频信息转换为文本信息,之后对得到的文本信息进行分词以及向量化处理,从而得到所述向量数据。在一实施方式中,所述接收用户的输入信息,并将所述输入信息转换为对应的向量数据的步骤包括:接收所述用户的输入信息,并从所述输入信息中提取所述待生成歌曲的主题;及将所述主题转换为对应的向量数据。在本实施例中,用户的输入信息除了所述待生成歌曲的主题之外,可能还包含其他信息,因此,为了避免将除了待生成歌曲的主题之外的其他信息转换为所述向量数据,在接收到所述输入信息之后,需要对该输入信息进行处理,以提取到该输入信息中所包含的待生成歌曲的主题,则对于其他信息可以舍弃。具体地,可以将该输入信息与预设的主题模板进行匹配,以从所述输入信息中提取出所述待生成歌曲的主题,比如,用户的输入信息为一张大海的图片,则在对该图片进行文本化处理之后,可以得到文本信息“一张大海的图片”,在将该文本信息与预设主题模板进行匹配后,可以从预设主题模板库中匹配出主题“大海”。在提取出待生成歌曲的主题之后,将该主题转换为对应的向量数据,具体转换过程,在上文已做详细描述,在本实施例中不在赘述。编码模块502,基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态。具体地,双向长短期记忆的循环神经网络(bi-directionallstmrnn)模型是rnn(recurrentneuralnetwork,循环神经网络)模型的一种改进模型,在双向长短期记忆(lstm)的循环神经网络模型中,利用存储单元代替rnn模型中的常规神经元,每个存储单元与一个输入门、一个输出门和一个跨越时间步骤无干扰送入自身的内部状态相关联。双向长短期记忆的循环神经网络,能够学习长期依赖性,不是仅使用单个神经网络层(通常是tanh层),而是使用三个门来调节(添加或移除)lstm的状态变量,lstm保存lstm单元的存储器。在本实施例中,首先将所述向量数据和已生成字按照顺序组成一个输入序列,然后利用双向长短期记忆循环神经网络模型对输入序列进行编码,以将输入序列转换为一组隐状态。举例而言,假设将所述向量数据和已生成字按照顺序组合后,形成一个长度为t的输入序列,记为:x=(x1,x2,…,xt),将该输入序列输入至双向长短期记忆循环神经网络模型中进行编码,即可获得一组隐状态,记为:y=(y1,y2,...yt)。需要说明的是,在生成第一个歌词时,由于此前没有已生成字,因此,此时只将所述向量数据作为所述输入序列输入至双向长短期记忆循环神经网络模型中进行编码来将其转换为一组隐状态。在一实施方式中,所述基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态的步骤包括:基于正向长短期记忆的循环神经网络模型对所述输入序列进行正向编码以生成正向隐状;基于反向长短期记忆的循环神经网络模型对所述输入序列进行正反向编码以生成反向隐状态;拼接所述正向隐状态与所述反向隐状态,以生成所述一组隐状态。在本实施例中,在将所述向量数据和已生成字组成输入序列之后,基于正向长短期记忆的循环神经网络模型对所述输入序列进行正向编码生成正向隐状;基于反向长短期记忆的循环神经网络模型对所述输入序列进行正反向编码生成反向隐状态。需要说明的是,本实施例中获取正向隐状和反向隐状态的步骤可以同时进行,也可以是先后进行的,本发明对此不作限定。在获取到正向隐状态与反向隐状态之后,拼接该正向隐状态与该反向隐状态,从而生成所述输入序列对应的一组隐状态。解码模块503,用于基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字。具体地,在发明实施例中,将歌词生成问题作为创建单词序列的概率分布并从中随机抽样。为了对这种概率分布进行建模,可以从现有的歌词中学习下一个词的调节对前一个词序列的概率分布。换句话说,需要知道句子s在歌词样本语料库出现的可能性,即也就是数学上所说的概率p(s),其中,句子s由一串特定顺序排列的词wn,wn-1,...,w2,w1组成,n是句子的长度。根据概率链规则,其中wi代表歌词文档中的第i个单词。原则上可以从训练数据中导出每个单词的条件分布,然而,将这些分布中的每一个分配到第一个单词是不切实际的。更易处理的方法是仅使用之前的n-1个单词,即:p(wn|wn-1,…w1)≈p(wn|wn-1,…wn-n+1)。基于该算法,可以通过首先滑动长度为n的窗口来实现该算法。具体地,通过训练文本获得一系列短词序列(n-grams),然后计算在n-grams集合中每个n-1个单词之后每个可能的最后一个单词的出现次数,通过这种方式,我们获得p(wn|wn-1,…w1)的近似值p(wn|wn-1,…wn-n+1)。为了生成新的歌词,可以根据条件分布不断选择新单词。在本实施例中,在获得所述向量数据与已生成歌词组成的输入序列对应的隐状态之后,基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对获得的隐状态进行解码,即可生成所述待生成歌曲的当前字。在一实施方式中,所述基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字的步骤包括:步骤1、基于所述汉语语言模型n-grams获取所述隐状态对应的信息向量。具体地,通过所述汉语语言模型n-grams可以获取隐状态对应的各个信息向量的注意力得分,所述注意力得分为所述汉语语言模型n-grams根据所述隐状态所预测得到的各个单词对应的信息向量所对应的概率。在获取到各个信息向量的注意力得分之后,将具有最高得分的信息向量作为所述隐状态对应的信息向量。举例如下:根据所述隐状态:y=(y1,y2,...yt)得到的信息向量为:y1,y2,y3,y4等,且y1,y2,y3,y4的注意力得分依次为0.7,0.9,0.4,0.6,则可将信息向量y2作为所述隐状态对应的信息向量。步骤2、根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字。在本实施例中,在获得所述信息向量之后,即可根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字。在一实施方式中,当第一次生成当前字时,由于不存在前一个生成字,即不存在已生成字,则直接基于双向长短期记忆的循环神经网络模型对所述向量数据进行编码,以将所述输入序列转换为一组隐状态,而不用先将所述向量数据与以生成的字组成输入序列,然后在对该输入系列序列进行编码,从而将该输入序列转换为一组隐状态。在本发明实施例中,在生成当前字之后,需要将该当前生成的字与之前的信息向量进行拼接组成新的序列向量输入至包含汉语语言模型n-grams的长短期记忆循环神经网络模型中,以生成下一个字,重复上述步骤,直到完成所有歌词句子的生成。在本发明实施中,在生成当前字之后,会根据输入信息中的待生成歌曲的句子数量以及每个句子的长度来判断当前字是否已经生成完毕,若没有生成完毕,则会继续基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成的字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态,以及会继续基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字,直至所有的句子生成完成。例如,若待生成的歌曲的句子数量为10句,每个句子的长度为6,则总的待生成字为60个,当根据所述汉语语言模型n-grams、所述信息向量和前一个字生成当前字之后,即会判断该当前字是否为最后一个当前字,若该当前字为最后一个当前字,则会停止当前字的生成,即完成对所述待生成歌曲的生成;若当前字不是最后一个当前字时,则会继续基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成的字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态,以及会继续基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的当前字。在完成所有歌词句子的生成之后,即可将生成的多个字组合成所述待生成歌曲的歌词。举例而言,假设,采用本实施例中的歌词生成方法生成的生成字分别为“你”、“是”、“我”、“的”、“天”、“空”,则将这些字组合可以获得歌词“你是我的天空”。在本发明另一实施方式中,所述生成系统500还包括:训练模块,用于训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。具体地,为了能够利用所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型生成歌词,需要对上述两个模型进行训练。在一实施方式中,所述训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型的步骤包括:获取主题样本和所述主题样本对应的歌词样本;及根据所述主题样本和所述歌词样本训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型。在本实施例中,所述主题样本为包括多个主题的数据集合,所述主题为用户期望的歌曲的歌词的创作意图。该主题样本可以从现有的歌词库中的句歌词中进行提取,同时可以将该句歌词作为歌词样本。在使用主题样本和所述歌词样本训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型时,随着训练样本数据的输入,双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型会自动调整其中的参数,直到得到符合要求的模型为止。通过上述程序模块501-503,本发明所提出的歌词生成系统,训练所述双向长短期记忆的循环神经网络模型和包含汉语语言模型n-grams的长短期记忆的循环神经网络模型;接收用户的输入信息,并将所述输入信息转换为对应的向量数据,其中,所述输入信息包括待生成歌曲的主题;基于双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以将所述输入序列转换为一组隐状态;及基于包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,以生成所述待生成歌曲的歌词。这样,利用训练好的双向长短期记忆的循环神经网络模型对所述向量数据和已生成字组成的输入序列进行编码,以及利用包含汉语语言模型n-grams的长短期记忆的循环神经网络模型对所述隐状态进行解码,从而可以自动生成待生成歌曲的歌词,使得普通人或组织可以创作出比较专业的歌词。参阅图6,是本发明实施例之计算机设备600的硬件架构示意图。在本实施例中,所述计算机设备600是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备600至少包括,但不限于,可通过系统总线相互通信连接存储器601、处理器602、网络接口603、以及问答系统中的问题答案查询604。其中:本实施例中,存储器601至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器601可以是计算机设备600的内部存储单元,例如该计算机设备600的硬盘或内存。在另一些实施例中,存储器601也可以是计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器601还可以既包括计算机设备600的内部存储单元也包括其外部存储设备。本实施例中,存储器601通常用于存储安装于计算机设备600的操作系统和各类应用软件,例如歌词生成系统604的程序代码等。此外,存储器601还可以用于暂时地存储已经输出或者将要输出的各类数据。处理器602在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制计算机设备600的总体操作。本实施例中,处理器602用于运行存储器601中存储的程序代码或者处理数据,例如运行问答系统中的问题答案生成系统604,以实现实施例一中的歌词生成方法。所述网络接口603可包括无线网络接口或有线网络接口,该网络接口603通常用于在所述计算机设备600与其他电子装置之间建立通信连接。例如,所述网络接口603用于通过网络将所述计算机设备600与外部终端相连,在所述计算机设备600与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。需要指出的是,图6仅示出了具有部件601-604的计算机设备600,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。在本实施例中,存储于存储器601中的所述运行问答系统中的问题答案生成系统604还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器601中,并由一个或多个处理器(本实施例为处理器602)所执行,以完成本发明歌词生成方法。本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储歌词生成系统500或604,以被处理器执行时实现本发明之运行歌词生成方法。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1