使用相干性的信号分量估计
1.优先权声明
2.本技术要求于2019年5月1日提交的标题为“signal component estimation using coherence”的美国申请62/841,608的优先权,该申请的全部内容以引用方式并入本文。
背景技术:3.许多音频系统在空间中检测声音并产生声音,诸如汽车音频系统、会议室系统、电话系统等。这些系统可包括回放换能器,例如扬声器,并且还可包括一个或多个麦克风。在各种示例中,空间中的声能可包括由系统播放的音频、期望的信号(诸如用户语音)以及来自其他源的音频,该音频可包括噪声。来自音频系统的回放音频可为例如娱乐音频、来自远端参与者的音频或其他音频。一个或多个麦克风可接收这些声学信号中的任一者或全部,并且对于各种应用,可存在对估计麦克风信号中的任何回放音频、噪声或其他信号分量的功率谱密度(psd)的益处。
技术实现要素:4.在一个方面,提供了一种用于估计所选择的信号分量的功率谱密度的方法,该方法包括在一个或多个处理设备处接收表示使用麦克风捕获的音频的输入信号。该输入信号至少包括表示来自环境中的第一音频源(例如,第一扬声器)的声学输出的第一部分和表示环境中的其他声能的第二部分(诸如噪声分量)。该方法还包括由一个或多个处理设备迭代地修改输入信号的频域表示。所修改的频域表示表示输入信号的一部分,在该部分中由于除了第一部分或第二部分中的所选择的一者之外的全部而导致的影响显著减小。该方法还可包括根据所修改的频域表示来确定对所选择的部分的功率谱密度的估计。
5.在另一方面,提供了一种包括具有一个或多个处理设备的信号分析引擎的系统。该信号分析引擎被配置为接收表示使用麦克风捕获的音频的输入信号。该输入信号至少包括表示来自环境中的第一音频源(例如,第一扬声器)的声学输出的第一部分和表示环境中的其他声能的第二部分(诸如噪声分量)。信号分析引擎还被配置为迭代地修改输入信号的频域表示。所修改的频域表示表示输入信号的一部分,在该部分中由于除了第一部分或第二部分中的所选择的一者之外的全部而导致的影响显著减小。信号分析引擎还被配置为根据所修改的频域表示来确定对所选择的部分的功率谱密度的估计。
6.在另一方面,本文档的特征在于一个或多个机器可读存储设备,该一个或多个机器可读存储设备具有在其上编码的用于使一个或多个处理设备执行各种操作来执行上述方法或实施上述系统的计算机可读指令。
7.上述方面的具体实施可以包括以下特征中的一个或多个。
8.在各种示例中,输入信号可包括附加部分,附加部分中的每个表示环境中的附加音频源(例如,附加扬声器)。所选择的部分可为附加部分中的任一者。
9.所选择的部分可为第二部分,并且所估计的功率谱密度可表示环境中的其他声
能,诸如噪声。此类噪声估计功率谱密度可由降噪系统用于减少来自麦克风信号的噪声和/或可用于替换静态通信系统中的噪声。所选择的部分可为第一部分,并且所估计的功率谱密度可表示回声,该回声可应用于残余回声抑制系统。针对每个频率窗口,频域表示可包括以下各项中的一者或多者:(i)各自表示一个或多个音频源的声学输出之间的相干水平的值,(ii)各自表示音频源中的特定一个音频源的声学输出与输入信号之间的相干水平的值,以及(iii)各自表示音频源中的单独一个音频源的特定频率窗口的声学输出的功率的值。频域表示可包括基于一个或多个音频源的输出而计算的交叉频谱密度矩阵。迭代地修改频域表示可包括对交叉频谱密度矩阵执行矩阵对角化过程。
10.在一些具体实施中,本文所述的技术可提供以下优点中的一者或多者。
11.通过导出输入信号的所选择部分的功率谱密度,可直接计算关于所选择部分的频率特定信息(该频率特定信息可在各种应用中直接使用),而不会在确定所选择部分的时间波形时浪费计算资源。可基于使用单个麦克风捕获的输入信号来实现的技术可利用多个(输入)音频源来扩展。高度相关的输入音频源可简单地通过省略本文所述的矩阵运算中的一个或多个行缩减步骤来处理。在一些情况下,这可相对于在存在相关源时经常发生故障的自适应滤波技术提供显著改进。
12.本公开中所述的两个或更多个特征,包括本发明内容部分中所述的那些,可组合以形成在本文未具体描述的实施方式。
13.一个或多个具体实施的细节在附图和以下描述中论述。其他特征、对象和优点在说明书、附图和权利要求书中将是显而易见的。
附图说明
14.图1是用于调整车辆车厢内输出音频的示例性系统的框图。
15.图2是其中可实现本文所述的技术的示例性环境的框图。
16.图3是可用于实现本文所述的技术的示例性系统的框图。
17.图4是用于估计噪声信号的功率谱密度的示例性过程的流程图。
具体实施方式
18.本文档中描述的技术涉及将噪声信号与表示来自音频系统和噪声源两者的所捕获的音频的麦克风信号分离。这可用于例如汽车音频系统中,该汽车音频系统响应于车辆车厢内变化的噪声条件而连续且自动地调整音频再现,以提供均匀/一致的感知音频体验。这还可用于降低麦克风信号的噪声内容,例如,用于免提通信应用,诸如通过频谱减法或后滤波,和/或用于在远端静止(不存在传输信号)时估计要添加到电话线路的“舒适噪声”。
19.此类音频系统可包括麦克风,该麦克风通常放置在车辆车厢内以测量噪声。此类系统可取决于将系统音频的贡献与麦克风信号中的噪声分离。本文档描述了涉及基于估计成对的声换能器之间的相干性以及每个声换能器和麦克风信号之间的相干性来从麦克风信号移除来自多个声换能器或音频系统的多个输入通道的贡献的技术。使用频域中的矩阵运算迭代地完成估计和移除,该矩阵运算直接生成时变噪声的功率谱密度的估计。直接计算此类频率特定信息而不首先估计噪声的对应时域估计导致计算资源的节省,特别是对于其中针对不同频带单独进行增益调整的音频系统。本文所述的技术可使用由单个麦克风捕
获的信号来实现,并且可扩展以用于增加底层音频系统中的通道/声换能器的数量。
20.图1是用于调整车辆车厢内输出音频的示例性系统100的框图。首先分析输入音频信号105以确定输入音频信号105的当前水平。这可例如通过源分析引擎110来完成。并行地,噪声分析引擎115可被配置为分析车辆车厢内存在的噪声的水平和分布。在一些具体实施中,噪声分析引擎可被配置为利用多个输入,诸如麦克风信号104和一个或多个辅助噪声输入106,包括例如指示车辆速度、加热、通风和空调系统(hvac)的风扇速度设置等的输入。在一些具体实施中,可部署响度分析引擎120来分析源分析引擎110的输出和噪声分析引擎115的输出,以计算保持音频输出的感知质量所需的任何增益调整。在一些具体实施中,目标snr可指示在存在稳态噪声的情况下在车辆车厢内感知到的输入音频105的质量/水平。响度分析引擎可被配置为生成控制增益调整电路125的控制信号,该控制信号继而可能在不同频带中单独地调整输入音频信号105的增益,以执行调整(例如,音调调整),从而生成输出音频信号130。
21.麦克风信号104可包括来自底层音频系统的声换能器和噪声源两者的贡献。本文所述的技术涉及将来自系统音频的贡献与麦克风信号104分离,使得残余信号(在从系统音频中去除贡献之后)可被视为对可在进一步处理步骤中使用的噪声的估计。图2是其中可实现本文所述的技术的示例性环境200的框图。环境200包括生成系统音频的多个声换能器202a至202n(统称为202)。在一些具体实施中,声换能器202在多个通道中生成系统音频。在一些具体实施中,音频输入通道可直接用作系统的输入,而不是音频输出。例如,系统音频可包括2个通道(例如,在立体声配置中)或6个通道(在5.1环绕配置中)。其他通道配置也是可能的。
22.在图2中,麦克风信号104(如使用麦克风206捕获的)被表示为y(n),其中n是离散时间索引。从各个声换能器202辐射的音频信号被表示为x
i
(n),并且声换能器202和麦克风206之间的对应信号路径被表示为a
iy(n)
。外部噪声由信号w(n)表示。因此,图2的系统可表示为:
[0023][0024]
其中*表示线性卷积操作。在频域中,公式(1)表示为:
[0025][0026]
其中每个变量的大写形式指示频域对应物。
[0027]
本文档描述了在给定源信号x
i(n)
和麦克风信号y(n)的情况下噪声信号w(n)的瞬时测量值(例如,能级、功率谱密度)的计算。传递函数h
iy(n)
被假定为变化的和未知的。在一些具体实施中,可使用使用单个麦克风206捕获的麦克风信号并使用相干概念来确定噪声信号的瞬时测量值。在确定噪声信号的瞬时测量值时,可例如在多个输入源中的每一者和麦克风之间执行多个相干计算。
[0028]
对于仅有两个声换能器的情况,公式(2)变为:
[0029]
y=h
1y
x1+h
2y
x2+w
ꢀꢀꢀ
(3)
[0030]
输入信号和输出信号的自动频谱和交叉频谱的估计可在交叉频谱矩阵中计算和集合如下:
[0031][0032]
在一些具体实施中,噪声信号的瞬时测量值可被确定为车厢噪声g
ww
的自动频谱,该自动频谱为在与输入x1和x2相关的内容已被移除之后,麦克风信号g
yy
的残余自动频谱。这可表示为g
yy
·
1,2
,即基于输入x1和x2调节的麦克风信号g
yy
的自动频谱。用于从两个信号b和c的交叉频谱中移除与一个信号a相关的内容的通式由下式给出:
[0033][0034]
对于自动频谱g
bb
,公式(4)中的置换b=c得到:
[0035][0036]
其中为a和b之间的相干,使得g
bb
·
a
为b的自动频谱中与a不相干的部分。将与一个信号相关的内容从所有剩余信号中移除等同于在交叉频谱矩阵上执行高斯消除的一个步骤。如果上述交叉频谱矩阵的第一行乘以并且从第二行中减去乘积,则第一个对角化步骤产生:
[0037][0038]
公式(6)表示用于重新写入矩阵的元素(2,2)和(2,3)的调节交叉频谱的公式。继续迭代对角化过程,将公式(6)右侧的交叉频谱矩阵的第一行乘以并从第三行减去乘积,得到:
[0039][0040]
公式(7)的右侧表示迭代矩阵对角化过程中的点,其中从其他信号的自动频谱和交叉频谱中移除与第一音频输入相干的内容,并且右下角中的2
×
2交叉频谱矩阵表示基于第一信号调节的残余自动频谱和交叉频谱。涉及第二音频输入的项被修改为考虑到其中两个音频输入不是完全独立的而是具有一些相关性(例如,如左立体声通道和右立体声通道的情况)的情况。为了进一步减小来自麦克风信号的第二音频输入的影响,可在右下角的2
×
2矩阵上继续矩阵对角化(例如,通过高斯消除)。这可包括将第二行乘以并从第三行中减去乘积:
[0041][0042]
对角线中的最后一个元素g
yy
·
1,2
是基于两个音频输入调节的麦克风信号的自动频谱,该自动频谱基本上是噪声自动频谱g
ww
的估计。因此,如上所述,输入信号的频域表示的迭代修改经由去除由于各种声源的贡献来产生噪声信号的功率谱密度的估计。
[0043]
对于具有更多音频输入源(诸如声换能器202)的系统,可根据需要扩展上述迭代过程,以从剩余信号逐个减少每个音频输入的内容的影响。在一些具体实施中,音频输入的子集可为线性相关的(例如,当立体声对被上行混合到更多通道时,例如,对于5.1或7.1配置)。在此类情况下,在行缩减系数的分母中使用的对角项(例如,上述g
22
·1)可具有低值(在一些情况下可能为零),这继而可导致数值问题。在此类情况下,可省略使用该特定行的行缩减。例如,如果这意味着第二声换能器的输出的原始自动频谱中99%的功率已被涉及第一声换能器的输出的自动频谱和交叉频谱的操作考虑。因此,可避免使用第二声换能器的输出的单独行缩减,而不会显著影响噪声估计。
[0044]
该技术的可扩展性方面参考图3示出,该图示出了可用于实现本文所述的技术的示例性系统的框图。在一些具体实施中,该系统包括上文参考图1所述的噪声分析引擎115,其中噪声分析引擎115接收驱动对应声换能器202的信号x
i(n)
作为输入。噪声分析引擎115还接收麦克风206捕获的麦克风信号y(n)作为输入。
[0045]
在一些具体实施中,噪声分析引擎115被配置为从麦克风206捕获/使用n个系统音频源x
i(n)
,i=1,2,...,n的时间段以及y(n)的时间段。在一些具体实施中,噪声分析引擎被配置为对时间段应用适当的窗口化。噪声分析引擎115还被配置为从每个输入的时间段计算频域表示。例如,噪声分析引擎115可计算窗口化时间段的傅里叶变换以获得频谱x
i
(f)和y(f)。这些频谱基本上表示信号的短时间傅里叶变换(stft)的一个时间片段。噪声分析引擎115还被配置为计算交叉频谱密度矩阵,例如,通过形成乘积并对若干时间片段求平均值以生成以下矩阵的表示:
[0046][0047]
其中并且g
yy
=e{y
*
y}。在一些具体实施中,可通过应用单阶低通滤波器来近似操作e{
·
}。
[0048]
对于迭代过程,噪声分析引擎115被配置为在矩阵的行上使用矩阵对角化过程(例如,高斯消除)来制作矩阵上三角形,如下所述:
[0049][0050]
其中g
ii.j!
是基于所有先前的源x
k
(n),k=1,2,...,j调节的信号x
i
(n)的自动频谱。如上所述,如果所使用的特定对角项较小(例如,小于阈值),则为了数值稳定性,可省略行缩减步骤。
[0051]
上三角形矩阵中对角线上的最后一个元素g
yy
·
x
是基于所有系统音频源信号x
i
(n),i=1,2,...,n调节的麦克风信号y(n)的功率谱密度,并且可被认为等同于并非由于已知系统音频内容而导致的车厢噪声的功率谱密度估计g
ww
。功率谱密度为频率向量的形式,并且因此提供关于噪声的频率特定信息。
[0052]
上述步骤导出对应于一个特定时间段的噪声估计。该过程可针对后续时间段重复以提供对噪声的运行瞬时测量值。噪声的此类瞬时测量值可用于进一步处理,诸如用于根据瞬时噪声调整音频系统的增益。在一些具体实施中,可以针对不同频带(诸如对应于低音、中音和高音的范围)单独执行此类增益调整。
[0053]
总的来说,本文所述的技术可用于通过自动且动态地调整由移动车辆中的音频系统播放的音乐或语音信号来减轻可变噪声对收听体验的影响。在一些具体实施中,该技术可用于促进一致的收听体验,而通常不需要大量的手动干预。例如,音频系统可包括与一个或多个噪声检测器通信的一个或多个控制器。噪声检测器的示例包括放置在车辆的车厢内的麦克风。麦克风通常放置在用户耳朵附近的位置处,例如沿着客车车厢的车顶衬放置。噪声检测器的其他示例可包括能够测量引擎每分钟转数的速度计和/或电子换能器,该速度
计和/或电子换能器继而可提供指示客车车厢中感知的噪声水平的信息。控制器的示例包括但不限于处理器,例如微处理器。音频系统可包括源分析引擎110、响度分析引擎120、噪声分析引擎115和增益调整电路125中的一者或多者。在一些具体实施中,音频系统的一个或多个控制器可用于实现上述引擎中的一者或多者。
[0054]
图4是根据本文所述的技术的用于估计噪声的功率谱密度的示例性过程400的流程图。在一些具体实施中,可至少部分地由以上描述的噪声分析引擎115执行过程400的操作。过程400的操作包括接收表示使用麦克风捕获的音频的输入信号,该输入信号包括表示来自一个或多个音频源的声学输出的第一部分和表示噪声分量的第二部分;(410)。在一些具体实施中,麦克风设置在车辆车厢内。第一部分可包括例如来自一个或多个音频源的声学输出,如由麦克风和对应声换能器之间的信号路径所处理的。在一些具体实施中,第一部分表示来自三个或更多个音频源的声学输出。
[0055]
过程400的操作还可包括迭代地修改输入信号的频域表示,使得所修改的频域表示表示输入信号的一部分,在该部分中由于第一部分所导致的影响显著减小(420)。频域表示可基于输入信号的时间段。在一些具体实施中,针对每个频率窗口,频域表示包括:各自表示来自两个或更多个中的一对音频源的声学输出之间的相干水平的值;各自表示一个或多个音频源中的特定音频源的声学输出与使用麦克风捕获的音频之间的相干水平的值;以及各自表示一个或多个音频源中的单独音频源的特定频率窗口的声学输出的功率的值。在一些具体实施中,各自表示来自两个或更多个中的一对音频源的声学输出之间的相干水平的值包括用于两个或更多个中的多对音频源的每个排列的一个值。在一些具体实施中,各自表示一个或多个音频源中的特定音频源的声学输出与使用麦克风捕获的音频之间的相干水平的值包括一个或多个音频源中的每个音频源的两个值。在一些具体实施中,各自表示一个或多个音频源中的单独音频源的特定频率窗口的声学输出的功率的值包括一个或多个音频源中的每个音频源的一个值。
[0056]
在一些具体实施中,频域表示可包括基于一个或多个音频源的输出而计算的交叉频谱密度矩阵。迭代地修改频域表示可包括对交叉频谱密度矩阵执行矩阵对角化过程。
[0057]
过程400的操作还包括根据修改的频域表示来确定噪声的功率谱密度的估计(430),以及生成控制信号,该控制信号被配置为调整声换能器的对应于一个或多个频率范围的一个或多个增益(440)。生成的控制信号可基于噪声的功率谱密度的估计。例如,声换能器的一个或多个增益被调整为随着噪声的功率谱密度的估计的增大而增大,并且随着功率谱密度的估计的减小而减小。
[0058]
在各种示例中,图4的框410、420和430所示的方法可用于与生成控制信号(440)不同的目的。例如,噪声的估计功率谱密度可例如应用于后滤波器处理以减少噪声。在其他示例中,可从输入信号(该输入信号可为麦克风信号)的总功率谱密度中减去噪声的估计功率谱密度,从而得到麦克风信号中的回声分量的功率谱密度的估计。回声分量的估计功率谱密度可例如应用于后滤波器处理以减少回声。一般来讲,由任何输入信号(例如,源信号x
i
(n)或噪声信号w(n))贡献的功率谱密度可由本文所述的系统、方法和过程估计,并且用于各种目的中的任一种。
[0059]
在各种示例中,如所述的高斯消除可在交叉功率谱密度矩阵上执行,例如,如参考图3所述,以识别和/或移除从任何特定参考信号贡献的任何信号的分量。原则上,在具有一
个或多个输入以及一个或多个输出的任何线性系统中,可应用所述多相干方法(例如,交叉功率谱密度,之后是矩阵对角化(高斯消除))来估计构成输出信号的每个分量(例如,输入信号)的贡献的功率谱密度。在各种示例中,无论输入信号是相关的还是不相关的,都可应用上述方法。
[0060]
例如,输入信号可被视为参考信号,并且在各种示例中,输出信号的总功率谱密度由以下构成:由输入信号贡献的分量的所有交叉功率谱密度加上不由任何输入信号贡献的任何分量的功率谱密度的总和。在各种示例中,不由任何输入信号贡献的输出信号的分量是“噪声”信号。
[0061]
例如,图2可被视为示出具有多个输入信号(例如,源信号x
i
(n))和输出信号(例如,麦克风信号y(n))的系统。输出信号包括表示来自每个输入信号(源信号x
i
(n))的贡献的分量和不由输入信号(例如噪声信号w(n))贡献的附加分量。每个贡献分量的功率谱密度的估计和附加分量的功率谱密度的估计可通过如本文各种示例中所述的处理来确定,诸如参考图3并且贯穿本公开(在本文中有时称为多相干方法)所示和所述的处理。
[0062]
在一些示例中,输出信号(例如y(n))可为期望的信号和噪声的叠加。例如,如果麦克风用于接收车辆车厢内或房间内的音频内容,则期望的信号可为由音频系统回放的内容。正在播放的信号是系统已知的输入信号,因此将用作参考信号。为了降低来自麦克风信号的噪声水平,可使用多相干方法来估计噪声的功率谱密度。在一些示例中,从麦克风信号频谱中频谱减去所估计的噪声频谱,使得所修改的麦克风信号将具有较低的噪声。
[0063]
在一些示例中,多相干方法可用于残余回声减少/抑制。例如,在回声消除系统中,多相干方法可用于估计残余回声信号频谱,然后从回声消除器输出中减去以进一步降低残余回声的水平。此类减法可为频谱减法。在此类示例中,输入(近端)语音信号(例如,来自麦克风)可为参考信号,并且多相干方法可以通过高斯消除操作过程估计残余回声(例如,来自远端语音信号)的功率谱密度。可通过从待传输的信号中减去回声频谱来减少回声消除系统的输出中的残余回声。各种示例可使用该方法来减少由音频系统在例如电话会话期间播放的任何音频回放(例如,远端语音信号和娱乐、导航等)引起的回声分量。
[0064]
一些示例可使用多相干方法来估计例如电话系统中的适当舒适噪声。有时将舒适噪声信号添加到线路以确保用户即使在不存在从远端传输的(期望的)信号的情况下系统已经变得静止时(例如,另一个对话参与者没有说话),线路仍然连接。多相干方法可用于估计功率谱密度和原始噪声的总体水平以产生对应的舒适噪声,从而允许两者之间的无缝且透明的过渡。在一些示例中,已知的测试或训练信号可用作发射器处的输入信号,从而在接收器处提供参考信号。
[0065]
本说明书中描述的主题和功能操作的实施方案可在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件中(包括本说明书中公开的结构及其结构等同物)或在它们中的一者或多者的组合中实现。本说明书中描述的主题的实施方案可被实现为一个或多个计算机程序,即,在有形非暂态存储介质上编码的用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可为机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一者或多者的组合。
[0066]
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的所有类型的装
置、设备和机器,包括例如可编程数字处理器、数字计算机或多个数字处理器或计算机。该装置还可为或还包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可任选地包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一者或多者的组合的代码。
[0067]
计算机程序也可被称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本或代码,可用任何形式的编程语言编写,包括编译或解释语言,或说明性或过程语言,并且计算机程序可用任何形式部署,包括作为独立程序或作为模块、部件、子例程或适合在计算环境中使用的其他单元。计算机程序可但不必对应于文件系统中的文件。程序可存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,存储在专用于所考虑的程序的单个文件中,或存储在多个协调文件中,例如存储一个或多个模块、子程序或代码的部分的文件中。计算机程序可被部署在一个计算机上或在一个站点或多个站点分布以及通过数据通信网络互联的多个计算机上执行。
[0068]
本说明书中描述的过程和逻辑流可由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流也可由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可被实现为专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))。对于一个或多个计算机的系统来说,“被配置为”执行特定操作或动作,意味着系统上已经安装了在操作中使得系统执行这些操作或动作的软件、固件、硬件或它们的组合。对于一个或多个计算机程序来说,“被配置为”执行特定操作或动作,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使得该装置执行操作或动作。
[0069]
例如,适用于执行计算机程序的计算机可基于通用或专用微处理器或两者,或任何其他类型的中央处理单元。一般来讲,中央处理单元将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的基本元件是用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。一般来讲,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘),或者计算机可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或向其传送数据,或两者。然而,计算机不需要具有此类设备。此外,计算机可嵌入另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。
[0070]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及cd rom和dvd
‑
rom盘。处理器和存储器可由专用逻辑电路补充或结合到专用逻辑电路中。
[0071]
本说明书中所述的各种系统或其部分的控制可在计算机程序产品中实现,该计算机程序产品包括存储在一个或多个非暂态机器可读存储介质上并且可在一个或多个处理设备上执行的指令。本说明书中所述的系统或其部分可被实现为可包括一个或多个处理设备和存储器以存储用于执行本说明书中所述的操作的可执行指令的装置、方法或电子系统。
[0072]
虽然本说明书包含许多特定实施细节,但这些特定实施细节不应理解为对任何权
利要求的范围或对可受权利要求书保护的范围的限制,而应理解为对可特定于特定发明的特定实施方案的特征的描述。本说明书中在单独实施方案的上下文中描述的某些特征也可在单个实施方案中组合实现。相反,在单个实施方案的上下文中描述的各种特征也可单独地或以任何合适的子组合在多个实施方案中实现。此外,尽管特征可在上文中被描述为在某些组合中起作用并且甚至最初如此受权利要求书保护,但是在某些情况下,可以从组合中去除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可涉及子组合或子组合的变型。
[0073]
类似地,虽然在附图中以特定顺序描绘了操作,但这不应被理解为要求以所示的特定次序或按顺序执行此类操作,或者要求执行所有所示的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方案中的各种系统模块和部件的分离不应被理解为在所有实施方案中需要此类分离,并且应当理解,所述程序部件和系统通常可集成在单个软件产品中或封装到多个软件产品中。
[0074]
已描述了本主题的特定实施方案。其他实施方案也在以下权利要求书的范围内。例如,权利要求书中所述的动作可用不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。