一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

上下文敏感化身字幕的制作方法

2022-07-23 23:12:24 来源:中国专利 TAG:

上下文敏感化身字幕
1.优先权要求
2.本技术要求于2019年12月9日提交的美国专利申请序列号16/707,635的优先权,该美国专利申请的全部内容通过引用并入本文中。
技术领域
3.本公开内容总体上涉及使用消息收发应用提供带字幕的化身。


背景技术:

4.用户总是在寻找新的方式来在社交媒体平台上与他们的朋友联系。用户尝试与朋友联系的一种方式是发送带化身的自定义消息。许多不同类型的化身可供用户选择以包含在自定义消息中。
附图说明
5.在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相同的部件。为了容易识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次介绍时所在的图号。一些实施方式通过示例而不是限制的方式在附图的图中示出,在附图中:
6.图1是示出根据示例实施方式的用于通过网络交换数据(例如,消息和相关联的内容)的示例消息收发系统的框图。
7.图2是示出根据示例实施方式的可以存储在消息收发服务器系统的数据库中的数据的示意图。
8.图3是示出根据示例实施方式的由消息收发客户端应用生成的用于通信的消息的结构的示意图。
9.图4是示出根据示例实施方式的示例上下文敏感化身系统的框图。
10.图5是示出根据示例实施方式的上下文敏感化身系统的示例操作的流程图。
11.图6至图8是根据示例实施方式的上下文敏感化身系统的说明性输入和输出。
12.图9是示出根据示例实施方式的可以结合本文中描述的各种硬件架构使用的代表性软件架构的框图。
13.图10是示出根据示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任何一种或更多种的机器的部件的框图。
具体实施方式
14.下面的描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于说明的目的,阐述了许多具体细节以提供对各种实施方式的理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践实施方式。一般地,公知的指令实例、协议、结构和技术不一定详细示出。
15.典型的用户设备允许用户使用图形来彼此通信。为此,用户通常输入搜索参数以找到最能代表用户试图传达的消息的图形。具体地,许多图形可供用户选择。找到正确的图形需要浏览多个信息页面,并且可能非常乏味和耗时。考虑到查找感兴趣的图形以包含在正在发送的消息中所花费的复杂性和时间量,用户不被鼓励在他们的消息中包含图形。这导致用户对使用消息收发应用的高级功能失去兴趣,这浪费资源。
16.所公开的实施方式通过提供如下消息收发应用来提高使用电子设备的效率,该消息收发应用基于用户为传送给朋友而编写的消息来智能且自动地选择具有特定表达的化身。这使用户花费更少的时间来编写包含化身的消息,并允许用户更无缝地创建内容丰富的消息,从而更准确地传达消息。具体地,根据所公开的实施方式,消息收发应用接收用户对使用带字幕的化身来生成消息的选项的选择。消息收发应用呈现化身和靠近化身的字幕录入区域,并且使用用户提供的文本字符串来填充字幕录入区域。随着用户在文本字符串中键入一个或更多个词,消息收发应用确定字幕的上下文,并基于所确定的上下文来修改化身的表达。
17.在一些情况下,字幕以弯曲方式呈现在化身周围。在一些情况下,消息收发应用确定文本字符串代表或标识第二用户。作为响应,消息收发应用自动检索代表第二用户的第二化身。然后消息收发应用将编写消息的用户的化身和检索到的在消息中标识的第二用户的化身二者一起呈现。化身呈现有与消息的上下文对应的表达。在一些情况下,消息收发应用确定用户正参与与第二用户的对话。作为响应,消息收发应用呈现参与对话的每个用户的化身,该化身具有与化身字幕中的对话或文本的上下文对应的表达。
18.以这种方式,所公开的实施方式通过减少用户必须浏览以选择合适的化身以向其他用户传达消息的屏幕和界面的数量来提高使用电子设备的效率。这是通过如下方式来完成的:自动确定用户正在编写的消息的上下文,并且随着用户键入消息的词,修改所呈现的并将包含在发送至其他用户的消息中的化身的表达。这也减少了使用设备完成任务所需的设备资源(例如,处理器周期、存储器和电力使用)。
19.图1是示出用于通过网络106交换数据(例如,消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括多个客户端设备102,每个客户端设备102托管包括消息收发客户端应用104和第三方应用105的若干应用。每个消息收发客户端应用104经由网络106(例如,因特网)通信地耦接至消息收发客户端应用104、第三方应用105、以及消息收发服务器系统108的其他实例。
20.因此,每个消息收发客户端应用104和第三方应用105能够经由网络106与另一消息收发客户端应用104和第三方应用105以及与消息收发服务器系统108进行通信并交换数据。在消息收发客户端应用104与第三方应用105之间以及消息收发客户端应用104与消息收发服务器系统108之间交换的数据包括功能(例如,激活功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。在消息收发客户端应用104与第三方应用105之间的任何公开的通信都可以从消息收发客户端应用104被直接传送至第三方应用105以及/或者从消息收发客户端应用104被间接地(例如,经由一个或更多个服务器)传送至第三方应用105。
21.第三方应用105和消息收发客户端应用104是包括允许客户端设备102访问上下文敏感化身系统124的功能集的应用。第三方应用105是与消息收发客户端应用104分开且不
同的应用。第三方应用105与消息收发客户端应用104分开地由客户端设备102下载和安装。在一些实现方式中,在下载和安装消息收发客户端应用104之前或在下载和安装消息收发客户端应用104之后由客户端设备102下载和安装第三方应用105。第三方应用105是由与提供消息收发客户端应用104的实体或组织不同的实体或组织提供的应用。第三方应用105是可以由客户端设备102使用与消息收发客户端应用104的登录凭证相独立的登录凭证访问的应用。即,第三方应用105可以维护第一用户账户,而消息收发客户端应用104可以维护第二用户账户。在实施方式中,可以由客户端设备102访问第三方应用105以执行各种活动和交互,例如听音乐、观看视频、跟踪锻炼、查看图形元素(例如,贴纸)、与其他用户通信等。
22.作为示例,第三方应用105可以是社交网络应用、约会应用、骑乘或汽车共享应用、购物应用、交易应用、游戏应用、成像应用、音乐应用、视频浏览应用、锻炼跟踪应用、健康监测应用、图形元素或贴纸浏览应用或者任何其他合适的应用。
23.消息收发客户端应用104允许用户访问摄像装置功能。消息收发客户端应用104的摄像装置功能激活客户端设备102的前置摄像装置并且在视频或图像正被捕获时在客户端设备102的显示屏上呈现由前置摄像装置捕获或接收的视频或图像。在实现方式中,前置摄像装置与呈现由前置摄像装置捕获的内容的屏幕集成或与呈现由前置摄像装置捕获的内容的屏幕放置在客户端设备102的同一侧。
24.在用户按下消息收发客户端应用104的合适按钮以存储由前置摄像装置捕获的图像或视频之后,消息收发客户端应用104允许用户查看或编辑捕获的图像。在一些情况下,可以呈现一种或更多种编辑工具来修改或编辑存储的图像。这样的编辑工具可以包括允许用户将文本添加到图像或视频的文本工具。这样的文本工具包括大文本选项、带字幕的化身选项、彩虹文本选项、脚本文本选项等。
25.响应于接收到用户对带字幕的化身选项的选择,消息收发客户端应用104检索用户的化身。化身呈现在捕获的图像或视频的顶部上,并包括文本录入区域。在一些情况下,化身最初呈现为具有中性表达(例如,不微笑或不悲伤)。在一些实施方式中,化身呈现为具有可以由用户选择的默认表达。文本录入区域可以靠近化身,例如在化身上方或下方。文本录入区域允许用户输入文本字符串。随着用户键入文本字符串的词,字符串以圆形方式环绕化身以包围化身。
26.在一些实施方式中,消息收发客户端应用104处理和分析用户输入的文本字符串的一个或更多个词。消息收发客户端应用104基于文本字符串的一个或更多个词来确定字符串的上下文。例如,如果字符串包括积极或快乐的词(例如,高兴、兴奋、欣喜若狂、印象深刻等),则消息收发客户端应用104将上下文确定为积极或快乐。作为响应,消息收发客户端应用104检索相关联的或表示积极或快乐情绪的化身表达。一旦上下文被确定为表示检索到的化身表达,消息收发客户端应用104立即修改化身表达。以此方式,随着用户在字幕中键入文本字符串的词,消息收发客户端应用104动态地调整和修改化身的表达以表示文本字符串中消息的情绪或上下文。例如,如果用户在积极或快乐的词之后以及在化身表达被修改之后输入了附加词,则化身表达可能会根据附加词的上下文而改变。即,附加词可以被确定为与兴奋的上下文相关联。作为响应,消息收发客户端应用104将化身的表达从表示积极或快乐的表达修改为表示兴奋的表达。
27.在一些实施方式中,消息收发客户端应用104可以确定文本字符串中的一个或更
多个词代表消息收发应用的另一用户。例如,一个或更多个词可以具体标识另一用户的用户名,或者可以包括与另一用户唯一相关联的属性。作为响应,消息收发客户端应用104检索其他用户的第二化身并且将第二化身与编写消息的用户的第一化身一起呈现。在这样的情况下,可以修改两个化身的表达以表示由用户编写的消息的上下文。在一些情况下,可以修改与编写文本字符串的用户的第一化身对应的表达以表示与用户相关联的消息中的第一上下文,并且可以修改与文本字符串中提到的其他用户的第二化身对应的表达以表示第二上下文。例如,用户可以输入字符串“我很高兴,但约翰
·
史密斯很伤心”。在这样的情况下,可以修改该用户的化身的表达以表示快乐的上下文,并且可以修改另一个用户约翰
·
史密斯的化身以表示悲伤的上下文。
28.在一些情况下,消息收发客户端应用104确定用户已经启动摄像装置以从与一个或更多个其他用户的对话中捕获图像或视频。在这样的情况下,任何图像或视频以及由该图像或视频组成的消息可以被自动定向到与用户进行对话的一个或更多个其他用户。在这样的情况下,当用户选择带字幕的化身选项时,消息收发客户端应用104可以自动检索参与对话的每个用户的化身。消息收发客户端应用104可以基于用户输入的字幕或文本字符串的上下文来修改正在呈现的所有化身的表达。
29.在用户完成使用化身编写字幕之后,消息收发客户端应用104可以从用户接收选择发送选项的输入。作为响应,消息收发客户端应用104将由用户捕获的图像或视频与具有使图像或视频增强的字幕的化身发送至一个或更多个指定的接收者。指定的接收者可以由用户在编写消息后手动输入。替选地,当从与对话成员的对话中启动用于捕获包括带字幕的化身的图像或视频的摄像装置时,可以自动填充指定的接收者以包括对话的所有成员。
30.消息收发服务器系统108经由网络106向特定消息收发客户端应用104提供服务器端功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端应用104或由消息收发服务器系统108执行,但是应当理解,某些功能的位置在消息收发客户端应用104或消息收发服务器系统108内是设计选择。例如,在技术上优选的是:可以最初将某些技术和功能部署在消息收发服务器系统108内,但是稍后将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端应用104。
31.消息收发服务器系统108支持向消息收发客户端应用104提供的各种服务和操作。这样的操作包括向消息收发客户端应用104发送数据、从消息收发客户端应用104接收数据、以及对由消息收发客户端应用104生成的数据进行处理。该数据可以包括消息内容、客户端设备信息、图形元素、地理位置信息、媒体注释和覆盖、虚拟对象、消息内容持久性条件、社交网络信息和生活事件信息作为示例。通过经由消息收发客户端应用104的用户接口(ui)(例如,图形用户接口)可用的功能来激活和控制消息收发系统100内的数据交换。
32.现在具体地转至消息收发服务器系统108,api服务器110耦接至应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问数据库120,在该数据库120中存储有与通过应用服务器112处理的消息相关联的数据。
33.具体处理api服务器110,该服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,api服务器110提供一组接口(例如,例程和协议),由消息收发客户端应用104和第三方应用105可以调用或查询该组接口以
激活应用服务器112的功能。api服务器110展示由应用服务器112支持的各种功能,包括:帐户注册;登录功能;经由应用服务器112将消息从特定消息收发客户端应用104发送至另一个消息收发客户端应用104或第三方应用105;将媒体文件(例如,图形元素、图像或视频)从消息收发客户端应用104发送至消息收发服务器应用114,并供另一消息收发客户端应用104或第三方应用105可能访问;图形元素列表;媒体数据集合(例如,故事)的设置;这样的集合的检索;客户端设备102的用户的朋友列表的检索;消息和内容的检索;在社交图中添加和删除朋友;朋友在社交图中的位置;访问用户对话数据;访问存储在消息收发服务器系统108上的化身信息;以及打开应用事件(例如,与消息收发客户端应用104有关)。
34.应用服务器112托管若干应用和子系统,包括消息收发服务器应用114、图像处理系统116、社交网络系统122以及上下文敏感化身系统124。消息收发服务器应用114实现了若干消息处理技术和功能,特别是与从消息收发客户端应用104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。如将进一步详细描述的,来自多个来源的文本和媒体内容可以聚合成内容集合(例如,称为故事或画廊)。然后,由消息收发服务器应用114使这些集合对消息收发客户端应用104可用。鉴于对这样的处理的硬件要求,也可以由消息收发服务器应用114在服务器端执行数据的其他处理器和存储器密集型处理。
35.应用服务器112还包括图像处理系统116,该图像处理系统116通常关于在消息收发服务器应用114处的消息的有效载荷内接收到的图像或视频,专用于执行各种图像处理操作。图像处理系统116的一部分也可以由上下文敏感化身系统124实现。
36.社交网络系统122支持各种社交联网功能和服务并使这些功能和服务可用于消息收发服务器应用114。为此,社交网络系统122维护和访问数据库120内的实体图。由社交网络系统122支持的功能和服务的示例包括识别特定用户与之有关系或“跟随”的消息收发系统100的其他用户,以及识别特定用户的其他实体和兴趣。这样的其他用户可以被称为用户的朋友。社交网络系统122可以访问与用户的每个朋友相关联的位置信息,以确定他们住在哪里或当前的地理位置。社交网络系统122可以维护用户的每个朋友的位置简档,指示用户的朋友居住的地理位置。
37.上下文敏感化身系统124基于与化身相关联的字幕的上下文动态地修改化身的表达。例如,上下文敏感化身系统124接收用户对带字幕的化身选项的选择。上下文敏感化身系统124呈现用户的化身和文本录入区域。随着用户在文本录入区域中键入词,上下文敏感化身系统124确定文本录入区域中的一个或更多个词的上下文。在一些情况下,上下文敏感化身系统124确定与文本录入区域中的一个或更多个词相关联的多个上下文。上下文敏感化身系统124基于相关性对多个上下文进行排序,并且选择与最高排名相关联的给定上下文。上下文敏感化身系统124检索与给定上下文相关联的化身表达,并且修改化身的表达以表示检索到的化身表达。在一些情况下,上下文敏感化身系统124呈现带字幕的多个化身,并且基于字幕的上下文修改所有化身的表达。
38.应用服务器112被通信地耦接至数据库服务器118,该数据库服务器118有助于访问其中存储了与由消息服务器应用114处理的消息相关联的数据的数据库120。数据库120可以是第三方数据库。例如,应用服务器112可以与第一实体相关联,并且数据库120或数据库120的一部分可以与第二不同实体相关联并由第二不同实体托管。在一些实现方式中,数
据库120存储第一实体收集的关于由第一实体提供的服务的用户中的每个用户的用户数据。例如,用户数据包括用户名、电话号码、密码、地址、朋友、活动信息、偏好、由用户消费的视频或内容等。
39.图2是示出根据某些示例实施方式的可以存储在消息收发服务器系统108的数据库120中的数据的示意图200。虽然数据库120的内容被示为包括若干表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
40.数据库120包括存储在消息表214内的消息数据。实体表202存储实体数据,包括实体图204。在实体表202内维护记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,消息收发服务器系统108存储关于其的数据的任何实体可以是识别的实体。每个实体被提供有唯一标识符,以及实体类型标识符(未示出)。
41.实体图204存储关于实体之间的关系和关联的信息。仅举例而言,这样的关系可以是社交的、职业的(例如,在共同的公司或组织工作)、基于兴趣的或基于活动的。
42.消息表214可以存储用户与一个或更多个朋友或实体之间的对话集合。消息表214可以包括每个对话的各种属性,例如参与者列表、对话的大小(例如,用户的数目和/或消息的数目)、对话的聊天颜色、对话的唯一标识符以及任何其他对话相关的特征。
43.数据库120还在注释表212中以过滤器的示例形式存储注释数据。数据库120还存储在注释表212中接收到的注释内容。在注释表212中存储数据的过滤器是与视频和/或图像相关联并被应用于视频(其数据存储在视频表210中)和/或图像(其数据存储在图像表208中)。在一个示例中,过滤器是在呈现给接收方用户期间显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型的,包括当发送方用户正在编写消息时由消息收发客户端应用104呈现给发送方用户的过滤器图库中用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置被呈现给发送方用户。例如,可以基于由客户端设备102的全球定位系统(gps)单元确定的地理位置信息,由消息收发客户端应用104在ui内呈现特定于附近或特殊位置的地理位置过滤器。另一种类型的过滤器是数据过滤器,其可以由消息收发客户端应用104基于在消息创建过程期间由客户端设备102收集的其他输入或信息选择性地呈现给发送方用户。数据过滤器的示例包括特定位置处的当前温度、发送方用户行进的当前速度、客户端设备102的电池寿命或当前时间。
44.可以存储在图像表208内的其他注释数据是增强现实数据或lenses。增强现实数据可以是可以添加到图像或视频中的实时特殊效果和声音。
45.如上所述,lenses、覆盖、图像变换、ar图像和类似术语指的是可以对视频或图像进行的修改。这包括实时修改,实时修改在图像通过使用设备传感器被捕获,然后在修改的情况下被显示在设备的屏幕上时修改图像。这还包括对存储内容——例如,可以修改的图库中的视频剪辑——的修改。例如,在具有对多个lenses的访问的设备中,用户可以使用具有多个lenses的单个视频剪辑来查看不同lenses将如何修改存储的剪辑。例如,通过为同一内容选择不同的lenses,可以将应用不同伪随机运动模型的多个lense应用于同一内容。类似地,实时视频捕获可以与图示的修改一起使用,以显示当前由设备的传感器捕获的视频图像将如何修改捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者设备传感器捕获的内容可以在有或没有修改的情况下(或两者)被记录并被存储在存储器中。在一些系统中,预览功能可以示出不同lenses同时在显示器的不同窗口中看起
来如何。例如,这可以使得能够同时在显示器上查看具有不同伪随机动画的多个窗口。
46.使用lenses的数据和各种系统或者使用该数据来修改内容的其他这样的变换系统因此可以涉及:对象(例如,面部、手、身体、猫、狗、表面、对象等)的检测;在这样的对象离开视频帧中的视场、进入视频帧中的视场以及在视频帧中的视场四处移动时对这样的对象的跟踪;以及在这样的对象被跟踪时对这样的对象的修改或变换。在各种实施方式中,可以使用用于实现这样的变换的不同方法。例如,一些实施方式可以涉及生成一个或多个对象的三维网格模型,并在视频内使用模型的变换和动画纹理来实现变换。在其他实施方式中,可以使用对对象上的点的跟踪来放置所跟踪的位置处的图像或纹理(其可以是二维或三维的)。在更进一步的实施方式中,可以使用视频帧的神经网络分析来放置内容(例如,图像或视频帧)中的图像、模型或纹理。因此,lens数据既指用于在内容中创建变换的图像、模型和纹理,也指利用对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
47.可以利用保存在任何种类的计算机化系统的存储器中的任何种类的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,可以使用计算机动画模型来处理任何对象,例如人脸和人体的各部分、动物或者非生物例如椅子、汽车或其他对象。
48.在一些实施方式中,当特定修改与要变换的内容一起被选择时,要变换的元素由计算设备识别,然后在它们存在于视频的帧中的情况下被检测和跟踪。根据修改请求修改对象的元素,从而变换视频流的帧。对于不同种类的变换,可以通过不同的方法执行对视频流的帧的变换。例如,对于主要是指对象的元素的变化形式的帧变换,对象的每个元素的特征点(例如,使用主动形状模型(asm)或其他已知方法)被计算。然后,针对对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,针对每个元素的提及的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求针对每个元素生成第一组第一点,并且基于该组第一点和修改请求针对每个元素生成一组第二点。然后,可以通过基于该组第一点和该组第二点以及网格修改对象的元素来变换视频流的帧。在这样的方法中,也可以通过跟踪和修改背景来改变或扭曲经修改的对象的背景。
49.在一个或更多个实施方式中,可以通过计算对象的每个元素的特征点并基于计算的特征点生成网格来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,并且然后生成基于这些点的各种区域。然后,通过将每个元素的区域与至少一个元素中的每一个的位置对准来跟踪对象的元素,并且可以基于修改请求来修改区域的属性,从而变换视频流的帧。根据具体修改请求,可以以不同的方式变换提及的区域的属性。这样的修改可以涉及:改变区域的颜色;从视频流的帧中移除至少部分区域;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种实施方式中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为控制点,以用于确定用于模型动画的选项的整个状态空间。
50.在使用面部检测来变换图像数据的计算机动画模型的一些实施方式中,使用特定面部检测算法(例如,viola-jones)在图像上检测面部。然后,将主动形状模型(asm)算法应用于图像的面部区域以检测面部特征参考点。
51.在其他实施方式中,可以使用适合于面部检测的其他方法和算法。例如,在一些实
施方式中,使用界标来定位特征,该界标表示在所考虑的大多数图像中存在的可区分点。例如,对于面部界标,可以使用左眼瞳孔的定位。如果初始界标不可识别(例如,如果人有眼罩),则可以使用次要界标。这样的界标识别过程可以用于任何这样的对象。在一些实施方式中,一组界标形成形状。可以使用形状中的点的坐标将形状表示为向量。一个形状利用相似变换(允许平移、缩放和旋转)与另一个形状对准,该相似变换使形状点之间的平均欧几里德距离最小化。平均形状是对准的训练形状的平均。
52.在一些实施方式中,开始从与由全局面部检测器确定的面部的位置和大小对准的平均形状对界标的搜索。然后,这样的搜索重复以下操作的步骤:通过每个点周围的图像纹理的模板匹配来调整形状点的定位来建议暂定形状;以及使暂定形状符合全局形状模型,直到发生收敛。在一些系统中,个别模板匹配是不可靠的,并且形状模型将弱模板匹配的结果进行池化,以形成较强的整体分类器。整个搜索从粗略分辨率到精细分辨率在图像金字塔的每个级别上重复。
53.变换系统的实施方式可以在客户端设备上捕获图像或视频流,并在客户端设备例如客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状改变、情绪迁移(例如,将面部从皱眉改变为微笑)、状态迁移(例如,使被摄体变老、减小表观年龄、改变性别)、风格迁移、图形元素应用、以及由已经被配置成在客户端设备上高效地执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
54.在一些示例实施方式中,用于变换图像数据的计算机动画模型可以由系统使用,在该系统中,用户可以使用具有神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍),该神经网络操作为在客户端设备102上操作的消息收发客户端104的一部分。在消息收发客户端104内操作的变换系统确定图像或视频流内的面部的存在,并且提供与计算机动画模型相关联的修改图标以变换图像数据,或者计算机动画模型可以被呈现为与本文中描述的接口相关联。修改图标包括以下改变,该改变可以是作为修改操作的一部分的用于修改图像或视频流内的用户的面部的基础。一旦选择了修改图标,则变换系统发起将用户的图像转换以反映所选择的修改图标(例如,在用户上生成笑脸)的过程。在一些实施方式中,一旦图像或视频流被捕获并且指定的修改被选择,则修改的图像或视频流可以呈现在移动客户端设备上显示的图形用户接口中。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,一旦修改图标被选择,则用户可以捕获图像或视频流并且实时或接近实时地被呈现修改的结果。此外,当正在捕获视频流时,修改可以是持久的,并且所选择的修改图标保持被切换。机器教导的神经网络可以用于实现这样的修改。
55.在一些实施方式中,图形用户接口——其呈现由变换系统执行的修改——可以为用户供应附加的交互选项。这样的选项可以基于用于发起特定计算机动画模型的内容捕获和选择的接口(例如,来自内容创建者用户接口的发起)。在各种实施方式中,修改可以在对修改图标的初始选择之后是持久的。用户可以通过轻击或以其他方式选择由变换系统修改的面部来开启或关闭修改,并将其存储以供以后查看或浏览到成像应用的其他区域。在由变换系统修改多个面部的情况下,用户可以通过轻击或选择在图形用户接口内修改和显示的单个面部来全局开启或关闭修改。在一些实施方式中,可以单独地修改一组多个面部之
中的各个面部,或者可以通过轻击或选择图形用户接口内显示的各个面部或一系列各个面部来单独切换这样的修改。
56.如上所述,视频表210存储视频数据,在一个实施方式中,该视频数据与在消息表214中维护其记录的消息相关联。类似地,图像表208存储与消息数据被存储在实体表202中的消息相关联的图像数据。实体表202可以将来自注释表212的各种注释与存储在图像表208和视频表210中的各种图像和视频相关联。
57.化身表达列表207存储与不同上下文相关联的不同化身表达的列表。例如,化身表达列表207可以存储不同的化身纹理,每个化身纹理与不同的上下文相关联。化身纹理可以被检索并用于修改一个或更多个用户的化身以表示与化身纹理相关联的上下文。
58.上下文列表209存储与不同词或词组合相关联的不同上下文的列表。化身表达列表207存储上下文敏感化身系统124用来处理文本字符串以得到或确定文本字符串的上下文的规则列表。
59.故事表206存储与消息和相关联的图像、视频或音频数据的集合有关的数据,这些数据被编译成集合(例如,故事或图库)。特定集合的创建可以由特定用户(例如,在实体表202中为其维护记录的每个用户)发起。用户可以以已由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息收发客户端应用104的ui可以包括用户可选择的图标,以使得发送方用户能够将特定内容添加到他或她的个人故事。
60.集合还可以构成“生活故事”,其是来自多个用户的内容的集合,该集合是手动、自动或使用手动和自动技术的组合创建的。例如,“生活故事”可以构成来自各种位置和事件的用户提交内容的策划流。其客户端设备启用了位置服务并且在特定时间处于共同位置事件处的用户可以例如经由消息收发客户端应用104的ui被呈现有选项,以将内容贡献给特定生活故事。可以由消息收发客户端应用104基于用户的位置向他或她标识生活故事。最终结果是从社区视角讲述的“生活故事”。
61.另外类型的内容集合被称为“位置故事”,其使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要二级认证以验证最终用户属于特定组织或其他实体(例如,是大学校园中的学生)。
62.图3是示出根据一些实施方式的消息300的结构的示意图,消息300由消息收发客户端应用104生成,以用于传送至另外的消息收发客户端应用104或消息收发服务器应用114。特定消息300的内容用于填充存储在数据库120中的消息表214,该消息表214可由消息服务器应用114访问。类似地,消息300的内容被存储在存储器中作为客户端设备102或应用服务器112的“在途”或“飞行中”的数据。消息300被示为包括以下组成部分:
63.·
消息标识符302:识别消息300的唯一标识符。
64.·
消息文本有效载荷304:要由用户经由客户端设备102的ui生成并且包括在消息300中的文本。
65.·
消息图像有效载荷306:由客户端设备102的摄像装置部件捕获的或从客户端设备102的存储器检索到的、并且包括在消息300中的图像数据。
66.·
消息视频有效载荷308:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息300中的视频数据。
67.·
消息音频有效载荷310:由麦克风捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息300中的音频数据。
68.·
消息注释312:表示要应用于消息300的消息图像有效载荷306、消息视频有效载荷308或消息音频有效载荷310的注释的注释数据(例如,过滤器、贴纸或其他增强物)。
69.·
消息持续时间参数314:参数值,其指示消息的内容(例如,消息图像有效载荷306、消息视频有效载荷308、消息音频有效载荷310)将经由消息收发客户端应用104被呈现给用户或使其对于用户可访问的以秒为单位的时间量。
70.·
消息地理位置参数316:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。在有效载荷中可以包括多个消息地理位置参数316值,其中这些参数值中的每一个都与包括在内容中的内容项(例如,消息图像有效载荷306内的特定图像,或消息视频有效载荷308中的特定视频)相关联。
71.·
消息故事标识符318:识别一个或更多个内容集合(例如,“故事”)的标识符值,消息300的消息图像有效载荷306中的特定内容项与所述一个或更多个内容集合相关联。例如,消息图像有效载荷306内的多个图像可以各自与使用标识符值的多个内容集合相关联。
72.·
消息标签320:每个消息300可以用多个标签来标记,每个标签都指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷306中包括的特定图像描绘动物(例如狮子)的情况下,可以在消息标签320中包括指示相关动物的标签值。标签值可以基于用户输入手动地生成,或者可以使用例如图像识别自动地生成。
73.·
消息发送者标识符322:指示在其上生成消息300并且从其发送消息300的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
74.·
消息接收者标识符324:针对其指示消息300被寻址的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。在多个用户之间的对话的情况下,标识符可以指示对话中涉及的每个用户。
75.消息300的各种组成部分的内容(例如,值)可以是指向表中的存储内容数据值的位置的指针。例如,消息图像有效载荷306中的图像值可以是指向图像表208内的位置(或地址)的指针。类似地,消息视频有效载荷308内的值可以指向存储在视频表210内的数据,存储在消息注释312中的值可以指向存储在注释表212中的数据,存储在消息故事标识符318中的值可以指向存储在故事表206中的数据,并且存储在消息发送者标识符322和消息接收者标识符324中的值可以指向存储在实体表202中的用户记录。
76.图4是示出根据示例实施方式的示例上下文敏感化身系统124的框图。上下文敏感化身系统124包括化身字幕模块414、上下文分析模块416和化身表达修改模块418。
77.用户启动消息收发客户端应用104的图像捕获组件。作为响应,化身字幕模块414在客户端设备102的显示屏上呈现由客户端设备102的前置或后置摄像装置捕获的图像或视频。
78.化身字幕模块414向用户呈现一个或更多个编辑工具以修改在客户端设备102的屏幕上呈现给用户的图像或视频。编辑工具允许用户选择一个或更多个图形元素(例如,化身、文本、表达符号、图像、视频等)来对呈现给用户的图像或视频进行添加或增强。例如,用户可以在用户选择的位置向显示屏幕上呈现的图像或视频添加文本。在一些情况下,编辑工具允许用户选择带字幕的化身选项。
79.响应于接收到用户对带字幕的化身选项的选择,化身字幕模块414确定用户是否参与与一个或更多个其他用户的对话。即,化身字幕模块414响应于用户从与另一用户的对话中选择使用摄像装置回复的选项来确定图像或视频是否被捕获。响应于确定使用摄像装置回复的选项从对话中被选择以捕获图像,化身字幕模块414呈现与用户参与对话的每个用户的化身。化身呈现为具有在化身上方或下方的字幕录入区域。响应于确定用户当前未与对话中的另一成员进行接触(例如,未选择使用摄像装置回复的选项来捕获图像),化身字幕模块414向用户呈现在化身上方或下方具有字幕录入区域的一个化身。在这两种情况下(单个或多个化身呈现),随着用户键入用于字幕录入区域的文本字符串的词,由用户输入到字幕录入区域的文本以圆形方式环绕化身。
80.上下文分析模块416处理用户输入的文本字符串中的一个或更多个词。上下文分析模块416参考存储在上下文列表209中的词和/或规则,在用户键入词时分析一个或更多个词。上下文分析模块416生成用户键入的词的上下文列表,并且对生成的上下文列表进行排序。上下文分析模块416从生成的列表中选择与最高排名相关联的给定上下文。
81.在一些情况下,上下文分析模块416确定字符串中的哪些词与所呈现的哪个化身相关联。上下文分析模块416可以执行语义分析和处理以基于句子结构确定哪些词与特定化身相关联。例如,如果文本字符串是“我很快乐,而约翰
·
史密斯很伤心”,则上下文分析模块416确定快乐与正在输入表达的用户相关联,而悲伤与约翰
·
史密斯的化身相关联。在这样的情况下,上下文分析模块416检索并选择与特定词相关联的每个化身的上下文。替选地,上下文分析模块416将所有化身与来自上下文列表的相同最高排名的上下文相关联。
82.化身表达修改模块418接收由上下文分析模块416选择的一个或多个上下文。化身表达修改模块418从化身表达列表207检索与一个或多个所选择的上下文相关联的一个或多个纹理。例如,如果所选择的上下文是悲伤的,则化身表达修改模块418检索与悲伤上下文相关联的化身纹理。例如,如果所选择的上下文是悲伤和快乐的,则化身表达修改模块418检索与悲伤和快乐上下文相关联的化身纹理。
83.随着用户在字幕录入区域中键入文本字符串,化身表达修改模块418使用检索到的纹理来修改一个或多个化身的表达。化身表达修改模块418可以从上下文分析模块416接收标识所呈现的多个化身中的哪个化身与哪个上下文相关联的指示。例如,当上下文分析模块416确定第一化身与对应于第一上下文的词相关联并且第二化身与对应于第二上下文的词相关联时,上下文分析模块416将此信息提供给化身表达修改模块418。化身表达修改模块418然后使用与第一上下文相关联的第一纹理来修改第一化身的表达,并且使用与第二上下文相关联的第二纹理来修改第二化身的表达。
84.上下文分析模块416连续且动态地处理字幕录入区域的由用户输入的词,以连续且动态地排序和选择最适合字幕的上下文。当上下文分析模块416选择不同的上下文时,上下文分析模块416通知化身表达修改模块418基于不同的或新选择的上下文来修改化身的表达。以此方式,随着用户在字幕录入区域中键入字符串的词,一个或多个化身的表达会改变以表示上下文或字符串。
85.图5是示出根据示例实施方式的执行过程500中的上下文敏感化身系统124的示例操作的流程图。过程500可以以由一个或更多个处理器执行的计算机可读指令实现,使得过程500的操作可以部分地或全部地由消息收发服务器系统108和/或第三方应用105的功能
部件执行;因此,下面参照其通过示例的方式描述过程500。然而,在其他实施方式中,过程500的操作中的至少一些操作可以部署在各种其他硬件配置上。因此,过程500并不旨在限于消息收发服务器系统108并且可以全部地或部分地由任何其他部件实现。过程500的操作中的一些操作或全部操作可以并行、无序或完全省略。
86.在操作501处,上下文敏感化身系统124接收输入,该输入选择用于使用带字幕的化身来生成消息的选项。例如,上下文敏感化身系统124确定用户已经使用移动设备的摄像装置捕获了图像并且已经输入了将文本添加到图像的请求。作为响应,上下文敏感化身系统124呈现包括带字幕的化身选项的文本插入选项的菜单。上下文敏感化身系统124接收用户从菜单对带字幕的化身选项的选择。
87.在操作502处,上下文敏感化身系统124呈现化身和靠近化身的字幕录入区域。例如,上下文敏感化身系统124检索与用户相关联的具有中性表达的化身。上下文敏感化身系统124在化身上方或下方呈现光标,该光标使用户能够输入文本字符串,该文本字符串包括以环形方式围绕化身的一个或更多个词。
88.在操作503处,上下文敏感化身系统124使用包括一个或更多个词的文本字符串来填充字幕录入区域。例如,上下文敏感化身系统124从在小键盘上输入字符的用户接收一个或更多个词。
89.在操作504处,上下文敏感化身系统124基于文本字符串中的一个或更多个词来确定上下文。例如,上下文敏感化身系统124在用户输入这些词时对这些词进行处理,以确定这些词是与积极还是消极的上下文相关联或者是与快乐还是悲伤的上下文相关联。
90.在操作505处,上下文敏感化身系统124基于确定的上下文修改化身的表达。例如,上下文敏感化身系统124检索与所确定的上下文相关联的化身的纹理,并且使用检索到的纹理来修改化身的表达。即,如果上下文被确定为悲伤的,则上下文敏感化身系统124将化身的表达从中性修改为悲伤的。
91.图6至图8是根据示例实施方式的上下文敏感化身系统124的说明性输入和输出。例如,如图6所示,在用户使用用户设备的摄像装置来捕获图像后,用户选择将文本添加到图像的选项。作为响应,上下文敏感化身系统124呈现具有多个文本录入类型的文本选项菜单630。例如,第一文本录入类型是“@”类型,该类型允许用户添加具有对另一个用户或主题的引用的文本。第二文本录入类型是允许用户输入文本并以非常大的字体或样式将文本添加到图像的大文本录入类型。第三文本录入类型是带字幕的化身选项632,其允许用户添加化身并在靠近化身的字幕录入区域中输入文本。第四文本录入类型是彩虹文本录入类型,该类型允许用户输入具有彩色属性的文本。第五文本录入类型是允许用户输入具有脚本属性的文本的脚本类型。
92.如屏幕601中所示,用户选择带字幕的化身选项632。作为响应,上下文敏感化身系统124检索与用户相关联的化身610,并且将化身610与字幕录入区域620一起呈现。上下文敏感化身系统124允许用户键入文本,并且如屏幕602所示,用户输入的字符串622以环形方式环绕化身612。此外,上下文敏感化身系统124确定在用户输入的字符串中的上下文是高兴的。例如,上下文敏感化身系统124确定词“高兴的”在字符串622中并且该词具有快乐的上下文。作为响应,上下文敏感化身系统124修改化身610的表达以具有如化身612所示的快乐表达。即,屏幕601中的化身610可以具有中性表达,并且化身612可以具有快乐表达以表
示用户输入的字符串622的上下文。
93.屏幕603示出了另一个示例,其中用户输入的字符串被确定为具有悲伤的上下文。例如,该字符串可以包括由上下文敏感化身系统124确定为具有悲伤上下文的词“最糟的”。作为响应,化身610的表达被修改为具有如屏幕603中所示的悲伤表达。用户可以选择发送选项来指定消息的接收者,该消息包括由用户捕获的图像,该图像被增强成具有经修改的表达的带字幕的化身。
94.如图7所示,用户键入包括引用主题或用户的符号710(例如,“@”)的字符串。屏幕701包括带符号710的字符串,该符号引用另一个用户的用户名。作为响应,上下文敏感化身系统124检索与所引用的另一用户的用户名相关联的第二化身。上下文敏感化身系统124呈现两个化身720(一个代表编写字符串的用户,另一个代表第二用户)。化身720被具有符号710的字符串围绕,该符号710以环形方式环绕化身720。化身720被修改为具有与用户输入的字符串的上下文对应的表达。用户可以选择发送选项来指定消息的接收者,该消息包括由用户捕获的图像,该图像被增强成具有带包括符号710的字幕的化身720。
95.在一些实施方式中,用户从与另一用户的对话中选择使用摄像装置回复的选项。响应于用户选择使用摄像装置回复的选项,消息收发客户端应用104激活摄像装置并允许用户捕获图像或视频。在用户捕获图像或视频之后,用户可以通过从文本工具菜单中选择文本录入选项来使用文本增强图像或视频。响应于用户选择带字幕的化身选项,上下文敏感化身系统124确定用户在用户选择了使用摄像装置回复的选项时捕获了图像并且用户正参与与一个或更多个其他用户的对话。在这样情况下,上下文敏感化身系统124检索用户与其参与对话的每个用户的化身,并将所有化身连同字幕录入区域一起呈现在屏幕801上。用户可以在字幕录入区域输入字符串,并且字符串以环形方式环绕化身。基于用户输入的字符串的上下文来修改一个或更多个化身的表达。在一些情况下,上下文敏感化身系统124通过分析对话中的一个或更多个词(例如,用户之间先前交换的词)以及/或者通过分析由用户输入的字符串中的用于字幕的一个或更多个词(例如,用户之间以前没有交换过的词)来修改化身的表达。
96.在一些实施方式中,可以基于用户之间交换的最后消息中的一个或更多个词来确定当用户选择带字幕的化身选项时而呈现的化身的初始表达。然后基于用户在字幕录入区域中输入的字符串的一个或更多个词来修改化身的初始表达。例如,用户可能正参与与另一个用户约翰的对话。用户向约翰发送或从约翰接收的最后一条消息可能是“我今天很快乐”。上下文敏感化身系统124可以确定该消息的上下文是快乐的。响应于接收到用户对带字幕的化身选项的选择(在选择使用摄像装置回复的选项并捕获图像之后),上下文敏感化身系统124可以为用户和约翰呈现具有快乐表达的化身。然后,用户可以将字符串“今天不是个好日子”输入到字幕录入区域。上下文敏感化身系统124可以确定该字符串与悲伤的上下文相关联,并且作为响应,可以将用户和约翰的化身的表达从快乐的修改成悲伤的。然后,用户可以选择发送选项以向对话中涉及的所有用户发送消息。该消息包括由用户捕获的图像、具有经修改的表达的化身以及具有由用户输入的以环形方式环绕化身的字符串的字幕。消息的接收者是基于对话成员的身份自动选择的。
97.图9是示出示例软件架构906的框图,示例软件架构906可以与本文中描述的各种硬件架构结合使用。图9是软件架构的非限制性示例,并且应当理解的是,可以实现许多其
他架构以促进本文中描述的功能。软件架构906可以在诸如图10的机器1000的硬件上执行,机器1000包括处理器1004、存储器1014和输入/输出(i/o)部件1018等。代表性硬件层952被示出并且可以表示例如图10的机器1000。代表性硬件层952包括具有相关联的可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括本文中描述的方法、部件等的实现。硬件层952还包括也具有可执行指令904的存储器和/或存储模块存储器/存储装置956。硬件层952还可以包括其他硬件958。
98.在图9的示例架构中,软件架构906可以被概念化为层的堆栈,在层的堆栈中,每个层提供特定的功能。例如,软件架构906可以包括诸如操作系统902、库920、框架/中间件918、应用916和表示层914的层。在操作上,层内的应用916和/或其他组件可以通过软件堆栈激活api调用908并且响应于api调用908而接收消息912。示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件918,而其他操作系统可能提供这样的层。其他软件架构可以包括附加的层或不同的层。
99.操作系统902可以管理硬件资源并且提供公共服务。操作系统902可以包括例如核心922、服务924和驱动器926。核心922可以用作硬件与其他软件层之间的抽象层。例如,核心922可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务924可以为其他软件层提供其他公共服务。驱动器926负责控制底层硬件或与底层硬件接口(interface)。例如,根据硬件配置,驱动器926包括显示器驱动器、摄像装置驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
100.库920提供由应用916和/或其他部件和/或层使用的公共基础设施。库920提供如下功能,该功能允许其他软件组件以比与底层操作系统902的功能(例如,核心922、服务924和/或驱动器926)直接对接的方式更容易的方式来执行任务。库920可以包括系统库944(例如,c标准库),系统库944可以提供函数例如存储器分配函数、串操纵函数、数学函数等。此外,库920可以包括api库946,例如媒体库(例如,支持诸如mpreg4、h.264、mp3、aac、amr、jpg、png的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现二维和三维的opengl框架)、数据库库(例如,可以提供各种关系数据库功能的sqlite)、web库(例如,可以提供web浏览功能的webkit)等。库920还可以包括各种各样的其他库948,以向应用916和其他软件组件/模块提供许多其他api。
101.框架/中间件918(有时也称为中间件)提供可以由应用916和/或其他软件组件/模块使用的较高级别的公共基础设施。例如,框架/中间件918可以提供各种图形用户接口功能、高级资源管理、高级位置服务等。框架/中间件918可以提供可以由应用916和/或其他软件组件/模块利用的广范围的其他api,其中一些可以特定于特定操作系统902或平台。
102.应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可以包括但不限于:联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用和/或游戏应用。第三方应用940可以包括由除特定平台的供应商之外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用,并且可以是在诸如ios
tm
、android
tm
、phone的移动操作系统或其他移动操作系统上运行的移动软件。第三方应
用940可以激活由移动操作系统(例如,操作系统902)提供的api调用908,以有利于本文中描述的功能。
103.应用916可以使用内置操作系统功能(例如,核心922、服务924和/或驱动器926)、库920以及框架/中间件918来创建ui以与系统的用户交互。替选地或另外地,在一些系统中,可以通过表示层例如表示层914发生与用户的交互。在这些系统中,应用/部件“逻辑”可以与应用/部件的与用户交互的方面分开。
104.图10是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器1000的部件的框图。具体地,图10以计算机系统的示例形式示出了机器1000的示意图,在该机器1000中可以执行指令1010(例如,软件、程序、应用、小程序、app或其他可执行代码),以使机器1000执行本文讨论的方法中的任何一种或更多种方法。因此,指令1010可以被用来实现本文中描述的模块或部件。指令1010将通用的非编程的机器1000转换成被编程为以所描述的方式执行所描述和所示功能的特定机器1000。在替选实施方式中,机器1000作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1000可以包括但不限于:服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1000采取的动作的指令1010的任何机器。此外,虽然仅示出了单个机器1000,但是术语“机器”还应被认为包括单独地或联合地执行指令1010以执行本文中讨论的任何一种或更多种方法的机器的集合。
105.机器1000可以包括处理器1004、存储器/存储装置1006和i/o部件1018,所述处理器1004、存储器/存储装置1006和i/o部件1018可以被配置成例如经由总线1002彼此通信。在示例实施方式中,处理器1004(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1010的处理器1008和处理器1012。术语“处理器”旨在包括多核处理器1004,该多核处理器1004可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图10示出了多处理器1004,但是机器1000可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
106.存储器/存储装置1006可以包括诸如主存储器或其他存储器存储装置的存储器1014以及存储单元1016,存储器1014和存储单元1016两者例如经由总线1002由处理器1004访问。存储单元1016和存储器1014存储体现本文中描述的方法或功能中的任何一种或更多种的指令1010。指令1010还可以在其被机器1000执行期间完全地或部分地驻留在存储器1014内、在存储单元1016内、在处理器1004中的至少一个内(例如,在处理器的高速缓存存储器内)或者在其任何合适的组合内。因此,存储器1014、存储单元1016以及处理器1004的存储器是机器可读介质的示例。
107.i/o部件1018可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器1000中的具体i/o部件1018将取决于机器的类型。例如,诸如移动电话的便携式机器很可能包括触摸输入设备或其他这样的输入机构,而无终端(headless)服务器机器很可能不包括这样的触摸输入设备。将理解,i/o部件1018可以包括图10中未示出的许多其他部件。i/o部件1018根据功能被分组仅为了简化以下讨论,并且该分组决不是限制性的。在各种示例实施方式中,i/o部件1018可以包括输出部件1026和输入部件1028。输出部件1026可以包括视觉部件(例如,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件1028可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
108.在其他示例实施方式中,i/o部件1018可以包括生物识别部件1039、运动部件1034、环境部件1036或定位部件1038连同广泛的其他部件。例如,生物统计部件1039可以包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1034可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1036可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。定位部件1038可以包括位置传感器部件(例如,gps接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
109.可以使用各种各样的技术来实现通信。i/o部件1018可以包括通信部件1040,通信部件1040能够进行操作以经由耦接1024和耦接1222分别将机器1000耦接至网络1037或设备1029。例如,通信部件1040可以包括网络接口部件或其他合适的设备以与网络1037对接。在另外示例中,通信部件1040可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(nfc)部件、部件(例如,低功耗)、部件和经由其他模态提供通信的其他通信部件。设备1029可以是其他机器或各种外围设备中的任何一个外围设备(例如,经由usb耦接的外围设备)。
110.此外,通信部件1040可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1040可以包括射频识别(rfid)标签阅读器部件、nfc智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)代码的多维条形码、aztec代码、数据矩阵、数据符号(dataglyph)、最大编码(maxicode)、pdf417、超代码(ultra code)、ucc rss-2d条形码和其他光代码的光学传感器)或听觉检测部件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信部件1040得到各种信
息,如经由因特网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等。
111.术语表:
112.该上下文中的“载波信号”是指能够存储、编码或携载由机器执行的暂态或非暂态指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这样的指令的通信。可以使用暂态或非暂态传输介质经由网络接口设备并且使用多个公知的传输协议中的任何一个来通过网络发送或接收指令。
113.该上下文中的“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、pda、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
114.该上下文中的“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全局移动通信系统(gsm)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电业务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
115.该上下文中的“短暂的消息”是指可以在时间有限的持续时间内访问的消息。短暂的消息可以是文本、图像、视频等。短暂的消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,该消息都是暂时的。
116.该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的部件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(eeprom))和/或它们的任何合适的组合。术语“机器可读介质”应当被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或更多个处理器执行时使机器执行本文中描述的任何一种或更多种方法。因此,“机器可读介质”指的是单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
117.该上下文中的“部件”是指具有由功能或子例程调用、分支点、api或者对特定处理
或控制功能提供分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置成用于执行本文中描述的某些操作的硬件部件。
118.也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(fpga)或asic。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件而配置,硬件部件就成为被独特地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将理解,可以出于成本和时间考虑来决定在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中机械地实现硬件部件。相应地,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件部件,并且在不同的时刻处构成不同的硬件部件。
119.硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在其通信地耦接到的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器设备以检索所存储的输出并对其进行处理。
120.硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文所述的示例方法的各种操作可以至少部分地由临时地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支
持“云计算”环境中的相关操作的执行或操作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,api)进行访问。某些操作的执行可以分布在处理器之中,不是仅驻留在单个机器内,而是部署在多个机器中。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨若干地理位置分布。
121.该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被用于操作机器的对应输出信号的任何电路或虚拟电路(通过在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是cpu、risc处理器、cisc处理器、gpu、dsp、asic、rfic或其任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
122.该上下文中的“时间戳”指的是识别某个事件何时发生的字符或编码信息的序列,例如,从而给出日期和一天中的时间,有时精确到几分之一秒。
123.在不脱离本公开内容的范围的情况下,可以对所公开的实施方式进行改变和修改。这些和其他改变或修改旨在被包括在本公开内容的范围内,并且在所附权利要求中被表达。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献