用于三维环境的集成化输入输出的制作方法

文档序号:31371699发布日期:2022-09-02 22:44阅读:61来源:国知局
用于三维环境的集成化输入输出的制作方法

1.本技术涉及一种三维环境,具体涉及用于提供三维环境的多种输入输出模式的方法、系统以及计算机可读介质。


背景技术:

2.在线视频会议通常涉及用户界面,其呈现参与者的缩略图或全屏视频图像、参与者的化身或参与者的其他图形表示。这样的视频会议不能为参与者提供完全身临其境的体验。
3.例如,如果参与者只是观看具有其它参与者的“浮动头像”和基本音频的显示屏幕,则用户/参与者难以保持在对话中的完全参与和兴趣。
4.此外,参与者的环境化周边和/或参与者的用户设备提供的输入/输出类型可能使参与者难以有效地参与在线会议。例如,参与者可能在他/她的用户设备上没有摄像头,因此其他参与者无法查看该参与者。


技术实现要素:

5.根据一种实施方式,提供了一种运行三维(threedimensional,3d)环境的方法。所述方法包括:从第一用户接收第一输入信号,以及使用所述第一输入信号用于在所述3d环境中代表所述第一用户的第一化身的动画,其中所述第一化身的所述动画至少部分地基于第一输入模式和由所述第一输入信号提供的情绪信息,其中通过该第一输入模式接收来自所述第一用户的所述第一输入信号;呈现所述3d环境给所述第一用户和至少一个第二用户,其中呈现所述3d环境给所述第一用户和所述至少一个第二用户是基于由所述第一用户和所述至少一个第二用户选择的相应第一输出模式;响应于所述第一用户的位置的变化,将所述第一用户的输入模式从所述第一输入模式改变为第二输入模式。
6.根据另一种实施方式,提供了一种非暂时性计算机可读介质且其上存储指令,该指令响应于被处理器执行,使得该处理器执行或控制执行的三维(3d)环境的操作。所述操作包括:从第一用户接收第一输入信号,以及使用所述第一输入信号用于在所述3d环境中代表所述第一用户的第一化身的动画,其中所述第一化身的所述动画至少部分地基于第一输入模式和由所述第一输入信号提供的情绪信息,其中通过该第一输入模式接收来自所述第一用户的所述第一输入信号;呈现所述3d环境给所述第一用户和至少一个第二用户,其中呈现所述3d环境给所述第一用户和所述至少一个第二用户是基于由所述第一用户和所述至少一个第二用户选择的相应第一输出模式;响应于所述第一用户的位置的变化,将所述第一用户的输入模式从所述第一输入模式改变为第二输入模式。
7.根据另一种实施方式,提供了一种装置,所述装置包括:处理器;和耦合到该处理器的非暂时性计算机可读介质且其上存储指令,该指令响应于被该处理器执行,使得该处理器执行或控制执行的三维(3d)环境的操作。其中所述操作包括:从第一用户接收第一输入信号,以及使用所述第一输入信号用于在所述3d环境中代表所述第一用户的第一化身的
动画,其中所述第一化身的所述动画至少部分地基于第一输入模式和由所述第一输入信号提供的情绪信息,其中通过该第一输入模式接收来自所述第一用户的所述第一输入信号;呈现所述3d环境给所述第一用户和至少一个第二用户,其中呈现所述3d环境给所述第一用户和所述至少一个第二用户是基于由所述第一用户和所述至少一个第二用户选择的相应第一输出模式;响应于所述第一用户的位置的变化,将所述第一用户的输入模式从所述第一输入模式改变为第二输入模式。
附图说明
8.图1示出了本技术实施例提供的示例3d环境。
9.图2示出了本技术实施例提供的可被启用于图1的3d环境中的用户的示例输入模式和输出模式。
10.图3示出了本技术实施例提供的输入模式的视频示例。
11.图4示出了本技术实施例提供的基于用户位置改变输入/输出模式的示例。
12.图5示出了本技术实施例提供的输入/输出模式的各种用户偏好的示例。
13.图6示出了本技术实施例提供的示例系统架构的框图,该示例系统架构包括提供了3d环境、动画化3d化身以及各种输入/输出模式一起的3d环境平台。
14.图7示出了本技术实施例提供的使用各种输入/输出模式来运行3d环境的方法的流程示意图。
15.图8示出了本技术实施例提供的示例计算设备的框图。
具体实施方式
16.在以下详细描述中,参考了构成其一部分的附图。在附图中,相似的符号通常标识相似的组件,除非上下文另有说明。详细描述、附图和权利要求中描述的说明性实施例并不意味着限制。在不背离本文提出的主题的精神或范围的情况下,可以使用其他实施例,并且可以做出其他改变。如本文大体描述并在附图中说明的,本公开的各方面可以被布置、替换、组合、分离和设计成多种不同的配置,所有这些都在本文中被考虑。
17.说明书中对“一种实施例”、“一个实施例”、“一个示例实施例”等的引用表明,所描述的实施例可以包括特定的特征、结构或特性,但每个实施例不一定都包括特定的特征、结构或特征。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,无论是否明确描述,都可以结合其他实施例来实现这样的特征、结构或特性。
18.本文描述的实施例为了应对上面提及的和其它的不足,提供了一种系统和方法用于呈现三维(3d)化身且支持多种输入模式和多种输出模式。3d化身可以在各种类型的3d环境中呈现,例如虚拟现实(vr)会议、增强现实(ar)设定、在线游戏、或可能包括一个或多个用户的其他类型的3d环境且这些用户在3d环境中由一个或多个3d化身表示。在此处描述的vr会议示例中,不同的用户通过他们各自选择的模式参与vr会议,并且系统启用模式之间的互操作性以在用户之间创建单个共享的虚拟会议会话。
19.系统为3d环境(例如vr会议)中的每个相应用户/参与者生成3d化身,并基于由相应用户提供或从相应用户感测到的输入为每个化身制作动画。其他用户然后可以在3d环境中查看和/或收听动画化身,就好像参与实际的面对面的设定一样。每个用户可以控制他/
她在3d环境中的表示方式(例如,具有音频的动画化3d化身、仅音频、仅文本、图像或其他格式或其组合)。此外,每个用户还可以控制如何在3d环境中将其他用户/参与者呈现给该用户。例如,第一个用户可能只希望在3d环境中阅读第二个用户的文本,而不希望查看第二个用户的动画化3d化身或听到来自第二个用户的音频;因此,呈现给该第一用户的3d环境可能仅档第二用户说话时候显示第二用户的文本给第一用户。
20.接下来描述各种其他示例特征和实施方式。
21.首先参考图1,其大体上示出了示例3d环境100。根据一些实施方式,3d环境100可以包括具有3d对象的计算机生成的图像。在图1的示例中,3d环境100包括具有四个参与者(与会者)的虚拟现实(vr)会议,标记为用户a、用户b、用户c和用户d。3d环境100可以通过其他平台提供,例如增强现实(ar)平台或其他类型的3d平台。使用这样的3d平台,可以使用3d角色来代表出席会议的真实人物(其中3d角色的外观是可选择/可定制的)。3d角色或其他3d对象也可用于表示实际上不在会议中的人或事物(例如,可以将3d角色放在空椅子上以表示未出席的人,物理上不存在的桌子可以生成为图像3d对象用于会议等)。
22.3d环境平台200(参见例如图2)为vr会议中的每个相应用户/参与者生成3d化身,并且基于由相应用户提供或从其感测到的输入来动画化每个3d化身。因此,虽然用户可能在地理上远离并且彼此分开,但每个用户可以在3d环境100中以某种方式(例如,作为3d化身)来表示。每个用户因此可以查看和/或收听vr会议中的动画化3d化身,仿佛在参加一个真正的面对面会议。
23.在3d环境中呈现的3d化身可以采取由其相应用户选择的任何形式。例如,图1中的用户a、用户c和用户d选择了他们的3d化身采取人类形式。人类形式又可以模仿用户的实际物理外观,或者用户可以为他/她的化身选择不同的外观(例如,选择与著名男演员/女演员相似或具有某些其它真实或虚构的人物的外观)。此外,例如对于用户b,该用户可以选择不一定是人的外观(例如,如图1所示的外星人、动物或其他有生命或无生命的物体)。
24.更进一步地,3d环境平台200可以使第一用户能够控制如何在3d环境100中将第二用户呈现给第一用户。例如,用户c可能不喜欢用户b选择的外星人外观。因此,3d环境平台200可以向用户c提供用人类外观覆盖外星人外观的能力。因此,仅呈现给用户c的3d环境100可以用人类形式显示用户b,而所有其他用户将在3d环境100中他们各自的会议演示中看到以外星人形式的用户b。
25.在图1所示的示例会议中,用户c说出的语音被呈现为文本,例如以气泡文本102,而不是音频格式或作为其补充。用户c可能已选择他/她的语音以文本形式呈现给其他用户,和/或其他用户之一可能已选择用户c的语音以文本形式呈现在他/她各自的3d环境100的会议演示中。
26.图1所示的vr会议的示例视图展示了可以呈现给特定用户的形式和内容。例如,用户a可能已经设置了他/她的偏好,使得参与者都被表示为动画化3d化身,其中至少一些3d化身为他们的语音输出提供音频。用户a和/或用户c可能已经进一步设置他/她的偏好来为用户c提供文本输出,替代地或附加于音频输出。因此,虽然图1示出了在本示例中呈现给用户a的会议的形式和内容,根据用户的不同的输入方式和输出方式,每个其他用户可能具有分别提供给这些其他用户的会议的不同形式和内容。例如,其他用户之一可能已经设置了“仅音频”的输出模式,因此向该用户提供了来自其他会议参与者的音频输出,而没有向该
用户提供其他用户的任何文本或3d动画。
27.用户为3d环境提供的输入模式的类型可以包括但不限于:文本、音频、通过带有文本的摄像头跟踪的视频、通过摄像头跟踪加上音频的视频、以及其他格式。用户可用的输出模式类型(例如,在3d环境中向用户呈现其他参与者的方式)的示例可以包括但不限于:文本、音频、带有音频的3d化身动画、带有文本的3d化身动画(包括文本气泡)、带有文本和/或音频的静止图像、以及其他格式。根据一些实施例并且除前述之外,用户还能够选择他/她在会议期间如何呈现给其他参与者的音频类型(例如,用户的实际声音、其他人的声音、卡通声音、或其他合成声音等)。
28.vr会议例如图1所示的会议只是可能实施方式的一个示例。在3d环境中实现的其它示例中,这些不是必须涉及多个用户之间的会议,单个用户可以被表示为3d环境中的3d化身。由3d化身生成的动作/音频/外观可以基于用户正在使用的输入模式(例如,文本输入、相机输入等)进行控制,以及将3d化身呈现给其他用户(他们可能不一定有自己的3d化身参与/存在于3d环境中)的方式可以由该用户或者这些其它用户所选择的输出模式进行控制(例如,文本、音频、语言偏好等与仅在3d环境中查看3d化身相结合或替代)。
29.例如,3d游戏环境中电子游戏的用户/玩家可能是游戏中涉及的唯一玩家。游戏内用户3d化身的语音、动作等是基于用户提供的输入方式(文字、语音、摄像头等)。同时,其他用户可以访问3d游戏环境(可能不一定在玩游戏),并且可以观察玩家在游戏中的进度/玩法,这些其他用户观察进度/玩法可以通过观看该玩家的3d化身、通过阅读该玩家说出的文本、收听该玩家说出的音频、和/或通过呈现这些其他用户选择的其他输出模式(和/或通过呈现玩家指定的输出模式,如果玩家希望在游戏期间控制他/她的3d化身如何呈现给其他用户)。
30.在另一示例中,单个用户(3d化身)可以是在呈现在线讲座的3d环境中向学生观看者进行在线讲座的教师,他们自己没有化身代表。每个学生都可以控制输出模式,让学生可以选择阅读文本、听音频、接收文本和音频、观看带有音频和/或文本的老师的3d动画等。
31.图2示出了本技术实施例提供的可被启用于图1的3d环境100中的用户的示例输入模式和输出模式。为每个用户启用的输入模式和/或输出模式可以基于用户指定的设定、用户的客户端设备的能力、用户的环境或其他条件(例如,用户的位置、用户是否正在从事一些活动如驾驶或步行)、和/或其他参数或它们的组合。在图2(可以与图1一起考虑),用户a至用户d的每一个用户操作各自的客户端设备202至208,其在图1的3d环境100中举行的会话期间又与3d环境平台200通信。
32.根据图2的各种示例,用户a正在操作支持音频和视频的输入模式(可能还有其他额外的输入模式,例如文本)的客户端设备202。例如,用户a的客户端设备202可以具有用于捕捉用户a的口语的麦克风和用于捕捉用户a的实况视频的相机。因此,用户a可以明确地选择音频和视频作为优选的输入模式,或这样的输入模式可以由客户端设备202自动选择。在一些实施方式中,3d环境平台200可以通过检测客户端设备202的能力来选择这样的输入模式,并且可以向用户a提供接受或覆盖由3d环境200或客户端设备202选择的输入模式的选项。
33.关于输出模式,客户端设备202支持音频和3d动画(并且可能还有附加的其他输出模式,例如文本)。因此,当客户端设备202(例如,通过用户a、通过客户端设备202和/或通过
3d环境平台200)启用这种输出模式时,用户a能够观看来自图1的3d环境100的3d动画(沿着伴随的音频)。
34.客户端设备202(和/或图2中的至少一些其他客户端设备)因此可以是智能电话、膝上型计算机或台式计算机、vr头戴设备或其它电子通信设备,这些具有全套硬件和安装在其中的软件能够将3d环境100连同音频、文本或其他输出格式一起呈现在显示屏上作为输出,并且还能够支持获得(例如,接收、感知和/或解释)用户输入(例如,声音、面部表情、身体动作、情绪等)的输入模式。这样的客户端设备还可以提供允许用户选择性地启用一些输入/输出模式和禁用其他输入/输出模式的能力。例如,用户a可以选择在会议期间禁用音频输出,以便在用户a正在查看的3d环境100中仅呈现文本。
35.此外,客户端设备202(和/或图2中的至少一些其他客户端设备)可以配备有其他工具,例如全球定位系统(gps)工具、生物传感器、环境传感器等,这些能够确定客户端设备的环境条件、位置、移动/方向等。下面将进一步描述这样的工具和可用于选择和随后修改3d环境100的形式和内容(例如在会议期间)的各种输入/输出模式的方式。
36.用户b的客户端设备204已启用音频作为输入模式,并且已启用音频和3d动画作为输出模式。例如,客户端设备204可能没有相机来捕捉用户b的图像(因此,用户b已经为他/她在3d环境100中的3d化身选择了外星人外观),或者相机可能被禁用/非选择,但客户端设备204具有可用的麦克风来捕捉用户b的音频以在3d环境100中使用。对于输出模式,客户端设备204启用音频和3d动画,使得用户b是能够在3d环境100中查看和收听动画化身。
37.用户c的客户端设备206已启用文本作为输入模式,并且已启用文本和3d动画作为输出模式。例如,客户端设备206可能没有相机来捕捉用户c的图像(或者相机可能被禁用/未选择)并且客户端设备206可能没有麦克风(或者麦克风可能被禁用/未选择),但客户端设备206具有可用的文本输入工具(例如,键盘),用户c可操作该工具以提供用于在3d环境100中使用的输入。对于输出模式,客户端设备206启用文本和3d动画(但未启用音频),使得用户c能够查看3d环境100中的化身并阅读(通过文本,而不是通过收听)他们的对话。客户端设备206的输入/输出模式如图2所示,其中音频没有启用,可以被用于,例如,当用户c希望参加会议但用户c当前位于图书馆或不鼓励大声说话的其他位置时。
38.用户d的客户端设备208已启用音频和视频作为输入模式,并且已启用音频仅用于输出模式。例如,用户d在参加会议时可能正在开车。为了捕捉用户d的输入并且出于安全原因,已经为客户端设备206禁用了文本输入。然而,用户d的图像和用户d的语音可以分别安全地捕捉为客户端设备208的相机和麦克风的输入。类似地,客户端设备208的输出模式可以设置为仅音频,以防止在用户d驾驶时从会议中输出文本或3d动画来分散用户b的注意力。
39.接下来描述进一步的示例特征和实施方式。
40.图3示出了本技术实施例提供的输入模式的视频示例。使用图2的客户端设备208用于上下文,客户端设备208的相机300跟踪/捕捉身体运动(包括用户d说话时用户d的嘴/嘴唇的运动),并且3d环境平台200相应地对vr环境100中的用户d的化身进行动画处理且基于摄像机捕捉到的运动。如果用户d希望说话(例如通过举手或发起嘴/嘴唇运动或其他身体提示),则相机300捕捉“举手”或嘴/嘴唇运动或其他身体提示,并且3d环境平台200用这样的身体运动为3d化身制作动画(如图1中的104所示,其中用户d的3d化身正在举手),从而
通知其他参与者用户d希望说话也因此避免在此过程中被打断或在会议中同时说话。
41.前述说明了一个示例,其中“举手”的用户动作被推断为一般指示用户d希望提出问题。3d环境平台200可以将用户d的以下示例动作中的一个或多个(实时或接近实时)转换/映射成3d化身的相应“举手”动画:用户d物理地举起他的/她的手,并且这个动作被相机300捕捉到;用户d正在通过文本聊天并键入诸如“对不起
…”
或“等待
…”
或“稍等
…”
的短语,这些短语被3d环境平台200解析/检测并解释为用户d说话的请求;用户d当前处于静音状态并开始说话并说“对不起
…”
;以及其他。在3d虚拟会议场景中(如问答环节),用户d的举手向当前正在讲话的(其他)用户发出信号,表示其他人希望讲话,以便其他用户/讲话者可以暂停以便使用户d能够说话。
42.也可以执行图像和/或音频处理以感测用户的情绪,可替代地或除了从文本中检测情绪之外,还可以执行图像和/或音频处理。例如,如果用户d说“我疯了”,相机300在客户端设备200的麦克风捕捉音频的同时检测到用户d的面部表情或变红的脸,并且执行音频处理(在客户端设备208和/或在3d环境平台200)在音频上以便检测指示情绪状态的音频音量峰值。客户端设备208处的生物测定传感器302还可以检测体温、心率或血压升高,这些也表示情绪状态。该检测到的信息被处理(在客户端设备208和/或3d环境平台200)以确定用户d是否真的生气(或开玩笑),并且用户d的3d化身可以相应地被动画化(例如在图3中示出的304处)实时或接近实时地以便表示情绪(例如,具有更响亮的音频的愤怒面部表情和说出“我疯了!”的嘴唇运动)。在一些实施例中,如果在3d环境平台200和/或在客户端设备208处的处理误解了情绪,则还在客户端设备208处为用户d提供覆盖功能。
43.如上所述,在3d环境100中的交互过程(例如会议)期间,并非所有参与者/用户都可以访问所有形式的输入/输出模式(例如,相机或显示屏)。此外,在3d环境中进行的部分会议/会话期间,某些输入/输出模式可能变得不可用或不切实际。
44.例如,图4示出了基于环境(例如,位置)或用户的其他条件而改变输入/输出模式的示例。具有客户端设备202(智能电话或其他类型的移动设备的形式)的用户a用于图4的示例。在400,用户a可以在家中参加vr会议,使用摄像头/麦克风进行视频和音频输入,并使用客户端设备202的显示屏查看其他参与者的3d动画(并且还使用客户端设备202的麦克风来收听其他参与者的音频)。
45.在402,用户a走出家门进入汽车并开始驾驶。3d环境平台200感测到用户a已经走进汽车并且正在驾驶(例如通过安装在客户端设备202中的加速度计、gps工具等来确定)并且确定相机现在可能是不切实际的输入模式(例如,由于用户a在驾驶时面向交通方向,而不是看摄像头),因此客户端设备202可以禁用摄像头并且使用来自用户a的音频作为输入模式(并使用音频输入以动画化呈现给3d环境中的其他参与者的用户a的化身100)。由于开车时发短信的危险,3d环境平台300也可以禁用文本作为输入模式。
46.由于用户在402处驾驶时不能安全地查看客户端设备202的显示屏幕,因此3d环境平台200还可以将其他参与者的对话作为音频(例如,其他参与者的实际语音参与者和/或合成的声音)呈现给用户a,而不是通过客户端设备202的显示屏的文本或视频。在一些实施例中,其他参与者通常可以在图4中的402至404的整个时间期间继续看到用户a的动画3d化身,并且可能不知道用户a已经离开家并正在驾驶(例如,当用户a在家庭和驾驶环境之间切换时,其他参与者不会注意到3d化身动画的实质性变化,也就是说,该用户的输入模式的变
化可能无法被其他参与者检测到)。在一些实施例中,用户a实际上可能想要肯定地向其他用户显示他/她(用户a)已经走出房子并且现在正在开车。因此,用户a的3d化身,如在其各自的3d环境演示中向其他用户显示的那样,可以适当地动画化以显示3d化身在步行、驾驶等。
47.在404,用户a下车并进入不鼓励音频的安静的图书馆。在这种情况下,3d环境平台200使用gps和其他位置/地图源来确定用户已经进入图书馆,并改变输出模式(例如,其他参与者如何在客户端设备202处呈现给用户a)从音频(在402处使用)改变为带有文本的3d动画(例如,使用对话到文本的转换)并且在404处没有音频,或者在404处仅有文本。此外,可以改变用户a的3d环境100的输入模式从音频(在402使用)到在404的文本,以便使用户a能够在用户a在图书馆的范围内时使用发短信来与3d环境100中的其他人通信。文本可以由3d环境平台200解析以在用户a的3d化身中创建由其他参与者查看的相应运动,例如解析表示情绪或身体运动的词。
48.图4示出了基于用户a的位置/环境来改变输入/输出模式。在3d会话期间观看/收听用户a的其他参与者的输入/输出模式也可能发生变化。例如,3d环境平台200可以检测接收用户(除了用户a之外的参与者)的位置变化并且可以自动调整该接收用户的输入/输出模式。继续参阅图2的示例,用户a的3d化身的观看者(接收用户)可能会走进可能不适合观看屏幕/电话的环境,例如在黑暗的剧院中。因此,3d环境平台200检测到接收用户已走进剧院,自动将输出模式从用户a的化身的视觉呈现(例如,显示屏上的3d动画)改变为音频(接收用户可以通过耳机断续地听到)。
49.图4中的上述示例在其中描述了3d环境平台200根据用户的环境自动改变输入/输出模式的场景。在其他实施方式中,输入/输出模式和其他展示的方面可以基于用户偏好。图5示出了本技术实施例提供的输入/输出模式的各种用户偏好的示例。
50.例如,用户可以使用客户端设备500来为了输入/输出模式进行输入/设定偏好。在图5的示例中,用户可以在502处从各种输入模式中选择,而在504处用户期望如何向其他参与者/与会者/用户展示他/她的自身,以及在504处如何向用户展示其他参与者/与会者/用户(如输出模式)。
51.关于在502处可选择的输入模式,用户更喜欢仅通过文本提供输入(在“文本”处显示为选择x),其他可能的选择是无偏好、音频、视频或一些可以指定的其他输入模式。可以在502处为输入模式和/或在504处和506处为输出模式提供“选择可用选项”。例如,用户可能正在通过用户的客户端设备500的键盘玩电子游戏。由于键盘是用于玩游戏的,所以在游戏过程中用户无法使用键盘与好友发短信。因此,用户可以启用“选择可用选项”(或者客户端设备500可以自动启用该选项,以响应于检测到键盘不能用于发短信),从而使得客户端设备500激活麦克风作为输入设备以接收来自用户的音频(而不是用户发短信)。然后,用户的音频可以在游戏期间作为文本显示在客户端设备500的显示屏上,同时显示来自朋友的文本(例如,如果用户选择了来自朋友的文本作为输出模式)。来自朋友的消息可替代地或附加地通过音频呈现给用户,这取决于用户或朋友是否选择了音频作为输出模式、客户端设备500上的用户扬声器是否启用/可用等。
52.在504处,用户可能没有关于如何将用户呈现给其他参与者的特定偏好(显示为选择x是“无偏好”),其他可能的选择是文本、音频和动画化身(还有进一步的子选择是实际相
似或者其它图像如外星人)。通过在502处选择文本作为输入模式,3d环境平台200因此可以使用文本到语音来将用户的文本转换成具有音频的动画3d化身,其呈现给其他用户。
53.在506处,用户可以指定输出模式,特别是可以通过客户端设备500向用户呈现每个其他参与者的方式。对于每个其他用户(参与者),用户可以指定无偏好、文本、音频、动画3d化身(进一步的子选择是实际相似或其他图像如外星人)。因此,即使其他参与者之一可能已经选择他/她自身仅使用文本来呈现,客户端设备500的用户也能够将该输出模式覆盖/改变为某种其他格式,例如音频而不是文本。
54.类似地,由于客户端设备500的特定用户在504处已选择“无偏好”(或可能是某种其他格式)关于他/她如何呈现给其他人,因此其他参与者依次可能更喜欢查看/听到该用户使用带有气泡文本的动画化身、音频、使用带有合成语音的外星人图像的动画3d化身或其他格式。
55.在另一种场景中,用户可能希望根据3d环境100中的会话是社交聚会还是商务会议来改变他/她化身的外观。因此,用户可以在504处选择(例如,从其他图像的选择下的库)由其他参与者观看的在社交聚会期间更随意的化身外观,以及在商务会议期间更正式的化身外观(例如,穿着西装的用户)。其他3d化身也可以在商务会议期间呈现,例如虚拟白板或演示幻灯片。
56.在一些实施例中,用户简档信息还可用于在3d环境100中的会话期间定制化身和其他3d对象的外观和周边,从而在会话期间创建更合适和共同/共享的体验。例如,如果参与者的用户简档表明用户是青少年,并且如果附加信息表明3d环境100中的会话是课堂会议,则3d环境平台200可以调整环境和化身以提供课堂会议的适当内容评级(例如面向成人的材料被编辑,与课堂无关的3d化身被排除在外等)。
57.指示某些参与者是朋友的简档信息也可以被3d环境平台200用来确定动画以驱动他们各自的3d化身。例如,朋友之间的身体运动不同于陌生人或商业同事之间的身体运动。3d环境平台200可以使用这样的简档信息和其他信息来根据参与者之间的关系和在3d环境100中举行的会话(例如vr会议)的周边来适当地动画化3d化身。
58.用户简档信息可以包括关于用户的历史信息。历史信息可以包括用户在之前的3d环境会话中与其他用户的交互(例如,社交、商业、教育、愤怒、驾驶、发短信等)。可能会为不同的用户提供不同的历史模式,这些历史信息可用于推断或预测如何为用户的3d化身设置动画,为即将到来的3d会话选择环境/设置等。
59.用户简档信息的访问和使用可以由用户控制。例如,本技术实施例向用户提供能力去防止或限制使用他们的简档信息来与生成3d环境和3d化身相关。使用简档信息可能需要用户许可,并且用户可以进一步指定可以使用的简档信息的类型以及允许使用简档信息的持续时间。还可以限制用户确定关于其他用户的位置和/或其他信息。
60.可以实时执行上述和任何其他化身或环境定制(例如在图5中表示和/或涉及用户简档信息)。在其他实施方式中,3d环境平台200能够为用户设置输入和/或输出模式,而用户不必对输入/输出模式做出优选选择。
61.在一些示例实施方式中,可以推断各种其他用户动作和/或用户特征以便为3d化身生成对应的动画(或其他类型的输出)。例如,3d环境平台200可以检查用户的音频特性(例如音调、音量等)以确定是否需要将用户的输入转换为指示了放松或是紧迫的输出,以
及确定是否需要实行不同语言之间的转换(例如,英语到法语或者反过来,以音频和/或文本方式)。可以由3d环境平台200转换为相应输出的其他类型的动作可以包括:用户使自己静音(然后用户的3d化身显示“静音”状态,例如3d化身脸上的堵嘴或做出拉链的手势);用户关闭相机并且如果没有其他输入可用,则用户的3d化身进入非动画状态或某些默认状态以指示用户具有的是不可用的输入模式;用户喝了一口咖啡并且用户的3d化身根据视频输入模仿该喝一口或者基于检测到喝一口的音频来模拟该喝一口;用户擤鼻涕而系统识别出该动作不适合用3d化身等来表示,以及其他。因此,在这些不同的示例中,3d环境平台200可以执行过程/算法来确定某些动作是否是“噪音”或其他不够重要,可以忽略或以某种方式表示。
62.在一些实施例中,3d会话期间的信号和信息默认由3d环境平台200和/或客户端设备加密。例如,音频可以在客户端设备处被加密并且在3d会话期间在3d环境平台200的服务器处被解密之后被中继给其他用户。
63.进行记录也是可能的。3d会话可以由3d环境平台200和/或客户端设备记录,并以加密形式存储以供以后解密和查看。
64.图6示出了本技术实施例提供的示例系统架构的框图,该示例系统架构包括提供了3d环境(如3d环境100)、动画化3d化身以及各种输入/输出模式一起的3d环境平台(例如3d环境平台200)。3d环境平台200(其可以包括在线游戏平台602或与其结合地操作)也被称为“用户生成内容平台”或“用户生成内容系统”并且为用户提供多种交互方式,如当用户在玩电子游戏或进行在线虚拟会议时。例如,在线游戏平台602的用户可以朝着共同目标一起工作、共享各种虚拟游戏项目、彼此发送电子消息等等。3d环境平台200的用户可以通过使用诸如上述3d化身的角色在3d环境100中进行交互,例如用户在电子游戏中呈现的3d世界中游历、在虚拟3d会议中一起加入等。
65.3d环境平台200还可以允许平台的用户创建和动画化这些化身,以及允许用户创建其他图形对象以放置在3d环境100中。例如,3d环境平台200的用户可以允许创建、设计和定制化身,以及在3d环境100中创建、设计和插入其他3d对象。
66.在图6中,示例系统架构600(本文也称为“系统”)包括3d环境平台200(其可以包括在线游戏平台602、虚拟现实(vr)平台、增强现实(ar)平台、在线会议平台,和/或其他类型的内容平台或协作平台),多个客户端设备604a至604c(这里通常称为“客户端设备604”),组成3d环境平台200的一部分的多个服务器606a和606b(笼统地指代“服务器606”),以及外部系统608。系统架构600是为了说明一种可能的实施方式。在其他实施方式中,系统架构600可以包括以与图6所示相同或不同的方式配置的相同、更少、更多或不同的元件。
67.通信网络610可以用于系统架构600中的各种元件之间的通信。网络610可以包括公共网络(例如因特网)、专用网络(例如局域网(lan)或广域网(wan))、有线网络(例如以太网)、无线网络(例如802.11网络、wi-fi网络或无线lan(wlan))、蜂窝网络(例如长期演进(lte)网络)、路由器、集线器、交换机、服务器计算机或它们的组合。
68.客户端设备604(其可以由前面描述的客户端设备202至208中的任何一个来实现)可以包括3d应用程序(包括游戏应用程序)和一个或多个用户界面(例如,音频/视频输入/输出设备)。音频/视频输入/输出设备可以包括相机、麦克风、扬声器、耳机、显示设备等中的一个或多个。此外,客户端设备604可以包括传感器、加速度计、面部/情绪识别软件、相
机、gps工具,以及各种其他硬件和软件组件(包括处理元件),这些的用途与解释输入、环境/位置以及与用户相关的其他特征或条件相关。例如,客户端设备604中的处理元件可以包括用于确定用户情绪的音频和图形处理器,以及用于执行加密、在输入和输出模式之间转换以及执行其他操作以支持3d会话的一个或多个处理器。客户端设备604中的传感器可以包括加速度计、生物传感器等。在一些实施方式中,客户端设备604执行许多处理操作以减少服务器606处的处理负载。例如,客户端设备604结合传感器提供的数据,可以确定用户的情绪状态,自动化具有情绪状态的化身,并将生成的化身发送到服务器606以在3d环境100中呈现。
69.客户端设备604可以包括移动智能电话、游戏控制台、vr耳机、台式或膝上型计算机或其他计算设备。根据特定用户使用的客户端设备的类型,vr耳机可以提供最大的保真度;例如,台式机/笔记本电脑可以提供中等保真度,以及仅具有文本/语音功能的电话可以提供最低保真度。
70.通过网络610,客户端设备604与服务器606如第一服务器606a通信。第一服务器606a执行例如解密/加密、接收和处理来自客户端设备604的信号(例如,音频、视频、文本等)的操作,并将处理后的信号提供给3d环境平台200,例如vr会议平台且其生成vr会议,然后将生成的vr会议(具有动画化身或其他选择的输出模式)呈现给客户端设备604。
71.外部系统608可以是gps系统或其他外部信息源,其向客户端设备604和/或向第一服务器606a或向其他服务器提供定位信息。
72.第二服务器606b可以存储和处理业务逻辑、简档信息和其他可用于定制由3d环境平台200呈现的3d环境的数据。例如,第二服务器606b可以使用简档信息来确定参与中的用户是否应该在3d环境100中的非正式社交环境(与正式商业环境相对)中呈现,以及确定每个客户端设备604使用哪些特定输入/输出模式。
73.服务器606可以包括一个或多个存储设备。存储设备可以存储例如由3d环境平台200或由在客户端设备604中本地安装的应用程序在3d环境100中呈现的图形对象,以及图形对象的配置/属性信息(如位置、颜色、纹理等)。在一些实施例中,存储设备可以是提供了由3d环境平台200呈现的图形对象的单独内容交付网络的一部分。例如,3d环境平台200可以拉取(或已经推入)存储在存储设备中的图形对象,用于在3d会话过程中进行演示。
74.在一种实施方式中,存储设备可以是非瞬态计算机可读存储器(例如,随机存取存储器)、高速缓存、驱动器(例如,硬盘驱动器)、闪存驱动器、数据库系统或能够存储数据和其他内容的其它类型的组件或设备。存储设备还可以包括能跨越多个计算设备(例如,多个服务器计算机)的多个存储组件(例如,多个驱动器或多个数据库)。
75.在一些实施方式中,3d环境平台200可以包括具有一个或多个计算设备的服务器(例如,云计算系统、机架式服务器、服务器计算机、物理服务器集群等)。在一些实施方式中,服务器(例如服务器606)可以被包括在3d环境平台200中,是独立的系统,或者是另一个系统或平台的一部分。
76.在一些实施方式中,3d环境平台200可以包括一个或多个计算设备(例如机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)、数据存储器(例如,硬盘、存储器、数据库)、网络、软件组件和/或可用于在3d环境平台200上执行操作并向用户提供对3d环境平台200的访问。3d环境平台200还可以
包括网站(例如,网页)或应用程序后端软件,其可用于向用户提供对由在线3d环境平台200提供的内容的访问。例如,用户可以使用安装在客户端设备604上的应用程序访问3d环境平台200。
77.在一些实施方式中,3d环境平台200可以是一种在用户之间提供连接的社交网络或者是一种允许用户(例如终端用户或消费者)与其他用户进行通信的用户生成内容系统。3d环境平台200,其中通信可以包括语音聊天(例如,同步和/或异步语音通信)、视频聊天(例如,同步和/或异步视频通信)或文本聊天(例如,同步和/或异步的基于文本的通信)。在本公开的一些实施方式中,“用户”可以表示为单个个体。然而本公开的其他实施方式包括“用户”(例如,创建用户)是由一组用户或自动源控制的实体。例如,在用户生成内容系统中联合为社区或组的一组个人用户可以被视为“用户”。
78.在一些实施方式中,3d环境平台200可以是虚拟游戏平台(例如,游戏平台602)。例如,游戏平台可以向能通过网络610使用客户端设备604访问游戏或与游戏交互的用户社区提供单人游戏或多人游戏。在一些实施方式中,其中3d环境平台200提供游戏,该游戏(在此也称为“视频游戏”、“在线游戏”或“虚拟游戏”等)可以是二维(2d)游戏、三维(3d)游戏(例如3d用户生成游戏),虚拟现实(vr)游戏或增强现实(ar)游戏。在一些实施方式中,用户可以与其他用户一起参与游戏。在一些实施方式中,可以与游戏的其他用户实时玩游戏。
79.在一些实施方式中,游戏玩法可以指一个或多个玩家在游戏中使用客户端设备(例如,客户端设备604a至604c)的交互,或者在客户端设备604的显示器或其他用户界面上呈现交互。
80.在一些实施方式中,游戏或其他3d实施方式可以包括电子文件,其能通过被配置为向实体呈现游戏内容(例如,数字媒体项)的软件、固件或硬件来执行或加载。
81.可以注意到,3d环境或3d世界使用的是提供了几何数据的三维表示的图形,该几何数据代表例如游戏内容(或者至少将对象展示为3d内容而无论是否使用了几何数据的3d表示)的对象。2d环境或2d世界使用图形,该图形提供代表了对象/内容的几何数据的二维表示。
82.在一些实施方式中,3d环境平台200可以托管一个或多个游戏或其他类型的3d会话,并且可以允许用户使用安装在客户端设备604上的应用与3d会话交互。3d环境平台200的用户可以在3d环境中玩、创建、交互或构建3d环境,与其他用户通信,和/或创建和构建对象(例如,此处也称为“项目”或“对象”或“虚拟游戏项目”或“图形对象”)用于3d环境。例如,在生成用户生成虚拟项目时,用户可以创建角色、动画化角色、角色的装饰、用于交互式3d会话的一个或多个虚拟环境,或构建在3d环境100中使用的结构等。在一些实施方式中,用户可以与3d环境平台200的其他用户购买、出售或交易3d虚拟对象,例如平台内货币(例如,虚拟货币)。在一些实施方式中,3d环境平台200可以传输3d内容到应用程序(例如,游戏应用程序或虚拟会议应用程序)。在一些实施方式中,3d内容(在本文中也称为“内容”)可以指代与3d环境平台200相关联的任何数据或软件指令(例如,游戏对象、游戏、用户信息、视频、图像、命令、媒体项等)。在一些实施方式中,3d对象(例如,在本文中也称为“项目”或“对象”或“虚拟游戏项目”)可以指被使用、创建、共享的对象,或以其他方式在3d环境平台200的3d环境100中描绘。例如,3d对象可以包括零件、模型、角色或其组件(如脸、手臂、嘴唇等)、工具、武器、衣服、建筑物、车辆、货币、植物群、动物群、上述的组成部分(例如,建筑物的窗户)
等。
83.可以注意到,托管3d环境100的3d环境平台200是出于说明的目的。在一些实施方式中,3d环境平台200可以托管一个或多个媒体项目,该媒体项目可以包括从一个用户到一个或多个其他用户的通信消息。媒体项目可以包括但不限于数字视频、数字电影、数字照片、数字音乐、音频内容、旋律、网站内容、社交媒体更新、电子书、电子杂志、数字报纸、数字有声读物、电子期刊、网络博客、简易信息聚合(rss)提要、电子漫画书、软件应用程序等。在一些实施方式中,媒体项目可以是能使用被配置为将数字媒体项目呈现给实体的软件、固件或硬件来执行或加载的电子文件。
84.在一些实施方式中,3d环境100可以与特定用户或特定用户组(例如,私人游戏)相关联,或者使3d环境平台200的用户广泛可用(例如,公共3d环境)。在一些实施方式中,在3d环境平台200将一个或多个3d环境与特定用户或用户组相关联的情况下,3d环境平台200可以使用用户账号信息(例如,用户账号标识符如用户名和密码)。
85.在一些实施方式中,3d环境平台200或客户端设备604可以包括应用程序。在一些实施方式中,此类应用程序可用于3d环境的开发或执行。例如,应用程序可能包括用于2d、3d、vr或ar图形的渲染引擎(“渲染器”)、物理引擎、碰撞检测引擎(和碰撞响应)、声音引擎、脚本功能、动画引擎、人工智能引擎、网络功能、流功能、内存管理功能、线程功能、场景图功能或对过场动画的视频支持,以及其他功能。应用程序的组件可以生成帮助计算和渲染3d环境的命令(例如,渲染命令、碰撞命令、动画命令、物理命令等)。在一些实施方式中,客户端设备604的应用程序可以独立地工作、与3d环境平台200协作,或两者的组合。
86.在一些实施方式中,3d环境平台200和客户端设备604两者都执行应用程序(包括引擎)。使用引擎的3d环境平台200可以执行部分或全部功能(例如,生成物理命令、动画命令、渲染命令等,包括控制上述输入/输出模式的改变),或卸载部分或全部功能到客户端设备604。在一些实施方式中,每个3d环境可以具有在3d环境平台200上执行的引擎功能与在客户端设备604上执行的功能之间的不同比率。
87.用户可以使用客户端设备604上的控件在3d环境中进行交互,并且可以将控制指令(例如用户输入)发送到3d环境平台200。在从客户端设备604接收控制指令之后,3d环境平台200可以基于控制指令向客户端设备604发送指令或信息。在其他情况下,3d环境平台200可以将一个或多个控制指令从一个客户端设备604a传递到参与3d会话的其他客户端设备(例如客户端设备604b)。客户端设备604a和604b可以使用指令并渲染3d环境以在客户端设备604a和604b的显示器上呈现,包括启用如上所述的输入/输出模式。
88.在一些实施方式中,用户可以通过用户设备上的应用程序登录到3d环境平台200。用户可以通过提供用户账号信息(例如,用户名和密码)来访问用户账号,其中用户账号与一个或者多个角色相关联,这些角色可用于参与由3d环境平台200提供的一个或多个3d环境。
89.一般而言,在各种实施方式中描述为由3d环境平台200执行的功能也可以在其他实施方式中由客户端设备604或服务器执行,如果合适的话。此外,归属于特定组件的功能可以由不同或多个组件一起操作来执行。在线3d环境平台200也可以作为通过适当的应用程序接口(api)提供给其他系统或设备的服务来访问,因此不限于在网站中使用。
90.图7示出了本技术实施例提供的使用各种输入/输出模式来运行3d环境(例如3d环
境100)的方法700的流程示意图。为了简单起见,方法700中的各种操作将在3d环境平台200执行操作的上下文中进行描述。然而,并且上述关于图6所描述的,一些操作可替代地或附加地全部或部分地由客户端设备604执行。示例方法700可包括由一个或多个块例如块702至710所示的一个或多个操作。在此描述的方法700和/或任何其他过程的各种块可以组合成更少的块、划分成额外的块、用另外的块补充和/或基于期望的实施方式来消除。
91.图7的方法700在此可以参考图1至图6中所示的元件来解释。在一个实施例中,方法700的操作可以按照流水线顺序方式执行。在其他实施例中,一些操作可以无序地、并行地等执行。
92.在块702(“接收来自第一用户的第一输入信号,其中该第一输入信号通过第一输入模式接收”),3d环境平台200从第一用户(例如客户端设备202处的用户a)接收输入信号。该输入信号通过客户端设备202的第一输入模式接收。例如,如果输入模式是视频和音频,则第一输入信号包括由摄像头200捕获的用户的图像和由麦克风捕获的用户的音频。第一输入信号还可以包含情绪信息,例如可以从中导出用户a的情绪的用户a的图像/声音或者第一输入信号可以包含由处理元件导出的用户的情绪。块702之后可以是块704。
93.在块704(“使用第一输入信号来动画化3d环境中的第一用户的第一化身代表”),3d环境平台200使用第一输入信号来动画化用户a的3d化身。例如,第一输入信号可能包含用户正在说“我生气了”的音频信息,并且第一输入信号还可能包含进一步表明用户a生气的情绪信息。因此,3d环境平台200使用来自第一输入信号的此类信息来动画化用户a的3d化身的嘴唇/嘴巴/身体以模仿愤怒,同时用愤怒/升高的语调说“我生气了”并且3d化身的脸变红了。块704之后可以是块706。
94.在块706(“基于输出模式向第一用户和至少一个第二用户呈现3d环境”),3d环境平台200呈现3d环境(具有用户a和其它用户的动画3d化身)给在3d环境100中的第一用户和任何其他用户/参与者。这个呈现可以基于为每个用户启用的输出模式。例如,一个用户可能仅启用文本作为他/她的输出模式,因此呈现“我生气了”的文本,而不呈现音频和/或3d动画。其他各种用户可以有自己选择的其他输出模式,例如纯文本、纯音频、带音频的化身动画、带文字的化身动画。块706之后可以是块708。
95.在块708(“第一用户的位置是否发生变化?”),3d环境平台200确定第一用户的位置是否已经发生变化。如果没有发生变化(块708处为“否”),则3d环境100的呈现在块706处继续且呈现其相对于用户a的当前形式/内容。
96.然而,如果在块708,用户a的位置已经发生变化(在块708处为“是”),则3d环境平台200在块710处适当地改变用户a的输入模式(“将第一用户的输入模式从第一输入模式改变为第二个输入模式”)。例如参考前面描述的图4,用户a的输入模式可以在用户a正在驾驶、在图书馆等时改变。用户a的输出模式也可以在块710改变。
97.方法700可以接着以类似于块702至块708的方式继续。
98.图8示出了本技术实施例提供的示例计算设备800的框图,其可以用于实现一个或者这里描述的特性。客户端设备604(包括客户端设备202至208)和/或3d环境平台200可以按照图8的计算设备800的形式提供。在一个示例中,计算设备800可用于执行本文所述的方法。计算设备800可以是任何合适的计算机系统、服务器或其他电子或硬件设备。例如,计算设备800可以是大型计算机、台式计算机、工作站、便携式计算机或电子设备(便携式设备、
移动设备、手机、智能手机、平板电脑、电视、电视机顶盒、个人数字助理(pda)、媒体播放器、游戏设备、可穿戴设备等)。在一些实施方式中,设备800包括处理器802、存储器804、输入/输出(i/o)接口和工具806以及输入/输出(i/o)设备814。
99.处理器802可以是一个或多个处理器和/或处理电路,以执行程序代码和控制计算设备800的基本操作。“处理器”包括任何合适的硬件和/或软件系统、机制或组件,这些处理数据、信号或其他信息。处理器可以包括具有通用中央处理单元(cpu)的系统、多个处理单元、用于实现功能的专用电路、或其他系统。处理不必局限于特定的地理位置,或具有时间限制。例如,处理器可以“实时”、“离线”、“批处理模式”等执行其功能。处理的部分可以在不同时间和不同位置由不同(或相同)执行处理系统。计算机可以是与存储器通信的任何处理器。
100.存储器804可以设置在计算设备800中以供处理器802访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(ram)、只读存储器(rom)、电可擦除只读存储器(eeprom)、闪存等,适用于存储由处理器执行的指令,并且与处理器802分离和/或与其集成。存储器804可存储能由处理器802在计算设备800上执行的软件,包括操作系统808、一个或多个应用程序810及其相关数据812。应用程序810可用于与3d环境平台200协作以生成具有3d化身的3d环境,以及启用如本文所述的各种输入/输出模式。在一些实施方式中,应用程序810可以包括指令,其响应于处理器802的执行,使得处理器802能够执行或控制本文描述的关于在3d环境中使用输入/输出模式的操作的性能。
101.存储器804中的任何软件可以备选地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器804(和/或其他连接的存储设备)可以存储在本文描述的特征中使用的指令和数据。存储器804和任何其他类型的存储器(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储器”或“存储设备”。
102.i/o接口和工具806可以提供使计算设备800能够与其他系统和设备接口的功能。例如,网络通信设备、存储设备和输入/输出设备可以通过i/o接口和工具806与计算设备800通信。在一些实施方式中,i/o接口和工具806可以连接到接口设备,包括输入设备(键盘、定点设备、触摸屏、麦克风、相机、扫描仪等)和/或输出设备(显示设备、扬声器设备、打印机、电机等),这些统称为至少一个输入/输出设备618。工具806可以进一步包括可以与计算设备800的其他组件或与其外部的组件通信的gps工具、传感器工具、加速度计等。
103.输入/输出设备814可包括可用于接收音频消息作为输入的音频输入设备(例如麦克风等)、音频输出设备(例如扬声器、耳机等)和/或显示设备,其可用于提供上述图形和视觉输出。输入/输出设备814还可以包括键盘、照相机和能够提供本文所述的各种输入/输出模式的其他设备。
104.为了便于说明,图8示出了处理器802、存储器804、i/o接口和工具806、应用程序810等中的每一个的一个块。这些块可以表示一个或多个处理器或处理电路、操作系统、存储器、i/o接口、应用程序和/或软件模块。在其他实施方式中,设备600可以不具有所示的所有组件和/或可以具有包括其他类型的元件的其他元件来代替或附加于本文中示出的那些。
105.用户设备也可以实现和/或与这里描述的特征一起使用。示例用户设备可以是包括一些与计算设备800类似的组件的计算机设备,例如处理器802、存储器804和i/o接口和
工具806。适用于客户端设备的操作系统、软件和应用程序可以在内存中提供并由处理器使用。客户端设备的i/o接口可以连接到网络通信设备,也可以连接到输入和输出设备,例如用于捕捉声音的麦克风、用于捕捉图像或视频的相机、用于输出声音的音频扬声器设备、用于输出图像或视频的显示设备,或其他输出设备。例如,音频/视频输入/输出设备814内的显示设备可以连接到(或包括在)设备800以显示如本文所述的预处理和后处理的图像,其中这种显示设备可以包括任何合适的显示设备,例如lcd、led或等离子显示屏、crt、电视机、监视器、触摸屏、3d显示屏、投影仪或其他视觉显示设备。一些实施方式可以提供音频输出设备,例如语音输出或阅读文本的合成音。
106.本文描述的一种或多种方法(如方法700)可以通过能在计算机上执行的计算机程序指令或代码来实现。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实现,并且可以存储在包括非暂时性计算机可读介质(例如存储介质)的计算机程序产品上,例如磁性、光学、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(ram)、只读存储器(rom)、闪存、硬磁磁盘、光盘、固态存储驱动器等。程序指令还可以包含在电子信号中并作为电子信号提供,例如以从服务器交付的软件即服务(saas)的形式(例如分布式系统和/或云计算系统)。或者,一种或多种方法可以用硬件(逻辑门等)或硬件和软件的组合来实现。示例硬件可以是可编程处理器(例如现场可编程门阵列(fpga)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(asic)等。一种或多种方法可以作为在系统上运行的应用程序的一部分或组件来执行,或者作为与其他应用程序和操作系统一起运行的应用程序或软件来执行。
107.本文描述的一种或多种方法可以在能在任何类型的计算设备上运行的独立程序、在网络浏览器上运行的程序、在移动计算设备(例如,手机、智能手机、平板电脑、可穿戴设备(手表、臂章、首饰、头饰、护目镜、眼镜等)、笔记本电脑等)上运行的移动应用程序(“应用”)中运行。在一个示例中,可以使用客户端/服务器架构,如移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收最终输出数据以用于输出(例如,用于显示)。在另一个示例中,可以在移动计算设备上的移动应用程序(和/或其他应用程序)内执行所有计算。在另一示例中,可以在移动计算设备和一个或多个服务器设备之间拆分计算。
108.尽管已经针对特定实施方式进行了描述,但是这些特定实施方式仅仅是说明性,而不是限制性。示例中说明的概念可以应用于其他示例和实现。
109.应当理解的是,本公开中描述的功能块、操作、特征、方法、设备和系统可以集成或划分为本领域技术人员已知的系统、设备和功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实现的例程。可以采用不同的编程技术,例如面向过程式或面向对象的。例程可以在单个处理设备或多个处理器上执行。尽管可以以特定顺序呈现步骤、操作或计算,但是在不同的特定实施方式中可以改变顺序。在一些实施方式中,在本说明书中显示为顺序的多个步骤或操作可以同时执行。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1