具体实施方式
在本发明优选实施方式的以下说明中参考了附图,这些附图形成了本说明书的一个部分,且其中以例示的形式显示了本发明可在其中实践的具体实施例。可以理解,可利用其它实施方式并作结构化上的改变,而不背离本发明范围。
1.0示例性操作环境
图1示出了本发明可在其上实现的适当计算系统示例。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出本发明使用或功能性范围的任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
本发明也可在很多其它通用或专用计算系统环境或配置中使用。适于本发明使用的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式、诸如手机和PDA的膝上型或移动计算机或通信设备、多处理器系统、基于微处理器的系统、置顶盒、可编程电器消费品、网络PC、迷你计算机、大型机、包括任一种以上系统或设备的分布式计算环境、等等。
本发明可以计算机可执行指令的一般上下文进行说明,诸如由计算机执行的程序模块。一般而言,程序模块包括执行具体任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。本发明还可在任务由经通信网络连接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质。参照图1,实现本发明的示例性系统包括计算机110形式的通用计算设备。
计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。作为示例,而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MSA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失和非易失介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失和非易失介质、可移动和不可移动介质。
计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化视频光盘(DVD)或其它光学存储技术、磁卡、磁带、磁盘存储或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常包括诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“调制数据信号”意指用将信息编码成信号的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失和/或非易失存储器形式的计算机可读介质。包含有助于计算机110如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在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、话筒163和诸如鼠标、跟踪球或触摸板等定位装置161向计算机110输入命令和信息。
其它输入装置(未示出)可包括话筒、游戏杆、游戏垫、卫星接收器、扫描仪、无线电接收器、或电视或广播视频接收器等等。这些和其它输入设备常常通过与系统总线耦合的用户输入接口160与处理单元120相连,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器191或其它类型的显示设备也可通过诸如视频接口190的接口与系统总线121相连。除了监视器,计算机还可包括诸如扬声器197和打印机196的其它输出设备,它们通过输出外围接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、同等装置或其它普通网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1中仅图示了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、企业内部互联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与局域网171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且其它用于在计算机间建立通信连接的技术也可以使用。
在已说明示例性操作环境之后,本说明书的剩余部分将致力于说明程序模块和过程,其中包含自动标识和提供对媒介流中重复对象的用户控制的系统和方法。
2.0引言
在此所述的“重复对象控制器”(ROC),与标识在媒介流中出现的重复对象及其时间端点的“对象抽取器”或指纹引擎合作运行。特别地,如果在媒介流中标识了重复对象,ROC就提供交互用户接口,使用户指定如何实时地或根据特定重复对象的后续发生处理单个重复对象。因此,在此描述的系统和方法一般可描述为包括:标识重复对象连同其时间上端点的机制、指定当特定对象在媒介流中重复时要采取行动的用户接口、以及-在一实施例中-一其长度足以使特定对象从媒介流中被实时删除和/或替换而不会明显中断该媒介流的缓冲器。
许多媒介流包含重复“对象”。媒介流中的重复对象被定义为任何时间上不可忽略段落,即歌曲、视频、广告、旋律等等,其可被听众或观众视为一个逻辑单元。例如,源出于典型流行歌曲电台的音频流随着时间的流逝将包含相同对象的多次重复,包括例如歌曲、旋律、广告、电台标志曲等。类似地,源出于典型电视台的音频/视频媒介流随着时间的流逝将包含相同对象的多次重复,包括例如商业广告、广告、电台标志曲、节目“标识曲”或紧急播送信号等。然而,这些对象通常将在媒介流中不可预知的时刻出现,而且经常被用来捕捉或记录媒介流的任意获取过程所导致的噪音破坏。
另外,在诸如电台广播的典型媒介流中的对象常常被每个对象起点和/或终点的画外音所破坏。还有,这种对象常常是节略的,即它们不是完全从起点开始播放或一直播放到终点。此外,这种对象通常是被有意失真的。例如,通过电台的音频广播常常使用压缩器、补偿器、或产生众多其它时间/频率效果中任一种来处理。另外,在典型电台播送的诸如音乐或歌曲的音频对象常常与前面或后面的音乐或歌曲同时淡出及淡入,从而模糊了音频对象的起点和终点,并将失真或噪音添加到对象上。对媒介流进行这样的操作对本领域技术人员而言是众所周知的。最后,要注意的是,任意或全部这样的破坏或失真可单独或组合发生,并且除非有明确指明,它们在本说明书中一般称为“噪音”。因此,在此类嘈杂的环境中对这种对象的标识,并定位其端点是有挑战性的问题。
在此所述的对象抽取器成功处理了这些和其它问题,而且提供了许多优点。例如,除了提供收集媒介流中有关媒介对象的统计信息的有用技术,媒介流的自动标识和分割使用户能自动访问该媒介流中的所需要内容,或反之,自动规避媒介流中不想要的内容。另外的优点包括:从媒介流中仅标识和存储必要内容的能力;标识目标内容以作特殊处理的能力;去噪音、或消除任意多重检测对象的能力;以及通过仅存储任意多重检测对象的一个拷贝来更有效地存档该媒介流的能力。
一般说来,重复媒介对象的自动标识和分割通过比较媒介流部分以查找媒介流中媒介内容重复的区域或部分来实现。在一个测试的实施方式中,重复媒介对象的自动标识和分割是这样实现的,即通过直接比较媒介流的分段以标识相匹配的媒介流部分,然后对齐相匹配的部分以标识对象端点。
在另一实施例中,重复媒介对象的自动标识和分割是通过采用一套对象相关算法来以音频和/或视频媒介的不同方面为目标以标识可能对象而实现。一旦在媒介流中标识了一可能对象,将此对象确认为重复对象是通过在自动实例化的动态对象数据库中自动搜寻有可能匹配的对象、接着对该可能对象和一个或多个有可能匹配的对象的详细比较而实现的。对象端点通过与该对象其它重复拷贝的自动对齐和比较而自动确定。
在又一实施例中,重复媒介对象的自动标识和分割是通过首先计算媒介流的分段中音频和/或视频指纹、然后搜索指纹数据库以确定当前分段是否为已知,例如如上所述它是否为一“匹配”而实现。在指纹数据库初始为空的场合,就计算出指纹并用其来填充数据库。最后,当重复对象出现在媒介流中时,它们将被标识为重复对象。这样的指纹计算和比较技术为本领域技术人员所熟知,在此不再赘述。如同在前述实施例中,一旦媒介流的一部分被确定为与先前确认的媒介分段相匹配,对象端点就再次通过与该对象其它重复拷贝的自动对齐和比较来自动的确定。
特别地,无论匹配是如何标识的,例如通过前述媒介流部分的直接比较或前述指纹比较技术,重复对象的标识和分割则是通过对齐媒介流的相匹配部分以定位对象端点来实现的。注意,为了进行端点标识而做的这种对齐,如下所述,不管是使用原始媒介流还是媒介流的低维形式都能良好地发挥作用。
使用众多常规技术的任一种技术,诸如简单模式匹配、对齐相匹配部分间的互相关峰值、或对齐相匹配信号的任何其它常规技术,近似端点首先通过对齐相匹配部分来进行定位。一旦对齐,终点可通过在媒介流中越过相匹配部分的边界往前或往后地追踪,以定位该媒介流这两个部分发生差异时的那些点来标识。由于重复媒介对象通常并不是每次都以完全相同的顺序播送,在媒介流中定位端点的这一技术被视为能满意地定位媒介流中的起点和终点。
一旦重复对象及其端点已经在媒介流中被标识,无论使用了上述方法的哪一种,ROC随后提供关于那些重复对象的用户交互和对媒介流的控制。特别地,用户接口允许用户指定在特定重复对象出现在媒介流中时要采取的动作。注意,ROC甚至在媒介流当前部分代表未曾重复或标识的媒介对象时提供媒介对象的用户控制。例如,当用户指定与该新的未知媒介流分段相关联的动作时,该动作将与该媒介流分段相链接,以致当该分段的重复实例最终被标识时,与嵌于分段中的无论哪一对象相关联的用户指定动作在一被标识时就将被应用。
取决于用来在媒介流中标识重复对象的实施方式,这些与特定重复对象相关联的用户指定动作与每个对象一起储存于一对象数据库中,或者与每个指纹一起被存储在指纹数据库中。作为结果,特定重复对象一在媒介流中被检测到,其相关联动作就自动从数据库中被读取并据以行动。此外,在一实施例中,将动作存储于数据库中提供了允许用户编辑或删除先前指定动作的额外优点。
2.1系统概览
一般说来,提供重复对象的用户控制首先涉及确认对象的重复实例。在一实施例中,这可如此实现:首先实例化或初始化一空的“对象数据库”用来存储信息,诸如媒介流中媒介对象位置的指针、表征那些媒介对象的参量信息、描述这种对象的元数据、对象端点信息、对象的拷贝本身、以及与特定媒介对象相关联的用户指定动作。注意,任意或全部该信息可被维护于单个对象数据库,或任意数量的数据库或计算机文件中。然而,为了作清晰的说明,贯穿整个说明书将单个数据库称为前述的信息。
在一可选实施例中,包括表征先前标识对象的参量信息的现存数据库被用来取空数据库而代之。然而,尽管这种现存数据库可以加快初始对象标识,但随着时间的流逝,它并不能提供显著优于初始为空而当对象位于媒介流时用参量信息进行填充的数据库的性能。
不管是哪一种情况,一旦空的或已先存在的对象数据库可用,则下一步骤涉及在所需时间段中捕捉和存储或缓存至少一个媒介流。该所需时间段可以是从数分钟到数小时,或者从数天到数周,甚至是更长的时间段。对象在媒介流中的重复使得对象端点在对象位于媒介流中被定位时而被标识。如在此所述,对象的重复使得对象端点在对象位于媒介流中被定位时被标识出来。在另一实施例中,为了使存储要求降到最低,所存储或缓存的媒介流使用任意的压缩音频和/或视频内容的常规压缩方法进行压缩。这样的压缩技术为本领域技术人员所熟知,将不在此讨论。
如上所述,在一实施例中,重复媒介对象的自动标识和分割是通过比较媒介流的诸部分以在媒介流中查找那些媒介内容在其中重复的区域或部分来实现。具体地,在此实施例中,媒介流的一个部分或者一个窗口从该媒介流被选出。窗口的长度可以是任何期望长度,但通常不应该短到以致几乎不能或者不能提供多少有用的信息,也不应该长到使其包含多个媒介对象。在一测试性实施例中,窗口或者分段的长度约为所搜寻类型的重复对象平均长度的二到五倍时,产生了好的结果。该部分或窗口可从媒介流的任一端开始选取,甚至可从媒介流中随机选取。
接着,媒介流中所选中的部分直接与相似尺寸的诸媒介流部分进行比较,以尝试查找媒介流的相匹配分段。这些比较一直持续,直到已搜索了整个媒介流以查找匹配,或直到已实际查找到了一个匹配,哪个早算哪个。如同对与媒介流进行比较的那部分的选择,与选中分段或窗口进行比较的部分可从媒介流的任一端开始按顺序选取,或甚至从媒介流中随机选取,或者当某个算法指示所搜寻类对象有出现在当前分段的可能性时选取。
在此测试性实施例中,一旦通过对媒介流部分的直接比较标识了匹配,重复对象的标识和分割是通过对齐匹配部分以定位对象端点来实现。注意,因为每个对象包括噪音,且可能如上所述在起点或终点被缩短或剪辑,对象端点并不总是界线分明的。然而,即使在这种嘈杂环境中,使用了众多常规技术的任一种技术,诸如简单模式匹配、对齐相匹配部分间的互相关峰值、或对齐相匹配信号的任何其它常规技术,近似端点通过对齐相匹配部分可进行定位。一旦对齐,实际端点可通过在媒介流中往前或往后、越过相匹配部分的边界进行追踪,以定位该媒介流中两个部分出现差异时的这些点来标识。由于重复媒介对象通常并不是每次都以完全相同的顺序播送,观察表明,这一在媒介流中定位终点的技术能令人满意地定位媒介流中的起点和终点。
可选地,如上所述,在一实施例中,一套算法被用于以音频和/或视频媒介的不同方面为目标,以计算对标识媒介流中对象有用的参量信息。这一参量信息包括在标识特定对象中有用的参数,因而,所计算的参量信息的类型取决于在搜寻中的对象的类。注意,取决于正在分析的媒介流的类型,众多众所周知的用于比较媒介对象相似性的频率、时间、图像、或基于能量的常规技术中的任何一种都可用来标识有可能的对象匹配。例如,对于音频流中的音乐或歌曲,这些算法包括,例如计算在媒介流中易于计算的媒介流的参数,比如在短窗口中每分钟节拍、立体声信息、短间隔中每个频道的能量比、以及特定频段的频率内容;比较较大媒介分段在其频谱中的实质相似性;存储可能候选对象的样本;以及学习标识任何重复对象。
在此实施例中,一旦已获得了媒介流,即检查所存储的媒介流以确定搜寻类的对象,即歌曲、旋律、视频、广告等等在被检查媒介流部分出现的可能性。然而,应当注意,在一可选实施例中,媒介流在被存储时进行了实时检查,以确定所搜寻对象于媒介流中在当前时间出现的可能性。注意,实时媒介流检查或存储后媒介流检查基本上是以相同方式进行的。一旦搜寻对象存在的可能性达到了预定阈值,该可能对象在媒介流中的位置即在前述数据库中自动注明。注意,该检测或相似性阈值可按需增大或减小,以便调整在媒介流中对象检测的灵敏性。
在此实施例中,一旦在媒介流中标识了可能对象,表征该可能对象的参量信息被计算,并被使用于数据库查询或搜寻中,以标识出与先前标识可能对象相匹配的可能对象。数据库查询的目的仅仅是确定媒介流的两部分是否基本相同。换言之,在媒介流中位于两个不同时间位置的对象是否基本相同。此外,因为数据库初始是空的,当更多的可能对象被标识并加入到数据库中时,标识可能匹配的可能性自然地随着时间而增长。
在另一实施例中,代表媒介流分段的音频指纹在某一所需频率上进行计算,并存储在数据库中。指纹也可在另一频率(不必相同)上计算,与数据库比较以发现匹配。当前指纹与先前存储的指纹之间的匹配指示了当前音频分段与对应于数据库中指纹的分段之间的可能匹配。
注意在可选实施例中,由数据库查询返回的可能匹配数量被限制在所需最大值内,以降低系统开支。此外,如上所述,可能对象与数据库中对象间比较的相似性阈值是可调节的,以按需提高或降低可能匹配的可能性。在另一相关实施例中,那些被发现在媒介流中更频繁地重复的对象被赋予更大权值,使它们比那些较少重复对象更可能被标识为可能匹配。在又一实施例中,如果通过数据库搜寻所返回的可能匹配太多,则提高相似性阈值,使较少的可能匹配得以返回。
一旦可能对象的可能匹配被返回,就执行可能对象和一个或多个可能匹配间的更详细比较,以便更肯定地标识可能对象。此时,如果可能对象被发现是可能匹配之一的重复,它被标识为重复对象,且其在媒介流中的位置被存入数据库中。反之,如果该详细比较显示该可能对象不是可能匹配之一的重复,它被标识为数据库中的新对象,且其在媒介流中的位置和参量信息被存储在如上所述的数据库中。然而,在一可选实施例中,如果对象未被标识为重复对象,则使用较低相似性阈值进行新的数据库搜寻,以标识另外的对象进行比较。再一次,如果可能对象被确定为重复,则它被标识为重复,否则,如上所述,它作为新对象被加入到数据库中。
另外,如前所述实施例,重复对象各个实例的端点是自动确定的。例如,如果有特定对象的N个实例,它们不会都精确地有相同长度。因此,端点的确定涉及相对于一个实例对齐各个实例,然后在每个对齐对象中前后追踪,以确定每个实例仍然与其它实例大约相等的最远范围。
应该注意的是,确定搜寻类对象出现在正被检查的媒介流部分之中的可能性的方法,和测试流的两部分是否大约相同的方法都很大程度上取决于所搜寻对象的类型(例如,音乐、谈话、广告、旋律、电台标志曲、视频等等),而数据库和媒介流中端点位置的确定却无论搜寻对象是哪一种类都非常相似。
在前述诸实施例的每一个的进一步修改中,通过限制对媒介流的先前标识的部分的搜寻,或在搜寻媒介流之前先查询先前标识的媒介对象的数据库,媒介流中媒介对象标识的速度有了引人注目的提高。此外,在一相关实施例中,以对应于足以允许一个或多个媒介对象重复实例的时间段的分段为单位,对媒介流进行分析,如有需要,然后进行数据库查询,再继之以媒介流搜寻。
最后,一旦重复对象及其端点已经在媒介流中如上所述地被标识,ROC然后提供关于那些重复对象的用户交互和对媒介流的控制,如下所述。
2.2系统架构
以下讨论从如图2所示的对象抽取器的描述开始。接着,在描述了标识重复对象及其端点的对象抽取器的若干可选实施方式之后,参照图3提供了对ROC的讨论。然而,应该注意,在此所述的ROC并不限于在此所述的对象抽取器。特别地,ROC可用于可确定媒介流中重复对象的时间端点的任一系统。
2.2.1对象抽取器系统架构
图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中可能对象的检测之后,对象比较模块230接着查询对象数据库230,以查找可能对象的可能匹配,即重复实例。一旦标识了一个或多个可能匹配,对象比较模块240就在可能对象和一个或多个可能匹配对象间执行更详细的比较。这种详细比较包括代表可能对象的媒介流部分与可能匹配的直接比较,或者代表可能对象的媒介流部分的较低维形式与可能匹配的比较。这个比较过程在以下3.1.2节中进行更详细的描述。
接着,一旦对象比较模块240已标识了可能对象的匹配或重复实例,可能对象就在对象数据库230中被标记为重复对象。对象对齐和端点确定模块250接着将新标识的重复对象与每一个先前标识的对象重复实例相对齐,并在这些对象的每一个之间前后搜寻,以标识每个实例大约相等的最远范围。用这种方式标识每一对象的范围用于标识对象端点。此端点信息然后被存储在对象数据库230中。对象终点的对齐和标识在以下3.1.4节中进行更详细的描述。
最后,在另一实施例中,一旦对象端点已被对象对齐和端点确定模块250标识,对象抽取模块260使用端点信息将对应于这些端点的媒介流分段复制到单独文件或单个媒介对象270的数据库中。同样注意,在另一实施例中,媒介对象270也被用来替换代表可能对象之可能匹配的媒介流部分,用来在可能对象的较低维形式和可能匹配间作前述对比。
重复上述过程,递增由对象检测模块220分析的媒介流210部分,比如,例如通过使用滑动窗口,或者通过将窗口的起点移到最后检测的媒介对象的所计算的终点。这些过程一直继续,直到诸如已检查了整个媒介流,或者直到用户终止检查时。在实时搜寻媒介流以发现重复对象的情形中,搜寻过程可在已进行了预定量时间后终止。
2.2.2重复对象控制器系统架构:
现在转向对重复对象控制器,即ROC的讨论,图3的通用系统图示出了以上总结的提供关于嵌于媒介流中的重复对象的媒介流用户控制和交互的过程。特别地,图3的系统图阐述了实现“重复对象控制器”(ROC)的程序模块间相互关系,其中,ROC提供允许用户指定如何实时,或根据特定重复对象的后续出现来处理多个重复对象的交互式用户接口。应该注意,在图3中示为虚线或点划线的方框和方框间的连线代表本发明的可选实施例,并且,如下所述的任一或所有可选实施例,可结合贯穿本说明书描述的其它可选实施例使用。
特别地,如图3所示,提供关于嵌于媒介流中重复对象的媒介流用户控制和交互的系统和方法通过使用捕捉包含音频和/或视频信息的媒介流的媒介捕捉模块200开始。如上所述,媒介捕捉模块200使用众多常规技术中的任一种来捕捉无线电或电视/视频广播媒介流。这种媒介捕捉技术对本领域技术人员而言是众所周知的,在此不再描述。媒介流210一旦被捕捉到,它就被存储在计算机文件或数据库中。如上所述,媒介流的缓存允许在媒介流中诸如对象的无缝插入、删除或替换等操作。此外,在一实施例中,媒介流210使用压缩音频和/或视频媒介的常规技术来压缩。
接着,重复对象模块300处理媒介流,以在媒介流中标识重复对象以及这些重复对象的端点。这种重复对象及其端点的标识使用上述方法的任一种,或能够通过对媒介流的分析来标识重复对象及其端点的方法来实现。注意,这样的标识可实时,或在先前存储或缓存的媒介流的拷贝回放过程中发生。
一旦重复对象模块300已经在媒介流中标识了重复对象,自动查询对象/动作数据库310,以确定动作是否已被分配给或关联于特定对象上。此外,当由重复对象模块300对媒介流210的分析指示媒介流中特定对象不是重复对象时,该对象或定义该对象的参数被存储在对象/动作数据库310中,以在标识后续的重复对象中使用。存储要在后续对象标识中使用的未知或新对象,或代表这种对象的参数已在上文相对于重复对象抽取器描述。
如果对象/动作数据库310的搜寻指示动作与特定重复对象相关联,则对象动作模块320执行该指定动作。如上所述,有众多可与任何特定重复对象相关联的可能动作。例如,这些动作包括但不限于:
1.在重复对象中快进通过;
2.放慢媒介对象的回放;
3.诸如通过自动改变收听电台或观看频道来改变媒介流;
4.将特定对象添加到喜爱列表中;
5.对媒介对象分级;
6.自动升高或降低特定媒介对象的音量;
7.当特定媒介对象被检测到时自动使屏幕空白;
8.跳跃到媒介流中特定媒介对象的终点;
9.从媒介流中删除特定媒介对象,使得它们在媒介流回放中不再出现;
10.从媒介流中抽取并存储特定重复对象的一个拷贝;
11.限制特定媒体对象在预定义时间段中出现的最多次数;
12.限制一对象相对于其它一个和多个对象的出现频率;
13.自动用另一先前存储的媒介对象替换媒介流中的特定媒介对象;
14.在特定事件,诸如紧急广播信号或其它特定重复对象的出现时,自动从缓存回放跳转到实时回放。在此情形中,如果用户选择此选项,当在实时媒介流中检测到这样的信号的任何时候,缓存回放将立即被媒介流的实时回放替换。
15.从媒介流的实时回放返回到媒介流的缓存回放;以及
16.用户定义动作,诸如根据媒介流中特定歌曲的出现,自动调暗房间灯光。
实现这些动作的方法对本领域的技术人员而言是众所周知的,将不在此赘述。然而,尽管这些方法的实现为已知,但常规系统却不能提供用自动与那些重复媒介对象交互并控制它们的交互式用户接口标识媒介流中重复对象及其端点的能力。
注意,在一实施例中,媒介流210同时还被至少部分地缓存(330)。在提供诸如“跳过”、“删除”和“替换”等命令的实施例中,媒介流较佳地在回放前被缓存(330)足够长的时间段,以允许嵌于媒介流中地特定对象的无缝删除、跳过或替换。例如,当使用缓存(330)的回放并允许跳过或删除时,由缓存提供的延迟长度应当大于跳过或删除的所有对象的组合长度。注意,在特定媒介对象被替换而非被简单删除或跳过时,缓存长度要求并不严格。例如,当听众选择在每一小时的音频中切除四首三分钟的歌曲,则需要每小时至少十二分钟的缓存。另一方面,如果用户选择替换所删去歌曲的材料,显然将需要少得多的缓存。
然而,在一实施例中,如果缓存中媒介流的量降低到预定的最少时间以下,则一个或多个预存储的媒介对象将被自动插入到媒介流中,使得缓存从来不会空运行。在一实施例中,随机地选择这一插入地对象,而在另一实施例中,要插入的对象基于赋予该对象的等级来选择,当选择插入对象时,等级越高地对象其权值越大。注意,这种等级可通过前述分级命令被赋值,或可被赋值为特定对象已播放次数的函数。
接着,在对特定重复媒介对象执行指定动作后(如果有的话),媒介输出/显示模块340提供媒介流的回放。例如,给定一音频媒介流,媒介输出/显示模块340使用常规扬声器设备来提供媒介流的听觉回放。类似地,给定一视频媒介流,媒介输出/显示模块340使用诸如计算机屏幕或其它显示监视器等常规显示设备来提供媒介流的视觉回放。最后,给定一组合音频/视频媒介流,媒介输出/显示模块340将使用扬声器设备和显示设备用于媒介流的同步音频和视频回放。
在媒介流的回放过程中,用户交互模块350提供与媒介流的实时用户交互,来控制当前播放的媒介对象,或将诸如以上所列的控制命令与当前播放媒介对象的后续实例相关联。例如,如果命令是对当前播放的媒介对象发出的,如果该对象是重复对象,则终点已如上所述地被确定。因此,命令将立即起作用。然而,当当前播放对象代表媒介流中对象的第一次出现时,该对象的终点尚未确定,因此该命令将被存储在对象/动作数据库310中,以在特定媒介对象的下一次出现时自动起作用。注意,这样的命令是使用诸如定位设备360、远程控制设备370、或口述命令的自动语音识别等常规方法发出的。
如上所述,在特定重复对象出现时采取的特定动作是用众多方法来实现的。例如,在一实施例中,类似于常规电视遥控器等手持式遥控器370或其它无线或有线控制设备被提供给用户。与在其上处理媒介流的计算设备相连的接收器从遥控器中接收命令,并通过对象动作模块330执行这些命令,或将命令存储在对象/动作数据库320中,以对特定重复对象的后续实例起作用。遥控器370可包含实施任一或所有上述动作的按钮或控制,及允许用户定义动作的可定制或可编程按钮或控制。一般而言,遥控器对本领域的技术人员是众所周知的。因此,基于这种遥控器的过程在此将不会进行详细说明。
在操作上,对应于特定动作的一个和多个按钮被包括在遥控器370中。任一按钮在任意特定媒介对象的回放中的激活都自动将相关联的命令链接到当前媒介对象,以致该媒介对象的后续实例将自动包括用户指定动作。然后,此动作将随着媒介流中媒介对象的每个后续出现而被实现。然而,注意,在一实施例中,诸如“跳过”命令等某些动作可被编程,以仅在命令被激活时运行,而不是与重复对象的所有未来实例永远相关联。
在另一实施例中,遥控器提供的功能在计算机用户界面窗口中提供。特别地,在此实施例中,通过常规定向设备360选择的众多屏幕上按钮或控制提供以上关于遥控器所描述的同类功能。
在又一实施例中,提供有语音激活380,以允许用户对与媒介流中重复对象相关联的动作进行控制。特别地,在此实施例中,众多口述关键字或短语由计算机使用常规语音或话音识别技术来翻译。根据所说命令的识别,与该命令相关联的动作然后被链接到当前媒介对象,使得该媒介对象的后续实例将自动包括该用户指定动作。然后,此动作将在媒介流中该媒介对象的每一后续出现时实现。例如,在一实施例中,当用户说出命令“Save(保存)”时,当前媒介对象被自动从媒介流中抽取出,并被储存以供用户后用。类似地,当用户说出命令“Delete(删除)”时,当前媒介对象被自动从当前播放的媒介流部分中删除,且该媒介对象的所有后续出现也都从该媒介流中移除,而无需用户的进一步动作。很清楚,这种语音识别技术可被编程,用来对任意期望关键字或短语操作,以启动特定命令。
最后,在又一实施例中,可向用户呈现已发现对象,或者这些对象的代表性子分段的连续发生,并向用户给予在它们随后重现时将动作与其相关联的机会。
3.0操作概览
上述程序模块在重复对象控制器(ROC)中被采用,以在媒介流中提供对重复对象的自动和实时控制。以下小节提供实现前述参照图4A到图9的程序模块的示例性方法的详细的操作性讨论。特别地,实现前述对象抽取器的可选实施例的示例性方法首先在3.1.1节到3.1.4节中描述。接着,鉴于标识重复对象及其终点的示例性方法,实现ROC的可选实施例的示例性方法在3.1.节5中描述。然后,对象抽取器的可选实施例参照图4A到图6的流程图在3.2节中描述。最后,ROC的可选实施例参照图7到图9的流程图在3.2节中描述。
3.1操作元素
如上所述,ROC需要提供媒介流中重复对象及其端点的标识的过程。给定这些重复对象及其端点,ROC允许对这些重复对象的自动用户控制和交互。因此,在描述ROC操作元素时,将首先描述实现对象抽取器可选实施例的示例性方法。
标识对象的重复实例的通用方法的工作示例一般包括以下元素:
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的方法。例如,在对象抽取器的工作示例中,音频流被滤波并下采样(down-sampled),以产生原始媒介流的较低维形式。在一测试实施例中,对音频流滤波以产生仅包含0-220赫兹范围的信息的流被发现可产生良好的BPM结果。然而,应当理解,取决于要从媒介流中抽取什么信息,可检查任何频率范围。一旦媒介流已经被滤波并下采样,然后使用一次约为10秒的窗口的自相关来对低速流中的主要峰值的执行搜寻,其中,最大的两个峰值一BPM1和BPM2被保留。在测试实施例中使用此技术,如果BPM1或BPM2的任一个约持续大约一分钟或以上,就可判断搜寻对象(在此情形中为歌曲)存在。使用中值滤波来消除伪BPM号。
应当注意,在前面讨论中,可能或大概搜寻对象的标识仅使用特征或参量信息向量就可完成。然而,在另一实施例中,关于发现对象的信息被用来修正此基本搜寻。例如,回到音频流示例,在发现对象和电台旋律间的四分钟的间距将是作为可能搜寻对象添加到数据库的非常好的候选者,即使初始搜寻并未将其如此标记。
3.1.2测试对象相似性
如上所述,对媒介流的两部分是否大致相同的确定涉及对分别位于媒介流中两个位置,即ti和tj的媒介流的两个或多个部分的比较。注意,在测试实施例中,要比较的窗口或分段的尺寸被选定为大于媒介流中的期望媒介对象。因此,期望的是仅有部分媒介流比较分段将确实匹配,而不是整个分段或窗口都匹配,除非在媒介流中媒介对象一直都以相同顺序播放。
在一实施例中,该比较仅涉及直接比较媒介流的不同部分,以标识媒介流中的任何匹配。注意,由于媒介流中来自任何上述源的噪音的存在,任意两个重复或复制的媒介流分段完全匹配是不可能的。然而,比较带噪音信号以确定这种信号是否为复制或重复实例的常规技术为本领域的技术人员所熟知,且在此无需赘述。此外,这种直接比较适用于任何信号类型,而无需先计算表征性信号或媒介流的参量信息。
在另一实施例中,如上所述,此比较涉及先比较媒介流部分的参量信息以标识媒介流的当前分段或窗口的大概或可能匹配。
不管是直接比较媒介流部分还是比较参量信息,对媒介流两部分是否基本相同的确定比仅对可能对象的基本检测(参见3.1.1节)内在地更为可靠。换言之,此确定有相对较小的可能性会将媒介流的两个不相似持续时间不正确地分类为相同。因此,当数据库中记录的两个实例被确定为相似,或媒介流的两个分段或窗口被确定为充分相似时,这将被作为对这些记录或媒体流部分实际上代表一重复对象的确认。
这是重要的,因为在先检查媒介流以查找可能对象的实施例中,可能对象的简单检测是不可靠的;即,在数据库中作出被认为是对象的条目,但实际上并不是。因此,在检查数据库内容时,对其仅发现一个拷贝的那些记录只是可能的搜寻对象或可能对象(即歌曲、旋律、广告、视频、广告等等),但是对其发现两个以上拷贝的那些记录以更高的确定程度被认为是搜寻对象。因此,找到对象的第二个拷贝和后续拷贝非常有助于移除因仅检测媒介流中一个可能或大概对象的不可靠性而引起的不确定性。
例如,在使用音频媒介流的测试实施例中,当比较参量信息而不是执行直接比较时,音频流中的两个位置是通过比较其一个或多个其临界频带(亦称Bark频带)来进行比较的。为测试位置ti和tj基本上相等的假设,对其中心位于每个位置的搜寻类的对象平均长度的两到五倍的间隔计算Bark频谱。这一时间的选择仅仅是为方便起见。接着,计算一个或多个频带的互相关,并执行对峰值的搜寻。如果该峰值已经足够强来指示这些Bark频谱基本相同,可推断它们所起源的音频的分段也基本相同。
此外,在另一测试实施例中,对若干Bark频谱而不是一个Bark频谱执行该互相关测试提高了该比较的稳固性。特别地,多频带互相关比较允许对象抽取器在两个位置ti和tj代表大约相同对象时基本上总是能正确地标识,而很少不正确地指示它们是相同的。从广播音频流中捕捉的音频数据测试的已显示,包含700~1200赫兹范围信号信息的Bark频带对此目的而言特别稳固和可靠。然而,应当注意,在其它频带上的互相关也能在检查音频媒介流时由对象抽取器成功地使用。
一旦确定位置ti和tj代表相同对象,在Bark频带互相关的峰值位置间的差异,和频带之一的自相关允许单独对象对齐的计算。因此,计算对应于歌曲中与ti相同的位置的调整位置tj’。换言之,比较和对齐计算都显示,中心位于ti和tj的音频代表同一对象,但ti和tj’代表该对象中的大约相同的位置。即,例如,如果ti是六分钟对象中的两分钟,而tj是同一对象中的四分钟,则对象的比较和对齐允许确定对象是否为同一对象,以及返回代表该对象第二实例中的两分钟的位置的tj’。
直接比较情形是相似的。例如在直接比较情形中,诸如在媒介流不同部分间执行互相关等常规比较技术被用来标识媒介流的匹配区域。如与前例一样,总体思想是简单确定分别在ti和tj位置上的媒介流两部分是否基本相同。另外,因为直接比较不是依赖媒介的,因此直接比较情形实际上比前述实施例能更容易地得以实现。例如,如上所述,特定信号或媒介类型的分析所需要的参量信息取决于被表征的信号或媒介对象类型。然而,有了直接比较方法,这些依赖媒介的特征不需要为了比较而确定。
3.1.3对象数据库
如上所述,在可选实施例中,对象数据库用于存储信息,诸如以下的任一个或全部:指向媒介流中媒介对象位置的指针;表征那些媒介对象的参量信息;描述这种对象的元数据;对象端点信息;对象本身的拷贝;以及指向存储个别媒介对象的文件或其它数据库的指针。另外,在一实施例中,该对象数据库也存储关于对象重复实例(一旦发现)的统计信息。注意,术语“数据库”在此用作一般意义。特别地,在可选实施例中,在此描述的系统和方法构建其自己的数据库、使用操作系统的文件系统、或使用诸如SQL Server或Access等商业数据库软件包。另外,同样如上所述,在可选实施例中使用一个或多个数据库阿莱存储任一或全部上述信息。
在一测试实施例中,对象数据库最初是空的。当确定搜寻类媒介对象在媒介流中存在时,将条目存储在对象数据库中(例如参见3.1.1节和3.1.2节)。注意在另一实施例中,当执行直接比较时,查询对象数据库,以在搜寻媒介流自身前查找对象匹配。此实施例基于这样的假设操作:一旦在媒介流中观察到特定媒介对象,该特定媒介对象在该媒介流中重复是更为可能的。因此,先查询对象数据库以查找媒介对象用于减少标识匹配媒介对象所需的总时间和计算成本。这些实施例将在后面进行更详细地讨论。
该数据库执行两种基本功能。首先,它响应于查询,以确定是否有匹配或部分匹配某组特征或参量信息的一个或多个对象是否存在于对象数据库中。响应于此查询,对象数据库如上所述返回媒介流名字和可能匹配对象位置的列表,或仅返回匹配媒介对象的名字和位置。在一实施例中,如果没有匹配该特征列表的当前条目,则对象数据库创建一条目,并将媒介流名字和位置添加为新的可能或大概对象。
注意,在一实施例中,当返回可能匹配记录时,对象数据库按其确定最可能匹配的顺序显示记录。例如,此可能性可基于诸如可能对象和可能匹配间先前计算的相似性等参数。可选地,对于在对象数据库中已有若干拷贝的记录,可返回匹配的更高可能性,因为这种记录比在对象数据库中仅有一个拷贝的记录更可能匹配。从最可能的对象匹配开始进行前述对象比较减少了计算时间,同时提高了整体系统性能,这是由于这种匹配通常用更少的详细比较就可标识。
该数据库的第二种基本功能涉及对象端点的确定。特别地,当试图确定对象端点时,对象数据库返回媒介流名字以及在这些媒介流中对象的每个重复拷贝或实例的位置,使得对象可如以下小节中所述地被对齐和比较。
3.1.4对象端点确定
随着对媒介流的处理,对象数据库自然会被越来越多的媒介流中的对象、重复对象、和近似对象位置所填充。如上所述,数据库中包含可能对象地一个拷贝或实例的记录被假设为搜寻对象。数据库中这种记录的数量将以根据搜寻对象在目标媒介流中重复的频率,及被分析媒介流的长度的速率增加。除了去除关于数据库中的记录是代表搜寻对象还是仅仅是分类错误的不确定性,找到搜寻对象的第二个拷贝也有助于确定媒介流中对象的端点。
具体地,当数据库被越来越多的重复媒介对象填充时,标识这些媒介对象的端点也变得越来越容易。一般而言,媒介对象端点的确定通过比较何对齐媒介流中所标识的媒介对象,随之确定特定媒介对象的各种实例在何处出现差异来完成。如在3.1.2节中所述,尽管可能对象的比较确认了同一对象出现在媒介流中的不同位置,但此比较本身并未定义这些对象的边界。然而,通过在这些位置比较媒介流或媒介流的低维形式,然后对齐那些媒介流部分并在媒介流中前后追踪以标识媒介流中媒介流何时出现差异的点,来确定这些边界。
例如,在音频媒介流情形中,在数据库记录中有N个对象实例,因此,在音频流中该对象出现在N个地方。一般而言,观察表明,在广播音频流的直接比较中,波形数据在某些情形中会太嘈杂,以致无法得到各种拷贝大约会在何处一致,而在何处开始出现差异的可靠指示。当媒介流对这种直接比较而言太嘈杂时,媒介流的低维形式或特定特征信息的比较,经观察可提供满意结果。例如,在嘈杂音频流情形中,观察表明,诸如Bark频谱表示等特定频率或频带的比较,对比较和对齐目的能很好地起作用。
具体地,从音频流中抽取媒介对象的测试实施例中,对于媒介对象N个拷贝中的每一个,一个或多个Bark频谱表示源自比对象略长的音频数据窗口。如上所述,更可靠的比较是通过使用一个以上代表性Bark频带来实现的。注意,在应用于音频流的对象抽取器的工作示例中,表示700~1200赫兹范围内的信息的Bark频带被发现在比较音频对象时特别稳固且有用。显然,被选中作比较的频带应当适用于音乐、话音或音频流中的其它音频对象的类型。在一实施例中,选中频带的经滤波的形式被用来进一步增加稳固性。
给定此例,只要选中Bark频谱对所有拷贝大致相同,就可假设其底层音频数据也大致相同。反之,当选中Bark频谱对所有拷贝而言十分不同,则假设其底层数据不再属于所述对象。以这一方式,在媒介流中前后追踪选中底Bark频谱,来确定出现差异的位置,以便确定对象边界。
特别地,在一实施例中,数据库中对象的低维形式使用Bark频谱分解(也称为临界频带)进行计算。此分解对本领域的技术人员而言是熟知的。这将信号分解为众多不同频段。由于它们占据窄频率范围,单个频段可用比它们所代表的信号低得多的速率来采样。因此,为对象数据库中的对象所计算的特征信息可由这些频段的一个或多个经采样形式组成。例如,在一实施例中,特征信息由以840赫兹为中心的Bark频段7的经采样的形式组成。
在另一实施例中,通过计算数据库对象的低维形式与音频流的目标部分的低维形式的互相关,可确定音频流目标部分与数据库中的元素是否匹配。互相关的峰值通常暗示了两个波形在其长度的至少一部分大约相等。如本领域技术人员所熟知的,有各种技术可避免接受伪峰值。例如,如果互相关的特定极大值是一候选峰值,我们可要求该峰值要比高于围绕(不必包括)该峰值的值的窗口中的平均值的标准差的阈值要大。
在又一实施例中,发现对象的范围或端点是通过对齐重复对象的两个或多个拷贝来确定的。例如,一旦发现匹配(通过检测互相关的峰值),音频流目标部分的低维形式和媒介流另一分段或数据库条目的低维版本被对齐。它们未对齐的量可由互相关的位置确定。然后低维形式之一被归一化,使得它们的值基本一致。即,如果音频流的目标部分是S,匹配部分(来自媒介流的另一部分或来自数据库)为G,且已从互相关确定G和S以偏差o匹配,则将S(t)与G(t+o)相比较,其中t为音频流中的时间位置。然而,在S(t)与G(t+o)大致相等前,归一化是必须的。接着,通过找到使得t>tb时S(t)与G(t+o)大致相等的最小tb,来确定对象的起点。类似地,通过找到使得t<te时S(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)的分段来确定对象端点。
在又一实施例中,确定S(t)与G(t+o)在t>tb时大致相等,可通过找到S(t0)和G(t0+o)大致相等的位置t0,然后从t0开始减小t直到S(t)和G(t+o)不再大致相等来完成。与当S(t)与G(t+o)的绝对差值在t的单个值上超过某一阈值时判断S(t)与G(t+o)不再大致相等相反,当其绝对差值在值的某一最小范围内超过某一阈值时,或当累积的绝对差值超过某一阈值时,作出这一判断通常才更稳固。类似地,终点可通过从t0开始增大t,直到S(t)和G(t+o)不再大致相等来确定。
操作上,经观察在诸如电台或电视台广播音频等对象的若干实例中,所有对象有精确相同的长度是很少见的。例如,在六分钟对象的情形中,它有时从头一直播放到尾、有时则在开始和/或结束处被缩短、以及有时被介绍画外音或者上一对象或下一对象的淡出或淡入所破坏。
假定重复对象长度上的这种可能差异,有必要确定每一拷贝与其相配的拷贝的出现差异点。如上所述,在一实施例中,对于音频流情形,这可通过将每个拷贝的选中Bark频带与所有拷贝的选中Bark频带的中值进行比较来实现。在时间上后移,如果一个拷贝从中值开始出现足够的差异持续足够长的时间,则可判断该对象的实例从此处开始。接着,它被排除在中值计算之外,在此处,通过继续在对象拷贝中在时间上往后移动,执行对下一有差异拷贝的搜寻。用此方法,最终达到只剩两个拷贝的那一点。类似地,在时间上前移,每个拷贝从中值开始出现差异的点被确定,以便达到只剩两个拷贝的那一点。
确定对象实例端点的一种简单方法是,然后简单地在实例端点中选择其右端点和左端点间差值最大的那个实例。它可担当该对象的代表性拷贝。然而必须小心,它不包括作为对象一部分在歌曲的两个不同实例前出现的电台旋律。显然,可采用从N个发现拷贝中抽取代表性拷贝的更复杂算法,且上述方法仅作说明和解释用。所标识的最佳实例接着可用作所有其它实例的代表。
在一相关实施例中,一旦发现媒介流目标分段与该媒介流的另一分段间的匹配,且已执行了分割,则将在剩余媒介流中继续搜寻对象的其它实例。在一测试实施例中,用包含所有分段对象但在别处为零的分段来替换媒介流的目标分段被证明是有利的。当在媒介流的剩余部分中搜寻匹配时,它降低伪峰值的可能性。例如,如果确定ti和tj匹配,对象的一个或其它端点可能会位于以ti和tj为中心的分段之外,且这些分段可能包含不是对象部分的数据。它提高了与包含整个对象但不包含任何其它内容的分段进行比较的后续匹配判断的可靠性。
注意,除诸如歌曲等音频对象外的媒介对象的比较和对齐以非常相似的方法执行。具体地,或者直接比较媒介流(除非太嘈杂),或者直接比较媒介流地低维或经滤波地形式。为了以上所述的终点确认目的,被发现匹配的那些媒介流分段接着被对齐。
在另外的实施例中,各种计算效率问题得到了解决。特别地,在音频流情形中,在以上3.1.1、3.1.2、和3.1.4节中所述的技术都使用音频的频率选择性表示,诸如Bark频谱。尽管可每次重新计算,但如3.1.1节所述,在媒介流首次被处理时计算频率表示,然后将选中的Bark频带的伴随媒介流存储在对象数据库中或别处以备后用是更为有效的。由于Bark频带通常以比原始音频速率低得多的速率进行采样,这通常表示极少的存储量,以实现效率的较大提高。在诸如电视广播等嵌于音频/视频类媒介流的视频或图像类媒介对象中,类似处理得以进行。
此外,如上所述,在一实施例中,通过限制对媒介流先前标识的部分的搜寻,媒介流中媒介对象的标识速度能显著地提高。例如,如果从早先地搜索部分中,已确定以tj为中心的媒介流分段包含一个或多个对象,则它将被排除在后续的检查之外。例如,如果搜寻是在其长度为搜寻对象长度的两倍的分段上进行的,且已有两个对象位于tj的分段中,则显然,另一对象也位于该处将不可能,并且此分段被排除在搜寻之外。
在另一实施例中,通过在搜寻媒介流前先查询先前标识的媒体对象数据库,可提高媒介流中媒介对象的标识速度。此外,在一相关实施例中,按对应于足以允许一个或多个媒介对象重复实例的时间段的分段来分析媒介流,如有必要,然后执行数据库查询,接着进行媒介流的搜寻。这些可选实施例的每一个的操作将在以下小节中一一进行更详细讨论。
此外,在一相关实施例中,可通过首先分析足够大以包含媒介流中至少最常见重复对象的重复的媒介流部分来分析媒介流。维护在媒介流第一部分上重复的对象的数据库。接着通过首先确定分段是否与数据库中的任何对象匹配,随后检查媒介流的剩余部分,来分析媒介流的剩余部分。
3.1.5重复媒介对象的控制
如上所述,重复媒介对象的控制是通过提供与“对象抽取器”合作运行的“重复对象控制器”(ROC)来完成的。对象抽取器首先在重复对象出现在媒介流中时标识重复对象及其端点。假定在媒介流中标识了重复对象,ROC接着提供交互式用户接口,以使用户能指定如何实时地、或根据特定重复对象的后续出现对别个重复对象进行处理。
媒介流在回放前较佳地通过使用有足够长度的缓存器来缓存,该足够长度使得特定对象能从媒介流中被实时删除和/或替换,而在该媒介流中无明显中断。命令可在媒介流回放时输入,此时,所输入的命令将与当前播放媒介对象的未来实例相关联。可选地,给定包括诸如艺术家和标题信息等信息的先前标识的媒介对象数据库,用户被提供以用户界面,以浏览数据库并将特定命令赋予数据库中的特定对象。接着,基于媒介流实时或缓存回放期间有相关联命令的那些对象的后续出现,任何相关联命令将被自动执行。
3.2系统操作
如上所述,参照图2和图3在2.0节描述,并考虑在3.1节中有更详细描述的程序模块,被用来在媒介流中自动标识重复对象及其端点,并提供对这些重复对象的自动和实时控制。在表示对象抽取器可选实施例的流程图4A到图6,和代表ROC可选实施例的图7到图9中,对此过程进行了描述。应当注意,图4A到图9中表示为虚线或点划线的方框和方框间连线代表对象抽取器的另外的可选实施例,且任一或所有如下所述的这些可选实施例,可组合使用。
3.2.1重复对象抽取器的基本操作
现结合图2参照图4A到图6,在一实施例中,该过程通常可被描述为从媒介流210中查找、标识和分割媒介对象的对象抽取器。一般而言,选择媒介流的第一部分或分段ti。接着,该分段ti被顺序地与媒介流中后续的分段tj进行比较,直到抵达媒介流终点。在这一点上,选择媒介流中前一tj之后的新分段ti,并再次与媒介流中的后续分段tj比较,直到抵达媒介流的终点。重复这些步骤,直到分析完整个媒介流,以在媒介流中查找和标识重复媒介对象。此外,如下所述,对于图4A到图6有众多的可选实施例用来实现和加速对媒介流中重复对象的搜寻。
特别地,如图4A所示,在包含音频和/或视频信息的媒介流210中自动标识和分割重复对象的系统和方法,通过确定(410)媒介流中在位置ti和tj的媒介流分段是否表示了同一对象开始。如上所述,被选择来比较的分段可从媒介流的任一端点开始选择,或可随机地选择。然而,当随后选择媒介流中在时刻tj=t1开始的分段来比较时,简单地从媒介流起点开始,并选择时刻ti=t0的初始分段被发现为是高效选择。
在任一情况下,该确定(410)是通过简单比较位置ti和tj的媒介流分段来作出的。如果两个分段ti和tj被确定(410)为代表同一媒介对象,则对象端点被如上所述地自动确定(460)。一旦端点已被发现(460),则位于时刻ti附近的媒介对象及位于时刻tj附近的匹配对象的端点被存储(470)于对象数据库230中,或者媒介对象本身或指向那些媒介对象的指针被存储在对象数据库中。再一次,应当注意,如上所述,要比较的媒介流分段尺寸被选成比大于媒介流中的期望对象。因此,所期望的是仅有部分媒介流比较分段将确实匹配,而不是整个分段都匹配,除非在媒介流中媒介对象一直都以相同顺序来播放。
如果确定(410)在位置ti和tj的两个媒介流分段不代表同一媒介对象,则如果有更多的未选中媒介流分段可用(420),则选择位于位置tj+1的媒介流新的或下一分段(430)为新的ti。接着,将这个新的媒介流分段tj与现有分段ti进行比较,以如上所述地确定(410)两个分段是否代表同一媒介对象。再一次,如果分段被确定(410)为代表同一媒介对象,则对象终点被自动确定(460),且信息如上所述被存储(470)到数据库230中。
反之,如果确定(410)在位置ti和tj的两个媒介流分段不代表同一媒介对象,且如果并没有更多的未选中媒介流分段可用(420)(因为整个媒介流已被选中以与由ti代表的媒介流分段作比较),则如果未抵达媒介流终点,且有更多的分段ti可用(440),则选择位于位置ti+1的媒介流新的或下一分段(450)作为新的ti。接着,将这个新的媒介流分段ti与下一分段tj比较,以如上所述地确定(410)两个分段是否代表同一媒介对象。例如,假设第一轮比较是以在时刻t0的分段ti和在时刻t1的分段tj开始的,则第二轮比较将通过比较在时刻t1的分段ti+1和在时刻t2的分段tj+1开始,然后是时间t3,等等,直到抵达媒介流终点,此时,选择在时刻t2的新的ti。再一次,如果确定(410)分段代表同一媒介对象,则对象终点被自动确定(460),且信息如上所述地被存储(470)到数据库230中。
在同样由图4A示出的一相关实施例中,在与媒介流中的其它对象进行比较前,先检查每个分段,以确定其包含所搜寻类对象的可能性。如果该可能性被认为高于预定阈值,则进行比较。然而,如果该可能性低于阈值,则为提高效率,跳过此分段跳过。
特别地,在此可选实施例中,每次选择新的tj或ti(分别在430或450),下一步是要确定(分别为435或455)特定tj或ti是否代表了可能对象。如上所述,确定媒介流的特定分段是否代表可能对象的过程包括采用一套对象依赖算法以媒介流的不同部分为目标,来标识媒介流中的可能对象。如果特定分段tj或ti被确定(435或455)为代表可能对象,则如上所述地在tj和ti间进行前述比较(410)。然而,如果特定分段tj或ti被确定(435或455)为不能代表可能对象,则如上所述选择(420/430或440/450)新分段。此实施例是有利的,因为它避免了相对于确定媒介对象可能在媒介流当前分段中存在的可能性计算上较昂贵的比较。
在任一实施例中,为了标识媒介流中的重复媒介对象,重复上述步骤,直到媒介流的每一分段已经与媒介流的每一其它后续分段作过比较。
图4B示出了一相关实施例。一般而言,图4B所示的实施例与图4A所示的实施例的不同之处在于,重复对象端点的确定被推迟到完成每一轮媒介流检查之后。
具体地,如上所述,该过程通过顺序地比较媒介流210的分段ti与媒介流中后续分段tj,直到抵达媒介流终点来操作。再一次,选择了继前一ti之后的媒介流新分段ti,并再次与媒介流中后续的分段tj进行比较,直到抵达媒介流终点。重复这些步骤,直到分析了整个媒介流,以查找和标识媒介流中的重复媒介对象。
然而,在参照图4A描述的实施例中,一旦ti和tj间的比较(410)指示匹配,匹配对象的端点就被确定(460)并存储(470)到对象数据库230中。相反,在图4B所示的实施例中,初始化为零的对象计数器在ti和tj间的比较(410)每指示为匹配时递增一(415)。此时,并非确定匹配对象的端点,而选择下一个tj来比较(420/430/435),并再次与当前ti比较。这对媒介流中所有的tj分段重复,直到分析了整个媒介流,此时,如果匹配对象的计数大于零(425),则对代表匹配当前分段ti的对象的所有分段tj确定端点。接着,对象端点或是对象本身如上所述地被存储(470)在对象数据库230中。
此时,如上所述地选择(440/450/455)了下一分段ti,用于与后续分段tj的另一轮比较(410)。为了在媒介流中标识重复媒介对象,重复上述步骤,直到媒介流的每一分段已与媒介流中每一其它后续分段进行了比较。
然而,尽管在本节中描述的实施例用于标识媒介流中的重复对象,但仍作出了大量不必要的比较。例如,如果给定对象已经在媒介流中被标识,则该对象将在媒介流中重复是可能的。因此,在可选实施例中,采用在比较分段ti和tj(410)前先将当前分段ti与数据库中的每个对象进行比较,以减少或消除完整地分析特定媒介流时所需的某些计算成本相对昂贵的比较。因此,如以下小节所述,当媒介流210的每个分段ti被选中时,数据库230被用来进行初始比较。
3.2.2带有初始数据库比较的重复对象抽取器的操作
在另一实施例中,如图4C所示,通过先查询先前标识的媒介对象数据库230,减少了媒介流210中分段间比较(410)的数量。特别地,如图4C所示的实施例与如图4A所示的实施例的不同之处在于:在媒介流210的每个分段ti被选中后,它先与数据库230比较以确定当前分段是否与数据库中的对象相匹配(405)。如果在当前分段与数据库230中对象之间标识(405)了匹配,则该当前分段ti代表的对象端点被确定(460)。接着,如上所示,对象端点或对象本身被存储(470)在数据库230中。因此,通过简单地查询对象数据库230以查找匹配对象,当前分段ti未经对媒介流的穷尽搜寻就被标识。
接着,在一实施例中,如果匹配未在对象数据库230中被标识(405),当前分段ti与后续分段tj的比较(420/430/435)过程如上所述进行,直到抵达媒介流终点,此时,新分段ti被选中(440/450/455),以重新开始此过程。反之,如果对当前分段ti在对象数据库230中标识(405)了匹配,则如上所述,端点被确定(460)并存储(470),然后选择新的ti以再次开始该过程。接着重复这些步骤,直到分析了媒介流210中的所有分段ti以确定它们是否代表重复对象。
在更多相关实施例中,初始数据库查询(405)被推迟,直到数据库至少部分地被已标识对象填充。例如,如果特定媒介流被长时间地记录或者捕捉下来,则媒介流部分的初始分析如上文参照图4A或4B所描述地执行,随之以涉及初始数据库查询的上述实施例。该实施例在对象于媒介流中经常重复的环境中起更好的作用,因为数据库的初始填充用于为标识重复对象提供相对较好的数据组。还应注意,当数据库230被渐渐填满时,嵌于媒介流中的重复对象可通过数据库查询来单独地标识出,而非通过对媒介流中匹配的穷尽搜寻也变得更为可能。
在又一实施例中,用已知对象预先填充的数据库230被用来标识媒介流中的重复对象。该数据库230可用任一前述实施例准备,或者它可从其它常规源引入或由其提供。
然而,尽管在本节中描述的实施例已被示为减少了完整地分析特定媒介流所执行的比较次数,但仍作出了大量不必要的比较。例如,如果在时刻ti或tj上的媒介流给定分段已被标识为属于一个特定媒介对象,对已标识分段和其它分段的比较就提供不了任何实际效用了。因此如以下小节所述,使用涉及媒介流地哪些部分已被标识出地信息,以通过限制对与那些媒介流中未标识地媒介流分段的匹配分段的搜寻,来快速地衰减(collpase)搜寻时间。
3.2.3带有渐进媒介流搜寻限制的重复对象抽取器的操作
现在结合图2参考图5,在一实施例中,该过程一般可被描述为对象抽取器,它从媒介流中查找、标识和分割媒介对象,同时标记先前标识的媒介流部分,使得它们不会被一再搜寻。
特别地,如图5所示,在媒介流中自动标识和分割重复对象的系统和方法通过选择(500)包含音频和/或视频信息的媒介流210中第一窗口或分段开始。接着,在一实施例中,媒介流然后被搜寻(510),以标识带有匹配选中分段或窗口(500)的一部分的部分的所有媒介流窗口或分段。注意,在一相关实施例中,如下详细所述,在足以允许一个或多个媒介对象重复实例的时间段上按分段来分析媒体流,而不是搜寻(510)整个媒介流以找出匹配分段。例如,如果媒介流被记录了一个星期,则媒介流的首次搜寻的时间段可能是一天。再一次,在此实施例中,搜寻媒介流的时间段仅仅是足以允许媒介对象的一个或多个重复实例的时间段。
在任一情形中,一旦已搜寻(510)了所有或部分媒介流以标识与选中窗口或分段(500)相匹配(520)的所有媒介流部分,则匹配部分被对齐(530),该对齐接着被用来如上所述地确定对象端点(540)。一旦端点已确定(540),则匹配媒介对象的端点被存储在对象数据库230中,或者媒介对象本身或指向那些媒介对象的指针被存储在对象数据库中。
此外,在一实施例中,媒介流的这些已被标识部分被标记,并被限制作再次搜寻(560)。该特定实施例用于在重复对象被标识时快速衰减可搜寻区域。再一次,应当注意,如上所述,要比较的媒介流分段地尺寸被选为大于媒介流中的期望媒介对象。因此,期望的是,仅有部分媒介流比较分段而不是整个分段将真正匹配,除非媒介流中的媒介对象一直按相同顺序播放。
因此,在一实施例中,仅有真正被标识的媒介流每个分段部分被标记(560)。然而,在发现媒介对象经常重复的媒介流中,观察到,仅限制对整个分段作进一步搜寻仍允许对媒介流中大部分重复对象的标识。在仅有特定分段的可忽略部分还未被标识的另一相关实施例中,只要忽略那些可忽略部分。在又一相关实施例中,只要将在限制对分段部分作进一步搜寻(560)后剩余的部分分段与前或后分段相组合,以与新选中分段(500)进行比较。这些实施例的每一个都用于通过使在媒介流中搜寻匹配更有效来改进整体系统性能。
一旦对象端点已被确定(540),当没有匹配被标识时(520),或者在媒介流部分已被标记用来防止对这些部分的进一步搜寻(560)之后,要检查当前选中媒介流分段(500)是否代表媒介流终点(550)。如果当前选中媒介流分段(500)代表了媒介流终点(550),则过程完成且搜寻被中止。然而,如果未抵达媒介流终点(550),则通过搜寻整个媒介流510以查找匹配分段,媒介流的下一分段被选中并与媒介流剩余部分进行比较。以上所述的用于标识匹配(520)、对齐匹配分段(530)、确定端点(540)、和在对象数据库230中存储端点或对象信息的步骤被如上所述地重复,直到抵达媒介流终点。
注意,因为先前选中的分段已经与当前选中分段进行了比较,不必在媒介流中作反向搜寻。此外,在特定媒介流分段或部分已被标记为已标识(560)的实施例中,这些分段在搜寻中(510)被跳过。如上所述,随着更多的媒介对象在媒介流中被标识,跳过媒介流的标识部分用于快速衰减可搜寻空间,因而与3.2.1节所述的基本硬算方法相比大大提高了系统效率。
在另一实施例中,通过先搜寻对象数据库230(570)以标识匹配对象,在媒介流中标识重复对象的速度和效率可得到进一步的提高。特别地,在该实施例中,一旦媒介流部分已被选中(500),基于以下理论首先将该分段与先前标识的分段进行比较:媒介对象一经发现在媒介流中重复,其就更可能在媒介流中再次重复。如果在对象数据库230中标识(580)了一个匹配,则以上所述的用于对齐匹配分段(530)、确定端点(540)、和在对象数据库230中存储端点或对象信息的步骤被如上所述地重复,直到抵达媒介流终点。
当结合其中在足以允许一个或多个媒介对象重复实例的时间段上按分段分析媒介流,而不是搜寻(510)整个媒介流以找出匹配分段的实施例时,每个前述搜寻实施例(如510、570和560)得到进一步的改进。例如,如果媒介流被记录了一个星期,则媒介流首次搜寻的时间段可以是一天。因而,在该实施例中,先在第一时间段,即一周长媒介记录的第一天搜寻媒介流,同时将匹配媒介对象的端点或对象本身如上所述地存储在对象数据库230中。对媒介流剩余段或媒介流后续持续时间(即一周长媒介流记录的第二天或后续天)的后续搜寻然后被如上所述地首先定向到对象数据库(570和230),以标识匹配。
3.2.4带有可能对象的初始检测的重复对象抽取器的操作
现在结合图2参考图6,在一实施例中,过程一般可被描述为对象抽取器,它通过先在媒介流中标识可能或大概对象,从媒介流中查找、标识和分割媒介对象。特别地,如图6所示,在媒介流中自动标识和分割重复对象的系统和方法通过捕捉(600)包含音频和/或视频信息的媒介流210开始。媒介流210可使用众多常规技术的任一种进行捕捉,诸如与计算机连接的用于捕捉无线电或电视/视频广播媒介流的音频或视频捕捉设备。这种媒介捕捉技术为被领域技术人员所熟知,且将不在此描述。一旦被捕捉,媒介流210就被存储在计算机文件或数据库中。在一实施例中,使用压缩音频和/或视频媒介的常规技术对媒介流210进行压缩。
接着检查媒介流210,试图标识嵌于媒介流中可能或大概媒介对象。该媒介流210的检查是通过检查代表媒介流部分的窗口(605)来完成的。如上所述,用来检测可能对象的对媒介流210的检查使用了一种或多种适合被检查媒体内容类型的检测算法。一般而言,如上详细所述,这些检测算法计算用来表征被分析媒介流部分的参量信息。在一可选实施例中,媒介流在被捕捉(600)和存储(210)时被实时检查(605)。
如果在被分析媒介流210的当前窗口或部分中未标识可能对象,则该窗口被增长(615),以检查媒介流的下一分段,试图标识可能对象。如果可能或大概对象被标识(610),则可能对象在媒介流210中的地点或位置被存储(625)在对象数据库230中。另外,表征可能对象的参量信息也被存储(625)在对象数据库230中。注意,如上所述,该对象数据库230最初是空的,且对象数据库中的第一个条目对应于媒介流210中检测到的第一个可能对象。可选地,对象数据库230用对已先捕捉媒介流的分析或搜寻的结果来预先填充。随着窗口的增长(615),窗口的检查(605)一直继续,直到抵达媒介流终点(620)。
在媒介流210中检测到可能对象之后,对象数据库230被搜寻(630),以标识可能对象的可能匹配,即重复实例。一般而言,该数据库查询是使用表征可能对象的参量信息来完成的。注意,为了标识可能匹配,精确的匹配是不必要甚至是不预期的。实际上,使用了执行该初始可能匹配搜寻的相似性阈值。该相似性阈值或“检测阈值”可被设置成表征可能对象的参量信息的一个或多个特征和可能匹配间的任意期望比率匹配。
如果未标识到可能匹配(635),则可能对象在对象数据库230中被标记为新对象(640)。可选地,在另一实施例中,如果没有可能匹配,或者标识了太少可能匹配,则检测阈值被降低(645),以便增加数据库搜寻(630)所标识的可能匹配数量。反之,在又一实施例中,如果太多可能匹配被标识(635),则提高检测阈值,以限制所执行的比较的数量。
一旦一个或多个可能匹配被标识(635),可能对象和一个或多个可能匹配对象间的详细比较就被执行。该详细比较包括代表可能对象的媒介流210部分和可能匹配的直接比较,或代表可能对象的媒介流部分的低维形式和可能匹配的比较。注意,尽管该比较利用了存储的媒介流,比较也可使用已先被查找和存储的媒介流270来进行。
如果详细比较(650)无法查找到对象匹配(655),则可能对象在对象数据库230中被标记为新对象(640)。可选地,在另一实施例中,如果没有对象匹配被标识(655),则降低检测阈值(645),且新的数据库搜寻(630)被执行,以标识另外的可能匹配。再一次,将任何可能匹配与可能对象进行比较(650),以确定该可能对象是否与已在对象数据库230中的任一对象相匹配。
一旦详细比较已标识了可能对象的匹配或重复实例,该可能对象在对象数据库230中被标记为重复对象。接着,将每个重复对象与该对象的每一先前标识的重复实例对齐(660)。如上详细所述,通过在每个重复对象实例间前后搜寻以标识每个对象大致相等的最远范围,对象端点被确定(665)。以这种方式标识每个对象的范围用于标识对象端点。然后该媒介对象端点信息被存储在对象数据库230中。
最后,在又一实施例中,一旦对象端点被标识(665),端点信息被用来把对应于那些端点的媒介流分段拷贝或存储(670)到单独文件或单个媒介对象270的数据库中。
如上所述,前述过程被一直重复,同时媒介流210的被检查部分持续递增,直到整个媒介流已被检查(620),或直到用户中止了该检查。
3.2.5ROC操作
现在结合图3参考图7,在一实施例中,该过程通常被描述为提供对媒介流中重复对象的交互式用户控制的媒介控制器。特别地,如图7所示,对在一个或多个媒介流中标识的重复音频和/或视频对象提供自动和实时用户控制的系统和方法通过输入包含音频和/或视频信息的媒介流(700)开始。该媒介流在媒介流输出(735)或回放前较佳地被缓存,以允许对媒介流中特定对象进行感性的无缝输出、插入或替换。
在缓存回放(735)之前,媒介流被分析并与对象/动作数据库310中的一个或多个条目进行比较,以确定媒介流的当前分段或部分是否代表了重复对象(705)。如果媒介流的当前部分不代表重复对象,则表征该媒介流部分的信息被输入到对象/动作数据库310中,系统然后等待(725)媒介流的下一部分,以再次确定该部分是否代表重复媒介对象(705)。如果媒介流的当前部分的确代表了重复对象,则对象的端点被确定(710)。接着,给定对象的端点,查询对象/动作数据库310,以确定是否有动作被指定(715)或与该对象相关联。
图9提供了可与重复媒介对象相关联的示例性动作的非排他列表示例。特别地,如图9所示,可由用户指定的命令包括任一或全部以下命令:快进(905)、放慢(910)、用户定义动作(915)、改变媒介流(920)、将对象加入到喜爱列表中(925)、对象分级(930)、跳过对象(935)、删除对象(940)、保存对象(945)、限制对象(950)、替换对象(955)、跳转到实时/从实时跳转(960)、使屏幕空白(965)及改变音量(970)。
如果没有动作被指定(715)或与当前重复媒介对象相关联,则系统等待(725)媒介流的下一部分(725),以再次确定该部分是否代表重复媒介对象(705)。然而,如果动作被指定(715)或与当前重复媒介对象相关联,则该动作如上所述被实现。一旦指定动作被实现,系统再次等待(725)媒介流的下一部分,以再次确定该部分是否代表重复媒介对象(705)。
注意当重复对象(705)被确定,并且为相关联动作检查了对象/动作数据库时,媒介流也被输出(735)。同样,尽管并非所需,然而为获得最佳性能,较佳的是在输出(735)或回放前将媒介流缓存(730),以便根据与特定重复媒介对象相关联的任意动作,对缓存的媒介流作出改变。例如,给定对一重复媒介对象以及其在媒介流中的时间终点的标识,则在媒介流输出(735)或回放前删除、替换它或甚至将其它内容插入到缓存媒介流(730)中是简单的。此外,当媒介流被缓存时(730),媒介流中对象的这一删除、替换或插入可使用常规技术来实现,而其中没有视觉和/或听觉中断。
接着,在媒介流输出(735)或回放过程中,用户可通过图形用户界面、遥控器、语音命令、或这些输入类型的任意组合,对当前对象指定动作(740)。指定的命令然后被输入到对象/动作数据库中。此外,如果为当前播放媒介对象输入的动作或命令是用于先前标识的重复对象的,则端点已如上所述地被确定。因此,无论媒介对象回放已进行了多久,命令通常被立即执行。然而,在当前播放媒介对象代表媒介流中对象的第一次出现时,该对象的端点还未被确定,因此该命令被存储在对象/动作数据库310中,用来在该特定媒介对象的再次出现时自动执行。应当注意,在某些情形中,各种对象的重复实例在每次重现时其长度会改变。在此情形中,较佳的时对出现的每一个新对象重新计算其端点。
最后,在一实施例中,对象/动作数据库310通过常规用户界面来更新或编辑(745)。在该实施例中,用户被提供以浏览数据库和审视与特定媒介对象相关联的特定命令的功能。用户可按需编辑、添加、或更新命令。此外,在一相关实施例中,用户被提供以从另一对象/动作数据库中引入数据的功能。例如,如果用户在一个计算设备上训练了一个对象/动作数据库310,用户只要将该数据库存储在计算机可读介质中,并将其传送给众多另外的计算设备的任一个。以此方法,用户被提供以共享训练数据库的功能,而无需自己去编写对象/动作数据库310。
此外,在该实施例中,引入的数据包括标识对象所必需的指纹、和与其相关联的动作(如果有的话)。另外,在一实施例中,该引入的数据还包括由指纹代表的媒介对象的低维形式。因此,给定这些低维形式,一旦每一对象在媒介流中出现,对象端点的标识和任意指定动作的完成然后立即在每个特定媒介对象的第一实例上实现。否则,如果未向低维形式提供引入数据,则对象端点的标识将需要该对象的至少第二个实例在用户的本地媒介流中被观察到。
3.2.6ROC的可选操作
现在结合图3参考图8,在另一实施例中,该过程通常再次被描述为提供对媒介流中重复对象的交互式用户控制的媒介控制器。特别地,如图8所示,对在一个或多个媒介流中标识的重复音频和/或视频对象提供自动和实时用户控制的系统和方法通过输入包含音频和/或视频信息的媒介流(800)开始。再一次,该媒介流在媒介流输出(835)或回放前较佳地被缓存,以允许对媒介流中特定对象进行感性的无缝输出、插入或替换。
在一实施例中,在缓存回放(835)之前,媒介流的低维形式被计算(805)并存储到低维档案中(810)。在如上所述标识重复对象并确定其端点时,该低维档案(810)被用来进行媒介流的直接比较。可选地,可简单地存档(815)媒体流,而不经过计算媒介流的低维形式。再一次,该档案(815)在如上所述标识重复对象并确定其端点时被用来进行媒介流的直接比较。
在又一实施例中,通过读取媒介流部分、计算并存储指纹、然后(830)等待某一预定时间段,来自媒介流的指纹以某一所需频率被计算(820)并存储在指纹数据库(825)中。在一测试实施例中,发现以约为十到二十毫秒的间隔将指纹填充到指纹数据库提供了稳固的指纹数据库。这些指纹然后被用于与媒介流的后续比较,其中,第二组指纹可以更低的速率或频率计算,并与指纹数据库中的条目进行比较,以确定是否有对象在媒介流中重复。然而,应当注意,众多常规指纹标识方案可实现对象的稳固识别。指纹写入数据库所需频率和检查数据库所需频率的细节因所用地真正指纹标识技术的细节而有差异。
在另一实施例中,来自媒介流的指纹被计算(835),接着是对指纹/动作数据库860的搜寻(840),以确定是否有可指示媒介流中重复媒介对象的存在的数据库匹配(845)。在该实施例中,如果没有匹配(845),则所计算地指纹被添加到指纹/动作数据库860中(850),接着在计算来自媒介流的新指纹(835)前等待一预定时间段(855)。
如果由数据库搜寻(840)标识了数据库匹配(845),则指示媒介流中重复媒介对象的存在。如果媒介流的当前部分的确代表重复对象,则该对象的端点被确定(865)。接着,给定对象端点,查询指纹/动作数据库860,以确定是否有动作被指定在该对象上(870)。(参见图9的与重复媒介对象相关联的示例性动作的非排他列表)。
如果没有动作与当前重复媒介对象相关联,则在再次计算指纹(835)和再次搜寻数据库(840)前,系统等待(855)媒介流的下一部分,以确定重复媒介对象是否在媒介流中存在。然而,如果动作已对重复媒介对象指定,则该动作如上所述被实现。一旦指定动作被实现,在再次计算指纹(835)和再次搜寻数据库(840)前,系统再次等待(855)媒介流的下一部分,以确定重复媒介对象是否在媒介流中存在。
再一次,当标识重复对象的数据库搜寻(840)与为相关联动作对指纹/动作数据库进行的检查一起进行时,媒介流也被输出(885)。此外,如上所述,尽管并非所需,为获得最佳性能,再一次,较佳的是,在输出(855)或回放前将媒介流缓存(880),以便根据与特定重复媒介对象相关联的任意动作,对缓存媒介流作出改变。
接着,在媒介流输出(885)或回放过程中,用户可通过图形用户界面、遥控器、语音命令、或这些输入类型的任意组合,对当前对象指定动作(890)。指定命令然后被输入到指纹/动作数据库中。此外,如果为当前播放媒介对象输入的动作或命令是用于先前标识的重复对象的,则端点已如上所述被确定。因此无论媒介对象回放已进行了多久,命令都将被立即执行。然而,在当前播放媒介对象代表媒介流中对象的第一次出现时,对象的端点还未被确定,因此该命令被存储在指纹/动作数据库860中,用来在该特定媒介对象的再次出现时自动执行。在某些情形中,各种对象的重复实例在每次重现时其长度会改变。因此,在此情形中,较佳的是对出现的每一个新对象实例重新计算其端点。
在一实施例中,指纹/动作数据库860通过常规用户接口来更新或编辑(895)。在该实施例中,用户被提供以浏览数据库和审视与特定媒介对象相关联的特定命令的功能。用户然后可如上参照图7所描述的对命令进行编辑、添加、或更新。
最后,在又一实施例中,用户可在数据库中将对象按属性或属性组进行分组,并且将相同或相似动作应用在共享该属性或属性组的所有对象上。例如,用户可能希望将相同动作应用在长度小于60秒、并在最近4天内至少出现过1次的所有对象上。因而,按属性来选择和分组对象的完整数据库功能可被用来把动作与具有近似属性的对象相关联。此外,用户还可被提供以从任何这种子集中特别地包括或排除特定对象的功能。
4.0附加对象抽取器实施例
如上所述,为分割和标识重复媒介对象及其端点而被捕捉地媒介流可源自任何常规广播源,诸如通过电台、电视、因特网或其它网络的音频、视频、或音频/视频广播。对于组合音频/视频广播,如典型的电视类广播,应当注意,组合音频/视频广播的音频部分是与视频部分同步的。换言之,音频/视频广播的音频部分与视频部分一致是众所周知的。因此,在组合音频/视频流中标识重复音频对象与在其中标识视频对象相比,是一种方便和计算上相当便宜的方法。
特别地,在一实施例中,通过先在音频流中标识音频对象、标识那些音频对象开始和结束的时刻tb和te(即音频对象的端点)、然后在那些时刻上分割音频/视频流,视频对象也从组合音频/视频流中与音频对象一起被标识和分割。
例如,经常可见到典型商业广告或广告常常在任一指定日在任一指定电视台上重复。把该电视台的音频/视频流记录下来并处理电视广播的音频部分,可用于标识那些重复广告的音频部分服务。此外,由于音频与媒介流中的视频部分同步,重复广告在电视广播中的位置可方便地用上述方式确定。一旦位置被标识,这种广告可被标记,用于任意所需的特别处理。
本发明前面的描述是为说明和描述呈现的。它并非旨在穷尽本发明或把本发明限制在所揭示的精确形式中。鉴于以上讲述,很多更改和变化是可能的。此外,应当注意,任一或全部前述实施例可被用于期望形成在此所述之对象抽取器的附加混合实施例的任意组合。本发明的范围并非被限制在本详细说明书内,而是被限制在所附权利要求书中。