用于快速音频搜索的方法和设备的制作方法

文档序号:6363808阅读:152来源:国知局
专利名称:用于快速音频搜索的方法和设备的制作方法
技术领域
本公开概要地涉及信号处理和多媒体应用,并且更具体但不排他地,涉及用于快速音频搜索和音频指纹的方法和设备。
2.
背景技术
音频搜索(例如,为某个音频剪辑搜索大的音频流,即使该大的音频流损坏/失真)具有许多应用,包括广播音乐/商业广告的分析、因特网上的版权管理或查找未标记音频剪辑的元数据等等。典型的音频搜索系统是串行的并设计用于单个处理器系统。通常, 此类搜索系统在大的音频流中搜寻目标音频剪辑要很长的时间。然而,在许多情况下,要求音频搜索系统在大的音频数据库中高效工作,例如,以在极短的时间(例如,接近实时)内搜索大的数据库。另外,音频数据库可能已部分或完全失真、损坏和/或压缩。这要求音频搜索系统足够强劲,以识别与目标音频剪辑相同那些音频段,即使那些音频段可能已失真、 损坏和/或压缩。因此,希望具有为目标音频剪辑能够迅速和强劲地搜索大的音频数据库的音频搜索系统。

发明内容
根据第一实施例,本发明提供了一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括将所述音频数据库划分成多个组;为所述目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;以及由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段(a)为所述段建立模型;(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。根据第二实施例,本发明提供了一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括将所述音频数据库划分成多个组;为所述目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;将所述已调度的组的每个组划分成至少一个段;由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。根据第三实施例,本发明提供了一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括将音频数据库划分成多个组;为目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;以及由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段(a)为所述段建立模型;(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。根据第四实施例,本发明提供了一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括将音频数据库划分成多个组;为目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;将所述已调度的组的每个组划分成至少一个段;由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。


从下面的主题的详细说明中将明白公开的主题的特征和优点,其中图1示出一个示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;图2示出另一示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;图3示出仍有的另一示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;图4是执行强劲的音频搜索的示例音频搜索模块的框图;图5是示出图4所示强劲的音频搜索模块如何工作的示例;图6是在多处理器系统中执行强劲的并行音频搜索的示例音频搜索模块的框图;图7A、7B和7C示出将大的音频数据库划分成更小的组以便在多处理器系统中实现强劲的并行音频搜索的方法;以及图8是示出用于在多处理器系统中执行强劲的并行音频搜索的示例过程的伪代码。
具体实施例方式根据本申请中公开的主题的实施例,可使用一种强劲的并行搜索方法,在多处理器系统中为目标音频剪辑搜索大的音频流或大的音频数据库。大的音频数据库可划分成多个更小的组。这些更小的组可动态调度以便由多处理器系统中的可用处理器或处理核处理。处理器或处理核可通过将每个组划分成更小的段,从段中提取声学特征,以及使用公共分量高斯混合模型(“CCGMM”)为段建模来并行处理已调度的组。这些段的长度可与目标音频剪辑的长度相同。在处理任何组之前,一个处理器或处理核可从目标音频剪辑提取声学特征并使用CCGMM为其建模。可进一步计算在目标音频剪辑的模型与组的每个段之间的库尔贝克-莱布勒(Kullkick-Leibler) (KL)或KL-最大(KL-max)距离。如果该距离等于或小于预定值,则对应的段被识别为目标音频剪辑。如果距离大于预定值,则处理器或处理核可跳过一定数量的段并继续搜寻目标音频剪辑。一旦处理器或处理核完成搜索某个组,新的组便可提供给它处理以便搜寻目标音频剪辑,直至搜索了所有组。可确定组的大小以致于减少负载失衡和重叠计算。此外,输入 /输出(I/O)可优化以提高多个处理器或处理核对音频组的并行处理的效率。说明书对公开的主题的“一个实施例”或“实施例”的引用指结合该实施例描述的特定特征、结构或特性包括在公开的主题的至少一个实施例中。因此,在说明书通篇各个位置出现的短语“在一个实施例中”不一定全部指同一个实施例。图1示出一个示例计算系统100,其中可使用音频搜索模块120执行强劲的并行音频搜索。计算系统100可包括耦合到系统互连115的一个或多个处理器110。处理器110 可具有多个或许多处理核(为描述简明起见,术语“多个核”将在下文用于包括多个处理核和许多处理核)。处理器110可包括音频搜索模块120以通过多个核进行强劲的并行音频搜索。音频搜索模块可包括几个组件,如划分机制、调度和多个音频搜索器(参阅下面图 4-6的更详细说明)。音频搜索模块的一个或多个组件可位于一个核中,而其它组件位于另一核中。音频搜索模块可先将大的音频数据库划分成多个更小的组或者将大的音频流划分成更小的部分重叠的子流。其次,一个核可处理要搜寻的音频剪辑(“目标音频剪辑”) 以为目标音频剪辑建立模型。同时,音频搜索模块动态调度更小的音频组/子流到多个核, 这些核并行地将每个组/子流划分成段,并且为每个音频段建立模型。每个段的大小可等于目标音频剪辑的大小。高斯混合模型(“GMM”)具有对包括目标音频剪辑和音频数据库/流的所有音频段公共的多个高斯分量,可用于为每个音频段和目标音频剪辑建模。一旦为音频段建立了模型,便可计算在段模型与目标音频剪辑模型之间的库尔贝克-莱布勒 (“KL”)或KL-最大距离。如果距离不大于预定值,则音频段可被识别为目标音频剪辑。搜索过程可继续,直至处理了所有音频组/子流。计算系统100也可包括耦合到系统互连115的芯片组130。芯片组130可包括一个或多个集成电路封装或芯片。芯片组130可包括一个或多个装置接口 135以支持数据传输到计算系统100的其它组件160和/或从其传输,其它组件160例如,BIOS固件、键盘、 鼠标、存储装置、网络接口等。芯片组130可耦合到外围组件互连(PCI)总线170。芯片组130可包括提供到PCI总线170的接口的PCI桥145。PCI桥145可提供处理器110以及其它组件160与例如音频装置180和磁盘驱动器190等外围装置之间的数据路径。虽然未示出,但其它装置也可耦合到PCI总线170。另外,芯片组130可包括耦合到主存储器150的存储器控制器125。主存储器150 可存储由处理器110的多个核或系统中包括的任何其它装置运行的指令的序列和数据。存储器控制器125可访问主存储器150以响应与处理器110的多个核和计算系统100中其它装置相关联的存储器事务。在一个实施例中,存储器控制器150可位于处理器110或一些其它电路系统中。主存储器150可包括提供可寻址存储位置的各种存储器装置,存储器控制器125可从这些位置读取数据和/或将数据写入这些位置。主存储器150可包括一个多个不同类型的存储器装置,如动态随机访问存储器(DRAM)装置、同步DRAM(SDRAM)装置、双倍数据速率(DDR) SDRAM装置或其它存储器装置。图2示出另一示例计算系统200,其中可使用音频搜索模块240执行强劲的并行音频搜索。系统200可包括多个处理器,如处理器0220A。系统200中的一个或多个处理器可具有许多核。系统200可包括音频搜索模块MO以通过多个核进行强劲的并行音频搜索。音频搜索模块可包括几个组件,如划分机制、调度和多个音频搜索器(参阅下面图4-6 的更详细说明)。音频搜索模块的一个或多个组件可位于一个核中,而其它组件位于另一核中。系统200中的处理器可使用系统互连210相互连接。系统互连210可以是前端总线 (FSB)。每个处理器可通过系统互连连接到输入/输出(IO)装置及存储器230。所有核可从存储器230接收音频数据。图3示出仍有的另一示例计算系统300,其中可使用音频搜索模块340执行强劲的并行音频搜索。在系统300中,连接多个处理器(例如,320A、320B、320C和320D)的系统互连310是基于链路的点对点连接。每个处理器可通过链路集线器(links hub)(例如, 330A、330B、330C和330D)连接到系统互连。在一些实施例中,链路集线器可与协调系统存储器往来信息传送的存储器控制器在相同位置。一个或多个处理器可具有许多核。处理器 300可包括音频搜索模块340以通过多个核进行强劲的并行音频搜索。音频搜索模块可包括几个组件,如划分机制、调度和多个音频搜索器(参阅下面图4-6的更详细说明)。音频搜索模块的一个或多个组件可位于一个核中,而其它组件位于另一核中。系统300中的每个处理器/核可通过系统互连连接到共享存储器(图中未示出)。所有核可从共享存储器接收音频数据。在图2和图3中,音频搜索模块(即,240和340)可先将大的音频数据库划分成多个更小的组或者将大的音频流划分成更小的部分重叠的子流。其次,一个核可处理要搜寻的音频剪辑(“目标音频剪辑”)以为目标音频剪辑建立模型。同时,音频搜索模块动态调度更小的音频组/子流到多个核,这些核并行地将每个组/子流划分成段,并且为每个音频段建立模型。每个段的大小可等于目标音频剪辑的大小。高斯混合模型(“GMM”)具有对包括目标音频剪辑和音频数据库/流的所有音频段公共的多个高斯分量,可用于为每个音频段和目标音频剪辑建模。一旦为音频段建立了模型,便可计算在段模型与目标音频剪辑模型之间的库尔贝克-莱布勒(“KL”)或KL-最大距离。如果距离不大于预定值,则音频段可被识别为目标音频剪辑。搜索过程可继续,直至处理了所有音频组/子流。图4是执行强劲的音频搜索的示例音频搜索模块400的框图。音频搜索模块400包括特征提取器410、建模机制420和决策器430。特征提取器410可接收输入音频流(例如,目标音频剪辑、大的音频流的子流等),并从输入音频流提取声学特征。在输入音频流是为目标音频剪辑要搜索的音频流时,特征提取器可在音频流上应用滑动窗口以将它划分成多个重叠的段。窗口具有与目标音频剪辑相同的长度。输入音频流的每个段(目标音频流只具有一个段)还进一步分离成帧。每个帧可具有相同的长度并且可与其相邻帧重叠。 例如,在一个实施例中,帧长度可以是20毫秒,帧之间的重叠为10毫秒。可为每个帧提取特征向量,特征向量可包括诸如傅立叶系数、美尔频率倒谱系数(Mel-Frequency cepstral coefficient)、谱平坦度、均值、方差及其其它导数等特征。来自音频段中所有帧的特征向量形成特征向量序列。两个相邻段之间的重叠是为了降低丢失两个相邻段之间任何目标音频剪辑的可能性。重叠越长,丢失的可能性越低。在一个实施例中,重叠可等于段的长度减去帧的长度以避免丢失任何匹配。然而,更长的重叠意味着更多的计算。因此,在计算负载与丢失可能性之间应存在平衡(例如,重叠等于或小于1/2的段长度)。任何情况下,用于两个段之间重叠的帧的特征向量只需要提取一次。建模机制420可基于特征提取器410提取的音频段特征向量序列,为音频段建立模型。根据使用的模型,建模机制将估计用于模型的参数。在一个实施例中,公共分量高斯混合模型(“CCGMM”)可用于为音频段建模。CCGMM包括跨所有段公共的多个高斯分量。对于每个段,建模机制估计用于公共高斯分量的混合加权的特定集合。在另一个实施例中,其它模型(例如,隐马尔可夫模型)可用于为音频段建模。在一个实施例中,可只为目标音频剪辑建模;并且音频段的特征向量序列可直接用于确定音频段是否基本上与目标音频剪辑相同。决策器430可确定输入音频流中的某个音频段是否足够类似,使得该音频段能被识别为目标音频剪辑的副本。为实现此目标,决策器可通过比较音频段的模型与目标音频剪辑的模型而得出相似性度量。在一个实施例中,相似性度量可以是两个模型之间计算的距离。在另一个实施例中,相似性度量可以是音频段模型与目标音频剪辑模型相同的概率。 而在又一个实施例中,相似性度量可以通过比较音频段的特征向量序列与目标音频剪辑的模型而得出。例如,在隐马尔可夫模型(“HMM”)用于为目标音频剪辑建模时,基于维特比的算法可用于基于音频段的特征向量序列和目标音频剪辑的HMM,计算在音频段与目标音频剪辑之间的似然得分。基于相似性度量的值,决策器可确定音频段是否能被识别为目标音频剪辑。例如, 如果相似性度量的值不大于预定阈值(例如,相似性度量是音频段模型与目标音频剪辑之间的距离),则音频段可被识别为基本上与目标音频剪辑相同。类似地,如果相似性度量的值不小于预定阈值(例如,相似性度量是音频段基本上与目标音频剪辑相同的似然得分), 则音频段可被识别为基本上与目标音频剪辑相同。另一方面,如果基于相似性度量而发现音频段基本上不同于目标音频剪辑,则可跳过紧接该音频段随后的一定数量的段。要跳过的段的实际数量将取决于经验数据和/或相似性度量的值。通过跳过多个随后的段,不太可能在相似性度量指示当前段与目标音频剪辑极不相同时丢失任何目标音频剪辑,这是因为用于将输入音频流划分成段的窗口逐渐向前滑动,并且因此从一个段到下一个段存在相似性度量的持续性。
图5是示出图4所示强劲的音频搜索模块如何工作的示例。目标音频剪辑510由特征提取器接收,该提取器在框530A将该剪辑分段成帧,并产生特征向量序列640),每帧一个特征向量。特征向量可以是χ维向量(其中,x>= 1),这是因为特征向量可包括一个或多个参数。在框570A,特征向量序列540可使用如下所示的GMM建模
权利要求
1.一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括 将所述音频数据库划分成多个组;为所述目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;以及由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段(a)为所述段建立模型;(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
2.如权利要求1所述的方法,其中划分所述音频数据库包括为所述多个组的每个组确定大小,确定所述大小以减少所述多个组的并行处理中的负载失衡和所述多个组中的重叠计算的量。
3.如权利要求1所述的方法,其中建立所述目标音频剪辑的所述模型包括从所述目标音频剪辑提取特征向量序列(FVS),并为所述FVS建模。
4.如权利要求1所述的方法,其中所述至少一个段的每一个在时间上具有与所述目标音频剪辑的长度相同的长度。
5.一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括 将所述音频数据库划分成多个组;为所述目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;将所述已调度的组的每个组划分成至少一个段;由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。
6.如权利要求5所述的方法,其中对于每个段,所述方法包括(a)为所述段提取特征向量序列(“FVS”),以及(b)为所述段的所述FVS建模,以确定所述段的模型;(c)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(d)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(e)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
7.一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括将音频数据库划分成多个组; 为目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器;以及由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段(a)为所述段建立模型;(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
8.如权利要求7所述的物品,其中划分所述音频数据库包括为所述多个组的每个组确定大小,确定所述大小以减少所述多个组的并行处理中的负载失衡和所述多个组中的重叠计算的量。
9.如权利要求7所述的物品,其中为所述目标音频剪辑建立模型包括从所述目标音频剪辑提取特征向量序列(FVQ,并基于多个高斯分量对来自所述目标音频剪辑的所述FVS 进行建模。
10.如权利要求9所述的物品,其中对来自所述目标音频剪辑的所述FVS进行建模包括为所述多个高斯分量的每个分量估计混合加权。
11.如权利要求7所述的物品,其中所述至少一个段的每一个在时间上具有与所述目标音频剪辑的长度相同的长度。
12.一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括将音频数据库划分成多个组; 为目标音频剪辑建立模型;调度所述多个组到所述多处理器系统中的多个处理器; 将所述已调度的组的每个组划分成至少一个段; 由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑; 其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。
13.如权利要求12所述的含有指令的物品,所述指令在由多处理器平台运行时促使所述多处理器平台对于每个段执行操作,包括(a)为所述段提取特征向量序列(“FVS”),以及(b)为所述段的所述FVS建模,以确定所述段的模型;(c)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;(d)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及(e)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
全文摘要
本发明的名称是“用于快速音频搜索的方法和设备”。根据本申请中公开的主题的实施例,可使用一种强劲的并行搜索方法,在多处理器系统中为目标音频剪辑搜索大的音频数据库。该大的音频数据库可划分成多个更小的组,这些组动态调度到系统中的可用处理器。处理器可通过将每个组划分成更小的段,从段中提取声学特征,以及使用公共分量高斯混合模型(“CCGMM”)为段建模来并行处理已调度的组。一个处理器也可从目标音频剪辑提取声学特征并使用CCGMM为其建模。可进一步计算在目标音频剪辑与每个段之间的库尔贝克-莱布勒(KL)距离。基于KL距离,可确定匹配目标音频剪辑的段;和/或可跳过多个随后的段。
文档编号G06F17/30GK102456077SQ20121002126
公开日2012年5月16日 申请日期2006年7月3日 优先权日2006年7月3日
发明者Y·陈 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1