生成对社交会话输入的计算机响应的制作方法

文档序号:11161275阅读:309来源:国知局
生成对社交会话输入的计算机响应的制造方法与工艺

使计算机向来自个人的会话输入(即,作为会话的自然语言输入)提供适当的会话响应以使得计算机的响应产生动人的用户体验是一个挑战。挑战的一部分是考虑到自然语言固有的变化而理解输入。挑战的另一部分是确保对输入的任何响应是适当的。许多因素影响响应是否被认为是适当的,诸如词汇选择、音调、与“个性”或品牌化的一致性,并且影响响应是否是娱乐的、机智的、动人的、非冒犯性的等。

在一些系统中,通过诸如通过使用正则表达式而手动地指定模式并将人工创作的内容与那些模式相关联来解决这种挑战。如果输入匹配正则表达式,则与匹配的正则表达式相关联的内容可以被提供作为响应。这样的系统由具有编写和分析正则表达式的专门技能的人(通常是计算机程序员)开发,以及由具有为响应编写适当内容的技能的其他人(通常是内容编辑者)开发。

在一些系统中,通过从大数据集挖掘会话而自动地生成响应来解决这种挑战。如果输入匹配一个或多个先前会话的输入,则可以基于来自一个或多个先前会话的对该输入的任何响应来自动地生成响应。在这样的系统中,自动生成的响应在计算机产生响应之前不由人类审查,这增加了生成不适当响应的风险。



技术实现要素:

本发明内容被提供以按照简化的形式介绍对概念的选择,这些概念下面在具体实施方式中被进一步描述。本发明内容并未旨在标识所要求保护的主题的关键特征或基本特征,也并未旨在限制所要求保护的主题的范围。

人和计算机系统之间的会话交互可以由按照会话类型将输入分类并且为会话类型提供人类创作的响应的计算机系统提供。输入分类可以使用经训练的二元分类器而被执行。训练可以通过将输入标记为会话类型的肯定示例或否定示例而被执行。会话响应可以由标记在训练分类器中使用的输入的相同个体创作。在一些情况下,训练分类器的过程可以导致新的会话类型的提出,人类作者可以针对该新的会话类型为新分类器标记输入以及为用于该新的会话类型的响应编写内容。

本发明可以被体现为计算机系统、被体现为这样的计算机系统的任何单独的组件、被体现为由这样的计算机系统或这样的计算机系统的任何单独的组件执行的过程,或者被体现为包括计算机存储装置的制品,其用来存储计算机程序指令并且当计算机程序指令被计算机处理时将那些计算机配置为提供这样的计算机系统或这种计算机系统的任何单独组件。

在下面的描述中,参考形成其一部分的附图,并且其中通过图示的方法示出了该技术的具体示例实现方式。应理解的是,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构改变。

附图说明

图1是其中计算机系统支持生成对会话输入的响应的示例应用环境的框图。

图2是描述输入处理模块的示例实现方式的数据流图。

图3是描述输入处理模块的示例操作的流程图。

图4是描述训练过程的示例实现方式的流程图。

图5是训练处理模块的示例实现方式的数据流图。

图6是可用来实现这样的系统的组件的示例计算机的框图。

具体实施方式

以下部分描述了支持生成对会话输入的响应的计算机的示例操作环境。

参照图1,计算机100从实体104接收会话输入102。会话输入102包括旨在向输入的接收者传达意思的数据。会话输入可以通过各种设备和处理中的任何设备和处理而被接收。会话输入的简单示例是“西雅图今天的天气是什么?”。

响应于会话输入102,计算机100生成会话响应106。会话响应106包括旨在向提供了会话输入102的实体104传达意义的数据。会话响应106可以通过各种设备和处理中的任何设备和处理而被递送给实体104。会话响应的简单示例是“今天西雅图在下雨”。

为了产生会话响应,计算机100包括输入处理模块108,其示例实现方式在下面结合图2和图3被更详细地描述。

输入处理模块108具有使用训练过程而被设置的参数110。训练过程通过训练处理模块112而被实现。训练处理模块具有接收训练数据114的输入以及提供参数110的输出。下面结合图4和图5更详细地描述训练处理模块的示例实现方式。

在图1中,计算机100包括输入处理模块108和训练处理模块112两者。计算机100可以包括一个或多个不同的通用计算机或其他不同的计算设备,其中的每个可以包括一个或多个处理器或处理设备。因此,模块108和112可以在同一计算设备上或在分离的计算设备上,或它们的部分可以在同一计算设备上。每个模块108和112可以在一个或多个计算设备上。

在图1中,在一种实现方式中,训练处理模块112可以直接更新输入处理模块的参数。在另一实现方式中,训练处理模块可以产生与输入处理模块分离的更新后的参数,并且然后不时地在输入处理模块中传送更新后的参数。

在一些实施方式中,由训练处理模块进行训练可以发生一次。在其他实现方式中,训练可以作为正在进行的过程而被执行,并且输入处理模块的参数可以不时地(诸如周期性地)被更新。

训练处理模块可以产生由不同计算设备上的多个不同输入处理模块使用并由此被这些输入处理模块共享的一个参数集。多个不同的训练处理模块可以产生不同的参数集,无论是针对不同的输入处理模块还是将被从一个输入处理模块选择并且被该输入处理模块使用,例如,针对一个最终用户或针对不同的最终用户的不同情况。

图1还示出了计算机100接收会话输入102并且向实体104提供会话响应106。实体104通常是个人。

会话输入102通常是自然语言中的一个或多个单词或短语。其他输入可以包括但不限于常规地用于传达含义的符号,但是其可以不被正式地识别为自然语言的一部分,诸如数学符号、表情符号等。与会话输入有关的其他数据可以包括来自输入设备的姿势数据、来自可穿戴传感器和环境传感器的传感器数据、图像数据、视频数据和/或音频数据,还可以从这些提取各种元数据。与实体的姿势、语调、面部表情、可能的情绪等有关的元数据可以是有用的。

这样的输入可以按照许多方式被提供。例如,实体可以在键盘上键入。实体可以向麦克风中说话,并且计算机100可以执行语音识别。实体可以提供图像或视频数据,并且计算机100可以执行图像识别或其他图像处理。实体可以提供文本数据,并且计算机100可以处理该文本以提取单词和短语。

会话响应106通常是自然语言中的一个或多个单词或短语。其他输入可以包括但不限于常规地用于传达含义的符号,但是其可以不被正式地识别为自然语言的一部分,诸如数学符号、表情符号等。也可以针对与向用户的响应的通信相关的各种目的而生成其他数据。

可以按照许多方式提供这样的会话输出。例如,响应可以作为文本被显示在显示屏上。可以使用语音生成来处理响应,以提供在扬声器或耳机上被播放的音频数据。如果响应不限于文本,则响应可以被转换为其它图像数据,并且图像数据可被显示。例如,这样的图像数据可以包括示出了该实体的姿势和面部表情的实体的化身。可以根据由用户选择的期望的交互格式(诸如盲文、打印或其他类型的输出设备)来生成其他输出格式。

计算机100或其部分可以是可以由实体104使用的设备(未示出)的一部分,或者可以与由实体104使用的设备分离。

例如,实体可以使用可能地在触摸屏显示器上具有麦克风、扬声器和键盘的手持设备(诸如移动电话)。这样的手持设备通常包括计算机。在一种实现方式中,手持设备上的计算机可以包括输入处理模块108。在另一实现方式中,手持设备可以将会话输入102传送给另一计算设备上的输入处理模块;转而,该另一计算设备可以向手持设备提供会话响应106。手持设备和另一计算设备之间的连接可以通过任何种类的数据通信网络,诸如公共计算机网络、蜂窝电话连接等。类似于手持式装置,采用腕带、手表、耳机或眼镜的形式的可穿戴计算设备也可具有类似的配置。

作为另一示例,实体可以在汽车或其他车辆中,其可以具有麦克风和扬声器,以及可能的其它输入和输出设备。车辆可以包括车载计算机,其处理来自车辆中的各种设备的输入并向车辆中的各种设备提供输出。在一种实现方式中,车载计算机可以包括输入处理模块108。在另一实现方式中,车载计算机可以将输入数据传送给诸如通过蜂窝电话连接或卫星通信连接与车载计算机无线通信的另一计算设备上的输入处理模块。转而,其他计算设备可以将会话响应106传输给车载计算机。

作为另一示例,实体可以在使用家庭娱乐系统的家庭环境中,家庭娱乐系统可以包括许多设备,包括但不限于游戏机、机顶盒、智能电视或其他显示器,以及一个或多个手持设备,诸如智能电话、平板计算机和/或遥控器。这些设备中的任何一个或多个设备可以包括一个或多个输入设备,诸如麦克风、键盘或触摸屏显示器,从这些输入设备可以从环境中的实体接收会话输入。相同环境中的这些设备中的任何一个或多个设备还可以包括一个或多个输出设备,会话响应可以通过这些输出设备被提供给实体。这些设备中的一个或多个设备上的计算机可以包括输入处理模块108。这种计算机可以在与包括输入设备和/或输出设备的设备不同的设备中。各种设备之间的连接可以通过任何种类的数据通信网络,包括但不限于专用局域网、无线通信连接、蜂窝电话连接等。

现在已经描述了示例操作环境,现在将结合图2和图3描述图1中的输入处理模块108的示例实现方式的更多细节。

输入处理模块包括多个分类器200,每个分类器用于不同的会话类型。每个分类器具有接收从输入数据导出的特征数据202的输入。每个分类器具有提供指示应用于分类器的输入的特征数据是否与用于分类器的会话类型匹配的匹配数据204的输出。每个分类器具有与其他分类器的参数不同且响应于训练过程而被设置的参数。

可以在输入处理模块中使用各种类型的模式分类器中的任何类型的模式分类器,诸如决策树、神经网络、向量机等。一般而言,模式分类器接收由多个特征定义的输入,并且提供指示该输入多么好地匹配如下模式的输出:分类器已经被训练为匹配这些模式。一般而言,输出是在诸如0到1的定义范围内的分数,其使用相似性或距离度量或概率测度的形式被计算出。分类器的参数(诸如相似性或距离或概率度量的参数)通过训练过程而被设置。在一个示例实现方式中,可以使用二元分类器来实现分类器,该二元分类器使用逻辑回归分类方法。

由分类器使用的特征通常是输入被转换成的规范形式。对于会话输入,这样的特征可以包括诸如会话输入中的单词的形式、那些单词的顺序、那些单词的n元语法(n-gram)以及其他相关信息,诸如会话输入的源、可能可用的任何情绪或音调提示、环境数据、相关的关键词等。作为一个示例,特征可以包括所有出现的词,词的n元语法(例如,2或3词序列,诸如,对于“how old are you?”,示例n元语法是how_old,old_are,are_you等等),话语的单词长度,每个单次的词性(例如,“old”是形容词),描述相似单词集的嵌入(数字),描述输入的分析树等。

选择器206具有被连接以从分类器200接收匹配数据204的输入。选择器具有输出,该输出基于从分类器接收到的匹配数据204来从用于每个会话类型的会话响应的集合212提供会话响应208。会话响应208可以按照各种方式被生成。

在一个示例实现方式中,由分类器输出的匹配数据204是由分类器计算出的分数,并且选择器206选择与产生最佳分数的分类器相应的会话类型。作为另一个示例,可以考虑在最佳分数的范围内产生分数的所有分类器。如果存在会话类型的层级,则选择多个分类器尤其有用。如果更一般类型的分类器和更具体类型的分类器都产生合适的匹配分数,则可以基于具有更具体的会话类型的分类器来选择会话类型。阈值可被应用于所有分数,以确保分数足够高以指示会话输入的存在。转而,选择器访问会话响应的集合212以从为选择的会话类型存储的那些中选择会话响应。从集合中择会话响应可以按照各种方式被执行,诸如随机、伪随机、准随机选择、循环选择、最近最少使用、响应的反馈和评级等等。

用于每个会话类型的会话响应的集合212通常由具有为这样的服务创建内容的经验的个人创建。如下面更详细描述的,这些人类创作的响应可以由也参与通过向分类器的输入提供标签来训练分类器的个体创建。被应用于会话输入的标签指示会话输入是会话类型的肯定示例还是否定示例。集合212以将每个会话响应与会话类型相关联的方式存储会话响应。因此,集合212是代表会话响应/会话类型对的数据集,其可以按照允许鉴于会话类型来容易地访问和选择会话响应的各种方式中的任何方式被存储。会话响应通常使用字符串而被表示,其可以在长度上限于一定数量的字符以提供一致的存储格式。会话类型可以用任何标识符而被表示,诸如字母数字标识符,其可以与用于该会话类型的分类器直接或间接地相关联。

可以使用各种其他技术中的任何技术来基于由一组分类器输出的匹配数据204来从集合212选择会话响应。

在一些实现方式中,描述对话状态214的信息也可以被存储,并且转而被选择器206或分类器200使用。对话状态可以是描述一个或多个先前会话输入、会话响应和会话类型的数据。这样的信息被图示为由选择器206提供,但是也可以由分类器200或专门设计为跟踪会话状态的系统的另一组件提供。这样的信息被图示为被提供给分类器之一,但是也可以被提供给所有分类器、分类器的子集或未被提供给分类器。在一些实现方式中,会话状态可以被视为应用于分类器的特征202。用于当前处理的会话输入的会话类型的分类可以受到对话状态214的影响。备选地或组合地,对用于当前处理的会话输入的会话类型和会话响应的选择可以受到对话状态214的影响。作为实际示例,如果会话输入是“今天费城的天气如何?”,则生成与天气相关的会话响应。如果下一个会话输入是“明天如何?”,则会话状态信息214可以用来确保生成与天气相关的会话响应。例如,关于对话类型层级的信息可以与对话状态信息组合以做出这样的选择。

图3中的流程图描述了这一示例输入处理模块的操作。

在图3中,操作开始于接收300会话输入。从会话输入导出的特征被应用302到多个分类器的输入。从多个分类器接收304匹配数据,并将其用于选择306会话类型。然后基于选择的会话类型来输出308会话响应。

现在已经描述了输入处理模块,现在将更详细地描述用于分类器的训练过程的示例实现方式。

在一种实现方式中,使用用于常规分类器的常规训练过程,从已知的有限集合的会话类型和对应的示例开始。使用随机采样或一些其他方式,示例被应用于分类器,并且基于分类器的输出和被应用于分类器的示例之间的误差来调整分类器的参数。在针对给定会话类型训练了分类器之后,可以使用分类器来生成会话响应。

在一种实现方式中,分类器可以是二进制分类器,其可以使用主动学习过程被训练。在这样的过程中,训练通过选择400会话输入的一组(例如,十个)肯定示例和一组(例如,十个)否定示例而开始。肯定示例是与分类器的会话类型匹配的会话输入。例如,如果用于分类器的会话类型是“关于一地的天气的问题”,那么“今天西雅图的天气是什么?”是肯定示例;“你多大了?”是否定示例。在使用二进制分类器的一种实现方式中,标签“0”或“1”被应用于示例话语,其中“1”指示分类器应该在这一话语上触发,并且“0”指示分类器不应该触发。

通过使用常规技术、使用肯定示例和否定示例的集合设置分类器的初始参数来初始化402分类器。给定初始化的分类器,通过将会话输入的训练集合(每个被称为训练输入)应用404于分类器来执行训练。训练集可以从各种源被收集,诸如已经结合服务而被存储的实际会话输入。在这一示例中,训练输入是从实际会话输入导出的特征。每个训练输入导致来自分类器的得分。如果结果明显是肯定示例或否定示例,即在分数范围的任一极值的阈值量内,则可以自动地标记训练输入;然而,这样的自动标记可以产生并且然后加强错误,并且不是优选的。否则,具有不明确结果(既不是肯定匹配也不是否定匹配)的任何训练输入被呈现406给个体,以用于标记为用于该分类器的会话类型的肯定示例或否定示例。然后使用这些附加训练输入的标记来更新408分类器。然后,该过程可以被重复一次或多次,如由至步骤404的箭头指示的那样。

图5是在图4中描述的操作中使用的训练处理模块的示例实现方式的数据流图。在图5中,会话输入的集合500被存储在计算机可读存储装置中。每个存储的输入被称为训练输入。训练输入可以与标签和对应的会话类型相关联。利用多种训练类型,训练输入可以与多个标签相关联。训练模块502接收从会话输入和标签506导出的特征504。这些用于设置用于会话类型的分类器510的参数508。

标签通常由审查训练输入并将它们标记为会话类型的肯定示例或否定示例的个体512输入。通过用户设备上的用户界面516向个体512呈现训练输入和会话类型的指示(在514处示出)。个体通过用户界面516为该训练输入提供标签518。

个体512还可以通过用户界面516或另一用户界面,在相同或不同的用户设备上提供用于会话类型的会话响应520。这些会话响应被存储在输入处理模块中,诸如在图2中所示的。

通过使相同的个体准备会话响应和会话输入的标签二者,系统更有可能具有适于给定输入的响应。这样的能力通过具有使用标记的输入而被训练的会话类型的分类器和按照会话类型被选择的会话响应而被提供。换句话说,计算机提供对会话输入的适当响应,因为生成会话响应的个体是为会话输入提供标签的相同个体。通过使用由标记的会话输入的肯定示例和否定示例而被训练的每个会话类型的分类器,内容编辑者可以是标记者和编辑者两者。

使用会话输入的大语料库,计算机可以通过使用各种形式的聚类算法来标识可能的会话类型。可以基于其中放置有话语的会话类型来选择用于训练的样本,并且还可以标识新的会话类型。聚类算法可以将类似的会话输入分组为一个集合,从而产生多个不同的集合,其中每个集合具有类似的会话输入。来自集合的样本可以用作用于该集合的对应的会话类型的肯定示例,来自其他集合的样本可以用作否定示例。

作为一个示例实现方式,自动聚类包括将k均值应用于话语的向量空间表示,例如,使用词袋向量,或者使用潜在语义分析(LSA)或潜在狄利克雷分配(LDA)的对话语的投影。在另一示例实现方式中,可以使用现有的分类器,并排除分类器触发的话语(即,已知会话类型的话语);不会导致分类器触发的剩余话语可以与新的会话类型相关联。

在一种实现方式中,分类器还可以被扩展为包括用于社交会话的单词和短语的类别。如上所述,会话类型可以被分组成层级。这样的层级可以基于与会话输入相关联的关键字或从会话输入的集合导出的其他类别信息。这样的类别可以被自动地标识,例如,使用自动聚类。作为特定示例,可以通过将单词投影到连续空间中并在该连续空间中聚类来执行自动聚类。例如,可以使用LSA、LDA或利用神经网络学习的单词嵌入来执行投影,并且然后可以使用k均值来执行聚类。用于引入类别的另一种方法是内容编辑者提供示例单词/短语,并自动地扩展类别。例如,如果内容编辑者提供了“出生”、“长大”、“童年”,则可以自动添加更多的术语,如“在…被抚养”、“我来自”、“在…上学”。也可以使用聚类技术的半监督的变体(例如LSA,LDA或词嵌入)。

在一个方面中,使用用于基于将从会话输入导出的特征应用于多个分类器来选择会话响应的装置来处理会话输入。每个分类器与会话类型相关联。会话响应也与会话类型相关联。

在另一方面中,会话输入可以通过将表示会话输入的输入数据接收到存储器中而被处理。从输入数据导出的特征数据可以被应用于多个分类器,每个分类器表示来自多个会话类型中的会话类型。分类器响应于输入特征数据来输出匹配数据。根据由分类器输出的匹配数据,根据来自多个会话类型中的一个或多个会话类型来选择会话响应。

在本节中的前述方面中的任何方面中,特征可以包括从会话输入生成的n元语法。这样的特征可以包括指示与会话输入相关的情绪的数据。这样的特征可以包括指示用于会话输入的主题的一个或多个类别的数据。

在本节中的前述方面中的任何方面中,每个分类器可以是二进制分类器,从而使得响应于特征数据输出的匹配数据表示特征数据匹配如下会话输入的概率:该会话输入被标记为与二进制分类器相关联的会话类型的肯定示例。

在本节中的前述方面中的任何方面中,特征数据可以从会话输入和与会话输入相关联的其他信息被导出。

在本节中的前述方面中的任何方面中,会话响应可以从存储用于多个会话类型的多个会话响应的集合被选择。

在本节中的前述方面中的任何方面中,可以根据由分类器输出的匹配数据来从多个会话类型中选择一个或多个会话类型。可以根据选择的一个或多个会话类型来选择会话响应。可以基于来自由分类器输出的匹配数据中的分数来选择一个或多个会话类型。

在本节中的前述方面中的任何方面中,每个分类器可以输出分数。分数可以在任何值范围内,其中某些值指示特征与由分类器表示的会话类型的匹配,其中某些值指示不存在匹配。指示匹配的值可以是范围的极值,例如该范围中的最大值。备选地,分数可以指示与会话类型匹配的概率。

在本节中的前述方面中的任何方面中,可以维持对话状态信息。还可以基于维护的对话状态信息来选择会话响应。还可以基于维护的状态信息和会话类型层级信息来选择会话响应。

在本节中的前述方面中的任何方面中,来自会话输入的实体的输入和对会话响应的该实体的输出可以在与根据会话输入产生特征、将那些特征应用于分类器并且选择会话响应的其他设备和计算机分离的一个或多个设备上被执行。在这样的情况下,接收输入的设备被连接到一个或多个计算机以传输关于会话输入的信息。类似地,接收具有关于会话响应的信息的传输的设备被连接到一个或多个计算机以接收这样的传输。每个这样的设备或计算机包括存储器、通过其接收输入数据的输入、被配置为处理输入数据的处理器以及可以通过其将输出数据提供给另一设备或计算机的输出。

在本节中的前述方面中的任何方面中,由实体用来提供会话输入和接收会话响应的一个或多个设备可以是多个设备中的任何设备,包括但不限于移动电话、平板计算机、手持计算设备、基于汽车的计算机、膝上型计算机、便携式计算机、服务器计算机、笔记本计算机、板式计算机、台式计算机、家庭娱乐系统、游戏机、用于有线卫星或其他电视接收的机顶盒、电视、智能显示设备等。

在前述方面中的任何方面中,可以训练分类器以将会话输入分类成会话类型。这样的训练过程可以通过将第一数目的会话输入标记为会话类型的肯定示例并将第二数目的会话输入标记为会话类型的否定示例而被实现。分类器使用标记的会话输入而被构建。会话输入的语料库被访问。来自语料库的会话输入被应用于分类器以获得来自分类器的针对每个会话输入的输出。基于来自分类器的针对会话输入的输出,向一个或多个个体呈现附加的会话输入以用于标记。从一个或多个个体接收用于呈现的附加会话输入的标签。使用附加的标记的会话输入来重新训练分类器。

在涉及分类器的训练的本节的前述方面中的任何方面中,可以使用重新训练的分类器、使用重复应用、呈现、接收和重新训练的步骤的过程来训练分类器。

在前述方面中的任何方面中,针对与一个或多个个体对其执行标记的分类器相关联的会话类型的会话响应可以从执行了标记的个体被接收。

在前述方面中的任何方面中,可以从会话输入的语料库识别附加会话类型。例如,语料库中的会话输入可以被聚类,并且会话类型可以被分配给集群。作为另一示例,会话输入可被应用于多个分类器。标识多个分类器中没有一个分类器指示匹配的会话输入。将一个或多个新的会话类型分配给标识出的会话输入。

在前述方面中的任何方面中,呈现用于标记的会话输入可以包括根据分类器的输出是否指示对分类器的附加会话输入既不是肯定匹配也不是否定匹配来选择要被呈现的附加会话输入。

在前述方面中的任何方面中,分类器的会话类型可以被包括在会话类型的层级中。可以基于具有高于阈值的分数的分类器来选择会话类型,并且在更一般的会话类型上选择更具体的会话类型。对会话输入的语料库的自动聚类可以为会话输入提供类别信息。

本部分的前述方面中的任何方面可以在一个或多个计算机系统中被体现,作为这样的计算机系统的任何单独的一个或多个组件,作为由一个或多个这样的计算机系统或者这样的计算机系统的任何单独的组件执行的过程,或作为包括计算机存储装置的一个或多个制品,该计算机存储装置存储有计算机程序指令并且当计算机程序指令由一个或多个计算机处理时,将那些计算机配置为提供这样的计算机系统或这样的计算机系统的任何单独的组件。

在结合图1至图5而被描述的示例实现方式中,可以存在两个应用,一个用于建立分类器(例如,训练处理模块),并且另一个用于使用经训练的分类器以用于响应于会话输入(例如,输入处理模块)。这些应用中的每个应用可以包括实现该应用的不同组件的多个应用。每个应用可以被设计为在单独的平台(例如,具有操作系统的计算机,该操作系统管理在计算机上运行的应用对计算机的资源的访问)上执行。计算机如下面结合图6所描述的而被实现。

图6图示了可以用来实现图1至图5的系统的各种组件的示例计算机。计算机可以是各种通用或专用计算硬件配置中的任何一种。可以使用的计算机类型的一些示例包括但不限于个人计算机、游戏机、机顶盒、手持或膝上型设备(例如,媒体播放器、笔记本计算机、平板计算机、蜂窝电话、个人数据助理、语音记录器)、服务器计算机、多处理器系统、基于微处理器的系统、可编程消费者电子产品、网络PC、小型计算机、大型计算机和包括上述类型的计算机或设备中的任何类型的分布式计算环境等。

参考图6,示例计算机600包括至少一个处理单元602和存储器604。该计算机可以具有多个处理单元602。处理单元602可以包括一个或多个处理核(未示出),其彼此独立地操作。诸如图形处理单元620的附加协处理单元也可以存在于计算机中。存储器604可以是易失性的(诸如动态随机存取存储器(DRAM)或其他随机存取存储器设备)、非易失性的(诸如只读存储器、闪存等)或者这两者的某种组合。存储器的这种配置在图6中由虚线606示出。计算机600可以包括附加存储装置(可移除和/或不可移除),附加存储装置包括但不限于磁记录或光学记录的盘或带。这样的附加存储装置在图6中由可移除存储装置608和不可移除存储装置610示出。图6中的各种组件通常通过诸如一个或多个总线630的互连机制而互连。

计算机存储介质是其中通过计算机可以将数据存储在可寻址物理存储位置中和从可寻址物理存储位置取回数据的任何介质。计算机存储介质包括易失性和非易失性存储器,以及可移除和不可移除存储介质。存储器604和606,可移除存储装置608和不可移除存储装置610都是计算机存储介质的示例。计算机存储介质的一些示例是RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学或磁光记录的存储设备、磁带盒、磁带、磁盘存储装置或其他磁存储设备。计算机存储介质和通信介质是相互排斥的介质类别。

计算机600还可以包括允许计算机通过通信介质与其他设备通信的一个或多个通信连接612。通信介质通常通过在物质上传播经调制的数据信号(诸如载波或其它传输机制)来在有线或无线物质上传输计算机程序指令、数据结构、程序模块或其他数据。术语“经调制的数据信号”意指使其特性中的一个或多个特性以对信号中的信息进行编码的方式被设置或改变、由此改变信号的接收设备的配置或状态的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外和其他无线介质的无线介质。通信连接612是与通信介质对接以通过通信介质传输数据和从通信介质接收数据的设备,诸如网络接口或无线电发射机。

计算机600可以具有各种输入设备614,诸如键盘、鼠标、笔、相机、触摸输入设备等。还可以包括一个或多个输出设备616,诸如显示器、扬声器、打印机等。所有这些设备在本领域中是公知的,并且在这里不需要详细讨论。输入设备和输出设备可以是包含图6中的计算机的各种组件的外壳的一部分,或者可以是与外壳分离的并且通过各种连接接口(诸如串行总线、无线通信连接等)而被连接到计算机。各种输入设备和输出设备可以实现自然用户界面(NUI),其是使得用户能够以“自然”方式与设备交互的任何界面技术,没有由诸如鼠标、键盘、遥控器等输入设备施加的人为限制。

NUI方法的示例包括依赖于语音识别、触摸和指示笔识别、屏幕上和与屏幕相邻的姿势识别、悬浮姿势、头部和眼睛跟踪、语音和讲话、视觉、触摸、手势和机器智能,并且可以包括使用触敏显示器、语音和讲话识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统和其它相机系统及其组合)的运动姿势检测、使用加速度计或陀螺仪的运动姿势检测、面部识别、三维显示、“头部、眼睛和注视跟踪”、沉浸式增强现实和虚拟现实系统,所有这些提供更自然的接口,以及使用电场感测电极来感测脑活动的技术(EEG和相关方法)的技术。

各种存储装置610、通信连接612、输出设备616和输入设备614可以与计算机的其余部分一起被集成在外壳内,或者可以通过计算机上的输入/输出接口设备而被连接,在这种情况下,标号810、812、814和816视具体情况而定可以指示用于连接到设备的接口或者设备本身的接口。

诸如在上面的图1至图5中描述的并且在计算机上操作的系统的每个组件(其也可以被称为“模块”或“引擎”等)可以使用一个或多个计算机的一个或多个处理单元以及由所述一个或多个处理单元处理的一个或多个计算机程序而被实现。计算机程序包括计算机可执行指令和/或计算机解释指令(诸如程序模块),这些指令由一个或多个计算机中的一个或多个处理单元处理。通常,这样的指令定义例程、程序、对象、组件、数据结构等,其当由处理单元处理时指令处理单元对数据执行操作或将处理器或计算机配置为实现各种组件或数据结构。这样的组件通过访问存储装置或存储器中的数据并且将数据存储在存储装置或存储器中而具有输入和输出。

这种计算机系统可以在分布式计算环境中被实施,其中操作由通过通信网络链接的多个计算机执行。在分布式计算环境中,计算机程序可以位于本地和远程的计算机存储介质中。

备选地或者附加地,在此描述的各种组件中的一个或多个组件的功能可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC),专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。

在所附权利要求的前序中的术语“制品”、“过程”、“机器”和“物质组成”旨在将权利要求限制为被认为落入通过在35U.S.C.§101中使用这些术语而被定义的可专利的主题的范围内的主题。

应当理解,所附权利要求中定义的主题不一定限于上述的具体实现方式。上述具体实现方式仅作为示例被公开。

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