掌桥专利:专业的专利平台
掌桥专利
首页

生成拼接数据流

文献发布时间:2023-06-19 19:28:50


生成拼接数据流

本申请是申请日为2018年3月23日、申请号为201880021595.5、发明名称为“生成拼接数据流”的专利申请的分案申请。

优先权要求

本专利申请要求2017年3月27日提交的序列号为15/470,004的美国申请的优先权,并且还要求2017年3月27日提交的序列号为15,470,025的美国专利申请的优先权,其全部内容通过引用并入在此。

背景技术

消息传递系统可以从希望在用户装置(例如,移动装置、个人计算机等)之间共享诸如音频、图像和视频的媒体内容的用户接收数百万条消息。这些消息的媒体内容可以与共同的地理位置、共同的时间段、共同的事件等相关联。

附图说明

附图中的各种附图仅示出了本公开的示例实施例,并且不应被视为限制其范围。

图1是示出根据一些示例实施例的用于通过网络交换数据(例如,消息和相关联的内容)的示例消息传递系统的框图。

图2是示出根据一些示例实施例的关于消息传递系统的进一步细节的框图。

图3是示出根据一些示例实施例的可以存储在消息传递服务器系统的数据库中的数据的示意图。

图4是示出根据一些实施例的由消息传递客户端应用生成的用于通信的消息的结构的示意图。

图5是示出示例访问限制过程的示意图,在该过程中,对内容(例如,短时(ephemeral)消息和相关联的多媒体数据有效载荷(payload))或内容集合(例如,短时消息故事)的访问可能是受时间限制的(例如,使其为短时的)。

图6是示出根据一些示例实施例的方法的各方面的流程图。

图7示出了根据一些示例实施例的频谱图的示例。

图8示出了根据一些示例实施例的所检测的频谱图的最大值的示例。

图9示出了根据一些示例实施例的连接在一起成为最终音频指纹的频谱图的最大值的示例。

图10-11各自示出了根据一些示例实施例的包括从多个用户装置接收的多个消息的拼接数据流的视觉表示。

图12是示出根据一些示例实施例的方法的各方面的流程图。

图13-15各自示出了根据一些示例实施例的用户计算装置的示例用户界面。

图16是示出根据一些示例实施例的可被安装在机器上的软件架构的示例的框图。

图17示出了根据示例实施例的计算机系统形式的机器的图形表示,在其内可以执行一组指令以使机器执行在此所讨论的任何一种或多种方法。

具体实施方式

在此描述的系统和方法涉及处理要经由消息传递系统在装置之间共享的媒体内容项。例如,用户可能希望与一个或多个其他用户共享一个或多个视频、图像等。这些消息可以与公共音频内容(诸如歌曲、音乐会、演讲等)相关联。在此描述的实施例提供了用于将来自从多个用户计算装置接收的多个消息的数据流拼接在一起的机制,以创建与数据流的公共音频时间线(common audio timeline)相关联的密集音频拼接。例如,音频拼接用于将与同一音频内容相关联的一组消息或数据流自动拼接在一起。给定一组消息或数据流,在此描述的系统提取每个消息的音频指纹,通过匹配跨所有消息对的音频指纹来创建音频匹配以识别与同一音频内容相关联的消息,并且然后通过在一组音频匹配中查找路径来创建音频拼接。然后可以将拼接的音频或拼接的数据流提供给一个或多个用户计算装置,以供用户查看拼接数据流。

拼接数据流可以包括具有在时间段中重叠的数据流的消息,使得在给定时间段内可以存在多于一个的数据流。当用户查看拼接数据流时,示例实施例允许用户在任何给定时间段内切换到各种其它数据流。例如,用户可能正在观看音乐会的主唱并切换视图以观看音乐会中那时的吉他手或鼓手或观众等。以该方式,用户可以在公共音频时间线中的任何给定时间段内在替换视图之间切换。

图1是示出用于通过网络交换数据(例如,消息和相关联内容)的联网系统100(例如,消息传递系统)的框图。联网系统100包括多个客户端装置102,每个客户端装置102托管多个客户端应用104。每个客户端应用104经由网络106通信地耦接到其它客户端应用104的实例和服务器系统108。

客户端装置102在此还可以称为用户装置或用户计算装置。客户端装置102可以包括但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或者可编程的消费电子产品、游戏机、机顶盒、车辆中的计算机,或用户可用于访问联网系统100的任何其它通信装置。在一些实施例中,客户端装置102可以包括显示模块(未示出)以显示信息(例如,以用户界面的形式)。在进一步的实施例中,客户端装置102可以包括触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(GPS)装置等中的一个或多个。客户端装置102可以是用户的装置,其用于创建诸如视频、图像(例如,照片)、音频的媒体内容项,以及向其他用户发送和从其他用户接收包含此类媒体内容项的消息。然后可以将来自多个消息的此类媒体内容的元素拼接在一起,如在下面描述的实施例中进一步详细描述的。

一个或多个用户可以与客户端装置102(例如,人、机器或与客户端装置102交互的其它工具)交互。在示例实施例中,用户可以不是系统100的一部分,但是可以经由客户端装置102或其它工具与系统100交互。例如,用户可以向客户端装置102提供输入(例如,触摸屏输入或字母数字输入),并且可以经由网络106将输入传送到系统100中的其它实体(例如,服务器系统108等)。在该情况下,响应于从用户接收输入,系统100中的其它实体可以经由网络106将信息传送到客户端装置102以呈现给用户。以该方式,用户可以使用客户端装置102与系统100中的各种实体交互。

系统100可以进一步包括网络106。网络106的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网络、无线网络、WiFi网络、WiMax网络、另一种类型的网络,或两个或更多此类网络的组合。

客户端装置102可以经由web客户端(例如,浏览器,诸如由华盛顿州雷德蒙德的

在一个示例中,客户端应用104可以是允许用户拍摄照片或视频、添加标题或以其它方式编辑照片或视频、并且然后将照片或视频发送给另一用户的消息传递应用。该消息可以是短时的并且在查看之后或在预定时间量(例如,10秒、24小时等)之后从接收用户装置移除。短时消息是指可在限制时间的持续时间内访问的消息。短时消息可以是文本、图像、视频和可以根据在此描述的实施例拼接在一起的其它此类内容。短时消息的访问时间可以由消息发送者设置。可替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,该消息是暂时的。

消息传递应用可以进一步允许用户创建图库。图库可以是照片和视频的集合,其可以由“关注”用户的图库(例如,订阅查看并接收用户图库中的更新)的其他用户查看。图库也可以是短时的(例如,持续24小时、持续一个事件的持续时间(例如,在音乐会、体育赛事等期间),或其它预定时间)。

短时消息可以与消息持续时间参数相关联,该消息持续时间参数的值确定短时消息将由客户端应用104向短时消息的接收用户显示的时间量。短时消息可以进一步与消息接收者标识符和消息定时器相关联。消息定时器可以负责确定向由消息接收者标识符识别的特定接收用户示出短时消息的时间量。例如,短时消息可以仅对相关接收用户示出由消息持续时间参数的值确定的时间段。

在另一示例中,消息传递应用可以允许用户存储照片和视频并创建非短时的并且可以发送给其他用户的图库。例如,组合最近度假的照片和视频,与朋友和家人分享。

在一些实施例中,一个或多个客户端应用104可以包括在给定的一个客户端装置102中,并且被配置为在本地提供用户界面和至少一些功能,其中应用104被配置为根据需要与系统100(例如,服务器系统108)中的其它实体通信,用于在本地不可用的数据和/或处理能力(例如,访问位置信息,验证用户,验证支付方式,访问存储在服务器上的媒体内容,在客户端装置102和服务器计算机之间同步媒体内容等)。相反,一个或多个应用104也可以不包括在客户端装置102中,并且然后客户端装置102可以使用其web浏览器来访问在系统100(例如,服务器系统108)中的其它实体上托管的一个或多个应用。

服务器系统108可以经由网络106(例如,因特网或广域网(WAN))向一个或多个客户端装置102提供服务器端功能。服务器系统108可以包括应用编程接口(API)服务器110、应用服务器112、消息服务器应用114,以及媒体内容处理服务器116、社交网络系统122和数据流拼接系统124,它们每个可以彼此通信地耦接以及与一个或多个数据存储设备(诸如数据库120)通信地耦接。

根据一些示例实施例,服务器系统108可以是云计算环境。在一个示例实施例中,服务器系统108和与服务器系统108相关联的任何服务器可以与基于云的应用相关联。该一个或多个数据库120可以是存储装置,其存储诸如未处理的媒体内容、来自用户的原始媒体内容(例如,高质量媒体内容)、处理的媒体内容(例如,为了与客户端装置102共享以及在客户端装置102上查看而被格式化的媒体内容)、拼接的音频数据流、用户信息、用户装置信息等。该一个或多个数据库120可以包括服务器系统108外部的基于云的存储设备(例如,由服务器系统108外部的一个或多个第三方实体托管)。虽然存储装置作为数据库120而被示出,但是可以理解,系统100可以访问存储装置并将数据存储在存储装置中,存储装置是诸如数据库120、blob存储设备和其它类型的存储方法。

因此,每个客户端应用104能够经由网络106与另一客户端应用104和服务器系统108通信以及交换数据。在客户端应用104之间交换的数据以及在客户端应用104与服务器系统108之间交换的数据包括功能(例如,调用功能的指令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。

服务器系统108经由网络106向特定的客户端应用104提供服务器端功能。虽然系统100的某些功能在此被描述为由客户端应用104或由服务器系统108来执行,但是可以理解,客户端应用104或服务器系统108内的某些功能的位置是设计选择。例如,技术上优选的是在服务器系统108内初始部署某些技术和功能,但稍后将该技术和功能迁移到其中客户端装置102具有足够的处理能力的客户端应用104。

服务器系统108支持提供给客户端应用104的各种服务和操作。此类操作包括向客户端应用104发送数据,从客户端应用104接收数据、以及处理由客户端应用104生成的数据。该数据例如可包括消息内容、客户端装置信息、地理位置信息、媒体注释和覆盖物、消息内容持久性条件、社交网络信息和直播事件信息、日期和时间戳。联网系统100内的数据交换经由客户端应用104的用户界面(UI)通过可用的功能来调用和控制。

在服务器系统108中,应用程序接口(API)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112被通信地耦接到数据库服务器118,该数据库服务器118便于访问数据库120,在该数据库120中存储与由应用服务器112处理的消息相关联的数据。

API服务器110服务器在客户端装置102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,API服务器110提供可由客户端应用104调用或查询的一组接口(例如,例程和协议),以便调用应用服务器112的功能。API服务器110显现由应用服务器112支持的各种功能,各种功能包括账户注册、登录功能、经由应用服务器112从特定客户端应用104向另一个客户端应用104发送消息、从客户端应用104向消息传递应用服务器114发送媒体文件(例如,图像或视频)、以及用于可能由另一客户端应用104访问、设置媒体数据的集合(例如,故事)、取得客户端装置102的用户的朋友的列表、取得此类集合、取得消息和内容、对社交图添加和删除朋友、朋友在社交图内的位置、打开和应用事件(例如,与客户端应用104有关)等。

应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、媒体内容处理系统116、社交网络系统122以及数据流拼接系统124。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从多个消息传递客户端应用104的实例接收的消息中包括的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合成内容集合(例如,称为故事或图库)。然后,由消息传递服务器应用114使这些集合对客户端应用104可用。鉴于用于此类处理的硬件要求,还可以由消息传递服务器应用114在服务器端执行其它处理器和存储器密集的数据处理。

应用服务器112还包括媒体内容处理系统116,该媒体内容处理系统116专用于执行各种媒体内容处理操作,典型地与在消息传递服务器应用114处的消息的有效载荷内接收的图像或视频有关的媒体内容处理操作。媒体内容处理系统116可以访问一个或多个数据存储设备(例如,数据库120),以检索存储的数据用于处理媒体内容,并存储所处理的媒体内容的结果。

社交网络系统122支持各种社交网络功能服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护和访问数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括联网系统100的与特定用户具有关系或特定用户“关注”的其他用户的标识,以及特定用户的关注和其它实体的标识。

应用服务器112通信地耦接到数据库服务器118,该数据库服务器118便于访问一个或多个数据库120,数据库120中存储与由消息传递服务器应用114处理的消息相关联的数据。

消息传递服务器应用114可以负责在客户端装置102的用户之间生成和传递消息。消息传递应用服务器114可以利用若干消息传递网络和平台中的任何一个来向用户传递消息。例如,消息传递应用服务器114可以使用电子邮件(e-mail)、即时消息(IM)、短消息服务(SMS)、文本、传真或语音(例如,IP语音(VoIP))消息经由有线(例如,因特网)、普通老式电话服务(POTS)或无线网络(例如,移动、蜂窝、WiFi、长期演进(LTE)、蓝牙)来传递消息。

数据流拼接系统124可以负责从包括在从多个用户计算装置(例如,客户端装置102)接收的多个消息中的数据流中生成拼接数据流,如下面进一步详细描述的。

图2是示出根据示例实施例的关于系统100的进一步细节的框图。具体地,系统100被示出为包括消息传递客户端应用104和应用服务器112,其进而包含多个子系统,即短时定时器系统202、集合管理系统204和注释系统206。

短时定时器系统202负责实施对由消息传递客户端应用104和消息传递服务器应用114允许的内容的临时访问。为此,短时定时器系统202包括多个定时器,该定时器基于与消息相关联的持续时间和显示参数或消息集合(例如,SNAPCHAT故事),经由消息传递客户端应用104选择性地显示和启用对消息和相关联内容的访问。下面提供关于短时定时器系统202的操作的进一步细节。

集合管理系统204负责管理媒体集合(例如,文本、图像视频和音频数据的集合)。在一些示例中,内容的集合(例如,消息,包括图像、视频、文本和音频)可以被组织成“事件库”或“事件故事”。此类集合可以在指定的时间段(诸如内容所涉及的事件的持续时间)内可用。例如,与音乐会相关的内容可以在该音乐会的持续时间内作为“故事”而可用。集合管理系统204还可以负责发布向消息传递客户端应用104的用户界面提供特定集合的存在的通知的图标。

集合管理系统204另外包括策展界面208,策展界面208允许集合管理器管理和策展特定的内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可以向用户支付报酬(例如,金钱、与通信系统或第三方奖励系统相关的非金钱积分或点数、旅行里程、有权使用艺术品或专业镜头等等)以将用户生成的内容包括在集合中。在此类情况下,策展界面208操作以便为了使用其内容而自动向此类用户付款。

注释系统206提供使得用户能够注释或以其它方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与由联网系统100处理的消息的媒体覆盖的生成和发布有关的功能。注释系统206基于客户端装置102的地理位置可操作地向消息传递客户端应用104提供媒体覆盖(例如,SNAPCHAT滤镜)。在另一示例中,注释系统206基于诸如客户端装置102的用户的社交网络信息的其它信息可操作地向消息传递客户端应用104提供媒体覆盖。媒体覆盖可包括音频和视觉内容和视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色覆盖。可以将音频和视觉内容或视觉效果应用于客户端装置102处的媒体内容项(例如,图像或视频)。例如,媒体覆盖包括可以覆盖在由客户端装置102生成的照片之上的文本。在另一示例中,媒体覆盖包括位置覆盖的标识(例如,威尼斯海滩)、直播事件的名称或商家覆盖的名称(例如,海滩咖啡馆)。在另一示例中,注释系统206使用客户端装置102的地理位置来识别包括客户端装置102的地理位置处的商家名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其它标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。

在一个示例实施例中,注释系统206提供基于用户的发布平台,其使用户能够在地图上选择地理位置,并上传与所选地理位置相关联的内容。用户还可以指定将向其他用户提供特定的媒体覆盖的环境。注释系统206生成包括所上传的内容的媒体覆盖,并将所上传的内容与所选地理位置相关联。

在另一示例实施例中,注释系统206提供基于商家的发布平台,其使商家能够经由投标过程选择与地理位置相关联的特定的媒体覆盖。例如,注释系统206将最高投标商家的媒体覆盖与对应的地理位置相关联达预定义的时间量。

图3是示出根据某些示例实施例的可存储在服务器系统108的数据库120中的数据的示意图。虽然数据库120的内容被示出为包括多个表,但是可以理解,数据可以以其它类型的数据结构存储(例如,作为面向对象的数据库)。

数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。维护实体表302内的记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论何种类型,与服务器系统108存储数据相关的任何实体可以是公认的实体。每个实体被提供唯一标识符,以及实体类型标识符(未示出)。

实体图304另外存储关于实体之间的关系和关联的信息。仅用于示例,此类关系可以是社交关系、基于专业(例如,在共同的公司或组织工作)关注的关系、或基于活动的关系。

数据库120还将注释数据(例如,以滤镜的形式)存储在注释表312中。其中数据存储在注释表312内的滤镜与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并应用于视频和/或图像。在一个示例中,滤镜是在向接收者用户呈现期间显示为覆盖在图像或视频上的覆盖物。滤镜可以是各种类型的,包括当发送用户编写消息时由消息传递客户端应用104向发送用户呈现的滤镜的图库中的用户选择的滤镜。其它类型的滤镜包括地理位置滤镜(也称为地理滤镜),其可以基于地理位置呈现给发送用户。例如,基于由客户端装置102的GPS单元确定的地理位置信息,消息客户端应用104可以在用户界面内呈现特定于邻域或特定位置的地理位置滤镜。另一类型的滤镜是数据滤镜,其可以基于由客户端装置102在消息创建过程期间收集的其它输入或信息,由消息传递客户端应用104选择性地呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端装置102的电池寿命或当前时间。

可以存储在图像表308内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可以添加到图像或视频的实时特效和声音。

如上所述,视频表310存储视频数据,视频数据与其中在消息表314内保持记录的消息相关联。类似地,图像表308存储与其中消息数据被存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308中的各种图像和视频表310中的各种视频相关联。

故事表306存储关于消息和相关联图像、视频或音频数据的集合的数据,其被编译成集合(例如,SNAPCHAT故事或图库)。特定集合的创建可以由特定用户(例如,在实体表302中维护记录的每个用户)发起。用户可以以由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用104的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。

集合还可以构成“现场故事”,其是来自多个用户的通过手动、自动或使用手动和自动技术的组合创建的内容的集合。例如,“现场故事”可以构成来自不同位置和事件的用户提交内容的策展流。例如,可以经由消息传递客户端应用104的用户界面向用户(该用户的客户端装置102启用了位置服务并且其在特定时间处于公共位置事件)呈现选项,以针对特定的现场故事贡献内容。可以由消息传递客户端应用104基于他或她的位置向用户识别现场故事。最终结果是从共同体角度讲述的“现场故事”。

另一种类型的内容集合被称为“位置故事”,其使得其客户端装置102位于特定地理位置(例如,在学院或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可能需要验证终端用户属于特定组织或其它实体(例如,是大学校园中的学生)的第二程度的认证。

图4是示出根据一些实施例中的一些实施例的由客户端应用104生成用于与另一客户端应用104或消息传递服务器应用114进行通信的消息400的结构的示意图。特定消息400的内容用于填充存储在数据库120内的可由消息传递服务器应用114访问的消息表314。类似地,消息400的内容作为客户端装置102或应用服务器112的“传输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下组件:

·消息标识符402:识别消息400的唯一标识符。

·消息文本有效负载404:文本,其由用户经由客户端装置102的用户界面生成并且被包括在消息400中。

·消息图像有效载荷406:图像数据,其由客户端装置102的相机组件采集或从客户端装置102的存储器取得,并且被包括在消息400中。

·消息视频有效载荷408:视频数据,其由相机组件采集或从客户端装置102的存储器组件取得,并且被包括在消息400中。

·消息音频有效载荷410:音频数据,其由麦克风采集或从客户端装置102的存储器组件取得,并且被包括在消息400中。

·消息注释412:注释数据(例如,滤镜、贴纸或其它增强),其表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释。

·消息持续时间参数414:参数值,其以秒为单位指示消息400的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将经由消息传递客户端应用104呈现给用户或可由用户访问的时间量。

·消息地理位置参数416:与消息400的内容有效载荷相关联的地理位置数据(例如,纬度和纵向坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与内容中包括的内容项目相关联(例如,消息图像有效载荷406内的特定图像,或消息视频有效载荷408中的特定视频)。

·消息故事标识符418:识别与消息400的消息图像有效载荷406中的特定内容项相关联的一个或多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。

·消息标签420:每个消息400可以采用多个标签标记,每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效负载406中包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以被包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。

·消息发送者标识符422:指示生成消息400并且从其发送消息400的客户端装置102的用户的标识符(例如,消息传递系统标识符、电子邮件地址或装置标识符)。

·消息接收者标识符424:指示消息400被寻址到的客户端装置102的用户的标识符(例如,消息系统标识符、电子邮件地址或装置标识符)。

消息400的各种组件的内容(例如,值)可以是指向其中存储内容数据值的表中的位置的指示器。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或其地址)的指示器。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,以及存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。

图5是示出访问限制过程500的示意图,在该访问限制过程500中访问内容(例如,短时消息502,以及相关联的多媒体数据有效载荷)或内容集合(例如,短时的消息故事504)可以是具有时间限制的(例如,短时的)。

短时消息502被示出与消息持续时间参数506相关联,消息持续时间参数506的值确定客户端应用104将短时消息502显示给短时消息502的接收用户的时间量。在一个实施例中,在客户端应用104是SNAPCHAT应用客户端的情况下,短时消息502可由接收用户查看至多10秒,这取决于发送用户使用消息持续时间参数506指定的时间量。

消息持续时间参数506和消息接收器标识符424被示为对消息定时器512的输入,该消息定时器512负责确定向由消息接收者标识符424识别的特定接收用户示出短时消息502的时间量。特别地,短时消息502将仅示出给相关接收用户达由消息持续时间参数506的值确定的时间段。消息定时器512被示出为更通用的短时定时器提供输出,该短时定时器系统202负责向接收用户显示内容(例如,短时消息502)的总体定时。

在图5中示出短时消息502要被包括在短时消息故事504中(例如,个人SNAPCHAT故事或事件故事)。短时消息故事504具有相关联的故事持续时间参数508,其值确定短时消息故事504被呈现并且可由联网系统100的用户访问的持续时间。故事持续时间参数508例如可以是音乐会的持续时间,其中短时消息故事504是与该音乐会有关的内容的集合。可替代地,当执行短时消息故事504的设置和创建时,用户(所有者用户或策展者用户)可以指定故事持续时间参数508的值。

另外,短时消息故事504内的每个短时消息502具有相关联的故事参与参数510,其值确定短时消息502将在短时消息故事504的上下文内可访问的持续时间。因此,在短时消息故事504本身根据故事持续时间参数508到期之前,特定短时消息故事504可“到期”并且变得在短时消息故事504的上下文中不可访问。故事持续时间参数508、故事参与参数510和消息接收者标识符424每个都向故事定时器514提供输入,故事定时器514首先在操作上确定短时消息故事504的特定短时消息502是否将被显示给特定接收用户,并且如果将被显示则显示多长时间。注意,作为消息接收者标识符424的结果,短时消息故事504还知道特定接收用户的标识。

因此,故事定时器514可操作地控制相关联的短时消息故事504的整体寿命,以及短时消息故事504中包括的个人短时消息502。在一个实施例中,短时消息故事504内的每个和全部短时消息502在故事持续时间参数508指定的时间段内保持可见和可访问。在另一实施例中,某个短时消息502可以在短时消息故事504的上下文内基于故事参与参数510而到期。注意,消息持续时间参数506还可以确定向接收用户显示特定的短时消息502的持续时间,即使在短时消息故事504的上下文内。因此,消息持续时间参数506确定向接收用户显示特定的短时消息502的持续时间,而不管接收用户是否查看短时消息故事504的上下文内部或外部的短时消息502。

短时定时器系统202还可以在操作上基于确定其已经超过相关联的故事参与参数510而从短时消息故事504中移除特定短时消息502。例如,当发送用户已经建立了从发布起24小时的故事参与参数510时,短时定时器系统202将在指定的24小时之后从短时消息故事504中移除相关的短时消息502。短时定时器系统202还操作以在短时消息故事504内的每个和所有短时消息502的故事参与参数510已经到期时,或者当短时消息故事504本身已经根据故事持续时间参数508到期时,移除短时消息故事504。

在某些使用情况中,特定短时消息故事504的创建者可以指定非限定的故事持续时间参数508。在该情况下,对于短时消息故事504内的最后剩余的短时消息502,故事参与参数510的到期将确定短时消息故事504本身何时到期。在该情况下,被添加到短时消息故事504的具有新故事参与参数510的新短时消息502有效地将短时消息故事504的寿命延长到等于故事参与参数510的值。

响应于短时定时器系统202确定短时消息故事504已经到期(例如,不可再访问),短时定时器系统202与系统100(以及,例如,特别是消息传递客户端应用104)通信,使得与相关短时消息故事504相关联的标记(例如,图标)不再被显示在客户端应用104的用户界面内。类似地,当短时定时器系统202确定特定短时消息502的消息持续时间参数506已经到期时,短时定时器系统202使客户端应用104不再显示与短时消息502相关联的标记(例如,图标或文本标识)。

图6是示出根据一些示例实施例的用于根据从多个用户计算装置(例如,客户端装置102)接收的多个消息生成拼接数据流的方法600的各方面的流程图。例如,服务器系统108可以确定多个消息的子集与公共音频内容相关联,并且针对与公共音频内容相关联的音频时间线从多个消息的子集中生成拼接数据流。出于说明性目的,针对图1的联网系统100描述方法600。可理解,在其它实施例中,方法600可以采用其它系统配置来实践。

在操作602中,服务器系统108(例如,经由与数据流拼接系统124相关联的服务器计算机)从多个用户计算装置(例如,客户端装置102)接收多个消息。多个消息中的每个消息可以包括诸如图像的媒体内容、数据流等。在一个示例中,数据流可以是用户在音乐会、演讲或包括音频的其它事件期间拍摄的视频。每个消息还可以包括其它数据,诸如地理位置数据、消息的日期和时间戳(例如,何时创建或发送消息)、数据流或其它媒体内容的数据和时间戳(例如,何时采集或记录消息的数据流或其它媒体内容)等。

在操作604中,服务器计算机确定与类似地理位置和时间段相关联的多个消息中的消息的子集。例如,服务器计算机可以分析多个消息中的每个消息,以确定多个消息中的每个消息的地理位置和消息中每个消息的时间段。在一个示例中,服务器计算机可以使用在消息中包括的数据(诸如从其发送消息的用户计算装置的全球定位系统(GPS)坐标)来确定多个消息中的每个消息的地理位置。在另一示例中,服务器计算机可以基于在消息中包括的的时间戳(时间戳指示消息被发送的时间或者采集消息中所包括的媒体内容(例如,数据流)的时间)或者基于服务器计算机接收消息的时间等来确定时间段。服务器计算机可以检测到多个消息中的消息的子集包括与相同的GPS坐标的预定区域相关联的地理位置和预定时间窗口内的时间段(例如,1分钟、5分钟、10分钟、20分钟等)。

在一个示例中,服务器系统108可以将世界(例如,世界地图)预分割成预定义的网格。对于每个网格,服务器计算机可以聚合在特定时间段(例如,每十分钟)内具有落入每个网格的地理位置的所有消息。每个网格可以是相同大小的,或者每个网格大小可以基于区域中的人口密度、城镇或城市的大小等而变化。因此,消息子集可以是具有在相同(例如,十分钟)时间段内发生的一个特定网格内的地理位置的消息的聚合。

在操作606中,服务器计算机提取消息的子集中的每个消息的音频指纹,以用于确定消息的子集中的消息之间是否存在共同音频。例如,服务器计算机可以分析每个消息中包括的音频(例如,消息的数据流的音频)并计算音频指纹。存在可用于计算音频指纹的许多不同的方法。一个示例是从频谱图中提取特征并使用提取的特征与其它频谱图进行比较,以确定关键频谱图是否匹配以及它们匹配的确切位置。使用频谱图只是计算音频指纹的方法的一个示例。可理解,可以替代地使用其它方法,或与其它方法组合使用。

在一个示例中,根据分析消息中包括的音频来返回以下响应,从而计算音频指纹:

可以使用跨时间窗口的快速傅立叶变换(FFT)来计算频谱图表示。

例如,FFT窗口中使用的参数可包括:

SAMPLING_RATE=44100

WINDOW_SIZE=4096

OVERLAP_RATIO=0.5

图7示出了频谱图700的示例。利用频谱图,可以使用大小为NEIGHBORHOOD_SIZE=20的菱形最大值滤波器(diamond maxima filter)来提取最大值(或峰值)。图8示出了所检测的频谱图800的最大值的示例。

如图9的频谱图900中所示,在提取最大值之后,将最大值对(pair of maxima)连接在一起成为最终音频指纹。首先,最大值可以按它们出现的时间进行排序。然后,每个最大值与其后的第一个FAN_VALUE最大值连接,条件是它们在MIN_TIME_DELTA和MAX_TIME_DELTA时间帧内。指纹可以使用以下三个值生成:

1.第一最大值的频率(11位)

2.第二最大值的频率(11位)

3.两个最大值之间的时间差(8位)

在该示例中,将这三个值打包成单个无符号整数以形成音频指纹。然后,该音频指纹与第一最大值的时间帧相关联。这导致指纹散列如下:

TIME_DELTA|FREQ1|FREQ2

8位|11位|11位

可以用于散列的参数如下:

FAN_VALUE=15

MIN_TIME_DELTA=1

MAX_TIME_DELTA=255

在一个示例中,音频指纹以抵抗噪声的方式而设计。因此,只要在两个数据流之间存在一些共享的共同音频,两个数据流仍可有效地匹配。

返回图6,在操作608中,服务器计算机将消息的子集分组为多对消息,使得多个消息的子集中的每个消息可以与每个其它消息进行比较。每对消息可以包括第一消息和第二消息。

在操作610中,服务器计算机将每对消息中的第一消息的音频指纹与第二消息的音频指纹进行比较,以确定每对消息的匹配分数。以该方式,服务器计算机可以匹配消息的子集中的所有消息对(例如,来自每个消息中的每个数据流中的音频内容)之间的音频指纹。如果一对消息的匹配分数高于预定阈值,则服务器计算机可以将该对消息视为匹配(例如,包含相同音频内容的一部分)并确定该对中的每个消息对齐的确切位置。在一个示例中,如果足够的指纹以精确的时间顺序匹配,则可以找到匹配。

在另一个示例中,服务器计算机可以确定两个消息应该在什么时间点被连接,使得它们的交叉音轨精确匹配。匹配可以在频谱图空间中完成,并且可以精确到1/20秒。例如,第一消息可以包括音频内容的前十秒(例如,从时间00:00到时间00:10),并且第二消息可以包括音频内容从时间00:08到时间00:13的五秒等。

在一个示例中,服务器计算机可以确定是否存在足够的消息对,其全部连接在一起成为一个公共音频时间线。公共音频时间线与特定音频内容(例如,歌曲、语音、音乐会等)相关联。公共音频时间线可以包括音频内容的完整长度(例如,整个歌曲、语音、音乐会等),或者公共音频时间线可以包括音频内容的完整长度的一部分(例如,歌曲的最后45秒、演讲的中间部分、音乐会的前十分钟等)。

可以使用预定阈值来确定是否存在全部连接在一起成为一个公共音频时间线的足够的消息对。例如,预定阈值可以是其中必须存在连接的消息的特定时间量(例如,最少30秒、1分钟、5分钟等)、必须被连接的特定消息数量(例如二、十、二十、五十、一百等)、或其它阈值。如果存在足够的消息对一起连接成一个公共音频时间线,则服务器计算机可以将与公共音频时间线相关联的消息拼接在一起。

在操作612中,服务器计算机确定与公共音频时间线相关联的消息的子集中的一组消息。例如,服务器计算机可以基于每对消息的匹配分数来确定一组消息。在一个示例中,一组消息可以包括消息的子集中的所有消息。在另一示例中,一组消息可以是消息的子集的进一步子集(例如,消息的子集中的消息可以不全部与公共音频内容相关联,而是可以替代地与不同的音频内容相关联)。

在操作614中,服务器计算机将一组消息拼接在一起,以生成针对该组消息中的每个消息的数据流的拼接数据流。例如,服务器计算机可以基于每个消息的时间段将一组消息拼接在一起。例如,消息A可用于公共音频时间线中的时间段00:10-00:20,消息B可用于时间段00:20-00:23,消息C可用于时间段00:22-00:31,等等。数据流可能在时间段中重叠,使得在给定时间段内可能存在多于一个的数据流。

在一个示例中,服务器计算机可以确定用于拼接的开始消息。开始消息可以是在一组消息的公共音频时间线中首先发生的消息。例如,可能存在具有在音频时间线中从00:10开始的时间段的一个消息,以及具有在音频时间线中从00:15开始的时间段的另一个消息,等等。服务器计算机确定在音频时间线中哪个消息是最早的(例如,从时间00:10开始的消息)。

在一个示例中,可能存在多于一个的消息具有相似的开始时间,这些消息中的任何一个均可以是开始消息。例如,第一消息可在时间00:10:01开始,第二消息可在00:10:02开始,并且第三消息可在00:10:01开始。服务器计算机可以通过随机选择、基于指示消息的质量级别的消息的质量分数(例如,图像清晰度、音频清晰度、流的稳定性等)、基于关注得分(例如,基于用户关注)、或其它方式、或这些方法的组合,从这些消息中选择开始消息。

在一个示例中,服务器计算机通过考虑来自仅出现在所有匹配的前面的消息中的消息或数据流来确定用于拼接的所有可能的开始点。然后,服务器计算机可以运行在每个开始点处开始的递归广度优先搜索,以从音频匹配中生成密集音频拼接。

在另一个示例中,服务器计算机可以优化拼接。例如,被优化的拼接可以包括为跨越整个密集拼接所必需的最小数量的消息或来自消息的数据流。这些可以使用贪婪算法(greedy algorithm)针对每个密集拼接而有效地计算。例如,从第一消息或数据流开始,服务器计算机可以确定与第一消息相交的最长消息或数据流以选择第二消息。然后,服务器计算机可以确定与第二消息相交的最长消息或数据流以选择第三消息,等等,直到完成整个公共音频时间线。

图10示出了拼接数据流1000的视觉表示,拼接数据流1000包括经由多个用户装置从各个用户接收的多个消息或数据流1002-1030。每个框1002-1030表示从用户接收的拼接数据流1000中的消息或数据流。例如,每个框1002-1030中的每个消息或数据流可以包括公共音频时间线期间的时间段(例如,1002可以是公共音频时间线的前10秒,1004可以是公共音频时间线的下一个10秒,1006可以是公共音频时间线的下一个5秒,等等)。在该示例中,拼接数据流1000包括来自直播音频事件的消息。

图11示出了拼接数据流1100的另一视觉表示,拼接数据流1100包括经由多个用户装置从各个用户接收的多个消息或数据流。如图10中,在图11中,每个框表示从用户接收的拼接数据流1100中的消息或数据流。在该示例中,拼接数据流1100包括来自直播体育赛事的消息。

在一个示例中,拼接数据流可以包括基于时间线中显示顺序的随机选择而进行优先级排序的消息。在另一示例中,拼接数据流可包括根据一个或多个规则进行优先级排序的消息。例如,拼接数据流可以包括基于质量分数进行优先级排序用于公共音频时间线中显示顺序的消息。在一个示例中,可以分析每个消息或数据流以基于图像质量、数据流的抖动、音频质量、光线等来确定针对数据流的质量的分数。

在另一示例中,拼接数据流可以包括基于与用户计算装置相关联的用户或用户的用户简档而进行优先级排序的消息。例如,拼接数据流可以包括来自用户或来自与用户相关联的其他用户(例如,朋友、家人、该用户“关注”的其他用户等)的消息。服务器计算机可以对由用户或与用户相关联的其他用户生成或发送的消息进行优先级排序。

再次参考图6,在操作616中,服务器计算机向一个或多个用户计算装置提供拼接数据流。在一个示例中,服务器计算机可以向一个或多个计算装置发送拼接数据流。在另一示例中,服务器计算机可以提供对来自一个或多个计算装置的拼接数据流的访问(诸如经由连接或其它方式),其将允许用户计算装置访问服务器计算机上的拼接数据流(例如,从服务器计算机流式传输拼接数据流)。

如图13-15中的示例中所示,一个或多个用户装置可以在一个或多个用户装置的显示器上显示拼接数据流。在一个示例中,拼接数据流在用户装置上显示为连续数据流,该连续的数据流从一个消息数据流转换到下一个消息数据流到连续的公共音频流。在一个示例中,来自拼接数据流的每个数据流的音频被平均以提供更好质量的音频流。因此,连续公共音频流可以包括是与拼接数据流中的每个数据流相关联的音频的平均值的音频,以提供更好质量的音频流,或者连续音频流可以包括在多个消息中接收的原始音频。

示例实施例允许用户在拼接数据流中的给定时间段内在替换数据流(alternatedata streams)之间切换显示。使用图13-15中所示的示例,用户可能正在查看计算装置1302上的最近音乐会的拼接数据流的显示1306。显示1306可示出音乐会中的主唱,并且用户可能想要在音频时间线中看到在那时的其它视图。在一个示例中,显示1306可以某种方式指示存在当前查看的数据流的替换视图(例如,经由按钮1304、突出显示的帧、弹出消息或其它指示符)。用户可移动装置(例如,摇动、倾斜等)、触摸装置的显示1306(例如,触摸显示1306上的按钮或连接)、或以其它方式提供他希望查看替代显示的指示。在从用户接收到指示之后,用户计算装置1302可以显示替代视图(例如,数据流),其可示出如图14中所示的观众,如图15中所示的乐队的吉他手,或其它显示。然后,拼接的数据流将继续从该视图播放直到该视图的末尾,并且然后转换到与该视图对齐的下一个视图,等等。因此,当先前数据流结束时或当用户指示他希望查看替换显示时,拼接数据流的显示转换到下一个消息数据流。

图12是示出根据一些示例实施例的用于提供用于在用户计算装置(例如,客户端装置102)上显示的替换数据流的方法1200的各方面的流程图。出于说明性目的,针对图1的联网系统100描述方法1200。可理解,在其它实施例中,方法1200可以采用其它系统配置来实践。

在操作1202中,计算装置接收对替换数据流的请求。这些示例中的计算装置可以是用户计算装置(例如,客户端装置102)或服务器计算机(例如,与服务器系统118相关联的服务器计算机)。例如,在用户计算装置上显示包括与公共音频时间线相关联的多个单独数据流的拼接数据流期间,用户计算装置或服务器计算机可以接收对多个数据流的替换数据流而不是当前在计算装置上显示的活动数据流的请求(例如,取决于拼接数据流位于用户计算装置上还是从服务器计算机流传输,和/或用于提供替换数据流的功能是位于用户编写装置上还是服务器计算机上)。如上面进一步详细解释的,从多个计算装置接收与公共音频时间线相关联的多个数据流,并拼接在一起以形成拼接数据流。如上所述,在一个示例中,公共音频时间线可以用于作为与拼接数据流的多个单独数据流相关联的音频的平均值的音频内容。

在一个示例中,如上所述,用户可以指示期望切换到用户计算装置上的显示器中的替换数据流。例如,如上所述(例如,经由动作输入、触摸输入等),用户计算装置可以从计算装置的用户接收用于切换到替换数据流的指示。在一个示例中,用户计算装置可以向服务器系统108发送请求,或者在另一个示例中,用户计算装置可以自己处理请求。如果用户计算装置向服务器系统108发送请求,则诸如服务器计算机的计算装置接收对替换数据流的请求。如果用户计算装置自己处理请求,则用户计算装置接收对替换数据流的请求。

在操作1204中,计算装置确定与公共音频时间线中活动数据流的时间段相关联的拼接数据流的单独数据流的多个单独数据流的子集。例如,计算装置可以基于在对替换数据流的请求中接收的数据来确定活动数据流的时间段。在一个示例中,计算装置可以确定活动数据流与公共音频时间线的时间段00:30至00:33相关联。对替换数据流的请求可以包括时间段,或者可以包括当请求被发送时活动数据流正在显示处的当前时间戳(例如,00:30:49、00:32:10等)。计算装置可以分析多个数据流以确定多个数据流中的哪个数据流包括与活动数据流的时间段重叠的时间段。

在操作1206中,计算装置从与公共音频时间线中活动数据流的时间段相关联的拼接数据流的多个单独数据流的子集中选择替换数据流。在一个示例中,为了从多个数据流的子集中选择替换数据流,计算装置可以确定与活动数据流的时间段相关联的拼接数据流的多个数据流的子集中的每个数据流的质量分数。在该示例中,计算装置基于替换数据流的质量分数来选择替换数据流。例如,计算装置可以选择具有替换数据流的最高质量分数的数据流。在一个示例中,质量分数可以基于数据流中的视频或图像的质量分数和/或数据流对于多个用户的关注分数。在另一示例中,计算装置可以从多个数据流的子集中随机地选择替换数据流。

在操作1208中,计算装置可以提供替换数据流,用于显示计算装置。在一个示例中,服务器计算机可以将替换数据流提供给用户计算装置以向用户显示。在另一示例中,用户计算装置可以向用户显示替换数据流。

计算装置上的活动数据流的显示可以在公共音频时间线中在计算装置上转换到替换数据流。以该方式,用户可以如上所述查看替换数据流。拼接数据流的显示从替换数据流继续并转换到在公共音频时间线中替换数据流结束之后发生的多个数据流中的下一数据流。

图16是示出可以安装在上述任何一个或多个装置上软件架构1602的框图1600。例如,在各种实施例中,可以使用软件架构1602的一些或所有元件来实现客户端装置102和服务器系统108(包括服务器系统110、112、114、116、118、122和124)。图16仅仅是软件架构的非限制性示例,并且将理解可以实现许多其它架构来促进在此所述的功能。在各种实施例中,软件架构1602由诸如图17的机器1700的硬件来实现,机器1700包括处理器1710、存储器1730和I/O组件1750。在该示例中,软件架构1602可以被概念化为层的堆栈,其中每一个层可以提供特定的功能。例如,软件架构1602包括诸如操作系统1604、库1606、框架1608和应用1610的层。操作上,与一些实施例一致,应用1610通过软件堆栈调用应用编程接口(API)调用1612,并响应于API调用1612接收消息1614。

在各种实施方式中,操作系统1604管理硬件资源并提供公共服务。操作系统1604包括例如内核1620、服务1622和驱动器1624。与一些实施例一致,内核1620作为硬件与其它软件层之间的抽象层。例如,内核1620提供了存储器管理、处理器管理(例如调度)、组件管理、网络连接和安全设置等功能。服务1622可以为其它软件层提供其它公共服务。根据一些实施例,驱动器1624负责控制底层硬件或与底层硬件接口连接。例如,驱动器1624可以包括显示器驱动器、相机驱动器、

在一些实施例中,库1606提供由应用1610利用的低级通用基础设施。库1606可以包括系统库1630(例如,C标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库1606可以包括API库1632,诸如媒体库(例如,支持各种媒体格式(诸如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))的呈现和操纵的库)、图形库(例如,用于在显示器上的图形内容中呈现二维(2D)和三维(3D)的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库1606同样可以包括各种各样的其它库1634,以向应用1610提供许多其它API。

根据一些实施例,框架1608提供可由应用1610利用的高级公共架构。例如,框架1608提供各种图形用户界面(GUI)功能、高级别资源管理、高级位置服务等。框架1608可以提供可由应用1610利用的广泛范围的其它API,其中的一些可以特定于特定操作系统1604或平台。

在示例实施例中,应用1610包括主页应用1650、联系人应用1652、浏览器应用1654、书籍阅读器应用1656、位置应用1658、媒体应用1660、消息传递应用1662、游戏应用1664以及诸如第三方应用1666和媒体内容应用1667的广泛分类的其它应用。根据一些实施例,应用1610是执行程序中定义的功能的程序。可以利用各种编程语言来创建以各种方式构造的一个或多个应用1610,诸如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在具体示例中,第三方应用1666(例如,由特定平台的供应商之外的实体使用ANDROID

如上所述,一些实施例可以具体包括消息传递应用1662。在某些实施例中,这可以是独立的应用,其用于管理与诸如服务器系统108的服务器系统的通信。在其它实施例中,该功能可以与诸如媒体内容查看应用1667的另一应用集成。消息传递应用1662可以请求并显示各种媒体内容项,并且可以为用户提供以下能力:经由触摸界面、键盘或使用机器1700的相机装置输入与媒体内容项有关的数据、经由I/O组件1750与服务器系统108的通信,以及存储器1730中媒体内容项的接收和存储。可以使用在机器1700上操作的不同框架1608、库1606元素或操作系统1604元素来由消息传递应用1662管理媒体内容项和与媒体内容项相关联的用户输入的呈现。

图17是示出根据一些实施例能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一种或多种方法的机器1700的组件的框图。具体地,图17示出了以计算机系统的示例形式的机器1700的示意图,在该计算机系统内可以执行用于使机器1700执行在此讨论的任何一种或多种方法的指令1716(例如,软件、程序、应用1610、小程序、应用程序或其它可执行代码)。在替代实施例中,机器1700作为独立装置操作或者可以耦接(例如,网络连接)到其它机器。在联网部署中,机器1700可以以服务器-客户端网络环境中的服务器系统108、110、112、114、116、118、122、124等或客户端装置102的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1700可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能手机、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器、或者能够连续或以其它方式执行指定机器1700将采取的动作的指令1716的任何机器。此外,虽然只示出单个机器1700,但是术语“机器”同样可被认为包括单独或联合执行指令1716以执行在此所讨论的任何一种或多种方法的机器1700的集合。

在各种实施例中,机器1700包括处理器1710、存储器1730以及I/O组件1750,其可被配置成经由总线1702彼此通信。在示例实施例中,处理器1710(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复合指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一个处理器或其任何合适的组合)包括例如可以执行指令1716的处理器1712和处理器1714。术语“处理器”旨在包括多核处理器1710,该多核处理器1710可以包括可以同时执行指令1716的两个以上独立处理器1712、1714(同样称为“核”)。尽管图17示出了多个处理器1710,但是机器1700可以包括单个具有单核的处理器1710、单个具有多核的处理器1710(例如,多核处理器1710)、多个具有单核的处理器1712、1714、多个具有多核的处理器1710、1712或其任何组合。

根据一些实施例,存储器1730包括主存储器1732、静态存储器1734和经由总线1702可被处理器1710访问的存储单元1736。存储单元1736可以包括机器可读介质1738,在该机器可读介质1738上存储了体现在此所述的任何一种或多种方法或功能的指令1716。指令1716同样可以在由机器1700的其执行期间完全或至少部分地驻留在主存储器1732内、静态存储器1734内、处理器1710中的至少一个内(例如,在处理器的高速缓冲存储器内)或它们的任何合适的组合内。因此,在各种实施例中,主存储器1732、静态存储器1734和处理器1710被认为是机器可读介质1738。

如在此所使用的,术语“存储器”是指能够临时或永久地存储数据的机器可读介质1738,并且可以认为包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓存、闪存和高速缓存。虽然机器可读介质1738在示例实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令1716的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样可被视为包括能够存储指令(例如,指令1716)用于由机器(例如,机器1700)执行的任何介质或多个介质的组合,使得指令1716在由机器1700的一个或多个处理器(例如,处理器1710)执行时使机器1700执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”可被视为包括但不限于以固态存储器(例如,闪存)、光学介质、磁性介质、其它非易失性存储器(例如,可擦除可编程只读存储器(EPROM))或其任何合适的组合的形式的一种或多种数据存储库。术语“机器可读介质”特别排除非暂态信号本身。

I/O组件1750包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。通常,可理解的是I/O组件1750可以包括图17中未示出的许多其它组件。I/O组件1750根据功能被分组,仅用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件1750包括输出组件1752和输入组件1754。输出组件1752包括视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如振动电动机)、其它信号发生器等。输入组件1754包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触知输入组件)、音频输入组件(例如,麦克风)等。

在一些另外的示例实施例中,I/O组件1750包括各种其它组件中的生物度量组件1756、运动组件1758、环境组件1760或位置组件1762。例如,生物度量组件1756包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1758包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1760包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1762包括定位传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。

通信可以使用各种各样的技术来实现。I/O组件1750可以包括通信组件1764,其可操作以分别经由耦接器1782和耦接器1772将机器1700耦接到网络1780或装置1770。例如,通信组件1764包括网络接口组件或与网络1780接口连接的另一合适装置。在另外的示例中,通信组件1764包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、

此外,在一些实施例中,通信组件1764检测标识符或包括可操作以检测标识符的组件。例如,通信组件1764包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)码、Aztec码、数据矩阵、数字图形、最大码、PDF417、超码、统一商业代码缩减空格符号(UCC RSS)-2D条形码的多维条形码、和其它光学代码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由可以指示特定位置的通信组件1764来得出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由

在各种示例实施例中,网络1780的一个或多个部分可以是自组织网络、内联网、外部网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

在示例实施例中,经由网络接口装置(例如,在通信组件1764中包括的网络接口组件)使用传输介质通过网络1780发送或接收指令1716,并且利用多个公知的传输协议(例如,超文本传输协议(HTTP))中的任何一个。类似地,在其它示例实施例中,使用传输介质经由耦接1772(例如,对等耦接)向装置1770发送或接收指令1716。术语“传输介质”可被视为包括能够存储、编码或携带由机器1700执行的指令1716的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于这种软件的通信实现。

此外,因为机器可读介质1738不包含传播信号,所以机器可读介质1738是非暂态的(换句话说,不具有任何短时信号)。然而,将机器可读介质1738标记为“非暂态”不应被解释为意味着介质不能移动。介质1738应该被认为是可从一个物理位置传送到另一物理位置。另外,由于机器可读存储介质1738是有形的,因此介质1738可以被认为是机器可读装置。

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然将一种或多种方法的单独操作示出和描述为单独的操作,但可以并行地执行一个或多个单独的操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为分离的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。

虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。

在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其它实施例以及从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,多个实例可以作为单个实例为在此所述的资源、操作或结构提供。此外,各种资源、操作、模块、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

相关技术
  • 用于生成拼接数据流的方法和服务器计算机
  • 生成拼接数据流
技术分类

06120115924279