构建会话理解系统的制作方法

文档序号:18740735发布日期:2019-09-21 01:44阅读:125来源:国知局
构建会话理解系统的制作方法



背景技术:

会话理解(CU)系统被用于各种各样不同应用。例如,CU系统已开发用于允许用户搜索内容、购买物品、获得方向等。CU开发过程在CU构建过程的每个步骤中使用诸如科学家和计算语言学家之类的专家。例如,专家用于对在创建CU应用时所使用的数据进行标记。



技术实现要素:

提供本摘要用以以简化形式介绍下面在详细说明书中进一步描述的概念的选择。本摘要不旨在标识所要求保护的主题的关键特征或本质特征,其也不旨在被用作在确定所要求保护的主题的范围时的辅助。

开发人员可以借助于CU服务或平台中可用的资源和工具构建会话理解(CU)系统。提供所述工具和资源,以便允许开发人员使能实现用于CU的应用,以及与所述CU服务进行交互并扩展所述CU服务。所述工具包括各种各样不同工具,其诸如但不限于:标记工具、训练工具、验证工具等。所述工具可以用于从现有领域中选择覆盖范围、扩展一个或多个领域的覆盖范围以及在所述CU服务中创建新的领域。例如,开发人员可以从所述CU服务中的一个或多个现有领域(例如天气、金融、新闻、体育……)中选择一个或多个应用编程接口(API)来包括在应用中。开发人员可以提供示例自然语言(NL)语句,其由所述工具进行分析,以便帮助开发人员对用于更新CU服务中的模型的数据进行标记。例如,所述工具可以帮助开发人员从示例NL语句中标识领域、确定意图动作、确定意图对象和确定位置(slot)。所述工具自动确定对于示例NL语句的可能标记,并且允许用户创建新的领域、意图动作、意图对象和位置。例如,所述工具可以被开发人员用于为意图和位置添加他们自己的标签,或者选择已自动确定的标签。在所述开发人员为示例NL语句的全部或部分加标签之后,CU服务中的模型被自动更新和验证。例如,验证工具可以用于确定所述模型相对于测试数据的准确度。

附图说明

图1图示出了包括用于开发人员创建用于与会话理解服务进行交互的应用的工具的系统;

图2示出了用于对示例NL语句进行标记的示例性图形用户界面;

图3示出了用于使用工具来创建用于与会话理解服务进行交互的应用的过程;

图4示出了如下的过程,即:用于通过混合并匹配领域模型、意图模型或位置模型或者合并底层数据来训练新模型,而自动从示例自然语言语句中检测用于构建定制模型的领域、动作和对象;

图5示出了用于添加或更新关联于会话理解系统的领域的过程;

图6示出了使用现有领域来通过重用来自现有领域的意图(或者,意图动作和/或对象)向会话理解系统添加新领域的示例表;

图7图示出了使用由开发人员使用所提供的工具创建的功能性与应用进行交互的会话理解系统;

图8图示出了提供用于开发会话理解应用的工具的示例性在线系统;以及

图9、10A、10B和11及关联的描述提供对本发明的实施例可以在其中被实践的各种各样操作环境的讨论。

具体实施方式

现在参考附图,将描述各种实施例,其中,相同数字表示相同元件。

图1图示出了包括用于开发人员创建用于与会话理解服务进行交互的应用的工具的系统。

如所图示的,系统100包括会话理解(CU)服务105、开发管理器26、应用编程器接口(API)120、模型140、数据150、标记工具160、训练工具170、验证工具180、应用110和触摸屏输入设备115。

一般说来,诸如CU服务105之类的面向目标的CU服务中的自然语言理解(NLU)针对标识如以自然语言(NL)表述的(一个或者多个)领域和用户的(一个或者多个)意图,以及提取关联的变元或位置。例如,在航空公司的领域中,用户经常请求航班信息(例如,“我想下个星期从纽约飞到波士顿”)。在其中用户经常使用自然语言搜索电影并且然后使用自然语言命令播放它们的电影领域中,存在许多不同位置类型(例如,电影明星、电影发行日期、电影评分等)。传统的对NLU系统的训练使用由专家手动进行标记(领域、意图和位置)或由专家自动进行标记和检查的查询。

开发管理器26被配置为提供帮助开发人员开发和构建用于与CU服务105进行交互的应用的工具。所述工具包括各种各样不同的工具,其诸如但不限于:标记工具160、训练工具170、验证工具180等。

不同的工具可以用于从现有领域中选择覆盖范围、扩展一个或多个领域以及创建用于与CU服务进行交互的新领域。例如,开发人员可以从被应用访问的CU服务105中的一个或多个现有领域(例如天气、金融、新闻、体育……)中选择一个或多个应用编程接口(API)120。一般说来,领域是关联于CU服务被训练为对其进行理解的一组动作的区域(例如电影领域、音乐领域、图书领域、比赛领域、航班领域……)。领域通常涉及特定区域,但也可以包括多于一个区域。开发人员还可以使用工具对领域进行扩展或在CU服务105中创建新领域。

根据一个实施例,对于每个被添加到CU服务的领域,固定数量的现有模型140被更新为反映该新添加的领域。根据一个实施例,所述模型包括领域模型、意图动作模型、意图对象模型和位置模型。根据另一实施例,当添加新领域时,可以创建新模型。

数据150包括与创建和使能实现用于会话理解的应用相关的数据。根据一个实施例,应用与CU服务105进行交互。例如,数据150可以包括用于对CU服务105的模型进行训练的训练数据、与CU服务105相关的一个或多个方案、用于扩展现有领域和在CU服务105中创建新领域的示例数据(例如示例NL语句)等。根据一个实施例,可以跨领域和意图共享诸如训练数据之类的数据。例如,针对意图动作的训练数据可以是跨各种各样不同领域是公共的。

标记工具160可以被开发人员用于帮助对期望的领域、意图和位置的数据进行标记。例如,标记工具160可以被开发人员用于为意图和位置添加他们自己的标签。开发人员可以提供示例NL语句,其由标记工具进行分析,以便帮助开发人员确定将使用什么现有领域、意图动作、意图对象和位置,以及,如何将附加覆盖范围并入CU服务105中。标记工具160自动为示例NL语句确定可能的标记,并且允许用户创建新的领域、意图动作、意图对象和位置。例如,所述工具可以被开发人员用于为意图和位置添加他们自己的标签,或者选择已自动确定的标签。标记工具160可以使用领域检测器122、意图动作检测器123、意图对象检测器124和位置标签构件125。

领域检测器122从不同NL语句中标识领域。例如,开发人员可以提供他们想要在CU服务中覆盖的示例NL语句。领域检测器122可以从所述示例中标识单一领域或多个领域。例如,领域检测器122可以从一个示例NL语句中标识电影领域和社交领域这两者,并且,从另一示例NL语句中标识电影领域。从示例中检测出的领域可以或者可能还无法以被CU服务105支持。领域检测器122的结果可以被显示在图形用户界面(GUI)112中。

意图动作检测器123被配置为预测对于当前示例NL语句的意图动作。意图动作是在示例NL语句中将被执行的动作(例如,找到、发布、播放、购买……)。例如,意图动作检测器123可以将对于当前NL语句的意图动作预测为:得到动作;找到动作;发布动作;播放动作等。所预测的意图动作可以在GUI 112中被显示给开发人员,以便确定该所预测的意图动作是否是期望的动作。

针对每个已确定的意图动作,由意图对象检测器124标识一个或多个意图对象。意图对象是与已确定的意图动作相关的对象。意图对象是已确定的意图动作的对象(例如,电影、图片、物品……)。意图对象检测器124的结果可以被显示在图形用户界面(GUI)112中。根据一个实施例,从当前示例NL语句中确定意图(即,意图动作和意图对象的组合)。

位置标签由位置标签构件125使用已确定的领域、意图动作和意图对象来执行。一般说来,位置标签对什么位置关联于NL语句的单词进行标识。示例NL语句可以使用预测被自动加标签,并且然后当被确定时由开发人员进行校正。例如,开发人员可以使用GUI 112改变标签。位置标签构件125的结果可以被显示在图形用户界面(GUI)112中。

训练工具170包括可以用于更新CU服务105的模型的不同工具。例如,开发人员可以选择训练工具以使用附加训练数据来更新模型中的一个或多个。

验证工具180可以被开发人员用于确定已更新的模型的准确度。例如,验证工具180可以用于将使用模型获得的结果与预期结果进行比较。验证工具180还可以被开发人员用于查看各个示例是否被正确地处理。当验证工具180指示出结果不正确时,该结果可以被校正(例如通过改变标记)。

为促进与开发管理器26的通信,可以实施一个或多个回调例程。根据一个实施例,应用程序110是多模应用,其被配置为接收语音输入和来自触摸敏感输入设备115或其他输入设备的输入。例如,话音输入、键盘输入(例如物理键盘和/或SIP)、基于视频的输入等。应用程序110还可以提供多模输出(例如语音、图形、振动、声音……)。开发管理器26可以响应于用户输入(例如语音、手势)而向/从应用110提供信息。例如,用户可以说出用于标识将被应用110执行的任务的短语(例如,选择电影、购买物品、标识产品……)。手势可以包括但不限于:捏住手势、伸展手势、选择手势(例如,在所显示的元素上的轻敲动作)、选择和保持手势(例如,在所显示的元素上接收的轻敲和保持手势)、刷动动作和/或拖动动作等等。手势还可以包括光学上被捕获的手势,诸如:挥动手势、滚动手势、引导手势等。例如,诸如MICROSOFT KINECT之类的设备可以用于对手势进行检测。

如所图示的,系统100包括检测触摸输入何时已被接收(例如,手指触摸或几乎触摸到触摸屏)的触摸屏输入设备115。可以使用检测用户的触摸输入的任何类型的触摸屏。下面提供更多详情。

图2示出了用于对示例NL语句进行标记的示例性图形用户界面。

如所图示的,图2示出了包括当前NL示例语句205、领域部分210、意图动作220部分、意图对象230部分和位置240部分的图形用户界面(GUI)200。

根据一个实施例,CU服务包括针对一个或者多个领域而训练的一组模型,其包括领域模型、一个或多个意图模型以及位置模型。为进行阐述,下面的示例涉及针对四个不同领域被进行训练的CU服务,所述四个不同领域包括比赛领域、电影领域、音乐领域和通用命令领域。注释出了用于对CU服务的模型进行训练的数据。如上面讨论的,标记工具可以被开发人员用于帮助对用于更新模型的数据进行标记。

在当前的示例中,开发人员已提交涉及体育和可能其他领域的示例NL语句。一般说来,示例NL语句是如下这样的语句,即:其说明用户将如何与正被开发的应用进行交互。例如,在体育应用中,领域可以包括涉及体育领域、天气领域、电影领域、通用命令领域等的信息。

可以由标记工具对由开发人员提交的示例NL语句的每个进行处理。还可以使用示例NL语句自动生成附加的NL语句。例如,可以使用语句改述工具对示例NL语句进行改述,所述语句改述工具自动生成语句的丰富(enriched)列表,其包含表述与示例NL语句相同的意义的不同方式。

GUI 200示出了对示例NL语句205“为我示出Kobe Bryant跳投图片”的处理。

领域部分210示出了从对示例NL语句205运行领域检测器得到的结果。可以自动运行或手动运行领域检测器。例如,开发人员可以选择领域选项212以运行领域检测器。如所图示的,领域检测器从CU服务中的可用领域中标识与示例NL语句205相关的领域以及对于该领域的置信度分数。置信度分数向开发人员提供关于领域是否针对示例NL语句被正确标识的指示。根据一个实施例,置信度分数的范围在0和1之间,其中,相比于较低分数,较高分数指示出领域与示例NL语句更相关。开发人员可以选取建议的领域中的一个(例如,通过选择紧挨着领域所显示的框),或者通过选择添加领域选项214添加他们自己的领域。在当前的示例中,开发人员已添加新的“体育”领域。

意图动作部分220示出了从对示例NL语句205运行意图动作检测器得到的结果。可以自动运行或手动运行意图动作检测器。例如,开发人员可以选择意图动作选项222以运行意图动作检测器。响应于运行意图动作分类器,显示出最可能的意图动作(例如前N个结果)以及置信度分数。开发人员还可以选择查看示例选项226,以便查看使用已被包括在模型中的所显示意图动作标记的示例NL语句。开发人员可以将示例NL语句与所述示例语句进行比较,并且决定选取建议的意图动作中的一个,或者,开发人员可以选择添加他自己的意图动作来标记示例NL语句。例如,用户可以选择添加意图动作选项224。

意图对象部分230示出了从对示例NL语句205运行意图对象检测器得到的结果。可以自动运行或手动运行意图对象检测器。例如,开发人员可以选择意图对象选项232以运行意图对象检测器。响应于运行意图对象分类器,显示出最可能的意图对象(例如前N个结果)以及置信度分数。开发人员还可以选择查看示例选项236,以便查看使用已被包括在模型中的所显示意图对象标记的示例NL语句。开发人员可以将示例NL语句与所述示例语句进行比较,并且决定选取建议的意图对象中的一个,或者,开发人员可以选择添加他自己的意图对象来标记示例NL语句。例如,用户可以选择添加意图对象选项234。

位置部分240示出了从对示例NL语句205中的实体进行位置标签得到的结果。可以自动运行或手动运行位置标签。例如,开发人员可以选择位置标签选项242以运行位置标签。响应于运行位置标签,显示出不同的已检测位置(例如前N个结果)以及置信度分数。开发人员还可以选择查看示例246选项,以便查看已被包括在模型中的类似位置。开发人员可以选取所建议的,或者,选择在语句中对序列进行高亮显示,并且通过选择添加新位置选项244来指派新的位置名称。在当前的示例中,开发人员已创建了新的“运动员”位置。

在对语句中的一个或多个执行以上步骤之后,平台自动对模型进行更新,以便针对下一组示例NL语句向开发人员给出更好的建议。

所提出的过程使开发人员倾向于与已存在的数据类似地对他们的数据进行标记。

图3-5图示出了用于使用工具来构建会话理解系统的过程。当阅读对本文中呈现的例程的讨论时,应当认识到,各种实施例的逻辑操作被实施为(1)计算机实施的动作的序列或运行在计算系统上的程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。实施方案是取决于对实施本发明的计算系统的性能要求的选择问题。相应地,所图示的和组成本文中所描述的实施例的逻辑操作被多样地称为操作、结构设备、行动或模块。这些操作、结构设备、行动和模块可以用软件、固件、专用数字逻辑或其任何组合来实施。

图3示出了用于使用工具来创建用于与会话理解服务进行交互的应用的过程。

在开始操作之后,过程300移到操作310,其中,显示出用于开发和使能实现CU应用的工具。提供工具,以便允许开发人员构建用于与会话理解(CU)系统和服务进行交互的应用。所述工具包括各种各样不同的工具,诸如但不限于:选择API工具、标记工具、训练工具、验证工具等。所述工具可以用于从现有领域中选择功能性、扩展一个或多个领域以及创建新领域。

过渡到操作320,所述工具用于确定在应用中使用什么领域以及针对该应用的对应API。例如,领域检测器可以用于标识CU服务中与正被开发的应用相关的现有领域。用户还可以选择关联于一个或多个领域的一个或多个现有API。

移到决定操作330,做出关于是否存在对领域的更新或领域是否将被添加到CU系统的确定。当既不存在对领域的更新也不存在将被添加的领域时,则过程流向操作350。当存在对领域的更新或领域将被添加时,则过程流向操作340。

在操作340处,使用工具对模型进行更新和验证。例如,标记工具、训练工具和验证工具可以被开发人员用于更新CU服务,以便包括对正被开发的应用的覆盖。

移到操作350,CU系统中的模型被应用使用。模型可以被一个或多个应用使用。

过程然后流向结束操作并返回到对其他动作的处理。

图4示出了如下这样的过程,即:其用于通过混合并匹配领域模型、意图模型或位置模型或者合并底层数据以便对新模型进行训练,而从示例自然语言语句中自动检测用于构建定制模型的领域、动作和对象。

在开始操作之后,过程400移到操作410,其中,接收到示例NL语句。示例NL语句可以以不同形式被接收。例如,示例可以采用语句或发言的方式。例如,示例NL语句可以是“找到最新近的tom cruise电影”。另一示例可以是“在社交网站X上发布该链接”。

流向操作420,对关联于示例NL语句的领域进行检测。一般说来,领域是关联于一组动作的区域(例如,电影领域、音乐领域、图书领域、比赛领域、航班领域……)。取决于已被包括在CU服务的领域模型中的领域,可以检测出零个或多个领域。例如,领域模型可以初始包括一个领域(例如电影),其然后被扩展为包括另一领域(例如社交)。更多领域可以被添加到领域模型或从领域模型中移除。在上面提供的示例中,可以检测出两个不同的领域(例如,电影和社交)。

移到操作430,领域检测的输出被用于确定关联于所检测的领域中的每个的意图动作。可以检测出一个或多个意图动作。意图动作是将被执行的动作(例如,找到、发布、播放、购买……)。在上面提供的示例中,检测出的意图动作包括“找到”和“发布”。检测出的领域可以或者可能不能被用于帮助检测任何意图动作。意图动作领域可以根据意图动作所关联于的(一个或者多个)领域对不同意图动作加标签。例如,意图动作“找到”可以关联于许多不同领域(例如,电影、比赛、图书、航班……),而意图动作“发布”可以关联于单一领域(例如社交)。

过渡到操作440,对(一个或者多个)意图对象进行检测。对于每个已确定的意图动作,标识一个或多个意图对象。意图对象是与所述已确定的意图动作相关的对象。意图对象是已确定的意图动作的对象(例如,电影、图片、物品……)。在上面提供的示例中,检测出的意图对象包括“电影”和“图片”。

流向操作450,执行位置标签。可以使用一个或多个位置模型。在上面提供的示例中,针对电影位置模型的位置包括:被设置为“最新近”的发行日期位置、被设置为“tom cruise”的电影明星位置、被设置为“电影”的电影类型位置以及被设置为“图片”的项目类型位置。针对社交媒体位置模型的位置包括被设置为“X”的社交媒体位置。其他领域可以包括其他类型的位置。例如,旅行领域可以包括针对起程位置、起程时间、到达时间、到达目的地、旅行方法、约束(例如,最低成本、没有中途停留等)的位置。进餐领域可以包括针对菜肴类型、时间、聚会规模、需要预订和相对位置(例如,以步行距离计、接近运输站等)的位置。开发人员可以向位置模型添加一个或多个位置。例如,针对旅行领域的位置模型可能不包括针对旅行方法的位置。使用所提供的对发言加标签的示例,开发人员可以创建新的位置。

移到操作460,对CU系统的模型进行更新或定制。根据一个实施例,可以对新模型进行训练。

过程然后移到结束操作,并且返回到对其他动作的处理。

图5示出了用于添加或更新关联于会话理解系统的领域的过程。

在开始操作之后,过程500移到操作510,其中,确定要向CU服务更新或添加的领域。可以更新或创建一个或多个模型。根据一个实施例,更新包括领域模型、意图动作模型、意图对象模型和位置模型的四个模型。根据另一实施例,当领域被添加时,创建两个新模型(意图和位置模型)。

流向操作520,使用要添加的新领域更新领域模型。为进行阐述,假设理解系统当前支持四个不同领域(电影、音乐、比赛和通用命令),并且将添加体育领域。取代向理解系统添加两个新模型,现有领域模型被更新为当与体育领域相关的语言位于NL语句内时,检测新的体育领域。

过渡到操作530,意图动作模型被更新为支持任何还未被包括在意图动作模型中的新意图动作。关联于新领域的许多意图动作可以在被更新之前已被意图动作模型支持。例如,关联于体育领域的“得到”和“找到”意图动作可以已被意图动作模型支持。零个或多个意图动作可以被添加到意图动作模型(例如“日程”……)。

移到操作540,意图对象模型被更新为支持任何还未被包括在意图对象模型中的新意图对象。关联于新领域的许多意图对象可以在被更新之间已被意图对象模型支持。例如,已被支持的意图对象可以包括“比赛”、“照片”、“人员信息”。零个或多个意图对象可以被添加到意图对象模型(例如“新闻”……)。

流向操作550,位置模型被更新为支持新领域。根据一个实施例,使用单一位置模型来支持领域。位置可以关联于一个或多个不同的领域、动作和意图。

过程然后移到结束操作,并且返回到对其他动作的处理。

图6示出了通过重用来自现有领域的意图(或者意图动作和/或对象)使用现有领域来向会话理解系统添加新领域的示例表。

为进行阐述,并且不旨在进行限制,使用包括电影领域、音乐领域、比赛领域和通用命令领域的四个不同领域对示例CU服务中的模型进行训练。可以使用更多或更少领域来对模型进行训练。

在当前的示例中,开发人员想要向CU服务添加新的体育领域。根据一个实施例,开发人员提供示例NL语句。对于每个示例NL语句,工具对意图动作和意图对象进行预测。

表600包括示例NL语句列、预测的意图动作列、真实意图动作列、预测的意图对象列、真实意图对象列以及预测的意图列。表600示出了四个示例NL语句。

如参考表600可见的,即使体育领域不是当前CU服务的部分,也可以准确地预测出预测的意图动作。在当前的示例中,预测的意图动作与真实意图动作相同。相比于意图动作,预测的意图对象未被如此准确地预测出,但它们是合理的。

在表600中的前两个NL语句中,预测出来自比赛领域的“比赛”意图对象标记,因为前两个NL语句的每个都与比赛或竞赛相关。

第三个NL语句示例与现有领域共享意图动作和意图对象,并且被正确地预测。

第四个NL语句示例检测出使用“得到人员信息(get person_info)”对信息进行检索的正确上下文,尽管真实意图是取得“得到新闻(get_news)”。

随着CU服务中所覆盖的领域的数量增长超过当前示例中的四个,预测将因为更好的覆盖范围而变得更准确。从实验结果中发现,自动确定的预测90%以上的时间是准确的。

图7图示出了使用由开发人员使用所提供的工具创建的功能性与应用进行交互的会话理解系统。

如所图示的,系统700包括输入管理器710、语言理解构件720、对话引擎730、响应生成器740和应用770。

应用770是被配置为与CU服务705进行交互并且使用如本文中所描述的工具被开发的应用。应用770可以包括自然用户界面(NUI)或某个其他用于与CU服务705进行交互的界面。例如,可以使用自然语言对话和其他非口述的表述意图的模态(例如,手势、触摸、视线、图像、视频、口语韵律等)的组合与服务705进行交互。如所图示的,CU服务705从应用770接收语音发言,并且被配置为与用户进行对话。

输入管理器710被配置为从应用770接收输入(用户对话行动)。用户对话行动可以是不同类型的用户输入。例如,用户对话行动可以是语音输入(例如发言)、触摸输入、手势输入、文本输入以及其他类型的输入。

输入管理器710可以包括诸如自动语音识别器(ASR)、手势识别器、手写识别器等的不同构件。当用户对话行动是语音时,该语音由输入管理器710使用ASR进行识别。输入管理器710输出被递送到语言理解构件720的文本。

语言理解构件720被配置为接收文本并对文本进行分析。一般说来,语言理解构件720将意义关联到文本的单词。例如,语言理解构件720可以为文本加标签、执行对文本的句法分析等。语言理解构件720通常是将自然语言语句转换为语义表示的基于规则的构件。

对话引擎730通过确定响应于用户对话行动的机器动作而对对话进行管理。对话引擎730使用对话状态计算构件732计算可能的对话状态。对话管理器734确定一个或多个机器动作。被对话管理器734使用的对话状态信息包括针对对话中的当前回合(turn)的信息以及针对对话中的一个或多个过去回合的信息。对话引擎730将所确定的机器动作提供给响应生成器740。

响应生成器740确定向用户提供什么类型的响应。例如,响应生成器740可以确定向用户提供口语响应或向用户提供视觉响应。例如,当被确定时,文本到语音(“TTS”)构件可以输出响应作为合成语音。响应生成器740提供对应用770的输入的响应。

图8图示出了提供用于开发会话理解应用的工具的示例性在线系统。

如所图示的,系统1000包括服务1010、数据仓库1045、工具1046、触摸屏输入设备1050(例如板设备)、智能电话1030和显示设备1080。

如所图示的,服务1010是基于云和/或基于企业的服务,其可以被配置为提供诸如本文中所描述的对话服务之类的服务。可以使用不同类型的输入和输出与所述服务进行交互。例如,用户可以使用语音输入、触摸输入、基于硬件的输入等。由服务1010提供的服务中的一个或多个的功能性还可以被配置为基于客户端/服务器的应用。

如所图示的,服务1010是为任何数量的租户(例如租户1-N)提供资源1015和服务的多租户服务。多租户服务1010是基于云的服务,其向订阅该服务的租户提供资源1015,并且,单独地维护每个租户的数据且保护其不受其他租户数据的破坏。

如所图示的,系统1000包括触摸屏输入设备1050(例如板设备)以及智能电话1030,其检测触摸输入何时已被接收到(例如,手指触摸或几乎触摸到触摸屏)。可以使用检测用户触摸输入的任何类型的触摸屏。例如,触摸屏可以包括一个或多个检测触摸输入的电容材料层。其他传感器可以除电容材料之外或替代电容材料而被使用。例如,可以使用红外(IR)传感器。根据一个实施例,触摸屏可以被配置为检测与可触摸表面接触或在可触摸表面之上的物体。尽管在本说明书中使用了术语“在……之上”,但应当理解,触摸面板系统的取向是不相关的。术语“在……之上”旨在适用于全部这样的取向。触摸屏可以被配置为确定触摸输入被接收所在的位置(例如,起始点、中间点和终点)。可触摸表面与物体之间的实际接触可以通过任何合适的装备检测到,例如包括通过耦合到触摸面板的振动传感器或麦克风。用于对接触进行检测的传感器的示例的非穷举列表包括基于压力的机制、微机械加速度计、压电设备、电容传感器、电阻传感器、电感传感器、激光振动计和LED振动计。

根据一个实施例,智能电话1030、触摸屏输入设备1050和设备1080被配置了多模输入和输出,并且每个都包括与服务1010进行交互并且是使用工具1046开发的应用(1031、1051、1081)。

如所图示的,触摸屏输入设备1050、智能电话1030和显示设备1080示出了示例性显示器1052、1032和1082,所述示例性显示器示出了对应用的使用。可以将数据存储在设备(例如,智能电话1030、触摸屏输入设备1050)上和/或某个其他位置处(例如,网络数据仓库1045)。数据仓库1045或某个其他存储可以用于存储模型以及其他数据。被设备使用的应用可以是基于客户端的应用、基于服务器的应用、基于云的应用或某种组合。根据一个实施例,显示设备1080是耦合到显示器的诸如MICROSOFT XBOX之类的设备。

开发管理器26被配置为执行与本文中描述的过程相关的操作。开发管理器26被配置为访问被开发者使用以创建用于与服务1010交互的应用的工具1046。尽管管理器26被示为在服务1010内,但该管理器的功能性可以被包括在其他位置中(例如,在智能电话1030和/或触摸屏输入设备1050和/或设备1080上)。

本文中描述的实施例和功能性可以经由大量计算系统操作,所述计算系统包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如移动电话、上网本、平板或板型计算机、上网本计算机和膝上电脑)、手持设备、多处理器系统、基于微处理器的或可编程的消费电子装置、微型计算机和大型计算机。

另外,本文中描述的实施例和功能性可以通过分布式系统(例如基于云的计算系统)操作,其中应用功能性、存储器、数据存储和检索以及各种处理功能可以通过诸如互联网或内联网之类的分布式计算网络彼此远程地操作。可以经由机载计算设备显示器或经由关联于一个或多个计算设备的远程显示单元显示各种类型的用户界面和信息。例如,可以在各种类型的用户界面和信息被投影到其上的墙面上显示各种类型的用户界面和信息并与之进行交互。与本发明的实施例可以通过其被实践的大量计算系统的交互包括按键录入、触摸屏录入、话音或其他音频录入、在关联的计算设备配备了用于捕获和解释用于控制计算设备的功能性的用户手势的检测(例如相机)功能性的情况下的手势录入等。

图9-11和关联的描述提供对本发明的实施例可以在其中被实践的各种各样操作环境的讨论。然而,关于图9-11所图示出和讨论的设备和系统是用于示例和图示,并且不限制可以用于实践本文中描述的本发明的实施例的大量计算设备配置。

图9是图示出本发明的实施例可以通过其被实践的计算设备1100的物理构件(即硬件)的框图。下面描述的计算设备构件可以适于上面描述的计算设备。在基本配置中,计算设备1100可以包括至少一个处理单元1102和系统存储器1104。取决于计算设备的配置和类型,系统存储器1104可以包括但不限于易失性存储器(例如随机存取存储器)、非易失性存储器(例如只读存储器)、闪存或这样的存储器的任何组合。系统存储器1104可以包括操作系统1105和适于运行诸如开发管理器26之类的软件应用1120的一个或多个程序模块1106。操作系统1105例如可以适于控制计算设备1100的操作。此外,本发明的实施例可以结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定的应用或系统。该基本配置在图9中由虚线1108内的那些构件图示出。计算设备1100可以具有附加的特征或功能性。例如,计算设备1100还可以包括附加的数据存储设备(可移除和/或非可移除的),诸如例如磁盘、光盘或磁带。这样的附加存储装置在图9中由可移除存储设备1109和非可移除存储设备1110图示出。

如上面陈述的,可以将一些程序模块和数据文件存储在系统存储器1104中。当在处理单元1102上执行时,程序模块1106(例如开发管理器26)可以执行包括但不限于以下的过程:附图中所图示的方法和过程的阶段中的一个或多个。根据本发明的实施例可以使用的其他程序模块可以包括电子邮件和联系人应用、字处理应用、电子表格应用、数据库应用、幻灯片呈现应用、画图或计算机辅助应用程序等。

此外,本发明的实施例可以在电路中来实践,所述电路包括:分立的电子元件、包含逻辑门的封装或集成的电子芯片、使用微处理器的或者在包含电子元件或微处理器的单一芯片上的电路。例如,本发明的实施例可以经由片上系统(SOC)来实践,其中,图9中所图示的构件中的每个或许多可以被集成到单一集成电路中。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能性,这些全部被集成(或“烧制”)到芯片基底上作为单一集成电路。当经由SOC操作时,在本文中关于开发管理器26所描述的功能性可以经由与计算设备1100的其他构件一起被集成到单一集成电路(芯片)上的专用逻辑来操作。本发明的实施例还可以使用其他能够执行诸如例如与、或和非的逻辑运算的技术来实践,所述技术包括但不限于机械、光学、流体和量子技术。另外,本发明的实施例可以在通用计算机内或者在任何其他电路或系统中来实践。

计算设备1100还可以具有一个或多个输入设备1112,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等的(一个或者多个)输出设备1114。前面提到的设备是示例,并且可以使用其他设备。计算设备1100可以包括一个或多个允许与其他计算设备1118进行通信的通信连接1116。合适通信连接1116的示例包括但不限于:RF发射器、接收器和/或收发机电路、通用串行总线(USB)、并行和/或串行端口。

本文中使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括使用任何用于存储信息的方法或技术实施的易失性和非易失性、可移除和非可移除介质,所述信息诸如是计算机可读指令、数据结构或程序模块。系统存储器1104、可移除存储设备1109和非可移除存储设备1110全都是计算机存储介质示例(即,存储器存储装置)。计算机存储介质可以包括:RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光学存储器,盒式磁带、磁带、磁盘存储装置或其他磁存储设备,或者任何其他可以用于存储信息并可以被计算设备1100访问的制品。任何这样的计算机存储介质可以是计算设备1100的一部分。计算机存储介质不包括载波或者其他传播的或已调制的数据信号。

通信介质可以通过诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并且包括任何信息递送介质。术语“已调制数据信号”可以描述如下这样的信号,即:所述信号使一个或多个特征以使得将信息编码到该信号中的方式被设置或改变。作为示例并且不是限制,通信介质可以包括:诸如有线网络或直接有线连接之类的有线介质,以及,诸如声学、射频(RF)、红外和其他无线介质之类的无线介质。

图10A和10B图示出了本发明的实施例可以通过其来实践的移动计算设备1200,所述移动计算设备1200例如是移动电话、智能电话、平板个人计算机、膝上计算机等。参考图10A,图示出了用于实施实施例的移动计算设备1200的一个实施例。在基本配置中,移动计算设备1200是具有输入元件和输出元件这两者的手持计算机。移动计算设备1200通常包括显示器1205以及允许用户向移动计算设备1200中录入信息的一个或多个输入按钮1210。移动计算设备1200的显示器1205也可以充当输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧面输入元件1215允许进一步的用户输入。侧面输入元件1215可以是旋转开关、按钮或任何其他类型的手工输入元件。在可替换实施例中,移动计算设备1200可以并入更多或更少的输入元件。例如,在某些实施例中,显示器1205可以不是触摸屏。在又一可替换实施例中,移动计算设备1200是诸如蜂窝电话之类的便携式电话系统。移动计算设备1200还可以包括可选的小键盘1235。可选的小键盘1235可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1205、视觉指示器1220(例如,发光二极管)和/或音频换能器1225(例如,扬声器)。在某些实施例中,移动计算设备1200并入了用于为用户提供触觉反馈的振动换能器。在又一实施例中,移动计算设备1200并入了用于向外部设备发送信号或从外部设备接收信号的诸如音频输入(例如麦克风插孔)、音频输出(例如耳机插孔)和视频输出(例如HDMI端口)之类的输入和/或输出端口。

图10B是图示出移动计算设备的一个实施例的体系结构的框图。即,移动计算设备1200可以并入系统1202(即体系结构)以实施某些实施例。在一个实施例中,系统1202被实施为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息发送客户端、游戏、以及媒体客户端、播放器)的“智能电话”。在某些实施例中,系统1202被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。

一个或多个应用程序1266可以被加载到存储器1262中,并且在操作系统1264之上或关联于操作系统1264运行。应用程序的示例包括电话拨号器程序、电子邮件程序、个人信息管理(PIM)程序、字处理程序、电子表格程序、互联网浏览器程序、消息发送程序等。系统1202还包括存储器1262内的非易失性存储区域1268。非易失性存储区域1268可以用于存储持久信息,如果系统1202掉电,所述持久信息不应当丢失。应用程序1266可以使用并在非易失性存储区域1268中存储信息,所述信息诸如是电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统1202上,并且被编程为与常驻在主机计算机上的对应同步应用进行交互,以便保持存储在非易失性存储区域1268中的信息与存储在主机计算机处的对应信息同步。如应当认识到的,其他应用可以被加载到存储器1262中,并且在移动计算设备1200上运行,所述其他应用包括如本文中所描述的开发管理器26。

系统1202具有可以被实施为一个或多个电池的电源1270。电源1270可以进一步包括外部电源,诸如AC适配器或者对电池进行补充或再充电的加电对接支架。

系统1202还可以包括执行传输和接收射频通信的功能性的无线电1272。无线电1272经由通信载波或服务提供商促进系统1202与“外部世界”之间的无线连接。在操作系统1264的控制下实施去往和来自无线电1272的传输。换句话说,由无线电1272接收的通信可以经由操作系统1264被传播给应用程序1266,并且反之亦然。

视觉指示器1220可以用于提供视觉通知,和/或音频接口1274可以用于经由音频换能器1225产生听觉通知。在所图示的实施例中,视觉指示器1220是发光二极管(LED),以及音频换能器1225是扬声器。这些设备可以直接耦合到电源1270,从而,当被激活时,它们在通知机制所指示的持续时间内保持接通,即使处理器1260和其他构件可以关机以便节约电池电力。LED可以被编程为无限地保持接通,直到用户采取行动以指示设备的加电状态为止。音频接口1274用于向用户提供听觉信号和从用户接收听觉信号。例如,除了耦合到音频换能器1225之外,音频接口1274还可以耦合到麦克风来接收听觉输入,诸如以便促进电话会话。根据本发明的实施例,如下面将描述的那样,麦克风还可以充当用于促进控制通知的音频传感器。系统1202可以进一步包括视频接口1276,该视频接口1276使能实现机载相机的操作,以便记录静止图像、视频流等。

实施系统1202的移动计算设备1200可以具有附加的特征或功能。例如,移动计算设备1200还可以包括附加的数据存储设备(可移除和/或非可移除的),例如磁盘、光盘或磁带。所述附加存储器在图10B中由非易失性存储区域1268图示出。移动计算设备1200还可以包括外围设备端口1230。

由移动计算设备1200生成或捕获并经由系统1202进行存储的数据/信息可以如上面描述的那样被本地存储在移动计算设备1200上,或者,所述数据可以被存储在任意数量的存储介质上,所述存储介质可以由所述设备经由无线电1272或经由移动计算设备1200与关联于移动计算设备1200的单独计算设备之间的有线连接进行访问,所述单独计算设备例如是诸如互联网的分布式计算网络中的服务器计算机。如应当认识到的,所述数据/信息可以经由移动计算设备1200经由无线电1272或经由分布式计算网络进行访问。类似地,所述数据/信息可以根据熟知的数据/信息传输和存储手段在用于存储和使用的计算设备之间被轻松地传输,所述熟知的数据/信息传输和存储手段包括电子邮件和协作数据/信息共享系统。

图11图示出了如上面所描述的示例性系统的体系结构的实施例。关联于开发管理器26所开发、与之进行交互或编辑的内容可以用不同通信信道或其他存储类型来存储。例如,各种文档可以使用目录服务1322、web门户1324、邮箱服务1326、即时消息存储1328或社交网站1330来存储。开发管理器26可以使用这些类型的系统中的任一个或诸如此类的来使能实现如本文中所描述的数据使用。服务器1320可以向客户端提供开发管理器26。作为一个示例,服务器1320可以是基于web提供开发管理器26的web服务器。服务器1320可以通过网络1315基于web向客户端提供开发管理器26。作为示例,客户端计算设备可以被实施为计算设备1100,并且被包含在个人计算机、平板计算设备1310和/或移动计算设备1200(例如智能电话)中。客户端计算设备的这些实施例1100、1310和1200中的任一个可以从存储1316获取内容。

例如,上面参考根据本发明的实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的实施例。框中指出的功能/行动可以违反如任何流程图中所示的顺序而出现。例如,取决于所涉及的功能/行动,被相继示出的两个框实际上可以基本并发地被执行,或者所述框有时可以以逆序被执行。

何方式限制或约束所要求权利的本发明的范围。在本申请中提供的实施例、示例和细节被认为足以传达占有,并且使其他人能够制作和使用所要求权利的发明的最佳模式。所要求权利的发明不应当理解为限于任何在本申请中提供的实施例、示例或细节。不论是被组合地还是单独地示出和描述,各种特征(结构的和方法的这两者)旨在被有选择地包括或省略以产生具有特定特征集的实施例。在已为其提供本申请的描述和图示的情况下,本领域的技术人员可以设想不脱离所要求权利的发明的宽泛范围的、落在本申请中所包含的一般发明概念的宽泛方面的精神内的变型、修改和替换实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1