掌桥专利:专业的专利平台
掌桥专利
首页

歌曲生成

文献发布时间:2023-06-19 09:24:30


歌曲生成

背景技术

自动歌曲生成旨在模拟人类的歌曲创作。通常,自动歌曲生成可以通过机器学习、深度学习等技术来实现。例如,可以利用大量的参数和歌曲对来训练歌曲生成模型,所述参数可以包括歌曲情感、节奏、曲风、乐器、和弦、歌词等等。当接收到用户设置或输入的不同的参数信息时,经过训练的歌曲生成模型可以创作不同的歌曲。

发明内容

提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。

本公开内容的实施例提出了用于生成歌曲的方法和装置。可以接收文本输入。可以从所述文本输入中提取主题和情感。可以根据所述主题和所述情感来确定旋律。可以根据所述旋律和所述文本输入来生成歌词。可以至少根据所述旋律和所述歌词来生成所述歌曲。

应当注意,以上一个或多个方面包括以下详细描述以及在权利要求中具体指出的特征。下面的说明书及附图详细阐述了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开内容旨在包括所有这些方面和其等同变换。

附图说明

以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。

图1示出了根据实施例的示例性歌曲生成系统。

图2示出了根据实施例的示例性歌曲生成过程。

图3示出了根据实施例的曲风分类模块的示例性训练过程。

图4示出了根据实施例的示例性注意力机制。

图5示出了根据实施例的鉴别器的示例性训练过程。

图6示出了根据实施例的生成器的示例性训练过程。

图7示出了根据实施例的应用于歌曲的示例性曲风标记模型。

图8示出了根据实施例的用于确定旋律的示例性作曲过程。

图9示出了根据实施例的示例性编曲过程。

图10示出了根据实施例的示例性歌词生成过程。

图11A-图11C示出了根据实施例的用于生成歌曲的应用的示例性界面。

图12示出了根据实施例的用于在与聊天机器人的聊天过程中生成歌曲的示例性界面。

图13示出了根据实施例的用于生成歌曲的示例性方法的流程图。

图14示出了根据实施例的用于生成歌曲的示例性装置。

图15示出了根据实施例的用于生成歌曲的另一种示例性装置。

具体实施方式

现在将参考多种示例性实施方式来讨论本公开内容。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开内容的实施例,而并非教导对本公开内容的范围的任何限制。

在现有的歌曲生成系统中,只有在用户手动设置了用于生成歌曲的各种参数例如歌曲情感、节奏、曲风、乐器、和弦、歌词等的情况下,歌曲生成系统才能根据用户设置的参数信息来生成歌曲。然而,对于用户而言,尤其对于不具有音乐知识的人而言,手动设置这些参数是很困难的。此外,不管是对于具有音乐知识还是不具有音乐知识的用户而言,手动设置上述各种参数是很复杂且费时的。

为了解决上述问题,本公开内容的实施例提出了在自动生成歌曲的过程中,只需要用户提供文本输入以及可选的音频输入,就能够自动制作歌曲,而不需要用户对歌曲的各种参数进行手动设置。根据本公开内容实现的歌曲生成方法可以接收例如由用户提供的文本输入,从文本输入中自动提取主题和情感,根据主题和情感自动确定出旋律,根据旋律和文本输入自动生成歌词以及根据歌词和旋律来自动生成歌曲。通过上述操作,本公开内容的歌曲生成方法能够使得用户通过简单的操作来快速地生成歌曲,且不要求用户必须具有音乐知识。

图1示出了根据实施例的示例性歌曲生成系统100。

在歌曲生成系统100中,可以接收用户输入110。在本文中,用户输入110可以包括文本输入以及可选的音频输入。文本输入可以包括用于生成歌曲的关键字或语句,例如,文本输入可以是“今天阳光灿烂”,从而歌曲生成系统可以根据该文本输入来生成歌曲。音频输入可以包括带有参考旋律的一段音频,该参考旋律用于生成歌曲的旋律,例如音频输入可以是用户哼唱或上传的一段音乐音频。用户可以通过各种适合的输入设备来提供用户输入110。例如,通过键盘、写字板、触摸屏等文本输入设备来提供文本输入,通过麦克风、录音机等音频输入设备或通过上传音频文件等来提供音频输入,等等。

在一种实现中,用户输入110被提供给预处理模块集120,其至少包括以下中的一个或多个模块:文本理解模块121、场景检测模块122、情感分类模块123以及音频检测模块124。

在一些例子中,文本理解模块121可以对用户输入110中的文本输入进行处理以提取文本输入中的主题125,例如通过利用任何合适的自然语言处理技术识别文本输入中的关键字来提取主题。举例而言,如果文本输入是“今天阳光灿烂”,则提取的主题可以是“天气好”。在一些例子中,可以利用大量<关键字,主题>对来对文本理解模块121进行线下训练。在应用时,经训练的文本理解模块121可以基于从文本输入中提取的关键字来输出主题。

场景检测模块122可以识别歌曲的应用场景126。例如,利用任何合适的场景识别技术基于用户输入110和/或诸如时间、地点、环境等上下文信息来确定场景。举例而言,如果时间指示为“12月25日”,则可以确定歌曲应用的场景为圣诞节。再举一个例子,如果地点指示为“XXX酒吧”,则可以确定歌曲应用的场景为酒吧。

在一些例子中,可以利用意图检测模型(图中未示出)基于主题125来识别用户的意图。例如,如果提取的主题是“圣诞节快乐”,则可以将用户的意图识别为“制作一首针对圣诞节的歌曲”。进一步地,可以利用意图检测模型基于主题125和场景126来识别用户的意图。例如,如果主题125为“节日快乐”,检测到的场景126为圣诞节,则可以将用户的意图识别为“制作一首针对圣诞节的歌曲”。在一些实施例中,可以利用大量<关键字或主题,场景,意图>集合来对意图检测模型进行线下训练,其中该意图检测模型可以通过深度神经网络来实现。在应用时,通过向经训练的意图检测模型提供从用户输入中获得的关键字、主题、场景等,可以输出用户的意图。在一些例子中,意图检测模型还可以根据从与用户通信或聊天的第三方的响应中提取的主题来检测用户的意图,其中第三方可以是虚拟角色,例如聊天机器人。向经训练的意图检测模型输入从用户的消息和/或第三方的响应中提取的主题,可以输出用户的意图。在一些例子中,在识别用户的意图时,第三方的响应可以为空,即可以没有第三方的响应。

在一种实现中,情感分类模块123可以利用任何合适的文本情感分析模型对用户输入110中的文本执行情感分析,以获得与文本对应的情感127。举例而言,可以在文本情感分析模型中利用文本嵌入层来获得文本的向量表示,以及通过Softmax层来获得与文本的向量表示对应的多维情感类别标签,其中每一维表示一种情感的概率。例如,该多维情感类别标签可以是基于Plutchik情感轮的32维情感类别标签。在一些例子中,可以利用大量<关键字,情感>对来对情感分类模块123进行线下训练。在应用时,通过向经训练的情感分类模块123提供关键字,可以输出情感。

在一种实现中,如果用户输入110包括带有旋律的音频输入,则音频检测模块124可以将该音频输入中的旋律识别为参考旋律128。该参考旋律128可以作为要生成的歌曲的旋律中的一部分,例如初始小节,并且进而被用于生成旋律的其他部分。在一些实现中,带有旋律的音频输入可以是由用户通过哼唱方式提供的或者是由用户通过上传一段音频来提供的。

经过预处理模块集120中的各个模块的处理获得的输出,例如主题125、情感127、根据主题125和场景126识别的可选的意图、可选的参考旋律128等,可以被提供给核心处理模块集130。

在本公开内容的实施例中,核心处理模块集130可以包括旋律确定模块131、编曲模块132、歌词生成模块133、演唱模块134以及混音模块135。

在一种实现中,旋律确定模块131可以基于主题125和情感127来确定歌曲的旋律。在另一些例子中,旋律确定模块131可以进一步基于参考旋律128来确定歌曲的旋律。举例而言,参考旋律128可以作为所要确定的歌曲旋律的初始小节,旋律确定模块131可以至少基于参考旋律128来进一步确定旋律的其他小节。

在本公开内容的实施例中,编曲模块132可以利用选择的一个或多个乐器对在旋律确定模块131中确定的旋律进行多音轨编曲,以生成至少一个编曲音轨。

在一种实现中,歌词生成模块133可以根据用户输入中的文本输入,例如从文本输入中提取的主题125或关键字、情感127,以及在旋律确定模块131中确定的旋律来生成歌词。举例而言,针对旋律的每个小节,歌词生成模块133可以根据主题125或关键字、以及情感127来生成至少一段候选歌词,并且从至少一段候选歌词中选择与旋律的该小节相匹配的候选歌词,例如选择与该小节的长度匹配的候选歌词。

在一种实现中,演唱模块134可以根据在旋律确定模块131处确定的旋律和在歌词生成模块133处生成的歌词来生成演唱音轨。在本公开内容的实施例中,生成演唱音轨可以包括利用演唱者的声音根据旋律来演唱生成的歌词。在一些例子中,演唱者可以是虚拟角色,例如聊天机器人、人工智能(AI)助理等等,其中虚拟角色的声音可以是合成的电子声音。在另一些例子中,演唱者可以是真实的人,例如某个歌唱家或者是用户本人,其中演唱者的声音可以是基于该真实的人的真实声音来生成的。

在一种实现中,混音模块135将在编曲模块132中生成的至少一个编曲音轨以及在演唱模块134中生成的演唱音轨整合在一起,以生成可被播放的歌曲。

在本公开内容的实施例中,歌曲输出140可以包括可被播放的歌曲以及可选的该歌曲的歌谱。歌谱至少包括在旋律确定模块131处确定的旋律和/或在歌词生成模块133中生成的歌词。在一些例子中,歌曲输出140中可被播放的歌曲可以由任何合适的音频输出设备输出,例如扬声器、耳机等等。在另一些例子中,歌曲输出140中的歌谱可以通过终端的显示设备被呈现给用户。

应当理解,图1中所示的所有部件或模块都是示例性的,以及根据实际设计和需求,可以对图1中的歌曲生成系统进行各种修改。本申请中使用的“示例性的”一词意味着用作例子、例证或说明。本申请中被描述为“示例性”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例性一词是想要以具体的方式来表示构思。另外,除非另外指定或从上下文能清楚得知是单一形式,否则本申请和附加的权利要求书中使用的“一”和“一个”物件通常表示“一个或多个”。

图2示出了根据实施例的示例性歌曲生成过程200。该示例性歌曲生成过程200可以由图1的歌曲生成系统来执行。

在框210,接收文本输入,例如由用户提供的文本输入。

在框220,基于文本输入通过曲风分类器来确定歌曲的曲风。在一些例子中,可以基于从文本输入中提取的主题和情感来确定曲风。在另一些例子中,可以根据用户的意图和情感来确定曲风,其中用户的意图是基于提取的主题和检测的应用场景来识别出的。在本公开内容的实施例中,曲风可以包括但不限于以下中的任何一种:古典、古风、民谣、儿歌、爵士、蓝调、流行、摇滚、抒情等等。在一些例子中,不同的曲风可以对应于不同的节奏、编曲、乐器等等。例如,爵士曲风可以对应于乐器萨克斯管,古风曲风可以对应于乐器二胡、古筝等,民谣可以对应于乐器吉他,等等。

在框230,可以基于从文本输入中提取的主题和情感和/或在框220处确定的曲风来确定旋律。在一些例子中,确定旋律可以进一步包括:根据框220处确定的曲风来确定节奏序列,根据从框210中的文本输入提取的情感来确定和弦进行序列,以及根据节奏序列和和弦进行序列来确定旋律。

在一些例子中,可选地,过程200可以接收音频输入240。从而,在230处,可以进而根据从音频输入中提取的参考旋律来确定歌曲的旋律。例如,将从框240处的音频输入中检测到的参考旋律作为要生成的歌曲旋律的一个部分,例如初始小节,并进一步基于该参考旋律、主题、情感和/或曲风来确定该旋律的其他小节。在本文的例子中,该音频输入可以是由用户以哼唱方式提供的或以上传一段音频的方式提供的。需要理解的是,音频输入也可以通过其它任何适合的方式来提供。在另一些例子中,可以基于从检测到的参考旋律中提取的参考节奏作为用于生成歌曲旋律的节奏的一部分,并基于节奏的该部分来生成节奏的其他部分,以便用于生成该歌曲的旋律。

在一些例子中,将在框230处确定的旋律提供至框250以生成歌词,提供至框260以生成演唱音轨,以及提供至框270以生成编曲音轨。

在框250中,可以根据来自框210的文本输入和来自框230的旋律来生成歌词。具体而言,针对旋律的每个小节,根据文本输入来生成歌词的内容,例如生成至少一段候选歌词,以及根据旋律来确定歌词的长度,例如从至少一段候选歌词中选择与该旋律的小节的长度匹配的候选歌词。进一步地,生成候选歌词可以通过以下来实现:从文本输入中提取关键字和情感,以及可选地获得主题,根据关键字或主题和情感来生成候选歌词。此外,从文本输入中提取的主题和情感可以被扩展,例如进行语义扩展,以得到主题扩展集和情感扩展集,并进一步基于该主题扩展集和情感扩展集来生成候选歌词。举例而言,如果文本输入是“今天阳光灿烂”,则可以提取关键字为“阳光灿烂”,并提取出主题“天气好”以及情感为“快乐”。可选地,可以将关键字直接作为提取的主题,或者可以通过经过训练的模型,基于文本输入中的关键字获得主题。进一步地,可以对主题和情感进行语义扩展,例如将主题“天气好”扩展为包含“天气好、天气晴朗、阳光温暖、微风轻拂”等的主题扩展集,将情感“快乐”扩展为包含“宁静、快乐、狂喜、爱、乐观”等的情感扩展集。在一些例子中,情感扩展可以基于各种情感之间的关联来进行,例如根据Plutchik的情感轮上各种情感之间的距离远近来进行扩展。举例而言,如果提取的情感是“伤感”,则基于其它情感与情感“伤感”在情感轮上的距离,可以将情感“伤感”扩展到包括“悲伤、悲痛、悔恨”等的情感扩展集。至少基于该主题扩展集和情感扩展集,可以生成一段候选歌词,例如“阳光带来温暖,微风送来快乐”。

在框260中,可以根据来自框230的旋律和来自框250的歌词来生成演唱音轨。在一些例子中,生成演唱音轨可以通过利用演唱者的声音根据旋律演唱歌词来实现。

在框270,可以对来自框230的旋律进行编曲,以生成编曲音轨。在一些例子中,对旋律进行编曲包括基于给定的或选择的乐器集对旋律进行多音轨编曲,其中每个音轨可以对应于一种乐器。利用给定的或选择的乐器集,多音轨编曲过程可以针对旋律的各部分或小节进行编曲以生成编曲音轨,并在时间上将不同的编曲音轨与旋律的各小节对齐。在一些例子中,在多音轨编曲过程中,在每一个音轨上对旋律的当前小节的编曲可以如下所示:基于旋律的当前小节(例如作为当前时间的主旋律)、以及在旋律的上一小节生成的所有乐器中每个乐器演奏的音符序列,来在旋律的当前小节内针对该音轨进行编曲。在一种实现中,多音轨编曲过程可以通过机器学习模型来实现,例如长短期记忆(LSTM)序列模型。

在一些例子中,乐器集是根据确定的曲风、提取的情感和/或来自用户输入的其它特征来选择的。举例而言,不同的曲风或情感可以对应于不同的乐器,从而可以根据确定的曲风或情感来选择相应的乐器。例如,可以根据曲风或情感在以<曲风/情感,乐器1,乐器2……乐器n>形式或者以曲风/情感与相应乐器集相连接的方式预先创建的知识图中检索对应的乐器集合。例如,缓慢平滑的小提琴音轨通常意味着悲伤,而快速激昂的钢琴音轨通常表示欢快的感觉;架子鼓通常被认为适用于摇滚,而吉他通常被认为适用于民谣等等。在另一些例子中,针对每种曲风,在知识图中还可以存在该曲风对应的乐器集中每种乐器所占的比例,例如以<曲风,乐器1(a%),乐器2(b%)……乐器n(c%)>的示例性形式在知识图中示出。

进一步地,将在框260处生成的演唱音轨和在框270处生成的编曲音轨混合在一起,例如采用任何适当的混音技术(图中未示出),以得到可被播放的歌曲。在框280处,歌曲输出包括可被播放的歌曲和可选的该歌曲的歌谱,其中歌谱可以包括在框230处确定的旋律和/或在框250处生成的歌词。在一些例子中,可被播放的歌曲可以通过直接播放的方式被提供,以及歌谱可以通过呈现在显示器上的方式被提供。在另一些例子中,可被播放的歌曲和歌谱可以通过链接的方式被提供。在又一些例子中,在框280处的歌曲输出可以被提供在独立应用中,诸如下文的图11A-图11C中显示的,或者可以被提供在人机交互式对话中,诸如下文的图12中显示的。

需要理解的是,图2中示出的所有框中的操作或步骤都是示例性的,并且可以根据实际设计或需求,对图2的所有操作或步骤进行增加、减少、替换或修改。

图3示出了根据实施例的曲风分类模块的示例性训练过程300。训练过程300可以是一个对抗训练过程。在该示例性训练过程300中,可以利用大量<文本,真曲风标签>对来对曲风分类模块进行线下训练,使得在应用时,经训练的曲风分类模块可以基于用户的文本输入来输出要生成的歌曲的曲风标签。

在该示例性训练过程300中,文本310和数据库中的多个歌曲320被提供至生成器330,其中,数据库中的每个歌曲均带有曲风标签,所述曲风标签可以是通过人工标注的,或是通过如下图7中所示的曲风标记模型利用向量分类来标注的。

在一些例子中,可以将文本310中的词语和每个歌曲320中的音符嵌入密集向量空间中,然后使用生成器330中的注意力机制332将文本中词语的向量表示与每个歌曲320中音符的向量表示相连接。接着,可以使用相似度函数334,例如余弦函数,来计算文本310中词语的向量表示与歌曲中相应音符的向量表示之间的相似度,继而计算出文本310与多个歌曲320之间分别的相似度。将文本310与多个歌曲320之间分别的相似度提供给选择模块336,以基于任何合适的排序或计分方式根据相似度来选择与文本对应的一个候选歌曲,并根据附加到所选择的候选歌曲的曲风标签来输出候选曲风标签340。

候选曲风标签340可以被提供给鉴别器350。此外,可以将训练数据中的与文本310对应的真曲风标签360提供给鉴别器350。鉴别器350根据真曲风标签360对候选曲风标签340进行鉴别,并输出鉴别结果“真”或“假”370,以指示候选曲风标签340是否与真曲风标签360相匹配。进一步地,可以基于鉴别结果370来更新生成器330和鉴别器350。

图4示出了根据实施例的示例性注意力机制400。该注意力机制400可以对应于图3中的注意力机制332。

在一种实现中,注意力机制400可以包括多种类型的注意力,例如文本自注意力、歌曲自注意力、文本-歌曲联合注意力,等等。

对于文本410而言,可以对文本410执行文本自注意力412,以获得文本向量414。文本向量414可以包括文本410中的词语的向量表示,其中每个词语的向量表示反映与文本410中所有其它的词语之间的相关性或匹配程度。

在一种实现中,文本自注意力412可以具有多头注意力的形式。到多头注意力的输入可以被表示为查询Q、键K和值V。可以通过多个(例如h个)缩放的点积注意力的堆栈来形成多头注意力。对每个缩放的点积注意力的输入也可以是Q、K和V。在本文中,Q、K、V中的每一个均可以是文本中的数个(n个)词语的所有词嵌入。对于每个缩放的点积注意力,每次从Q中取出一个词嵌入以检查与任何其它词嵌入的匹配程度,并且该过程可以被执行n次。对于多头注意力,可以分别对Q、K和V执行线性变换以获得Q’、K’和V’。接着可以针对Q’、K’和V’计算缩放的点积注意力,并且该计算可以被重复h次。可以将h个计算结果级联在一起,然后执行线性变换。线性变换的结果是多头注意力的输出。文本自注意力的输出可以从[批尺寸,最大序列长度,词嵌入维度]改造为[批尺寸,最大序列长度,头数量*头嵌入维度]。举例而言,假设头数量为8,则可以将文本自注意力的输出从[64,30,512]改造为[64,30,8*64]

对于歌曲420,可以对歌曲420执行歌曲自注意力422,以获得歌曲向量424。歌曲向量424可以包括歌曲420中的音符或和弦的向量表示,其中每个音符的向量表示反映其与歌曲420中的所有其它音符之间的相关性或匹配程度。歌曲自注意力422旨在建立歌曲的各个音符之间的关系,并且可以被用于例如针对当前音符寻找歌曲中最合适或最相关的音符。在一种实现中,歌曲自注意力422也可以具有多头注意力形式,其类似于如上所讨论的针对文本自注意力412的多头注意力。例如,可以分别对与歌曲中的音符的向量表示相对应的一组卷积特征图x执行线性/非线性变换,从而获得例如一组经变换的x1、x2、x3。接着,x1可以被转置并且与x2进行矩阵相乘,以及可以通过Softmax对相乘结果进行归一化以获得注意力图。以音符或和弦为基础可以将注意力图与x3进行矩阵相乘,以获得一组自注意力特征图。

在一种实现中,文本自注意力412和歌曲自注意力422可以被分别进行训练,以及可以在各自的训练过程期间对文本向量和歌曲向量进行更新。在另一种实现中,文本自注意力412和歌曲自注意力422也可以在注意力机制400中联合训练,并且可以对文本向量和歌曲向量进行同步更新。

在注意力机制400中,可以对文本向量414和歌曲向量424分别应用三个全连接线性层f(x)、g(x)和h(x),以获得转换后的文本向量416、转换后的歌曲向量426和转换后的歌曲向量428。可以对转换后的文本向量416的转置以及转换后的歌曲向量426执行矩阵相乘430,从而计算它们在高维密集空间中的距离。矩阵相乘430的结果是权重矩阵,该权重矩阵表示歌曲420的音符和文本410的词语的语义之间的距离,其进一步形成了注意力图440。然后,可以对注意力图440和转换后的歌曲向量428执行矩阵相乘450,以进一步识别对于歌曲中的每个音符最适合或最相关的词语,并且最终可以获得联合注意力图460。

图5示出了根据实施例的鉴别器的示例性训练过程500,该鉴别器可以对应于图3中的鉴别器350。具体而言,图5示出了用于从版本t到版本t+1来训练鉴别器的前向和后向过程。在框510处,可以获得输入,例如文本输入。在框520处,可以将文本输入提供给生成器版本t。生成器版本t可以生成与文本输入对应的候选曲风标签530。候选曲风标签530可以在框550中被提供给鉴别器版本t。此外,可以从数据库中获得歌曲并从所述歌曲提取真曲风标签540。在框550中,真曲风标签540也可以被提供给鉴别器版本t。然后,可以在框560中计算鉴别器版本t的损失。损失可以进一步用于更新该鉴别器以在框570获得鉴别器版本t+1。

图6示出了根据实施例的生成器的示例性训练过程600,该生成器可以对应于图3中的生成器330。具体而言,图6示出了用于从版本t到版本t+1来训练生成器的前向和后向过程。在框610处,可以获得输入,例如文本输入。在框620处可以将文本提供给生成器版本t。生成器版本t可以生成候选曲风标签630。候选曲风标签630可以在框640中被提供给鉴别器版本t+1。在框650中,鉴别器版本t+1可以给出候选曲风的分数。该分数可以进一步用于在框660处计算生成器版本t的损失。该损失可以进一步用于更新该生成器以在框670获得生成器版本t+1。

需要注意的是,图5的训练过程500和图6的训练过程600可以被联合执行以实现对图3中的曲风分类模块300的训练。

图7示出了根据实施例的应用于歌曲的示例性曲风标记模型700。该曲风标记模型可以用于对数据库中的歌曲添加曲风标签。该曲风标记模型700可以通过基于深度学习的神经网络来实现。在一种实现中,可以对音频形式的歌曲进行处理以得到n维数组来作为该曲风标记模型700的输入。举例而言,假设音频时长为30秒,每隔1.5秒截取3秒进行短时傅里叶变换,以得到声谱图。对该声谱图进行转置后可以得到(128,513,1)形式的n维数组。在曲风标记模型700中,将输入(128x513x1)馈送至批量归一化(BN)层,并进一步经过具有修正线性单元(ReLU)的数个卷积层(Conv)。将卷积层的输出分别馈送至不同的级联层(Concat),并进一步提供给平均池化层和最大池化层。将平均池化层和最大池化层的输出提供给级联层并分别通过多个缩减层(Dropout)和具有ReLU的密集层(Dense),最终在密集层输出向量形式的曲风标签。

图8示出了根据实施例的用于确定旋律的示例性作曲过程800。在本公开内容的实施例中,该示例性作曲过程800可以包括节奏序列生成过程、和弦序列确定过程、和旋律生成过程。

在图8所示的例子中,节奏序列包括歌曲的每个小节的节奏,表示为节奏_小节1810、节奏_小节2 812、……节奏_小节n 814。可以由节奏生成模型根据曲风来确定节奏序列。在一些实现中,针对每种曲风存在相应的关于节奏的语言模型,从而根据曲风可以确定出相应的节奏。在一种实现中,针对当前节奏小节,节奏生成模型可以采用先前节奏小节和当前节奏小节在要生成的歌曲中的位置作为输入,以生成当前节奏小节。在一些例子中,例如,在用户提供的输入仅包括文本而没有音频的情况下,对于节奏_小节1,可以基于根据文本输入确定的曲风从候选节奏小节中加权随机选择一个作为节奏_小节1。在一些例子中,在用户提供的输入包括文本和包含参考旋律的音频的情况下,可以基于参考旋律来生成节奏的一个或多个初始小节,并且由节奏生成模型基于节奏的初始小节来生成后续小节。

在图8所示的例子中,和弦进行序列包括在歌曲的每个小节中的和弦,表示为和弦_1 830、和弦_2 832、……和弦_n 834。在一些实现中,和弦进行序列中的和弦可以是从预定数据库中随机选择的,或者可以是根据从文本输入中提取的情感从预定数据库中确定的。举例而言,对于快乐的情感可以选择大三和弦,对于悲伤的情感可以选择小三和弦。

在图8所示的例子中,旋律可以包括歌曲的每个小节的旋律,表示为旋律_小节1820、旋律_小节2 822、……旋律_小节n 824。可以利用旋律生成模型,接收节奏序列和和弦进行序列作为输入来确定旋律。在一种实现中,每个当前旋律小节可以根据当前节奏小节、和弦以及可能的前一个旋律小节来确定。例如,旋律_小节1 820可以根据节奏_小节1 810以及和弦_1 830来生成,旋律_小节2 822可以根据前一个旋律_小节1 820、当前节奏_小节2 812以及和弦_2 832来生成,等等。

图9示出了根据实施例的示例性编曲过程900。在本公开内容的实施例中,示例性编曲过程900可以包括乐器选择过程910和多音轨编曲过程920。

在乐器选择过程910中,可以根据曲风902、情感904、知识图906和可能的用户输入中的其它特征908中的任何一项或多项来生成或选择合适的乐器集合,例如乐器1 912、乐器2 914……乐器n 916。如前所述,曲风902可以是基于用户的文本输入例如从文本输入中提取的主题和情感来确定的;情感904可以是从用户的文本输入中提取的;知识图906可以是预先创建的;以及用户输入中的其它特征908可以包括文本输入中提及的乐器名称或者在音频输入中涉及的乐器等等。

在一种实现中,利用选择的乐器集合,在多音轨编曲过程920中,可以对旋律918的各部分或小节进行编曲以生成编曲音轨,并在时间上将不同的编曲音轨与旋律对齐。例如,参考前文针对图2的框270中的编曲音轨生成步骤,在图9中的多音轨编曲过程920中,在旋律的当前小节内对于例如乐器1的编曲可以如下所示:当前旋律小节是Mc,在旋律918的先前小节选择的乐器集合是乐器1,乐器3和乐器n,其中乐器1演奏的音符序列是NP1,乐器3演奏的音符序列是NP3,乐器n演奏的音符序列是NPn,则可以根据当前旋律小节Mc、以及在先前小节选择的所有乐器的音符序列NP1、NP3和NPn,利用机器学习模型在当前小节对乐器1进行编曲,例如生成乐器1的音符序列NC1,以作为对应于乐器1的编曲音轨的一部分。

图10示出了根据实施例的示例性歌词生成过程1000。该示例性歌词生成过程1000可以由歌词生成模型来执行,其中该歌词生成模型可以采用字符级循环卷积网络来实现。

在一种实现中,歌词生成模型利用word2vec对词语形式的主题和情感进行语义扩展,以分别得到主题扩展集和情感扩展集。在一些例子中,将主题扩展集和情感扩展集传递通过字符嵌入级联层、卷积层、池化层、Highway网络、LSTM网络、Softmax层,从而输出歌词。在一些例子中,Highway层使得在深度网络的训练时,可以将输入的一些维度自适应地直接传送到输出。进一步地,可以将Softmax层的输出馈送至交叉熵损失函数以计算损失。在一种实现中,该损失可以用于更新该歌词生成模型。

图11A-图11C示出了根据实施例的用于生成歌曲的应用的示例性界面1110、1120、1130。上述示例性界面1110、1120、1130示出了用于在独立应用中根据用户输入来提供生成的歌曲的过程。

在图11A的界面1110中,可以呈现提示,其用于请求用户输入关于想要生成的歌曲的描述,例如由1112所指示的“请输入用于生成歌曲的文本或关键字”。在图11A中,在该提示下方的输入框1114中,用户可以输入用于生成歌曲的文本或关键字。需要理解的是,虽然在图11A中该输入框1114被显示为位于提示1112的下方,但其可以位于界面1110的任何其它位置处。可选地,在界面1110中,可以存在用于提供参考旋律的输入框1116。在输入框1116中,可以提示用户提供参考旋律,例如示例性的提示词“请提供用于生成歌曲的参考旋律”。如果用户需要提供参考旋律,则可以采用任何适合的方式来提供。如本文中的例子中所示的,用户可以通过哼唱方式提供参考旋律,例如通过输入框1116中的话筒样式的按钮,或者可以通过上传一段音频或歌曲的方式,例如通过输入框1116中的“上传”按钮。上述两种提供参考旋律的方式仅是示例性的,并不对提供参考旋律的方式作出任何限制。在用户输入了文本或关键字以及可选地提供了参考旋律后,用户可以确定要开始生成歌曲,例如通过点击确认按钮,如由1118指示的按钮“开始生成”或“OK”按钮,或者通过其它方式来表达用户想要开始生成歌曲的意图,举例而言,在输入文本后的预定时间段后在无需用户点击确认按钮的情况下自动开始生成歌曲。

在界面1120中,用户可以在输入框1122处输入文本“今天阳光灿烂”以指示用户想要获得与该文本有关的歌曲。在该例子中,用户没有提供参考旋律,但在其它例子中,用户可以提供参考旋律。在接收到用户的输入后,可以根据本公开内容的实施例来执行歌曲生成过程。在界面1130中,可选地可以向用户显示歌曲生成过程,例如由1132指示的“歌曲生成完毕”或者“歌曲正在生成”等。在本文所示的例子中,生成的歌曲可以被播放,例如通过点击1134所示的按钮“播放”或者在歌曲生成完毕后无需用户进行任何动作而在预定时间段后直接被播放。在另一些例子中,生成的歌曲可以以链接形式呈现在界面中,图中未示出。可选地,在生成歌曲后,在界面中可以提供歌曲的歌谱以供用户查看,如显示框1136所指示的,其中歌谱至少包括该歌曲的旋律和歌词。可选地,可以在界面中提供“保存”按钮1138,以便用户可以下载或存储歌曲的音频文件、歌谱等。

此外,歌曲生成过程也可以发生在人机交互式对话期间,并且生成的歌曲可以通过对话界面被呈现给用户。如图12所示,其示出了根据实施例的用于在与聊天机器人的聊天过程中生成歌曲的示例性界面1200。

在图12的界面1200中,用户在与聊天机器人聊天的过程中提出想要编首歌曲并向聊天机器人提供了用于生成歌曲的关键字。聊天机器人可以将接收的关键字提供给歌曲生成系统并将歌曲生成系统生成的歌曲在对话界面中呈现给用户,例如以音频播放的形式,以及可选地以文本或图片形式向用户显示歌曲的歌谱。

图13示出了根据实施例的用于生成歌曲的示例性方法1300的流程图。

在框1310处,可以接收文本输入。

在框1320处,可以从所述文本输入中提取主题和情感。

在框1330处,可以根据所述主题和所述情感来确定旋律。

在框1340处,可以根据所述旋律和所述文本输入来生成歌词。

在框1350处,至少根据所述旋律和所述歌词来生成所述歌曲。

在一种实现中,确定所述旋律进一步包括:根据所述主题和所述情感来确定曲风;根据所述曲风来确定节奏序列;根据所述情感来确定和弦进行序列;以及根据所述节奏序列和所述和弦进行序列来确定所述旋律。

在一种实现中,确定所述曲风进一步包括:根据所述主题来识别意图;以及根据所述意图和所述情感来确定曲风。

在一种实现中,识别所述意图进一步包括:检测所述歌曲的应用场景;以及根据所述应用场景和所述主题来识别所述意图。

在进一步的实现中,方法1300还包括接收音频输入以及从所述音频输入中检测参考旋律,其中,所述旋律是进一步根据所述参考旋律来确定的。

在一种实现中,生成所述歌词进一步包括,针对所述旋律的每个小节:根据所述文本输入来生成至少一段候选歌词;以及从所述至少一段候选歌词中选择与所述旋律的该小节的长度匹配的一段候选歌词。

在一种实现中,生成所述至少一段候选歌词进一步包括:从所述文本输入中提取关键字;以及根据所述关键字和所述情感来生成所述至少一段候选歌词。

在又一种实现中,生成所述至少一段候选歌词进一步包括:通过对所述主题进行语义扩展来得到主题扩展集;通过对所述情感进行语义扩展来得到情感扩展集;以及根据所述主题扩展集和所述情感扩展集来生成所述至少一段候选歌词。

在一种实现中,生成所述歌曲进一步包括:根据所述旋律来生成至少一个编曲音轨;根据所述旋律和所述歌词来生成演唱音轨;以及根据所述至少一个编曲音轨和所述演唱音轨来生成所述歌曲。

在进一步的实现中,生成所述至少一个编曲音轨进一步包括:根据所述主题和所述情感来确定曲风;至少根据所述曲风来选择至少一种乐器;以及利用所述至少一种乐器来生成所述至少一个编曲音轨。

在一种实现中,生成所述演唱音轨进一步包括:利用演唱者的声音根据所述旋律来演唱所述歌词。

在进一步的实现中,方法1300还包括:提供所述歌曲的歌谱,所述歌谱至少包括所述旋律和所述歌词。

在进一步的实现中,方法1300还包括:通过链接和/或直接播放的方式来提供所述歌曲.

在进一步的实现中,方法1300还包括:在独立应用中或在人机交互式对话中提供所述歌曲。

应当理解的是,方法1300还可以包括:根据如上面所提及的本公开内容的实施例,用于生成歌曲的任何步骤/处理。

图14示出了根据实施例的用于生成歌曲的示例性装置1400。

装置1400可以包括:接收模块1410,用于接收文本输入;提取模块1420,用于从所述文本输入中提取主题和情感;旋律确定模块1430,用于根据所述主题和所述情感来确定旋律;歌词生成模块1440,用于根据所述旋律和所述文本输入来生成歌词;以及歌曲生成模块1450,用于至少根据所述旋律和所述歌词来生成所述歌曲。

在一种实现中,所述旋律确定模块1430进一步用于:根据所述主题和所述情感来确定曲风;根据所述曲风来确定节奏序列;根据所述情感来确定和弦进行序列;以及根据所述节奏序列和所述和弦进行序列来确定所述旋律。

在一种实现中,所述歌词生成模块1440进一步用于,针对所述旋律的每个小节:根据所述文本输入来生成至少一段候选歌词;以及从所述至少一段候选歌词中选择与所述旋律的该小节的长度匹配的一段候选歌词。

在一种实现中,所述歌曲生成模块1450进一步用于:根据所述旋律来生成至少一个编曲音轨;根据所述旋律和所述歌词来生成演唱音轨;以及根据所述至少一个编曲音轨和所述演唱音轨来生成所述歌曲。

在一种实现中,装置1400还包括歌谱提供模块,用于提供所述歌曲的歌谱,所述歌谱至少包括所述旋律和所述歌词。

应当理解的是,装置1400还可以包括:被配置为根据如上面所提及的本公开内容的实施例,用于生成歌曲的任何其它模块。

图15示出了根据实施例的用于生成歌曲的另一种示例性装置1500。装置1500可以包括一个或多个处理器1510和存储计算机可执行指令的存储器1520,当执行所述计算机可执行指令时,所述一个或多个处理器1510可以执行以下操作:接收文本输入;从所述文本输入中提取主题和情感;根据所述主题和所述情感来确定旋律;根据所述旋律和所述文本输入来生成歌词;以及至少根据所述旋律和所述歌词来生成所述歌曲。

本公开内容的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器根据如上面所述的本公开内容的实施例,执行用于生成歌曲的方法的任何操作。

应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。

本申请中使用的“示例性的”一词意味着用作例子、例证或说明。本申请中被描述为“示例性”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例性一词是想要以具体的方式来表示构思。本申请中使用的术语“或者”意味着包括性的“或者”而不是排他性的“或者”。也就是说,除非另外指定,或者从上下文能清楚得知,否则“X使用A或者B”的意思是任何自然的包括性置换。也就是说,如果X使用A,X使用B,或者X使用A和B二者,则“X使用A或者B”满足上述任何一个例子。另外,除非另外指定或从上下文能清楚得知是单一形式,否则本申请和附加的权利要求书中使用的“一”和“一个”物件通常表示“一个或多个”。

已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。

软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。

以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。

技术分类

06120112158197