对多个同步化数据流加速数据库查找的系统和方法

文档序号:6649402阅读:229来源:国知局
专利名称:对多个同步化数据流加速数据库查找的系统和方法
技术领域
本发明涉及在广播媒体流中对媒体对象的标识,尤其涉及,用于在最小化服务器数据库查询负载的同时,向众多独立客户机提供并发的服务器端的对诸如歌曲的媒体对象的标识的系统和方法。
背景技术
存在众多用于从信号中提取“特征”用于标识目的的方案。例如,关于一维的信号诸如音频信号或音频文件,音频特征提取是被用作为涉及音频信号中的媒体对象的分类、检索和标识任务中的必要步骤。用于标识目的,提取出的特征或“轨迹”通常被与已知的“指纹”作比较以用于标识该音频信号的元素或整个音频信号。这样的公知的媒体对象标识方案被习惯性地称作为“音频指纹识别”。
诸多常规方案修改了这样的音频指纹识别技术,使得能提供对在诸如无线电或因特网广播的音频流中的特定歌曲的标识。例如,收听一音频流的用户可能听到某些歌曲他或/她想知道其名称、歌手、专辑等。常规的音频指纹识别技术而后被用来从歌曲的采样中提取一个或多个轨迹。通常,这些轨迹而后被与在已知音乐数据库中的指纹作比较以用于标识一个匹配,而后并将结果提供给用户。
而且,这样的技术也被修改以适应于众多常规服务,来提供一般基于音频指纹识别技术和数据库比较的收费的歌曲标识和查找服务。例如,若干歌曲标识服务,诸如相对著名的“Shazam”音乐标识服务,通过蜂窝电话?网络运行来为用户标识特定的歌曲。具体地,诸如由Shazam提供的系统一般通过首先要求用户在他的手机上拨一个号码,然后将音乐对着电话播放大约15至30秒。Shazam服务而后通过在已知音乐的数据库中比较该音乐(或从该音乐中计算出的轨迹)来标识该音乐。Shazam服务而后向用户返回关于所标识出的歌曲的名称、歌手、专辑等的文本消息。
不幸地,上述类型的查找任务的一个问题是,由于在任何给定时间访问音乐标识系统的用户数量增加,每秒的数据库查找请求也增加了。例如,这个问题在诸如由Shazam提供的服务中缓解了,因为用户必须对每一首他想标识的歌曲为电话和服务本身付费,因为照这样向用户收费的效果,趋向于限制系统的并发用户的数量,从而减轻了整个服务器负荷。这样的系统的另一个问题是,它需要向服务器传输整首歌曲的采样(受电话服务的频率/带宽限制),服务器而后需要从传输的媒体流的采样中计算轨迹。
因此,由于并发用户的数量日益庞大,即使相对大量储备的专用服务器的情况下,从输入音乐计算轨迹和指纹、用于标识这些指纹执行的数据库查询和对单个用户的响应的相应的计算负荷仍可能迅速地被压垮。作为结果,这样的方案趋于由假定并发用户的数量会相对的少而受到限制。而且,尽管可能按比例增加这样的方案,来提供足够数量的服务器以解决潜在的上千万的大量的并发用户,但是用于这样的一个系统的花费可能会非常高昂。
从而,存在对提供对歌曲实时确认的系统和方法的需求。而且,这样的系统和方法应该能够在最小化服务器负荷和数据库查询的同时,向大量并发用户提供歌曲标识服务。最后,这样的系统和方法还应该通过要求多个客户机计算机中的每一个执行计算任务来消除从媒体流的采样中计算轨迹的负担,来最小化服务器负荷。

发明内容
此处所描述的“媒体标识器”,通过向单个用户提供对嵌入在诸如,例如,无线电、电视或因特网广播的流动媒体广播中的媒体对象的实时服务器端标识,操作来解决上面确定的问题。这些媒体对象包括,例如,歌曲、广告、诗句、站标识器等。通常,媒体标识器通过向单个客户机提供至少一个通过将由每一客户机从媒体流中的采样部分计算出的“轨迹”在已知指纹的数据库中比较来提供对在广播媒体流中的媒体对象的实时标识的服务器来操作。通常,计算出的轨迹由每一客户机向服务器发送,并直接地或通过服务器端轨迹高速缓存,与已知标识的存储的、预先计算的轨迹(此处指“指纹”,以区分它们与客户机生成的轨迹)的大数据库比较。
具体地,对每一客户机,进入媒体流的定长的段被用来在重复的时间间隔上计算低维“轨迹”。在一测试的实施例中,这样的轨迹由每一客户机以大约每秒钟六次的数量级从所述的大约六秒钟长度数量级的媒体广播流的采样中计算和传输。显然,由于这些参数一般依赖于用于轨迹计算的特定的技术,能够使用更多或更少的轨迹,使用更长或更短的采样周期。
对源于媒体流的轨迹的计算,使用常规技术来完成,诸如,例如,在编号为No.US 2003/0236661,标题为“SYSTEM AND METHOD FOR NOISE-ROBUSTFEATURE EXTRACTION(用于噪声健壮的特征提取的系统和方法)”的美国专利申请出版物中所述的系统,其主题通过引用包含在此。通常,这样的系统通过对进入的媒体流采样和从采样的信号中计算低维特征向量(即,“轨迹”)来运作。从采样的媒体流的轨迹计算对本领域的技术人员是已知的,且不在这里详细描述。
包含指纹数据库的指纹通常以与轨迹相同的方式,使用相同的算法来计算。然而,不同于轨迹,指纹只从每一已知媒体对象的一个或多个采样计算一次,这样使得建立已知指纹的数据库。一旦被创建,该数据库而后仅仅由服务器访问,而无需为已知媒体对象再次计算指纹。然而,已知指纹的数据库能够使用由创建了新的媒体对象(歌曲等)的新指纹而被更新。从而,已知指纹的数据库最好是脱机创建的,且仅仅向服务器提供,这样能够在由这里所述的媒体标识器执行媒体标识操作时,消除在服务器上的任何额外的计算负载。
对每一客户机,服务器而后使用不精确的匹配,以确定是否有任何轨迹在某些阈值或容许度范围内匹配在数据库中的任何指纹。对这种不精确的匹配技术的使用,较精确匹配技术更优,因为即使对媒体流中精确同样部分计算得到的轨迹,由客户机中的任何一个计算出的轨迹可能由于噪声、干扰、信号衰减而变化。而且,使用不精确匹配也解决对在其上计算轨迹的媒体流的采样的部分小的时间上的偏移。在一实施例中,不精确匹配使用如在本领域中所公知的指纹专用重新归一,诸如,在2003年5月份发表在关于语音和音频处理的IEEE会报,关于语音和音频处理的IEEE会报,Vol.11,No.3,第165-174页,作者为Christopher J.C.Burges、John C.Platt、和Soumya Jana,标题为“Distortion Discriminant Analysis for AudioFingerprinting(用于音频指纹识别的失真判别式分析)”的出版物中所述,其主题通过引用包含在此,来改进精确性。
只要源自一客户机的轨迹与一指纹匹配,服务器告知客户机该相应于轨迹的特定媒体对象的身份。在媒体对象诸如歌曲的情况中,该身份通常包括诸如,例如,歌手、歌曲名称、专辑名称、流派等信息。显然,给定一个已知媒体对象,任何所需的信息能够与用于标识该媒体对象的在数据库中的指纹相关联。
然而,此处所述的媒体标识器引入了一额外的服务器端的高速缓存,利用了假定存在有限数目的媒体流,以及通常在任何给定时间接收相同媒体流的大量用户的情况中,在任何时间,用户生成的轨迹中的许多可能是几乎相同的事实,而不是对发送给服务器的每个轨迹提供对指纹数据库蛮力的搜索。换言之,在时间中的任何给定点,有可能存在潜在地上万甚至上千万的众多收听相同的诸如特定无线电、电视或因特网广播的媒体流的人。这个被观察到的事实允许创建缓存进入轨迹和对匹配指纹数据库搜索结果的服务器端的高速缓存。
具体地,从每一客户机处得来的每一进入轨迹先被含有某些轨迹的高速缓存检查。如果该轨迹不在高速缓存中,那么而后进行完全数据库查找,且数据库查找的结果,不论是肯定的还是否定的,将同由客户机发送的轨迹一起存储在高速缓存中。在高速缓存和数据库中的查找能够使用常规技术完成,诸如,例如,使用bailing(一种已知的使用线性扫描加速距离比较的方法)的线性扫描(即,按顺序进行地)。
在另一实施例中,在数据库中的查找通过使用位向量索引而加速,如在于2003年6月23日提交的,流水号为10/602,438,标题为“Multidimensional Data ObjectSearching Using Bit Vector Indices(使用位向量索引的多维数据对象搜索)”尚待批准的美国专利申请中所述,其主题通过引用包含在此。这个位向量索引方法也在由Jonathan Goldstein、John C.Platt、和Christopher J.C.Burges所著的,于2003年10月28日发表在微软技术报告MSR-TR-2003-38上的,标题为“Indexing HighDimensional Rectangles for Fast Multimedia Identification(用于快速多媒体标识的索引高维矩形)”的出版物中所述,其主题通过引用包含在此。
通常,在上述美国专利申请和相应的微软技术报告中所述的位向量索引方法,解决了对于高维区域进行快速点查询的问题。这样的查询在日益重要的在其中不同的数据库条目拥有不同的相似性度量的多媒体标识和检索问题中是有用的。对照关注于高维最近的邻近点和小正数范围查询的典型的数据库索引,对高维区域的点查询索引提供了依赖冗余和位向量索引的结合的来达到显著的性能增益的高效的索引方法。这样的方法被观测到在整个真实世界线性扫描上提供显著的性能增长。
数据库搜索的否定结果,即,在数据库中没有指纹对轨迹的匹配,是不被传送回客户机的。数据库搜索的肯定结果,即,在一轨迹和一指纹之间的匹配是被传送回客户机的,这样标识了从中计算出轨迹的媒体对象。如上所述,高速缓存在搜索指纹数据库之前,被搜索来标识匹配轨迹。从而,如果找到一个对存储在高速缓存中的轨迹的匹配,不需要进一步的数据库查找,因为在高速缓存中的轨迹也包含相关联的媒体对象的身份,或仅仅指出不存在匹配指纹。在轨迹匹配数据库中的指纹的情况中,与该匹配指纹相关联的任何身份信息被传送回客户机。
由媒体标识器提供的服务器端高速缓存的一个优点是,高速缓存相对较小,使得高速缓存搜索十分迅速。具体地,高速缓存大小是接收在媒体流中的一点的客户机之间的最大预期延迟,和向其提供标识服务的唯一的媒体流的数量的函数。而且,应该注意到高速缓存的大小不是用户数量的函数。
具体地,每一特定媒体广播流对每一接收该特定媒体流的客户机是大致同步化的。例如,接收相同广播站的任何两个或多个客户机,可能接收在大约一秒钟数量级这样的非常短的时间偏移内的相同的信号。对于大多数因特网或流动媒体网络广播也是同样的情况。
从而,不存在对在媒体高速缓存中保存轨迹超过最大预期延迟时间(延迟时间也包括对每一客户机计算和向服务器传输该轨迹的最大预期延迟)某个小倍数时间的需要。换言之,这个延迟仅仅是在服务器对一特定媒体对象的一给定部分接收第一个轨迹到该服务器(从最慢的客户机处)对同样的媒体对象的部分接收最后的轨迹之间的最大时间。从而,只需要保存轨迹很小的一段时间,如几秒钟数量级。作为结果,不存在对存储所有唯一输入轨迹的大高速缓存的需求。
在一相关的实施例中,一个更简单的解决方法是,在轨迹不能匹配大约一秒钟数量级的某个短时间段中任何进入轨迹之后,就简单地从高速缓存中去除该轨迹,而不是试图确定或估计用于设定在轨迹在高速缓存的生存期的最大延迟时间。在另一替换实施例中,其他高速缓冲存储方案也能够被使用,包括,例如,基于常用的LRU(最少最近使用)逻辑扔掉轨迹的固定的高速缓存大小的使用。
由于上述概述,应该清楚,在此处所属的媒体标识器提供了用于向要求同步媒体广播流的众多并发客户机,提供实时媒体标识的独特的系统和方法。除了所述的益处,当结合附图考虑时,媒体标识器的其它优点会随着下述详细描述变得明显。


本发明的特定特征、方面和优点关于下列描述、所附权利要求和附图,能够被更好地理解,其附图中图1是描述组成实现此处所述的“媒体标识器”的示例性系统的通用计算设备的通用系统的框图。
图2提供了示出用于实现此处所述的“媒体标识器”的功能组件之间一般关系的示例性体系结构的系统框图。
图3提供了示出用于实现此处所述的“媒体标识器”的程序模块的示例性体系结构的流程图。
图4提供了示出此处所述的“媒体标识器”的一实施例的一般操作的操作流程图。
具体实施例方式
在下列本发明的最佳实施例的描述中,参考了作为描述的一部分的附图,且在其中是作为说明可在其中实现本发明的特定实施例而示出的。应该理解,可以使用其它实施例和可以作结构化的修改而不背离本发明的范围。
1.0示例性操作环境图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,且不旨在对本发明的使用范围和功能提出任何限制。也不应该把计算环境100解释为对在示例性操作环境100中示出的任一组件或其组合有任何依赖或要求。
本发明可使用众多其它通用或专用计算系统环境或配置来操作。可以适用于本发明的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式计算机、膝上型计算机或移动计算机或通信设备诸如,手机和PDA、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包括上述系统或设备中任一个的分布式计算环境等。
本发明可在诸如由计算机与包括麦克风阵列198的组件的硬件模块相结合来执行的程序模块等的计算机可执行指令的通用环境下描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境下实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。
计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机110访问到的任何介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。
计算机存储介质包括,但不限于,RAM、ROM、PROM、ERROM、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,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器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输入命令和信息。
其它输入设备(未示出)可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪、无线电接收机和电视或广播录像接收器等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)、IEEE 1394接口、蓝牙TM无线接口、IEEE 802.11无线接口等连接。而且,计算机110还可以包括语音或音频输入设备,诸如麦克风或麦克风阵列198和扩音器197或其它通过音频接口199连接的声音输入设备,再次包括了常规的有线或无线接口,诸如,例如,并行的、串行的、USB、IEEE 1394、蓝牙TM等。
监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机也可以包括其它外围输出设备,诸如打印机196,可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且尽管仅在图1中示出存储器存储设备181,但是通常包括上文相对于计算机110描述的许多或所有元件。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至局域网171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内部或外部的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
2.0引言此处所述的“媒体标识器”向独立的用户提供了对嵌入在诸如无线电、电视或因特网广播的被监听的媒体流中的媒体对象的实时标识。这样的媒体对象可以包括歌曲、广告、诗句、站标识符等。
通常,通过将客户机生成的“轨迹”同已知标识的所存储的、预先计算的轨迹(此处指“指纹”,以区分它们与客户机生成的轨迹)的大数据库比较,向独立客户机提供对媒体对象的标识。这些客户机生成的轨迹由每一客户机从在一个正在行进的基础上的媒体流的采样中计算,且被传输给服务器用于标识。
而且,给定有限数量的媒体流和一个大得多的数量的客户机,发送给服务器的许多轨迹可能是几乎相同的,因为客户机中的许多会并发地监视相同的媒体流。这个观测在用于限制标识特定轨迹必需的数据库查询数量的可搜索动态轨迹高速缓存的创建中使用,这样媒体对象与这些轨迹相关联。搜索轨迹高速缓存而不是数据库的一个优点是,指纹的一个可工作的数据库通常包括几百万个条目,而轨迹高速缓存通常比其小几个数量级。
轨迹高速缓存仅存储由多个客户机发送的最近的轨迹的一个副本,同数据库搜索结果一起,不论是肯定的还是否定的。换言之,由客户机中的一个发送的当前不存在于高速缓存中的任何轨迹将会被存储在高速缓存中,至少暂时地,如下文详细解释。从而,轨迹高速缓存在作数据库查询之前被搜索。而且,存储在轨迹高速缓存中的轨迹作为时间的一个函数而被去除。在一实施例中,这仅仅是一个预设的“生存期”,而在相关实施例,这个存活的时间是自从基于由某一客户机向服务器发送的最后匹配轨迹的一段时间。换言之,当高速缓存条目没有匹配的轨迹命中而衰老时,它们简单地被从该高速缓存中去除。
这些一般概念是由示出实现媒体标识器的组件之间的一般功能关系的图2的示例性体系结构系统框图所示出的。具体地,图2显示,多个客户机200中的每一个接收媒体广播流210。如在此的详细描述,可用的媒体流210的总体,诸如电台广播、电视或有线电视广播、基于网络的流动媒体等,是比潜在的客户机200的数量小得多。从而,媒体流210的大多数会被多于一个的客户机200同时监听,可能上百个、上千个甚至上百万个客户机。然而,应该注意到,因为媒体流包含本地可用广播,而客户机可以位于世界上的任何地方通过因特网220或其它网络同服务器230通信,不是所有的媒体流210对所有的客户机200可用。
客户机200而后对被监听的媒体流210采样,且通过网络或因特网220向服务器230(或服务器库)发送计算出的轨迹。服务器230而后检查轨迹高速缓存240,且如果必要,检查指纹数据库250,试图标识出生成该轨迹的媒体对象。如果标识出了,相对于特定轨迹的媒体标识信息由服务器230通过网络220被返回给发送客户机200。
2.1系统概述如上所述,在此所述的媒体标识器向客户机提供了嵌入在诸如,例如,无线电、电视或因特网广播的流动媒体广播中的媒体对象的实时服务器端的标识。通常,媒体标识器通过提供至少一个向独立客户机通过将由每一客户机从媒体流采样的部分中计算出的“轨迹”同已知指纹的数据库比较来提供对在广播媒体流中的媒体对象的实时标识的服务器来操作。通常,计算出的轨迹是由每一客户机向服务器发送的,且被直接地或通过服务器端轨迹高速缓存与已知标识的存储的、预先计算的指纹的大数据库比较。
对每一客户机,服务器而后使用不精确匹配来确定是否有任何轨迹在某一阈值或容许度范围内与数据库中的任何指纹匹配。使用这样的不精确匹配技术比精确匹配技术更优,因为由任何不同的客户机计算出的轨迹可能由于噪声、干扰、信号衰减等的原因而变化,即使轨迹名义上是由媒体流的相同部分计算出的。而且,使用不精确匹配也解决轨迹从中计算出的媒体流的采样部分的小的时间偏移。
无论何时从一客户机得到的轨迹匹配了一指纹(不论在轨迹高速缓存中或在指纹数据库中),服务器告知该客户机关于对应于该轨迹的特定媒体对象的身份。在媒体对象诸如歌曲的情况中,该身份通常包括诸如,例如,歌手、歌曲名称、专辑名称、流派等信息。显然,给定一个已知媒体对象,任何所需的信息能够与用于标识该媒体对象的在数据库中的指纹相关联。
然而,此处所述的媒体标识器引入了一额外的服务器端的高速缓存,利用了假定存在有限的媒体流数量,和通常在任何给定时间接收相同媒体流的大量用户的情况中,在任何时间,用户生成的轨迹中的许多可能是几乎相同的事实,而不是对发送给服务器的每个轨迹提供对指纹数据库蛮力的搜索。换言之,在时间中的任何给定点,有可能存在潜在地上万甚至上千万的众多收听相同的诸如特定无线电、电视或因特网广播的媒体流的人。这个被察到的事实允许创建高速缓存进入轨迹和对匹配指纹数据库搜索结果的服务器端的轨迹高速缓存。
具体地,从每一客户机处得来的每一进入轨迹先被含有某些轨迹的高速缓存检查。如果该轨迹不在高速缓存中,那么将其存储在那里,并进行完全数据库查找,且数据库查找的结果,不论是肯定的还是否定的,将同由客户机发送的轨迹一起存储在高速缓存中。在高速缓存和数据库中的查找能够使用常规技术完成,诸如,例如,使用bailing(一种已知的使用线性扫描加速距离比较的方法)的线性扫描(即,按顺序进行地)。
在另一实施例中,在数据库中的查找通过使用位向量索引而加速,如在于2003年6月23日提交的,流水号为10/602,438,标题为“Multidimensional Data ObjectSearching Using Bit Vector Indices(使用位向量索引的多维数据对象搜索)”共同待批?的美国专利申请中所述,其主题通过引用包含在此。这个位向量索引方法也在由Jonathan Goldstein、John C.Platt、和Christopher J.C.Burges所著的,于2003年10月28日发表在微软技术报告MSR-TR-2003-38上的,标题为“Indexing HighDimensional Rectangles for Fast Multimedia Identification(用于快速多媒体标识的索引高维矩形)”的出版物中所述,其主题通过引用包含在此。
通常,在上述美国专利申请和相应的微软技术报告中所述的位向量索引方法,解决了对于高维区域进行快速点查询的问题。这样的查询在日益重要的在其中不同的数据库条目拥有不同的相似性度量的多媒体标识和检索问题中是有用的。对照关注于高维最近的邻近点和小正数范围查询的典型的数据库索引,对高维区域的点查询索引提供了依赖冗余和位向量索引的结合的来达到显著的性能增益的高效的索引方法。这样的方法被观测到在真实世界线性扫描上提供显著的性能增长。
如上述数据库搜索实施例的每一个,数据库搜索的否定结果,即,在数据库中没有指纹对轨迹的匹配,是不被传送回客户机的。数据库搜索的肯定结果,即,在一轨迹和一指纹之间的匹配是被传送回客户机的,这样标识了从中计算出轨迹的媒体对象。如上所述,高速缓存在搜索指纹数据库之前,被搜索来标识匹配轨迹。从而,如果找到一个对存储在高速缓存中的轨迹的匹配,不需要进一步的数据库查找,因为在高速缓存中的轨迹也包含相关联的媒体对象的身份,或仅仅指出不存在匹配指纹。在轨迹匹配数据库中的指纹的情况中,与该匹配指纹相关联的任何身份信息被传送回客户机。
2.2系统体系结构概述在如上发明内容所述的过程由图3的通用系统框图示出。具体地,图3的系统框图示出了用于实现此处所述的媒体标识器的程序模块之间的相互关系。
通常,媒体标识器通过使每一客户机使用媒体流捕捉模块305来接收媒体流210中一个来接收该媒体流,开始关于每一客户机200的操作。注意到,媒体流210可以是音频流、视频流或其混合。客户机200而后使用媒体流采样模块对输入的媒体流进行实时采样。轨迹计算模块而后被每一客户机使用来从采样的媒体流中不断地生成轨迹。注意到,每一客户机生成的轨迹的数量和频率在下文第3部分中进一步详细描述。生成的轨迹而后被提供给通过网络或因特网220向服务器230发送轨迹的轨迹发送模块320。
服务器230而后使用用于从多个客户机200处接收发送的轨迹的轨迹接收模块。一旦服务器230开始从各个客户机200处接收轨迹,轨迹被提供给轨迹查找模块335,查找模块224首先搜索轨迹高速缓存240来寻找匹配的轨迹。如果在轨迹高速缓存中不存在匹配的轨迹,该轨迹被存储在轨迹高速缓存中,且由轨迹查找模块335执行对指纹数据库250的搜索。
最后,高速缓存维护模块345提供通用高速缓存清除操作。如上所述,具体地,所有的由服务器230接收的不能在轨迹高速缓存240中找到的轨迹,同相应的数据库搜索结果(不论是肯定的或否定的)一起被添加至该高速缓存中。然而,如果没有对该过程的某些限制,该轨迹高速缓存240会迅速溢出。从而,如在第3部分中进一步详细描述,该轨迹高速缓存随时间的函数清除较老的轨迹。具体地,在一实施例中,高速缓存维护模块345从高速缓存中删除任何比某个预定的时间段更老的轨迹。或者,高速缓存维护模块345删除任何在某个预定时间段中没有与由轨迹查找模块335输入的轨迹匹配的模块。在又一实施例中,高速缓存维护模块345使用这些轨迹生存期的组合,或使用对肯定的数据库250命中或否定的数据库命中的轨迹的不同的轨迹生存期。
3.0操作概述上述描述的程序模块被用来实现该媒体标识器。如上在发明内容中所述,媒体标识器向独立客户机提供对嵌入在诸如无线电或因特网广播的被监听的媒体流中的媒体对象的实时标识。下述部分提供了对媒体标识器操作和用于实现参考图2和图3在第2部分所述的程序模块的示例性方法的详细的讨论。另外,在下文部分3.1提供的对媒体标识器操作的详细描述之后,参考图4提供了考虑到该详细描述的概述媒体标识器整个操作的操作流程图。
3.1媒体标识器的操作细节下列段落提供了此处所述的媒体标识器的特定的操作和备选实施例的细节。具体地,下列段落描述了轨迹的计算和指纹数据库的构造;在轨迹高速缓存中的轨迹的生存期;对轨迹高速缓存的搜索;数据库搜索;使用下载的指纹数据库的子集对本地客户机查找的使用;和最后,向客户机提供媒体对象标识。
3.1.1轨迹计算和指纹数据库构造用于媒体标识的对从音频信号或从音频流的采样中的轨迹或“指纹”的计算是对本领域的技术人员很好理解的一个概念。一般,这样的系统通常通过对输入媒体流采样和从该采样的信号中计算紧致的特征向量(即,“轨迹”)来操作。这些紧致的特征向量可以包括低维限量或它们可以包括二元散列关键字。因为对从采样的媒体流的轨迹计算对本领域的技术人员是已知的,该主题在这里将不被详细描述。
关于媒体标识器,对媒体流的轨迹计算使用诸多常规技术中的任何一种来完成。例如,在媒体标识器的一测试实施例中所使用的一种轨迹计算技术在编号为No.US 2003/0236661,标题为“SYSTEM AND METHOD FOR NOISE-ROBUSTFEATURE EXTRACTION(用于噪声健壮的特征提取的系统和方法)”的美国专利申请出版物中所描述,其主题通过引用包含在此。
前述编号为No.US 2003/0236661的美国专利申请出版物所述的系统,通常通过计算,或使用使用“失真判别式分析”(DDA)来定义该特征提取器的参数的在人工和/或真实世界信号混合物上训练的“特征提取器”从音频信号中提取特征来操作。所述特征提取器使用含有一维或多维时间或空间结构的信号,在信号的限制区域应用导向的主分量分析(OPCA),聚集多个空间或时间邻近的多个OPCA的输出,以及对该聚合应用OPCA。聚集邻近的OPCA输出和在该聚合值上应用OPCA的步骤,执行了一次或多次用于从信号中,包括音频信号、图像、视频数据或任何其它的时间或频域数据提取低维噪声健壮特征。一旦被训练,特征提取器而后仅被用于生成此处所述的媒体标识器所使用的轨迹(和指纹)。
然而,如上所述,上述确定的“特征提取器”显然不是计算轨迹和指纹的仅有方法。不论轨迹或指纹是如何被计算的,基本的想法是为每一客户机计算输入媒体流的定长片段的紧致“轨迹”。在一测试实施例中,这样的轨迹被以大约每秒钟六次的数量级从所述的大约六秒钟数量级的媒体广播流的采样中计算和发送。显然,由于这些参数一般依赖于用于轨迹计算的特定的技术,能够使用更多或更少的轨迹,使用更长或更短的采样周期。
包含指纹数据库的指纹通常以与轨迹相同的方式,使用相同的算法来计算,这样在每一客户机所计算的轨迹和用于构成指纹数据库的指纹之间存在明显的对应关系。然而,不同于在媒体流进行中不断地被计算的轨迹,指纹从已知媒体对象内的特定位置上获取的一个或多个采样上仅被计算一次,这样构成了对应于那些已知媒体对象的数据库指纹。对每一媒体对象计算的指纹的数量可以如所需那样少或多。然而,在一测试实施例中,观察到对每一媒体对象提供若指纹是足够提供健壮的媒体对象标识的。
一旦被创建,如此处所述,该指纹数据库而后仅仅由服务器访问,而无需为已知媒体对象再次计算指纹。然而,已知指纹的数据库能够使用由创建了新的媒体对象(歌曲等)的新指纹而被更新。从而,已知指纹的数据库最好是脱机创建的,使用无论什么样的客户机用来计算轨迹的轨迹计算算法,且而后仅仅向服务器提供,这样能够在由这里所述的媒体标识器执行媒体标识操作时,消除在服务器上的任何额外的计算负载。
3.1.2轨迹高速缓存生存期由媒体标识器提供的服务器端的高速缓存的一个优点是,高速缓存相对较小,使得高速缓存搜索十分迅速。具体地,高速缓存大小是来自每一客户机的请求之间的最大预期延迟,和向其提供标识服务的唯一的媒体流的数量的函数。而且,应该注意到高速缓存的大小不是用轨迹标识请求访问服务器的独立客户机或用户数量的函数。
具体地,每一特定媒体广播流对每一接收该特定媒体流的客户机是大致同步化的。例如,接收相同广播站的任何两个或多个客户机,可能接收在大约一秒钟数量级这样的取决于所接收的媒体流的类型和来源的非常短的最大时间偏移内的相同的信号。对于大多数因特网或流动媒体网络广播也是同样的情况。
从而,不存在对在媒体高速缓存中保存轨迹超过最大预期用户之间延迟时间(延迟时间也包括对每一客户机计算和向服务器发送该轨迹的最大预期延迟)某个小倍数时间的需要。换言之,这个延迟仅仅是在服务器对一特定媒体对象的一给定部分接收第一个轨迹到该服务器(从最慢的客户机处)对同样的媒体对象的部分接收最后的轨迹之间的最大时间。从而,只需要保存轨迹很小的一段时间,在几秒钟的数量级。作为结果,不存在对存储所有唯一进入轨迹的大高速缓存的需求。
从而,不存在对在媒体高速缓存中保存轨迹超过最大预期延迟时间(延迟时间也包括对每一客户机计算和向服务器传输该轨迹的最大预期延迟)某个小倍数时间的需要。换言之,这个延迟仅仅是在服务器对一特定媒体对象的一给定部分接收第一个轨迹到该服务器(从最慢的客户机处)对同样的媒体对象的部分接收最后的轨迹之间的最大时间。从而,只需要保存轨迹很小的一段时间,几秒钟的数量级。作为结果,不存在对存储所有唯一进入轨迹的大高速缓存的需求。
在一相关的实施例中,一个更简单的解决方法是,在轨迹不能匹配大约一秒钟数量级的某个短时间段中任何进入轨迹之后,就简单地从高速缓存中去除该轨迹,而不是试图确定或估计用于设定在轨迹在高速缓存的生存期的最大延迟时间。在另一替换实施例中,其他高速缓冲存储方案也能够被使用,包括,例如,基于常用的LRU(最少最近使用)逻辑扔掉轨迹的固定的高速缓存大小的使用。
3.1.3轨迹高速缓存搜索如上所述,一旦服务器接收任何轨迹,轨迹高速缓存立即被搜索以确定在轨迹高速缓存中是否有匹配的轨迹。如果存在一个匹配,那么,作出关于该匹配轨迹是否含有相关联的媒体对象标识信息或是否它是一个在数据库中没有找到的轨迹的判断。再次,在轨迹高速缓存中没有找到的轨迹被添加到轨迹高速缓存中,且立即搜索数据库以确定该轨迹是否存在在数据库中。
使用常规的信号比较技术作出关于输入的轨迹是否与在轨迹高速缓存中的任何轨迹匹配的判断。这样的技术包括,例如,常规的互相关和直接将进入的轨迹的点同在轨迹高速缓存中的每一轨迹比较的线性扫描。在任一情况中,如上所述,匹配最好是不精确的,因为由任何不同的客户机计算出的轨迹可能由于噪声、干扰、信号衰减等的原因而变化,即使轨迹名义上是由媒体流的相同部分计算出的。可以使用精确匹配,但它被证实在恰当地标识匹配轨迹上效果较差。在一实施例中,不精确匹配使用如在本领域中所公知的指纹专用重归一,诸如,在2003年5月份发表在关于语音和音频处理的IEEE会报,关于语音和音频处理的IEEE会报,Vol.11,No.3,第165-174页,作者为Christopher J.C.Burges、John C.Platt、和Soumya Jana,标题为“Distortion Discriminant Analysis for Audio Fingerprinting(用于音频指纹识别的失真判别式分析)”的出版物中所述,其主题通过引用包含在此,来改进精确性。
在不精确匹配的情况中,匹配是关于某个距离度量f和一相应的阈值θ来决定的。例如,如果轨迹是低维向量,为直接比较进入的轨迹X与一组已高速缓存轨迹Y,一个作出轨迹之间的比较的简单的方法是,仅对每一索引为j的轨迹估计一次在公式1中的平方欧几里德距离Σi=1n(xi-yij)2<θj]]>公式1其中xi是轨迹中的第i个元素,yij是第j个高速缓存中的轨迹的第i个元素,n是一轨迹向量的成分的数量,且θj是与第j个高速缓存中的轨迹相关联的距离阈值。
应该注意到,上述的比较方法仅是用于比较信号或轨迹的众多常规技术中的一个。这样的方法对本领域的技术人员是公知的,且将不在此处描述。然而,应该理解用于比较两个信号或轨迹的任何常规的技术是可应用在此处所述媒体标识器的使用,且该媒体标识器不旨在被限制于上述简单线性扫描的使用。而且,也存在用于加速匹配信号或轨迹搜索的诸多常规技术。一个简单的方法是仅按照先前匹配出现的频率搜索该高速缓存。显然,存在其它的常规搜索加速方案,其中的任何一个是可应用于此处所述的媒体标识器的使用。
3.1.4数据库搜索如上所述,数据库搜索仅在一特定的输入轨迹不能匹配在轨迹高速缓存中的轨迹中的任何一个的情况下执行。对指纹数据库的实际搜索是以同在轨迹高速缓存中搜索匹配的方法几乎相同的方法完成的。事实上,上述关于轨迹高速缓存搜索的轨迹比较的相同类型被使用于将进入的轨迹与在指纹数据库中的指纹比较。然而,应该注意到指纹数据库被预期远大于轨迹高速缓存。事实上,如果将世界上流传送的或广播的音乐的可用频谱完全表示,仅含有歌曲指纹的媒体对象数据库可以被预期拥有上百万条目。从而,用于加速数据库搜索的方法趋于远重要于对轨迹高速缓存搜索的加速。
在此方面,按照流行程度或出现的频率来搜索趋向于提供在性能上显著的增加,因为在一个或多个媒体流中流动一首非常流行的歌曲比一不知名歌手的某首古老的歌曲更有可能。测量出现的频率是一个容易完成的任务。具体地,一个简单的方法是,仅对一特定媒体对象在不同流和在某一时间片段上不同次数确定的次数的数量计数(通过对轨迹高速缓存命中和数据库匹配计数)。用于搜索的目的,在指纹数据库中的条目能够按照出现频率的顺序排序。而且,如上所述,存在诸多用于加速匹配信号或轨迹的数据库搜索的常规技术,其中的任何一个可应用于此处所述的媒体标识器的使用。
3.1.5本地数据库查找在一实施例中,通过自动向一个或多个本地客户机上传整个指纹数据库的某小部分或子集(也有可能是轨迹高速缓存的某一部分)进一步减少服务器负载。通常,这些上传给独立客户机的轨迹和/或子集应该是那些最频繁观测到的(即,对应于最流行的媒体对象的那些轨迹/指纹)。
在这个实施例中,拥有指纹数据库和/或轨迹高速缓存的子集(即,“本地轨迹子集”)的每一客户机会在向服务器发送用于标识目的的任何计算出的轨迹之前,首先查询本地轨迹子集,而不是立即向服务器发送每个计算出的轨迹。如果任何计算出的轨迹与在本地轨迹子集中的轨迹的任何一个向匹配,那么而后与该在本地轨迹子集中的匹配轨迹相关联的任何标识信息,被分配给计算出的轨迹,且该倍计算出的轨迹而后不被发送给服务器。以这种方式,至少媒体标识负载中某些能够从服务器向一个或多个本地客户机卸载。
应该注意到,在本地轨迹子集中的轨迹对每首歌能够包含比在完全服务器数据库中更多的指纹,因为诸如歌曲的目前流行的媒体对象的数量,相对于整个媒体对象数目来说相对较少。这具有进一步减少发送给服务器的轨迹数量增加了的优点,因为一旦作出匹配,只要媒体对象播放,目前播放的媒体对象就能够被与对该媒体对象的指纹的本地存储本地地检查。例如,如果对一首歌每5秒钟计算一指纹,只要轨迹每5秒钟找到预期的匹配,该客户机就不需要向服务器发送任何轨迹。
在另一实施例中,一旦确定了一个肯定的匹配,客户机在诸如歌曲S的该被标识的媒体对象的剩余部分的持续时间内,简单地停止向服务器发送轨迹。当找到一个肯定的匹配时,该持续时间信息同其它标识信息一起能够从服务器向客户机发送。尽管这是一个进一步减轻服务器/高速缓存系统负担的简单方法,但是它会造成虚的否定(即,应该标识的媒体对象没有被标识),例如,如果用户在上述标识出的歌曲S结束之前转变了媒体流。然而,这能够通过简单地保持跟踪何时客户机切换流,以及然后无论何时发生流切换立即开始再次向服务器发送轨迹(在首先检查本地轨迹子集之后,如果子集还存在),来防止。
3.1.6媒体对象标识如上所述,对媒体对象的标识通过由本地客户机计算出的轨迹与由服务器保存的轨迹或指纹(除了在如上所述的搜索本地轨迹子集的情况中)匹配来完成。如上所述,无论何时,服务器标识含有相关联的媒体对象标识信息的轨迹或指纹的匹配,而后该媒体对象信息立即从服务器传回给向服务器发送该特定匹配轨迹的特定客户机。
一旦该媒体标识信息被客户机所接收,而后该客户机能够以无论何种方式使用所需的信息。例如,在最简单的情况中,客户机能够简单地以实时方式展示该媒体对象信息,这样来告知用户在媒体流中正在播放的是什么媒体对象。对媒体对象标识信息的其它使用是要构造提供由每一独立客户机监听的任一媒体流中标识出的媒体对象的本地历史纪录的本地播放列表。
3.2媒体标识器操作参考图2和图3,上面描述的过程是由图4的一般操作流程图所示出的。一般,图4示出了显示媒体标识器的若干操作实施例的示例性操作流程图。应该注意到,在图4中的任何框和由虚线或短划线表示的框之间的互相联系,表示了此处所述媒体标识器的备选实施例,且如下所述,这些备选实施例中的任何和全部可以在贯穿这个文档中所述的其它备选实施例结合使用。而且,应该注意到,在下文的讨论中,该系统一般关于使用单个服务器操作的单个客户机而描述的。然而,考虑到前述的讨论,应该清楚,此处所述的媒体标识器完全能够被非常多的客户机和任何所需数量的服务器所操作。
如图4所示,具体地,对媒体标识器的操作通过让客户机200捕捉405处媒体流210而开始。对媒体流的捕捉使用常规方法,包括,例如,简单地调谐到无线电或电视广播,或通过诸如因特网的网络订阅流动媒体广播或无线电和电视同时联播来完成。一旦媒体流210在405处被捕捉,客户机从该媒体流的采样中生成实时轨迹410。只要在媒体流被接收的时候和客户机想要拥有对嵌入在媒体流中的媒体对象的标识信息时,持续对该媒体轨迹的计算和传输。
如上所述,然而,在一实施例中,客户机在从服务器接受媒体对象标识信息之后,会在暂时中断对轨迹的计算和向服务器发送轨迹。如上所述,例如,对指纹数据库计算出的指纹是从已知媒体对象内的已知位置上计算的。从而,这些媒体对象的剩余长度或持续时间可以关于被计算出的轨迹而被知道(小于从向服务器发送轨迹到从服务器接收回媒体对象标识的延迟时间)。从而,使用该实施例,只要与媒体对象标识信息一起提供该持续时间信息,就不存在对客户机计算或向服务器发送任何额外轨迹的需求,直至当前播放的媒体对象预期的终点。然而,在客户机开始捕捉一不同的媒体流的情况中(诸如例如,切换广播站),然后会立即重新开始轨迹计算和传输。应该清楚,该实施例能够通过在返回客户机一成功的媒体对象标识后显著地减少向服务器发送的轨迹的数量,相当地减轻服务器负载。
一旦服务器230在420处接收从客户机200传输的轨迹,服务器立即在425处检查轨迹高速缓存240以在430处确定在该高速缓存中是否存在一匹配的轨迹。如果在轨迹高速缓存中存在一匹配的轨迹,那么在高速缓存中的匹配轨迹在435处被检查以确定它是否与一肯定的数据库命中相关联。如果该匹配的轨迹是与一肯定的数据库命中相关联,那么与该匹配轨迹相关联的媒体标识信息在460处立即传回至客户机200。
相反地,在轨迹高速缓存240不含有一匹配的轨迹的情况中,下一步是在440处检查指纹数据库250,试图定位一匹配的指纹。如果存在一个数据库匹配445,那么该轨迹在450处被存储在轨迹高速缓存240中,且与该匹配轨迹相关联的媒体标识信息在460处立即被传回给客户机200。在不存在数据库匹配445的情况中,然后该轨迹作为一否定的命中也在450处被存储在轨迹高速缓存240中。
在任一情况中,一旦在轨迹高速缓存240中找到或没有找到匹配430,或存在或不存在位于数据库中的匹配445,和在460处向客户机传输了任何相关联的媒体对象标识信息,然后服务器就简单地等待从客户机发送的用于与分别在轨迹高速缓存240和/或指纹数据库250中的轨迹和/或指纹比较的下一轨迹。而且,如上所述,轨迹高速缓存240在455处在一行进的基础上被管理,去除那些生存期终止的轨迹条目。
一旦客户机200接收到任何媒体对象标识信息,该信息在465处被客户机处理并按所需向用户提供。例如,在一实施例中,媒体对象标识信息被使用来,当媒体流被接收和播放时,向用户提供一目前媒体对象身份的显示。或者,该媒体对象标识信息能够用于其它目的,包括,但不限于,播放列表生成、媒体流描述、对媒体流的统计分析等。
最后,在另一实施例中,指纹数据库250(和/或轨迹高速缓存240)的子集在470处被客户机200从服务器230处下载,作为一本地指纹数据库。如上所述,该子集也能够包含为了增加覆盖范围服务器自身不用于查找的额外的指纹信息,如上所述(例如,客户机可以对每首歌曲检查若干指纹)。具体地,对相对更流行的(或更频繁观测到的)媒体对象的额外指纹是由服务器对每一媒体对象计算的,且包含在下载至客户机处的指纹子集中用于进一步地减少服务器调用。如上所述,该本地数据库而后在415处向服务器230传输任何轨迹之前,在475处被客户机搜索。在轨迹匹配是位于对本地数据库的搜索中的情况中,而后相应的轨迹如上所述,是不向服务器230发送用来处理的。
上述对媒体标识器的描述是出于说明和描述的目的而被提供。它不意欲穷举的或限制本发明于所揭示的精确形式。根据上述讲授,可以进行多个修改或变化。而且,应该注意到,上述替换实施例的任何一个或全部可以被使用于任何所需的构成媒体标识器的额外的混合实施例的任何组合中。意味着,本发明的范围不被这里的详细的描述所限制,而是根据于此所附的权利要求。
权利要求
1.一种用于向多个客户机计算机中的每一个提供对嵌入在客户机监视的媒体广播流中的媒体对象进行标识的方法,包含使用一计算设备进行以下步骤对多个客户机计算机中的每一个,在行进中的基础上向服务器计算机发送客户机生成的媒体流轨迹;对由服务器接收的每一所发送的媒体流轨迹,使用所述服务器来搜索一轨迹高速缓存以找出所述媒体流轨迹的匹配轨迹;如果所述轨迹高速缓存包含匹配轨迹,那么从所述服务器向相应的客户机发送与该匹配轨迹相关联的任何媒体对象标识信息;如果所述轨迹高速缓存不包含匹配轨迹,那么搜索一指纹数据库以确定是否存在媒体流轨迹的任何匹配指纹,并将所发送的媒体流轨迹连同所述数据库搜索的结果一起存储在所述轨迹高速缓存;以及如果所述指纹数据库包含匹配指纹,则从所述服务器向相应的客户机发送与所述指纹相关联的媒体对象标识信息。
2.如权利要求1所述的方法,其特征在于,所述客户机生成的媒体轨迹是由每一客户机以大约每秒钟六次的数量级从所述大约六秒钟数量级长度的媒体广播流的采样中计算和发送的。
3.如权利要求1所述的方法,其特征在于,所述轨迹高速缓存中的每一轨迹包括一预定生存期,且其中,具有已终止生存期的任何轨迹连同任何相关联的媒体对象标识信息一起被从所述轨迹高速缓存中移去。
4.如权利要求3所述的方法,其特征在于,对拥有相关联的媒体对象标识信息的轨迹,所述预定生存期比不拥有相关联的媒体对象标识信息的轨迹的预定生存期长。
5.如权利要求3所述的方法,其特征在于,当所述轨迹高速缓存中的轨迹与一媒体流轨迹相匹配时,所述轨迹高速缓存中的轨迹的预定生存期的剩余时间被复位为所述预定生存期。
6.如权利要求3所述的方法,其特征在于,在频繁与媒体流轨迹相匹配的轨迹高速缓存中的轨迹是不考虑所述预定生存期而持久保存在所述轨迹高速缓存中的。
7.如权利要求1所述的方法,其特征在于,在一预定时间段内不能匹配任何被发送的媒体流轨迹后,所述轨迹高速缓存中的每一轨迹连同任何相关联的媒体对象标识信息一起被从所述轨迹高速缓存中移去除。
8.如权利要求1所述的方法,其特征在于,所述轨迹高速缓存具有固定大小的,且其中,只要一发送的媒体流轨迹被存储在所述轨迹高速缓存中,所述轨迹高速缓存中的最老的轨迹就连同任何相关联的媒体对象标识信息一起被从所述轨迹高速缓存中移去。
9.如权利要求1所述的方法,其特征在于,还包括,从所述指纹数据库上传一个或多个指纹的子集并从所述轨迹高速缓存上传零个或多个轨迹,以及从所述服务器向一个或多个所述客户机计算机上传与所上传的指纹和轨迹相关联的任何媒体对象标识信息。
10.如权利要求9所述的方法,其特征在于,所述发送给客户机的指纹尽管存储在所述服务器上,但是不被所述服务器本身用来轨迹匹配。
11.如权利要求9所述的方法,其特征在于,在向所述服务器计算机发送所述客户机生成的媒体流轨迹之前,搜索每一客户机上的指纹和轨迹的子集,以找出与由相应的客户机所生成的每一媒体流轨迹的匹配,且其中,如果所述客户机生成的媒体流轨迹与所述子集中的指纹和轨迹的任何条目相匹配,那么这些客户机生成的媒体流轨迹不会被发送给所述服务器。
12.如权利要求1所述的方法,其特征在于,所述发送给每一相应的客户机的媒体对象标识信息包括嵌入在所述客户机监视的媒体广播流中的当前流传送的媒体对象的剩余持续时间,且其中,接收这样的信息的任何客户机会在当前流传送的媒体对象的剩余持续时间内暂时中止向所述服务器发送客户机生成的媒体流轨迹。
13.如权利要求12所述的方法,其特征在于,一旦系统检测到用户已切换至不同的流,重新恢复向所述服务器发送客户机生成的媒体流轨迹。
14.一种用于向多个客户机中的每一个提供对嵌入在媒体广播流中的媒体对象进行标识的系统,包括在多个客户机计算机中的每一个上监视多个媒体流广播中的任何一个;在多个客户机计算机中的每一个上生成对所监视的媒体流的采样的实时轨迹;从每一客户机计算机向一个或多个服务器计算机的组发送每一实时轨迹;对由所述服务器组接收的每一实时轨迹,使用所述服务器组来搜索基于服务器的轨迹高速缓存以找出与所述实时轨迹的匹配,以及所述轨迹高速缓存中向相应的客户机发送与匹配轨迹相关联的任何媒体对象标识信息;如果所述轨迹高速缓存不包括与所述实时轨迹的匹配,那么使用所述服务器组搜索基于服务器的指纹数据库以找出与所述实时轨迹的指纹匹配,从所述指纹数据库向所述相应的客户机发送与匹配指纹相关联的任何媒体对象标识信息,并将所述实时轨迹连同所述数据库搜索的结果一起存储到所述轨迹高速缓存中。
15.如权利要求14所述的系统,其特征在于,所述轨迹高速缓存中的每一轨迹包含一预定生存期,且其中,具有已终止生存期的任何轨迹连同任何相关联的媒体对象标识信息一起被从所述轨迹高速缓存中移去。
16.如权利要求15所述的系统,其特征在于,对具有相关联的媒体对象标识信息的轨迹,所述预定生存期比不具有相关联的媒体对象标识信息的轨迹的预定生存期长。
17.如权利要求15所述的系统,其特征在于,当所述轨迹高速缓存中的轨迹匹配一媒体流轨迹时,所述轨迹高速缓存中的轨迹的预定生存期的剩余时间被复位。
18.如权利要求15所述的系统,其特征在于,在频繁与媒体流轨迹相匹配的轨迹高速缓存中的轨迹是不考虑所述预定生存期而持久保存在所述轨迹高速缓存中的。
19.如权利要求14所述的系统,其特征在于,在一预定时间段内不能匹配任何被发送的媒体流轨迹后,所述轨迹高速缓存中的每一轨迹连同任何相关联的媒体对象标识信息一起被从轨迹高速缓存中移去。
20.如权利要求14所述的系统,其特征在于,所述发送给每一相应的客户机的媒体对象标识信息包括嵌入在由每一相应客户机监视的媒体广播流中的当前流传送的媒体对象的剩余持续时间,且其中,接收这样的信息的任何客户机会在当前流传送的媒体对象的剩余持续时间内暂时中止向所述服务器组发送实时轨迹。
21.一种具有用于向多个客户机计算机提供媒体对象标识的计算机可执行指令的计算机可读介质,所述计算机可执行指令包括使用多个客户机计算机从由每一客户机监视的所捕捉媒体流的采样而生成连续的实时轨迹;向服务器计算机发送所生成的轨迹;以及对每一被发送的轨迹,使用所述服务器计算机进行以下步骤搜索一可由所述服务器计算机访问的轨迹高速缓存,以确定所述轨迹高速缓存是否包含匹配轨迹,在所述高速缓存包含匹配轨迹的情况下,确定所述匹配轨迹是否包含任何相关联的媒体对象标识信息,且如果是,那么从所述服务器向相应客户机发送该媒体对象标识,在所述高速缓存不包含匹配轨迹的情况下,搜索一指纹数据库以确定是否存在任何匹配的指纹,且将所发送的轨迹连同所述数据库搜索的结果一起存储在所述轨迹高速缓存中,以及在所述指纹数据库包含匹配指纹的情况下,从所述服务器向相应客户机发送与所述指纹相关联的媒体对象标识信息。
22.如权利要求21所述的计算机可读介质,其特征在于,所述轨迹高速缓存中的每一轨迹包含一预定生存期,且其中,具有已终止生存期的任何轨迹连同任何相关联的媒体对象标识信息一起被从所述轨迹高速缓存中移去。
23.如权利要求22所述的计算机可读介质,其特征在于,当所述轨迹高速缓存中的轨迹匹配一媒体流轨迹时,所述轨迹高速缓存中的轨迹的预定生存期的剩余时间被复位。
24.如权利要求22所述的计算机可读介质,其特征在于,在频繁与媒体流轨迹相匹配的轨迹高速缓存中的轨迹是不考虑所述预定生存期而被持久保存在所述轨迹高速缓存中的。
25.如权利要求21所述的计算机可读介质,其特征在于,在一预定时间段内不能匹配任何发送的轨迹后,所述轨迹高速缓存中的每一轨迹连同任何相关联的媒体对象标识信息一起被从轨迹高速缓存中移去。
26.如权利要求21所述的计算机可读介质,其特征在于,所述轨迹高速缓存具有固定的大小,且其中,只要一发送的媒体流轨迹被存储在所述轨迹高速缓存中,所述轨迹高速缓存中的最老的轨迹就连同任何相关联的媒体对象标识信息一起被从轨迹高速缓存中移去。
27.如权利要求21所述的计算机可读介质,其特征在于,所述发送给每一相应的客户机的媒体对象标识信息包括嵌入在由每一客户机监视的所捕捉的媒体广播流中的当前流传送的媒体对象的剩余持续时间,且其中,接收这样的信息的任何客户机会在当前流传送的媒体对象的剩余持续时间内暂时中止向所述服务器计算机发送轨迹。
全文摘要
“媒体标识器”操作在并发媒体流上,用于向众多客户机提供对嵌入在诸如无线电、电视或因特网广播的流传送媒体上的媒体对象的实时的服务器端的标识。这样的媒体对象包括歌曲、广告、诗句、站标识符等。对媒体对象的标识是通过将从媒体流采样中计算出的客户机生成的轨迹同已知标识的存储的、预先计算出的轨迹(即“指纹”)的大数据库比较来提供给客户机的。而且,给定了有限数量的媒体流和多得多的客户机,众多向服务器发送的轨迹可能是几乎相同的。从而,使用一可搜索动态轨迹高速缓存来限制对标识特定轨迹必需的数据库查询。这个轨迹高速缓存仅存储最近的轨迹的一个副本和不论是肯定还是否定的数据库搜索结果。高速缓存条目在它们变老后被移去。
文档编号G06F17/30GK1770156SQ20051010855
公开日2006年5月10日 申请日期2005年9月30日 优先权日2004年11月2日
发明者C·J·博格斯, J·C·普拉特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1