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

基于音频数据标识音乐属性

文献发布时间:2024-04-18 19:58:30


基于音频数据标识音乐属性

背景技术

音乐分类在理解音乐语义和音乐推荐方面发挥着重要作用。拥有基于较大规模音乐库的音乐推荐服务的行业,对音乐分类有着强烈的需求。然而,由于各种限制,常规的音乐分类技术可能无法满足这些行业的需求。因此,需要的是音乐分类技术的改进。

附图说明

并入本说明书并且构成本说明书的一部分的附图图示了实施例并且与描述一起用于解释方法和系统的原理:

图1是图示用于根据本公开使用的示例系统的示意图。

图2图示了根据本公开可以使用的音乐标注变换器的示例模型。

图3图示了根据本公开可以使用的音乐标注变换器的示例前端。

图4a至图b图示了根据本公开可以使用的用于噪声学生训练的示例过程。

图5图示了根据本公开可以使用的噪声学生训练的示例伪代码。

图6图示了根据本公开可以使用的用于训练和应用音乐标注变换器模型的示例过程。

图7图示了根据本公开可以使用的用于训练音乐标注变换器模型的示例过程。

图8图示了根据本公开可以使用的应用音乐标注变换器模型的示例过程。

图9图示了根据本公开可以使用的应用音乐标注变换器模型的示例过程。

图10至图11图示了描绘不同音乐标注模型的不同性能能力的示例表。

图12图示了描绘不同音乐标注模型的不同性能能力的示例图。

图13图示了描绘根据本公开可以使用的音乐标注变换器模型的性能能力的示例表。

图14图示了根据本公开可以使用的示例计算设备。。

具体实施方式

标识音乐属性以对音乐进行分类对于音乐发现和音乐推荐系统来说是必不可少的。自动的音乐标注是旨在预测对于给定的一段音乐的相关属性(即标签)的分类任务。基于一段音乐的音频特征,经训练的音乐标注模型可以预测关于该段音乐的适当标签,例如流派、情绪、乐器、地区、年代等。

最近,自动音乐标注性能通过具有各种深度架构的卷积神经网络(CNN)而得到大幅改进。然而,当前的音乐标注研究仍然存在一些局限性。例如,用于监督学习的标记的数据数量有限。标记音乐标签非常耗时,并且需要域专业知识来标记高级语义。大规模的数据集,百万首歌曲数据集(MSD),其照字面地包括一百万首歌曲,已经在音乐标注研究中变得流行。在百万首歌曲中,仅约24%的歌曲被标记了前50个音乐标签中的至少一个,并且在当前的音乐标注研究中,MSD中约76%的歌曲被丢弃。此类型的设置,即,少量标记的数据与大量未标记的数据,不仅限于MSD,而且与领域无关地可以在大多数真实世界的数据中找到。再例如,音乐信号是序列数据的形式,但是当前的音乐标注模型对短音频组块(3至5秒长)、密集跨越最大池层和全局池层进行预测。例如,为了预测3分钟歌曲的音乐标注,当前的模型将音频拆分成多个短音频组块并且模型对每个组块进行预测。然后,预测通过多数投票或全局平均池/最大池而被简单地整合。这意味着模型表现得像特征包模型,而不是将音乐表示建模为序列。

为了解决这些问题,本公开引入了利用半监督方法训练的音乐标注变换器(MusicTagging Transformer,MTT)模型。音乐标注变换器模型包括两部分:卷积神经网络(CNN)前端和变换器后端。CNN前端捕获浅卷积层中的本地音频特征。然后,变换器后端使用堆叠的自注意力层暂时总结所提取的特征序列。已经证明,MTT模型优于当前在监督方案下基于CNN的音乐标注模型。

MTT模型可以通过使用噪声学生训练得到进一步改进,这是一种利用标记的数据和未标记的数据两者与数据扩充相结合的半监督方法。大量的未标记数据可以被用于音乐标注技术是非常有意义的。

另外,本公开发起了MSD的新拆分,即,清理的和艺术家层面的拆分(Cleaned andartist-level(C&A)拆分)。C&A拆分可以减轻有噪声的评估(即,不正确的评估)。它还可以将艺术家信息考虑在内,而不会导致过于乐观的评估。通过使用C&A拆分,音乐标注变换器模型可以利用MSD的整个音频数据。

图1图示了其中可以实现本文所描述的系统和方法的示例环境100。环境100包括云网络102和至少一个客户端设备132。云网络102和客户端设备132经由一个或多个网络130进行通信。MTT模型可以包括在客户端设备132或由云网络102托管的音乐属性标识系统114中。

应理解的是,图1仅是说明性的并且可以利用其他实现方式。例如,客户端设备132、音乐属性标识系统114或其他计算设备可以单独使用或组合使用来实现如本公开中所描述的标识音乐属性的技术。还应理解的是,图1所示的网络拓扑已经被大大简化,并且可以利用更多的网络、设备和数据库来互连各种计算系统。

云网络102可以位于数据中心,诸如单个场所,或分布在不同的地理位置(例如,在若干场所处)。云网络102可以经由一个或多个网络130提供服务。网络130可以包括一个或多个公共网络(例如,互联网)和/或一个或多个专用网络。专用网络可以包括无线局域网(WLAN)、局域网(LAN)、广域网(WAN)、蜂窝网络或内联网。网络130可以包括(一个或多个)有线网络和/或(一个或多个)无线网络。例如,网络130可以包括物理链路,诸如同轴电缆链路、双绞线电缆链路、光纤链路、它们的组合等。作为另一个示例,网络130可以包括无线链路,诸如蜂窝链路、卫星链路、Wi-Fi链路等。网络130可以包括多种网络设备,诸如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙、代理设备等。

云网络102可以包括托管多种服务的多个计算节点116。在实施例中,节点116托管音乐属性标识系统114。节点116可以处理与音乐属性标识系统114相关联的任务。多个计算节点116可以被实现为一个或多个计算设备、一个或多个处理器、一个或多个虚拟计算实例、其组合等。可以由一个或多个计算设备来实现多个计算节点116。一个或多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机系统、操作系统、服务器等的仿真。虚拟机可以由计算设备基于虚拟映像和/或定义用于仿真的特定软件(例如,操作系统、专用应用、服务器)的其他数据来加载。随着对不同类型的处理服务的需求改变,不同的虚拟机可以在一个或多个计算设备上被加载和/或终止。管理程序可以被实现为管理同一计算设备上不同虚拟机的使用。

音乐属性标识系统114可以实现本文所描述的许多功能和技术。例如,音乐属性标识系统114可以被配置为标识与音乐相关联的一个或多个属性。音乐属性标识系统114可以与寻求标识与音乐相关联的(一个或多个)属性的实体(诸如音乐发现或音乐推荐平台)相关联。在实施例中,音乐属性标识系统114包括被训练来标识与音乐相关联的一个或多个属性的MTT模型。例如,音乐属性标识系统114可以包括MTT模型,该MTT模型被训练来使用音频信号112a或112b来标识与音乐相关联的一个或多个属性。

在实施例中,音乐属性标识系统114训练MTT模型以标识与音乐相关联的一个或多个属性。音乐属性标识系统114可以使用训练示例来训练MTT模型。用于训练MTT模型的训练示例可以以多种不同的方式生成。例如,可以使用手动数据输入来手动生成训练示例。训练示例可以附加地或备选地使用计算机自动地生成。用于训练MTT模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合。用于训练MTT模型的训练示例的数量可以变化,但在一个实施例中,百万歌曲数据集(MSD)被用来训练MTT模型。

训练示例可以指示与多个不同音乐样本相关联的一个或多个属性。与特定音乐样本相关联的一个或多个属性可以指示该音乐样本的一个或多个属性。例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性。例如,如果音乐样本中使用的特定乐器是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括作为地区的墨西哥。在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性。例如,在数据集中可以有各种属性标记,包括但不限于流派、情绪、乐器、地区、年代等。

音乐样本中的每一个可以是整首歌曲或可以是音频摘录,诸如歌曲的30秒的部分。音乐样本中的每一个音乐样本可以与音频数据(即音频剪辑)和/或标记信息相关联。如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声(acoustic)轨道和/或来自音乐样本的乐器(instrumental)轨道。人声轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何人声的音乐样本的音频轨道。如果音乐样本与标记信息相关联,则标记信息可以指示流派、情绪、乐器、地区、年代等。

作为说明性示例,为了训练MTT模型,音乐属性标识系统114可以从训练示例数据库106接收训练示例118a-b作为输入。应理解的是,训练示例数据库106可以包括数千甚至数百万个训练示例。训练示例118a-b仅用于说明性目的。训练示例118a-b可以包括指示表示多个音乐样本的音频数据的信息。训练示例118a可以附加地包括指示与多个音乐样本相关联的至少一个属性的信息。

在一个示例中,训练示例118a可以是标记的数据;训练示例118a可以包括音频信号120a和至少一个标记的属性(即,标记信息)122a。音频信号120a可以包括与第一音乐样本相关联的音频信号。音频信号120a可以包括与第一音乐样本相关联的人声轨道和/或乐器轨道。至少一个标记的属性122a可以指示与第一音乐样本相关联的一个或多个属性,诸如流派、情绪、乐器、地区、年代等。属性122a可能已经被手动(诸如被收听第一音乐样本的个人)标识。例如,个人可能已经听过第一音乐样本并且认识到第一音乐样本是一段摇滚音乐。然后,个人可以将属性122a标记为流派是摇滚。在另一个示例中,训练示例118b可以是未标记的数据;训练示例118b可以包括音频信号120b,但可以不包括标记信息。音频信号120b可以包括与第二音乐样本相关联的人声轨道和/或乐器轨道。

训练示例118a-b可以被音乐属性标识系统114用来训练MTT模型。为了使用训练示例118a-b训练MTT模型,音乐属性标识系统114可以输入训练示例118a-b并且将输入音频数据与预期输出(即,已经与音乐样本相关联的(一个或多个)属性)配对。通过将输入音频数据与相应音乐样本中的已知属性配对并且使用这些配对来训练MTT模型,MTT模型可以学习将音频数据的特定特征与不同属性相关联。MTT模型可能需要在大量训练示例上进行训练,然后才能学到足够的知识来进行准确的属性识别。期望的识别准确度水平可以由训练MTT模型的实体或个人来确定,并且MTT模型可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性识别。

为了确定MTT模型是否以期望的准确度水平进行属性识别,可以评估和测试MTT模型。在一个示例中,可以使用验证数据集来评估MTT模型。如果MTT模型在验证数据集上没有显示出令人满意的性能,则将使用更多的训练数据来训练MTT模型。如果MTT模型对验证数据集显示出令人满意的性能,则可以使用测试数据集来测试MTT模型。为了评估和测试MTT模型,可以将验证数据和测试数据输入到MTT模型,并且可以将MTT模型的输出与预期结果进行比较。优选地,验证数据集与测试数据集是不同的,因为拆分验证数据集和测试数据集可以避免模型选择过程中的信息泄漏。通过拆分验证数据集和测试数据集,最佳模型可以被选择。所选择的最佳模型可以更好地通用化并且不会过度拟合为测试数据。验证数据集可以是用于评估MTT模型的一组示例,并且测试数据集可以是用于测试MTT模型的另一个组示例。

输入到MTT模型的验证数据(验证示例)和测试数据(测试示例)可以类似于用于训练MTT模型的数据(例如,用于训练MTT模型的标记数据)。例如,一个验证或测试示例可以包括与音乐样本相关联的音频数据。尽管验证或测试示例还包括与该音乐样本相关联的一个或多个属性,但是该一个或多个属性不被输入到MTT模型中。而是,与音乐样本相关联的音频数据可以被输入到MTT模型以查看,MTT模型标识的哪个(哪些)属性与音乐样本相关联。可以将此标识与如验证或测试示例所指示的与音乐样本相关联的一个或多个属性(即,预期结果、标记信息)进行比较。如果使用验证或测试数据的标识结果的某个百分比与它们相应的预期结果(即,标记信息)不匹配,则MTT模型可能需要在更多和/或更大种类的训练示例上进行训练。此训练、评估和测试的过程可以一遍又一遍地重复,直到MTT模型以期望的准确度水平标识属性。

作为说明性实施例,图2图示了表示MTT模型200的结构的示例模型。MTT模型200包括两个部分:CNN前端202和变换器后端204。CNN前端202捕获本地声学特征并且变换器后端204全局性地总结所提取的特征序列。

在一些实施例中,CNN前端202可以对梅尔频谱图输入使用具有残差连接的3×3卷积滤波器。图3图示了描绘MTT模型200的CNN前端202的示例表300。图3概述了3层CNN前端,其中B表示批量大小,C表示卷积通道,F表示梅尔仓的数量,T表示帧的数量,C’表示变换器的注意力通道。CNN前端202不仅可以帮助MTT模型200利用CNN捕获的本地表示,而且还可以降低输入的时间分辨率。在CNN前端202的末端,第二维度和第三维度可以被重新成形为单个维度。因此,CNN的输出可以是短组块音频特征序列,其中组块对应于约0.1秒。短组块音频特征序列可以被输入到变换器后端204。

变换器后端204包括堆叠的多头自注意力层。与在其前端末端使用频率轴线最大池的具有自注意力的卷积神经网络(CNNSA)相比,MTT模型200中的注意力层可以被给予更详细的频谱信息。作为示例而非限制,MTT模型200可以包括4层、256个注意力维度和8个注意力头。在变换器后端204的输入阶段,可以应用位置嵌入并且可以插入特殊的令牌嵌入E[CLS],使得变换器后端204可以执行作为下游任务的序列分类(如图2中所示)。

为了利用未标记的数据,可以通过使用噪声学生训练机制来改进MTT模型。噪声学生训练机制是一种半监督学习方法。图4a图示了用于教师训练的示例过程400。教师训练示例过程400可以使用标记的数据(例如,注释的数据402)来训练教师模型(M1)408。过程400可以包括数据扩充(D)子过程404和短时傅立叶变换(F)子过程406。

注释的数据402可以包括多个音乐样本的音频数据(x1)和指示多个音乐样本的属性的标记信息(y)。注释的数据402可以从包括音乐样本的数据集(例如,百万首歌曲数据集(MSD))收集。音乐样本中的每一个可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的30秒的部分。音频数据可以包括来自音乐样本的声乐轨道和/或来自音乐样本的乐器轨道。声乐轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何声乐的音乐样本的声音轨道。标记信息可以指示关于音乐样本的任何信息,诸如歌曲名称、艺术家姓名、专辑、流派、情绪、乐器、地区、年代等。

为了获得更强的教师模型(M1)408,可以在监督学习方法中使用数据扩充。数据扩充(D)子过程404可以包括任何合适的数据扩充技术,诸如随机裁剪、极性反转、加性噪声、增益控制、高通/低通滤波、延迟、音调偏移和混响。数据扩充可以在噪声学生训练机制中发挥重要作用。可以使用易于集成到PyTorch数据管道的音频扩充库。在一个实施例中,所应用的数据扩充方法可以包括:

(1)极性反转,

(2)k

(3)A∈{-20,1}dB的随机增益,

(4)f

(5)f

(6)t∈{200,500}ms的延迟,

(7)n∈{-7,7}半音的音高偏移,以及

(8)房间大小s∈{0,100}的混响。

每种扩充方法可以以概率p∈{0.3,0.7}独立激活。

短时傅立叶变换(F)子过程406可以通过预处理一段音乐的音频数据(x1)来生成表示该段音乐的音频数据(x1)的图像。表示一段音乐的音频数据(x1)的图像可以是表示音乐样本的音频信号的频率如何随时间变化的梅尔频谱图。在一个实施例中,音频数据(x1)的特征可以被提取到梅尔频谱图中,例如128×512梅尔频谱图中。

教师模型(M1)408是可训练的。教师模型(M1)408可以被训练以标识与一段音乐相关联的至少一个属性(例如,p1:如图4a中所示的标签预测)。教师模型408可以使用标记的数据(例如,其包括音频数据(x1)和标记信息(y)的注释的数据402)来训练。标记信息(y)可以是训练数据中对应该段音乐的手动标记的(一个或多个)属性。可以通过将训练数据应用于教师模型(M1)408来训练教师模型(M1)408,直到该模型达到预定的标识准确度。将训练数据应用于教师模型(M1)408可以涉及将训练示例的音频数据(x1)与预期输出(即,已经与音乐样本相关联的标记信息(y))配对。通过将音频数据(x1)与标记信息(y)配对并且使用这些配对来训练教师模型(M1)408,教师模型(M1)408可以学习将音频数据的特定特征与不同的标记信息相关联。

教师模型(M1)408可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别。期望的准确度识别水平可以由训练教师模型(M1)408的实体或个人来确定,并且教师模型(M1)408可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性标识。为了确定教师模型(M1)408是否正在以期望的准确度水平进行属性标识,可以测试教师模型(M1)408,并且可以评估教师模型(M1)408的属性标识准确度水平。为了测试教师模型(M1)408,可以将测试示例输入到教师模型(M1)408,并且可以将教师模型(M1)408的输出与预期结果进行比较。此训练和测试过程可以一遍又一遍地重复,直到教师模型(M1)408以期望的准确度水平标识属性。

图4b图示了用于学生训练的示例过程410。学生训练示例过程410使用标记的数据(例如,注释的数据402)和未标记的数据(例如,未注释的数据412)两者来训练学生模型(M2)418。过程410可以包括数据扩充(D)子过程414和短时傅立叶变换(F)子过程416。

注释的数据402可以包括多个音乐样本的音频数据(x1)和指示多个音乐样本的属性的标记信息(y)。未注释412可以包括多个音乐样本的音频数据(x2)。未注释412可以不包括标记信息(例如,手动标记的信息)。可以从包括音乐样本的数据集(例如MSD)收集未注释的数据412。音乐样本中的每一个音乐样本可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的30秒的部分。音频数据(x2)可以包括来自音乐样本的声乐轨道和/或来自音乐样本的乐器轨道。声乐轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何声乐的音乐样本的声音轨道。数据扩充(D)子过程414和短时傅立叶变换(F)子过程416可以相应地类似于数据扩充(D)子过程404和短时傅立叶变换(F)子过程406。

在学生训练过程410中,学生模型(M2)418是可训练的。可以使用标记数据(例如注释的数据402)来训练学生模型418。将注释的数据402应用到学生模型(M2)418可以涉及将训练示例的音频数据(x1)与预期输出(即,标记信息(y))配对。通过将音频数据(x1)与标记信息(y)配对并且使用这些配对来训练学生模型(M2)418,学生模型(M2)418可以学习将音频数据(x1)的特定特征与不同的标记信息(y)相关联。

学生模型(M2)418可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该学生模型才能学习到足够的知识来进行准确的属性标识。期望的准确度标识水平可以由训练学生模型(M2)418的实体或个人来确定,并且学生模型(M2)418可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性标识。为了确定学生模型(M2)418是否正在以期望的准确度水平进行属性标识,可以使用标记数据来评估和测试学生模型(M2)418。可以使用验证数据集来评估学生模型(M2)418的属性标识准确度。如果学生模型对验证数据集显示出令人满意的准确度,则可以使用测试数据集来测试MTT模型。为了评估和测试学生模型(M2)418,可以将验证示例或测试示例输入到学生模型(M2)418,并且可以将学生模型(M2)418的输出与预期结果(即,标记数据的标记信息)进行比较。此训练、评估和测试的过程可以一遍又一遍地重复,直到学生模型(M2)418在标记的测试数据集上显示出期望的性能。良好训练的学生模型418可以用作MTT模型来预测任何特定该段音乐的属性。

如图4b中所示,未标记的数据(例如,未注释的数据412)可以由短时傅立叶变换(F)子过程416进行预处理,然后被输入到预训练的教师模型(M1)408。预训练的教师模型可以生成伪标记信息(例如,与未标记的数据相关联)。伪标记信息指示未标记的数据的属性。教师模型(M1)408在学生训练期间是不可训练的。

然后,未标记的数据(例如,未注释的数据412)和指示未标记的数据的属性的伪标记信息可以用于训练学生模型(M2)418。将训练数据应用于学生模型(M2)418可以涉及将训练示例的音频数据(x2)与预期输出(即由预训练的教师模型(M1)408生成的伪标记信息)配对。通过将音频数据(x2)与相应音乐样本中的伪标记信息配对并且使用这些配对来训练学生模型(M2)418,学生模型(M2)418可以学习将音频数据信息的特定特征与不同属性相关联。学生模型(M2)418可以通过将训练数据应用于学生模型(M2)418,直到该模型达到预定的标识准确度而被训练。期望的准确度识别水平可以由训练学生模型(M2)418的实体或个人来确定。在一个实施例中,学生模型(M2)418可以做出与教师模型(M1)408相同的预测。在另一个实施例中,经训练的学生模型(M2)418可以优于教师模型(M1)408。在一些实施例中,良好训练的学生可以用作新的教师模型来训练另一个学生模型以获得甚至更好的表现模型。

作为说明性实施例,图5图示了用于利用标记的数据(例如,注释的数据402)和未标记的数据(未注释的数据412)的噪声学生训练机制的示例伪代码。首先,使用常规的监督学习方法,教师模型T(例如,教师模型408)可以如代码的第1至6行中所示来训练。然后,可以用两种类型的损失来训练学生模型S(例如,学生模型418)。第一损失l

良好训练的学生模型S可能优于教师模型T。此外,可以通过使用学生模型作为新的教师模型并且训练另一个学生模型来重复整个训练过程以获得表现得甚至更好的模型。在另一个示例中,为了更强的教师模型,也可以在监督学习管道中使用数据扩充(对应于代码的第1至6行和第10至11行)。唯一没有数据扩充的管道是对应于代码的第12行的伪标记生成操作。

在一个示例中,学生模型(例如,学生模型418)的大小可以等于或大于教师模型(例如,教师模型408)的大小。在此情况下,训练过程可以被标识为知识扩展(KnowledgeExpansion,KE)。这意味着教师模型中的知识在学生模型中升级了。通过给予学生模型(足够的容量和在噪声方面困难的环境)以学习,可以预期学生模型比教师模型表现得更好。在另一个示例中,学生模型可以被设计成小于教师模型。在此情况下,训练过程可以被标识为知识蒸馏(Knowledge Distillation,KD)。由于较小的模型评估成本较低,因此知识蒸馏(KD)可以部署在功能较弱的硬件(诸如移动设备)上。知识扩展(KE)和知识蒸馏(KD)是互补的。根据用于性能和/或效率的目标,可以执行知识扩展(KE)和/或知识蒸馏(KD)。

图6描绘了用于训练和应用MTT模型(诸如MTT模型200)的示例过程600。可以例如由图1的音乐属性标识系统114来执行过程600。在使用MTT模型来识别与特定的一段音乐相关联的属性之前,需要对其进行训练和测试。为了训练和测试MTT模型,可以生成训练数据和测试数据。训练数据和测试数据可以使用不同的数据集来生成。

在602处,数据被收集。数据可以从包括音乐样本的数据集被收集。在一些实施例中,可以使用具有从用户生成的标签收集的注释的公开可用的MSD。音乐样本中的每一个可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的30秒的部分。一些音乐样本可以是包括音频数据(即音频剪辑)和标记信息的标记的数据。其他音乐样本可以是包括音频数据但不包括标记信息的未标记的数据。音频数据可以包括来自音乐样本的人声轨道和/或来自音乐样本的乐器轨道。人声轨道可以包括音乐样本的歌词,并且乐器轨道可以包括没有任何人声的音乐样本的声音轨道。标记信息可以指示关于音乐样本的任何信息,诸如歌曲名称、艺术家姓名、专辑、流派、情绪、乐器、地区、年代等。

收集的数据可以用于训练、评估和/或测试MTT模型。在604处,训练数据集、验证数据集和测试数据集被定义。在一些实施例中,MSD可以被用于训练、评估和测试MTT模型。MSD可以包括一百万首带有音频特征和标记信息的歌曲。一种方法可以是取最常见的50个标签并且选择具有标签中的至少一个的轨道。这导致242k的歌曲被拆分成训练集、验证集和测试集。此方法被称为常规的MSD拆分。

然而,常规的MSD拆分存在一些问题。例如,由于MSD音乐标签是从用户处收集的,所以它们中的一些噪声严重的并且可能导致有噪声的评估(即,不正确的评估)。此外,音乐项的严格划分需要考虑艺术家信息,因为来自同一艺术家的歌曲和标记经常彼此非常相似。但是常规的MSD拆分没有此类考虑,这导致了训练集与评估集之间的意外信息泄漏。因此,这会导致过分乐观的评估。

为了解决这些问题,在一些实施例中,可以手动清理数据,这意味着清理噪声严重的MSD音乐标注。可以选择使用清理数据中的前50个标签。在其他实施例中,可以使用MSD的新拆分。新的拆分在训练/验证/测试集中不共有任何艺术家,并且新的拆分可以扩展到更多的轨道。此新的拆分可以被称为清理的和艺术家层面的拆分(C&A拆分)。在一个示例中,C&A拆分可以由233k个标记的轨道和516个未标记的轨道组成。C&A拆分可以利用整个MSD音频,尽管剩余的250k轨道被丢弃以避免通过共有艺术家的信息泄漏。

用于MTT模型的训练示例可以以多种不同的方式生成。例如,可以使用手动数据输入来手动生成训练示例。训练示例可以附加地或备选地使用计算机自动地生成。用于训练MTT模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合。用于训练MTT模型的训练示例的数量可以变化,但是在实施例中,使用约一百万个训练示例来训练MTT模型。

训练示例可以指示与多个不同音乐样本(诸如在602处收集的音乐样本)相关联的一个或多个属性。与特定音乐样本相关联的一个或多个属性可以指示该音乐样本的一个或多个属性。例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性。例如,如果在音乐样本中使用的特定乐器(诸如fiesta)是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括作为地区的墨西哥。在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性。在数据集中可以有各种属性标记,包括但不限于流派、情绪、乐器、地区、年代等。

可以在生成的训练数据(包括标记的数据和未标记的数据)上训练MTT模型。在606处,MTT模型可以被训练以标识与一段音乐相关联的一个或多个属性。所生成的训练示例可以用于训练MTT模型。在一个实施例中,一些训练示例的音频数据可以与已经与对应的音乐样本手动关联的标记信息配对。其他训练示例的音频数据可以与由预训练的教师模型生成的伪标记(即,伪标记信息)配对。通过将音频数据与相应音乐样本中的标记信息或伪标记信息配对并且使用这些配对来训练MTT模型,MTT模型可以学习将各种音频数据与特定属性相关联。经训练的MTT模型可以基于该段音乐的音频数据来标识一段音乐的一个或多个属性。

MTT模型可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别。期望的识别准确度水平可以由训练MTT模型的实体或个人来确定,并且MTT模型可以继续被训练,直到它已经学习充分来以期望的准确度水平进行属性识别。为了确定MTT模型是否以期望的准确度水平进行属性识别,MTT模型可以被测试。MTT模型可以使用生成的测试数据来测试。在608处,MTT模型的属性标识准确度可以被评估。为了测试MTT模型,生成的测试示例的音频数据可以被输入到MTT模型中,并且MTT模型的输出可以将与预期结果进行比较。

同时,与训练示例一样,测试示例包括与该音乐样本相关联的一个或多个属性。在测试期间,一个或多个属性不被输入到MTT模型中。而是,仅与音乐样本相关联的音频数据可以被输入到MTT模型以查看MTT模型所识别的哪些属性与音乐样本相关联。识别结果可以与由被包括在测试示例中的标记信息所指示的属性(即,预期结果)进行比较。

如果识别结果与预期结果不匹配,则MTT模型可能需要在更多和/或更大规模种类的训练示例上进行训练。此训练和测试的过程可以一遍又一遍地重复,直到MTT模型以期望的准确度水平产生识别结果。在610处,可以确定属性识别准确度是否令人满意。如果属性识别准确度水平达到或超过期望的准确度水平,则它可能是令人满意的。相反,如果属性识别准确度水平没有达到或超过期望的准确度水平,则它可能不令人满意。如果属性识别准确度不令人满意,则示例过程600可以返回到602以收集更多数据。可以基于此新收集的数据来生成另外的训练示例和/或测试示例。MTT模型可以基于这些新的训练示例被进一步训练,并且被重新测试。此过程可以继续,直到属性识别准确度令人满意。

如果属性识别准确度令人满意,则示例过程600可以进行到612。在612处,一段音乐的一个或多个属性可以使用经训练的MTT模型来标识。例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性。例如,如果在音乐样本中使用的特定乐器(诸如fiesta)是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括墨西哥作为地区。在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性。在数据集中可以有各种属性标记,包括但不限于流派、情绪、乐器、地区、年代等。

在614处,所标识的属性及其相关联的音乐片段可以被存储。例如,所标识的属性及其相关联的音乐片段可以存储在数据库(诸如标识数据库126)中。一旦被存储,此信息可以被用于诸如为客户端设备132的用户进行歌曲推荐。例如,如果已知用户喜欢摇滚音乐,则可以向该用户推荐与摇滚音乐的流派属性相关联的存储的音乐片段。在一个实施例中,用户可以使用内容应用(诸如客户端设备132上的内容应用134)来收听推荐的音乐。

图7描绘了用于使用噪声学生训练机制来训练机器学习模型(诸如MTT模型200)的示例过程700。示例过程700可以例如由如图1中所示的音乐属性标识系统114来执行。

为了训练MTT模型,训练数据,诸如训练示例可以被生成。用于训练MTT模型的训练示例可以以多种不同的方式生成。例如,可以使用手动数据输入来手动生成训练示例。训练示例可以附加地或备选地使用计算机自动地生成。用于训练MTT模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合。

在702处,教师模型(例如教师模型408)使用标记的数据的至少一部分而被训练。标记的数据包括多个音乐样本的音频数据以及指示对应于多个音乐样本中的每个音乐样本的至少一个属性的标记信息。多个音乐样本的属性包括流派、情绪、乐器、地区、年代等。

教师模型可以被训练以标识与一段音乐相关联的至少一个属性。可以通过将训练数据应用于教师模型来训练教师模型,直到该模型达到预定的识别准确度。将训练数据应用于教师模型可以涉及将训练示例的音频数据与预期输出(即,已经与音乐样本相关联的标记信息)配对。通过将音频数据与相应音乐样本中的已知标记信息配对并且使用这些配对来训练教师模型,教师模型可以学习将音频数据与特定属性相关联。

教师模型可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别。期望的准确度识别水平可以由训练教师模型的实体或个人来确定,并且教师模型可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性识别。为了确定教师模型是否正在以期望的准确度水平进行属性识别,可以测试教师模型,并且可以评估教师模型的属性识别准确度水平。为了测试教师模型,可以将测试示例输入到教师模型,并且可以将教师模型的输出与预期结果进行比较。对于更强的教师模型,可以利用数据扩充。

在704处,伪标记信息通过将经训练的教师模型应用于未标记的数据的至少一部分而被生成,其中伪标记信息指示未标记的数据的至少一部分的属性。伪标记方法可能能够使用未标记的样本来学习数据的底层结构。伪标记方法可以通过使用一小组标记的数据和大量未标记的数据来提高模型的性能。硬标记和软标记都可以用于伪标记。

在师生训练过程中,学生可以模仿教师的行为。在706处,学生模型可以使用标记的数据的至少一部分、未标记的数据的至少一部分以及指示未标记的数据的至少一部分的属性的伪标记信息而被训练。学生模型可以用两种类型的损失来训练。第一损失可能来自具有为教师模型所做的标记的数据的典型的监督方法。第二损失可能来自未标记的输入和由教师模型生成的对应伪标记。学生模型的大小可以等于或小于教师模型的大小。学生模型也可以通过应用数据扩充来扩充数据集。在一个实施例中,学生模型可以做出与教师模型相同的预测。在另一个实施例中,经训练的学生模型可以优于教师模型。此外,可以通过使用已训练的学生模型作为新的教师模型以训练另一个学生模型来重复整个训练过程以获得表现得甚至更好的模型。

可以应用经训练的MTT模型来标识与音乐相关联的一个或多个属性。图8图示了使用经训练的MTT模型来标识与音乐(诸如图1中图示的音乐108)相关联的一个或多个属性的示例过程800。在实施例中,经训练的MTT模型可以是如图1中所示的音乐属性标识系统114的一部分。经训练的MTT模型可能已经使用类似于上面所描述的过程进行了训练。

在802处,与一段音乐相关联的音频数据可以被接收。该段音乐可以是个人或实体想要基于其属性进行分类的一段音乐。该段音乐可以是整首歌曲或可以是歌曲的一部分,诸如歌曲的30秒的部分。音频数据可以包括来自该段音乐的人声轨道和/或来自该段音乐的乐器轨道。人声轨道可以包括该段音乐的歌曲词,并且乐器轨道可以包括没有任何人声的该段音乐的声音轨道。

示例过程800可以通过在804处应用数据扩充来扩充数据集。数据扩充可以显著扩充MTT模型可用数据的多样性,而无需实际收集新数据。数据扩充可以包括任何合适的数据扩充技术,诸如随机裁剪、极性反转、加性噪声、增益控制、高通/低通滤波、延迟、音调偏移、混响等等。

示例过程800可以通过在806处使用短时傅立叶变换并且在807处使用梅尔尺度滤波器组来生成表示该段音乐的音频数据的图像。在一个实施例中,表示一段音乐的音频数据的图像可以是表示音乐样本的音频信号的频率如何随时间变化的梅尔频谱图(例如,128×512梅尔频谱图)。

MTT模型808可以包括卷积神经网络(CNN)810和变换器812。CNN 810可以应用于表示该段音乐的音频数据的图像,并且输出从表示该段音乐的音频数据的图像中提取的特征序列。在实施例中,CNN 810可以在梅尔频谱图输入上使用具有残差连接的3×3卷积滤波器。在CNN 810的末端,第二维度和第三维度可以被重新成形为单个维度。作为示例而非限制,CNN 810的输出可以是短组块音频特征序列,其中组块对应于约0.1秒。短组块音频特征序列可以被输入到变换器812。变换器812可以包括堆叠的多头自注意力层。在一个实施例中,变换器812可以选择4层、256个注意力维度和8个注意力头。变换器812可以应用于从表示该段音乐的音频数据的图像中提取的特征序列,并且在814处输出对该段音乐的至少一个属性的预测。

图9描绘了用于应用经训练的机器学习模型(诸如MTT模型200)的示例过程900。可以例如由如图1中所示的音乐属性标识系统114来执行过程900。

经训练的MTT模型可以用于标识与至少一段音乐相关联的属性。在902处,一段音乐的音频数据可以被接收以标识与该段音乐相关联的一个或多个属性。该段音乐可以是个人或实体想要基于其(一个或多个)属性进行分类的一段音乐。该段音乐可以是整首歌曲或可以是歌曲的一部分,诸如歌曲的30秒的部分。音频数据可以包括来自该段音乐的人声轨道和/或来自该段音乐的乐器轨道。人声轨道可以包括该段音乐的歌曲词,并且乐器轨道可以包括没有任何人声的该段音乐的声音轨道。

在904处,表示该段音乐的音频数据的图像可以通过预处理该段音乐的音频数据而被生成。在实施例中,表示一段音乐的音频数据的图像可以是梅尔频谱图,例如128×512梅尔频谱图,或表示音乐样本的音频信号的频率如何随时间变化的梅尔频率倒谱(MFCC)。可以使用任何系统或技术(诸如使用短期傅立叶变换或机器学习模块)生成频谱图。在实施例中,短时傅立叶变换可以通过预处理该段音乐的音频数据来生成表示该段音乐的音频数据的图像。

在906处,该段音乐的至少一个属性可以使用经训练的模型(例如,经训练的MTT模型)而被确定。经训练的MTT模型可以包括卷积神经网络和变换器。该段音乐可以基于所确定的至少一个属性而被分类。至少一个确定的属性可以包括例如流派、情绪、乐器、地区、年代等等。

在908处,卷积神经网络可以被应用在表示该段音乐的音频数据的图像上,并且输出从表示该段音乐的音频数据的图像提取的特征序列。在实施例中,卷积神经网络可以在梅尔频谱图输入上使用具有残差连接的3×3卷积滤波器。在卷积神经网络的末端,第二维度和第三维度可以被重新成形为单个维度。作为示例而非限制,卷积神经网络的输出可以是短组块音频特征序列,其中组块可以对应于约0.1秒。短组块音频特征序列可以被输入到经训练的MTT模型的变换器。

在910处,变换器可以被应用在从表示该段音乐的音频数据的图像中提取的特征序列上,并且输出该段音乐的至少一个属性的预测。变换器可以包括堆叠的多头自注意力层。在一个实施例中,变换器可以包括4层、256个注意力维度和8个注意力头。

与音乐片段相关联的一个或多个属性的标识可以存储在数据库中,诸如存储在图1中的标识数据库126中。一旦被存储,此信息可以被用于诸如为客户端设备132的用户进行歌曲推荐。例如,如果已知用户喜欢摇滚音乐,则可以向该用户推荐被分类为摇滚音乐的存储的音乐片段。在实施例中,用户可以使用内容应用(诸如客户端设备132上的内容应用134)来收听推荐的音乐。

音乐标注模型通常使用接收器操作特征曲线下面积(ROC-AUC)进行评估。然而,ROC-AUC报告的结果可能过于乐观,数据严重失真。在一些实施例中,ROC-AUC和精确召回曲线下面积(PR-AUC)两者都可以用作主要评估度量来评估本公开中的音乐标注模型的性能。图10图示了描绘了使用用于常规的前50个音乐标注拆分的性能比较示例表1000。在当前系统与MTT模型之间进行性能比较。

在表1000中,FCN表示完全卷积网络。Musicnn表示一组预训练的深度卷积神经网络以用于音乐音频标签。样本水平表示样本水平深度卷积神经网络。SE表示挤压和激励。CRNN表示卷积递归神经网络。CNNSA表示具有自注意力的卷积神经网络。CNN表示卷积神经网络。ResNet表示残差网络。变换器表示MTT模型。DA是用于数据扩充的缩写。§和

如表1000中所示,当前很多模型的ROC-AUC和PR-AUC已经相应地低于0.89和0.33。相比之下,MTT模型优于当前的模型,包括FCN、Musicnn、样本水平、样本水平+SE、CRNN、cnnSA、谐波CNN、短组块CNN和短组块ResNet。这种改进,尤其是PR-AUC的改进,是不可忽视的。当数据扩充应用于MTT模型时,改进变得更大。

MTT模型的前端接受一系列组块。组块中的每一个表示约0.1秒的短信号持续时间。尽管0.1秒对于单独表示音乐特征来说很短,但是使用组块的序列的方法及其结果可能意味着MTT模型的后端可以扮演序列特征提取器的角色,而不是简单的特征包集合。这可能是MTT模型的一个重要方面,因为序列建模可能是自注意力机制的最佳选择。

同时,表1000示出数据扩充也可能有助于ROC-AUC和PR-AUC的改进。如图10中所示,在使用没有数据扩充的MTT模型时,ROC-AUC为0.8916,并且PR-AUC为0.3358。在MTT模型中引入数据扩充后,ROC-AUC和PR-AUC相应地提高到0.8972和0.3479。数据扩充带来的改进分别为0.0056ROC-AUC和0.0119PR-AUC。MTT模型实现的改进比当前不同架构选择实现的许多改进更显著。这可能强调在开发音乐标注模型时应考虑数据扩充。

图11图示了描绘了使用具有各种配置的C&AMSD拆分的性能比较的示例表1100。在表1100中。ResNet表示短组块ResNet。变换器表示MTT模型。DA表示数据扩充。KE和KD分别表示知识扩展和知识蒸馏。§和

对于短组块ResNet和MTT模型两者,当数据扩充和噪声学生训练(知识扩展)被累积应用时,可以观察到持续的改进。例如,如表1100中所示,变换器、变换器+DA、变换器+DA+KE的ROC-AUC值相应地为0.9188、0.9191、0.9204。这些值示出了DA和KE的持续改进。这可能指示,对于短组块ResNet和MTT模型这两种架构,数据集的大小可能是限制模型性能的因素。表1100还示出了具有较小参数的学生模型(具有DA和KD的模型)可能比较大模型(即,具有DA和KE的模型)具有更好的性能。如果可以使用更大且具有更多样化数据的更丰富的数据集来训练模型,则这可以解释得更清楚。当足够合适的数据集可用时,在即将到来的研究中,可以用显著更丰富的数据集来训练模型。

图12图示了描绘不同输入长度的性能比较的示例图1200。在图1200中,变换器表示MTT模型,ResNet表示短组块ResNet。用不同的输入长度训练MTT模型和短组块ResNet两者以访问MTT模型处理长序列的能力。

如图表1200中所示,在两个度量上,随着音频输入变长,短组块ResNet显示出明显的性能下降。这可能指示短组块ResNet中的全局最大池可能不完全适合长信号。同时,MTT模型总体显示出一致的性能。例外是当输入长度为30秒时。发生性能下降的原因可能是模型无法利用随机裁剪数据扩充,因为30秒是MSD预览的完整长度。总的来说,MTT模型优于短组块ResNet。

图13图示了描绘了具有不同宽度和深度的注意力层的MTT性能的示例表1300。在表1300中,当注意力通道具有128和256的宽度并且它们的深度为4层和8层时,MTT模型可以实现最佳性能。这些最佳参数可能取决于数据集。一般来说,如果提供大量的训练数据,则较大的网络结构可以表现得更好。

图14描绘了可以用于各个方面的计算设备。关于图1的示例环境,音乐属性标识系统114、音乐数据库104、训练示例数据库106、标识数据库126或测试数据库128中的一者或多者可以在图14的计算设备1400的实例中实现。图14中示出的计算机架构示出了常规的服务器计算机、工作站、台式计算机、膝上型计算机、平板计算机、网络设备、PDA、电子阅读器、数字蜂窝电话或其他计算节点,并且可以用于执行本文所描述的计算机的任何方面(诸如用于实现图6至图9中描述的方法)。

计算设备1400可以包括作为印刷电路板的基板或“主板”,多个部件或设备可以通过系统总线或其他电通信路径连接到该基板或“主板”。一个或多个中央处理单元(CPU)1404可以结合芯片组1406操作。(一个或多个)CPU 1404可以是用于执行计算设备1400的操作所必需的算术和逻辑运算的标准可编程处理器。

(一个或多个)CPU 1404可以通过操纵区分并且改变这些状态的开关元件从一个离散物理状态转变到下一个物理状态来执行必要的操作。开关元件一般可以包括保持两个二进制状态中的一个的电子电路(诸如触发器),以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路(诸如逻辑门)。这些基本开关元件可以被组合以创建更复杂的逻辑电路,包括寄存器、加法器-减法器、算术逻辑单元、浮点单元等。

(一个或多个)CPU 1404可以用诸如(一个或多个)GPU的其他处理单元来扩充或替换。(一个或多个)GPU可以包括专用于但不一定限于高度并行计算(诸如图形和其他可视化相关处理)的处理单元。

可以在(一个或多个)CPU 1404和基板上的剩余部件与设备之间提供用户接口。该接口可以用于访问用作计算设备1400中的主存储器的随机存取存储器(RAM)1408。该接口可以用于访问计算机可读存储介质(诸如只读存储器(ROM)1420或非易失性RAM(NVRAM)(未示出))以用于存储可帮助启动计算设备1400并且在各种部件与设备之间传送信息的基本例程。ROM 1420或NVRAM也可以存储根据本文所描述的各方面的用于计算设备1400的操作所必需的其他软件部件。可以由一个或多个电子部件(诸如芯片组1406)来提供用户接口。

计算设备1400可以使用通过局域网(LAN)到远程计算节点和计算机系统的逻辑连接在网络化环境中操作。芯片组1406可以包括用于通过网络接口控制器(NIC)1422(诸如千兆以太网适配器)提供网络连接的功能。NIC 1422能够通过网络将计算设备1400连接到其他计算节点。应理解的是,计算设备1400中可以存在多个NIC 1422,将计算设备连接到其他类型的网络和远程计算机系统。

计算设备1400可以连接到为计算机提供非易失性存储的存储设备1428。存储设备1428可以存储已经在本文中更详细地描述的系统程序、应用、其他程序模块和数据。存储设备1428可以通过连接到芯片组1406的存储控制器1424连接到计算设备1400。存储设备1428可以由一个或多个物理存储单元组成。存储控制器1424可以通过串行附接SCSI(SAS)接口、串行高级技术附件(SATA)接口、光纤通道(FC)接口或用于在计算机与物理存储单元之间物理连接和传送数据的其他类型的接口与物理存储单元对接。

计算设备1400可以通过变换物理存储单元的物理状态来反映所存储的信息,从而将数据存储在存储设备1428上。物理状态的具体变换可能取决于各种因素和本描述的不同实现方式。这些因素的示例可以包括但不限于,用于实现物理存储单元的技术以及存储设备1428是否被表征为主存储器或辅助存储器等。

例如,计算设备1400可以通过经由存储控制器1424发出指令来将信息存储到存储设备1428以改变磁盘驱动单元中特定位置的磁特性、光存储单元中特定位置的反射或折射特性、或固态存储单元中特定电容器、晶体管或其他分立部件的电特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于本描述。计算设备1400可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来从存储设备1428读取信息。

除了本文所描述的存储设备1428之外或作为其替换,计算设备1400可以访问其他计算机可读存储介质(诸如程序模块、数据结构或其他数据)来存储和检索信息。本领域技术人员应理解的是,计算机可读存储介质可以是提供非暂态数据的存储并且可以由计算设备1400访问的任何可用介质。

作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、瞬态计算机可读存储介质和非瞬态计算机可读存储介质,以及可移除介质和不可移除介质。计算机可读存储介质包括但不限于可以用于以非暂态方式存储期望信息的RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、快闪存储器或其他固态存储技术、光盘ROM(“CD-ROM”)、数字多功能盘(“DVD”)、高清晰度DVD(“HD-DVD”)、BLU射线或其他光存储、磁带盒、磁带、磁盘存储、其他磁存储设备或任何其他介质。

存储设备(诸如图14中描绘的存储设备1428)可以存储用于控制计算设备1400的操作的操作系统。操作系统可以包括LINUX操作系统的版本。操作系统可以包括来自微软公司的WINDOWS SERVER操作系统的版本。根据另外的方面,操作系统可以包括UNIX操作系统的版本。也可以使用各种移动电话操作系统,诸如IOS和ANDROID。应理解的是,也可以利用其他操作系统。存储设备1428可以存储由计算设备1400使用的其他系统或应用和数据。

存储设备1428或其他计算机可读存储介质也可以用计算机可执行指令来编码,该计算机可执行指令在被加载到计算设备400中时,将计算设备从通用计算系统变换成能够实现本文所描述的各方面的专用计算机。如本文所描述,这些计算机可执行指令通过指定(一个或多个)CPU 1404如何在状态之间转换来变换计算设备1400。计算设备1400可以访问存储计算机可执行指令的计算机可读存储介质,当由计算设备1400执行时,可以执行关于图6至图9描述的方法。

计算设备(诸如图14中描绘的计算设备1400)还可以包括输入/输出控制器1432以用于接收和处理来自多个输入设备(诸如键盘、鼠标、触摸板、触摸屏、电子指示笔或其他类型的输入设备)的输入。类似地,输入/输出控制器1432可以向显示器(诸如计算机监测器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出设备)提供输出。应理解的是,计算设备1400可以不包括图14中示出的所有部件,可以包括图14中未明确示出的其他部件,或可以利用与图14中示出的架构完全不同的架构。

如本文所描述的,计算设备可以是物理计算设备,诸如图14的计算设备1400。计算节点还可以包括虚拟机主机进程和一个或多个虚拟机实例。计算机可执行指令可以由计算设备的物理硬件通过解释和/或执行在虚拟机的上下文中存储和执行的指令来间接执行。

本领域技术人员应理解的是,本文公开的系统和方法可以经由计算设备来实现,该计算设备可以包括但不限于一个或多个处理器、系统存储器以及将包括处理器在内的各种系统部件耦合到系统存储器的系统总线。在多个处理器的情况下,系统可以利用并行计算。

出于说明的目的,应用和诸如操作系统的其他可执行程序部件在本文被示为离散的块,尽管认识到这些程序和部件在不同时间驻留在计算设备的不同存储部件中,并且由计算机的(一个或多个)数据处理器执行。服务软件的实现可以存储在某种形式的计算机可读介质上或通过该某种形式的计算机可读介质传输。所公开的方法中的任一个都可以由包括在计算机可读介质上的计算机可读指令执行。计算机可读介质可以是可以由计算机访问的任何可用介质。作为示例而不意味着限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息。示例性计算机存储介质包括但不限于RAM、ROM、EEPROM、快闪存储器或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可以用于存储期望信息并且可以由计算机访问的任何其他介质。应用等和/或存储介质可以至少部分地在远程系统处实现。

如说明书和所附权利要求中所用,除非上下文中另有明确指示,否则单数形式“一”、“一个”和“该”包括复数指示物。范围在本文中可以表示为从“约”一个特定值,和/或到“约”另一个特定值。除非另有明确说明,否则决不意味着本文阐述的任何方法都被解释为要求其步骤以特定顺序执行。因此,当方法权利要求实际上没有叙述其步骤遵循的顺序或在权利要求或说明书中没有以其他方式具体说明这些步骤将限于特定顺序时,决不意味着该顺序可以从任何方面推断。

对于本领域技术人员来说显而易见的是,在不脱离范围或精神的情况下可以进行各种修改和变化。考虑到本文公开的说明书和实践,其他实施例对于本领域技术人员来说将是显而易见的。说明书和示例仅被认为是示例性的,真正的范围和精神由所附权利要求来指示。

相关技术
  • 基于多屏用户行为数据的人员属性标识方法
  • 基于属性数据的二次雷达多层级目标识别方法
技术分类

06120116502521