CN111428487B - 模型训练方法、歌词生成方法、装置、电子设备及介质 - Google Patents
模型训练方法、歌词生成方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN111428487B CN111428487B CN202010125311.6A CN202010125311A CN111428487B CN 111428487 B CN111428487 B CN 111428487B CN 202010125311 A CN202010125311 A CN 202010125311A CN 111428487 B CN111428487 B CN 111428487B
- Authority
- CN
- China
- Prior art keywords
- word
- lyric
- sample
- word segmentation
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本说明书实施例提供了一种模型训练方法、歌词生成方法、装置、电子设备及介质,该模型训练方法通过样本歌曲的歌词文本得到的样本分词序列,先根据样本分词序列中每个词语出现的频率,对样本分词序列中的词语进行剔除处理,然后基于样本分词序列以及样本分词序列中每个分词的词向量,对长短期记忆网络模型进行训练,得到歌词生成模型,用于自动生成新的歌词文本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种模型训练方法、歌词生成方法、装置、电子设备及介质。
背景技术
现今,唱歌是丰富人们精神文化生活的重要娱乐项目。目前大多数歌曲的歌词都是由专业音乐人人为创作的。歌词的创作需要创作者有一定的文学功底以及人生阅历,同时创作者的创作灵感也会在很大程度上影响歌词的创作。对于没有歌词创作经验的业余爱好者,或者是缺少灵感的音乐人,创作一首歌词需要消耗大量的时间,效率极低。
发明内容
本说明书实施例提供了一种模型训练方法、歌词生成方法、装置、电子设备及介质。
第一方面,本说明书实施例提供了一种模型训练方法,所述方法包括:获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列;根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理;通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量;将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
第二方面,本说明书实施例提供了一种歌词生成方法,所述方法包括:获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量;根据所述分词序列、所述分词序列中每个分词的词向量以及上述第一方面所述的方法训练得到的歌词生成模型,得到新的歌词文本。
第三方面,本说明书实施例提供了一种歌词生成方法,所述方法包括:若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本;获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量;根据所述分词序列、所述每个分词的词向量以及上述第一方面所述的方法训练得到的歌词生成模型,输出新的歌词文本。
第四方面,本说明书实施例提供了一种模型训练装置,所述装置包括:文本获取模块,用于获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列;剔除模块,用于根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理;向量生成模块,用于通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量;第一训练模块,用于将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
第五方面,本说明书实施例提供了一种歌词生成装置,所述装置包括:获取模块,用于获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量;生成模块,用于根据所述分词序列、所述分词序列中每个分词的词向量以及上述第一方面所述的方法训练得到的歌词生成模型,得到新的歌词文本。
第六方面,本说明书实施例提供了一种歌词生成装置,所述装置包括:文本确定模块,用于若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本;获取模块,用于获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量;生成模块,用于根据所述分词序列、所述每个分词的词向量以及上述第一方面所述的方法训练得到的歌词生成模型,输出新的歌词文本。
第七方面,本说明书实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述第一方面、第二方面或第三方面所述方法的步骤。
第八方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面、第二方面或第三方面所述方法的步骤。
本说明书实施例有益效果如下:
本说明书实施例提供的模型训练方法,先由样本歌曲的歌词文本得到样本分词序列,然后根据样本分词序列中每个词语出现的频率,对样本分词序列中的词语进行剔除处理,接着,通过剔除后的样本分词序列以及其中每个分词的词向量,对长短期记忆网络模型进行训练,得到歌词生成模型,用于自动生成新的歌词文本,提高了歌词创造的效率。并且,长短期记忆网络能够有效地记忆学习过的歌词文本,能够根据学习过的歌词文本的特点,生成延续该特点的新的歌词文本,尤其适用于通过学习某种特定主题和/或风格的歌词文本,生成该主题和/或风格的新的歌词文本,有利于提高歌词生成的质量。另外,通过样本分词序列中每个词语出现的频率对样本分词序列中的词语进行剔除处理,能够有效地抑制样本分词序列中高频词语的出现,避免得到的歌词生成模型生成的新歌词中存在大量词语反复出现的情况,有利于进一步提高歌词生成的质量。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例第一方面提供的一种模型训练方法的流程图;
图2为本说明书实施例第二方面提供的一种歌词生成方法的流程图;
图3为本说明书实施例第三方面提供的一种歌词生成方法的流程图;
图4为本说明书实施例第四方面提供的一种模型训练装置的示意图;
图5为本说明书实施例第五方面提供的一种歌词生成装置的示意图;
图6为本说明书实施例第六方面提供的一种歌词生成装置的示意图;
图7为本说明书实施例第七方面提供的电子设备的示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
本说明书实施例中,所述的“文本”是指歌词内容。术语“多个”表示“两个以上”,即包括两个或大于两个的情况;术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
第一方面,本说明书实施例提供了一种模型训练方法。本说明书实施例提供的模型训练方法可以应用于在线音乐平台的服务器中,也可以应用于用户的终端设备,如手机、平板电脑等,这里不做限定。如图1所示,为本说明书实施例提供的一种模型训练方法的流程图,该方法至少包括以下步骤S101至步骤S104。
步骤S101,获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列。
以应用于音乐平台的服务器中为例,音乐平台的音乐库中的歌曲对应的歌词文本涵盖有各种风格和/或主题,例如,有的歌词风格为怀旧、有的歌词风格为中国风、有的歌词主题为爱情、有的歌词主题为青春,另外,不同类型的音乐,其歌词的结构组织也有区别,例如,说唱歌曲的歌词对韵脚有特别的要求。在本说明书一可选的实施例中,可以针对一种预设的风格和/或主题,采集同一风格和/或主题下的歌曲作为样本歌曲,从而获取这些样本歌曲的歌词文本,然后针对每首样本歌曲的歌词文本进行分词处理,得到每首样本歌曲的样本分词序列,以进一步训练歌词生成模型,这样训练得到的歌词生成模型中记录有该风格和/或主题的歌词文本的信息,能够有效地用于生成该风格和/或主题的歌词。
当然,在本说明书其他实施例中,步骤S101中,也可以收集各类风格和/或主题下的歌曲作为样本歌曲,这样训练得到的歌词生成模型,记录有各类风格和/或主题的歌词文本的信息,可以适用于生成各类风格和/或主题的歌词。
由于一首歌的歌词可能会存在许多重复的歌词句子,例如,副歌部分可能存在两次、甚至更多次数的重复,为了减少计算量,在一种可选的实施例中,上述对歌词文本进行分词处理,得到样本歌曲的样本分词序列的具体实施过程可以包括:对每首样本歌曲的歌词文本进行句子级别的去重处理,即:去除重复出现的句子,对经所述去重处理后的歌词文本中的句子进行分词处理,得到该样本歌曲的每句歌词的分词,组成该样本歌曲的样本分词序列。
具体来讲,根据预先配置的分词器来对歌词文本包含的每句歌词进行分词。举例来讲,对于歌词“一闪一闪亮晶晶”,其分词结果可以为“一闪”、“一闪”以及“亮晶晶”。
在一种可选的实施例中,歌词文本中除了包括样本歌曲的歌词句子以外,还包括每句歌词句尾的断句符号,如可以用“,”“/”或空格符等对歌词与歌词之间进行分隔,可以用“。”或换行符等符号作为用于表示整首歌曲的歌词文本结束的完结符。此时,上述对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列可以包括:对上述歌词文本进行分词处理,得到样本歌曲中每句歌词包含的词语以及句尾的断句符号,组成样本歌曲的样本分词序列。也就是说,本实施例摒弃了通常分词处理中剔除符号的做法,而是保留了歌词本文句尾设置的断句符号,从而在根据预先配置的分词器来对歌词文本进行分词时,除了将歌词句子中包含的各个词语划分为一个分词外,还会将每句歌词句尾的断句符号也划分为一个分词,这样得到的样本分词序列就会包括词语以及断句符号。举例来讲,对于歌词文本“一闪一闪亮晶晶,”,其分词结果可以为“一闪”、“一闪”、“亮晶晶”以及“,”。
考虑到大多歌词中有一些高频词语大量出现,比如“爱你”、“好”等,这些词语大量存在于样本分词序列中,容易导致训练得到的歌词生成模型生成的歌词中存在大量词语反复出现的情况,影响模型的歌词生成质量,这样就难以生成用户满意的歌词,从而不利于提高歌词创作效率。因此,在一种可选的实施例中,在生成样本分词序列中各个分词的词向量之前,可以先执行以下步骤S102,即高频词语抑制步骤,对得到的样本分词序列进行预处理,将其中出现频率过高的词语剔除一部分,减少其出现次数。
步骤S102,根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理。
根据所得到的样本分词序列中每个词语出现的频率,对样本分词序列中的词语进行剔除处理,能够有效地抑制样本分词序列中高频词语的出现,避免得到的歌词生成模型生成的新歌词中存在大量词语反复出现的情况,有利于进一步提高歌词生成的质量。
本实施例中,所有样本歌曲的样本分词序列组成样本分词序列集,上述高频词语抑制步骤中,每个词语出现的频率是指该词语在上述样本分词序列集中出现的频率。
举例来讲,样本歌曲有100首,通过上述步骤S101可以得到每首样本歌曲的样本分词序列,即共计得到100个样本分词序列,组成样本分词序列集。统计样本分词序列集中每个词语在该样本分词序列集出现的频率,例如,假设样本分词序列集中共计有10000个分词,某个词语出现了1000次,则该词语在整个样本分词序列集中出现的频率为1/10。词语出现的频率越高,就越容易被剔除。举例来讲,可以设置一频率阈值,将出现频率超过该频率阈值的词语进行部分剔除处理。部分剔除处理即为将样本分词序列集中位于不同位置的相同词语剔除一部分,以抑制该词语的出现频率。例如,样本分词序列集中包含了1000个“爱你”这个词语,且出现频率超过了频率阈值,则可以按照预设剔除规则剔除这1000个“爱你”中的一部分,如剔除其中500个。具体实施过程中,预设剔除规则可以根据实际需要设置,例如可以随机剔除一部分该词语,也可以按照预设的比例以及剔除规律进行剔除。
作为一种实施方式,上述步骤S102的实施过程可以包括:根据所述样本分词序列中每个词语出现的频率以及预设参数值,得到所述样本分词序列中每个词语的剔除概率;根据所述每个词语的剔除概率,对所述样本分词序列中的词语进行剔除处理。
具体来讲,可以根据以下公式计算样本分词序列中每个词语的剔除概率p:
其中,t是一个预设参数,也可以称为剔除强度因子,其决定了对高频词语的剔除惩罚强度,具体取值可以根据实际应用场景的需求以及多次试验设置。本说明书实施例中,预设参数t可以选取[0.00001,0.001]之间的某个值。例如,预设参数值可以选取0.0001。当某个词语的频率f越大,那么剔除概率p也就越大,就越容易被剔除。接下来,就可以逐个扫描每个样本分词序列中的每个词语,按照剔除概率p对当前词语进行随机剔除。当然,在本说明书其他实施例中,也可以按照其他满足上述规律的公式计算剔除概率,此处不作限制。
具体实施过程中,依次扫描样本分词序列中的每个词语,针对扫描到的当前词语,随机生成预设范围内的剔除阈值,若当前词语的剔除概率超过该剔除阈值,则剔除当前词语,反之,则不剔除,直至扫描完样本分词序列中所有词语。其中,预设范围可以为0到1,即剔除阈值为大于0且小于1的值。显然,剔除概率越大的词语,就越容易被剔除,从而实现对高频词语的部分剔除,有效地抑制了高频词语的出现次数。由于扫描到每个词语时都随机生成相应的剔除阈值,实现了对样本分词序列中的每个词语的随机剔除,也使得高频词语抑制过程更加灵活。
例如,样本分词序列中包含了多个“爱你”这个词语,其剔除概率均为0.6,当扫描到第一个词语“爱你”时,针对该当前词语随机生成的剔除阈值为0.7,由于该当前词语的剔除概率小于剔除阈值,则不剔除第一个“爱你”;当扫描到第二个词语“爱你”时,针对该当前词语随机生成的剔除阈值为0.5,由于该当前词语的剔除概率超过了剔除阈值,则剔除第二个“爱你”,依次类推。同理,对依次扫描到的每个词语都进行类似的剔除处理,直至扫描完样本分词序列中的所有词语。
或者,在本说明书其他实施例中,也可以根据实际应用场景的需要以及多次试验,预先配置剔除阈值。将剔除概率超过剔除阈值的词语确定为高频词语,进而,针对高频词语,进行上述的部分剔除处理。
需要说明的是,若样本分词序列中包括词语和断句符号,为了使得歌词生成模型生成的新歌词文本更好地实现自动断句,高频词语抑制步骤也只针对样本分词序列中包含的词语,不针对断句符号。
在收集到歌词文本并完成上述分词处理得到样本分词序列之后,需要进一步执行以下步骤S103确定与样本分词序列包含的各个分词对应的词向量,以利用词向量来训练歌词生成模型。
步骤S103,通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量。
本说明书实施例中,可以利用预设的cw2vec算法或word2vec算法等,根据上述得到的样本分词序列,来进行词向量训练,学习样本分词序列中每个分词的词向量。
以使用cw2vec算法为例,可以通过以下步骤来训练词向量:将样本分词序列中的分词进行笔画拆分,获得笔画拆分结果;根据预设的笔画与编码之间的对应关系,确定与上述笔画拆分结果对应的编码序列;根据该编码序列,构建样本分词序列中每个分词的笔画元素集合,其中,笔画元素集合中的每个笔画元素由编码序列中的多个编码元素组成;通过预设的词向量生成模型,对笔画元素集合中的每个笔画元素的初始笔画向量以及样本分词序列中每个分词的初始词向量进行训练,获得样本分词序列中每个分词的词向量。
在具体实施过程中,对于样本分词序列中每个词语来说,将其按照笔画进行拆分。以“大人”为例,“大”可以按照笔画拆分为“横”、“撇”、“捺”,人可以拆分为“撇”、“捺”,那么“大人”的笔画拆分结果由五个笔画构成,即“横”、“撇”、“捺”、“撇”、“捺”。进一步的,将每个笔画映射到数字编码,在一个实施例中,笔画与编码的对应关系可以是预先设置好的,例如,笔画与编码的对应关系可以为:笔画“横”“提”对应编码1,笔画“竖”、“竖钩”对应编码2,笔画“撇”对应编码3,笔画“捺”、“点”对应编码4,笔画“横折钩”、“竖弯钩”对应编码5。那么,上面的“大人”的笔画拆分结果可以转化为编码序列:13434。当然,笔画与编码的对应关系可以根据实际需要进行设置,这里不做限定。
进一步的,在获得了编码之后,构建该词语的笔画元素集合。需要说明的是,笔画元素集合中包含的每个笔画元素由编码序列中的多个编码元素组成。例如,每个笔画元素包含有n个编码元素,n的取值可以是动态可调的,根据实际需要来进行选择。笔画元素集合可以通过n-gram来进行构建,在一个实施例中,n设置为3-5之间的正整数。仍沿用上面“大人”的编码序列13434来进行说明,当n为3时,3-gram对应的笔画元素为:134、343、434,当n为4时,4-gram对应的笔画元素为1343、3434,当n为5时,5-gram对应的笔画元素为13434,那么对于词语“大人”来说,笔画元素集合就包括有134、343、434、1343、3434、13434这6个元素。可以理解的是,对于样本分词序列中每个词语,都进行笔画拆分,则每个词语都对应有一个笔画元素集合。
本说明书实施例中,为了对词向量和笔画向量进行训练,针对每个分词,以及每个分词的笔画元素集合中的每个笔画元素,都进行向量初始化。仍以词语“大人”为例,会设置一个与“大人”对应的初始词向量,同时,对于“大人”对应的笔画元素集合来说,对于每个笔画元素,均设置一个初始笔画向量,那么“大人”对应的初始笔画向量总共有6个。词向量以及笔画向量的初始化可以采用随机初始化,也可以采用其他的初始化,在一个实施例中,各个初始笔画向量以及初始词向量的维度均相同。
接下来,通过预设的词向量生成模型来训练词向量以及笔画向量。预设的词向量生成模型可以根据实际需要进行选择,例如Skip-Gram模型或CBOW(continuous bag ofword)模型等。下面,为了便于说明,以Skip-Gram模型为例来对词向量以及笔画向量的训练过程来进行描述。
需要说明的是,Skip-Gram模型是用中心词语来预测上下文词语,在向量训练的过程中,通过梯度下降的方法来不断的调整中心词语的笔画向量,以及上下文词语的词向量。在样本分词序列中的所有分词遍历完毕之后,得到所有分词的最终笔画向量以及最终的词向量。
以歌词为“试着忍住眼泪”为例,经过分词处理,得到词语序列为“试着”、“忍住”、“眼泪”。本说明书实施例中,将中心词语的笔画向量作为预设的词向量生成模型的输入,将上下文词语的词向量作为模型的输出。以“忍住”为中心词语为例,上下文词语为“试着”和“眼泪”,则将“忍住”对应的初始笔画向量作为输入,并根据上下文词语的初始词向量以及损失函数,计算每个笔画向量和上下文词语的相似度,进而根据损失函数计算梯度,并对上下文词语的初始词向量以及中心词语的初始笔画向量进行迭代更新。当迭代次数满足预设的迭代次数,或者模型输出的准确率满足预设条件时,完成训练。
应理解的是,在训练过程中,会将每个分词依次作为中心词语,来预测该分词的上下文词语,通过这种方式,能够遍历所有分词,得到最终训练好的各个分词的笔画向量以及词向量。通过上述训练过程,能够使得中心词语与上下文词语的关联度较高,而且词义相同或相近的词语对应的上下文词语往往也是相同或相近的,而中心词语与非上下文词语的关联度较低。本说明书实施例中,分词的词向量既可以用上述训练好的笔画向量来表示,也可以用上述训练好的词向量来表示,这里不做限定。
在一种可选的实施例中,在对歌词文本进行分词处理的过程中,保留了歌词本文句尾设置的断句符号,得到的样本分词序列中除了包括由歌词句子得到的词语外,还包括歌词句尾的断句符号。此时,上述通过预设的词向量生成模型,生成样本分词序列中每个分词的词向量的过程可以包括:通过预设的词向量生成模型,生成样本分词序列中每个词语的词向量以及每个断句符号的词向量。这样训练出的断句符号的词向量,与词语的词向量类似,也能表达上下文关系以及语义信息。
此时,在上述词向量训练过程中,针对每个分词进行向量初始化的过程可以包括:针对词语以及每个词语的笔画元素集合中的每个笔画元素进行向量初始化,以及对断句符号以及断句符号的笔画元素进行向量初始化。然后按照与上述训练过程类似的方法,训练笔画向量以及每个分词(包括每个词语和每个断句符号)的词向量。还是以歌词为“试着忍住眼泪,”为例,经过分词处理,得到分词序列为“试着”、“忍住”、“眼泪”和“,”,此时,若将“眼泪”作为中心词,则上下文分词为“忍住”和“,”。
另外,考虑到符号本身不存在笔画,本说明书实施例中,对于断句符号来讲,笔画是指广义的笔画。具体实施过程中,断句符号的笔画拆分结果设置为断句符号本身,且对应的编码也设置为断句符号本身。考虑到词语的笔画元素集合通过n-gram来进行构建,n通常为大于或等于3的整数,因此,为了能够构建断句符号的笔画元素,在将词语以及断句符号的笔画拆分结果各自转换为编码序列时,在原始编码组合的前后分别添加一个预设的特殊字符,得到每个分词的编码序列即得到词语的编码序列以及断句符号的编码序列。进而,根据每个分词的编码序列构建各自的笔画元素集合,进一步训练获得样本分词序列中每个分词的词向量。需要说明的是,断句符号的笔画元素集合有且仅包括一个3-gram笔画元素,表示为“aba”。其中,“a”为上述特殊符号,“b”为断句符号本身。
其中,特殊字符可以根据实际需要设置。例如,特殊字符可以设置为“#”,此时,以词语“大风”为例,其原始编码组合为“1343534”,得到的编码序列为:“#1343534#”,以断句符号“,”为例,其原始编码组合为“,”,得到的编码序列为:“#,#”。词语“大风”的n-gram笔画元素集合,可以包括3-gram笔画元素:“#13”,“134”,…,“34#”,4-gram笔画元素:“#134”,“1343”,…,“534#”、5-gram笔画元素:“#1343”等。而断句符号“,”的笔画元素集合有且仅包括3-gram笔画元素“#,#”。
当然,本说明书实施例除了采用cw2vec算法以外,也可以采用其他词向量生成算法如word2vec算法来学习样本分词序列中每个分词的词向量,此处不作限制。
完成词向量学习,即得到样本分词序列中每个分词的词向量以后,就可以通过执行以下步骤S104,进一步根据样本分词序列以及样本分词序列中每个分词的词向量训练歌词生成模型。
步骤S104,将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
本说明书实施例中,长短期记忆网络模型是预先设置的,其输入为连续k个分词组成的分词序列以及每个分词的词向量,输出为第k+1个分词。其中,k为大于或等于1的整数,具体数值可以根据实际需要确定。长短期记忆网络(Long Short-Term Memory,LSTM)能够有效记忆当前时间点以前的所有信息,因此,LSTM具备记忆歌词文字序列的能力,尤其是对于某种特定主题和/或风格的歌词,LSTM能够有效地记忆该主题和/或风格的歌词文字序列。
具体来讲,上述将样本分词序列以及样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型的实施过程可以包括:按照预设规则,从样本分词序列中获取连续k个分词,将这k个分词以及这k个分词中每个分词的词向量输入长短期记忆网络模型,得到预测歌词文本,并将样本分词序列中这k个分词后的下一个分词也就是这k个分词中最后一个分词的下一个分词,作为与该预设歌词文本对应的真值歌词文本;根据本轮迭代得到的预测歌词文本以及相应的真值歌词文本,判断本轮迭代是否满足预设训练条件,若不满足,则对长短期记忆网络模型进行参数调整,并基于参数调整后的长短期记忆网络模型进行下一轮迭代,直至满足预设训练条件,得到经训练的歌词生成模型。其中,预设规则根据具体实施过程中采用的梯度下降方式确定。
举例来讲,样本歌曲中的一段歌词文本“试着忍住眼泪,还是躲不开应该有的情绪,”,对应的分词序列为:“试着”、“忍住”、“眼泪”、“,”、“还是”、“躲不开”、“应该”、“有的”、“情绪”和“,”。若k=4,可以通过长度为4的滑窗获取要输入的分词序列,如当前输入分词序列为:“试着”、“忍住”、“眼泪”、“,”,以及各自的词向量,将“还是”作为本次输出的真值歌词文本;移动滑窗,获取下一次要输入的分词序列即:“忍住”、“眼泪”、“,”、“还是”,以及各自的词向量,将“躲不开”作为本次输出的真值歌词文本,以此类推,完成本轮迭代。然后,根据本轮迭代训练过程中,模型输出的所有预测歌词文本与相应的真值歌词文本,计算损失函数函数值。若损失函数值不满足预设的收敛条件或者是未达到预设的迭代次数,则调整模型参数,继续进入下一轮迭代训练。若损失函数值满足预设的收敛条件或者是达到预设的迭代次数,则停止训练,得到训练好的歌词生成模型。
由于LSTM具有记忆当前时间点以前的所有信息的能力,若训练数据即样本分词序列来自于特定主题和/或风格的样本歌曲的歌词文本,则训练好的歌词生成模型会记录训练数据的特定主题和/或风格的歌词。
在一种可选的实施例中,为了进一步提高词向量以及歌词生成模型的准确度,本实施例提供的模型训练方法在执行完上述步骤S104,得到歌词生成模型之后,还可以包括:判断该歌词生成模型的训练轮数是否达到预设轮数;若是,则停止训练;若否,则通过该歌词生成模型生成新的歌词文本,并通过新生成的歌词文本以及样本歌曲的歌词文本继续对歌词生成模型进行训练,直至歌词生成模型的训练轮数达到预设轮数。预设轮数可以根据实际需要设置。例如,预设轮数可以设置为10轮或20轮等。
在具体实施过程中,上述通过该歌词生成模型生成新的歌词文本可以是一首歌的歌词或多首歌的歌词等,具体根据实际需要设置。举例来讲,可以根据需要输入起始歌词或者随机从样本分词序列中选取词语作为起始歌词,其中,起始歌词包括一个以上词语。需要说明的是,若歌词生成模型是针对一种预设的风格和/或主题的样本歌曲训练得到的,相应地,起始歌词可以是符合该风格和/或主题的歌词。然后,通过将起始歌词对应的分词序列以及分词序列中各个分词的词向量输入上一轮训练得到的歌词生成模型,输出新的歌词文本,根据需要设置滑窗以及歌词生成截止条件,就可以通过多次连续输入,得到更多的歌词文本。
在一种具体应用场景中,可以将新生成的歌词与原有的样本歌曲一起作为新一轮训练的样本歌曲,对新一轮样本歌曲的歌词文本进行句子级别的去重处理以及分词处理,得到新的样本分词序列,然后对新的样本分词序列执行上述高频词语抑制步骤,剔除新的样本分词序列中满足预设条件的词语,接着,根据预设的词向量生成模型,生成新的样本分词序列中每个分词的词向量,进而,将新的样本分词序列以及新的样本分词序列中各个分词的词向量作为新的训练数据,继续对上一轮训练得到的歌词生成模型进行训练,得到新的歌词生成模型。
可以理解的是,在有更多歌词的基础上,词向量和LSTM的训练也会更加准确;同时,词向量和LSTM的准确度的提高,也改善了生成的歌词,增加了更多高质量的歌词,这是一个相互促进的过程。这样就有利于提高歌词生成模型的歌词生成质量,有利于快速得到用户满意的歌词,提高歌词创作效率。
此后,就可以利用训练好的歌词生成模型生成新的歌词文本。本说明书实施例中,目标歌词文本可以是一个词语,或者,也可以是一句歌词文本,具体不作限制。例如,用户可以先通过客户端输入一句歌词文本,然后通过歌词生成模型生成后面的歌词文本。具体实施过程中,可以将用户输入的歌词文本作为目标歌词文本。对目标歌词文本进行分词,得到目标歌词文本的分词序列,并获取目标歌词文本的每个分词的词向量,然后将目标歌词文本的分词序列中最后一个分词及其之前的k-1个分词,即共计k个分词组成的分词序列以及各自的词向量,输入上述训练好的歌词生成模型,输出新的歌词文本。
可以理解的是,本说明书实施例中,训练得到的歌词生成模型每次输出的结果为一个词。为了得到所需的歌词文本,可以根据实际应用场景,预先设置歌词生成截止条件。在具体实施过程中,在歌词生成模型每次输出新的歌词文本后,判断当前次输出是否满足预设的歌词生成截止条件,若是,则停止本轮歌词生成,并输出本轮歌词生成过程所生成的歌词,若否,则继续利用歌词生成模型进行下一次歌词文本生成,直至当前次输出满足上述歌词生成截止条件。
具体来讲,上述利用歌词生成模型进行下一次歌词文本生成的过程可以包括:将新的歌词文本添加到上述目标歌词文本的分词序列最后一位,并移动预先设置的滑窗,将当前目标歌词文本的分词序列中最后一个分词及其之前的k-1个分词组成的分词序列以及各自的词向量,输入上述训练好的歌词生成模型,输出新的歌词文本,以此类推,直至达到预设的歌词生成截止条件,得到所需的歌词文本。
举例来讲,k=5,若目标歌词文本的分词序列中分词个数小于5个,如分词序列为{p1,p2,p3,p4}。此时,由于目标歌词文本的分词序列包含的分词个数不足5个,需要进行补全处理,即本轮歌词生成过程中,歌词生成模型的首次输入为:分词序列:{x,p1,p2,p3,p4}以及各自的词向量,其中,x根据实际需要设置,例如,可以设置为0。歌词生成模型根据输入数据,输出新的歌词文本,表示为词p5,则歌词生成模型的下一次输入为:分词序列:{p1,p2,p3,p4,p5}以及各自的词向量,以此类推,直至达到预设的歌词生成截止条件。若目标歌词文本的分词序列中分词个数大于或等于5个,如分词序列为{p1,p2,p3,p4,p5,p6},则本轮歌词生成过程中,歌词生成模型的首次输入为:分词序列:{p2,p3,p4,p5,p6}以及各自的词向量。
预设的歌词生成截止条件可以根据实际应用场景的需要设置,例如,可以是生成一句歌词文本即截止,或者,也可以是生成一整首歌的歌词文本时截止。
在本说明书一可选的实施例中,歌词生成模型的训练数据包含每句歌词末尾的断句符号即上述样本分词序列中包含断句符号,相应地,训练好的歌词生成模型的输出结果就有两种情况,一种情况是输出一个词语,另一种情况是输出一个断句符号。若歌词生成模型当前次输出的结果为一个断句符号,则表示完成一句歌词文本的生成,或者是完成一首歌的歌词文本生成。
因此,为了得到所需的歌词文本,在每次通过歌词生成模型输出新的歌词文本后,可以判断该歌词文本是否为预设符号,若否,则将新的歌词文本添加到上述目标歌词文本的分词序列最后一位,并移动预设的滑窗,继续执行下一次歌词生成,若是,则完成本轮歌词生成。其中,预设符号根据用于训练歌词生成模型的歌词文本中,用于分隔歌词句子的断句符号设置。这样有利于提高生成的歌词句子的灵活性,避免生成的每句歌词均为固定长度导致歌词死板,也有利于提高歌词创作效率,生成的歌词能够根据上下文语义由输出的断句符号自行断句,可读性较好,无需用户耗费时间人为去进行歌词的断句。
举例来讲,歌词生成模型的训练数据中歌词句子的断句符号包括第一断句符和第二断句符,第一断句符是歌词文本中歌词句子之间的分隔符,用于分隔一首歌中的歌词句子,第二断句符是整首歌歌词文本末尾的截止符,用于表示一整首歌词文本的完结。此时,预设符号可以根据实际应用场景的需要设置为第一断句符或第二断句符。若预设符号为第一断句符,则表示通过歌词生成模型完成一句歌词即可,若预设符号为第二断句符,则表示需要通过歌词生成模型完成一整首歌的歌词文本。
在本说明书另一可选的实施例中,歌词生成模型每次输出的新的歌词文本是一个词语。此时,可以预先设置歌词生成的迭代次数,每次通过歌词生成模型,输出新的歌词文本后,判断是否达到预设迭代次数,若未达到,则将新的歌词文本添加到上述目标歌词文本的分词序列最后一位,并移动预设的滑窗,继续执行下一次歌词生成,若达到,则完成本轮的歌词生成。
本说明书实施例提供的模型训练方法,通过由样本歌曲的歌词文本得到的样本分词序列,以及样本分词序列中每个分词的词向量,对长短期记忆网络模型进行训练,得到歌词生成模型,用于自动生成新的歌词文本,提高了歌词创造的效率。另外,上述方案中,长短期记忆网络能够有效地记忆学习过的歌词文本,能够根据学习过的歌词文本的特点,生成延续该特点的新的歌词文本,尤其适用于通过学习某种特定主题和/或风格的歌词文本,生成该主题和/或风格的新的歌词文本,有利于提高歌词生成的质量。
第二方面,本说明书实施例还提供了一种歌词生成方法,该歌词生成方法可以应用于在线音乐平台的服务器中,也可以应用于用户的终端设备,如手机、平板电脑等,这里不做限定。如图2所示,该方法至少包括以下步骤S201和步骤S202。
步骤S201,获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量。
目标歌词文本即为要创作的歌词的起始歌词文本,本实施例中,需要在目标歌词本文的基础上,进一步生成新的歌词文本。具体来讲,上述获取目标歌词文本的分词序列的实施过程可以包括:获取用户输入的歌词文本,作为目标歌词文本,并对目标歌词文本进行分词,得到目标歌词文本的分词序列;或者,也可以通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本,并得到目标歌词文本的分词序列。其中,预设的样本词库基于上述第一方面提供的模型训练方法中得到的样本分词序列构建,例如,可以包括经过上述高频词语抑制处理后的样本分词序列中的每个分词。
由于在上述第一方面提供的模型训练方法中,通过词向量训练得到了样本分词序列中每个分词的词向量,也就确定了样本词库中每个词与词向量的映射关系。因此,若目标歌词文本的每个分词均可以在样本词库中找到,则可以根据预先确定的词与词向量的映射关系,确定目标歌词文本的分词序列中,每个分词的词向量。
需要说明的是,在一种应用场景中,目标歌词文本为用户输入的歌词。由于样本词库中的词语是有限的,因此,目标歌词文本的分词中可能会存在未在样本词库中出现的目标词语,一般来说,无法通过词和词向量的映射关系得到该目标词语的词向量。此时,可以通过以下几种方式进行处理:
第一种,在上述第一方面提供的词向量训练中,利用预设的cw2vec算法来学习样本词库中每个词的词向量。此时,由于词向量的训练结果不仅包含有与样本词库中各个词对应的词向量,还包含了与样本词库中各个词的笔画元素对应的笔画向量,且不同词的同一笔画元素对应的笔画向量是相同的。进而,就可以通过笔画向量来构造目标词语的词向量。具体来讲,可以根据样本词库中各个词的笔画元素和笔画向量之间的映射关系,确定目标词语的笔画元素对应的目标笔画向量,并基于目标笔画向量构建目标词语的所述目标词向量。
举例来说,目标词语为“大风”,且“大风”这个词语未出现在样本词库中,那么可以将大风进行笔画拆分,并将笔画拆分结果进行编码,得到目标编码序列,并根据目标编码序列构建笔画元素集合,例如,仍沿用上述笔画和编码的对应关系,“大风”对应的目标编码序列为“#1343534#”,接下来,构建笔画元素集合,仍以n取3、4、5为例,“大风”的笔画元素集合包括#13、134、343、435...。进一步的,对于“大风”的每个笔画元素来说,在样本词库中各个词的笔画元素和笔画向量之间的映射关系中,可以查找到对应的笔画向量。然后将所查找到的每个笔画元素的笔画向量按位做平均,将平均后得到的向量作为词语“大风”的词向量。
可以理解的是,通常来讲,尽管目标歌词文本的某个分词未在样本词库中出现,但大多数笔画元素都在训练数据中出现过。但若该分词的某个笔画元素没有在训练数据中出现过,即在样本词库中各个词的笔画元素和笔画向量之间的映射关系中无法查找到,则忽略该分词。
第二种,剔除目标歌词文本的分词序列中未在样本词库中出现的目标词语。也就是说,在后续的歌词生成中,不考虑未在样本词库中出现的目标词语。举例来讲,用户输入歌词文本“试着忍住眼泪”,得到的分词序列为:“试着”“忍住”以及“眼泪”,其中,“忍住”未在样本词库中出现,则剔除“忍住”,得到分词序列:“试着”“眼泪”,然后根据样本词库中各个词与词向量之间的映射关系,得到“试着”的词向量以及“眼泪”的词向量,并将分词序列:“试着”“眼泪”以及各自的词向量作为以下步骤S202中歌词生成模型的输入。
步骤S202,根据所述分词序列、所述分词序列中每个分词的词向量以及预先训练的歌词生成模型,得到新的歌词文本。
其中,歌词生成模型通过上述第一方面提供的模型训练方法的任一实施例训练得到。需要说明的是,歌词生成模型每次输出的新的歌词文本是一个词。若用户要得到一句或多句歌词文本,需要利用歌词生成模型进行多次迭代,将上述多次迭代的输出结果组合成一句或多句歌词文本。
因此,上述根据步骤S201得到的分词序列、分词序列中每个分词的词向量以及预先训练的歌词生成模型,得到新的歌词文本的过程可以包括:将上述目标歌词文本的分词序列以及该分词序列中每个分词的词向量输入歌词生成模型,输出新的歌词文本;判断当前次输出是否满足预设的歌词生成截止条件,若否,则根据上述目标歌词文本的分词序列、上述新的歌词文本以及歌词生成模型,输出下一个新的歌词文本,直至当前次输出满足歌词生成截止条件。具体实施过程可以参照上述第一方面中歌词生成过程的相关描述,此处将不做详细阐述说明。
在本说明书一可选的实施例中,歌词生成模型的训练数据包含每句歌词末尾的断句符号即上述样本分词序列中包含断句符号,相应地,训练好的歌词生成模型的输出结果就有两种情况,一种情况是输出一个词语,另一种情况是输出一个断句符号。此时,上述判断当前次输出是否满足预设的歌词生成截止条件的实施过程可以包括:判断当前次输出的新的歌词文本是否为预设符号,若是,则判定当前次输出满足所述歌词生成截止条件,若否,则判定当前次输出不满足所述歌词生成截止条件,其中,所述预设符号为用于训练所述歌词生成模型的歌词文本中,歌词句尾设置的断句符号。具体实施过程可以参照上述第一方面中歌词生成过程的相关描述,此处将不做详细阐述说明。
本说明书实施例提供的歌词生成方法,基于目标歌词文本的分词序列以及分词序列中分词的词向量,利用预先训练好的歌词生成模型,生成新的歌词文本,提高了歌词创造的效率。另外,长短期记忆网络能够有效地记忆学习过的歌词文本,能够根据学习过的歌词文本的特点,生成延续该特点的新的歌词文本,尤其适用于通过学习某种特定主题和/或风格的歌词文本,生成该主题和/或风格的新的歌词文本,有利于提高歌词生成的质量。
第三方面,本说明书实施例还提供了一种歌词生成方法。如图3所示,所述方法至少包括以下步骤S301至步骤S303。
步骤S301,若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本。
举例来讲,客户端页面上显示有预设按钮,该预设按钮用于触发歌词生成,用户可以点击该预设按钮,触发歌词自动生成的功能。也就是说,若检测到用户点击了该预设按钮,则视为检测到用于触发歌词生成的触发操作。当然,除了用户点击预设按钮的触发方式以外,还可以是通过其他触发方式如语音口令触发的方式来触发歌词自动生成的功能。
目标歌词文本即为要创作的歌词的起始歌词文本,本实施例提供的方案,需要在目标歌词本文的基础上,进一步生成新的歌词文本。用户可以通过客户端输入部分歌词文本,然后再触发歌词生成的功能,通过本说明书实施例提供的方案,生成新的歌词文本。
在一种应用场景中,用户可以先输入一句歌词文本,然后点击客户端页面上的预设按钮,通过本说明书实施例提供的方案,生成下一句歌词文本,若用户找到灵感,可以继续输入后续的歌词文本,若用户仍然没找到灵感,也可以继续点击客户端页面上的预设按钮,通过本说明书实施例提供的方案,生成再下一句歌词文本并输出给用户,以此类推,直至完成整首歌的歌词。
在另一种应用场景中,用户也可以在不输入任何歌词文本的基础上,点击客户端页面上的预设按钮,通过本说明书实施例提供的方案,根据从样本词库中随机选取的一个以上词语,生成一句或多句歌词文本并输出给用户,若用户基于生成的歌词文本引发创造灵感,就可以接着再创作后续的歌词。
这样,用户就可以根据实际需要灵活选择是否需要以及何时需要借助本说明书实施例提供的歌词生成方法生成歌词,以补充灵感,使得歌词创作过程更加灵活,也有利于提高用户创作歌词的效率。
步骤S302,获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量。
步骤S303,根据所述分词序列、所述每个分词的词向量以及预先训练得到的歌词生成模型,输出新的歌词文本。
需要说明的是,步骤S302和步骤S303的具体实现已经在上述第一方面和第二方面提供的实施例中进行了详细描述,此处将不做详细阐述说明。
在一种实际应用中,通过上述步骤S303输出新的歌词文本后,可以将该歌词文本与通过其他歌词生成模型,例如,基于对抗网络得到的歌词生成模型生成的歌词文本汇总在一起作为歌词候选项,展示给用户,以供用户选择。不同歌词生成模型生成的歌词文本,风格上会不太一样,这样会增加歌词生成的多样性和趣味性,为用户提供更多样化的歌词文本选择,有利于用户快速获取到想要的歌词,也能够为用户提供更多的灵感,从而提高歌词创作效率。
另外,在本说明书一可选的实施例中,若在模型训练过程中,是针对不同风格和/或主题的样本歌曲的歌词文本训练得到不同的歌词生成模型,则在执行上述步骤S303之前,需要先确定本次歌词生成适用的歌词生成模型。具体来讲,确定歌词生成模型的方式可以有多种。例如,可以在客户端页面上显示歌词风格和/或主题选择按钮,用户可以通过该选择按钮选择所需歌词的风格和/或主题,从而根据预先设置的风格和/或主题与歌词生成模型的映射关系,确定适用于本次歌词生成的歌词生成模型。又例如,可以预先配置每种风格和/或主题对应的特征词库,在用户输入了起始歌词文本后,可以获取起始歌词文本中的关键词,将获取的关键词分别与每种风格和/或主题对应的特征词库中的特征词进行匹配,从而根据预先设置的风格和/或主题与歌词生成模型的映射关系,将匹配成功的风格和/或主题对应的歌词生成模型,确定为适用于本次歌词生成的歌词生成模型。
第四方面,本说明书实施例提供一种模型训练装置,请参考图4,该模型训练装置40包括:
文本获取模块400,用于获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列;
剔除模块410,用于根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理;
向量生成模块420,用于通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量;
第一训练模块430,用于将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
在一种可选的实施例中,上述剔除模块410包括:
概率获取子模块411,用于根据所述样本分词序列中每个词语出现的频率以及预设参数值,得到所述样本分词序列中每个词语的剔除概率;
剔除子模块412,用于根据所述每个词语的剔除概率,对所述样本分词序列中的词语进行剔除处理。
在一种可选的实施例中,上述剔除子模块412用于:依次扫描所述样本分词序列中的每个词语,针对扫描到的当前词语,随机生成预设范围内的剔除阈值,若所述当前词语的剔除概率超过所述剔除阈值,则剔除所述当前词语。
在一种可选的实施例中,上述模型训练装置40还包括:
判断模块440,用于判断所述歌词生成模型的训练轮数是否达到预设轮数;
第二训练模块450,用于若未达到预设轮数,则通过所述歌词生成模型生成新的歌词文本,并通过所述新的歌词文本以及所述样本歌曲的歌词文本,对所述歌词生成模型进行训练,直至所述歌词生成模型的训练轮数达到预设轮数。
在一种可选的实施例中,上述歌词文本包括所述样本歌曲的歌词句子以及每句歌词句尾设置的断句符号。此时,所述文本获取模块400用于:对所述歌词文本进行分词处理,得到所述样本歌曲中每句歌词包含的词语以及句尾的断句符号,组成所述样本歌曲的样本分词序列。上述向量生成模块420用于:通过预设的词向量生成模型,生成所述样本分词序列中每个词语的词向量以及每个断句符号的词向量。
在一种可选的实施例中,上述第一训练模块430用于:
从所述样本分词序列中获取连续k个分词,将所述k个分词以及所述k个分词中每个分词的词向量输入所述长短期记忆网络模型,得到预测歌词文本,其中,k为大于或等于1的整数;
根据本轮迭代得到的预测歌词文本以及相应的真值歌词文本,判断本轮迭代是否满足预设训练条件,其中,所述真值歌词文本是所述k个分词的下一个分词,若不满足,则对所述长短期记忆网络模型进行参数调整,并基于参数调整后的长短期记忆网络模型进行下一轮迭代,直至满足所述预设训练条件,得到经训练的歌词生成模型。
在一种可选的实施例中,上述样本歌曲为预设风格和/或主题的歌曲。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的模型训练方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第五方面,本说明书实施例提供一种歌词生成装置,请参考图5,该歌词生成装置50包括:
获取模块510,用于获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量;
生成模块520,用于根据所述分词序列、所述分词序列中每个分词的词向量以及上述第一方面提供的模型训练方法训练得到的歌词生成模型,得到新的歌词文本。
在一种可选的实施例中,上述目标歌词文本可以通过以下方式获取:
获取用户输入的歌词文本,作为所述目标歌词文本;或
通过从预设的样本词库中随机选取一个以上词语,得到所述目标歌词文本。
在一种可选的实施例中,上述生成模块520包括:
第一生成子模块521,用于将所述分词序列以及所述分词序列中每个分词的词向量输入所述歌词生成模型,输出新的歌词文本;
第二生成子模块522,用于判断当前次输出是否满足预设的歌词生成截止条件,若否,则根据所述分词序列、所述新的歌词文本以及所述歌词生成模型,输出下一个新的歌词文本,直至当前次输出满足所述歌词生成截止条件。
在一种可选的实施例中,上述第二生成子模块522用于:
判断当前次输出的新的歌词文本是否为预设符号,若是,则判定当前次输出满足所述歌词生成截止条件,若否,则判定当前次输出不满足所述歌词生成截止条件,其中,所述预设符号为用于训练所述歌词生成模型的歌词文本中,歌词句尾设置的断句符号。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的歌词生成方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第六方面,本说明书实施例提供一种歌词生成装置,请参考图6,该歌词生成装置60包括:
文本确定模块610,用于若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本;
获取模块620,用于获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量;
生成模块630,用于根据所述分词序列、所述每个分词的词向量以及上述第一方面提供的模型训练方法训练得到的歌词生成模型,输出新的歌词文本。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的歌词生成方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第七方面,基于与前述实施例中模型训练方法以及歌词生成方法同样的发明构思,本发明实施例还提供了一种电子设备,如图7所示,包括存储器704、处理器702及存储在存储器704上并可在处理器702上运行的计算机程序,所述处理器702执行所述程序时实现前文所述的模型训练方法或歌词生成方法的任一方法的步骤。
其中,在图7中,总线架构(用总线700来代表),总线700可以包括任意数量的互联的总线和桥,总线700将包括由处理器702代表的一个或多个处理器和存储器704代表的存储器的各种电路链接在一起。总线700还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口706在总线700和接收器701和发送器703之间提供接口。接收器701和发送器703可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器702负责管理总线700和通常的处理,而存储器704可以被用于存储处理器702在执行操作时所使用的数据。
可以理解的是,图7所示的结构仅为示意,本说明书实施例提供的电子设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
第八方面,基于与前述实施例中基于模型训练方法以及歌词生成方法同样的发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述的模型训练方法或歌词生成方法的任一方法的步骤。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种模型训练方法,所述方法包括:
获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列;
根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理,包括:根据所述样本分词序列中每个词语出现的频率以及预设参数值,得到所述样本分词序列中每个词语的剔除概率;根据所述每个词语的剔除概率,对所述样本分词序列中的高频词语进行剔除处理;
通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量;
将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
2.根据权利要求1所述的方法,所述根据所述每个词语的剔除概率,对所述样本分词序列中的高频词语进行剔除处理,包括:
依次扫描所述样本分词序列中的每个词语,针对扫描到的当前词语,随机生成预设范围内的剔除阈值,若所述当前词语的剔除概率超过所述剔除阈值,则剔除所述当前词语。
3.根据权利要求1所述的方法,所述歌词文本包括所述样本歌曲的歌词句子以及每句歌词句尾设置的断句符号,所述对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列,包括:
对所述歌词文本进行分词处理,得到所述样本歌曲中每句歌词包含的词语以及句尾的断句符号,组成所述样本歌曲的样本分词序列;
所述通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量,包括:
通过预设的词向量生成模型,生成所述样本分词序列中每个词语的词向量以及每个断句符号的词向量。
4.根据权利要求1所述的方法,所述样本歌曲为预设风格和/或主题的歌曲,所述歌词生成模型中记录有所述预设风格和/或主题的歌词文本的信息。
5.一种歌词生成方法,所述方法包括:
获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量;
根据所述分词序列、所述分词序列中每个分词的词向量以及权利要求1-4中任一项所述的方法训练得到的歌词生成模型,得到新的歌词文本。
6.根据权利要求5所述的方法,所述根据所述分词序列、所述分词序列中每个分词的词向量以及权利要求1-4中任一项所述的方法训练得到的歌词生成模型,得到新的歌词文本,包括:
将所述分词序列以及所述分词序列中每个分词的词向量输入所述歌词生成模型,输出新的歌词文本;
判断当前次输出是否满足预设的歌词生成截止条件,若否,则根据所述分词序列、所述新的歌词文本以及所述歌词生成模型,输出下一个新的歌词文本,直至当前次输出满足所述歌词生成截止条件。
7.根据权利要求6所述的方法,所述判断当前次输出是否满足预设的歌词生成截止条件,包括:
判断当前次输出的新的歌词文本是否为预设符号,若是,则判定当前次输出满足所述歌词生成截止条件,若否,则判定当前次输出不满足所述歌词生成截止条件,其中,所述预设符号为用于训练所述歌词生成模型的歌词文本中,歌词句尾设置的断句符号。
8.一种歌词生成方法,所述方法包括:
若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本;
获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量;
根据所述分词序列、所述每个分词的词向量以及权利要求1-4中任一项所述的方法训练得到的歌词生成模型,输出新的歌词文本。
9.一种模型训练装置,所述装置包括:
文本获取模块,用于获取样本歌曲的歌词文本,并对所述歌词文本进行分词处理,得到所述样本歌曲的样本分词序列;
剔除模块,用于根据所述样本分词序列中每个词语出现的频率,对所述样本分词序列中的词语进行剔除处理,所述剔除模块包括:概率获取子模块,用于根据所述样本分词序列中每个词语出现的频率以及预设参数值,得到所述样本分词序列中每个词语的剔除概率;剔除子模块,用于根据所述每个词语的剔除概率,对所述样本分词序列中的高频词语进行剔除处理;
向量生成模块,用于通过预设的词向量生成模型,生成所述样本分词序列中每个分词的词向量;
第一训练模块,用于将所述样本分词序列以及所述样本分词序列中每个分词的词向量作为训练数据,对长短期记忆网络模型进行训练,得到歌词生成模型,所述歌词生成模型用于根据目标歌词文本的分词序列以及该分词序列中每个分词的词向量,生成新的歌词文本。
10.根据权利要求9所述的装置,所述剔除子模块用于:
依次扫描所述样本分词序列中的每个词语,针对扫描到的当前词语,随机生成预设范围内的剔除阈值,若所述当前词语的剔除概率超过所述剔除阈值,则剔除所述当前词语。
11.根据权利要求9所述的装置,所述歌词文本包括所述样本歌曲的歌词句子以及每句歌词句尾设置的断句符号,所述文本获取模块用于:
对所述歌词文本进行分词处理,得到所述样本歌曲中每句歌词包含的词语以及句尾的断句符号,组成所述样本歌曲的样本分词序列;
所述向量生成模块用于:通过预设的词向量生成模型,生成所述样本分词序列中每个词语的词向量以及每个断句符号的词向量。
12.根据权利要求9所述的装置,所述样本歌曲为预设风格和/或主题的歌曲,所述歌词生成模型中记录有所述预设风格和/或主题的歌词文本的信息。
13.一种歌词生成装置,所述装置包括:
获取模块,用于获取目标歌词文本的分词序列,以及所述分词序列中每个分词的词向量;
生成模块,用于根据所述分词序列、所述分词序列中每个分词的词向量以及权利要求1-4中任一项所述的方法训练得到的歌词生成模型,得到新的歌词文本。
14.根据权利要求13所述的装置,所述生成模块包括:
第一生成子模块,用于将所述分词序列以及所述分词序列中每个分词的词向量输入所述歌词生成模型,输出新的歌词文本;
第二生成子模块,用于判断当前次输出是否满足预设的歌词生成截止条件,若否,则根据所述分词序列、所述新的歌词文本以及所述歌词生成模型,输出下一个新的歌词文本,直至当前次输出满足所述歌词生成截止条件。
15.根据权利要求14所述的装置,所述第二生成子模块用于:
判断当前次输出的新的歌词文本是否为预设符号,若是,则判定当前次输出满足所述歌词生成截止条件,若否,则判定当前次输出不满足所述歌词生成截止条件,其中,所述预设符号为用于训练所述歌词生成模型的歌词文本中,歌词句尾设置的断句符号。
16.一种歌词生成装置,所述装置包括:
文本确定模块,用于若检测到用于触发歌词生成的触发操作,则确定用户是否输入有歌词文本,若是,则将所述用户输入的歌词文本作为目标歌词文本,若否,则通过从预设的样本词库中随机选取一个以上词语,得到目标歌词文本;
获取模块,用于获取所述目标歌词文本的分词序列以及所述分词序列中每个分词的词向量;
生成模块,用于根据所述分词序列、所述每个分词的词向量以及权利要求1-4中任一项所述的方法训练得到的歌词生成模型,输出新的歌词文本。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-8任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125311.6A CN111428487B (zh) | 2020-02-27 | 2020-02-27 | 模型训练方法、歌词生成方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125311.6A CN111428487B (zh) | 2020-02-27 | 2020-02-27 | 模型训练方法、歌词生成方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111428487A CN111428487A (zh) | 2020-07-17 |
CN111428487B true CN111428487B (zh) | 2023-04-07 |
Family
ID=71551724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010125311.6A Active CN111428487B (zh) | 2020-02-27 | 2020-02-27 | 模型训练方法、歌词生成方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111428487B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114474A (zh) * | 2021-03-17 | 2022-09-27 | 北京达佳互联信息技术有限公司 | 歌词生成模型训练方法、歌词生成方法、装置及存储介质 |
CN114398486B (zh) * | 2022-01-06 | 2022-08-26 | 北京博瑞彤芸科技股份有限公司 | 一种智能定制获客宣传语的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930561A (zh) * | 2010-05-21 | 2010-12-29 | 电子科技大学 | 一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置 |
CN106202073A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 音乐推荐方法及系统 |
CN106776713A (zh) * | 2016-11-03 | 2017-05-31 | 中山大学 | 一种基于词向量语义分析的海量短文本聚类方法 |
CN109815493A (zh) * | 2019-01-09 | 2019-05-28 | 厦门大学 | 一种智能嘻哈音乐歌词生成的建模方法 |
CN109933686A (zh) * | 2019-03-18 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 歌曲标签预测方法、装置、服务器及存储介质 |
CN110097085A (zh) * | 2019-04-03 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 歌词文本生成方法、训练方法、装置、服务器及存储介质 |
CN110362696A (zh) * | 2019-06-11 | 2019-10-22 | 平安科技(深圳)有限公司 | 歌词生成方法、系统、计算机设备及计算机可读存储介质 |
-
2020
- 2020-02-27 CN CN202010125311.6A patent/CN111428487B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930561A (zh) * | 2010-05-21 | 2010-12-29 | 电子科技大学 | 一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置 |
CN106202073A (zh) * | 2015-04-30 | 2016-12-07 | 中国电信股份有限公司 | 音乐推荐方法及系统 |
CN106776713A (zh) * | 2016-11-03 | 2017-05-31 | 中山大学 | 一种基于词向量语义分析的海量短文本聚类方法 |
CN109815493A (zh) * | 2019-01-09 | 2019-05-28 | 厦门大学 | 一种智能嘻哈音乐歌词生成的建模方法 |
CN109933686A (zh) * | 2019-03-18 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 歌曲标签预测方法、装置、服务器及存储介质 |
CN110097085A (zh) * | 2019-04-03 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 歌词文本生成方法、训练方法、装置、服务器及存储介质 |
CN110362696A (zh) * | 2019-06-11 | 2019-10-22 | 平安科技(深圳)有限公司 | 歌词生成方法、系统、计算机设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111428487A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102350543B1 (ko) | 시맨틱 표현 모델의 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN108647205B (zh) | 细粒度情感分析模型构建方法、设备及可读存储介质 | |
CN112800170A (zh) | 问题的匹配方法及装置、问题的回复方法及装置 | |
CN109840287A (zh) | 一种基于神经网络的跨模态信息检索方法和装置 | |
CN110163181B (zh) | 手语识别方法及装置 | |
Xu et al. | Exploiting shared information for multi-intent natural language sentence classification. | |
CN109933686B (zh) | 歌曲标签预测方法、装置、服务器及存储介质 | |
JP6677419B2 (ja) | 音声対話方法及び装置 | |
CN110210028A (zh) | 针对语音转译文本的领域特征词提取方法、装置、设备及介质 | |
CN106445915B (zh) | 一种新词发现方法及装置 | |
CN110472043B (zh) | 一种针对评论文本的聚类方法及装置 | |
CN107180084A (zh) | 词库更新方法及装置 | |
CN112528637A (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
CN111859964A (zh) | 一种语句中命名实体的识别方法及装置 | |
CN112395385A (zh) | 基于人工智能的文本生成方法、装置、计算机设备及介质 | |
CN112017643B (zh) | 语音识别模型训练方法、语音识别方法及相关装置 | |
CN111428487B (zh) | 模型训练方法、歌词生成方法、装置、电子设备及介质 | |
CN111241820A (zh) | 不良用语识别方法、装置、电子装置及存储介质 | |
CN112860896A (zh) | 语料泛化方法及用于工业领域的人机对话情感分析方法 | |
CN112951211A (zh) | 一种语音唤醒方法及装置 | |
CN114444462B (zh) | 模型训练方法及人机交互方法、装置 | |
CN117112754A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN111506726A (zh) | 基于词性编码的短文本聚类方法、装置及计算机设备 | |
CN111178082A (zh) | 一种句向量生成方法、装置及电子设备 | |
CN114138969A (zh) | 文本处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |