基于音频数据标识音乐属性的制作方法

文档序号:36401868发布日期:2023-12-16 06:21阅读:36来源:国知局
基于音频数据标识音乐属性的制作方法
基于音频数据标识音乐属性


背景技术:

1.音乐分类在理解音乐语义和音乐推荐方面发挥着重要作用

拥有基于较大规模音乐库的音乐推荐服务的行业,对音乐分类有着强烈的需求

然而,由于各种限制,常规的音乐分类技术可能无法满足这些行业的需求

因此,需要的是音乐分类技术的改进

附图说明
2.并入本说明书并且构成本说明书的一部分的附图图示了实施例并且与描述一起用于解释方法和系统的原理:
3.图1是图示用于根据本公开使用的示例系统的示意图

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

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

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

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

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

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

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

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

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

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

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

15.图
14
图示了根据本公开可以使用的示例计算设备
。。
具体实施方式
16.标识音乐属性以对音乐进行分类对于音乐发现和音乐推荐系统来说是必不可少的

自动的音乐标注是旨在预测对于给定的一段音乐的相关属性
(
即标签
)
的分类任务

基于一段音乐的音频特征,经训练的音乐标注模型可以预测关于该段音乐的适当标签,例如流派

情绪

乐器

地区

年代等

17.最近,自动音乐标注性能通过具有各种深度架构的卷积神经网络
(cnn)
而得到大幅改进

然而,当前的音乐标注研究仍然存在一些局限性

例如,用于监督学习的标记的数据数量有限

标记音乐标签非常耗时,并且需要域专业知识来标记高级语义

大规模的数据集,百万首歌曲数据集
(msd)
,其照字面地包括一百万首歌曲,已经在音乐标注研究中变得流行

在百万首歌曲中,仅约
24
%的歌曲被标记了前
50
个音乐标签中的至少一个,并且在当前的音乐标注研究中,
msd
中约
76
%的歌曲被丢弃

此类型的设置,即,少量标记的数据与大量未标记的数据,不仅限于
msd
,而且与领域无关地可以在大多数真实世界的数据中找到

再例如,音乐信号是序列数据的形式,但是当前的音乐标注模型对短音频组块
(3
至5秒长
)、
密集跨越最大池层和全局池层进行预测

例如,为了预测3分钟歌曲的音乐标注,当前的模型将音频拆分成多个短音频组块并且模型对每个组块进行预测

然后,预测通过多数投票或全局平均池
/
最大池而被简单地整合

这意味着模型表现得像特征包模型,而不是将音乐表示建模为序列

18.为了解决这些问题,本公开引入了利用半监督方法训练的音乐标注变换器
(music tagging transformer

mtt)
模型

音乐标注变换器模型包括两部分:卷积神经网络
(cnn)
前端和变换器后端
。cnn
前端捕获浅卷积层中的本地音频特征

然后,变换器后端使用堆叠的自注意力层暂时总结所提取的特征序列

已经证明,
mtt
模型优于当前在监督方案下基于
cnn
的音乐标注模型

19.mtt
模型可以通过使用噪声学生训练得到进一步改进,这是一种利用标记的数据和未标记的数据两者与数据扩充相结合的半监督方法

大量的未标记数据可以被用于音乐标注技术是非常有意义的

20.另外,本公开发起了
msd
的新拆分,即,清理的和艺术家层面的拆分
(cleaned and artist-level(c&a)
拆分
)。c&a
拆分可以减轻有噪声的评估
(
即,不正确的评估
)。
它还可以将艺术家信息考虑在内,而不会导致过于乐观的评估

通过使用
c&a
拆分,音乐标注变换器模型可以利用
msd
的整个音频数据

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


22.应理解的是,图1仅是说明性的并且可以利用其他实现方式

例如,客户端设备
132、
音乐属性标识系统
114
或其他计算设备可以单独使用或组合使用来实现如本公开中所描述的标识音乐属性的技术

还应理解的是,图1所示的网络拓扑已经被大大简化,并且可以利用更多的网络

设备和数据库来互连各种计算系统

23.云网络
102
可以位于数据中心,诸如单个场所,或分布在不同的地理位置
(
例如,在若干场所处
)。
云网络
102
可以经由一个或多个网络
130
提供服务

网络
130
可以包括一个或多个公共网络
(
例如,互联网
)

/
或一个或多个专用网络

专用网络可以包括无线局域网
(wlan)、
局域网
(lan)、
广域网
(wan)、
蜂窝网络或内联网

网络
130
可以包括
(
一个或多个
)
有线网络和
/

(
一个或多个
)
无线网络

例如,网络
130
可以包括物理链路,诸如同轴电缆链路

双绞线电缆链路

光纤链路

它们的组合等

作为另一个示例,网络
130
可以包括无线链路,诸如蜂窝链路

卫星链路
、wi-fi
链路等

网络
130
可以包括多种网络设备,诸如路由器

交换机

多路复用器

集线器

调制解调器

网桥

中继器

防火墙

代理设备等

24.云网络
102
可以包括托管多种服务的多个计算节点
116。
在实施例中,节点
116
托管音乐属性标识系统
114。
节点
116
可以处理与音乐属性标识系统
114
相关联的任务

多个计算节点
116
可以被实现为一个或多个计算设备

一个或多个处理器

一个或多个虚拟计算实例

其组合等

可以由一个或多个计算设备来实现多个计算节点
116。
一个或多个计算设备可以包括虚拟化计算实例

虚拟化计算实例可以包括虚拟机,诸如计算机系统

操作系统

服务器等的仿真

虚拟机可以由计算设备基于虚拟映像和
/
或定义用于仿真的特定软件
(

如,操作系统

专用应用

服务器
)
的其他数据来加载

随着对不同类型的处理服务的需求改变,不同的虚拟机可以在一个或多个计算设备上被加载和
/
或终止

管理程序可以被实现为管理同一计算设备上不同虚拟机的使用

25.音乐属性标识系统
114
可以实现本文所描述的许多功能和技术

例如,音乐属性标识系统
114
可以被配置为标识与音乐相关联的一个或多个属性

音乐属性标识系统
114
可以与寻求标识与音乐相关联的
(
一个或多个
)
属性的实体
(
诸如音乐发现或音乐推荐平台
)
相关联

在实施例中,音乐属性标识系统
114
包括被训练来标识与音乐相关联的一个或多个属性的
mtt
模型

例如,音乐属性标识系统
114
可以包括
mtt
模型,该
mtt
模型被训练来使用音频信号
112a

112b
来标识与音乐相关联的一个或多个属性

26.在实施例中,音乐属性标识系统
114
训练
mtt
模型以标识与音乐相关联的一个或多个属性

音乐属性标识系统
114
可以使用训练示例来训练
mtt
模型

用于训练
mtt
模型的训练示例可以以多种不同的方式生成

例如,可以使用手动数据输入来手动生成训练示例

训练示例可以附加地或备选地使用计算机自动地生成

用于训练
mtt
模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合

用于训练
mtt
模型的训练示例的数量可以变化,但在一个实施例中,百万歌曲数据集
(msd)
被用来训练
mtt
模型

27.训练示例可以指示与多个不同音乐样本相关联的一个或多个属性

与特定音乐样本相关联的一个或多个属性可以指示该音乐样本的一个或多个属性

例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性

例如,如果音乐样本中使用的特定乐器是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括作为地区的墨西哥

在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性

例如,在数据集中可以有各种属性标记,包括但不限于流派

情绪

乐器

地区

年代等

28.音乐样本中的每一个可以是整首歌曲或可以是音频摘录,诸如歌曲的
30
秒的部分

音乐样本中的每一个音乐样本可以与音频数据
(
即音频剪辑
)

/
或标记信息相关联

如果音乐样本与音频数据相关联,则音频数据可以包括来自音乐样本的人声
(acoustic)
轨道和
/
或来自音乐样本的乐器
(instrumental)
轨道

人声轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何人声的音乐样本的音频轨道

如果音乐样本与标记信息相关联,则标记信息可以指示流派

情绪

乐器

地区

年代等

29.作为说明性示例,为了训练
mtt
模型,音乐属性标识系统
114
可以从训练示例数据库
106
接收训练示例
118a-b
作为输入

应理解的是,训练示例数据库
106
可以包括数千甚至数百万个训练示例

训练示例
118a-b
仅用于说明性目的

训练示例
118a-b
可以包括指示表示多个音乐样本的音频数据的信息

训练示例
118a
可以附加地包括指示与多个音乐样本相关联的至少一个属性的信息

30.在一个示例中,训练示例
118a
可以是标记的数据;训练示例
118a
可以包括音频信号
120a
和至少一个标记的属性
(
即,标记信息
)122a。
音频信号
120a
可以包括与第一音乐样本相关联的音频信号

音频信号
120a
可以包括与第一音乐样本相关联的人声轨道和
/
或乐器轨道

至少一个标记的属性
122a
可以指示与第一音乐样本相关联的一个或多个属性,诸如流派

情绪

乐器

地区

年代等

属性
122a
可能已经被手动
(
诸如被收听第一音乐样本的个人
)
标识

例如,个人可能已经听过第一音乐样本并且认识到第一音乐样本是一段摇滚音


然后,个人可以将属性
122a
标记为流派是摇滚

在另一个示例中,训练示例
118b
可以是未标记的数据;训练示例
118b
可以包括音频信号
120b
,但可以不包括标记信息

音频信号
120b
可以包括与第二音乐样本相关联的人声轨道和
/
或乐器轨道

31.训练示例
118a-b
可以被音乐属性标识系统
114
用来训练
mtt
模型

为了使用训练示例
118a-b
训练
mtt
模型,音乐属性标识系统
114
可以输入训练示例
118a-b
并且将输入音频数据与预期输出
(
即,已经与音乐样本相关联的
(
一个或多个
)
属性
)
配对

通过将输入音频数据与相应音乐样本中的已知属性配对并且使用这些配对来训练
mtt
模型,
mtt
模型可以学习将音频数据的特定特征与不同属性相关联
。mtt
模型可能需要在大量训练示例上进行训练,然后才能学到足够的知识来进行准确的属性识别

期望的识别准确度水平可以由训练
mtt
模型的实体或个人来确定,并且
mtt
模型可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性识别

32.为了确定
mtt
模型是否以期望的准确度水平进行属性识别,可以评估和测试
mtt
模型

在一个示例中,可以使用验证数据集来评估
mtt
模型

如果
mtt
模型在验证数据集上没有显示出令人满意的性能,则将使用更多的训练数据来训练
mtt
模型

如果
mtt
模型对验证数据集显示出令人满意的性能,则可以使用测试数据集来测试
mtt
模型

为了评估和测试
mtt
模型,可以将验证数据和测试数据输入到
mtt
模型,并且可以将
mtt
模型的输出与预期结果进行比较

优选地,验证数据集与测试数据集是不同的,因为拆分验证数据集和测试数据集可以避免模型选择过程中的信息泄漏

通过拆分验证数据集和测试数据集,最佳模型可以被选择

所选择的最佳模型可以更好地通用化并且不会过度拟合为测试数据

验证数据集可以是用于评估
mtt
模型的一组示例,并且测试数据集可以是用于测试
mtt
模型的另一个组示例

33.输入到
mtt
模型的验证数据
(
验证示例
)
和测试数据
(
测试示例
)
可以类似于用于训练
mtt
模型的数据
(
例如,用于训练
mtt
模型的标记数据
)。
例如,一个验证或测试示例可以包括与音乐样本相关联的音频数据

尽管验证或测试示例还包括与该音乐样本相关联的一个或多个属性,但是该一个或多个属性不被输入到
mtt
模型中

而是,与音乐样本相关联的音频数据可以被输入到
mtt
模型以查看,
mtt
模型标识的哪个
(
哪些
)
属性与音乐样本相关联

可以将此标识与如验证或测试示例所指示的与音乐样本相关联的一个或多个属性
(
即,预期结果

标记信息
)
进行比较

如果使用验证或测试数据的标识结果的某个百分比与它们相应的预期结果
(
即,标记信息
)
不匹配,则
mtt
模型可能需要在更多和
/
或更大种类的训练示例上进行训练

此训练

评估和测试的过程可以一遍又一遍地重复,直到
mtt
模型以期望的准确度水平标识属性

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

35.在一些实施例中,
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。
36.变换器后端
204
包括堆叠的多头自注意力层

与在其前端末端使用频率轴线最大池的具有自注意力的卷积神经网络
(cnnsa)
相比,
mtt
模型
200
中的注意力层可以被给予更详细的频谱信息

作为示例而非限制,
mtt
模型
200
可以包括4层
、256
个注意力维度和8个注意力头

在变换器后端
204
的输入阶段,可以应用位置嵌入并且可以插入特殊的令牌嵌入
e[cls]
,使得变换器后端
204
可以执行作为下游任务的序列分类
(
如图2中所示
)。
[0037]
为了利用未标记的数据,可以通过使用噪声学生训练机制来改进
mtt
模型

噪声学生训练机制是一种半监督学习方法


4a
图示了用于教师训练的示例过程
400。
教师训练示例过程
400
可以使用标记的数据
(
例如,注释的数据
402)
来训练教师模型
(m1)408。
过程
400
可以包括数据扩充
(d)
子过程
404
和短时傅立叶变换
(f)
子过程
406。
[0038]
注释的数据
402
可以包括多个音乐样本的音频数据
(x1)
和指示多个音乐样本的属性的标记信息
(y)。
注释的数据
402
可以从包括音乐样本的数据集
(
例如,百万首歌曲数据集
(msd))
收集

音乐样本中的每一个可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的
30
秒的部分

音频数据可以包括来自音乐样本的声乐轨道和
/
或来自音乐样本的乐器轨道

声乐轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何声乐的音乐样本的声音轨道

标记信息可以指示关于音乐样本的任何信息,诸如歌曲名称

艺术家姓名

专辑

流派

情绪

乐器

地区

年代等

[0039]
为了获得更强的教师模型
(m1)408
,可以在监督学习方法中使用数据扩充

数据扩充
(d)
子过程
404
可以包括任何合适的数据扩充技术,诸如随机裁剪

极性反转

加性噪声

增益控制

高通
/
低通滤波

延迟

音调偏移和混响

数据扩充可以在噪声学生训练机制中发挥重要作用

可以使用易于集成到
pytorch
数据管道的音频扩充库

在一个实施例中,所应用的数据扩充方法可以包括:
[0040]
(1)
极性反转,
[0041]
(2)k
snr
∈{0.3

0.5}
的加性噪声,
[0042]
(3)a∈{-20

1}db
的随机增益,
[0043]
(4)fh∈{2200

4000}hz
的高通滤波器,
[0044]
(5)f
l
∈{200

1200}hz
的低通滤波器,
[0045]
(6)t∈{200

500}ms
的延迟,
[0046]
(7)n∈{-7

7}
半音的音高偏移,以及
[0047]
(8)
房间大小
s∈{0

100}
的混响

[0048]
每种扩充方法可以以概率
p∈{0.3

0.7}
独立激活

[0049]
短时傅立叶变换
(f)
子过程
406
可以通过预处理一段音乐的音频数据
(x1)
来生成表示该段音乐的音频数据
(x1)
的图像

表示一段音乐的音频数据
(x1)
的图像可以是表示音乐样本的音频信号的频率如何随时间变化的梅尔频谱图

在一个实施例中,音频数据
(x1)
的特征可以被提取到梅尔频谱图中,例如
128
×
512
梅尔频谱图中

[0050]
教师模型
(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
可以学习将音频数据的特定特征与不同的标记信息相关联

[0051]
教师模型
(m1)408
可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别

期望的准确度识别水平可以由训练教师模型
(m1)408
的实体或个人来确定,并且教师模型
(m1)408
可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性标识

为了确定教师模型
(m1)408
是否正在以期望的准确度水平进行属性标识,可以测试教师模型
(m1)408
,并且可以评估教师模型
(m1)408
的属性标识准确度水平

为了测试教师模型
(m1)408
,可以将测试示例输入到教师模型
(m1)408
,并且可以将教师模型
(m1)408
的输出与预期结果进行比较

此训练和测试过程可以一遍又一遍地重复,直到教师模型
(m1)408
以期望的准确度水平标识属性

[0052]

4b
图示了用于学生训练的示例过程
410。
学生训练示例过程
410
使用标记的数据
(
例如,注释的数据
402)
和未标记的数据
(
例如,未注释的数据
412)
两者来训练学生模型
(m2)418。
过程
410
可以包括数据扩充
(d)
子过程
414
和短时傅立叶变换
(f)
子过程
416。
[0053]
注释的数据
402
可以包括多个音乐样本的音频数据
(x1)
和指示多个音乐样本的属性的标记信息
(y)。
未注释
412
可以包括多个音乐样本的音频数据
(x2)。
未注释
412
可以不包括标记信息
(
例如,手动标记的信息
)。
可以从包括音乐样本的数据集
(
例如
msd)
收集未注释的数据
412。
音乐样本中的每一个音乐样本可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的
30
秒的部分

音频数据
(x2)
可以包括来自音乐样本的声乐轨道和
/
或来自音乐样本的乐器轨道

声乐轨道可以包括音乐样本的歌曲词,并且乐器轨道可以包括没有任何声乐的音乐样本的声音轨道

数据扩充
(d)
子过程
414
和短时傅立叶变换
(f)
子过程
416
可以相应地类似于数据扩充
(d)
子过程
404
和短时傅立叶变换
(f)
子过程
406。
[0054]
在学生训练过程
410
中,学生模型
(m2)418
是可训练的

可以使用标记数据
(
例如注释的数据
402)
来训练学生模型
418。
将注释的数据
402
应用到学生模型
(m2)418
可以涉及将训练示例的音频数据
(x1)
与预期输出
(
即,标记信息
(y))
配对

通过将音频数据
(x1)
与标记信息
(y)
配对并且使用这些配对来训练学生模型
(m2)418
,学生模型
(m2)418
可以学习将音频数据
(x1)
的特定特征与不同的标记信息
(y)
相关联

[0055]
学生模型
(m2)418
可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该学生模型才能学习到足够的知识来进行准确的属性标识

期望的准确度标识水平可以由训练学生模型
(m2)418
的实体或个人来确定,并且学生模型
(m2)418
可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性标识

为了确定学生模型
(m2)418
是否正在以期望的准确度水平进行属性标识,可以使用标记数据来评估和测试学生模型
(m2)418。
可以使用验证数据集来评估学生模型
(m2)418
的属性标识准确度

如果学生模型对验证数据集显示出令人满意的准确度,则可以使用测试数据集来测试
mtt
模型

为了评估和测试学生模型
(m2)418
,可以将验证示例或测试示例输入到学生模型
(m2)418
,并且可以将学生模型
(m2)418
的输出与预期结果
(
即,标记数据的标记信息
)
进行比较

此训练

评估和测
试的过程可以一遍又一遍地重复,直到学生模型
(m2)418
在标记的测试数据集上显示出期望的性能

良好训练的学生模型
418
可以用作
mtt
模型来预测任何特定该段音乐的属性

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

教师模型
(m1)408
在学生训练期间是不可训练的

[0057]
然后,未标记的数据
(
例如,未注释的数据
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。
在一些实施例中,良好训练的学生可以用作新的教师模型来训练另一个学生模型以获得甚至更好的表现模型

[0058]
作为说明性实施例,图5图示了用于利用标记的数据
(
例如,注释的数据
402)
和未标记的数据
(
未注释的数据
412)
的噪声学生训练机制的示例伪代码

首先,使用常规的监督学习方法,教师模型
t(
例如,教师模型
408)
可以如代码的第1至6行中所示来训练

然后,可以用两种类型的损失来训练学生模型
s(
例如,学生模型
418)。
第一损失
l1来自使用标记的数据的典型监督方法
(
如代码的第
10

11
行中所示
)。
第二损失
l2来自未标记的数据并且对应于由教师模型生成的伪标记
(
即伪标记信息
)
,如代码的第
12

15
行中所示

学生模型可以模仿教师模型

学生模型还可以通过应用数据扩充来扩充数据集
(
如代码的第
13
行中所示
)。
硬标记和软标记都可以用于伪标记

[0059]
良好训练的学生模型s可能优于教师模型
t。
此外,可以通过使用学生模型作为新的教师模型并且训练另一个学生模型来重复整个训练过程以获得表现得甚至更好的模型

在另一个示例中,为了更强的教师模型,也可以在监督学习管道中使用数据扩充
(
对应于代码的第1至6行和第
10

11

)。
唯一没有数据扩充的管道是对应于代码的第
12
行的伪标记生成操作

[0060]
在一个示例中,学生模型
(
例如,学生模型
418)
的大小可以等于或大于教师模型
(
例如,教师模型
408)
的大小

在此情况下,训练过程可以被标识为知识扩展
(knowledge expansion

ke)。
这意味着教师模型中的知识在学生模型中升级了

通过给予学生模型
(
足够的容量和在噪声方面困难的环境
)
以学习,可以预期学生模型比教师模型表现得更好

在另一个示例中,学生模型可以被设计成小于教师模型

在此情况下,训练过程可以被标识为知识蒸馏
(knowledge distillation

kd)。
由于较小的模型评估成本较低,因此知识蒸馏
(kd)
可以部署在功能较弱的硬件
(
诸如移动设备
)


知识扩展
(ke)
和知识蒸馏
(kd)
是互补的

根据用于性能和
/
或效率的目标,可以执行知识扩展
(ke)

/
或知识蒸馏
(kd)。
[0061]
图6描绘了用于训练和应用
mtt
模型
(
诸如
mtt
模型
200)
的示例过程
600。
可以例如
由图1的音乐属性标识系统
114
来执行过程
600。
在使用
mtt
模型来识别与特定的一段音乐相关联的属性之前,需要对其进行训练和测试

为了训练和测试
mtt
模型,可以生成训练数据和测试数据

训练数据和测试数据可以使用不同的数据集来生成

[0062]

602
处,数据被收集

数据可以从包括音乐样本的数据集被收集

在一些实施例中,可以使用具有从用户生成的标签收集的注释的公开可用的
msd。
音乐样本中的每一个可以是整首歌曲,或可以是歌曲的一部分,诸如歌曲的
30
秒的部分

一些音乐样本可以是包括音频数据
(
即音频剪辑
)
和标记信息的标记的数据

其他音乐样本可以是包括音频数据但不包括标记信息的未标记的数据

音频数据可以包括来自音乐样本的人声轨道和
/
或来自音乐样本的乐器轨道

人声轨道可以包括音乐样本的歌词,并且乐器轨道可以包括没有任何人声的音乐样本的声音轨道

标记信息可以指示关于音乐样本的任何信息,诸如歌曲名称

艺术家姓名

专辑

流派

情绪

乐器

地区

年代等

[0063]
收集的数据可以用于训练

评估和
/
或测试
mtt
模型


604
处,训练数据集

验证数据集和测试数据集被定义

在一些实施例中,
msd
可以被用于训练

评估和测试
mtt
模型
。msd
可以包括一百万首带有音频特征和标记信息的歌曲

一种方法可以是取最常见的
50
个标签并且选择具有标签中的至少一个的轨道

这导致
242k
的歌曲被拆分成训练集

验证集和测试集

此方法被称为常规的
msd
拆分

[0064]
然而,常规的
msd
拆分存在一些问题

例如,由于
msd
音乐标签是从用户处收集的,所以它们中的一些噪声严重的并且可能导致有噪声的评估
(
即,不正确的评估
)。
此外,音乐项的严格划分需要考虑艺术家信息,因为来自同一艺术家的歌曲和标记经常彼此非常相似

但是常规的
msd
拆分没有此类考虑,这导致了训练集与评估集之间的意外信息泄漏

因此,这会导致过分乐观的评估

[0065]
为了解决这些问题,在一些实施例中,可以手动清理数据,这意味着清理噪声严重的
msd
音乐标注

可以选择使用清理数据中的前
50
个标签

在其他实施例中,可以使用
msd
的新拆分

新的拆分在训练
/
验证
/
测试集中不共有任何艺术家,并且新的拆分可以扩展到更多的轨道

此新的拆分可以被称为清理的和艺术家层面的拆分
(c&a
拆分
)。
在一个示例中,
c&a
拆分可以由
233k
个标记的轨道和
516
个未标记的轨道组成
。c&a
拆分可以利用整个
msd
音频,尽管剩余的
250k
轨道被丢弃以避免通过共有艺术家的信息泄漏

[0066]
用于
mtt
模型的训练示例可以以多种不同的方式生成

例如,可以使用手动数据输入来手动生成训练示例

训练示例可以附加地或备选地使用计算机自动地生成

用于训练
mtt
模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合

用于训练
mtt
模型的训练示例的数量可以变化,但是在实施例中,使用约一百万个训练示例来训练
mtt
模型

[0067]
训练示例可以指示与多个不同音乐样本
(
诸如在
602
处收集的音乐样本
)
相关联的一个或多个属性

与特定音乐样本相关联的一个或多个属性可以指示该音乐样本的一个或多个属性

例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性

例如,如果在音乐样本中使用的特定乐器
(
诸如
fiesta)
是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括作为地区的墨西哥

在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性

在数据集中可以有各种属性标记,包括但不限于流派

情绪

乐器

地区

年代等

[0068]
可以在生成的训练数据
(
包括标记的数据和未标记的数据
)
上训练
mtt
模型


606
处,
mtt
模型可以被训练以标识与一段音乐相关联的一个或多个属性

所生成的训练示例可以用于训练
mtt
模型

在一个实施例中,一些训练示例的音频数据可以与已经与对应的音乐样本手动关联的标记信息配对

其他训练示例的音频数据可以与由预训练的教师模型生成的伪标记
(
即,伪标记信息
)
配对

通过将音频数据与相应音乐样本中的标记信息或伪标记信息配对并且使用这些配对来训练
mtt
模型,
mtt
模型可以学习将各种音频数据与特定属性相关联

经训练的
mtt
模型可以基于该段音乐的音频数据来标识一段音乐的一个或多个属性

[0069]
mtt
模型可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别

期望的识别准确度水平可以由训练
mtt
模型的实体或个人来确定,并且
mtt
模型可以继续被训练,直到它已经学习充分来以期望的准确度水平进行属性识别

为了确定
mtt
模型是否以期望的准确度水平进行属性识别,
mtt
模型可以被测试
。mtt
模型可以使用生成的测试数据来测试


608
处,
mtt
模型的属性标识准确度可以被评估

为了测试
mtt
模型,生成的测试示例的音频数据可以被输入到
mtt
模型中,并且
mtt
模型的输出可以将与预期结果进行比较

[0070]
同时,与训练示例一样,测试示例包括与该音乐样本相关联的一个或多个属性

在测试期间,一个或多个属性不被输入到
mtt
模型中

而是,仅与音乐样本相关联的音频数据可以被输入到
mtt
模型以查看
mtt
模型所识别的哪些属性与音乐样本相关联

识别结果可以与由被包括在测试示例中的标记信息所指示的属性
(
即,预期结果
)
进行比较

[0071]
如果识别结果与预期结果不匹配,则
mtt
模型可能需要在更多和
/
或更大规模种类的训练示例上进行训练

此训练和测试的过程可以一遍又一遍地重复,直到
mtt
模型以期望的准确度水平产生识别结果


610
处,可以确定属性识别准确度是否令人满意

如果属性识别准确度水平达到或超过期望的准确度水平,则它可能是令人满意的

相反,如果属性识别准确度水平没有达到或超过期望的准确度水平,则它可能不令人满意

如果属性识别准确度不令人满意,则示例过程
600
可以返回到
602
以收集更多数据

可以基于此新收集的数据来生成另外的训练示例和
/
或测试示例
。mtt
模型可以基于这些新的训练示例被进一步训练,并且被重新测试

此过程可以继续,直到属性识别准确度令人满意

[0072]
如果属性识别准确度令人满意,则示例过程
600
可以进行到
612。

612
处,一段音乐的一个或多个属性可以使用经训练的
mtt
模型来标识

例如,与特定音乐样本相关联的一个或多个属性可以指示在与音乐样本的一些其他特征相关联的地理区域中通常发生的属性

例如,如果在音乐样本中使用的特定乐器
(
诸如
fiesta)
是墨西哥本地的,则与该音乐样本相关联的一个或多个属性可以包括墨西哥作为地区

在实施例中,训练示例中的每一个可以被分类为一个或多个不同的属性

在数据集中可以有各种属性标记,包括但不限于流派

情绪

乐器

地区

年代等

[0073]

614
处,所标识的属性及其相关联的音乐片段可以被存储

例如,所标识的属性及其相关联的音乐片段可以存储在数据库
(
诸如标识数据库
126)


一旦被存储,此信息可以被用于诸如为客户端设备
132
的用户进行歌曲推荐

例如,如果已知用户喜欢摇滚音乐,则可以向该用户推荐与摇滚音乐的流派属性相关联的存储的音乐片段

在一个实施例中,用户可以使用内容应用
(
诸如客户端设备
132
上的内容应用
134)
来收听推荐的音乐

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

[0075]
为了训练
mtt
模型,训练数据,诸如训练示例可以被生成

用于训练
mtt
模型的训练示例可以以多种不同的方式生成

例如,可以使用手动数据输入来手动生成训练示例

训练示例可以附加地或备选地使用计算机自动地生成

用于训练
mtt
模型的训练示例可以包括正训练示例或正训练示例和负训练示例的组合

[0076]

702
处,教师模型
(
例如教师模型
408)
使用标记的数据的至少一部分而被训练

标记的数据包括多个音乐样本的音频数据以及指示对应于多个音乐样本中的每个音乐样本的至少一个属性的标记信息

多个音乐样本的属性包括流派

情绪

乐器

地区

年代等

[0077]
教师模型可以被训练以标识与一段音乐相关联的至少一个属性

可以通过将训练数据应用于教师模型来训练教师模型,直到该模型达到预定的识别准确度

将训练数据应用于教师模型可以涉及将训练示例的音频数据与预期输出
(
即,已经与音乐样本相关联的标记信息
)
配对

通过将音频数据与相应音乐样本中的已知标记信息配对并且使用这些配对来训练教师模型,教师模型可以学习将音频数据与特定属性相关联

[0078]
教师模型可能需要在大量训练示例或多种不同的训练示例上进行训练,然后该教师模型才能学习到足够的知识来进行准确的属性识别

期望的准确度识别水平可以由训练教师模型的实体或个人来确定,并且教师模型可以继续被训练,直到它已经学习到足够以期望的准确度水平进行属性识别

为了确定教师模型是否正在以期望的准确度水平进行属性识别,可以测试教师模型,并且可以评估教师模型的属性识别准确度水平

为了测试教师模型,可以将测试示例输入到教师模型,并且可以将教师模型的输出与预期结果进行比较

对于更强的教师模型,可以利用数据扩充

[0079]

704
处,伪标记信息通过将经训练的教师模型应用于未标记的数据的至少一部分而被生成,其中伪标记信息指示未标记的数据的至少一部分的属性

伪标记方法可能能够使用未标记的样本来学习数据的底层结构

伪标记方法可以通过使用一小组标记的数据和大量未标记的数据来提高模型的性能

硬标记和软标记都可以用于伪标记

[0080]
在师生训练过程中,学生可以模仿教师的行为


706
处,学生模型可以使用标记的数据的至少一部分

未标记的数据的至少一部分以及指示未标记的数据的至少一部分的属性的伪标记信息而被训练

学生模型可以用两种类型的损失来训练

第一损失可能来自具有为教师模型所做的标记的数据的典型的监督方法

第二损失可能来自未标记的输入和由教师模型生成的对应伪标记

学生模型的大小可以等于或小于教师模型的大小

学生模型也可以通过应用数据扩充来扩充数据集

在一个实施例中,学生模型可以做出与教师模型相同的预测

在另一个实施例中,经训练的学生模型可以优于教师模型

此外,可以通过使用已训练的学生模型作为新的教师模型以训练另一个学生模型来重复整个训练过程以获得表现得甚至更好的模型

[0081]
可以应用经训练的
mtt
模型来标识与音乐相关联的一个或多个属性

图8图示了使用经训练的
mtt
模型来标识与音乐
(
诸如图1中图示的音乐
108)
相关联的一个或多个属性的示例过程
800。
在实施例中,经训练的
mtt
模型可以是如图1中所示的音乐属性标识系统
114
的一部分

经训练的
mtt
模型可能已经使用类似于上面所描述的过程进行了训练

[0082]

802
处,与一段音乐相关联的音频数据可以被接收

该段音乐可以是个人或实体
想要基于其属性进行分类的一段音乐

该段音乐可以是整首歌曲或可以是歌曲的一部分,诸如歌曲的
30
秒的部分

音频数据可以包括来自该段音乐的人声轨道和
/
或来自该段音乐的乐器轨道

人声轨道可以包括该段音乐的歌曲词,并且乐器轨道可以包括没有任何人声的该段音乐的声音轨道

[0083]
示例过程
800
可以通过在
804
处应用数据扩充来扩充数据集

数据扩充可以显著扩充
mtt
模型可用数据的多样性,而无需实际收集新数据

数据扩充可以包括任何合适的数据扩充技术,诸如随机裁剪

极性反转

加性噪声

增益控制

高通
/
低通滤波

延迟

音调偏移

混响等等

[0084]
示例过程
800
可以通过在
806
处使用短时傅立叶变换并且在
807
处使用梅尔尺度滤波器组来生成表示该段音乐的音频数据的图像

在一个实施例中,表示一段音乐的音频数据的图像可以是表示音乐样本的音频信号的频率如何随时间变化的梅尔频谱图
(
例如,
128
×
512
梅尔频谱图
)。
[0085]
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
处输出对该段音乐的至少一个属性的预测

[0086]
图9描绘了用于应用经训练的机器学习模型
(
诸如
mtt
模型
200)
的示例过程
900。
可以例如由如图1中所示的音乐属性标识系统
114
来执行过程
900。
[0087]
经训练的
mtt
模型可以用于标识与至少一段音乐相关联的属性


902
处,一段音乐的音频数据可以被接收以标识与该段音乐相关联的一个或多个属性

该段音乐可以是个人或实体想要基于其
(
一个或多个
)
属性进行分类的一段音乐

该段音乐可以是整首歌曲或可以是歌曲的一部分,诸如歌曲的
30
秒的部分

音频数据可以包括来自该段音乐的人声轨道和
/
或来自该段音乐的乐器轨道

人声轨道可以包括该段音乐的歌曲词,并且乐器轨道可以包括没有任何人声的该段音乐的声音轨道

[0088]

904
处,表示该段音乐的音频数据的图像可以通过预处理该段音乐的音频数据而被生成

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

在实施例中,短时傅立叶变换可以通过预处理该段音乐的音频数据来生成表示该段音乐的音频数据的图像

[0089]

906
处,该段音乐的至少一个属性可以使用经训练的模型
(
例如,经训练的
mtt
模型
)
而被确定

经训练的
mtt
模型可以包括卷积神经网络和变换器

该段音乐可以基于所确定的至少一个属性而被分类

至少一个确定的属性可以包括例如流派

情绪

乐器

地区

年代等等

[0090]

908
处,卷积神经网络可以被应用在表示该段音乐的音频数据的图像上,并且输出从表示该段音乐的音频数据的图像提取的特征序列

在实施例中,卷积神经网络可以在梅尔频谱图输入上使用具有残差连接的3×3卷积滤波器

在卷积神经网络的末端,第二维度和第三维度可以被重新成形为单个维度

作为示例而非限制,卷积神经网络的输出可以是短组块音频特征序列,其中组块可以对应于约
0.1


短组块音频特征序列可以被输入到经训练的
mtt
模型的变换器

[0091]

910
处,变换器可以被应用在从表示该段音乐的音频数据的图像中提取的特征序列上,并且输出该段音乐的至少一个属性的预测

变换器可以包括堆叠的多头自注意力层

在一个实施例中,变换器可以包括4层
、256
个注意力维度和8个注意力头

[0092]
与音乐片段相关联的一个或多个属性的标识可以存储在数据库中,诸如存储在图1中的标识数据库
126


一旦被存储,此信息可以被用于诸如为客户端设备
132
的用户进行歌曲推荐

例如,如果已知用户喜欢摇滚音乐,则可以向该用户推荐被分类为摇滚音乐的存储的音乐片段

在实施例中,用户可以使用内容应用
(
诸如客户端设备
132
上的内容应用
134)
来收听推荐的音乐

[0093]
音乐标注模型通常使用接收器操作特征曲线下面积
(roc-auc)
进行评估

然而,
roc-auc
报告的结果可能过于乐观,数据严重失真

在一些实施例中,
roc-auc
和精确召回曲线下面积
(pr-auc)
两者都可以用作主要评估度量来评估本公开中的音乐标注模型的性能


10
图示了描绘了使用用于常规的前
50
个音乐标注拆分的性能比较示例表
1000。
在当前系统与
mtt
模型之间进行性能比较

[0094]
在表
1000
中,
fcn
表示完全卷积网络
。musicnn
表示一组预训练的深度卷积神经网络以用于音乐音频标签

样本水平表示样本水平深度卷积神经网络
。se
表示挤压和激励
。crnn
表示卷积递归神经网络
。cnnsa
表示具有自注意力的卷积神经网络
。cnn
表示卷积神经网络
。resnet
表示残差网络

变换器表示
mtt
模型
。da
是用于数据扩充的缩写

§
和标志表示模型基于相同的模型架构和训练策略;与图
11
中所示的具有相同标志的模型相比,仅数据集拆分不同

[0095]
如表
1000
中所示,当前很多模型的
roc-auc

pr-auc
已经相应地低于
0.89

0.33。
相比之下,
mtt
模型优于当前的模型,包括
fcn、musicnn、
样本水平

样本水平
+se、crnn、cnnsa、
谐波
cnn、
短组块
cnn
和短组块
resnet。
这种改进,尤其是
pr-auc
的改进,是不可忽视的

当数据扩充应用于
mtt
模型时,改进变得更大

[0096]
mtt
模型的前端接受一系列组块

组块中的每一个表示约
0.1
秒的短信号持续时间

尽管
0.1
秒对于单独表示音乐特征来说很短,但是使用组块的序列的方法及其结果可能意味着
mtt
模型的后端可以扮演序列特征提取器的角色,而不是简单的特征包集合

这可能是
mtt
模型的一个重要方面,因为序列建模可能是自注意力机制的最佳选择

[0097]
同时,表
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
模型实现的改进比当前不同架构选择实现的许多改进更显著

这可能强调在开发音乐标注模型时应考虑数据扩充

[0098]

11
图示了描绘了使用具有各种配置的
c&amsd
拆分的性能比较的示例表
1100。


1100

。resnet
表示短组块
resnet。
变换器表示
mtt
模型
。da
表示数据扩充
。ke

kd
分别表示知识扩展和知识蒸馏

§
和标志表示它们基于相同的模型架构和训练策略;与图
10
中所示的具有相同标志的模型相比,仅数据集拆分不同

比较表
1100
不仅示出了两个模型的结果,即,短组块结果网和
mtt
模型,并且还总结了监督模型

具有数据扩充
(da)
的模型

具有
da
和知识扩展
(ke)
的模型

以及具有
da
和知识提取
(kd)
的模型的结果

[0099]
对于短组块
resnet

mtt
模型两者,当数据扩充和噪声学生训练
(
知识扩展
)
被累积应用时,可以观察到持续的改进

例如,如表
1100
中所示,变换器

变换器
+da、
变换器
+da+ke

roc-auc
值相应地为
0.9188、0.9191、0.9204。
这些值示出了
da

ke
的持续改进

这可能指示,对于短组块
resnet

mtt
模型这两种架构,数据集的大小可能是限制模型性能的因素


1100
还示出了具有较小参数的学生模型
(
具有
da

kd
的模型
)
可能比较大模型
(
即,具有
da

ke
的模型
)
具有更好的性能

如果可以使用更大且具有更多样化数据的更丰富的数据集来训练模型,则这可以解释得更清楚

当足够合适的数据集可用时,在即将到来的研究中,可以用显著更丰富的数据集来训练模型

[0100]

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

[0101]
如图表
1200
中所示,在两个度量上,随着音频输入变长,短组块
resnet
显示出明显的性能下降

这可能指示短组块
resnet
中的全局最大池可能不完全适合长信号

同时,
mtt
模型总体显示出一致的性能

例外是当输入长度为
30
秒时

发生性能下降的原因可能是模型无法利用随机裁剪数据扩充,因为
30
秒是
msd
预览的完整长度

总的来说,
mtt
模型优于短组块
resnet。
[0102]

13
图示了描绘了具有不同宽度和深度的注意力层的
mtt
性能的示例表
1300。
在表
1300
中,当注意力通道具有
128

256
的宽度并且它们的深度为4层和8层时,
mtt
模型可以实现最佳性能

这些最佳参数可能取决于数据集

一般来说,如果提供大量的训练数据,则较大的网络结构可以表现得更好

[0103]

14
描绘了可以用于各个方面的计算设备

关于图1的示例环境,音乐属性标识系统
114、
音乐数据库
104、
训练示例数据库
106、
标识数据库
126
或测试数据库
128
中的一者或多者可以在图
14
的计算设备
1400
的实例中实现


14
中示出的计算机架构示出了常规的服务器计算机

工作站

台式计算机

膝上型计算机

平板计算机

网络设备
、pda、
电子阅读器

数字蜂窝电话或其他计算节点,并且可以用于执行本文所描述的计算机的任何方面
(
诸如用于实现图6至图9中描述的方法
)。
[0104]
计算设备
1400
可以包括作为印刷电路板的基板或“主板”,多个部件或设备可以通过系统总线或其他电通信路径连接到该基板或“主板”。
一个或多个中央处理单元
(cpu)1404
可以结合芯片组
1406
操作
。(
一个或多个
)cpu 1404
可以是用于执行计算设备
1400
的操作所必需的算术和逻辑运算的标准可编程处理器

[0105]
(
一个或多个
)cpu 1404
可以通过操纵区分并且改变这些状态的开关元件从一个离散物理状态转变到下一个物理状态来执行必要的操作

开关元件一般可以包括保持两个二进制状态中的一个的电子电路
(
诸如触发器
)
,以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路
(
诸如逻辑门
)。
这些基本开关元件可以被组合以创建
更复杂的逻辑电路,包括寄存器

加法器-减法器

算术逻辑单元

浮点单元等

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

[0107]
可以在
(
一个或多个
)cpu 1404
和基板上的剩余部件与设备之间提供用户接口

该接口可以用于访问用作计算设备
1400
中的主存储器的随机存取存储器
(ram)1408。
该接口可以用于访问计算机可读存储介质
(
诸如只读存储器
(rom)1420
或非易失性
ram(nvram)(
未示出
))
以用于存储可帮助启动计算设备
1400
并且在各种部件与设备之间传送信息的基本例程
。rom 1420

nvram
也可以存储根据本文所描述的各方面的用于计算设备
1400
的操作所必需的其他软件部件

可以由一个或多个电子部件
(
诸如芯片组
1406)
来提供用户接口

[0108]
计算设备
1400
可以使用通过局域网
(lan)
到远程计算节点和计算机系统的逻辑连接在网络化环境中操作

芯片组
1406
可以包括用于通过网络接口控制器
(nic)1422(
诸如千兆以太网适配器
)
提供网络连接的功能
。nic 1422
能够通过网络将计算设备
1400
连接到其他计算节点

应理解的是,计算设备
1400
中可以存在多个
nic 1422
,将计算设备连接到其他类型的网络和远程计算机系统

[0109]
计算设备
1400
可以连接到为计算机提供非易失性存储的存储设备
1428。
存储设备
1428
可以存储已经在本文中更详细地描述的系统程序

应用

其他程序模块和数据

存储设备
1428
可以通过连接到芯片组
1406
的存储控制器
1424
连接到计算设备
1400。
存储设备
1428
可以由一个或多个物理存储单元组成

存储控制器
1424
可以通过串行附接
scsi(sas)
接口

串行高级技术附件
(sata)
接口

光纤通道
(fc)
接口或用于在计算机与物理存储单元之间物理连接和传送数据的其他类型的接口与物理存储单元对接

[0110]
计算设备
1400
可以通过变换物理存储单元的物理状态来反映所存储的信息,从而将数据存储在存储设备
1428


物理状态的具体变换可能取决于各种因素和本描述的不同实现方式

这些因素的示例可以包括但不限于,用于实现物理存储单元的技术以及存储设备
1428
是否被表征为主存储器或辅助存储器等

[0111]
例如,计算设备
1400
可以通过经由存储控制器
1424
发出指令来将信息存储到存储设备
1428
以改变磁盘驱动单元中特定位置的磁特性

光存储单元中特定位置的反射或折射特性

或固态存储单元中特定电容器

晶体管或其他分立部件的电特性

在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于本描述

计算设备
1400
可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来从存储设备
1428
读取信息

[0112]
除了本文所描述的存储设备
1428
之外或作为其替换,计算设备
1400
可以访问其他计算机可读存储介质
(
诸如程序模块

数据结构或其他数据
)
来存储和检索信息

本领域技术人员应理解的是,计算机可读存储介质可以是提供非暂态数据的存储并且可以由计算设备
1400
访问的任何可用介质

[0113]
作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性

瞬态计算机可读存储介质和非瞬态计算机可读存储介质,以及可移除介质和不可移除介质

计算机可读存储介质包括但不限于可以用于以非暂态方式存储期望信息的
ram、rom、
可擦除可编程
rom(“eprom”)、
电可擦除可编程
rom(“eeprom”)、
快闪存储器或其
他固态存储技术

光盘
rom(“cd-rom”)、
数字多功能盘
(“dvd”)、
高清晰度
dvd(“hd-dvd”)、blu
射线或其他光存储

磁带盒

磁带

磁盘存储

其他磁存储设备或任何其他介质

[0114]
存储设备
(
诸如图
14
中描绘的存储设备
1428)
可以存储用于控制计算设备
1400
的操作的操作系统

操作系统可以包括
linux
操作系统的版本

操作系统可以包括来自微软公司的
windows server
操作系统的版本

根据另外的方面,操作系统可以包括
unix
操作系统的版本

也可以使用各种移动电话操作系统,诸如
ios

android。
应理解的是,也可以利用其他操作系统

存储设备
1428
可以存储由计算设备
1400
使用的其他系统或应用和数据

[0115]
存储设备
1428
或其他计算机可读存储介质也可以用计算机可执行指令来编码,该计算机可执行指令在被加载到计算设备
400
中时,将计算设备从通用计算系统变换成能够实现本文所描述的各方面的专用计算机

如本文所描述,这些计算机可执行指令通过指定
(
一个或多个
)cpu 1404
如何在状态之间转换来变换计算设备
1400。
计算设备
1400
可以访问存储计算机可执行指令的计算机可读存储介质,当由计算设备
1400
执行时,可以执行关于图6至图9描述的方法

[0116]
计算设备
(
诸如图
14
中描绘的计算设备
1400)
还可以包括输入
/
输出控制器
1432
以用于接收和处理来自多个输入设备
(
诸如键盘

鼠标

触摸板

触摸屏

电子指示笔或其他类型的输入设备
)
的输入

类似地,输入
/
输出控制器
1432
可以向显示器
(
诸如计算机监测器

平板显示器

数字投影仪

打印机

绘图仪或其他类型的输出设备
)
提供输出

应理解的是,计算设备
1400
可以不包括图
14
中示出的所有部件,可以包括图
14
中未明确示出的其他部件,或可以利用与图
14
中示出的架构完全不同的架构

[0117]
如本文所描述的,计算设备可以是物理计算设备,诸如图
14
的计算设备
1400。
计算节点还可以包括虚拟机主机进程和一个或多个虚拟机实例

计算机可执行指令可以由计算设备的物理硬件通过解释和
/
或执行在虚拟机的上下文中存储和执行的指令来间接执行

[0118]
本领域技术人员应理解的是,本文公开的系统和方法可以经由计算设备来实现,该计算设备可以包括但不限于一个或多个处理器

系统存储器以及将包括处理器在内的各种系统部件耦合到系统存储器的系统总线

在多个处理器的情况下,系统可以利用并行计算

[0119]
出于说明的目的,应用和诸如操作系统的其他可执行程序部件在本文被示为离散的块,尽管认识到这些程序和部件在不同时间驻留在计算设备的不同存储部件中,并且由计算机的
(
一个或多个
)
数据处理器执行

服务软件的实现可以存储在某种形式的计算机可读介质上或通过该某种形式的计算机可读介质传输

所公开的方法中的任一个都可以由包括在计算机可读介质上的计算机可读指令执行

计算机可读介质可以是可以由计算机访问的任何可用介质

作为示例而不意味着限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以任何方法或技术实现的易失性和非易失性

可移除和不可移除介质以用于存储诸如计算机可读指令

数据结构

程序模块或其他数据的信息

示例性计算机存储介质包括但不限于
ram、rom、eeprom、
快闪存储器或其他存储技术
、cd-rom、
数字多功能盘
(dvd)
或其他光存储

盒式磁带

磁带

磁盘存储或其他磁存储设备,或可以用于存储期望信息并且可以由计算机访问的任何其他介质

应用等和
/
或存储介质可以至少部分地在远程系统处实现

[0120]
如说明书和所附权利要求中所用,除非上下文中另有明确指示,否则单数形式“一”、“一个”和“该”包括复数指示物

范围在本文中可以表示为从“约”一个特定值,和
/
或到“约”另一个特定值

除非另有明确说明,否则决不意味着本文阐述的任何方法都被解释为要求其步骤以特定顺序执行

因此,当方法权利要求实际上没有叙述其步骤遵循的顺序或在权利要求或说明书中没有以其他方式具体说明这些步骤将限于特定顺序时,决不意味着该顺序可以从任何方面推断

[0121]
对于本领域技术人员来说显而易见的是,在不脱离范围或精神的情况下可以进行各种修改和变化

考虑到本文公开的说明书和实践,其他实施例对于本领域技术人员来说将是显而易见的

说明书和示例仅被认为是示例性的,真正的范围和精神由所附权利要求来指示

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1