首页 > 乐器声学 专利正文
使用神经网络的传入数据的带宽扩展的制作方法

时间:2022-02-18 阅读: 作者:专利查询

使用神经网络的传入数据的带宽扩展的制作方法

1.本说明书涉及生成高分辨率数据的神经网络。


背景技术:

2.神经网络是机器学习模型,其采用一层或多层非线性单元来预测接收到的输入的输出。一些神经网络除输出层外还包括一个或多个隐藏层。每个隐藏层的输出被用作至网络中下一层,即,下一隐藏层或输出层的输入。网络的每一层根据相应的参数集合的当前值从接收的输入生成输出。
3.一些神经网络是递归神经网络。递归神经网络是一种接收输入序列并从输入序列生成输出序列的神经网络。特别地,递归神经网络可以在当前时间步计算输出时使用来自先前时间步的一些或所有网络的内部状态。递归神经网络的示例是长短期(lstm)神经网络,其包括一个或多个lstm存储块。每个lstm存储块能够包括一个或多个单元,每个单元包括输入门、忘记门和输出门,允许该单元存储该单元的先前状态,例如,用于生成当前激活或要被提供给lstm神经网络的其他组件。


技术实现要素:

4.本说明书描述一种作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,该系统接收输入即传入数据的低分辨率版本,并且扩展低分辨率版本的带宽。换句话说,该系统生成输入的高分辨率版本。也就是说,该系统接收具有在第一时间段期间处于第一样本速率的第一数目的样本的输入的版本,然后从所接收到的版本,生成具有在第一时间段期间处于第二较高的样本速率的第二较高数目的样本的输入的版本。一旦被生成,该系统就能够重放或呈现输入的高分辨率版本,即,而不是重放或呈现低分辨率版本。
5.能够实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。
6.所描述的系统能够生成低分辨率输入数据例如语音或其他音频数据或视频数据的高分辨率版本。因此,能够向用户重放高分辨率样本,同时仅需要通过数据通信网络发送或存储足以重构样本的低分辨率版本的数据,从而大大减少需要被传送的数据量以便实现高质量重放。
7.在语音的情况下,所描述的系统能够在无需通过通信信道接收任何附加数据的情况下生成低分辨率语音的高分辨率版本,即,仅从输入的低带宽版本生成高质量语音。作为特定示例,所描述的技术能够用于从标准电话质量和gsm质量音频生成“hd话音”质量音频。因此,所描述的技术能够用于改进现有通信系统例如voip或电话系统中的音频质量,而无需通过通信信道发送更多的数据或者修改通信系统的任何基础设施。
8.本说明书主题的一个或多个实施例的细节在附图和以下描述中被阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
9.图1示出示例带宽扩展系统。
10.图2示出带宽扩展系统的示例实现方式。
11.图3是用于生成输入的高分辨率版本的示例过程的流程图。
12.图4是用于训练调节神经网络和生成神经网络的示例过程的流程图。
13.各个附图中相同的附图标记和名称指示相同的元件。
具体实施方式
14.图1示出示例带宽扩展系统100。带宽扩展系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中能够实现下述系统、组件和技术。
15.系统100接收输入即传入数据的低分辨率版本110,并且扩展低分辨率版本的带宽。换句话说,系统例如在传入数据被重放或呈现给用户之前生成输入的高分辨率版本120。
16.也就是说,系统100接收具有在第一时间段期间处于第一样本速率的第一数目的样本的输入的版本,然后从所接收到的版本,生成具有在相同的第一时间段期间处于第二较高的样本速率的第二较高数目的样本的输入的版本。
17.例如,系统100能够接收具有第一样本速率的音频波形并且从所接收到的音频波形,生成具有处于较高的样本速率的较大数目的样本的音频波形。例如,系统100能够接收表示话语的8khz语音信号并且从该8khz语音信号,生成表示相同话语的24khz语音信号。
18.作为特定示例,能够在通过数据通信网络接收低分辨率语音的通信节点处实现系统100。例如,系统100能够接收作为通信会话(例如,蜂窝网络上的音频呼叫、网际协议网络上的ip语音呼叫或因特网上的视频聊天)的一部分的编码音频信号并对其进行解码,以获得低分辨率语音。与直接重放经解码后的语音的常规系统不同,系统100能够首先使用所描述的技术来生成高分辨率语音,然后重放该高分辨率语音代替经解码后的语音。
19.这允许系统100通过扩展可能已通过低速率编解码器传递的带限传入语音信号的带宽并且在无需修改传输信道的情况下,即,在无需增加传输信道的带宽或传输信道的任何其他基础设施或者修改用于对语音进行编码的编解码器的情况下向用户重放高分辨率和高质量语音。
20.作为另一示例,输入能够包括视频。在此示例中,输入的低分辨率版本包括处于第一帧速率的一组视频帧,而输入的高分辨率版本包括处于第二较高的帧速率的视频帧,其中两个版本覆盖视频中的相同时间段。
21.作为另一特定示例,能够在通过数据通信网络接收低帧速率视频的通信节点处实现系统100。例如,系统100能够接收作为通信会话(例如,因特网上的视频聊天)的一部分的编码视频信号并对其进行解码,以获得低分辨率视频。作为另一示例,系统100能够接收编码流视频信号并对其进行解码以获得低帧速率视频。与直接重放经解码后的视频的常规系统不同,系统100能够首先使用所描述的技术来生成较高帧速率视频,然后重放较高帧速率视频代替经解码后的视频。
22.这允许系统100在无需修改用于对视频进行编码的编解码器或者增加通过数据通信网络发送的数据量的情况下通过扩展传入视频信号的带宽来向用户重放高帧速率和高
质量视频。
23.特别地,系统100能够生成输入的低分辨率版本110的表示130,然后通过调节神经网络140来处理表示130以生成调节输入150。
24.调节神经网络140的架构将通常取决于使其带宽被扩展的输入的类型并且取决于那些输入的表示130。然而,通常,调节神经网络140被配置成对表示上采样例如二倍、四倍或八倍,使得所得的调节输入150能够有效地用于生成高分辨率版本。
25.作为特定示例,调节神经网络140可以是对表示130上采样以生成调节输入150的卷积神经网络。将在下面参考图2描述这样的卷积神经网络的示例。
26.在一些实现方式中,当其他上下文信息可用时,系统100也能够在生成调节输入150时使用其他上下文信息。例如,在语音的情况下其他上下文信息能够包括表征讲话者的数据,例如,讲话者的标识符或表征讲话者的语音模式的数据,或表征对话的上下文的数据,例如,对话的主题、对话的语言等。
27.例如,调节神经网络140也能够处理附加上下文信息,或者附加上下文信息能够与调节神经网络140的输出组合以生成调节输入150。
28.系统100然后能够使用生成神经网络160来处理调节输入150以生成输入的高分辨率版本120。
29.生成神经网络160能够具有允许神经网络160从表示低分辨率输入的调节输入生成高分辨率输出的各种架构中的任一种。
30.例如,生成神经网络160可以是自回归神经网络,该自回归神经网络以如下各项为条件生成输入的高分辨率版本120中的每个样本:(i)调节输入150以及(ii)在输入的高分辨率版本120中已经被生成的任何样本。也就是说,生成神经网络160能够顺序地生成高分辨率版本120中的样本,其中每个样本是以如下各项为条件而生成的:(i)调节输入150以及(ii)在输入的高分辨率版本120中位于序列中的当前样本之前的样本。
31.自回归神经网络的一个示例是包括扩张卷积层的自回归卷积神经网络,例如,包括扩张卷积层的多个栈的卷积神经网络。为了生成序列中的给定样本,这样的卷积神经网络处理输入的高分辨率版本120中在序列中的当前样本之前的任何样本以生成样本值上的输出分布,然后根据输出分布对值采样。
32.为了在调节输入150上有效地调节给定样本的生成,卷积神经网络中的扩张卷积层中的至少一些的激活函数以调节输入150为条件。
33.包括具有以调节输入为条件的激活函数的扩张卷积层的自回归卷积神经网络的特定示例是wavenet,其在a.van den oord,s.dieleman,h.zen,k.simonyan,o.vinyals,a.graves,n.kalchbrenner,a.w.senior和k.kavukcuoglu的“wavenet:a generative model for raw audio.”中,在ssw,2016年,第125页中被更详细地描述。
34.自回归神经网络的另一示例是递归神经网络,该递归神经网络维护并更新每个样本的内部状态,即,通过处理序列中的最近样本,然后使用经更新的内部状态来生成样本。能够用于生成高分辨率数据的递归神经网络的一个特定示例是wavernn,其在n.kalchbrenner,e.elsen,k.simonyan,s.noury,n.casagrande,e.lockhart,f.stimberg,a.oord,s.dieleman和k.kavukcuoglu的“efficient neural audio synthesis,”中,在2018年的international conference on machine learning的第2415

2424页中有所描
述。
35.在一些其他实现方式中,生成神经网络160是以(i)调节输入和(ii)噪声向量为条件的前馈神经网络。例如,前馈神经网络可以是包括具有以调节输入为条件的激活函数的多个扩张卷积层的卷积神经网络。这样的卷积神经网络被配置成将具有与高分辨率版本相同数目的样本的噪声向量作为输入处理,以并行地生成高分辨率版本中的所有样本的相应输出分布。神经网络然后能够根据输出分布对值采样或者根据输出分布贪婪地选择值。前馈卷积神经网络的特定示例是parallel wavenet,其在a.van den oord,y.li,i.babuschkin,k.simonyan,o.vinyals,k.kavukcuoglu,g.van den driessche,e.lockhart,l.cobo,f.stimberg,n.casagrande,d.grewe,s.noury,s.dieleman,e.elsen,n.kalchbrenner,h.zen,a.graves,h.king,t.walters,d.belov和d.hassabis的“parallel wavenet:fast high

fidelity speech synthesis,”中,在proceedings of the 35th international conference on machine learning,ser.machine learning research,第80卷.stockholmsmssan,瑞典,斯德哥尔摩:pmlr,2018年,第3918

3926页中有所描述。
36.为了有效地使用调节神经网络140和生成神经网络160来生成高分辨率数据,系统100在训练数据上训练两个神经网络。
37.在下面参考图4更详细地描述在训练数据上训练神经网络。
38.图2示出当系统的输入是音频数据时系统100的示例实现方式。特别地,在图2的示例中,系统100接收8khz音频信号并且生成该音频信号的24khz版本作为输出。例如,输入可以是表示话语的8khz语音信号并且输出可以是表示相同话语的24khz语音信号。
39.在图2的示例实现方式中,输入音频信号的表示130是输入音频信号的频谱图。换句话说,系统100从低分辨率版本的原始波形即8khz音频的原始波形生成低分辨率版本的频谱图。
40.更具体地,系统100生成的频谱图是对数梅尔频谱图。
41.作为特定示例,系统能够通过在原始输入波形上使用步长为12.5ms的50ms的汉宁窗并且然后将该窗映射到范围从125hz直到输入信号的奈奎斯特频率的80个梅尔频率区间来计算对数梅尔频谱图。在此特定示例中,系统能够以80hz的速率生成对数梅尔谱图作为长度80的向量的序列。
42.然而,在其他实现方式中,系统能够替代地使用原始输入音频作为被作为输入提供给调节神经网络的表示。换句话说,系统能够使用音频的低分辨率版本的原始波形作为被作为输入提供给调节神经网络的表示。
43.系统然后取决于实现方式使用调节神经网络(“调节栈”)140来处理表示130,即对数梅尔频谱图或原始音频,以生成调节输入(“h”)150。
44.调节神经网络140的架构将通常取决于使其带宽被扩展的输入的类型并且取决于那些输入的表示。
45.作为特定示例,当输入是音频时,调节神经网络140能够包括任选地后面有一个或多个转置卷积层的卷积层例如扩张卷积层的栈。在一个特定示例中,调节神经网络140包括五个扩张卷积层,后面是用于对80hz表示上采样四倍的两个转置卷积层。
46.系统使用生成神经网络160来处理调节输入150以生成24khz输出音频。在图2的示例中,生成神经网络160被称为“wavenet栈”,因为其为自回归卷积神经网络,其具有
wavenet架构:具有跳过连接的扩张卷积层的多个栈,其中扩张在多个栈中的每一个栈中增加。
47.在一些实现方式中,在通过扩张卷积层的多个栈来处理已经生成的样本之前,生成神经网络160能够对于每个已经生成的样本,例如在范围[

1,1]中归一化样本,并且通过例如具有滤波器大小4和512个滤波器的卷积层传递归一化样本,以生成至扩张卷积层的多个栈的输入。
[0048]
为了生成给定样本的输出分布,生成神经网络160能够通过各自具有256个滤波器的两个卷积层从跳过连接传递输出,然后使用量化逻辑混合物例如具有10个分量的混合物来对样本值上的输出分布进行建模。
[0049]
图3是用于生成低分辨率输入的高分辨率版本的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的带宽扩展系统,例如图1的带宽扩展系统100,能够执行过程300。
[0050]
系统获得输入的低分辨率版本(步骤302)。例如,系统能够通过数据通信网络接收输入的低分辨率版本或者能够对通过数据通信网络接收到的编码输入进行解码以生成低分辨率版本。输入的低分辨率版本包括在第一时间段期间处于第一样本速率的第一数目的样本。
[0051]
系统生成输入的低分辨率版本的表示(步骤304)。如上所述,虽然在一些情况下,系统处理原始低分辨率数据以生成表示,但是在其他情况下,系统使用原始低分辨率数据作为表示。
[0052]
系统通过调节神经网络来处理输入的低分辨率版本的表示以生成调节输入(步骤306)。
[0053]
系统使用生成神经网络来处理调节输入以生成输入的高分辨率版本(步骤308)。输入的高分辨率版本包括在相同的第一时间段期间处于第二较高的样本速率的第二较大数目的样本。
[0054]
图4是用于训练调节神经网络和生成神经网络的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的带宽扩展系统,例如图1的带宽扩展系统100,能够执行过程400。
[0055]
系统400能够重复地执行过程400以重复地更新两个神经网络的参数,即,以联合地训练神经网络。例如,系统能够继续执行过程400持续指定迭代次数,持续指定时间量,或者直到参数的值变化下降至阈值以下为止。
[0056]
系统获得一批地面实况(ground truth)高分辨率输出,即,训练输入的高分辨率版本(步骤402)。换句话说,系统获得具有与待由生成神经网络生成的高分辨率输出相同的分辨率的一批实际数据。
[0057]
系统从训练输入的每个地面实况高分辨率版本生成训练输入的训练低分辨率版本(步骤404)。
[0058]
例如,系统能够通过使用常规的下采样技术来对地面实况高分辨率版本下采样以具有较低分辨率来生成训练低分辨率版本。
[0059]
作为另一示例,系统能够经由通过被设计成在解码之后产生较低分辨率版本的编解码器例如用于音频数据的gsm

fr编解码器或自适应多速率宽带(amr

wb)编解码器来运
行地面实况版本而生成训练低分辨率版本。换句话说,系统通过使用编解码器的音频编码器来对地面实况高分辨率版本进行编码并且然后使用编解码器的解码器来对经编码的地面实况进行解码而生成训练低分辨率版本。
[0060]
系统为每个训练低分辨率版本生成训练低分辨率版本的表示(步骤406),即,如上所述。
[0061]
系统对于每个训练低分辨率版本,依照调节神经网络参数的当前值通过调节神经网络来处理训练低分辨率版本的表示以生成训练调节输入(步骤408)并且依照调节神经网络的参数的当前值使用生成神经网络来处理训练调节输入以生成训练输入的训练高分辨率版本(步骤410)。换句话说,就像在推理期间一样,即,在训练之后,系统从低分辨率版本生成训练输入的高分辨率版本。然而,在训练期间(自回归)生成神经网络的输入以训练输入的地面实况版本的早期高分辨率样本为条件而不是以训练输入的高分辨率版本的已经生成的样本即来自生成神经网络的已经生成的样本为条件的情况下,可以使用教师强制(teacher forcing)。
[0062]
系统然后关于调节神经网络和生成神经网络的参数确定目标函数的梯度,该目标函数对于批次中的每个高分辨率版本测量(i)训练输入的高分辨率版本即地面实况输出与(ii)训练输入的训练高分辨率版本之间的误差(步骤412)。例如,目标函数可以是负对数似然损失函数。因为神经网络被联合地训练,所以系统将梯度从生成神经网络反向传播到调节神经网络中,以便关于调节神经网络的参数计算梯度。
[0063]
系统然后根据所计算的梯度确定对调节神经网络和生成神经网络的参数的当前值的更新,即,通过对所计算的梯度应用适当的更新规则,例如,随机梯度下降学习速率、adam更新规则或rmsprop更新规则(步骤414)。
[0064]
本说明书与系统和计算机程序组件相关地使用术语“被配置成”。对于要被配置成执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了在操作中使该系统执行这些操作或动作的软件、固件、硬件或软件、固件、硬件的组合。对于要被配置成执行特定操作或动作的一个或多个计算机程序意味着该一个或多个程序包括指令,该指令当由数据处理装置执行时,使该装置执行操作或动作。
[0065]
本说明书中描述的主题和功能操作的实施例能够以数字电子电路、以有形地体现的计算机软件或固件、以包括本说明书中公开的结构及其结构等价物的计算机硬件或者以它们中的一个或多个的组合而被实现。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码以用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。可替代地或另外,程序指令能够被编码在人工生成的传播信号上,该传播信号例如是机器生成的电、光或电磁信号,其被生成以对信息进行编码以向适合的接收器装置传输以用于由数据处理装置执行。
[0066]
术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还能够是或者进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。装置除了包括硬件之外还能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理
器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0067]
也可以被称为或者描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序能够以包括编译或解释语言或声明或过程语言的任何形式的编程语言被编写;并且它能够以任何形式被部署,包括适合于在计算环境中使用的作为独立程序或者作为模块、组件、子例行程序或其它单元。程序可以但是不需要对应于文件系统中的文件。程序能够被存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;在专用于所述所讨论的程序的单个文件中或者在多个协调文件中,例如存储代码的一个或多个模块、子程序或部分的文件。计算机程序能够被部署为在一个计算机上或者在位于一个站点处或者分布在多个站点上并通过数据通信网络互连的多个计算机上被执行。
[0068]
在本说明书中,术语“数据库”被广泛用于指任何数据的合集:数据不需要以任何特定方式被结构化,或者根本不需要被结构化,并且其能够被存储在一个或多个位置中的存储设备中。因此,例如,索引数据库能够包括多个数据合集,每个数据合集可以被不同地组织和访问。
[0069]
类似地,在本说明书中术语“引擎”被广泛地用于指被编程为执行一个或多个具体功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将被专用于特定引擎;在其它情况下,多个引擎能够在同一计算机或多个计算机上被安装并运行。
[0070]
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还能够由例如fpga或asic的专用逻辑电路执行,或者通过专用逻辑电路和一个或多个编程计算机的组合而被执行。
[0071]
适合于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或者被并入在专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者操作地被耦合为从该一个或多个大容量存储设备接收数据或者将数据传送到该一个或多个大容量存储设备,或者两者。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入在另一设备中,该另一设备例如是移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制器、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器等。
[0072]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd rom和dvd

rom盘。
[0073]
为了提供与用户的交互,本说明书中描述的主题的实施例能够在计算机上被实现,该计算机具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示器)监视器,以及用户能够通过其向计算机提供输入的键盘和定点指向设备,例如是鼠标
或轨迹球。其它种类的设备能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到请求而向用户的设备上的web浏览器发送网页。另外,计算机能够通过向个人设备,例如,正在运行消息传送应用的智能电话,发送文本消息或其它形式的消息并且由此从用户接收响应消息来与用户交互。
[0074]
用于实现机器学习模型的数据处理装置还能够包括,例如,用于处理机器学习训练或生产,即,推理、工作负载的公共和计算密集部分的专用硬件加速器单元。
[0075]
机器学习模型能够使用机器学习框架(例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或apache mxnet框架)被实现和部署。
[0076]
本说明书中描述的主题的实施例能够被实现在计算系统中,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如,具有用户通过其能够与本说明书中描述的主题的实现方式交互的图形用户界面、web浏览器或app的客户端计算机,或者包括一个或多个这种后端、中间件或前端组件的任何组合。系统的组件能够通过例如通信网络的任何形式或介质的数字数据通信而被互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。
[0077]
计算系统能够包括客户端和服务器。客户端和服务器一般地通常彼此远离并通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备发送例如html页面的数据,例如,处于向与作为客户端的设备交互的用户显示数据并从该用户接收用户输入的目的。在用户设备处生成的数据,例如,用户交互的结果,能够在服务器处从设备被接收。
[0078]
虽然本说明书包含许多具体实现方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围的限制,而是相反地被解释为对可以特定于特定发明的特定实施例的特征的描述。在本说明书中的单独的实施例的上下文中描述的某些特征也能够在单个实施例中组合地被实现。相反地,在单个实施例的上下文中描述的各种特征也能够单独地或者按照任何适合的子组合在多个实施例中被实现。此外,尽管特征可能在上文被描述按照某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征能够在一些情况下被从该组合中除去,并且要求保护的组合可以被引导为子组合或子组合的变形。
[0079]
类似地,虽然操作按照特定顺序在附图中被描绘并在权利要求书中被记载,但是这不应该被理解为需要这种操作以所示的特定顺序或者以先后顺序被执行,或者需要所有图示的操作被执行以实现预期的结果。在某些情况下,多任务处理和并行处理可以是有益的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中需要这种分离,并且应该理解的是,描述的程序组件和系统一般地能够被一起集成在单个软件产品中或者封装到多个软件产品中。
[0080]
已经描述了主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作能够以不同的顺序被执行并仍然实现预期的结果。作为一个示例,附图
中描绘的过程不一定需要示出的特定顺序或依次的顺序以实现预期的结果。在一些情况下,多任务处理和并行处理可以是有益的。