CN102456077A - 用于快速音频搜索的方法和设备 - Google Patents
用于快速音频搜索的方法和设备 Download PDFInfo
- Publication number
- CN102456077A CN102456077A CN2012100212612A CN201210021261A CN102456077A CN 102456077 A CN102456077 A CN 102456077A CN 2012100212612 A CN2012100212612 A CN 2012100212612A CN 201210021261 A CN201210021261 A CN 201210021261A CN 102456077 A CN102456077 A CN 102456077A
- Authority
- CN
- China
- Prior art keywords
- segment
- target audio
- audio clip
- groups
- audio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 36
- 239000013598 vector Substances 0.000 claims description 30
- 238000000638 solvent extraction Methods 0.000 claims description 15
- 239000000203 mixture Substances 0.000 abstract description 5
- 230000007246 mechanism Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 11
- 238000011524 similarity measure Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000005192 partition Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229940037201 oris Drugs 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的名称是“用于快速音频搜索的方法和设备”。根据本申请中公开的主题的实施例,可使用一种强劲的并行搜索方法,在多处理器系统中为目标音频剪辑搜索大的音频数据库。该大的音频数据库可划分成多个更小的组,这些组动态调度到系统中的可用处理器。处理器可通过将每个组划分成更小的段,从段中提取声学特征,以及使用公共分量高斯混合模型(“CCGMM”)为段建模来并行处理已调度的组。一个处理器也可从目标音频剪辑提取声学特征并使用CCGMM为其建模。可进一步计算在目标音频剪辑与每个段之间的库尔贝克-莱布勒(KL)距离。基于KL距离,可确定匹配目标音频剪辑的段;和/或可跳过多个随后的段。
Description
本申请是申请日为2006年7月3日、申请号为200680055729.2、发明名称为“用于快速音频搜索的方法和设备”的申请的分案申请。
背景
1.技术领域
本公开概要地涉及信号处理和多媒体应用,并且更具体但不排他地,涉及用于快速音频搜索和音频指纹的方法和设备。
2.背景技术
音频搜索(例如,为某个音频剪辑搜索大的音频流,即使该大的音频流损坏/失真)具有许多应用,包括广播音乐/商业广告的分析、因特网上的版权管理或查找未标记音频剪辑的元数据等等。典型的音频搜索系统是串行的并设计用于单个处理器系统。通常,此类搜索系统在大的音频流中搜寻目标音频剪辑要很长的时间。然而,在许多情况下,要求音频搜索系统在大的音频数据库中高效工作,例如,以在极短的时间(例如,接近实时)内搜索大的数据库。另外,音频数据库可能已部分或完全失真、损坏和/或压缩。这要求音频搜索系统足够强劲,以识别与目标音频剪辑相同那些音频段,即使那些音频段可能已失真、损坏和/或压缩。因此,希望具有为目标音频剪辑能够迅速和强劲地搜索大的音频数据库的音频搜索系统。
发明内容
根据第一实施例,本发明提供了一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括:
将所述音频数据库划分成多个组;
为所述目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;以及
由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段:
(a)为所述段建立模型;
(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;
(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及
(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
根据第二实施例,本发明提供了一种用于在多处理器系统中为目标音频剪辑搜索音频数据库的方法,包括:
将所述音频数据库划分成多个组;
为所述目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;
将所述已调度的组的每个组划分成至少一个段;
由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;
其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。
根据第三实施例,本发明提供了一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括:
将音频数据库划分成多个组;
为目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;以及
由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑,包括将所述已调度的组的每个组划分成至少一个段,并且对于每个段:
(a)为所述段建立模型;
(b)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;
(c)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及
(d)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
根据第四实施例,本发明提供了一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括:
将音频数据库划分成多个组;
为目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;
将所述已调度的组的每个组划分成至少一个段;
由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;
其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。
附图说明
从下面的主题的详细说明中将明白公开的主题的特征和优点,其中:
图1示出一个示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;
图2示出另一示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;
图3示出仍有的另一示例计算系统,其中可使用音频搜索模块执行强劲的并行音频搜索;
图4是执行强劲的音频搜索的示例音频搜索模块的框图;
图5是示出图4所示强劲的音频搜索模块如何工作的示例;
图6是在多处理器系统中执行强劲的并行音频搜索的示例音频搜索模块的框图;
图7A、7B和7C示出将大的音频数据库划分成更小的组以便在多处理器系统中实现强劲的并行音频搜索的方法;以及
图8是示出用于在多处理器系统中执行强劲的并行音频搜索的示例过程的伪代码。
具体实施方式
根据本申请中公开的主题的实施例,可使用一种强劲的并行搜索方法,在多处理器系统中为目标音频剪辑搜索大的音频流或大的音频数据库。大的音频数据库可划分成多个更小的组。这些更小的组可动态调度以便由多处理器系统中的可用处理器或处理核处理。处理器或处理核可通过将每个组划分成更小的段,从段中提取声学特征,以及使用公共分量高斯混合模型(“CCGMM”)为段建模来并行处理已调度的组。这些段的长度可与目标音频剪辑的长度相同。在处理任何组之前,一个处理器或处理核可从目标音频剪辑提取声学特征并使用CCGMM为其建模。可进一步计算在目标音频剪辑的模型与组的每个段之间的库尔贝克-莱布勒(Kullback-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可包括音频搜索模块240以通过多个核进行强劲的并行音频搜索。音频搜索模块可包括几个组件,如划分机制、调度和多个音频搜索器(参阅下面图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将该剪辑分段成帧,并产生特征向量序列(540),每帧一个特征向量。特征向量可以是x维向量(其中,x>=1),这是因为特征向量可包括一个或多个参数。在框570A,特征向量序列540可使用如下所示的GMM建模:
GMM,P(k)(x)包括具有分量加权均值和协方差的M个高斯分量,其中i=1,2,...,M;其中,k表示段k,并且N()表示高斯分布。对于目标音频剪辑,只有一个段,因此无需使用k识别段。然而,对于输入音频流520,一般有不止一个段,并且因此希望识别对于不同段的GMM。
在图5所示的示例中,库尔贝克-莱布勒(KL)或KL-最大距离用作相似性度量。为简化KL-最大距离计算,假设用于所有音频段的GMM共享高斯分量的公共集合,即,对于第i个高斯分量,均值(μi)和方差(∑i)跨不同音频段相同。因此,等式(1)变为:
对于每个音频段,只需要对公共高斯分量估计加权的集合,i=1,2,...,M。给定对于段k的特征向量序列,该序列具有T个特征向量,xt(t=1,2,...,T),加权可估计如下:
为目标音频剪辑510要被搜索的输入音频流520,可由特征提取器接收。在框530B,特征提取器将输入音频流划分成部分重叠的段。对于每个段,特征提取器还将段划分成多个部分重叠的帧并从每个帧提取特征向量。框560示出对于输入音频流520的特征向量序列,并且也示出音频流如何划分成部分重叠的段。例如,大小与目标音频剪辑长度相同的窗口可应用到输入音频流520。为了说明的目的,示出了获得段560A的用于目标音频剪辑的特征向量序列的窗口,但由于只有一个段,一般无需将窗口应用于目标音频剪辑。移动的窗口应用到输入音频流以获得多个部分重叠的段,如560B和560C。从段560B到段560C移动时间τ,其中,τ小于窗口大小。
每个音频段使用CCGMM建模,例如,段560B在框570B建模,而段560C在框570C建模。用于输入音频流520的每个段和用于目标音频剪辑510的模型具有带不同加权集合的公共高斯分量。在一个实施例中,特征向量可从逐帧从整个输入音频流提取以产生用于整个输入音频流的长特征向量序列。长度为NxFL(其中,N是正整数,并且FL是帧长度)的窗口随后应用到长的特征向量序列。窗口内的特征向量构成用于音频段的特征向量,该向量用于建立CCGMM。窗口向前移动τ时间。
要确定段是否基本上与目标音频剪辑相同,可如下计算段的模型与目标音频剪辑之间的KL-最大距离:
如果如此计算的KL-最大距离低于预定阈值,则音频剪辑可视为被检测到。在应用到输入音频流520上的窗口在时间中向前移动时,距离一般示出从一个时间步到下一时间步的一定持续性。换言之,如果距离太大,则紧接当前段随后的一个或多个段不太可能匹配目标音频剪辑。因此,根据距离的值,可跳过搜索相同音频流/子流中紧接地随后的一定数量的段。
图6是在多处理器系统中执行强劲的并行音频搜索的示例音频搜索模块600的框图。音频搜索模块600包括划分机制610、调度程序620、I/O优化器630及多个音频搜索器(例如,640A、...、640N)。划分机制610可将大的音频流划分成多个更小的子流和/或将大的音频数据库划分成多个更小的组。图7A、7B和7C示出将大的音频数据库划分成更小的组以便在多处理器系统中实现强劲的并行音频搜索的方法。图7A示出包含单个大的音频流710的示例数据库。划分机制可将音频流710划分成多个更小的子流,如712、714和716,每个子流构成一个组。子流的长度能够互不相同,但为简明起见,它通常是一致的。为避免丢失目标音频剪辑的任何正确检测,每个子流与其紧接地随后的子流重叠;并且两个相邻子流(例如,712和714,714和716)之间的重叠应等于或长于FNClip-1,其中,FNClip是目标音频剪辑中的帧总数。
图7B示出包括多个较小音频流(例如,720、725、730、735和740)的另一示例数据库。在一个实施例中,划分机制610可将数据库划分成多个更小的组,每个组只由一个音频流构成。在另一个实施例中,如图7B所示,划分机制可将数据库划分成多个更小的组,其中一些组的每个只由一个音频流构成,而其它组的每个由不止一个小的音频流构成。图7C示出还有的另一示例数据库,该数据库包括一些较小的音频流(例如,750,755和760)及一些大的音频流(例如,770)。划分机制可将那些较小的音频流置于组中,每个组只由一个音频流构成或者一些组只由一个音频流构成(例如,750),而其它组由不止一个小的音频流构成(例如,755和760可分组在一起)。对于诸如770等大的音频流,划分机制可通过使用如图7A中所示的方法,将它划分成多个部分重叠的更小子流(例如,712和714),每个子流构成一个组。
另外,划分机制将大的音频数据库划分成大小适当的组,以减少多个处理器并行处理中的负载失衡和重叠计算(在大的音频流划分成多个重叠的更小子流的情况下)。更小的组大小可产生大的重叠计算,而更大的组大小可导致相当大的负载失衡。在一个实施例中,组大小可以是目标音频剪辑大小的大约25倍。
转回到图6,调度程序620可将大的数据库的多个组动态调度到多处理器系统中的多个处理器中,每个处理器一次有一个组处理。调度程序定期检查系统中处理器的可用性,并指配音频组以供每个可用处理器处理以及搜寻目标音频剪辑。如果另一处理器随后变为可用,则调度程序可将一个组指配到此处理器。调度程序在处理器完成搜索其以前指配的组后立即将未搜索的音频组指配到处理器,而无论其它处理器是否完成其搜索。实际上,即使对于大小相同的组,搜寻相同的目标音频剪辑对于不同处理器可占用不同的时间量,这是因为要跳过的段数从一个段到另一个段可以不同。使用如上概述的动态调度可进一步有效地减少负载失衡。
I/O优化器630可优化系统互连(例如,连接共享系统存储器与系统中处理器的系统总线)上的I/O信息传送。I/O优化器可决定在开始时不从磁盘将要搜寻的整个音频数据库加载到存储器中,同时为每个处理器定义数据范围。另外,I/O优化器可让每个处理器一次只从存储器读取部分其指配的段。通过优化I/O信息传送,I/O优化器可减少I/O争用,实现I/O操作和计算的重叠,并有助于提高计算效率。因此,音频搜索的可扩展性能大大提高。
音频搜索模块音频600也包括多个音频搜索器640A到640N。每个音频搜索器(例如,640A)位于处理器中以便处理指配到处理器的组和搜寻目标音频剪辑。类似于图4中所示的音频搜索模块400,音频搜索器包括特征提取器(例如,410)、建模机制(例如,420)和决策器(例如,430)。每个音频搜索器通过将指配到它的音频组中的音频流划分成长度与目标音频剪辑相同的部分重叠的段,为每个段提取特征向量序列以及使用如等式(1)到(4)中所示的CCGMM为每个段建模,为目标音频剪辑对指配到它的音频组进行串行活动搜索。另外,由所有音频搜索器使用的用于目标音频剪辑的CCGMM只需由音频搜索器之一估计一次。每个音频搜索器计算用于每个段的模型与目标音频剪辑之间的KL-最大距离。基于KL-最大距离,音频搜索器可确定是否检测到目标音频剪辑。另外,如果对于当前段的KL-最大距离大于阈值,则每个音频搜索器可跳过在当前段随后的多个段。
图8是示出用于在多处理器系统中执行强劲的并行音频搜索的示例过程800的伪代码。在802行,可初始化音频搜索模块,例如,可打开目标音频剪辑文件和音频数据库文件,并且可初始化全局参数。在804行,可如图7A、7B和7C所示将大的音频数据库划分成NG个更小的组。在806行,可为目标音频剪辑建立模型(例如,CCGMM)。在808行,可动态调度NG个音频组到可用处理器,并且可开始已调度的组的并行处理。808行使用建立并行实现的一个示例指令,并且其它的并行实现指令也可使用。
810行到846行示出多处理器系统中的处理器如何并行处理NG个组的每个组及搜寻目标。值得注意的是,为便于说明,812到846行中的过程示为从第一个组开始,直至最后一个组的迭代。实践中,如果有几个处理器可用,则几个组由这些可用处理器并行处理。在814行,每个组中的一些或所有音频流如果在时间上比目标音频剪辑更长,则这些流可进一步划分成NS个部分重叠的段。816行开始对于组的每个段的迭代过程,在818行到832行中示出。在820行,可从段提取特征向量序列(逐帧)。在822行,可为段建立模型(例如,如等式(1)到(3)中所示的CCGMM)。在824行,可计算在段模型与目标音频剪辑模型之间的距离(例如,如等式(4)中所示的KL-最大距离)。在826行,可基于在824行中计算的距离和预定阈值#1,确定段是否匹配目标音频剪辑。如果距离小于阈值#1,则段匹配目标音频剪辑。在828行,可基于824行中计算的距离和预定阈值#2,确定是否可跳过搜索相同音频流/子流中随后的多个段(例如,M个段)。如果距离大于阈值#2,则可跳过搜索M个段。在一个实施例中,要跳过的段数可视距离值而变化。在830行,搜索结果(例如,每个组中匹配段的索引或开始时间)可存储在处理组的处理器本地的阵列中。在842行,来自所有处理器的本地阵列的搜索结果可汇总并输出给用户。
使用如图8概述的强劲的并行搜索策略以及诸如I/O优化等其它技术,可在多处理器系统中大大提高在大的音频数据库中对目标音频剪辑的搜索速度。一个实验示出,与对相同的目标音频剪辑进行相同的音频流的串行搜索相比,在27小时音频流中对15秒目标音频剪辑的搜索速度在16路(16-way)Unisys系统上增大了11倍。
在一个实施例中,可使用修改的搜索策略。使用此策略,可为目标音频剪辑的前K个帧(K>=1)建立初步模型(例如,CCGMM)以及用于整个目标音频剪辑的完整模型。因此,初步模型(例如,CCGMM)可先为音频段的前K个帧(K>=1)建立。在活动搜索期间,每个音频段的前K个帧的初步模型可先与目标音频剪辑的前K个帧的初步模型进行比较以产生初步相似性度量。如果初步相似性度量指示这两个初步模型明显类似,则完整的模型可为整个音频段建立并与整个目标音频剪辑的完整模型进行比较;否则,将不为音频段建立完整的模型,并且可通过先为下一个段的前K个帧建立初步模型并将此初步模型与目标音频剪辑的初步模型进行比较而搜索下一个段。此修改的搜索策略可进一步减少计算负载。
虽然公开的主题的示例实施例是参照图1-8中的框图和流程图进行描述,但本领域的技术人员将容易理解,可备选地使用许多实现公开的主题的其它方法。例如,可更改流程图中框的运行顺序,和/或可更改、消除或组合所述框/流程图中的一些框。
在上述说明中,已描述了公开的主题的各种方面。为便于解释,陈述了特定的数字、系统和配置以便提供主题的详尽理解。然而,受益于此公开的本领域的技术人员将明白,可无需这些特定细节而实践主题。在其它情况下,忽略、简化、组合或分离了熟知的特征、组件或模块以便不混淆公开的主题。
公开的主题的各种实施例可以硬件、固件、软件或其组合的形式实现,并且可参照或者结合程序代码进行描述,如指令、函数、过程、数据结构、逻辑、应用程序、用于模拟、仿真的格式或设计表示及设计的制造,在程序代码由机器访问时可导致机器执行任务,定义抽象数据类型或低端硬件上下文,或者产生结果。
对于仿真,程序代码可表示使用硬件描述语言或另一功能性描述语言的硬件,这些语言实质上提供设计的硬件预期如何执行的模型。程序代码可以是汇编或机器语言或可编译和/或解释的数据。此外,在本领域中以一种或另一种形式将软件表述为采取动作或产生结果是常见的。此类表述只是表示使处理器执行动作或产生结果的处理系统运行程序代码的一种简短方式。
程序代码可存储在例如易失性和/或非易失性存储器中,如存储装置和/或相关联机器可读或机器可访问介质,包括固态存储器、硬盘驱动器、软盘、光储存器、磁带、闪存、记忆棒、数字视频磁盘、数字多功能光盘(DVD)等及更奇特的介质,如机器可访问生物状态保持储存器。机器可读介质可包括用于以机器可读形式存储、发射或接收信息的任何机制,并且介质可包括有形介质,通过它可传递将程序代码编码的载波或电、光、声或其它形式的传播信号,如天线、光纤、通信接口等。程序代码可以分组、串行数据、并行数据、传播信号等形式发射,并且可以压缩或加密格式使用。
程序代码可在可编程机器上运行的程序中实现,可编程机器例如有移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机及其它电子装置,每个机器包括处理器、可由处理器读取的易失性和/或非易失性存储器、至少一个输入装置和/或一个或多个输出装置。程序代码可应用到使用输入装置输入的数据以执行所述实施例和生成输出信息。输出信息可应用到一个或多个输出装置。本领域的技术人员可理解,公开主题的实施例能以各种计算机系统配置实践,包括多处理器或多核处理器系统、微型计算机、大型计算机及实际上可嵌入任何装置的普通或微型计算机或处理器。公开主题的实施例也能在分布式计算环境中实践,在这些环境中,任务可由通过通信网络链接的远程处理装置执行。
虽然操作可描述为有序过程,但一些操作实际上可并行、同时和/或在分布式环境中执行,并且程序代码存储在本地和/或远程以便由单或多处理器机器访问。另外,在不脱离公开主题的精神的情况下,在一些实施例中可重新安排操作的顺序。程序代码可由嵌入式控制器使用或结合嵌入式控制器使用。
虽然公开的主题已参照说明性实施例描述,但此描述并无限制意义。公开的主题的相关领域的技术人员明白,说明性实施例的各种修改及主题的其它实施例均应视为在公开的主题的范围内。
Claims (13)
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所述的物品,其中为所述目标音频剪辑建立模型包括从所述目标音频剪辑提取特征向量序列(FVS),并基于多个高斯分量对来自所述目标音频剪辑的所述FVS进行建模。
10.如权利要求9所述的物品,其中对来自所述目标音频剪辑的所述FVS进行建模包括为所述多个高斯分量的每个分量估计混合加权。
11.如权利要求7所述的物品,其中所述至少一个段的每一个在时间上具有与所述目标音频剪辑的长度相同的长度。
12.一种包括含有指令的机器可读介质的物品,所述指令在由多处理器平台运行时促使所述多处理器平台执行操作,包括:
将音频数据库划分成多个组;
为目标音频剪辑建立模型;
调度所述多个组到所述多处理器系统中的多个处理器;
将所述已调度的组的每个组划分成至少一个段;
由所述多个处理器并行处理所述已调度的组以搜寻所述目标音频剪辑;
其中如果在音频流中有不止一个段,则每个段与紧接在该段前的段部分地重叠。
13.如权利要求12所述的含有指令的物品,所述指令在由多处理器平台运行时促使所述多处理器平台对于每个段执行操作,包括:
(a)为所述段提取特征向量序列(“FVS”),以及
(b)为所述段的所述FVS建模,以确定所述段的模型;
(c)计算在所述段的所述模型与所述目标音频剪辑的所述模型之间的距离;
(d)如果所述距离满足预定阈值,则确定所述段匹配所述目标音频剪辑;以及
(e)如果所述距离不满足预定阈值,则跳过处理一定数量的段,段的所述数量取决于所述距离的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210021261.2A CN102456077B (zh) | 2006-07-03 | 2006-07-03 | 用于快速音频搜索的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210021261.2A CN102456077B (zh) | 2006-07-03 | 2006-07-03 | 用于快速音频搜索的方法和设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800557292A Division CN101553799B (zh) | 2006-07-03 | 2006-07-03 | 用于快速音频搜索的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102456077A true CN102456077A (zh) | 2012-05-16 |
CN102456077B CN102456077B (zh) | 2014-11-05 |
Family
ID=46039265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210021261.2A Expired - Fee Related CN102456077B (zh) | 2006-07-03 | 2006-07-03 | 用于快速音频搜索的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102456077B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841932A (zh) * | 2012-08-06 | 2012-12-26 | 河海大学 | 一种基于内容的音频语义特征相似度比较方法 |
CN104252480A (zh) * | 2013-06-27 | 2014-12-31 | 深圳市腾讯计算机系统有限公司 | 一种音频信息检索的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453252B1 (en) * | 2000-05-15 | 2002-09-17 | Creative Technology Ltd. | Process for identifying audio content |
CN1755796A (zh) * | 2004-09-30 | 2006-04-05 | 国际商业机器公司 | 文本到语音转换中基于统计技术的距离定义方法和系统 |
-
2006
- 2006-07-03 CN CN201210021261.2A patent/CN102456077B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841932A (zh) * | 2012-08-06 | 2012-12-26 | 河海大学 | 一种基于内容的音频语义特征相似度比较方法 |
CN104252480A (zh) * | 2013-06-27 | 2014-12-31 | 深圳市腾讯计算机系统有限公司 | 一种音频信息检索的方法和装置 |
CN104252480B (zh) * | 2013-06-27 | 2018-09-07 | 深圳市腾讯计算机系统有限公司 | 一种音频信息检索的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102456077B (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7908275B2 (en) | Method and apparatus for fast audio search | |
US11763149B2 (en) | Fast neural network implementations by increasing parallelism of cell computations | |
US11393457B2 (en) | Complex linear projection for acoustic modeling | |
Mikolov et al. | Strategies for training large scale neural network language models | |
US7325008B2 (en) | Searching multimedia databases using multimedia queries | |
US9477925B2 (en) | Deep neural networks training for speech and pattern recognition | |
US10777188B2 (en) | Time-frequency convolutional neural network with bottleneck architecture for query-by-example processing | |
US9697475B1 (en) | Additive context model for entity resolution | |
US11854536B2 (en) | Keyword spotting apparatus, method, and computer-readable recording medium thereof | |
Srikanthan et al. | Implementing the dynamic time warping algorithm in multithreaded environments for real time and unsupervised pattern discovery | |
Seki et al. | Vectorized Beam Search for CTC-Attention-Based Speech Recognition. | |
CN102456077B (zh) | 用于快速音频搜索的方法和设备 | |
US8639510B1 (en) | Acoustic scoring unit implemented on a single FPGA or ASIC | |
Katsurada et al. | Evaluation of fast spoken term detection using a suffix array | |
KR101071017B1 (ko) | 고속 오디오 검색을 위한 방법 및 장치 | |
JP5210440B2 (ja) | 高速音声検索のための方法、プログラムおよび装置 | |
Fu et al. | Unified speculation, detection, and verification keyword spotting | |
Dogaru et al. | RD-CNN: A compact and efficient convolutional neural net for sound classification | |
Furui et al. | Cluster-based modeling for ubiquitous speech recognition. | |
Kim et al. | Efficient dynamic filter for robust and low computational feature extraction | |
Kim et al. | Multi-user real-time speech recognition with a GPU | |
Liu et al. | Speech recognition systems on the Cell Broadband Engine processor | |
Cai et al. | Unsupervised auditory scene categorization via key audio effects and information-theoretic co-clustering | |
Gajjar et al. | Online unsupervised pattern discovery in speech using parallelization. | |
JP5755603B2 (ja) | 言語モデル作成装置、言語モデル作成方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141105 Termination date: 20190703 |
|
CF01 | Termination of patent right due to non-payment of annual fee |