具体实施方式
在以下对本发明的较佳实施例的描述中,参考附图,附图形成了本发明的一部分,并在其中作为说明示出了可在其中实践本发明的具体实施例。可以理解,可在不脱离本发明的范围的情况下使用其它实施例或作出结构上的改变。
1.0
示例性操作环境
图1示出了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非暗示对本发明的使用范围或功能的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、诸如蜂窝电话和PDA等手持式、膝上或移动计算机或通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,包括存储器存储设备。参考图1,用于实现本发明的示例系统包括以计算机110形式的通用计算装置。
计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器130包括易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图1示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
图1讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。
其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、无线电接收器或电视或广播视频接收器等等。这些和其它输入设备通常通过耦合至系统总线121的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN 173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
现在已讨论了示例性操作环境,本描述的剩余部分将专用于讨论实现用于自动标识和分割媒体流中的重复媒体对象的系统和方法的程序模块和过程。
2.0
介绍
本发明所描述的“对象提取器”自动标识并分割包括重复和非重复对象的媒体流中的重复对象。“对象”被定义成当由人类听众或观众如此标识时,可被认为是逻辑单元的不可忽略持续时间的任一部分。例如,人类听众可收听无线电台,或收听或观看电视台或其它媒体广播流,并容易地在非重复节目和广告、广告语以及其它经常重复的对象之间进行区分。然而,自动区分媒体流中的相同,如重复的内容一般是一个困难的问题。
例如,得自典型的流行无线电台的音频流可随时间的推移包含相同对象的许多重复,包括,例如歌曲、广告语、广告和电台标识。类似地,得自典型的电视台的音频/视频媒体流可随时间的推移包含相同对象的许多重复,包括,例如商业广告、广告、电视台标识、或紧急事件广播信号。然而,这些对象通常在媒体流中在无法预测的时刻出现,并且经常被用于捕捉或记录媒体流的任一采集过程所引起的噪声破坏。
此外,诸如无线电广播等典型的媒体流中的对象通常被每一对象的起点和/或终点处的画外音破坏。此外,这些对象经常被缩短,即,它们不被从头开始播放或完整地播放至结束。另外,这些对象通常被有意地失真。例如,通过无线电台的音频广播通常使用压缩器、均衡器或若干其它时间/频率效果的任一种来处理。此外,诸如音乐或歌曲、典型无线电台上的广播等音频对象通常与它们之前或之后的音乐或歌曲交叉衰落,由此使音频对象的起点和终点变得模糊,并向对象添加了失真或噪声。对媒体流的这类操纵对本领域的技术人员是众所周知的。最后,应当注意,这类破坏或失真的任一个或所有可个别或组合地出现,并且在本描述中,它们被称为“噪声”,除它们被个别地明确涉及之外。因此,在这类含噪声的环境中,这些对象的标识以及对这些对象定位端点是一个具有挑战性的问题。
本发明描述的对象提取器成功地解决了这些和其它问题,同时提供了许多优点。例如,除提供收集关于媒体流内的媒体对象的统计信息的有用技术之外,媒体流的自动标识和分割允许用户自动访问流内期望的内容,或相反,自动绕过媒体流中不需要的内容。其它优点包括仅标识和储存媒体流的期望内容的能力;为特殊处理标识目标内容的能力;去除噪声或消除多次检测到的对象的能力;以及通过仅储存多次检测到的对象的单个副本更有效地实现流的能力。
一般而言,重复媒体对象的自动标识和分割通过比较媒体流的部分以在媒体流中查找重复媒体内容的区域或部分来实现。在一个测试实施例中,重复对象的标识和分割通过直接比较媒体流的分段以标识流的匹配部分、然后对齐匹配的部分以标识对象端点来实现。
在另一实施例中,重复媒体对象的自动标识和分割通过采用一套以音频和/或视频媒体中的不同方面为目标用于标识可能对象的对象依赖算法来实现。一旦在流中标识了可能的对象,将对象确认为重复对象是通过在自动例示的动态对象数据库中自动搜索潜在匹配的对象、之后在可能的对象与一个或多个潜在匹配对象之间进行详细比较来实现的。然后通过与该对象的其它重复副本自动对齐和比较来自动确定对象的端点。
后文描述的各种替换实施例用于通过限制媒体流的先前标识的部分的搜索,或通过在搜索媒体流之前首先查询先前标识的媒体对象的数据库来显著地提高媒体对象标识的速度。此外,在一个相关的实施例中,在对应于足够长以允许媒体对象的一个或多个重复实例的时间段的分段中分析媒体流,随后如需要,查询数据库然后搜索媒体流。
2.1
系统概述
一般而言,标识对象的重复实例包括首先例示或初始化用于储存诸如到媒体流内的媒体对象位置的指针、用于特征化那些媒体对象的参数信息、用于描述这类对象的元数据、对象端点信息或对象本身的副本等信息的空“对象数据库”。注意,这些信息的任一种或所有可在单个对象数据库中,或在任意数量的数据库或计算机文件中维护。然而,为讨论的清晰性,贯穿整个讨论,将参考单个数据库作为上述信息。注意,在一个替换实施例中,使用包括用于特征化预标识的对象的参数信息的预先存在的数据库来替代空数据库。然而,尽管这一预先存在的数据库可加速初始对象标识,然而随着时间的推移,它无法比当在流内查找对象时用参数信息填充的最初为空的数据库提供明显更好的性能。
在任一情况下,一旦对象数据库(无论为空或是预先存在的)可用,下一步骤涉及在期望的时间段上捕捉并储存至少一个媒体流。期望的时间段可以从分钟到小时,或从日到周,或更长。然而,基本要求是样本时间段必须足够长,以使对象能够在流内开始重复。对象的重复允许当在流内查找对象时标识对象的端点。如本发明所讨论的,对象的重复允许当在流内查找对象时标识对象的端点。在另一实施例中,为将存储需求最小化,使用用于压缩音频和/或视频内容的任一期望的常规压缩方法来压缩储存的媒体流。这类压缩技术对本领域中的技术人员是众所周知的,并且不需在此讨论。
如上所述,在一个实施例中,重复对象的自动标识和分割通过比较媒体流的部分以查找媒体流内重复媒体内容的区域或部分来实现。具体地,在本实施例中,从媒体流选择媒体流的一个部分或窗。窗的长度可以是任一期望的长度,但是通常不应当太短,以至于提供极少或不提供有用的信息,也不应当太长,以至于潜在地包含多个媒体对象。在一个测试实施例中,发现大约为所搜寻的类型的重复对象的平均长度的二到五倍的窗或分段能够产生较好的结果。该部分或窗可从媒体流的任一端开始选择,或甚至可从媒体流中随机地选择。
下一步,将所选择的媒体流的部分直接与媒体流的相似大小的部分相比较,试图查找媒体流的匹配分段。这些比较继续,直到为查找匹配已搜索了整个媒体流,或直到实际定位了匹配,取决于哪一情况最先出现。对于选择部分来与媒体流比较,可从媒体流的任一端开始顺序地取出与选择的分段或窗进行比较的部分,或甚至可从媒体流中随机取出,或者当算法指示所搜寻的类别的对象在当前分段中存在的概率时选择该部分。
在该测试实施例中,一旦通过直接比较媒体流的部分标识了匹配,然后可通过对齐匹配部分来定位对象的端点,以实现重复对象的标识和分割。注意,由于每一对象包括噪声,并可以被缩短或剪切,因此如上所述,不论在起点或终点,对象的端点不总是能清晰地划界的。然而,即使是在这一含噪声的环境中,通过使用诸如简单模式匹配、对齐匹配部分之间的互相关峰值、或用于对齐匹配信号的任一其它常规技术等众多常规技术对齐匹配部分,可定位近似的端点。一旦被对齐,可通过在媒体流中穿过匹配部分的边界反向和前向跟踪以定位媒体流的两个部分岔开之处的那些端点,来标识端点。由于重复媒体媒体对象通常不以每次它们被广播的完全一样的顺序来播放,因此观察到用于在媒体流中定位端点的这一技术能够令人满意地在媒体流中定位媒体对象的起点和终点。
可选地,如上所述,在一个实施例中,使用了一套算法以音频和/或视频媒体的不同方面为目标,用于计算对标识媒体流中的对象有用的参数信息。这些参数信息包括对标识特定对象有用的参数,并且由此,所计算的参数信息的类型取决于要搜寻的对象的类别。注意,可使用用于比较媒体对象的相似性的众多众所周知的常规的基于频率、时间、图像或能量的技术,来标识潜在的对象匹配,取决于要分析的媒体流的类型。例如,对于音频流中的音乐或歌曲,这些算法包括,例如计算媒体流中诸如短窗中每分钟的节拍、立体声信息、短间隔上的每通道的能量比、以及特定频带的频率含量等容易计算的参数;比较媒体的较大分段以找出其频谱中的实质相似性;储存可能的候选对象的样值;以及学习标识任何重复的对象。
在该实施例中,一旦获取了媒体流,检查储存的媒体流来确定搜寻类的对象,即,歌曲、广告语、视频、广告等在要检查的流的一部分中存在的概率。然而,应当注意,在一个替换实施例中,在媒体流被储存时实时检查媒体流,以确定当前搜寻对象在媒体流内存在的概率。注意,实时或后存储媒体流检查实质上以同一方式处理。一旦搜寻对象存在的概率达到预定阈值,则自动在上述数据库中记录该可能对象在流中的位置。注意,如由需要,可提高或降低这一检测或相似性阈值,以调整流中对象检测的敏感度。
给定这一实施例,一旦在流中标识了可能对象,计算用于特征化可能对象的参数信息,并在数据库查询或搜索中使用该信息以标识与先前标识的可能对象的可能对象匹配。数据库查询的目的仅是确定流的两个部分是否近似相同。换言之,位于流内两个不同时间位置的对象是否近似相同。此外,由于数据库最初为空,当标识了更多可能对象并将它们添加到数据库时,标识可能匹配的似然性自然地随时间增加。
注意,在替换实施例中,由数据库查询返回的潜在匹配的数量被限于期望的最大值,以减少系统额外开销。此外,如上所述,用于将可能对象与数据库中的对象进行比较的相似性阈值是可调整的,以在期望时提高或降低可能匹配的似然性。在又一相关的实施例中,对在媒体流内更频繁地重复的那些对象给予更大的权值,使得那些比较不频繁重复的对象更可能被标识为潜在匹配。在再一实施例中,如果数据库搜索返回了太多的潜在匹配,则提高相似性阈值,以返回较少的潜在匹配。
一旦返回了对可能对象的潜在匹配,在可能对象和一个或多个之间潜在匹配执行更详细的比较,以更肯定地标识可能对象。在这一点上,如果发现可能对象是潜在匹配之一的重复,则将其标识为重复对象,并将其在流内的位置保存到数据库中。相反,如果详细比较显示可能对象不是潜在匹配之一的重复,则将其标识为数据库中的新对象,并将其在流中的位置以及参数信息如上所述地保存到数据库中。然而,在一个替换实施例中,如果对象不被标识为重复对象,则使用较低的相似性阈值作出新的数据库搜索,以标识额外的对象用于比较。再次,如果确定可能对象是重复,则如此标识它,否则,如上所述,将其作为新对象添加到数据库中。
此外,对于先前讨论的实施例,自动确定重复对象的各种实例的端点。例如,如果有一个特定对象的N个实例,则并非它们所有都是完全一样的长度。相反,端点的确定涉及将各种实例相对于一个实例对齐,然后在每一对齐的对象中反向和前向跟踪,以确定每一实例仍近似彼此相等的最远的范围。
应当注意,用于确定搜寻类别的对象在检查的流的一部分中存在的概率的方法、以及用于测试流的两个部分是否近似相同的方法都很大程度上依赖于搜寻的对象的类型(如,音乐、话音、广告、广告语、电台标识、视频等等),而数据库和流内端点位置的确定非常相似,无论搜寻的是何种对象。
在上述实施例的每一个的再一修改中,通过限制媒体流的先前标识的部分的搜索,或通过在搜索媒体流之前首先查询先前标识的媒体对象的数据库,可显著地提高媒体流中媒体对象标识的速度。此外,在一个相关的实施例中,在对应于足以允许媒体对象的一个或多个重复实例的时间段的分段中分析媒体流,如有必要,随后作出数据库查询,然后搜索媒体流。
最后,在另一实施例中,一旦如上所述地确定了端点,从音频流中提取对象并将其储存在个别的文件中。可选地,将指向媒体流内对象端点的指针储存在数据库中。
2.2
系统体系结构
图2的通用系统图示出了上文概述的过程。具体地,图2的系统图示出了用于实现自动标识和分割媒体流中的重复对象的“对象提取器”的程序模块之间的相互关系。应当注意,图2中由断开或虚线表示的框以及框之间的相互连接表示本发明的替换实施例,并且如后文所描述的,这些替换实施例的任一个或所有可结合贯穿本文档描述的其它替换实施例一起使用。
具体地,如图2所示,用于自动标识和分割媒体流中的重复对象的系统和方法通过使用用于捕捉包含音频和/或视频信息的媒体流的媒体捕捉模块200开始。媒体捕捉模块200使用众多常规技术的任一种来捕捉无线电或电视/视频广播媒体流。这一媒体捕捉技术对本领域的技术人员是众所周知的,并且不在此描述。一旦被捕捉,媒体流210储存在计算机文件或数据库中。此外,在一个实施例中,使用用于音频和/或视频媒体的压缩的常规技术来压缩媒体流210。
在一个实施例中,对象检测模块220从媒体流中选择一分段或窗,并将其提供给对象比较模块240,对象比较模块执行该分段和媒体流210的其它分段或窗之间的直接比较,试图查找媒体流的匹配部分。如上所述,由对象比较模块240执行的比较继续,直到为查找匹配已搜索了整个媒体流210,或直到实际定位了匹配,取决于哪一情况首先出现。
在该实施例中,一旦通过由对象比较模块240直接比较媒体流的部分标识了匹配,然后可使用对象对齐和端点确定模块250对齐媒体流的匹配部分,然后从媒体流的部分之间的对齐的中心开始反向和前向搜索来标识每一对象近似相等的最远范围,从而实现重复对象的标识和分割。以这一方式标识每一对象的范围用于标识对象端点。在一个实施例中,该端点信息然后被储存在对象数据库230中。
可选地,在另一实施例中,并非为比较目的简单地选择媒体流的一个窗或分段,而是由对象检测模块首先检查媒体流210,试图标识嵌入在媒体流中的潜在媒体对象。媒体流210的这一检查通过检查表示媒体流的一部分的窗来实现。如上所述,为检测可能对象对媒体流210的检查使用适合所检查的媒体内容的类型的一个或多个检测算法。一般而言,这些检测算法计算用于特征化所分析的媒体流的部分的参数信息。可能媒体对象的检测在后文3.1.1节中更详细描述。
一旦对象检测模块220标识了可能的对象,媒体流210中可能对象的定位或位置被记录在对象数据库230中。另外,由对象检测模块220计算的用于特征化可能对象的参数信息也被储存在对象数据库230中。注意,该对象数据库最初为空,对象数据库230中的第一个条目对应于由对象检测模块220检测到的第一个可能对象。可选地,用来自先前捕捉的媒体流的分析或搜索的结果预填充对象数据库。对象数据库在后文3.1.3节中更详细描述。
在检测媒体流210中的可能对象之后,对象比较模块240然后查询对象数据库230以查找可能对象的潜在匹配,即重复实例。一旦标识了一个或多个潜在匹配,对象比较模块240然后执行可能对象和一个或多个潜在匹配对象之间的详细比较。该详细比较包括表示可能对象和潜在匹配的媒体流部分的直接比较,或表示可能对象和潜在匹配的媒体流部分的较低维版本之间的比较。该比较过程在后文3.1.2节中更详细描述。
下一步,一旦对象比较模块240标识了可能对象的匹配或重复实例,将可能对象标志为对象数据库230中的重复对象。对象对齐和端点确定模块250然后将新标识的重复对象与每一先前标识的对象的重复实例对齐,并在这些对象的每一个中反向和前向搜索,以标识每一对象近似相等的最远范围。以这一方式标识每一对象的范围用于标识对象端点。该端点信息然后被储存在对象数据库230中。对象端点的对齐和标识在后文3.1.4节中更详细描述。
最后,在另一实施例中,一旦由对象对齐和端点确定模块250标识了对象端点,对象提取模块260使用端点信息以将对应于那些端点的媒体分段复制到个别媒体对象270的单独文件或数据库中。同样注意,在另一实施例中,使用媒体对象270替代表示对可能对象的潜在匹配的媒体流部分,用于上述可能对象和潜在匹配的较低维版本之间的比较。
重复上文描述的过程,递增由对象检测模块220分析的媒体流210的部分,例如,通过使用滑动窗,或通过将窗的起点移动到最后检测的媒体对象的所计算的端点。这些过程继续,直到已检查了整个媒体流,或直到用户终止检查。在实时搜索流的重复对象的情况下,当消耗了预定时间量时,可终止搜索过程。
3.0
操作概述
上述程序模块在用于自动标识并分割媒体流中的重复对象的“对象提取器”中使用。该过程在表示对象提取器的替换实施例的图3A到图5的流程图中描述,之后是用于实现上述程序模块的示例性方法的详细操作讨论。
3.1
操作元素
如上所述,对象提取器操作以自动标识和分割媒体流中的重复对象。标识对象的重复实例的通用方法的工作实例一般包括以下元素:
1.用于确定媒体流的两个部分是否近似相同的技术。换言之,用于确定媒体流中分别位于近似时间位置ti和tj上的媒体对象是否近似相同的技术。见3.1.2节以获得更多的细节。注意,在一个相关实施例中,将用于确定搜寻类别的媒体对象在检查的媒体流部分中存在的概率的技术可能优于用于确定媒体流的两个部分是否近似相同的技术。见3.1.1节以获得更多的细节。
2.用于储存描述特定重复对象的每一定位的实例的信息的对象数据库。该对象数据库包含记录,如指向媒体流中媒体对象位置的指针、用于特征化那些媒体对象的参数信息、用于描述这些对象的元数据、对象端点信息、或对象本身的副本。再次,如上所述,如有需要,对象数据库可以实际上是一个或多个数据库。见3.1.3节以获得更多的细节。
3.用于确定任何标识的重复对象的各种实例的端点的技术。一般而言,该技术首先将每一匹配分段或媒体对象对齐,然后在时间上反向或前向跟踪以确定每一实例仍近似彼此相等的最远范围。这些最远范围一般对应于重复媒体对象的端点。见3.1.4节以获得更多细节。
应当注意,用于确定搜寻类别的媒体对象在检查的媒体流部分中存在的概率的技术,以及用于确定媒体流的两个部分是否近似相同的技术都很大程度上依赖于所搜寻的对象的类型(如,音乐、话音、视频等等),而对象数据库和用于确定任何标识的重复对象的各种实例的端点的技术可以相当相似,无论搜寻的对象的类别或类型如何。
注意,以下讨论参考音频媒体流中音乐或歌曲的检测,以将对象提取器放入上下文中。然而,如上所述,本发明描述的所应用的同一通用方法也可应用到其它类别的对象,如话音、视频、图像序列、电台广告语、广告等等。
3.1.1
对象检测概率
如上所述,在一个实施例中,将用于确定搜寻类别的媒体对象在检查的媒体流部分中存在的概率的技术优于用于确定媒体流的两个部分是否近似相同的技术。前者在媒体流的分段之间作出直接比较的实施例中不是必要的(见3.1.2节);然而,它可极大地提高搜索效率。即,无需将被确定为不可能包含搜寻类别的对象的分段与其它分段进行比较。确定搜寻类别的媒体对象在媒体流中存在的概率通过首先捕捉并检查媒体流开始。例如,一种方法是在通过目标媒体流前进时连续地计算容易计算的参数的矢量,即,参数信息。如上所述,特征化媒体对象类型或类别所需的参数信息完全依赖于对其执行搜索的特定对象类型或类别。
应当注意,用于确定搜寻类别的媒体对象在媒体流中存在的概率的技术通常是不可靠的。换言之,该技术会在许多分段不是大概或可能搜寻对象时将它们分类成大概或可能搜寻对象,由此生成对象数据库中的无用条目。类似地,由于本质上是不可靠的,该技术也无法将许多实际的搜寻对象分类成大概或可能对象。然而,尽管可使用更有效的比较技术,然而将初始大概或可能检测与用于标识重复对象的潜在匹配的稍后的详细比较相组合,用于快速地标识流中大多数搜寻对象的位置。
很清楚,实际上可使用任一参数信息类型来查找媒体流内的可能对象。例如,对于在广播视频或电视流中频繁重复的商业广告或其它视频或音频分段,可通过检查流的音频部分、流的视频部分或两者来查找可能或大概对象。另外,关于这类对象的特征的已知信息可用于设计初始检测算法。例如,电视商业广告的长度往往是15到45秒,并往往被组合成3到5分钟的块。该信息可用于查找视频或电视流中的商业广告或广告块。
例如,对于期望搜索歌曲、音乐或重复话音的音频媒体流,这些用于查找由信息的媒体流中的可能对象的参数信息,由如在短窗上计算的媒体流的每分钟节拍(BPM)、相对立体声信息(如,不同通道的能量与总通道的能量之比)、以及在短间隔上平均的某些频带的能量占用率等信息构成。
另外,特别注意某些参数信息的连续性。例如,如果音频媒体流的BPM在30秒或更长的间隔上保持近似相同,则可采取这一信息作为歌曲对象可能在流中该位置上存在的指示。较短持续时间的恒定BPM提供对象在流内特定位置上存在的较低的概率。类似地,扩展时段上实质立体声信息的存在可指示正在播放歌曲的似然性。
有各种方法来计算近似BPM。例如,在对象提取器的工作实例中,对音频流进行滤波并向下采样,以产生原始流的较低维版本。在一个测试实施例中,发现对音频流进行滤波以产生仅包含范围为0-220Hz的信息的流能够产生较好的BPM结果。然而,应当理解,可根据从媒体流中提取信息内容来检查任一频率范围。一旦对流进行滤波和向下采样,然后可使用每次近似10秒的窗的自相关,来搜索低速率流中的主要峰值,保留最大的两个峰值-BPM1和BPM2。在测试实施例中使用这一技术,如果对于一分钟或更长,BPM1或BPM2近似连续,则可确定搜寻对象(在这一情况下为歌曲)存在。使用中值滤波消除假BPM号。
应当注意,在上述讨论中,大概或可能搜寻对象的标识仅使用特征或参数信息的矢量来完成。然而,在另一实施例中,使用关于已找到对象的信息用于修改这一基本搜索。例如,返回到音频流示例,找到的对象和电台广告语之间的4分钟的间隙是作为可能搜寻对象添加到数据库的非常好的候选者,即使初始搜索未如此标志该间隙。
3.1.2
测试对象相似性
如上所述,确定媒体流的两个部分是否近似相同涉及分别位于媒体流内的两个位置,即ti和tj上的媒体流的两个或多个部分的比较。注意,在一个测试的实施例中,选择要比较的窗或分段的大小大于媒体流内期望媒体对象。因此,可期望仅媒体流的比较分段的部分将实际匹配,而非整个分段或窗,除非在媒体流中以同一顺序持续地播放媒体对象。
在一个实施例中,该比较仅涉及直接比较媒体流的不同部分来标识媒体流中任何匹配。注意,由于媒体流中来自上述源的任一个的噪声的存在,媒体流的两个重复或复制分段不可能完全匹配。然而,用于比较噪声信号来确定这类信号是否为复制或重复实例的技术对本领域的技术人员是众所周知的,因此不在此详细描述。此外,这类直接比较适用于任一信号类型,而无需首先计算用于特征化信号或媒体流的参数信息。
在另一实施例中,如上所述,该比较涉及首先比较媒体流部分的参数信息,来标识对媒体流的当前分段或窗的可能或潜在匹配。
不论是直接比较媒体流部分还是比较参数信息,确定媒体流的两个部分是否近似相同本质上比可能单独对象的检测更可靠(见3.1.1节)。换言之,该确定具有将媒体流的两个不相似时段不正确地分类成相同的较小的概率。因此,当数据库中记录的两个实例被确定是相似的,或者媒体流的两个分段或窗被确定为足够相似,则可确认媒体流的这些记录或部分的确表示重复对象。
这是重要的,因为在首先检查媒体流来查找可能对象的实施例中,可能对象的简单检测可以是不可靠的;即,在数据库中作出被认为是对象的条目,而它们实际上不是。由此,在检查数据库的内容时,对其仅找到一个副本的那些对象仅是大概的搜寻对象或可能对象(即,歌曲、广告语、广告、视频、商业广告等等),但是对其已找到两个或多个副本的那些对象可被认为是具有较高确定性程度的搜寻对象。由此,找出对象的第二副本和随后的副本很大程度上有助于移除媒体流中由简单地检测可能或大概对象所引起的不确定性。
例如,在使用音频媒体流的测试实施例中,当比较参数信息而非执行直接比较时,通过比较其巴克(Bark)频带的一个或多个来比较音频流中的两个位置。为测试位置ti和tj近似相同的推测,对位于每一位置中心的搜寻类别的对象的平均长度的二到五倍的间隔计算巴克频谱。这一时刻仅为方便而选择。下一步,计算一个或多个频带的互相关,并且执行峰值搜索。如果峰值足够强以指示这些巴克频谱基本上是相同的,则推断导出它们的音频分段也基本上相同。
此外,在另一测试实施例中,用若干巴克频谱而非单独一个执行这一互相关测试提高了比较的健壮性。具体地,多频带互相关比较允许对象提取器几乎总是能够正确地标识两个位置ti和tj何时表示近似相同的对象,而很少不正确地指示它们是相同的。对从广播音频流中捕捉的音频数据的测试显示包含700Hz到1200Hz范围内的信号信息的巴克频带特别健壮,并对此目的是可靠的。然而,应当注意,在其它频带上的互相关也可由对象提取器在检查音频媒体流时成功地使用。
一旦确定位置ti和tj表示相同的对象,巴克频带的互相关的峰值位置之差,以及频带之一的自相关允许计算单独对象的对齐。由此,计算调整的位置tj′,它与tj一样对应于歌曲中的同一位置。换言之,比较和对齐计算都显示中心位于ti和tj的音频表示同一对象,但是ti和tj′表示该对象中近似同一位置。即,例如,如果ti是6分钟对象中的2分钟,tj是同一对象中的4分钟,则对象的比较和对齐允许确定这些对象是否为同一对象,并返回表示位置的tj′,位置是该对象的第二实例中的2分钟。
直接比较情况是类似的。例如,在直接比较情况下,诸如在媒体流的不同部分执行互相关等常规比较技术用于标识媒体流的匹配区域。对于前一示例,总体思想仅是确定分别位于ti和tj的媒体流部分是否近似相同。此外,直接比较情况实际上比前一实施例更容易实现,因为直接比较不是媒体相关的。例如,如上所述,分析特定信号或媒体类型所需的参数信息依赖于所特征化的信号或媒体对象的类型。然而,采用直接比较方法,不需要确定这些媒体相关特征用于比较目的。
3.1.3
对象数据库
如上所述,在替换实施例中,对象数据库用于储存信息,如,以下的任一种或所有:指向媒体流内媒体对象位置的指针;用于特征化这些媒体对象的参数信息;用于描述这类对象的元数据;对象端点信息;媒体对象的副本;以及指向储存个别媒体对象的文件或其它数据库的指针。此外,在一个实施例中,该对象数据库也储存一旦被找到时关于对象的重复实例的统计信息。注意,术语“数据库”在此处以一般的意义使用。具体地,在替换实施例中,本发明描述的系统和方法构造其自己的数据库、使用操作系统的文件系统、或使用商用数据库包,如SQL server或MicrosoftAccess。此外,同样如上所述,在替换实施例中使用一个或多个数据库用于储存上述信息的任一种或所有。
在一个测试实施例中,对象数据库最初为空。当确定搜寻类别的媒体对象在媒体流中存在时,在对象数据库中储存条目(例如,见3.1.1节和3.1.2节)。注意,在另一实施例中,当执行直接比较时,在搜索媒体流本身之前查询对象数据库以查找对象匹配。该实施例在以下假设上操作:一旦在媒体流中观察到特定媒体对象,该特定对象更可能在该媒体流中重复。因此,首先查询对象数据库来查找匹配媒体对象有助于减少表示匹配媒体对象所需的总体时间和计算开支。这些实施例在后文更详细讨论。
数据库执行两个基本功能。首先,它响应于查询,以确定匹配或部分匹配媒体对象或某一特征或参数信息组的一个或多个对象是否在对象数据库中存在。响应于该查询,如上所述,对象数据库返回流名列表和潜在匹配对象的位置,或仅返回匹配媒体对象的名字和列表。在一个实施例中,如果当前没有条目匹配特征列表,则对象数据库创建一个条目,并将流名和位置作为新的大概或可能对象添加。
注意,在一个实施例中,当返回可能匹配记录时,对象数据库以它确定最可能的匹配的顺序呈现记录。例如,这一概率可基于诸如先前计算的可能对象和潜在匹配之间的相似性等参数。可选地,对于在对象数据库中已有若干副本的记录,可返回更高的匹配概率,因为这类记录比在对象数据库中只有一个副本的那些记录更可能匹配。从上述与最可能对象匹配的对象比较开始减少了计算时间,同时提高了总体系统性能,因为这类匹配通常用较少的详细比较来标识。
数据库的第二个基本功能涉及对象端点的确定。具体地,当试图确定对象端点时,对象数据库返回对象的每一重复副本或实例的流名以及那些流中的位置,使得可如后文所描述地对齐和比较对象。
3.1.4
对象端点确定
当处理媒体流时,随着时间的推移,对象数据库自然地变得越来越多地用对象、重复对象和流中的近似对象位置来填充。如上所述,数据库中包含可能对象的一个以上副本或实例的记录被假定为搜寻对象。数据库中这类记录的数量将以一速率增长,该速率依赖于搜寻对象用于在目标流中重复的频率,并依赖于所分析的流的长度。除移除关于数据库中的记录是表示搜寻对象还是仅表示分类错误的不确定性之外,找出搜寻对象的第二个副本也有助于确定媒体流中的对象的端点。
具体地,当数据库越来越多地用重复媒体对象填充时,标识那些媒体对象的端点变得越来越容易。一般而言,媒体对象的端点的确定通过媒体流中标识的媒体对象的比较和对齐、随后确定特定媒体对象的各种实例何处岔开来实现。如上文在3.1.2节所描述的,尽管可能对象的比较确认同一对象在媒体流的不同位置上存在,然而该比较本身不定义那些对象的边界。然而,通过比较媒体流,或媒体流在那些位置上的较低维版本,然后对齐媒体流的那些部分并在媒体流中反向和前向跟踪来标识媒体流中媒体流岔开的点,从而可确定这些边界。
例如,在音频媒体流的情况下,当在数据库记录中有对象的N个实例时,由此,有在其中音频流中出现对象的N个位置。一般而言,观察到在广播音频流的直接比较中,在某些情况下,波形数据噪声太大,以至于无法产生各种副本在何处近似已知以及它们在何处开始岔开的可靠指示。当流的噪声太大无法用于这一直接比较时,观察到较低维版本的比较或特定特征信息的比较能够提供满意的结果。例如,在含噪声的音频流的情况下,观察到特定频率或频带,如巴克频谱表示的比较,对于比较和对齐目的能很好地起作用。
具体地,在用于从音频流提取媒体对象的一个测试实施例中,对于媒体对象的N个副本的每一个,从相对长于该对象的音频数据窗导出一个或多个巴克频谱表示。如上所述,通过使用一个以上代表性巴克频带,可以实现更可靠的比较。注意,在应用到音频流的对象提取器的工作示例中,发现表示700Hz到12100Hz范围内的信息的巴克频带尤其健壮,并对比较音频对象尤其有用。很清楚,所选择的用于比较的频带应当适用于音频流中的音乐、话音或其它音频对象的类型。在一个实施例中,使用所选择的频带的经滤波的版本来进一步提高健壮性。
给定这一示例,只要所选择的巴克频谱对所有的副本近似相同,就假定底层音频数据也近似相同。相反,当所选择的巴克频谱对所有的副本充分不同时,可假定底层音频数据不再属于所述对象。以这一方式,在流中反向和前向跟踪巴克频谱来确定出现岔开的位置,从而确定对象的边界。
具体地,在一个实施例中,使用巴克频谱分解(也称为临界频带)来计算数据库中的对象的低维版本。这一分解对本领域的技术人员是众所周知的。它将信号分解成若干不同的频带。由于它们占用较窄的频率范围,可以远低于它们所表示的信号的速率对个别频带进行采样。因此,对对象数据库中的对象计算的特征信息可包括这些频带的一个或多个的已采样版本。例如,在一个实施例中,特征信息包括中心位于840Hz的巴克频带7的已采样版本。
在另一实施例中,通过计算数据库对象的低维版本与音频流的目标部分的低维版本的互相关,来完成音频媒体流的目标部分匹配数据库中的元素的确定。互相关中的峰值一般暗示两个波形的长度的至少一个部分近似相等。如本领域的技术人员众所周知的,有各种技术来避免接受假峰值。例如,如果互相关的特定极大值是候选峰值,则需要该峰值上的值大于高于围绕(但不必要包括)该峰值的值的窗的平均值的阈值数量的标准偏移。
在又一实施例中,通过对齐重复对象的两个或多个副本,确定找到的对象的端点或范围。例如,一旦找到了匹配(通过检测互相关中的峰值),对齐音频流的目标部分的低维版本和流的另一分段或数据库条目的低维版本。按互相关峰值的位置确定无法对齐的量。然后规范化低维版本之一,使得其值近似一致。即,如果音频流的目标部分是S,而匹配部分(来自该流的另一分段或数据库)是G,并且从互相关确定G和S以偏移o匹配,则将S(t)与G(t+o)进行比较,其中,t是音频流内的时间位置。然而,在S(t)近似等于G(t+o)之前,规范化可能是必需的。下一步,通过找出使得对于t>tbS(t)近似等于G(t+o)的最小的tb,确定对象的起点。类似地,通过找出使得对于t<teS(t)近似等于G(t+o)的最大te,确定对象的终点。一旦完成这一过程,对于tb<t<te,S(t)近似等于G(t+o),并且tb和te可被认为是对象的近似端点。在某些实例中,可能必须在确定端点之前对低维版本进行滤波。
在一个实施例中,确定对于t>tb,S(t)近似等于G(t+o)可通过二分法来完成。找出S(t0)和G(t0+o)近似相等的位置t0,以及S(t1)和G(t1+o)不相等的位置t1,其中,t1<t0。然后通过对由二分法确定的t的各种值比较S(t)和G(t+o)的小分段来确定对象的起点。通过首先找出S(t0)和G(t0+o)近似相等的t0,然后找出S(t2)和G(t2+o)不相等的t2,来确定对象的终点,其中t2>t0。最后,通过对由二分法确定的t的各种值比较S(t)和G(t+o)的小分段来确定对象的终点。
在又一实施例中,对于t>tb,确定S(t)近似等于G(t+o),这通过找出S(t0)和G(t0+o)近似相等的t0,然后从t0递减t,直到S(t)和G(t+o)不再近似相等来完成。与当其绝对差超出t的单个值的某一阈值时判定S(t)和G(t+o)不再近似相等相反,当其绝对值超出值的某一最小范围的某一阈值时,或者当累加的绝对差超出某一阈值时,作出这一判定一般更健壮。类似地,通过从t0递增t直到S(t)和G(t+o)不再近似相等来确定终点。
在操作中,观察到在对象的若干实例之中,如来自无线电台或电视台的广播音频,所有的对象完全是相同的长度是不常见的。例如,在6分钟对象的情况下,它有时候会从头至尾地完全播放,有时候会在起点和/或终点被缩短,并且有时候被介绍性的画外音或前一或下一对象的渐隐或渐显所破坏。
给定重复对象的长度上的这一可能的差异,必须确定每一副本从其比较副本岔开的点。如上所述,在一个实施例中,通过将每一副本的所选择的巴克频带与所有副本的所选择的巴克频带的中值进行比较,来完成对音频流情况的这一过程。在时间上反向移动,如果一个副本充分地从足够长的间隔的中值岔开,则判定该对象的这一实例从那里开始。然后从中值计算中排除它,在这一点上,通过继续在对象副本中在时间上反向移动来对下一要岔开的副本执行搜索。以这一方式,最终达到仅剩余两个副本的点。类似地,在时间上前向移动,确定每一副本从中值岔开的点,以到达仅剩余两个副本的点。
确定对象的实例的端点的一个简单的方法只需在实例中选择其右端点和左端点最大的那一个。这可担当该对象的代表性副本。然而,必须小心,该副本不包括电台广告语,它在歌曲的两个不同的实例之前作为对象的一部分出现。很清楚,可采用从N个找到的副本中提取代表性副本的更完善的算法,并且上文描述的方法仅用于说明和解释目的。然后可使用所标识的最佳实例作为所有其它实例的代表。
在一个相关的实施例中,一旦找到了流的目标分段和流的另一分段之间的匹配,并且执行了分割,则在流的剩余部分中对对象的其它实例继续搜索。在一个测试的实施例中,用包含所有分割的对象并且在别处为零的分段来替换流的目标分段被证明是有利的。这在搜寻流的剩余部分中的匹配时降低了假峰值的概率。例如,如果确定ti和tj处的分段匹配,则该对象的一个或其它端点可位于以ti和tj为中心的分段的外部,并且那些分段可包含不是对象的部分的数据。与包含整个对象并且不包含其它内容的分段相比较可以提高随后匹配判定的可靠性。
注意,除诸如歌曲等音频对象之外的媒体对象的比较和对齐以非常相似的方式执行。具体地,除非噪声太大,否则可直接比较媒体流,或直接比较媒体流的低维或经滤波的版本。然后对齐被发现为匹配的媒体流的那些分段,用于如上所述的端点确定的目的。
在更多的实施例中,解决了各种计算效率问题。具体地,在音频流的情况下,上文在3.1.1、3.1.2和3.1.4节中所描述的技术都使用了音频的频率选择性表示,如巴克频谱。尽管可能每次重新计算这一频谱,然而如3.1.1节中所描述的,当首次处理流时计算频率表示,然后将所选择的巴克频带的配对流储存在对象数据库或别处用于稍后的比较将更有效。由于巴克频带通常以远低于原始音频速率的速率采样,因此这通常表示非常少量的存储,以在效率中获得显著的改进。在嵌入到音频/视频类型媒体流,如电视广播的视频或图像类型的媒体对象的情况下,完成类似的处理。
此外,如上所述,在一个实施例中,通过限制媒体流的先前标识的部分的搜索,可显著地提高媒体流中媒体对象标识的速度。例如,从搜索的较早部分,如果以tj为中心的流的分段已被确定为包含一个或多个对象,则可从随后的检查中排除该分段。例如,如果搜索是在其长度为平均搜寻对象长度的两倍的分段上执行的,并且两个对象已位于分段中的tj处,则很清楚,另一对象不可能也位于该位置,并可从搜索中排除该分段。
在另一实施例中,可通过在搜索媒体流之前首先查询先前标识的媒体对象的数据库来提高媒体流中媒体对象标识的速度。此外,在一个相关的实施例中,以对应于足以允许媒体对象的一个或多个重复实例的时间段的分段分析媒体流,如有必要,随后执行数据库查询,然后搜索媒体流。这些替换实施例的每一个的操作在后文更详细讨论。
此外,在一个相关实施例中,通过首先分析足够大以包含流中至少最常见重复对象的重复的流的部分来分析媒体流。维护在流的该第一部分上重复的对象的数据库。然后通过首先确定分段是否匹配数据库中的任何对象,然后核查流的剩余部分,来分析流的剩余部分。
3.2
系统操作
如上所述,2.0节中参考图2,并鉴于3.1节中提供的更详细描述所描述的程序模块用于自动标识和分割媒体流中的重复对象。该过程在图3A、图3B、图3C、图4和图5中描述,它们表示对象提取器的替换实施例。应当注意,图3A、图3B、图3C、图4和图5中由断线或虚线表示的框以及框之间的互连接表示对象提取器的更多替换实施例,并且如后文所描述的,这些替换实施例的任一个或所有可组合使用。
3.2.1
基础系统操作
现在结合图2参考图3A到图5,在一个实施例中,该过程可被一般描述为从媒体流210中查找、标识并分割媒体对象的对象提取器。一般而言,选择媒体流的第一部分或分段ti。下一步,将该分段ti顺序地与媒体流内的随后分段tj相比较,直到达到流的末端。在这一点上,选择前一ti后的媒体流的新的分段ti,然后再次与媒体流中随后的分段tj相比较,直到达到流的末端。重复这些步骤,直到为查找并标识媒体流内重复媒体对象而分析了整个流。此外,如后文所描述的,参考图3A、图3B、图3C、图4和图5,有许多替换实施例用于实现并加速媒体流内重复对象的搜索。
具体地,如图3A所示,用于自动标识和分割包含音频和/或视频信息的媒体流210中的重复对象的系统和方法通过确定310媒体流的位于流中ti和tj处的分段是否表示同一对象开始。如上所述,所选择的用于比较的分段可从媒体流的任一端点开始选择,或可随机地选择。然而,发现仅从媒体流的起点开始,并在时刻ti=t0选择初始分段,是当随后选择媒体流的在tj=t1开始的分段用于比较时的有效的选择。
在任一情况下,通过仅比较媒体流位于ti和tj处的分段来作出确定310。如果确定310两个分段-ti和tj表示同一媒体对象,则如上所述地自动确定360对象的端点。一旦找到360端点,则位于时刻ti周围的媒体对象或位于时刻tj周围的匹配对象的端点被储存370在对象数据库230中,或者媒体对象本身或指向那些媒体对象的指针被储存在对象数据库中。再次,应当注意,如上所述,选择要比较的媒体流的分段的大小大于媒体流中期望媒体对象的大小。因此,期望仅媒体流的比较分段的部分实际上匹配,而非整个分段,除非媒体对象在媒体流中以相同的顺序持续播放。
如果确定310媒体流位于ti和tj的两个分段不表示同一媒体对象,则如果有媒体流的更多未选择分段可用320,则选择媒体流位于tj+1的新的或下一分段330作为新的tj。然后如上所述地将媒体流的该新tj分段与现有分段tj相比较,以确定310这两个分段是否表示同一媒体对象。再次,如果确定310分段表示同一媒体对象,则自动确定360对象的端点,然后如上所述地将信息储存370在对象数据库230中。
相反,如果确定310媒体流位于ti和tj处的两个分段不表示同一媒体对象,并且没有媒体流的更多未选择分段可用320(由于已选择了整个媒体流用于与由ti表示的媒体流的分段相比较),则如果尚未达到媒体流的终点,并且有更多的分段ti可用340,则选择媒体流位于ti+1处的新的或下一分段350作为新的ti。然后如上所述地将媒体流的该新的ti分段与下一分段tj相比较,以确定310两个分段是否表示同一媒体对象。例如,假定从时刻t0的分段ti以及时刻t1的分段tj开始作出第一次比较,则第二轮比较可通过将时刻t1的ti+1与时刻t2进行比较开始,然后比较时刻t3等等,直到达到媒体流的终点,在这一点上,选择时刻t2的新ti。再次,如果确定310分段表示同一媒体对象,则自动确定360对象端点,并如上所述地将信息储存370在对象数据库230中。
在同样由图3A所示的一个相关的实施例中,在将分段与流中的其它对象比较之前,首先检查每一分段以确定它包含搜索类型的对象的概率。如果概率被认为是高于预定阈值,则继续比较。然而,如果概率低于阈值,则为了效率而跳过这一分段。
具体地,在该替换实施例中,每次选择新tj或ti时(分别在330或350),下一步骤是分别确定(335或355)特定的tj或ti是否表示可能对象。如上所述,用于确定媒体流的特定分段是否表示可能对象的过程包括采用一套对象依赖算法以媒体流的不同方面为目标,用于标识媒体流内的可能对象。如果确定(335或355)特定分段tj或ti表示可能对象,则tj和ti之间的上述比较如上所述地继续。然而,在确定(335或355)特定分段tj或ti不表示可能对象的情况下,则如上所述地选择(320/330,或340/350)新分段。该实施例是有利的,因为它避免了涉及确定媒体对象可能在媒体流的当前分段中存在的概率的相对计算昂贵的比较。
在任一实施例中,然后重复上述步骤,直到为标识媒体流中重复媒体对象的目的已将媒体流的每一分段与媒体流的每一其它的随后分段相比较为止。
图3B示出了一个相关的实施例。一般而言,图3B所示的实施例与图3A所示的实施例不同,推迟对重复对象的端点的确定,直到完成了每一次通过媒体流。
具体地,如上所述,该过程通过顺序地将媒体流210的分段ti与媒体流中随后分段tj相比较,直到达到媒体流的末端。再次,在这一点上,选择媒体流的前一ti后的新ti分段,并再次与媒体流中随后分段tj相比较,直到达到媒体流的末端。重复这些步骤,直到为查找并标识媒体流中的重复媒体对象已分析了整个流为止。
然而,在参考图3A描述的实施例中,一旦ti和tj之间的比较310指示匹配,确定360匹配对象的端点,并将它们储存370在对象数据库230中。相反,在图3B所示的实施例中,每次当ti和tj之间的比较310指示匹配时,递增被初始化为零的对象计数器315。在这一点上,作为确定匹配对象的端点的替代,选择下一tj用于比较320/330/335,并再次与当前ti相比较。对媒体流中的所有tj重复这一过程,直到分析了整个流,在这一点上,如果匹配对象的计数大于零325,则对表示匹配当前分段ti的对象的所有分段tj确定260端点。下一步,如上所述地将对象端点或对象本身370储存在对象数据库230中。
在这一点上,如上所述,选择340/350/355下一分段ti,用于与随后的ti分段的另一轮比较310。然后重复上述步骤,直到为标识媒体流中的媒体对象的目的已将媒体流的每一分段与媒体流的每一其它随后分段进行了比较。
然而,尽管本节中描述的实施例用于标识媒体流中的重复对象,然后仍作出了大量不必要的比较。例如,如果给定对象已在媒体流中被标识,则该对象可能在媒体流中重复。因此,在替换实施例中,使用在比较分段ti和tj310之前首先将当前ti与数据库中的每一对象进行比较,来减少或消除完全分析特定媒体流所需的某些相对计算昂贵的比较。因此,如下一节中所描述的,当选择媒体流210的每一分段ti时,使用数据库230用于初始比较。
3.2.2
用初始数据库比较的系统操作
在另一相关实施例中,如图3C所示,通过首先查询先前标识的媒体对象的数据库230减少了媒体流210中分段之间的比较的数量。具体地,图3C所示的实施例与图3A所示的实施例不同,在选择了媒体流210的每一分段ti之后,首先将其与对象数据库230进行比较305,以确定当前分段是否匹配数据库中的对象。如果在当前分段和数据库230中的对象之间标识305了匹配,则确定360由当前分段ti表示的对象的端点。下一步,如上所述,将对象端点或对象本身储存370在对象数据库230中。因此,通过仅查询对象数据库230来查找匹配对象,可在不使用媒体流的穷尽搜索的情况下标识当前分段ti。
下一步,在一个实施例中,如果未在数据库230中标识305匹配,则用于将当前分段ti与随后分段tj320/330/335比较的过程如上所述地继续,直到达到流的末端,在这一点上,选择340/350/355一新的分段ti,以再次开始该过程。相反,如果在对象数据库230中标识205了对当前分段ti的匹配,则如上所述地确定360并储存370端点,然后选择新的ti340/350/355来再次开始该过程。然后重复这些步骤,直到为确定是否表示重复对象而分析了媒体流210中的所有分段ti。
在更多相关的实施例中,延迟初始数据库查询305,直到该数据库至少部分地用标识的对象填充的这一时刻。例如,如果在一段长时间段上记录或捕捉了特定媒体流,则如上文参考图3A或3B所描述地执行媒体流部分的初始分析,然后执行涉及初始数据库查询的上述实施例。该实施例在对象在媒体流中频繁重复的环境中能很好地起作用,因为数据库的初始填充用于提供用于标识重复对象的相对较佳的数据组。同样注意,当数据库230越来越多地被填充时,也越来越可能通过单独的数据库查询来标识嵌入到媒体流中的重复对象,而无需对媒体流中的匹配的穷尽搜索。
在又一相关的实施例中,用已知对象预填充的数据库230用于标识媒体流中的重复对象。该数据库230可使用上述实施例的任一个来准备,或者可从其它常规源导入或由其提供。
然而,尽管示出了本节中描述的实施例来减少完整分析特定媒体流所执行的比较数量,然而仍作出了大量不必要的比较。例如,如果媒体流在ti或tj时刻的给定的分段已被标识为属于特定的媒体对象,则将已标识的分段与其它分段重新比较没有任何实际效用。因此,如下节中所讨论的,使用涉及媒体流的哪些部分已被标识的信息,通过将匹配分段的搜索限制到媒体流中尚未被标识的那些分段,可迅速衰减搜索时间。
3.2.3
用循序流搜索限制的系统操作
现在结合图2参考图4,在一个实施例中,该过程可被一般描述为一种对象提取器,它从媒体流中查找、标识并分割媒体对象,同时标志先前标识的媒体流部分,使得它们不再被反复搜索。
具体地,如图4所示,用于自动标识和分割媒体流中的重复对象的系统和方法通过选择400包含音频和/或视频信息的媒体流210的第一个窗或分段开始。下一步,在一个实施例中,然后搜索410媒体流,来标识媒体流中具有匹配所选择的分段或窗400的一部分的部分的所有窗或分段。注意,在一个相关的实施例中,如后文更详细地描述的,在足以允许媒体对象的一个或多个重复实例的时间段上以分段来分析媒体流,而非搜索410整个媒体流来找出匹配分段。例如,如果记录一周的媒体流,则媒体流的第一次搜索的时间段可以是一天。再次,在本实施例中,在其上搜索媒体流的时间段仅为足以允许媒体对象的一个或多个重复实例的时间段。
在任一情况下,一旦搜索410了媒体流的所有或部分来标识媒体流中匹配420所选择的窗或分段400的部分的所有部分,则对齐430匹配的部分,该对齐然后用于如上所述地确定对象端点440。一旦确定440了端点,则将匹配媒体对象的端点储存在对象数据库430中,或者将媒体对象本身或指向那些媒体对象的指针储存在对象数据库中。
此外,在一个实施例中,媒体流中已被标识的那些部分被加上标志,并被限制作出再次搜索460。该特定实施例用于在标识重复对象时迅速地衰减媒体流的可用搜索范围。再次,应当注意,如上所述,选择媒体流中要比较的分段的大小大于媒体流中期望媒体对象的大小。因此,可期望仅媒体流的比较分段的部分实际匹配,而非整个分段,除非媒体对象在媒体流中以相同的顺序持续播放。
因此,在一个实施例中,仅媒体流中实际被标识的每一分段的那些部分被加标志460。然而,在发现媒体对象频繁重复的媒体流中,观察到仅限制整个分段被进一步搜索仍允许媒体流中大部分重复对象的标识。在仅保留特定分段的可忽略部分未标识的另一相关的实施例中,仅忽略那些可忽略部分。在又一相关的实施例中,仅将在限制分段的部分被进一步搜索460之后所留下的部分分段与先前或随后的分段相组合,用于与新选择的分段400进行比较的目的。这些实施例的每一个用于通过令媒体流中对匹配的搜索更有效来改进整体系统性能。
一旦确定440了对象端点,当没有匹配被标识420时,或在对媒体流的部分加上标志以防止对那些部分的进一步搜索460之后,检查媒体流的当前选择的部分400是否表示媒体流450的末端。如果媒体流的当前选择的分段400的确表示媒体流的末端450,则该过程完成,终止搜索。然而,如果尚未到达媒体流的末端450,则选择媒体流的下一分段,并通过搜索媒体流410以查找匹配分段,将其与媒体流的剩余部分进行比较。然后如上所述地重复上述用于标识匹配420、对齐匹配分段430、确定端点440以及在数据库230中储存端点或对象的步骤,直到达到媒体流的末端。
注意,不需要在媒体流中反向搜索,因为已将先前选择的分段与当前选择的分段相比较。此外,在将媒体流的特定分段或部分标志为已标识460的实施例中,在搜索410中跳过这些分段。如上所述,当在流中标识了更多媒体对象时,跳过媒体流的已标识部分用于迅速地衰减可用搜索空间,由此与3.2.1节中所描述的基本硬算方法相比,显著地提高了系统效率。
在另一实施例中,通过首先搜索470对象数据库230来标识匹配对象,可进一步提高标识媒体流中重复对象的速度和效率。具体地,在这一实施例中,一旦选择400了媒体流的一个分段,则基于一旦观察到媒体对象在媒体流中重复,该对象更可能在媒体流中再次重复的理论首先将该分段与先前标识的分段相比较。如果在对象数据库230中标识480了匹配,则如上所述地重复上述用于对齐匹配对象430、确定端点440、以及在对象数据库230中储存端点或对象信息的步骤,直到达到媒体流的末端。
当与在其中在足以允许媒体对象的一个或多个重复实例的时间段上以分段分析媒体流而非搜索410整个媒体流以查找匹配分段的实施例相组合时,上述搜索实施例(如,410、470和460)的每一个可得到进一步改进。例如,如果记录一周的媒体流,则媒体流的第一次搜索的时间段可以是一天。由此,在本实施例中,首先在第一时间段上搜索410媒体流,即长度为一周的媒体记录中的第一天,同时如上所述地将匹配媒体对象的端点或对象本身储存在对象数据库230中。通过媒体流的剩余部分的随后搜索,或对媒体流的随后时间段的一段时间(即,长度为一周的媒体流记录的第二天或随后的天)首先被定向到数据库(470和230),以如上所述地标识匹配。
3.2.4
用可能对象的初始检测的系统操作
现在结合图2参考图5,在一个实施例中,该过程可一般被描述为一种对象提取器,它通过首先标识媒体流中的大概或可能对象,从媒体流中查找、标识并分割媒体对象。具体地,如图5所示,用于自动标识和分割媒体流中的重复对象的系统和方法通过捕捉500包含音频和/或视频信息的媒体流210开始。该媒体流210使用众多常规计数的任一种来捕捉,如连接到计算机的用于捕捉无线电或电视/视频广播媒体流的音频或视频捕捉设备。这类媒体捕捉技术对本领域的技术人员是众所周知的,并且不在此详细描述。一旦被捕捉,将媒体流210储存在计算机文件或数据库中。在一个实施例中,使用用于音频和/或视频媒体的压缩的常规技术来压缩媒体流210。
然后检查媒体流210,试图标识嵌入在媒体流中的可能或大概的媒体对象。媒体流210的这一检查可通过检查表示媒体流的一部分的窗505来完成。如上所述,检查媒体流210来检测可能对象使用适用于所检查的媒体内容的类型的一个或多个检测算法。一般而言,如上文所详细讨论的,这些检测算法计算用于特征化所分析的媒体流的部分的参数信息。在一个替换实施例中,当媒体流210被捕捉500并储存时,实时检查505媒体流。
如果在所分析的媒体流210的当前窗或部分中没有标识可能对象,则递增515窗以检查媒体流的下一分段,试图标识可能的对象。如果标识510了可能或大概的对象,则将媒体流210中可能对象的定位或位置储存525在对象数据库230中。另外,用于特征化可能对象的参数信息也被储存525在对象数据库230中。注意,如上所述,该对象数据库230最初为空,并且对象数据库中的第一个条目对应于媒体流210中检测到的第一个可能对象。可选地,用来自先前捕捉的媒体流的分析或搜索的结果预填充对象数据库230。窗递增515、窗检查505继续,直到达到520媒体流的末端。
在检测媒体流210中的可能对象之后,搜索530对象数据库230以对可能对象标识潜在的匹配,即重复的实例。一般而言,使用用于特征化可能对象的参数信息来完成这一数据库查询。注意,不需要确切的匹配,或甚至不期望确切的匹配来标识潜在匹配。事实上,使用用于执行对潜在匹配的这一初始搜索的相似性阈值。该相似性阈值,或“检测阈值”可被设为用于特征化可能对象和潜在匹配的参数信息的一个或多个特征之间的任一期望的百分比。
如果没有标识潜在匹配535,则将可能对象标志为对象数据库230中的新对象540。可选地,在另一实施例中,如果没有标识535潜在匹配或标识了太少的潜在匹配,则降低545检测阈值,以增加通过数据库搜索530标识的潜在匹配的数量。相反,在又一实施例中,如果标识535了太多潜在匹配,则提高检测阈值以限制执行的比较数量。
一旦标识535了一个或多个潜在匹配,在可能对象和潜在匹配对象的一个或多个之间执行详细比较550。该详细比较包括表示可能对象和潜在匹配的媒体流210的部分的直接比较,或者表示可能对象和潜在匹配的媒体流部分的较低维版本之间的比较。注意,尽管该比较利用了储存的媒体流,然而该比较也可使用先前查找并储存的媒体对象270来完成。
如果详细比较550无法定位对象匹配555,则将可能对象标志为对象数据库230中的新对象540。可选地,在另一实施例中,如果没有标识对象匹配555,则降低545检测阈值,并且执行新的数据库搜索530来标识额外的潜在匹配。再次,将任何潜在匹配与可能对象相比较550,以确定该可能对象是否匹配已在对象数据库230中的任一对象。
一旦详细比较标识了可能对象的匹配或重复实例,将该可能对象标志为对象数据库230中的重复对象。然后将每一重复对象与该对象的每一先前标识的重复实例对齐560。如上文所详细讨论的,然后通过在每一重读对象实例中反向和前向搜索来标识每一对象近似相等的最远范围,从而确定565对象端点。以这一方式标识每一对象的范围用于标识对象端点。该媒体对象端点信息然后被储存在对象数据库230中。
最后,在再一实施例中,一旦标识565了对象端点,使用端点信息将媒体流中对应于那些端点的分段复制或保存570到个别媒体对象270的单独的文件或数据库中。
如上所述,当所检查的媒体流210的部分被连续递增时,重复上述过程,直到以检查520了整个媒体流,或用户终止检查为止。
4.0
额外的实施例
如上所述,为分割和标识媒体流中的媒体对象的目的而捕捉的媒体流可从任一常规广播源得到,如音频、视频、或通过无线电、电视、因特网或其它网络的音频/视频广播。对于组合的音频/视频广播,如对电视类型的广播典型的,应当注意,组合的音频/视频广播的音频部分与视频部分同步。换言之,如众所周知的,音频/视频广播的音频部分与该广播的视频部分相一致。因此,在组合音频/视频流中标识重复的音频对象是标识音频/视频流中重复视频对象的一种方便且计算上不昂贵的方法。
具体地,在一个实施例中,通过首先标识音频流中的重复音频对象、标识那些音频对象开始和结束的时刻tb和te(即,音频对象的端点)、然后在那些时刻上分割音频/视频流,也可从组合的音频/视频流中连同音频对象一起标识并分割视频对象。
例如,通常能看到,典型的商业广告或广告在给定电视台的任一给定日子上频繁地重复。记录该电视台的音频/视频流,然后处理该电视广播的音频部分将用于标识那些重复广告的音频部分。此外,由于音频与流中的视频部分同步,可以上述方式容易地确定电视广播内重复广告的位置。一旦标识了位置,可标志这类广告用于期望的任何特殊处理。
以上本发明的描述为说明和描述目的呈现。它并不意味着穷尽本发明或将其限于所揭示的精确形式。鉴于上述教导,可作出许多修改和变化。此外,应当注意,可以用形成本发明所描述的对象提取器的额外混合实施例的任一期望的组合来使用上述替换实施例的任一个或全部。本发明的范围不由该详细描述限制,而由所附权利要求书来限制。