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

在中断期间向应用提供自动用户输入的制作方法

2022-06-06 00:32:19 来源:中国专利 TAG:

在中断期间向应用提供自动用户输入


背景技术:

1.在许多计算环境中,中断是有问题的。例如,当用户通过网络正在玩视频游戏或使用另一类型的交互式应用时,网络中断可以使得交互式应用不响应用户的输入。中断本质上也可以是非技术性的,诸如当用户被家庭成员或朋友打断时。解决这样的中断的自动工作取得了有限的成功。


技术实现要素:

2.该发明内容被提供来以简化形式介绍下面在具体实施方式中进一步被描述的一些概念。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用于限制所要求保护的主题的范围。
3.该描述通常涉及用于解决中断的技术,这些中断阻止应用接收用户输入、阻止用户提供输入、和/或阻止用户接收应用输出。一个示例包括可以在计算设备上被执行的方法或技术。该方法或技术可以包括在由用户与交互式应用交互期间检测交互式应用的中断。该方法或技术还可以包括响应于检测到中断而生成自动用户输入并向交互式应用提供该自动用户输入。
4.另一示例包括一种系统,该系统具有硬件处理单元以及存储计算机可读指令的存储资源。在由硬件处理单元执行时,计算机可读指令可以使硬件处理单元检测网络中断,该网路中断至少暂时阻止流交互式应用接收一个或多个实际用户输入。计算机可读指令还可以使硬件处理单元使用先前接收的实际用户输入来生成自动用户输入。计算机可读指令还可以使硬件处理单元响应于检测到网络中断,用自动用户输入替换对流交互式应用的一个或多个实际用户输入。
5.另一示例包括计算机可读存储介质,该计算机可读存储介质存储计算机可读指令,这些计算机可读指令在由硬件处理单元执行时,使硬件处理单元执行动作。这些动作可以包括接收交互式应用的视频输出以及接收由用户提供的对交互式应用的实际用户输入。这些动作还可以包括检测中断,该中断阻止交互式应用接收进一步的实际用户输入。这些动作还可以包括向预测模型提供交互式应用的视频输出和实际用户输入,以及从预测模型获得经预测的用户输入。这些动作还可以包括在中断期间向交互式应用提供经预测的用户输入。
6.上面所列出的示例旨在提供快速参考以帮助读者,而不旨在限定本文中所描述的概念的范围。
附图说明
7.参考附图来描述具体实施例。在这些图中,附图标记的(多个)最左边的数字标识附图标记首次出现的图。在描述和这些图中的不同实例中对相似的附图标记的使用可以指示相似或相同的项目。
8.图1图示了与本概念的一些实现一致的示例游戏环境。
9.图2图示了与本概念的一些实现一致的示例时间线。
10.图3a-图3e图示了与本概念的一些实现一致的示例用户体验。
11.图4图示了与本概念的一些实现一致的示例处理流程。
12.图5图示了与本概念的一些实现一致的示例用户交互模型。
13.图6图示了与本概念的一些实现一致的示例系统。
14.图7图示了与本概念的一些实现一致的示例方法或技术。
具体实施方式
15.概述
16.如所指出的,对于交互式应用(诸如,视频游戏、增强现实应用、或者用户频繁地提供输入以控制应用的其它应用)的用户而言,中断可能是有问题的。对于在线应用,用户设备与应用服务器之间的网络中断可以使应用服务器接收输入太迟而无法有效地使用它们来控制在线应用。另外,网络中断可以使用户设备接收应用服务器的输出(诸如,视频或音频输出)太迟,以至于用户无法有效地响应。在任一情况下,应用体验都受到影响。
17.用于解决应用中断的一种基本方法是在中断期间继续使用中断开始之前接收的最近的输入。然而,这种方法可能对用户的应用体验产生负面影响。例如,最近的输入可能在应用中引起负面的或意外的结果,因为用户没有机会调整他们的输入以响应在中断周期期间所生成的应用输出。
18.更复杂的备选方案可以涉及监视内部应用状态并在中断期间调整内部应用状态以提供更流畅的用户体验。然而,该方法可以涉及大量的开发工作,诸如修改内部应用代码以处理中断和/或向外部中断处理软件提供对于内部应用状态的挂钩。
19.所公开的实现提出了解决上面的问题的用于缓解应用中断的方法。在所公开的实现中,在应用中断期间自动用户输入被用来替换实际用户输入。当中断结束时,控制可以被返回给用户。
20.在一些实现中,自动用户输入可以在不访问内部应用状态的情况下生成。例如,用户交互模型可以使用诸如应用输出和先前接收的用户输入之类的信息来生成自动用户输入,并且由用户交互模型生成的自动用户输入可以在中断期间提供给应用。因此,所公开的实现可以在中断期间向用户提供无缝体验,而无需对应用代码进行修改。
21.另外,所公开的实现可以通过利用自动用户输入来提供逼真的用户体验,该自动用户输入准确地反映在没有中断的情况下特定用户将如何与给定应用交互。相比之下,如下面更详细讨论的,尝试仿真最佳行为而不是经预测的用户行为的方法可能导致不切实际的结果。
22.术语
23.就该文档而言,术语“应用”是指执行特定功能的任何类型的可执行软件、固件、或者硬件逻辑。术语“交互式应用”是指响应于接收的用户输入而执行处理,并且响应于所接收的用户输入而迭代地、频繁地、或者连续地调整应用输出的应用。术语“在线应用”是指通过任何类型的计算机网络或通信链路或通过将应用从一个设备流传输或下载到另一个设备可访问的应用。术语“流应用”是指在第一设备上执行且通过网络或其它通信链路向一个或多个其它设备发送应用输出流的在线应用。其它一个或多个设备可以再现应用输出,例
如使用显示器或音频设备,并且还可以向流应用提供用户输入。
24.术语“中断”是指至少暂时影响或阻止用户与交互式应用的交互的任何情形。例如,中断本质上可以是技术性的,例如网络中断或阻止交互式应用接收实际用户输入和/或阻止用户接收应用输出的其它技术问题。常见的中断可以包括网络条件(诸如,时延)、带宽限制、或者分组丢弃。中断本质上也可以是非技术性的,例如,用户可能由于与朋友或家庭成员的交谈、呼入电话呼叫等而分心。
25.术语“用户交互模型”是指可以用于例如通过生成自动用户输入对与应用的用户交互进行建模的任何类型的机器学习、启发式、或者基于规则的方法。术语“实际用户输入”是指在与交互式应用的交互过程期间由用户实际提供的输入。术语“自动用户输入”是指可以在中断期间代替实际用户输入的机器生成的表示。在一些情况下,可以使用由给定模型输出的自动用户输入而无需修改,而在其他情况下,由模型输出的自动用户输入可以在被提供给交互式应用之前被平滑或以其他方式与先前接收的实际用户输入组合。因此,术语“自动用户输入”涵盖用户交互模型的未修改的输出以及已被平滑或以其他方式与实际用户输入组合的用户交互模型的输出两者。
26.术语“机器学习模型”是指可以通过观察用户与应用之间的过去交互的特性来学习以生成自动用户输入的大范围模型中的任何模型。例如,机器学习模型可以是神经网络、支持向量机、决策树、聚类算法等。在一些情况下,机器学习模型可以使用经标记的训练数据、奖励函数、或者其他机制进行训练,并且在其他情况下,机器学习模型可以通过分析数据而无需明确的标记或奖励进行学习。术语“特定于用户的模型”是指具有至少一个至少部分地针对特定用户已被训练或构建的组件的模型。因此,该术语包括针对特定用户已被完全训练的模型、使用多用户数据而被初始化并调谐到特定用户的模型、以及具有针对多个用户训练的通用组件以及针对特定用户训练或调谐的一个或多个组件的模型。同样地,术语“特定应用模型”是指具有至少一个至少部分地针对特定应用已被训练或构建的组件的模型。
27.术语“神经网络”是指使用节点层来执行特定操作的一种类型的机器学习模型。在神经网络中,节点经由一个或多个边被彼此连接。神经网络可以包括输入层、输出层、和一个或多个中间层。各个节点可以根据预定函数(例如,诸如relu或sigmoid之类的传递函数)来处理它们的相应输入,并且将函数的输出提供给后续层,或者在一些情况下提供给先前层。给定节点的输入可以乘以针对输入与节点之间的边的对应的加权值。另外,节点可以具有也被用于产生输出的单个偏置值。可以应用各种训练过程来学习边缘权重和/或偏置值。
28.神经网络结构可以具有执行不同特定功能的不同层。例如,一个或多个节点层可以共同执行特定操作,例如合并、编码、或者卷积操作。就该文档而言,术语“层”是指共享例如去往或来自外部源或网络中的其它层的输入和输出的一组节点。术语“操作”是指可以由一个或多个节点层执行的功能。
29.示例视频游戏系统
30.以下描述了可以如何在流视频游戏的上下文中采用本发明概念的一些特定示例,其中网络中断可能影响玩家体验。然而,如本文中别处所讨论的,本发明概念不限于视频游戏,不限于流或联网应用,并且不限于解决网络中断。相反,本发明的概念可以在广泛的技术环境中使用,以解决针对各种类型的交互式应用的许多不同类型的中断。
31.图1图示了与所公开的实现一致的示例性游戏环境100。例如,图1图示了应用服务器102、中介服务器104、客户端设备106、以及视频游戏控制器108之间的示例性通信。应用服务器可以执行诸如流视频游戏的交互式应用并生成输出110,输出110可以包括视频,音频和/或触觉输出。应用服务器可以将输出发送到中介服务器,该中介服务器可以将该输出转发到客户端设备106。
32.客户端设备106可以在显示器上显示视频输出并经由扬声器回放音频输出。在视频游戏提供触觉输出的情况下,客户端设备可以将触觉输出转发到视频游戏控制器108(图1中未示出)。视频游戏控制器可以基于从应用服务器接收的触觉输出来生成触觉反馈。另外,视频游戏控制器可以基于用户与视频游戏控制器的各种输入机制的交互来生成实际用户输入112。视频游戏控制器可以将实际用户输入发送到客户端设备,该客户端设备可以将该实际用户输入转发回中介服务器104。
33.在没有中断的情况下,中介服务器104可以简单地充当转达服务器并将实际用户输入112转发到游戏服务器。然而,当检测到网络中断时,中介服务器反而可以向应用服务器提供自动用户输入114。如下面更详细描述的,自动用户输入可以使得应用服务器能够以可以减少或消除用户对中断的感知的方式继续应用处理,从而使一旦中断结束就将用户无缝地重新引入应用体验。
34.示例时间线
35.图2图示了示例性时间线200。时间线200涵盖三个时间段,时间段202发生在网络中断之前,时间段204发生在网络中断期间,时间段206发生在网络中断之后。时间线200图示了所公开的实现可以如何用于解决网络中断,这在图2中经由网络状态表示208指示。
36.在时间段202中,利用实际用户输入210来控制视频游戏。视频游戏可以响应于实际控制器输入和/或内部游戏状态而产生视频输出212、音频输出214、和/或触觉输出216。注意,这些输出不一定以固定速率被提供,尽管视频和音频在一些实现中可以以特定的帧速率被提供。在许多情况下,触觉输出和用户输入尤其是异步的。
37.在时间段204中,网络被中断。就该示例而言,假设中断影响去往用户的业务流和来自用户的业务流两者,因此用户的设备不接收视频游戏输出,并且应用服务器不接收实际用户输入。在中断期间,提供自动用户输入218来替代由于网络中断而不可用的实际用户输入。如下面更详细讨论的,在一些实现中,自动用户输入可以由在网络中断期间访问视频游戏输出的用户交互模型生成。例如,用户交互模型可以具有对应用服务器的本地网络访问权限,并且网络中断可以发生在外部网络上,或者用户交互模型可以在与视频游戏相同的设备上执行。
38.在时间段206中,网络恢复且进一步的实际用户输入被接收并提供给游戏。如下面更详细讨论的,这允许视频游戏以对用户不具有破坏性的方式从网络中断无缝地转换回用户控制。如本文中其他地方所讨论的,一些实现可以平滑或以其他方式将自动用户输入与实际用户输入相结合,以进一步减少网络中断对用户输入的影响。
39.示例用户体验
40.图3a-图3e图示了用户玩驾驶视频游戏的示例性用户体验300。在图3a中,示出了沿道路304移动的汽车302。图3a还示出了方向表示310和触发器表示320,它们表示对驾驶游戏的控制器输入。通常,方向表示传达用于视频游戏控制器上的方向输入机制(例如,用
于操纵汽车的拇指操纵杆)的方向幅度。同样地,触发器表示320传达视频游戏控制器上的触发输入的幅度,例如用于控制汽车的油门。拇指棒和触发器是可以在控制器上提供的“模拟”输入机制的两个示例。术语“模拟”用于指不仅仅是开/关的输入机制。例如,通过改变对模拟输入机制的输入的幅度,用户可以使模拟输入机制产生可以使用大于2的值的范围来数字表示的信号。
41.方向表示310被示为具有以黑色示出的实际接收的方向输入312和以白色示出的自动方向输入314。同样,触发表示320以黑色示出实际接收的触发输入322并以白色示出自动触发器输入324。就以下而言,假设当用户玩驾驶游戏时,自动输入正在被背景中的用户交互模型生成。
42.在图3a中,汽车正在经由实际方向输入312和实际触发输入322被控制,这是由于用户正在用适度的油门将汽车302轻轻地向左侧操纵。由用户交互模型产生的自动方向输入314和自动触发器输入324类似于实际用户输入,但是目前不被用于控制汽车。
43.在图3b和3图c中,汽车302沿道路304继续行进,并且随着用户继续轻轻地将汽车向左侧导航,实际用户输入和自动用户输入稍微变化。汽车继续被实际用户输入控制,因为中断尚未发生。
44.在图3d中,中断发生。就示例而言,假设中断阻止视频游戏接收实际用户输入,但是对用户的视频输出是不受阻碍的。用户需要将汽车302急剧向左转向并降低油门以正确地在道路304中导航转向。然而,最近的实际用户输入是陈旧的,例如,即使用户已调整了他们的拇指棒和触发器输入以加快转向并减小油门,那些实际用户输入还没有被视频游戏接收到。因此,如果使用陈旧的用户输入,则由于陈旧的方向输入的向左幅度太小而无法正确地导航转向,所以汽车将如虚构汽车330所示地偏离道路。
45.此时,自动用户输入可以代替实际用户输入。例如,在图3d中,使用自动方向输入314而不是陈旧的最近接收到的用户输入,并且当自动触发器输入324减小油门以减慢汽车302时,自动方向输入急剧地将汽车转向左侧。因此,因为汽车在中断期间由自动用户输入控制,所以汽车继续沿道路304向下而不偏离道路。图3d还示出了当前的实际用户输入316(影线图案),其受到中断的影响并因此不可用于控制玩家体验。
46.图3e示出了从中断中恢复之后的视频游戏。因为在中断期间使用自动用户输入来控制汽车302,所以当控制被返回给用户时,汽车接近用户期望汽车在道路304上的地方。从用户所接收的实际接收的方向输入312已移动到左边,以显示用户已正确地加快左边的转向。类似地,从用户所接收的实际所接收的触发输入322已减小了油门。
47.因为在中断期间使用的自动用户输入类似于在中断期间由用户提供的实际输入,所以用户不会察觉到对玩游戏体验的显著影响。相反,如果使用最近接收的陈旧用户输入而不是自动输入,则用户可能已经历了碰撞,如与树340碰撞的虚构汽车330所示。
48.示例模型处理流程
49.图4了可图示用于选择性地向应用402提供实际自动输入或自动输入的示例处理流程400。在处理流程400中,实际输入源404向用户交互模型408提供实际用户输入406。用户交互模型408可以使用实际用户输入和/或应用输出410来生成自动用户输入412。还可以将应用输出提供给输出机制414,以用于显示图像或视频、回放音频、产生触觉反馈等。
50.输入判决器416可以选择实际用户输入406或自动用户输入412作为所选择的输入
418提供给应用402。例如,在没有中断的情况下,输入判决器可以向应用提供实际用户输入作为所选择的输入。在中断的情况下,输入判决器可以直接用自动用户输入替换实际用户输入,例如通过输出自动用户输入作为提供给应用的所选择的输入。在其它情况下,输入判决器可平滑或以其它方式组合由用户交互模型提供的自动用户输入与先前接收的实际用户输入,并且将平滑/组合的自动用户输入输出到应用。
51.如下面更详细讨论的,处理流程400可以用于广泛范围的技术环境中。例如,在一些实现中,处理流程的每个部分在单个设备上执行。在其它情况下,处理流程的不同部分在不同设备上执行。图1图示了特定示例,其中例如应用402可以在应用服务器102上,实际输入源404可以是视频游戏控制器108,输出机制414可以由客户端设备106提供,并且用户交互模型408和输入判决器416可以由中介服务器104提供。
52.而且,注意,处理流程400不必依赖于对内部应用状态的访问来确定自动用户输入。如先前建议的,这可能是有用的,因为允许在不修改应用代码的情况下实现所公开的概念。然而,在其它情况下,用户交互模型可以访问内部应用状态并使用该内部应用状态来确定自动用户输入。通常,可采用从cpu或gpu存储器上的原始数据到特定数据结构或中间图形管线级的任何内部游戏状态来确定自动用户输入。例如,驾驶视频游戏可以提供多个不同的模拟驾驶路线,并且用户交互模型可以访问当前驾驶路线的标识符。作为另一示例,驾驶视频游戏可以为用户提供多个不同的车辆模型来驾驶,并且用户交互型号可以访问当前选择的车辆型号的标识符。在用户交互模型无法访问内部游戏状态的实现中,用户交互模型能够从应用输出推断当前驾驶路线或车辆模型,例如通过分析由应用输出的视频。
53.特定示例用户交互模型
54.如上所述,实现用户交互模型408的一种方式是采用机器学习方法。图5图示了与本概念一致的可以用作用户交互模型的基于神经网络的预测模型500。以下描述了可以如何使用基于神经网络的预测模型来预测交互式应用的用户输入的一个特定实现。在以下描述中,以“4”开头的附图标记表示在图4中先前引入的元件,而以“5”开头的附图标记表示在图5中新引入的元件。
55.可以输入实际用户输入406和应用输出410用于预处理502。例如,当通过具有按钮和模拟输入机制的视频游戏控制器提供实际用户输入时,可以经由将按钮表示为布尔值并将模拟输入的值归一化为-1与1之间的值的范围来预处理控制器输入。可以通过降低视频和/或音频输出的分辨率来预处理视频或音频输出,并且也可以将触觉输出归一化到例如-1与1之间的范围。
56.在一些实现中,预处理502维护用户输入和应用输出的相应窗口。例如,以下示例假设一秒的时间窗口。预处理可以包括执行实际用户输入到视频和/或音频数据的相应帧的时间对准。另外,触觉输出可以与实际用户输入时间对准。该过程产生输入窗口504和输出窗口506。
57.输入窗口504可以被输入到全连接神经网络508,而输出窗口506可以被输入到卷积神经网络510。全连接神经网络(例如,从输入窗口提取的特征的向量空间表示)和卷积神经网络(例如,从输出窗口提取的特征的向量空间表示)的输出可以被输入到循环神经网络512,诸如长期短期记忆(“lstm”)网络。
58.循环神经网络512可以输出嵌入514,嵌入514可以表示向量空间中的用户输入和
应用输出。嵌入可以被馈回到循环神经网络(如箭头513所示)并输入到另一个全连接的网络516。注意,一些实现可以采用多个循环神经网络,例如,用于处理全连接网络508的输出的第一循环神经网络和用于处理卷积神经网络510的输出的第二循环神经网络。
59.全连接网络516可以将由循环神经网络输出的嵌入映射到自动用户输入412。嵌入表示由全连接网络512用来确定自动用户输入412(例如,经预测的未来用户输入)的关于用户输入和应用输出的信息。
60.另外,自动用户输入412也可以被输入到预处理502并如上所述地进行预处理。因此,对于任何给定的时间步长,预处理的输入是例如由输入判决器416为该时间步长选择的输入。因此,在任何给定时间,输入窗口504可以包括所有实际用户输入、所有自动用户输入(例如,假设中断至少与输入窗口一样长)、和/或实际用户输入和自动用户输入的组合。
61.具体模型处理示例
62.如所指出的,预处理502可以作为一系列时间步骤来执行。例如,一个方便的间隔可以是使用标准化的视频帧速率且每个视频帧具有一个时间步长。在60hz的视频帧速率下,在给定的一秒窗口内给出60帧。每个输入窗口504可以具有60个相应实际用户输入集或自动用户输入集,并且每个输出窗口506可以具有60个相应应用输出集。如所指出的,输入窗口和输出窗口可以彼此时间对准。
63.通常,实际用户输入或自动用户输入和应用输出可以被预处理以获得用于分别输入到全连接神经网络508和卷积神经网络510的特征。因此,在一些情况下,预处理502可以涉及提取可以用于区分输入窗口504和输出窗口506的特征,以准确地预测下一时间步的用户输入。例如,预处理可以包括从当前时间步长的实际用户输入或经预测的用户输入中提取唯一性特征,其中唯一性特征指示用户输入是否已从先前时间步长中的用户输入发生改变。
64.一些用户输入,诸如由视频游戏控制器提供的那些,可以表示为向量。例如,向量中的特定条目可以将不同的按钮状态表示为布尔开/关值,而向量中的其它条目可以表示模拟输入机制的幅度,例如触发器状态和施加到拇指棒的方向压力。向量还可以包括指示自先前时间状态以来是否有任何值改变的条目。该向量表示可以用于实际用户输入和经预测的用户输入。
65.在使用一秒窗口将用户输入和应用输出离散化且时间对准到60hz视频帧速率的实现中,基于神经网络的预测模型500中的每个单独网络可以同时处理60个堆叠的输入/输出向量,每个向量表示16.67毫秒的时间。循环神经网络512还可以保持内部循环状态,该内部循环状态可以用于表示循环网络的先前输出,并且该内部循环状态可以包括当前输入/输出窗口中不存在的信息。因此,循环神经网络512可以有效地对比预处理502所提供的相应时间窗口的持续时间更长的输入/输出数据序列进行建模。
66.而且,注意一些实现可以平滑或以其他方式将自动用户输入412与先前的实际或经预测的用户输入组合,以减少抖动和/或游戏不响应于其输入的用户感知。而且,注意基于神经网络的预测模型500可以预测最终的用户输入值或相对于最后看到的用户输入的增量。
67.模型训练与架构
68.以下讨论提供了关于如何训练诸如基于神经网络的预测模型500的模型以生成自
动用户输入的细节。以下训练方法可以应用于各种其它类型的机器学习模型类型,包括其它神经网络结构以及除神经网络之外的模型类型。
69.训练模型的一种方式涉及使用模仿学习技术。例如,s.ross,g.j.gordon,和j.bagnell在2011年的aistats“将模仿学习和结构化预测简化为无遗憾在线学习”中提供了dagger算法。dagger提出了用于学习策略以模仿用户的迭代方法,其中策略将经预测的用户动作(例如,用户输入)指定为先前接收到的信息的函数。作为另一示例,s.ross和j.bagnell在2014年arxiv:1406.5979“经由交互式无遗憾学习进行强化和模仿学习”中提供了aggrevate算法。aggrevate是dagger的扩展,它使用“cost-to-go”损失函数来通知训练,而不是二进制0或1分类损失。
70.在一些实现中,可以为每个用户和/或为每个应用训练单独的模型。虽然该方法可以最终提供能够精确经预测的用户输入的高质量模型,但是为每个用户和每个应用从头开始生成新模型可能是耗时的。另外,该方法通常涉及计算资源的大量使用,例如用于存储单独模型的存储资源和为每个用户训练单独模型的处理器时间。此外,该方法依赖于为每个用户和/或每个应用获得大量的训练数据。结果,直到用户与应用广泛交互之后,用户才可能收到精确预测模型的好处。换句话说,使用这种方法开发的模型对于新用户而言无法快速地“达到速度”。
71.另一种高级方法涉及针对多个用户训练模型,然后使该模型的一部分或全部适应特定用户。为此,可以采用几种不同的技术。一种方法涉及为许多不同用户预训练模型,然后针对新用户调整整个模型,例如通过针对新用户使用单独的训练时期来调整预训练的模型。在这种方法中,每个用户最终以他们自己的完整的,用户特定的模型结束,但是用于其他用户的用户数据被用于加速模型的训练。备选地,模型本身可以具有某些通用组件,诸如针对多个用户训练的一个或多个神经网络层,以及一个或多个特定于用户的组件,诸如为每个用户专门训练的一个或多个单独的层。
72.元学习方法也可以被采用,例如,通过从一大组用户学习的权重集开始,然后针对新用户定制这些权重。有关元学习方法的背景信息可在以下位置找到:munkhdalai等人,“条件转移神经元的快速适应”,第35届机器学习国际会议论文集,2018年,第1-12页,munkhdalai等人,“元网络”,第34届国际机器学习会议论文集,2017年,第1-23页,koch等人,“用于一次性图像识别的连体神经网络”,第32届机器学习国际会议论文集,2015年,第37卷,第1-8页,santoro等人,“使用记忆增强神经网络进行元学习”,第33届机器学习国际会议论文集,2016年,第48卷,第1-9页,vinyals等人,“一次性学习的匹配网络”,第30届神经信息处理系统会议论文集,2016年,第1-9页,以及finn等人,“用于快速适应深度网络的模型无关元学习”,第34届机器学习国际会议论文集,2017年,第1-13页。这些方法有助于允许所公开的技术针对新用户快速扩展,从而减少和/或潜在地消除用户受到中断的负面影响的情况。另外,这些方法可以快速适应用户技能和/或应用难度的变化,例如,当用户在视频游戏中变得更好且视频游戏变得相应地更困难时,允许预测模型适应。
73.在另一的实现中,可以使用辅助训练任务来训练模型。例如,可以训练模型来预测哪个用户生成给定的输入流,或者从输入流预测给定的用户的技能等级。可以在这些目标上限定奖励函数,其中模型获得用于正确标识生成输入流的用户或用户的技能等级的奖励。通过使用从具有不同特征(例如,技能等级)的多个用户获得的输入数据来训练用于这
种辅助任务的模型,模型可以学习如何区分不同用户。随后,当新用户开始玩家体验时,以这种方式训练的模型可以具有推断该新用户与已经为其训练了模型的一个或多个其他用户相似的能力。
74.模型训练可以使用各种数据源。例如,可以基于一个用户或多个用户与该应用交互的先前的实例来离线训练给定模型。在其它情况下,当一个或多个用户与应用交互时,可以在线训练模型。在给定应用会话期间所接收的实际用户输入可以用作模型的标记的训练数据。因此,当给定的交互式应用执行且用户与该应用交互时,模型可以生成经预测的用户输入,将它们与实际用户输入进行比较,并且将错误传播回模型以改进模型。换句话说,当用户与应用交互时,可以训练模型来模仿用户。
75.在一些情况下,在中断之后,可以接收预期用于中断周期的实际用户输入。例如,具有实际用户输入的分组可以在晚些时候被递送,例如在自动用户输入已被替换为实际用户输入之后。虽然中断周期的实际用户输入可以为了控制应用而被丢弃,但是中断周期的实际用户输入仍然可以用于训练目的。
76.另外,给定模型的各个部分可以离线训练和/或与模型的其余部分分开训练。例如,在一些实现中,基于神经网络的预测模型500的卷积神经网络510可以使用视频输出来训练,即使在没有用户输入的情况下。例如,可以使用如上所述的辅助训练任务或重建或掩蔽任务来训练卷积神经网络。预训练的卷积神经网络可以与其它层一起被插入到较大的神经网络结构中,然后可以使用在一个或多个用户与应用交互时获得的输入和输出一起训练整个网络结构。这可以允许神经网络的未经训练的组件比与模型的其余部分一起训练卷积神经网络从头学习更快地学习。
77.所公开的概念也可以用于大范围的模型体系结构。通常,模型具有的上下文越多,模型可以越准确地经预测的用户输入。因此,例如,使用较长的输入/输出窗口通常可以提高经预测的准确性。另一方面,使用较长的输入/输出窗口导致模型的相应更多的输入数据,这可以增加训练时间并还在运行时引入计算延迟。为了效率的目的,一些实现可以采用备选的模型结构,以允许模型具有更多的上下文。例如,可以采用膨胀的因果卷积层的堆叠,如oord等人2016年的arxiv:1609.03499 1-15“wavenet:原始音频的生成模型”中所讨论的,和/或可以使用自回归的层次结构模型,如mehri等人在“samplernn:无条件的端到端神经音频通用模型”,第5届国际学习表示会议论文集,2017年,第1-11页中所讨论的。
78.而且,注意一些实现可以采用预测模型内的输入判决,而不是作为单独的功能。例如,预测模型可以学习何时用经预测的用户输入替换实际用户输入,例如,使用描述网络条件(例如,时延、带宽、丢包等)的附加的特征。同样地,预测模型可以学习将经预测的用户输入与实际用户输入组合以减少中断对用户的影响。例如,可以使用指示觉察到的用户中断的反馈来训练预测模型,并且学习以最小化或缓解觉察到的中断的方式平滑或以其他方式组合实际的和经预测的用户输入。
79.输入判决
80.在一些实现中,可以使用一个或多个触发标准来确定何时采用自动用户输入。例如,返回参考图4,可以使用一个或多个触发标准来确定输入判决器416是选择实际用户输入406还是选择自动用户输入412。例如,一种方法是限定阈值时间段,例如100毫秒,并且每当在阈值时间量内没有接收到实际用户输入时选择自动用户输入。
81.考虑如图1中所示的联网场景,网络中断可以阻止应用服务器102接收到实际用户输入。网络中断是由各种基本情况引起的,诸如接收太晚的分组、无序所接收的分组、和/或在网络上丢弃并因此根本未所接收的分组。解决网络中断的一种方式是当中介服务器104在阈值时间内没有从客户端设备接收到分组时替换自动用户输入。在一些情况下,客户端可以以规则的间隔(例如,10毫秒)发送心跳信号,以允许中介服务器将网络中断与用户仅仅不操纵控制器108的情况区分开。
82.在另外的实现中,可以针对不同的用户和/或不同的应用来调整阈值周期。例如,用户对中断的敏感度可以基于用户技能或应用类型而变化。具体考虑视频游戏,专家用户可能倾向于注意到比新手用户更短的中断,或者一个视频游戏的玩家可能倾向于注意到另一视频游戏的玩家没有注意到的相关的短中断(例如,50毫秒)。
83.在其它实现中,阈值可以取决于视频帧速率,例如,阈值可限定为三个帧,或在60hz帧速率下约50毫秒。另外的实现可以学习阈值作为不同应用和/或不同用户的用户交互模型的一部分。
84.此外,注意术语“网络中断”可以包括流量未被完全阻止的情形。例如,网络“抖动”或数据分组的时间延迟的变化会显著影响用户对交互式应用的体验。在一些情况下,当抖动超过预定的阈值(例如,50毫秒)时,可采用自动用户输入。可以使用与实际用户输入相关联的时间戳来检测抖动。
85.注意,网络中断可以是双向的,它们影响到应用的实际用户输入流以及对用户设备的应用输出流。然而,在其它情况下,网络中断仅影响特定方向上的业务流。例如,网络中断可能阻止接收实际用户输入而不影响对用户的应用输出流。相反,网络中断可能阻止应用输出到达用户而不影响实际用户输入流到应用。
86.自动用户输入可以用于解决任何类型的网络中断。例如,考虑实际用户输入不受网络中断影响,但网络中断在阈值时间量阻止应用输出到达用户的情形。即使实际用户输入可用于这种类型的网络中断,在某些情况下,用自动用户输入代替在中断期间所接收的实际用户输入仍然是值得的。因为用户在中断期间没有接收到应用输出,所以用户没有机会将其输入调整为改变应用输出。在这种情况下,自动用户输入可以更准确地反映在中断没有阻止应用输出到达用户的情况下用户所提供的内容。
87.在一些实现中,输入判决器416还可以在中断结束之后采取校正动作。例如,假设输入判决器已用自动用户输入替换多个先前的实际用户输入,并且这些实际用户输入随后在中断结束之后到达。还假设自动用户输入比晚的实际用户输入更急剧地操纵汽车。在一些实现中,这可以通过调整随后接收的实际用户输入来校正,以在中断之后的一段时间内较不急剧地操纵汽车,以补偿自动用户输入与较晚的实际用户输入之间的差异。通过这样做,汽车的位置可以更接近地跟踪汽车在没有中断的情况下的位置。
88.备选实现
89.以上主要使用针对特定类型的交互式应用(例如,流视频游戏)、特定类型的中断(例如,网络中断)、和特定类型的自动用户输入(例如,使用机器学习模型而生成的经预测的控制器输入)的实例来解释本概念。然而,本概念可用于许多不同的交互式应用类型,以使用许多不同类型的自动用户输入来解决许多不同的中断类型,如下面更详细讨论的。
90.首先采用应用类型,视频游戏仅仅是交互式应用的一个示例。其他示例包括虚拟
或增强现实应用,教育或训练应用等。例如,考虑用户学习如何驾驶车辆的多用户驾驶模拟器。与视频游戏一样,在驾驶模拟器的中断期间,最好预测实际的用户行为而不是最佳的用户行为。这可以提供更逼真的体验,例如,其中两个驾驶员都可能做出导致模拟事故的错误。如果中断发生且使用模型来生成最佳输入而不是预测逼真的用户输入的模型,则可以避免崩溃,从而给予用户错误的安全感并降低模拟的训练值。
91.作为另一例子,考虑自动库存控制应用,它不断地发出代替商品的订单。在一些情况下,中断可以阻止库存控制应用在延长的时间段(例如,过夜)内知道用户订单。使用经预测的用户订单来仿真在中断时段期间库存如何改变可以使得这样的应用能够缓解中断的影响,例如通过确保在工厂中有足够的部件可用来使得生产能够基于经预测的而不是实际的用户订单继续。
92.作为又一示例,考虑例如用于救灾或医疗应用的半自主机器人。通常,这种机器人可以由远程定位用户控制。在一些情况下,这种机器人可以在具有多星卫星所接收的远程位置中操作,并且当网络中断发生时利用本地预测模型来接管远程定位的用户。在一些情况下,这种类型的应用可以受益于使用针对最佳行为而训练的模型而不是仿真特定用户。
93.另外,所公开的实现可以用于解决除网络中断之外的其它类型的中断。例如,一些实现可以例如通过检测传入消息或电话呼叫,使用客户端设备上的陀螺仪或加速度计,或简单地在阈值时间量内缺少对输入机制的输入来检测用户何时从交互式应用转移。可以通过在中断期间向交互式应用提供自动用户输入来缓解任何这些中断中。
94.另外,所公开的实现可以用于为可能具有身体损伤的用户提供增强的体验。考虑具有保持操纵杆或其它输入机制稳定的困难时间的用户。一些实现可以将颤动或其他抖动移动视为中断和平滑,或者以其他方式将用户的实际输入与经预测的用户输入组合以缓解用户的损伤对其应用体验的影响。
95.作为另一示例,考虑特定设备上的内部中断。例如,考虑在不同时间片中运行第一虚拟机和第二虚拟机的单个物理服务器。如果第一虚拟机正在运行交互式应用,则当交互式应用当前未在处理器上活动时,在给定时间片内可能接收到用户输入。先前的技术可能已在存储器中缓冲了实际用户输入,直到上下文从第二虚拟机切换到第一虚拟机。使用所公开的技术,可以丢弃在第一虚拟机不活动时的时间片期间发生的实际用户输入,并且一旦第一虚拟机获得处理器,就可以生成自动用户输入并将其提供给交互式应用。因此,可以节省存储器,因为在第一虚拟机不活动的时间片期间不需要缓冲器来保存实际用户输入。
96.作为另一示例,自动用户输入可以用于压缩目的。例如,在图1中所示的示例中,客户端设备106可以丢弃某些用户输入,例如,跳过每隔一个的用户输入且不将它们发送到中介服务器104。中介服务器可以用自动用户输入代替每个其他的实际用户输入。这种方法可以节省网络带宽,同时仍然提供令人满意的用户体验。
97.作为另一压缩示例,代替完全丢弃实际用户输入,一些实现可以丢弃某些实际用户输入的一部分,例如,向中介服务器发送实际用户输入的某个数目(例如,三个)最高阶比特,并且让中介服务器用用户交互模型408填充剩余比特(例如,对于16比特输入为13比特)。又一压缩示例可以在用户设备上采用预测模型的另一实例。用户设备可以计算每个实际用户输入与对应的经预测的输入之间的差异,并且将该差异发送到中介服务器,由于在中介服务器上运行相同的预测模型,因此中介服务器可以从该差异导出实际用户输入。因
为经预测的用户输入与实际用户输入之间的差异通常相对较小,所以在网络上发送该信息所需的比特比整个实际用户输入要少。上述压缩技术可以被视为有意引入预编程中断以减少网络业务量的机制。
98.在一些情况下,预编程中断可以用于节省例如视频游戏控制器上的电池寿命。例如,视频游戏控制器可以休眠特定的时间量,例如50毫秒,唤醒,检测输入,并且每次唤醒时发送新的控制集。中介服务器104可以使用自动输入来填充休眠间隔期间的任何间隙。
99.作为另一示例,自动用户输入可以用于抢占式调度或加载应用代码。例如,假设如果用户执行特定动作,诸如成功地实现视频游戏中的目标或在驾驶模拟中猛击汽车,则给定的应用模块将被加载到存储器中。一些实现可以预测用户的未来输入是否可能执行该动作。如果是,则该动作可以用作交互式应用开始将该模块加载到存储器中或在接收用户的实际输入之前调度该模块以供执行的触发器。在这种情况下,自动用户输入不一用于控制应用,而是选择性地预先执行某些处理,例如将代码或数据从存储器加载到内存中或由操作系统通知调度决定。在一些情况下,用户交互模型可以维护经预测的用户输入的未来窗口,例如500毫秒,并且使用该窗口中的经预测的用户输入来选择性地加载和/或调度应用代码。
100.此外,所公开的实现可以在除了如上所述的客户端/服务器场景之外的场景中使用。例如,对等游戏可以涉及两个对等设备之间的通信。当对等设备之间的通信受损时,例如设备短暂地超出诸如蓝牙的短距离无线连接的范围,可以采用自动用户输入来提供令人满意的用户体验。因此,在该示例中,用于选择自动而不是实际用户输入的触发标准可以涉及短距离无线连接的特性,诸如信号强度或吞吐量。而且,注意这可能导致两个用户在对等游戏被中断的时间期间察觉到彼此的经预测的版本。该方法可以改进除了其输入正被经预测的用户之外的用户的体验,例如,如果针对第一用户的经预测的用户输入在中断期间被替换,则从在对等游戏中观看第一用户的表示的第二用户的视角来看,中断被缓解。
101.所公开的实现也可以在单个设备上使用。例如,可以在游戏控制台或其他设备上提供用户交互模型。可以在设备上提供输入判决器,以选择交互式应用是接收实际用户输入还是接收自动用户输入。例如,在一些实现方式中,输入判决器可以使用诸如磁盘吞吐量、存储器利用率、或者处理器利用率的标准来标识对交互式应用的用户输入可能被延迟的实例,并且在这些实例中向交互式应用提供自动用户输入。
102.还注意到,虽然一些实现可以使用机器学习的用户交互模型,但是其他实现可以利用其他类型的用户交互模型。例如,在驾驶游戏中,用户交互模型可以为沿驾驶路线的每个位置提供预先计算的方向或油门输入,其中预先计算的输入是静态的而不是特定于用户的。这些预先计算的输入可以代替中断期间的实际用户输入。与使用预测模型一样,用户的先前输入可以在运行时被平滑或以其它方式与路线上给定位置的预定的用户输入组合。
103.另外,一些实现可以预测应用输出以及用户输入。例如,回想网络中断并不总是双向的。先前,注意到自动用户输入的替代可以用于缓解阻止用户接收应用输出的网络中断。备选地,一些实现可以预测应用输出并在中断期间向用户提供经预测的应用输出。在这种情况下,可以使用实际用户输入,因为在中断期间,用户响应于经预测的应用输出而不是响应于“冻结的”应用输出来提供这些输入。
104.示例系统
105.本概念可以在各种技术环境中和在各种设备上实现。图6示出了其中可以采用本概念的示例系统600,如下面更详细讨论的。如图6中所示,系统600包括上面关于图1介绍的应用服务器102、中介服务器104、客户端设备106、和视频游戏控制器108。系统600还包括客户端设备610。客户端设备106经由本地无线链路606连接到视频游戏控制器108。客户端设备106和客户端设备610两者经由广域网620连接到中介服务器104。中介服务器104经由局域网630连接到应用服务器102。
106.图6中所示的客户端设备和服务器的某些组件在本文中可以用括号中的附图标记来指代。就以下描述而言,括号(1)指示客户端设备106上给定组件的出现,(2)指示客户端设备610上给定组件的出现,(3)指示中介服务器104上的出现,以及(4)指示应用服务器102上的出现。除非标识给定组件的特定实例,否则本文档一般将涉及不带括号的组件。
107.通常,图6中所示的设备可以具有相应处理资源612和存储资源614,这将在下面更详细地讨论。该设备还可以具有使用处理和存储资源来执行本文中所论述的技术的各种模块,如下面更详细论述。
108.视频游戏控制器108可以包括控制器电路602和通信组件604。控制器电路可以将由诸如按钮或模拟输入机制的各种控制器机制所接收的输入数字化。通信组件可以通过本地无线链路606将数字化的输入传送到客户端设备106。客户端设备106上的接口模块616可以获得数字化的输入并通过广域网620将其发送到中介服务器104。
109.客户端设备610可以提供控制器仿真器622。控制器仿真器可以在客户端设备的触摸屏上显示虚拟控制器。经由虚拟控制器所接收的输入可以通过广域网被发送到中介服务器104。
110.中介服务器104可以通过广域网620从客户端设备106或客户端设备610接收具有实际控制器输入的分组。中介服务器上的输入判决器416可以确定是通过局域网630将这些实际的控制器输入发送到应用服务器102,还是发送经由用户交互模型408生成的自动用户输入。例如,输入判决器可以在网络中断期间用自动用户输入替换实际用户输入,并且在通过向应用服务器提供随后接收的实际用户输入来解决网络中断时停止替换。
111.交互式应用642可以处理所接收的实际的或自动用户输入并生成相应应用输出。交互式应用可以通过局域网630将输出发送到中介服务器104,中介服务器104可以使用输出来生成进一步的自动用户输入。另外,中介服务器可以通过广域网620将输出转发到客户端设备106或客户端设备610。
112.客户端设备106和/或客户端设备610可以显示视频输出并回放音频输出。如果应用输出包括触觉反馈,则客户端设备106可以通过本地无线链路606向视频游戏控制器108发送触觉信号,并且视频游戏控制器可以基于所接收的信号来产生触觉输出。如果提供给客户端设备610的输出包括触觉信号,则客户端设备610可以经由控制器仿真器622在客户端设备自身上生成触觉输出。
113.示例方法
114.图7图示了与本概念一致的可以用于选择性地向应用提供实际的或自动用户输入的示例方法700。如本文中别处所论述,方法700可在许多不同类型的设备上实现,例如,通过一个或多个云服务器、通过诸如膝上型计算机、平板计算机、或者智能电话等客户端设备,或通过一个或多个服务器、客户端设备等的组合。
115.方法700开始于框702,其中框702处接收实际用户输入。例如,经由客户端设备,经由诸如视频游戏或虚拟现实控制器之类的专用控制器,或者通过用于向应用提供用户输入的任何其他适当机制来接收实际用户输入。
116.方法700在框704处继续,其中框704处接收应用输出。如所指出的,应用输出可以包括由交互式应用产生的视频、音频、和/或触觉反馈。
117.方法700在框706处继续,其中在框706处生成自动用户输入。例如,当用户与应用交互时,自动用户输入可以由用户交互模型生成。备选地,自动用户输入可以在用户交互之前生成,例如通过预先计算的自动用户输入。
118.方法700在判定框708处继续,其中框708处确定是否中断已发生。如所指出的,中断可以包括网络中断、呼入电话呼叫、用户不活动时段、预编程的中断等。
119.如果在框708没有检测到中断,则方法700继续到框710,其中框710将实际用户输入提供给应用。方法700继续回到框702,并且可以执行该方法的另一迭代。
120.如果在框708处检测到中断,则方法700继续到框712,其中框712向应用提供自动用户输入。方法700继续回到框704,其中接收附加的应用输出。方法700继续到块706,其中例如使用在中断之前的所接收的实际用户输入、在中断之前或期间所接收的应用输出、和/或在中断之前或期间生成的自动用户输入来生成附加的自动用户输入。方法700可以通过框704、706、708、和712迭代直到中断结束。
121.注意,在一些实现中,框706可以由在交互式应用的正常操作期间在后台执行的用户交互模型来执行。在其他实现中,用户交互模型可以在正常操作期间是不活动的,并且在中断期间被调用。
122.而且,回想一些中断可能影响实际用户输入以及应用输出,而其它中断仅影响应用输出或实际用户输入,而不影响两者。以上方法700的描述对应于影响实际用户输入而非应用输出的中断。然而,如前所述,也可以在其它类型的中断期间向应用提供自动用户输入。
123.设备实现方式
124.如上面参考图6所指出的,系统600包括多个设备,包括客户端设备106、客户端设备610、中介服务器104、和应用服务器102。还应该注意的是,并非所有的设备实现都可以被图示,并且从上面和下面的描述中,其他设备实现对于本领域技术人员而言应该是明显的。
125.本文中所使用的术语“设备”、“计算机”、“计算设备”、“客户端设备”、和/或“服务器设备”可以指具有一定量的硬件处理能力和/或硬件存储器/内存器能力的任何类型的设备。处理能力可以由一个或多个硬件处理器(例如,硬件处理单元/核)提供,这些硬件处理器可以执行计算机可读指令以提供功能。计算机可读指令和/或数据可以存储在存储资源上。本文中所使用的术语“系统”可以指单个设备、多个设备等。
126.存储资源可以在与其相关联的相应设备的内部或外部。存储资源可以包括易失性或非易失性存储器、硬盘驱动器、闪存设备、和/或光学存储设备(例如,cd、dvd等)等中的任何一个或多个存储器。在一些情况下,系统600的模块被提供为可执行指令,可执行指令被存储在持久存储器设备上,被加载到随机存取存储器设备中,并且由处理资源从随机存取存储器中读取以用于执行。
127.如本文中所使用的,术语“计算机可读介质”可以包括信号。相反,术语“计算机可
读存储器介质”不包括信号。计算机可读存储器介质包括“计算机可读存储器设备”。计算机可读存储器设备的示例包括易失性存储器介质(例如ram)和非易失性存储器介质(例如硬盘驱动器、光盘、和闪存等)。
128.在一些情况下,设备被配置有通用硬件处理器和存储资源。在其它情况下,设备可以包括片上系统(soc)类型设计。在soc设计实现中,由设备提供的功能可以集成在单个soc或多个耦合的soc上。一个或多个相关联的处理器可以经配置以与共享资源(例如,内存器、存储器等)和/或一个或多个专用资源(例如,经配置以执行某些特定功能的硬件块)协调。因此,如本文中所使用的术语“处理器”、“硬件处理器”、或者“硬件处理单元”还可以指代中央处理单元(cpu)、图形处理单元(gpu)、控制器、微控制器、处理器核心、或者适合于在常规计算架构以及soc设计两者中实施的其它类型的处理设备。
129.备选地或附加地,本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpgas)、专用集成电路(asics)、专用标准产品(assps)、片上系统系统(socs)、复杂可编程逻辑器件(cplds)等。
130.在一些配置中,本文中所讨论的任何模块/代码可以用软件、硬件、和/或固件来实现。在任何情况下,模块/代码可以在设备的制造期间提供,或者由准备将设备出售给最终用户的中介提供。在其它情况下,最终用户可以稍后安装这些模块/代码,诸如通过下载可执行代码并将该可执行代码安装在对应的设备上。
131.还要注意,设备通常可以具有输入和/或输出功能。例如,计算设备可以具有各种输入机制,诸如键盘、鼠标、触摸板、语音识别、手势识别(例如,使用深度相机,诸如立体或飞行时间相机系统、红外相机系统、rgb相机系统或使用加速计/陀螺仪、面部识别等)。设备还可具有各种输出机制,例如打印机、监视器等。
132.还要注意,本文中所描述的设备可以以独立或协作的方式来实现所描述的技术。例如,本文中所描述的方法和功能可在单个计算设备上执行和/或分布在通过(多个)网络620和/或630通信的多个计算设备上。
133.另外,一些实现可以在物联网(iot)上下文中采用所公开的任何技术。在这样的实现中,家用电器或汽车可以提供实现系统600的模块的计算资源。还如所提到的,一些实现可以用于虚拟或增强现实应用,通过在头戴式显示器、手持虚拟现实控制器上执行所公开的功能中的一些或全部、或者使用诸如深度传感器的技术来经由由用户执行的物理手势获得用户输入。
134.以上描述了各种设备示例。下面描述附加的实例。一个示例包括由计算设备执行的方法,该方法包括生成针对交互式应用的自动用户输入,在用户与交互式应用交互期间检测对交互式应用的中断,以及响应于检测到中断,向交互式应用提供自动用户输入。
135.另一示例可以包括任何以上和/或以下示例,其中该方法还包括生成与交互式应用的用户交互的用户交互模型,以及用用户交互模型生成自动用户输入。
136.另一示例可以包括任何以上和/或以下示例,其中用户交互模型可以是针对用户的用户特定模型。
137.另一示例可以包括任何以上和/或以下示例,其中用户交互模型可以是针对交互式应用的特定于应用的模型。
138.另一示例可以包括任何以上和/或以下示例,其中该方法还包括获得在网络中断之前的实际用户输入,获得在网络中断之前的交互式应用的输出,以及将实际用户输入和输出输入到用户交互模型。
139.另一示例可以包括任何以上和/或以下示例,其中用户交互模型包括机器学习模型。
140.另一示例可以包括任何以上和/或以下示例,其中该方法还包括使用在网络中断期间丢弃的由用户提供的实际用户输入以及在所述中断结束之后接收的实际用户输入来训练机器学习模型。
141.另一示例可以包括任何以上和/或以下示例,其中在不向用户交互模型提供交互式应用的内部应用状态的情况下执行该方法。
142.另一示例可以包括任何以上和/或以下示例,其中交互式应用包括在线应用。
143.另一示例可以包括任何以上和/或以下示例,其中中断包括网络中断。
144.另一示例可以包括任何以上和/或以下示例,其中该方法还包括当在阈值时间段内没有接收到具有实际用户输入的分组时检测网络中断。
145.另一示例可以包括任何以上和/或以下示例,其中在线应用包括流视频游戏。
146.另一示例可以包括任何以上和/或以下示例,其中自动用户输入包括针对视频游戏控制器的经预测的控制器输入。
147.另一示例可以包括任何以上和/或以下示例,其中经预测的控制器输入替代由视频游戏控制器上的模拟输入机制提供的实际用户输入。
148.另一示例包括系统,该系统包括硬件处理单元和存储计算机可读指令的存储资源,该计算机可读指令在由硬件处理单元执行时,使硬件处理单元:检测网络中断,该网络中断影响流交互式应用对一个或多个实际用户输入的接收,使用先前接收的对所述流交互式应用的实际用户输入,生成自动用户输入,以及响应于检测到网络中断,用自动用户输入替换对应流交互式应用的一个或多个实际用户输入。
149.另一示例可以包括任何以上和/或以下示例,其中计算机可读指令在由硬件处理单元执行时,使硬件处理单元在没有网络中断的情况下,将接收到的实际用户输入转发到执行流交互式应用的计算设备,并且在网络中断期间将自动用户输入转发到执行流交互式应用的计算设备。
150.另一示例可以包括任何以上和/或以下示例,其中计算机可读指令在由硬件处理单元执行时,使硬件处理单元使用流交互式应用的输出来生成自动用户输入。
151.另一示例可以包括任何以上和/或以下示例,其中计算机可读指令在由硬件处理单元执行时,使得硬件处理单元检测到网络中断已被解决且进一步的实际用户输入已被接收,并且响应于检测到网络中断已被解决,停止将自动用户输入替换为进一步的实际用户输入。
152.另一示例包括存储计算机可读指令的计算机可读存储介质,所述计算机可读指令在由硬件处理单元执行时,使所述硬件处理单元执行以下动作:接收交互式应用的视频输出,接收由用户提供的对交互式应用的实际用户输入,检测中断,该中断影响交互式应用对进一步的实际用户输入的接收,向预测模型提供交互式应用的视频输出和实际用户输入,从预测模型获得经预测的用户输入,以及在中断期间向交互式应用提供经预测的用户输
入。
153.另一示例可以包括任何以上和/或以下示例,其中动作还包括检测中断已停止,以及响应于检测到中断已停止,向交互式应用提供随后接收的实际用户输入。
154.结论
155.尽管已以结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求中所限定的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式而被公开的,并且本领域技术人员将认识到的其他特征和动作旨在处于权利要求的范围内。
再多了解一些

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

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

相关文献