标识音乐中的语言的制作方法

文档序号:35544206发布日期:2023-09-23 20:09阅读:42来源:国知局
标识音乐中的语言的制作方法
标识音乐中的语言
1.相关申请的交叉引用
2.本技术要求于2021年2月26日提交的题为“training method and system of automatic music language identification using audio and metadata”的美国非临时专利申请17/186,490的优先权,该申请通过引用并入本文,如同其整体被再现一样。


背景技术:

3.典型的语言标识技术确定与讲话相关联的语言。然而,用于标识讲话中的语言的技术不适用于标识音乐中的语言。例如,由于讲话表达与歌唱之间的差异,用于标识讲话中的语言的技术可能不适用于标识音乐中的语言。因此,需要改进语言标识技术。
附图说明
4.并入本说明书中并且构成本说明书的一部分的附图示出了实施例,并且与说明书一起用于解释方法和系统的原理:
5.图1是示出根据本公开使用的示例系统的示意图。
6.图2示出了可以根据本公开使用的用于测试语言标识模型的示例过程。
7.图3示出了可以根据本公开使用的用于应用语言标识模型的示例过程。
8.图4示出了与音频样本相关联的示例谱图。
9.图5a-图5b示出了与元数据相关联的示例语言概率向量。
10.图6a-图6b示出了描绘语言标识模型的性能的示例表。
11.图7示出了描绘不同语言标识模型的不同性能能力的示例图表。
12.图8示出了可以根据本公开使用的用于训练和应用语言标识模型的示例过程。
13.图9示出了可以根据本公开使用的用于训练和应用语言标识模型的示例过程。
14.图10示出了可以根据本公开使用的示例计算设备。
具体实施方式
15.标识音乐中的语言(例如,歌唱语言标识(slid))是一项分类任务,其涉及标识与音乐相关联的一种或多种语言。例如,slid可以涉及标识在音乐歌词中使用的一种或多种语言、和/或与在音乐中使用的乐器相关联的一种或多种语言。听众理解在音乐片段的歌词中使用的语言和/或从文化上标识在音乐片段中使用的乐器的能力在音乐聆听体验中起着至关重要的作用。因此,能够标识与音乐相关联的语言信息对于音乐发现和音乐推荐系统是必不可少的。然而,尽管能够标识与音乐相关联的语言信息很重要,但这样的语言信息并不总是可用的。例如,与音乐片段相关联的(多个)地理区域、与音乐片段相关联的抒情信息和/或与音乐片段相关联的(多个)语言中的一个或多个可能不可用。即使对于一些最大规模和最成熟的音乐消费链和/或音乐流媒体服务来说,这种语言信息缺乏也是一个问题。
16.为了解决这个问题,已经开发了slid模型,该slid模型旨在标识音乐内的语言。这些slid模型中的一些利用传统的机器学习分类器和与音乐的音频内容相关联的特征来识
别音乐内的语言。这些slid模型中的其他slid模型依赖于模态而非音频内容。例如,一个slid模型通过采用视频的视觉特征连同基本音频特征来将音乐视频分类为语言类别。作为另一示例,一个slid模型使用音轨标题和专辑名称来标识音乐内的语言。此外,这些现有slid模型旨在仅使用音乐数据的一部分来标识音乐内的语言——一些仅使用音频内容,另一些使用音乐视频的音频内容和视觉特征,而另一些使用音轨标题和专辑名称。因为这些现有slid模型仅使用音乐数据的一部分,所以它们无法以高准确率标识音乐内的语言。因此,可能需要开发用于产生更准确的slid模型的技术。
17.改进的slid模型可以使用音频内容和文本元数据两者来标识与音乐相关联的语言。音频内容和文本元数据是可用音乐数据的最流行的形式中的两种。通过使用主流音乐数据的更大部分,与仅使用音乐数据的一部分来标识音乐内的语言的现有slid模型相比,改进的slid模型能够以更高的准确度来标识与音乐相关联的语言。图1示出了可以在其中实现本文中描述的系统和方法的示例环境100。环境100包括云网络102和至少一个客户端设备132。云网络102和客户端设备132经由一个或多个网络130进行通信。改进的slid模型可以被包括在客户端设备132或由云网络102托管的音乐语言标识系统114中。
18.应当理解,图1仅是说明性的,并且可以使用其他实现。例如,客户端设备132、音乐语言标识系统114或其他计算设备可以单独使用或组合使用,以实现如本公开中描述的标识音乐语言的技术。还应当意识到,图1所示的网络拓扑结构已经大大简化,并且更多的网络、设备和数据库可以用于互连各种计算系统。
19.云网络102可以位于数据中心,诸如单个场所,或者分布在不同地理位置(例如,在若干场所)。云网络102可以经由一个或多个网络130提供服务。网络130可以包括一个或多个公共网络(例如,互联网)和/或一个或多个专用网络。专用网络可以包括无线局域网(wlan)、局域网(lan)、广域网(wan)、蜂窝网络或内联网。网络130可以包括(多个)有线网络和/或(多个)无线网络。例如,网络130可以包括物理链路,诸如同轴电缆链路、双绞线电缆链路、光纤链路、其组合等。作为另一示例,网络130可以包括无线链路,诸如蜂窝链路、卫星链路、wi-fi链路等。网络130可以包括各种网络设备,诸如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙、代理设备等。
20.云网络102可以包括托管各种服务的多个计算节点116。在一个实施例中,节点116托管音乐语言标识系统114。节点116可以处理与音乐语言标识系统114相关联的任务。多个计算节点116可以被实现为一个或多个计算设备、一个或多个处理器、一个或多个虚拟计算实例、其组合等。多个计算节点116可以由一个或多个计算设备来实现。一个或多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机系统、操作系统、服务器等的仿真。虚拟机可以由计算设备基于用于仿真的虚拟图像和/或定义特定软件(例如,操作系统、专用应用、服务器)的其他数据来加载。随着对不同类型的处理服务的需求的改变,可以在一个或多个计算设备上加载和/或终止不同虚拟机。管理程序可以被实现以管理同一计算设备上不同虚拟机的使用。
21.音乐语言标识系统114可以实现本文中描述的很多功能和技术。例如,音乐语言标识系统114可以被配置为标识与音乐相关联的一种或多种语言。音乐语言标识系统114可以与想要标识与音乐相关联的(多个)语言的实体(诸如音乐发现或音乐推荐平台)相关联。在一个实施例中,音乐语言标识系统114包括被训练以标识与音乐相关联的一种或多种语言
的slid模型。例如,音乐语言标识系统114可以包括slid模型,该slid模型被训练以使用音频内容和文本元数据两者来标识与音乐相关联的一种或多种语言。
22.在一个实施例中,音乐语言标识系统114训练slid模型以标识与音乐相关联的一种或多种语言。音乐语言标识系统114可以使用训练示例来训练slid模型。用于训练slid模型的训练示例可以以各种不同方式生成。例如,训练示例可以使用手动数据输入来手动生成。训练示例可以另外地或替代地使用计算机自动生成。用于训练slid模型的训练示例可以包括正训练示例、或者正训练示例和负训练示例的组合。用于训练slid模型的训练示例的数目可以变化,但在一个实施例中,超过100,000个训练示例用于训练sld模型。
23.训练示例可以指示与多个不同音乐样本相关联的一种或多种语言。与特定音乐样本相关联的一种或多种语言可以指示在音乐样本的歌词中使用的一种或多种语言。例如,如果一个音乐样本的特征是一个女人用法语唱歌和一个男人用英语说唱,则该音乐样本可以与法语和英语两者相关联。另外地或替代地,与特定音乐样本相关联的一种或多种语言可以指示在与音乐样本的某个其他特征相关联的地理区域中通用的语言。例如,如果在音乐样本中使用的特定乐器是墨西哥本土的,则与该音乐样本相关联的一种或多种语言可以包括西班牙语,而不管该歌曲的歌词是否是西班牙语。在一个实施例中,每个训练示例可以被分类为多种不同语言中的一种或多种。例如,数据集中可以有各种语言标签,包括但不限于英语、葡萄牙语、西班牙语、韩语、法语、日语、德语、波兰语、意大利语、斯洛伐克语等。
24.音乐样本中的每个可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。音乐样本中的每个可以与音频数据(即,音频剪辑)和/或元数据相关联。如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声音轨和/或来自音乐样本的器乐音轨。人声音轨可以包括音乐样本的歌词,而器乐音轨可以包括没有任何人声的音乐样本的音轨。如果音乐样本与元数据相关联,则元数据可以指示对于大多数音乐音轨而言存在并且容易访问的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。诸如歌曲标题、专辑名称和艺术家名称等数据很容易访问,因为它们通常被包括在在线音乐流媒体服务中。虽然其他类型的数据(诸如音乐视频的视觉特征和/或预先计算的音轨向量)可以有助于确定与音乐样本相关联的语言,但这些其他类型的数据的可用性有限,即使对于音乐行业中能够访问大规模专有目录的人来说也是如此。因此,在这些其他类型的数据上训练的slid模型是不切实际的,并且难以再现。
25.在一个实施例中,所有训练示例包括音频数据和元数据。在另一实施例中,大多数训练示例包括音频数据和元数据,而一些训练示例包括音频数据或元数据中的一项。例如,训练示例说明了如下事实,即,在应用中,关于特定音乐样本的数据可能缺失。一旦经过训练,slid模型就可以用于识别与缺少音频数据或元数据的音乐样本相关联的一种或多种语言。因此,希望训练slid模型以使得它仍然能够识别与缺少音频数据或元数据的音乐样本相关联的一种或多种语言。为了以这种方式训练slid模型,可以使用一种名为dropout的技术。在dropout模块中,在训练示例中使用的音乐样本的某个百分比的音乐样本(诸如5%、10%、30%或任何其他百分比的音乐样本)的音频数据可以被“丢弃”(drop out)。类似地,在训练示例中使用的音乐样本的某个百分比的音乐样本的元数据也可以被“丢弃”。这表示,在整个训练示例集合中,一定百分比的训练示例将具有零值音频数据,并且一定百分比的训练示例将具有零值元数据。具有零值音频数据的训练示例可以与不同音乐样本相关
联,诸如具有零值元数据的训练示例。一定百分比的训练示例(诸如大多数训练示例)可以没有零值音频数据或零值元数据(即,对于那些音乐样本,音频数据和元数据都没有被“丢弃”)。以这种方式,可以在训练slid模型的同时模拟缺失模态情况。因此,即使特定音乐片段缺少模态,也可以使用单个slid模型来识别音乐内的语言。
26.作为说明性示例,为了训练slid模型,音乐语言标识系统114可以从训练示例数据库106接收训练示例118a-b作为输入。应当理解,训练示例数据库106可以包括数千甚至数百万个训练示例。训练示例118a-b仅仅是为了说明性的目的。训练示例118a-b可以包括指示表示多个音乐样本的音频数据的信息。训练示例118a-b可以另外地或替代地包括与多个音乐样本相关联的元数据。训练示例118a-b可以另外包括指示与多个音乐样本中的每个音乐样本相对应的至少一种语言的信息。如上所述,训练示例118a-b的一部分可以针对零值音频数据,和/或训练示例118a-b的一部分可以具有零值元数据。
27.例如,训练示例118a可以包括音频信号120a和/或元数据122a、以及至少一种语言124a。音频信号120a可以包括与第一音乐样本相关联的音频信号。音频信号120a可以包括与第一音乐样本相关联的人声音轨和/或器乐音轨。元数据112a可以指示与第一音乐样本相关联的信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。语言124a可以指示与第一音乐样本相关联的一种或多种语言。语言124a可以是手动标识的,诸如由收听第一音乐样本的个人标识的。例如,个人可以已经收听了第一音乐样本,并且识别出英语和西班牙语两者都与在第一音乐样本中使用的歌词和/或乐器相关联。然后,个人可以将语言124a标记为英语和西班牙语。类似地,训练示例118b可以包括音频信号120b和/或元数据122b、以及至少一种语言124b。音频信号120b可以包括与第二音乐样本相关联的音频信号。音频信号120b可以包括与第二音乐样本相关联的人声音轨和/或器乐音轨。元数据112b可以指示与第二音乐样本相关联的信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。语言124b可以指示与第二音乐样本相关联的一种或多种语言。语言124b可以是手动标识的,诸如由收听第二音乐样本的个人标识的。
28.训练示例118a-b可以被音乐语言标识系统114用来训练slid模型。为了使用训练示例118a-b训练slid模型,音乐语言标识系统114可以输入训练示例118a-b,并且将输入音频数据和输入元数据与期望输出(即,已经与音乐样本相关联的(多个)语言)配对。通过将输入音频数据和元数据与相应音乐样本中的已知语言配对并且使用这些配对来训练slid模型,slid模型可以学习将音频数据和/或元数据的特定特征与不同语言相关联。slid模型可能需要在大量的训练示例上进行训练,然后才能学习到足够的知识来进行准确的语言识别。期望识别准确度水平可以由训练slid模型的实体或个人来确定,并且slid模型可以继续被训练,直到它已经学习到足以以期望准确度水平进行语言识别。
29.为了确定slid模型是否以期望准确度水平进行语言识别,可以测试slid模型。slid模型可以使用测试数据来测试。为了测试slid模型,可以将测试数据输入到slid模型中,并且可以将slid模型的输出与预期结果进行比较。测试数据可以是用于评估经训练的slid模型的性能的一组示例。
30.输入到slid模型的测试数据或测试示例可以类似于用于训练slid模型的数据。例如,一个测试示例可以包括与音乐样本相关联的音频数据和元数据。虽然测试示例还包括与该音乐样本相关联的一种或多种语言,但是该一种或多种语言没有被输入到slid模型
中。相反,与音乐样本相关联的音频数据和/或元数据可以被输入到slid模型,以查看slid模型标识的哪个(哪些)语言与音乐样本相关联。该识别可以与由测试示例指示的与音乐样本相关联的一种或多种语言(即,预期结果)进行比较。如果使用测试数据的识别结果的某个百分比与其相应预期结果不匹配,则slid模型可能需要在更多个和/或更多种类的训练示例上进行训练。这个训练和测试过程可以一次又一次地重复,直到slid模型以期望准确度水平识别语言。
31.图2示出了用于测试slid模型的示例过程200,该slid模型将用于标识与音乐相关联的一种或多种语言。过程200可以例如由音乐语言标识系统114来执行。可以诸如从测试数据库128接收输入。输入可以包括测试示例。测试示例可以包括指示表示多个音乐样本的音频数据的信息。测试数据还可以包括与多个音乐样本相关联的元数据。在一个示例中,用于测试slid的测试数据集与用于训练slid的训练数据集不同。测试数据可以包括指示与多个音乐样本中的每个音乐样本相对应的至少一种语言并且用于与slid的输出进行比较的信息。如以上关于训练示例所讨论的,测试示例的一部分可以具有零值音频数据,和/或测试示例的一部分可以具有零值元数据。
32.例如,测试示例可以包括音频信号和元数据、以及至少一种语言。音频信号可以包括与音乐样本相关联的音频信号。音频信号可以包括与该音乐样本相关联的人声音轨和/或器乐音轨。元数据可以指示与音乐样本相关联的信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。语言可以指示与音乐样本相关联的一种或多种语言。语言可以已经被手动标识,诸如由收听音乐样本的个人标识。例如,个人可以已经收听了音乐样本,并且识别出法语和葡萄牙语两者都与在音乐样本中使用的歌词和/或乐器相关联。然后,个人可以将这些语言标记为法语和葡萄牙语。
33.在202,为了使用测试示例来测试slid模型,可以将测试示例的音频信号和/或元数据输入到slid模型。在204a,slid模型可以输出与输入音频信号和/或元数据相关联的识别语言。如测试示例所指示的,可以将这一种或多种识别语言与对应的预期语言进行比较。如果输出与对应的预期语言匹配,则slid模型已经产生准确识别。如果输出与预期语言不匹配,或者仅部分匹配,则slid尚未产生准确识别。在206a,可以诸如通过准确度测试器来输出识别的准确度。识别的准确度可以与期望准确度水平进行比较。如果准确度低于期望准确度水平,则slid模型可能需要在更多训练示例和/或更多种类的训练示例上训练,以提高准确度水平,直到达到期望准确度水平。
34.在更多和/或不同训练示例上训练slid模型之后,返回202,可以将不同测试示例的音频数据和/或元数据输入到slid模型。在204b,slid模型可以输出与新的输入的音频信号和/或元数据相关联的识别语言。如新的测试示例所指示的,这些识别语言可以与预期语言进行比较。如果输出与预期语言匹配,则slid模型已经产生准确识别。如果输出与预期语言不匹配,或者仅部分匹配,则slid尚未产生准确识别。在206b,可以诸如通过准确度测试器来输出识别的准确度。再次,识别的准确度可以与期望准确度水平进行比较。如果准确度仍然低于期望准确度水平,则slid模型可能需要在更多训练示例和/或更多种类的训练示例上训练,以不断提高准确度水平,直到达到期望准确度水平。过程200可以一次又一次地重复,直到slid模型以期望准确度水平产生结果。slid模型可以被周期性地训练以保持期望准确度水平。测试过程的结果可以被输出并且存储在诸如测试数据库128等数据库中。
35.再次参考图1,在另一实施例中,slid模型由不是音乐语言标识系统114的系统来训练和/或测试。例如,如果音乐语言标识系统114与试图标识与音乐相关联的(多个)语言的实体(诸如音乐发现或音乐推荐平台)相关联,则slid模型可以由不同实体来训练和/或测试。在slid模型由不同实体训练和/或测试之后,经训练和测试的slid模型可以由该不同实体和/或由诸如音乐发现或音乐推荐平台等实体使用,以寻求标识与音乐相关联的(多个)语言。不同实体可以以类似于上面关于图2描述的方式来训练和/或测试slid模型。
36.一旦经过训练和测试,slid模型就可以被用于标识与音乐相关联的一种或多种语言。在一个实施例中,音乐语言标识系统114使用slid模型来识别与音乐相关联的一种或多种语言。为了识别与音乐相关联的一种或多种语言,音乐语言标识系统114可以从音乐数据库104接收音乐108作为输入。音乐108可以包括多个音乐片段,诸如音乐片段110a-d。每个音乐片段110a-d可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。
37.每个音乐片段110a-d可以与音频数据(即,音频剪辑)和/或元数据相关联。如果音乐片段110a-d与音频数据相关联,则音频数据可以包括来自音乐样本的人声音轨和/或来自音乐样本的器乐音轨。人声音轨可以包括音乐样本的歌词,而器乐音轨可以包括没有任何人声的音乐样本的音频轨道。如果音乐片段110a-d与元数据相关联,则元数据可以指示关于该音乐片段的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。
38.为了识别与音乐片段相关联的一种或多种语言,音乐语言标识系统114可以将与该音乐片段相关的音频数据和元数据输入到slid模型。例如,为了识别与音乐片段110a相关联的一种或多种语言,音乐语言标识系统114可以输入与音乐片段110a相关联的音频数据112a和元数据114a。slid模型可以使用音频数据112a和元数据114a来预测与音乐片段110a相关联的一种或多种语言。与音乐片段110a相关联的一种或多种语言的识别可以存储在数据库中,诸如存储在识别数据库126中。作为另一示例,为了识别与音乐片段110b相关联的一种或多种语言,音乐语言标识系统114可以输入与音乐片段110b相关联的音频数据112b和元数据114b。slid模型可以使用音频数据112b和元数据114b来识别与音乐片段110b相关联的一种或多种语言。与音乐片段110b相关联的一种或多种语言的识别可以存储在数据库中,诸如存储在识别数据库126中。
39.如上所述,slid模型可以被训练以识别与音乐片段相关联的一种或多种语言,即使该特定音乐片段存在缺失模态。例如,音乐片段可以不与音频数据或元数据相关联。slid模型仍然可以能够识别与该音乐片段相关联的一种或多种语言。例如,音乐片段110c与音频数据112c相关联。然而,音乐片段110c不具有任何相关联的元数据。为了识别与音乐片段110c相关联的一种或多种语言,音乐语言标识系统114可以输入音频数据112c。slid模型可以使用音频数据112c来识别与音乐片段110c相关联的一种或多种语言。与音乐片段110c相关联的一种或多种语言的识别可以存储在数据库中,诸如存储在识别数据库126中。作为另一示例,音乐片段110d与元数据114d相关联。然而,音乐片段110d不具有任何相关联的音频信号。为了识别与音乐片段110d相关联的一种或多种语言,音乐语言标识系统114可以输入元数据114d。slid模型可以使用元数据114d来识别与音乐片段110d相关联的一种或多种语言。与音乐片段110d相关联的一种或多种语言的识别可以存储在数据库中,诸如存储在识别数据库126中。下面详细讨论的图3示出了用于识别与音乐相关联的一种或多种语言的示例性slid模型。
40.如前所述,音乐数据库104和训练示例数据库106可以分别向音乐语言标识系统114提供音乐样本114a-b和训练示例118a-b。同样如上所述,音乐语言标识系统114可以将音乐分类结果提供给识别数据库126。在一些实施例中,音乐数据库104、训练示例数据库106、识别数据库126或测试数据库128中的一个或多个可以与音乐语言标识系统114集成。在一些实施例中,存储在音乐数据库104、训练示例数据库106、识别数据库126或测试数据库128中的两个或更多个中的数据可以替代地或另外地存储在单个数据库中。
41.音乐语言标识系统114、音乐数据库104、训练示例数据库106、识别数据库126和测试数据库128每个可以包括一个或多个计算设备和/或网络设备。例如,音乐语言标识系统114、音乐数据库104、训练示例数据库106、识别数据库126和测试数据库128每个可以包括一个或多个联网服务器。音乐语言标识系统114、音乐数据库104、训练示例数据库106、识别数据库126和测试数据库128每个可以包括数据存储设备和/或系统,诸如网络附属存储(nas)系统。
42.音乐语言标识系统114、音乐数据库104、训练示例数据库106、识别数据库126和测试数据库128每个可以在一个或多个计算设备中实现。这样的计算设备可以包括一个或多个处理器和存储指令的存储器,该指令在由一个或多个处理器执行时引起计算设备执行这里描述的各种方法或技术中的一种或多种。存储器可以包括易失性存储器(例如,随机存取存储器(ram))和/或非易失性存储器(例如,硬盘或固态驱动器)。存储器可以包括非暂态计算机可读介质。计算设备可以包括一个或多个输入设备,诸如鼠标、键盘或触摸接口。计算设备可以包括一个或多个输出设备,诸如监视器或其他视频显示器。计算设备可以包括音频输入和/或输出。计算设备可以包括一个或多个网络通信接口,诸如无线收发器(例如,wi-fi或蜂窝)或有线网络接口(例如,以太网)。一个或多个网络通信接口可以被配置为连接到网络130。
43.在一个实施例中,音乐108可以经由网络130输出到不同客户端设备132。音乐108可以被流式传输到客户端设备132。客户端设备132可以被配置为访问音乐108。在一个实施例中,一个或多个客户端设备132包括内容应用134。内容应用134向与客户端设备132相关联的用户输出(例如,显示、渲染、呈现)音乐108。被识别为与音乐108相关联的一种或多种语言可以用于为客户端设备132的用户进行歌曲推荐。例如,如果客户端设备132的用户被确定为理解西班牙语或已经听过西班牙语歌曲,则音乐分类系统114已经标识为与西班牙语相关联的音乐片段可以被推荐给该用户。在一个实施例中,用户可以使用客户端设备132上的内容应用134来收听音乐108。例如,用户可以使用客户端设备132上的内容应用134来收听已经基于与音乐片段相关联的一种或多种语言而为该用户推荐的音乐片段。
44.客户端设备132可以包括任何类型的计算设备,诸如移动设备、平板设备、笔记本电脑、台式计算机、智能电视或其他智能设备(例如,智能手表、智能扬声器、智能眼镜、智能头盔)、游戏设备、机顶盒、数字流设备、机器人等。客户端设备132可以与一个或多个用户相关联。单个用户可以使用一个或多个客户端设备132来访问云网络102。客户端设备132可以行进到各种位置并且使用不同网络来访问云网络102。
45.如上所述,slid模型可以用于识别与音乐相关联的一种或多种语言。图3示出了示例slid模型300,slid模型300可以用于标识与音乐(诸如图1所示的音乐108)相关联的一种或多种语言。在一个实施例中,slid模型300是图1的音乐语言标识系统114的一部分。slid
模型300可以已经使用与上述过程类似的过程而被训练。slid模型300可以接收与音乐片段相关联的音频数据和/或元数据作为输入。slid模型300可以识别并且输出与音乐片段相关联的语言。
46.在一个实施例中,slid模型300接收与音乐片段相关联的音频数据(诸如音频信号302)和元数据(诸如元数据304)两者。音乐片段可以是个人或实体想要基于语言进行分类的音乐片段。音乐片段可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。音频信号302可以包括来自音乐片段的人声音轨和/或来自音乐片段的器乐音轨。人声音轨可以包括音乐片段的歌词,而器乐音轨可以包括没有任何人声的音乐片段的音频轨道。元数据304可以指示关于音乐片段的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。
47.在一个实施例中,slid模型300预处理所接收的音频信号302。slid模型300的子网络308可以负责执行预处理。预处理音频信号302可以涉及生成表示音频信号302的信息。表示音频信号302的这个信息可以被配置为由slid模型300在语言识别过程中使用。
48.在一个实施例中,表示音频信号302的信息可以是表示音频信号302的提取特征的图像。例如,表示音频信号302的提取特征的图像可以包括表示音频信号302的频率如何随时间变化的谱图。子网络308可以以多种方式提取音频信号302的特征,包括但不限于短期傅立叶变换、梅尔谱图、梅尔频率倒频谱(mfcc)、常数q变换或机器学习模块中的一种或多种。例如,音频信号302最初可以是44.1khz的30秒音乐样本,并且在预处理期间,音频信号302可以被重新采样为22,050hz,并且利用1024点快速傅立叶变换和256跳大小被转换为128-bin对数幅度梅尔谱图(128
×
2580)。
49.作为说明性实施例,图4示出了表示音频信号(诸如音频信号302)的特征的示例谱图400。谱图400是梅尔谱图。谱图400可以是例如由子网络308生成的。谱图400可以表示44.1khz 30秒音乐样本的特征,诸如音乐样本的频率如何随时间变化。谱图400可以是通过将音乐样本重新采样到22,050hz并且利用1024点快速傅立叶变换和256跳大小被转换为谱图400而生成的。
50.再次参考图3,在一个实施例中,slid模型300预处理所接收的元数据304。slid模型300的子网络310可以负责执行预处理。预处理元数据304可以涉及生成表示元数据304的信息。表示元数据304的这个信息可以被配置为由slid模型300在语言识别过程中使用。
51.在一个实施例中,表示元数据304的信息可以是向量。如果表示元数据304的信息是向量,则该向量可以表示元数据304的提取特征。例如,表示元数据304的信息可以是语言概率向量。表示元数据304的信息可以以多种方式生成。在一个实施例中,预处理元数据304可以包括按艺术家名称、专辑名称和音轨标题的顺序连接元数据304的串。连接的串可以被输入到语言检测模型,诸如python的langdetect,该语言检测模型可以使用诸如detect_langs(s)等函数来估计56维语言概率向量。可以输出55种支持语言的概率。但是,在某些情况下,函数可能会返回错误值,诸如当文本为空或包含数值时。向量的第56维度可以用于指示那些异常情况。
52.作为说明性实施例,图5a-图5b示出了表示元数据(诸如元数据304)的提取特征的示例向量500、502。向量500、502是56维语言概率向量。向量500、502可以通过按艺术家名称、专辑名称和音轨标题的顺序连接诸如元数据304等元数据的串来生成。连接的串可以被
输入到语言检测模型,诸如python的langdetect,该语言检测模型可以使用诸如detect_langs(s)等函数来估计向量500、502。向量500指示第一元数据集有28%的概率与南非荷兰语相关联和71%的概率与葡萄牙语相关联。向量502指示第二元数据集有99.999%的概率与英语相关联。
53.再次参考图3,如果表示元数据304的信息是语言概率向量,则语言概率向量的精度可以依赖于元数据304的哪些串被用于生成语言概率向量。例如,如上所述,元数据304可以包括艺术家名称、专辑名称和音轨标题。语言检测模型的性能可以取决于哪些元数据串被输入到语言检测模型。
54.图6示出了示例表600,该示例表600描绘了具有各种元数据串输入的语言检测模型(诸如python的langdetect)的宏平均性能。例如,表600表明,如果语言检测模型仅接收艺术家名称作为输入,则语言检测模型的精度为.323,召回率为.221,f1得分为.149。f1得分是精度和召回率的加权平均,其中f1得分在1处达到其最佳值,在0处达到其最差得分。表600还表明,如果语言检测模型仅接收专辑名称作为输入,则语言检测模型的精度为.399,召回率为.378,f1得分为.284。此外,表600表明,如果语言检测模型仅接收音轨标题作为输入,则语言检测模型的精度为.450,召回率为.444,f1得分为.317。
55.当接收所有连接在一起的艺术家名称、专辑名称和音轨标题作为输入时,语言检测模型的性能会提高。表600表明,如果语言检测模型接收所有连接在一起的艺术家名称、专辑名称和音轨标题作为输入,则语言检测模型的精度为.510,召回率为.569,f1得分为.429。由于f1得分在1处达到其最佳值并且在0处达到其最差得分,因此当语言检测模型接收仅音轨标题、仅专辑名称或仅音轨标题作为输入时,f1得分.429明显好于f1得分。虽然图6a描绘了所有元数据串连接在一起的语言检测模型的宏平均性能,但加权平均精度/召回率/f1得分分别为.922/.819/.857。
56.对于不同语言,语言概率向量的精度可以不同。例如,语言检测模型可以能够以比其他语言更高的精度标识音乐内的某些语言。例如,与语言检测模型的训练数据中不太普遍的语言相比,训练数据中更普遍的语言可以以更高的精度被识别。
57.再次参考图3,在一个实施例中,slid模型300向子网络316中输入表示音频信号302的信息,诸如表示在预处理期间生成的音频信号302的谱图。子网络316可以是卷积神经网络,诸如resnet-50,并且可以包括64个基本通道。子网络316可以使用表示音频信号302的信息来生成向量。例如,子网络316可以接收表示音频信号302的信息(诸如表示音频信号302的谱图)作为输入,并且输出2048通道特征图,诸如大小为(4
×
81)的特征图。子网络316然后可以将全局平均池化应用于2048通道特征图,并且输出一维向量,诸如长度为2048的一维向量。
58.在一个实施例中,slid模型300向子网络318中输入表示元数据304的信息(诸如在预处理期间生成的语言概率向量)。子网络318可以是诸如前馈人工神经网络等神经网络。例如,子网络318可以是3层多层感知器(mlp),其中三层中的每一层包括128单元的全连接层、批量归一化层和激活函数,诸如校正线性激活函数(relu)。子网络318可以接收表示元数据304的信息(诸如56维语言概率向量)作为输入,并且输出一维向量,诸如长度为128的一维向量。
59.如上所述,现有slid模型旨在仅使用音乐数据的一部分来标识音乐内的语言,有
些仅使用音频内容,另一些使用音轨标题和专辑名称。因为这些现有slid模型仅使用音乐数据的一部分,所以它们无法以高准确率标识音乐内的语言。slid模型300能够以比现有slid模型更高的准确率标识音乐内的语言,这是因为,sld模型300已经使用训练示例被训练,其中至少大部分训练示例包括音频数据、元数据和指示与每个训练示例相关联的至少一种语言的信息。为了使用音频数据和与音乐相关联的元数据两者来标识与音乐相关联的一种或多种语言,slid模型300可以拼接音频子网络316和元数据子网络318的输出。为了拼接音频子网络316和元数据子网络318的输出,slid模型300可以将音频子网络316和元数据子网络318的输出输入到子网络320中。子网络320可以拼接音频子网络316和元数据子网络318的输出。子网络320可以包括机器学习模块,诸如mlp或卷积神经网络。
60.slid模型300可以将该拼接输入到子网络322中。子网络322可以是诸如前馈人工神经网络等的神经网络。例如,子网络322可以是mlp,诸如包括256单元的全连接隐藏层、批处理归一化层、激活函数(诸如校正线性激活函数(relu))、以及具有softmax激活的11单元的全连接层的mlp。子网络322可以从子网络320接收拼接作为输入,并且输出语言估计324。语言估计324可以指示被识别为与特定音乐片段相关联的一种或多种语言。如上所述,如果在音乐片段的歌词中使用语言,则该语言可以与特定音乐片段相关联。另外地或替代地,如果语言是在与音乐样本的某个其他特征相关联的地理区域中通常使用的语言,诸如在音乐片段中使用的乐器,则该语言可以与特定音乐片段相关联。附加地或替代地,如果语言与音乐片段的歌曲标题、专辑标题或艺术家名称相关联,则该语言可以与特定音乐片段相关联。
61.如上所述,现有slid模型没有利用由高级slid模型(诸如slid模型300)所利用的所有信息。例如,一些现有slid模型使用音频数据或元数据,但现有sld模型不同时使用这两者。通过利用更多信息(音频数据和元数据两者),高级slid模型(诸如slid模型300)的性能明显好于现有slid模型。图7示出了示例图表,该示例图表描绘了仅在音频数据上训练的slid模型、仅在元数据上训练的slid模型、以及在音频数据和元数据两者上训练的高级slid模型(诸如slid模型300)的性能能力。
62.图表700示出了仅在文本(即,元数据)上训练的示例slid模型的性能。其精度、召回率和f1得分分别为.526/.415/.422(宏平均)和.896/.914/.900(加权平均)。仅在文本上训练的slid模型在很大程度上受到训练集的类不平衡的影响。仅在文本上训练的slid模型会对某些语言产生负面影响。例如,仅在文本上训练的slid模型在标识诸如“韩语”、“日语”、“德语”和“斯洛伐克语”等语言方面完全失败。图表702示出了仅在音频上训练的示例slid模型的性能。精度、召回率和f1得分分别为.387/.248/.275(宏平均)和.852/.884/.857(加权平均)。仅在音频上训练的slid模型会对某些语言产生负面影响。例如,仅在音频上训练的slid模型在标识诸如“其他”、“波兰语”、“意大利语”和“斯洛伐克语”等语言方面完全失败。如图表700和图表702的比较所示,仅在文本上训练的slid模型优于仅在音频上训练的slid模型。然而,这并不表示音频在音乐语言识别方面不如元数据有用。相反,这些结果可以表明,来自元数据输入的信息几乎饱和,并且通过更好地理解与歌曲相关联的音频数据,可以生成改进的slid模型。
63.图表704示出了在音频和元数据两者上训练的示例高级slid模型(诸如slid模型300)的性能。精度、召回率和f1得分分别为.688/.435/.504(宏平均)和.911/.922/.911(加权平均)。图表702示出了与图表700和图表702两者所示的性能相比的性能改进,强调了使
用多模态信息的益处。在语言之中,图表704示出,高级slid模型示出了针对“韩语”、“法语”、“日语”、“德语”和“意大利语”的低召回率。训练集的类不平衡可以是这些低召回率的原因,因为对非置信项的分类可能偏向于“英语”。图表704还示出,与图表700和702相比,f1得分的总体提高使很多语言受益,包括流行语言(诸如“英语”、“西班牙语”、“韩语”和“其他”)、以及一些不太流行的语言(诸如“意大利语”和“斯洛伐克语”)。值得注意的是,仅文本和仅音频的slid模型两者都完全无法标识“斯洛伐克语”64.slid模型300的各种子网络可以用作整个slid模型300中的隐藏层。例如,子网络316处理音频数据并且子网络318处理元数据,并且来自这些子网络中的两个子网络的输出被馈送到子网络320中。子网络320的输出然后被馈送到子网络322中。子网络322的输出是期望的语言识别结果。slid模型300没有被训练以提供中间结果。相反,slid模型300被训练以提供来自整个sld模型300的期望输出。
65.图8描绘了用于训练和应用诸如slid模型300等slid模型的示例过程800。过程800可以例如由图1的音乐语言标识系统114来执行。如上所述,在使用slid模型来识别与音乐相关联的语言之前,需要对其进行训练和测试。为了训练和测试slid模型,可以生成训练数据和测试数据。训练数据和测试数据可以使用不同数据集来生成。在802,收集数据。数据可以从包括音乐样本的数据集中收集。音乐样本中的每个可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。音乐样本中的每个可以与音频数据(即,音频剪辑)和/或元数据相关联。如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声音轨和/或来自音乐样本的器乐音轨。人声音轨可以包括音乐样本的歌词,而器乐音轨可以包括没有任何人声的音乐样本的音频轨道。如果音乐样本与元数据相关联,则元数据可以指示关于音乐样本的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。
66.所收集的数据可以被用于生成可以被用于训练和/或测试slid模型的训练数据和/或测试数据。在804,定义训练示例和/或测试示例。如上所述,slid模型的训练示例可以以各种不同方式生成。例如,训练示例可以使用手动数据输入来手动生成。训练示例可以另外地或替代地使用计算机自动生成。被用于训练slid模型的训练示例可以包括正训练示例、或者正训练示例和负训练示例的组合。用于训练slid模型的训练示例的数目可以变化,但在一个实施例中,超过100,000个训练示例被用于训练sld模型。
67.训练示例可以指示与多个不同音乐样本(诸如在802收集的音乐样本)相关联的一种或多种语言。与特定音乐样本相关联的一种或多种语言可以指示在音乐样本的歌词中使用的一种或多种语言。例如,如果一个音乐样本的特征是一个女人用法语唱歌和一个男人用英语说唱,则该音乐样本可以与法语和英语两者相关联。另外地或替代地,与特定音乐样本相关联的一种或多种语言可以指示在与音乐样本的某个其他特征相关联的地理区域中通用的语言。例如,如果在音乐样本中使用的特定乐器是墨西哥本土的,则与该音乐样本相关联的一种或多种语言可以包括西班牙语,而不管该歌曲的歌词是否是西班牙语。
68.训练示例中的音乐样本中的每个可以与音频数据(即,音频剪辑)和/或元数据相关联。如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声音轨和/或来自音乐样本的器乐音轨。人声音轨可以包括音乐样本的歌词,而器乐音轨可以包括没有任何人声的音乐样本的音轨。如果音乐样本与元数据相关联,则元数据可以指示对于大多数音乐音轨而言存在并且容易访问的任何信息,诸如歌曲标题、专辑名称、艺术家名称
和/或标识号。同样如上所述,用于测试slid的测试示例可以类似于用于训练slid模型的训练示例。例如,每个测试示例可以包括音频数据和/或元数据、以及与各种音乐样本中的每个音乐样本相关联的一种或多种语言。
69.slid模型可以在所生成的训练数据上进行训练。在806,可以训练slid模型以标识与音乐片段相关联的一种或多种语言。所生成的训练示例可以用于训练slid模型。训练示例的音频数据和/或元数据可以与预期输出(即,已经与音乐样本相关联的(多个)语言)配对。通过将音频数据和/或元数据与相应音乐样本中的已知语言配对并且使用这些配对来训练slid模型,slid模型可以学习将音频数据和/或元数据的特定特征与不同语言相关联。
70.在一个实施例中,希望训练slid模型以使得它仍然能够识别与缺少音频数据或元数据的音乐样本相关联的一种或多种语言。为了以这种方式训练slid模型,在生成训练示例时可以使用一种名为dropout的技术。在dropout模块中,在训练示例中使用的音乐样本的某个百分比的音乐样本(诸如5%、10%、30%或任何其他百分比的音乐样本)的音频数据可以被“丢弃”。类似地,在训练示例中使用的音乐样本的某个百分比的音乐样本的元数据也可以被“丢弃”。这表示,在整个训练示例集合中,一定百分比的训练示例将具有零值音频数据,并且一定百分比的训练示例将具有零值元数据。具有零值音频数据的训练示例可以与具有零值元数据的训练示例的不同音乐样本相关联。一定百分比的训练示例(诸如大多数训练示例)可以都不具有零值音频数据或零值元数据(即,对于那些音乐样本,音频数据和元数据都没有被“丢弃”)。以这种方式,可以在训练slid模型的同时模拟缺失模态情况。因此,即使特定音乐片段缺少模态,也可以使用单个slid模型来识别音乐内的语言。
71.slid模型可能需要在大量训练示例或各种不同训练示例上进行训练,然后才能学习到足够的知识来进行准确的语言识别。期望识别准确度水平可以由训练slid模型的实体或个人来确定,并且slid模型可以继续被训练,直到它已经学习到足以以期望准确度水平进行语言识别。为了确定slid模型是否以期望准确度水平进行语言识别,可以测试slid模型。slid模型可以使用所生成的测试数据来测试。在808,可以评估slid模型的语言识别准确度。为了测试slid模型,可以将所生成的测试示例输入到slid模型中,并且可以将slid模型的输出与预期结果进行比较。
72.尽管与训练示例一样,测试示例包括与该音乐样本相关联的一种或多种语言,但在测试期间,该一种或多种语言没有被输入到slid模型中。相反,只有与音乐样本相关联的音频数据和/或元数据可以被输入到slid模型,以查看slid模型识别的哪些语言与音乐样本相关联。识别结果可以与测试示例中包括的信息所指示的语言(即,预期结果)进行比较。
73.如果识别结果与预期结果不匹配,则slid模型可能需要在更多个和/或更多种类的训练示例上进行训练。这个训练和测试过程可以一次又一次地重复,直到slid模型以期望准确度水平产生识别结果。在810,可以确定语言识别准确度是否令人满意。如果语言识别准确度达到或超过期望准确度水平,则其可以是令人满意的。相反,如果语言识别准确度没有达到或超过期望准确度水平,则其可能不能令人满意。如果语言识别准确度不能令人满意,则方法800可以返回802以收集更多数据。可以基于该新收集的数据生成附加的训练示例和/或测试示例,slid模型可以基于这些新的训练示例被进一步训练,并且被重新测试。这个过程可以继续,直到语言识别准确度令人满意。
74.如果语言识别准确度令人满意,则方法800可以进行到812。在812,可以使用经训
练的slid模型来标识音乐片段中的语言。与特定音乐片段相关联的一种或多种语言可以指示在音乐样本的歌词中使用的一种或多种语言。例如,如果音乐片段的特征是一个女人用法语唱歌和一个男人用英语说唱,则该音乐片段可以与法语和英语两者相关联。另外地或替代地,与特定音乐片段相关联的一种或多种语言可以指示在与音乐样本的某个其他特征相关联的地理区域中通用的语言。例如,如果在音乐样本中使用的特定乐器是墨西哥本土的,则与该音乐片段相关联的一种或多种语言可以包括西班牙语,而不管该歌曲的歌词是否是西班牙语。
75.在814,可以存储所标识的语言及其相关联的音乐片段。例如,所标识的语言及其相关联的音乐片段可以存储在数据库(诸如识别数据库126)中。一旦被存储,该信息就可以用于进行歌曲推荐,诸如针对客户端设备132的用户。例如,如果已知用户会说或理解西班牙语,则可以向该用户推荐所存储的与西班牙语相关联的音乐片段。在一个实施例中,用户可以使用诸如客户端设备132上的内容应用134等内容应用来收听所推荐的音乐。
76.图9描绘了用于训练和应用诸如slid模型300等机器学习模型的示例过程900。过程900可以例如由如图1所示的音乐语言标识系统114来执行。如上所述,在使用slid模型来标识与音乐相关联的语言之前,需要对其进行训练。为了训练slid模型,可以生成训练数据,诸如训练示例。用于训练slid模型的训练示例可以以各种不同方式生成。例如,训练示例可以使用手动数据输入来手动生成。另外地或替代地,训练示例可以使用计算机来自动生成。用于训练slid模型的训练示例可以包括正训练示例、或者正训练示例和负训练示例的组合。用于训练slid模型的训练示例的数目可以变化,但在一个实施例中,超过100,000个训练示例用于训练sld模型。
77.在902,可以接收训练数据。训练数据包括指示表示多个音乐样本的音频数据的信息、与多个音乐样本相关联的元数据、以及指示与多个音乐样本中的每个音乐样本相对应的至少一种语言的信息。与特定音乐样本相关联的一种或多种语言可以指示在音乐样本的歌词中使用的一种或多种语言。例如,如果一个音乐样本的特征是一个女人用法语唱歌和一个男人用英语说唱,则该音乐样本可以与法语和英语两者相关联。另外地或替代地,与特定音乐样本相关联的一种或多种语言可以指示在与音乐样本的某个其他特征相关联的地理区域中通用的语言。例如,如果在音乐样本中使用的特定乐器是墨西哥本土的,则与该音乐样本相关联的一种或多种语言可以包括西班牙语,而不管该歌曲的歌词是否是西班牙语。在一个实施例中,每个训练示例可以被分类为多种不同语言中的一种或多种。例如,数据集中可以有46个语言标签,包括但不限于英语、葡萄牙语、西班牙语、韩语、法语、日语、德语、波兰语、意大利语、斯洛伐克语等。
78.音乐样本中的每个可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。音乐样本中的每个可以与音频数据(即,音频剪辑)和/或元数据相关联。如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声音轨和/或来自音乐样本的器乐音轨。人声音轨可以包括音乐样本的歌词,而器乐音轨可以包括没有任何人声的音乐样本的音轨。如果音乐样本与元数据相关联,则元数据可以指示存在的关于音乐样本的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。
79.可以使用训练数据来训练机器学习模型。在904,可以训练机器学习模型以使用训练数据来识别与音乐片段相关联的语言。机器学习模型可以通过将训练数据应用于机器学
习模型直到该模型达到预定识别准确度来训练。将训练数据应用于机器学习模型可以涉及将训练示例的音频数据和/或元数据与预期输出(即,已经与音乐样本相关联的(多个)语言)配对。通过将音频数据和/或元数据与相应音乐样本中的已知语言配对并且使用这些配对来训练机器学习模型,机器学习模型可以学习将音频数据和/或元数据的特定特征与不同语言相关联。
80.在一个实施例中,希望训练机器学习模型以使得它仍然能够识别与缺少音频数据或元数据的音乐样本相关联的一种或多种语言。为了以这种方式训练机器学习模型,在生成训练示例时可以使用一种名为dropout的技术。在dropout模块中,在训练示例中使用的音乐样本的某个百分比的音乐样本(诸如5%、10%、30%或任何其他百分比的音乐样本)的音频数据可以被“丢弃”。类似地,在训练示例中使用的音乐样本的某个百分比的音乐样本的元数据也可以被“丢弃”。这表示,在整个训练示例集合中,一定百分比的训练示例将具有零值音频数据,并且一定百分比的训练示例具有零值元数据。具有零值音频数据的训练示例可以与具有零值元数据的训练示例的不同音乐样本相关联。一定百分比的训练示例(诸如大多数训练示例)可以都不具有零值音频数据或零值元数据(即,对于那些音乐样本,音频数据和元数据都没有被“丢弃”)。以这种方式,可以在训练机器学习模型时模拟缺失模态情况。因此,即使特定音乐片段缺少模态,也可以使用单个机器学习模型来识别音乐内的语言。
81.机器学习模型可能需要在大量训练示例或各种不同训练示例上进行训练,然后才能学习到足够的知识来进行准确的语言识别。期望准确度标识水平可以由训练机器学习模型的实体或个人来确定,并且机器学习模型可以继续被训练,直到它已经学习到足以以期望准确度水平进行语言识别。为了确定机器学习模型是否以期望准确度水平进行语言识别,可以测试机器学习模型,并且可以评估机器学习模型的语言识别准确度。为了测试机器学习模型,可以将测试示例输入到机器学习模型中,并且可以将机器学习模型的输出与预期结果进行比较。
82.一旦经过训练,机器学习模型就可以用于识别与至少一个音乐片段相关联的语言。为了识别与音乐片段相关联的一种或多种语言,可以接收与音乐片段相关联的音频数据和/或元数据。在906,可以接收音乐片段的音频数据或与音乐片段相关联的元数据中的至少一项。音乐片段可以是个人或实体想要基于语言进行分类的音乐片段。音乐片段可以是整首歌曲,也可以是歌曲的一部分,诸如歌曲的30秒部分。音频数据可以包括来自音乐片段的人声音轨和/或来自音乐片段的器乐音轨。人声音轨可以包括音乐片段的歌词,而器乐音轨可以包括没有任何人声的音乐片段的音轨。元数据可以指示关于音乐片段的任何信息,诸如歌曲标题、专辑名称、艺术家名称和/或标识号。
83.在一个实施例中,指示表示音乐片段的音频数据的信息是表示音乐片段的音频数据的提取特征的图像。例如,指示表示音乐片段的音频数据的信息可以是表示音乐样本的音频信号的频率如何随时间变化的梅尔谱图或梅尔频率倒频谱(mfcc)。谱图可以使用任何系统或技术来生成,诸如使用短期傅立叶变换或机器学习模块。在一个实施例中,指示与音乐片段相关联的元数据的信息可以是表示音乐片段的元数据的提取特征的向量。例如,该向量可以是语言概率向量。
84.在908,可以使用经训练的机器学习模型基于所接收的数据来确定与音乐片段相
关联的至少一种语言。与特定音乐片段相关联的一种或多种语言可以指示在音乐样本的歌词中使用的一种或多种语言。例如,如果音乐片段的特征是一个女人用法语唱歌和一个男人用英语说唱,则该音乐片段可以与法语和英语两者相关联。另外地或替代地,与特定音乐片段相关联的一种或多种语言可以指示在与音乐样本的某个其他特征相关联的地理区域中通用的语言。例如,如果在音乐样本中使用的特定乐器是墨西哥本土的,则与该音乐片段相关联的一种或多种语言可以包括西班牙语,而不管该歌曲的歌词是否是西班牙语。
85.确定与音乐片段相关联的至少一种语言可以通过以下方式来实现:基于指示表示音乐片段的音频数据的信息来生成表示音乐片段的音频信号的第一向量,并且基于指示与音乐片段相关联的元数据的信息来生成表示音乐片段的元数据的第二向量。第一向量和第二向量可以被组合或拼接,并且该组合可以用于识别与音乐片段相关联的至少一种语言。然而,如上所述,机器学习模型被训练以识别与音乐片段相关联的一种或多种语言,即使该特定音乐片段存在缺失模态。例如,音乐片段可以不与音频数据或元数据相关联。机器学习模型仍然可以能够标识与该音乐片段相关联的一种或多种语言。
86.与音乐片段相关联的一种或多种语言的识别可以存储在数据库中,诸如存储在识别数据库126中。一旦被存储,该信息就可以用于进行歌曲推荐,诸如针对客户端设备132的用户。例如,如果已知用户会说或理解西班牙语,则可以向该用户推荐所存储的与西班牙语相关联的音乐片段。在一个实施例中,用户可以使用诸如客户端设备132上的内容应用134等内容应用来收听所推荐的音乐。
87.图10描绘了可以在各个方面使用的计算设备。关于图1的示例环境,音乐语言标识系统114、音乐数据库104、训练示例数据库106、识别数据库126或测试数据库128中的一个或多个可以在图10的计算设备1000的实例中实现。图10所示的计算机架构示出了常规服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、pda、电子阅读器、数字蜂窝电话或其他计算节点,并且可以用于执行本文中描述的计算机的任何方面,诸如实现图2、图8或图9中所述的方法。
88.计算设备1000可以包括基板或“母板”,这是一种印刷电路板,很多组件或设备可以通过系统总线或其他电气通信路径连接到该印刷电路板。一个或多个中央处理单元(cpu)1004可以与芯片组1006相结合操作。(多个)cpu 1004可以是执行计算设备1000的操作所需要的算术和逻辑运算的标准可编程处理器。
89.(多个)cpu 1004可以通过区分和改变离散物理状态的开关元件的操纵从一个离散物理状态转变到下一离散物理状态来执行必要的操作。开关元件通常可以包括维持两个二进制状态中的一个的电子电路(诸如触发器)、以及基于一个或多个其他开关元件的状态的逻辑组合来提供输出状态的电子电路(诸如逻辑门)。这些基本开关元件可以被组合以创建更复杂的逻辑电路,包括寄存器、加法器、减法器、算术逻辑单元、浮点单元等。
90.(多个)cpu 1004可以由其他处理单元(诸如(多个)gpu 905)扩充或替换。(多个)gpu 905可以包括专门用于但不一定限于高度并行计算的处理单元,诸如图形和其他可视化相关处理。
91.用户接口可以设置在(多个)cpu 1004与基板上的其余组件和设备之间。该接口可以用于访问用作计算设备1000中的主存储器的随机存取存储器(ram)1008。该接口可以用于访问诸如只读存储器(rom)1020或非易失性ram(nvram)(未示出)等计算机可读存储介质
的接口,该计算机可读存储介质用于存储可以帮助启动计算设备1000以及在各种组件与设备之间传输信息的基本例程。rom 1020或nvram还可以存储根据本文中描述的方面的计算设备1000的操作所必需的其他软件组件。用户接口可以由诸如芯片组1006等一个或多个电气组件提供。
92.计算设备1000可以使用通过局域网(lan)1016到远程计算节点和计算机系统的逻辑连接来在联网环境中操作。芯片组1006可以包括用于通过诸如千兆以太网适配器等网络接口控制器(nic)1022提供网络连接的功能。nic 1022可以能够通过网络1016将计算设备1000连接到其他计算节点。应当理解,多个nic 1022可以存在于计算设备1000中,以将计算设备连接到其他类型的网络和远程计算机系统。
93.计算设备1000可以连接到为计算机提供非易失性存储的存储设备1028。存储设备1028可以存储系统程序、应用程序、其他程序模块和数据,这些已经在本文中进行了更详细的描述。存储设备1028可以通过连接到芯片组1006的存储控制器1024连接到计算设备1000。存储设备1028可以由一个或多个物理存储单元组成。存储控制器1024可以通过串行连接的scsi(sas)接口、串行高级技术连接(sata)接口、光纤通道(fc)接口、或用于在计算机与物理存储单元之间物理连接和传输数据的其他类型的接口与物理存储单元接口。
94.计算设备1000可以通过变换物理存储单元的物理状态以反映所存储的信息来将数据存储在存储设备1028上。物理状态的具体变换可以取决于各种因素和本说明书的不同实现。这样的因素的示例可以包括但不限于用于实现物理存储单元的技术、以及存储设备1028的特征是主存储装置还是辅存储装置等等。
95.例如,计算设备1000可以通过存储控制器1024发出指令以改变磁盘驱动单元内特定位置的磁特性、光学存储单元中特定位置的反射或折射特性、或者固态存储单元中特定电容器、晶体管或其他离散组件的电气特性来将信息存储到存储设备428。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,提供上述示例只是为了便于本说明书。计算设备1000可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来从存储设备1028中读取信息。
96.除了或替代本文中描述的存储设备1028,计算设备1000还可以访问其他计算机可读存储介质以存储和检索信息,诸如程序模块、数据结构或其他数据。本领域技术人员应当理解,计算机可读存储介质可以是提供非暂态数据的存储并且可以由计算设备1000访问的任何可用介质。
97.作为示例而非限制,计算机可读存储介质可以包括易失性和非易失性、暂态计算机可读存储介质和非暂态计算机可读存储介质、以及以任何方法或技术实现的可移动和不可移动介质。计算机可读存储介质包括但不限于ram、rom、可擦可编程rom(“eprom”)、电可擦可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字多功能盘(“dvd”)、高清晰度dvd(“hd-dvd”)、blu-ray或其他光学存储、盒式磁带、磁带、磁盘存储、其他磁存储设备、或者可以用于以非暂态方式存储期望信息的任何其他介质。
98.存储设备(诸如图10所示的存储装置1028)可以存储用于控制计算设备1000的操作的操作系统。操作系统可以包括linux操作系统的一个版本。操作系统可以包括来自microsoft公司的windows server操作系统的一个版本。根据另外的方面,操作系统可以包括unix操作系统的一个版本。还可以使用各种移动电话操作系统,诸如ios和android。应当
理解,也可以使用其他操作系统。存储设备1028可以存储由计算设备1000使用的其他系统或应用程序和数据。
99.存储设备1028或其他计算机可读存储介质也可以用计算机可执行指令进行编码,该指令在被加载到计算设备400中时将计算设备从通用计算系统变换为能够实现本文中描述的各方面的专用计算机。如本文中所述,这些计算机可执行指令通过指定(多个)cpu 1004如何在状态之间转变来变换计算设备1000。计算设备1000可以能够访问存储计算机可执行指令的计算机可读存储介质,该指令在由计算设备1000执行时可以执行关于图2、图8或图9所述的方法。
100.计算设备(诸如图10所示的计算设备1000)还可以包括输入/输出控制器1032,输入/输出控制器1032用于接收和处理来自多个输入设备的输入,诸如键盘、鼠标、触摸板、触摸屏、电子手写笔或其他类型的输入设备。类似地,输入/输出控制器1032可以向显示器提供输出,诸如计算机显示器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出设备。将理解的是,计算设备1000可以并非包括图10所示的所有组件,可以包括图10中未明确示出的其他组件,或者可以使用与图10所示的架构完全不同的架构。
101.如本文中所述,计算设备可以是物理计算设备,诸如图10的计算设备1000。计算节点还可以包括虚拟机主机进程和一个或多个虚拟机实例。计算机可执行指令可以由计算设备的物理硬件通过在虚拟机的上下文中存储和执行的指令的解释和/或执行来间接地执行。
102.本领域技术人员将理解,本文中公开的系统和方法可以经由计算设备来实现,该计算设备可以包括但不限于一个或多个处理器、系统存储器、和将包括处理器在内的各种系统组件耦合到系统存储器的系统总线。在多个处理器的情况下,该系统可以利用并行计算。
103.出于说明的目的,应用程序和其他可执行程序组件(诸如操作系统)在本文中被示出为离散块,尽管人们认识到,这样的程序和组件在不同时间驻留在计算设备的不同存储组件中,并且由计算机的(多个)数据处理器执行。服务软件的实现可以存储在某种形式的计算机可读介质上或通过其传输。所公开的方法中的任何一种都可以通过体现在计算机可读介质上的计算机可读指令来执行。计算机可读介质可以是计算机可以访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块,或其他数据等信息的易失性和非易失性的可移动和不可移动的介质。示例性计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可以用于存储期望信息并且可以由计算机访问的任何其他介质。应用程序等和/或存储介质可以至少部分在远程系统处实现。
104.如说明书和所附权利要求中使用的,除非上下文另有明确规定,否则单数形式“a”、“an”和“the”包括复数引用。范围在本文中可以表示为从“大约”一个特定值和/或到“大约”另一特定值。除非另有明确说明,否则本文中描述的任何方法决不应当被解释为要求以特定顺序执行其步骤。因此,如果方法权利要求实际上没有陈述其步骤所遵循的顺序或者在权利要求或描述中没有以其他方式明确说明步骤将被限制为特定顺序,则在任何方
面都不表示推断顺序。
105.对本领域技术人员来说很清楚的是,在不偏离本范围或精神的情况下,可以进行各种修改和变化。通过考虑本文中公开的说明书和实践,其他实施例对于本领域技术人员将是很清楚的。旨在将说明书和示例仅视为示例性的,真实的范围和精神由以下权利要求指示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1