CN117377942A - 助理系统的主动收听 - Google Patents

助理系统的主动收听 Download PDF

Info

Publication number
CN117377942A
CN117377942A CN202280030440.4A CN202280030440A CN117377942A CN 117377942 A CN117377942 A CN 117377942A CN 202280030440 A CN202280030440 A CN 202280030440A CN 117377942 A CN117377942 A CN 117377942A
Authority
CN
China
Prior art keywords
user
assistant
particular embodiments
client system
user input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280030440.4A
Other languages
English (en)
Inventor
瑞安·弗雷德里克·斯图尔特
大卫·莱维森
塔拉·拉曼南
塞缪尔·斯蒂尔·诺特克
莱夫·黑文·马丁森
希斯·威廉·布莱克
克里斯托夫·查兰德
左正平
罗欣·达巴斯
崔振华
伊恩·格雷夫斯
普拉莫德·古鲁纳特
劳埃德·希莱尔
克里希纳·柴坦尼亚·戈皮塞蒂·斯里尼瓦斯
陈元汇
迈克尔·罗伯特·汉森
刘白杨
刘洪磊
阿列克谢·根纳季耶维奇·苏尔科夫
艾哈迈德·马格迪·哈米德·穆罕默德
阿里雷扎·迪拉夫松
艾米·劳森·贝尔曼
普一鸣
刘冰
克里斯托弗·德保利
克里斯托弗·E·巴尔梅斯
丹尼尔·约翰·威格多
丹尼斯·萨文科夫
埃里克·罗伯特·诺瑟普
加布里埃尔·凯瑟琳·莫斯基
加内什·文卡特什
周浩
许虎
伊拉娜·奥利·沙洛维茨
杰克逊·拉辛
约翰·雅各布·布莱克利
杰里米·吉尔莫·卡恩
杰西卡·基钦斯
李季航
于劲松
约书亚·文森特
贾斯汀·丹尼
凯尔·阿奇
马克·帕伦特
马修·丹·费兹利
梅加·琼琼瓦拉
梅加·蒂瓦里
迈克尔·格鲁克
尼古拉斯·豪尔赫·弗洛雷斯
皮尤什·卡姆卡
普加·塞西
文胜焕
斯蒂芬妮·桑托萨
斯瓦蒂·戈尔
甘新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Meta Platforms Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/521,623 external-priority patent/US20220366904A1/en
Application filed by Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN117377942A publication Critical patent/CN117377942A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

在一个实施例中,一种方法包括:从第一客户端系统接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词;将助理xbot设置为收听模式,其中在该助理xbot处于收听模式时经由第一客户端系统提供连续非视觉反馈;在助理xbot处于收听模式时从第一客户端系统接收第二用户输入,该第二用户输入包括用户话语;基于用户话语的完成来确定第二用户输入已结束;以及将助理xbot设置为非活动模式,其中在助理xbot处于非活动模式时,经由第一客户端系统终止非视觉反馈。

Description

助理系统的主动收听
技术领域
本公开总体上涉及网络环境内的数据库和文件管理,尤其涉及用于智能助理系统的硬件和软件。
背景技术
助理系统可以基于用户输入、位置感知和从各种在线源(例如,天气状况、交通拥堵、新闻、股票价格、用户日程、零售价格等)访问信息的能力的组合,来代表用户提供信息或服务。用户输入可以包括文本(例如,在线聊天)(尤其是在即时消息收发应用或其它应用中的文本)、语音、图像、运动或它们的组合。助理系统可以基于用户输入执行礼宾型服务(例如,预订晚餐、购买活动门票、进行旅行安排)或提供信息。助理系统还可以在无需用户发起或交互的情况下,基于在线信息和事件执行管理或数据处理任务。可以由助理系统执行的那些任务的示例可以包括日程管理(例如,向晚餐约会者发送用户由于交通状况而迟到的警报、更新双方的日程、以及改变餐厅预订时间)。该助理系统可以通过以下项的组合来实现:计算设备、应用编程接口(application programming interface,API)和用户设备上的激增的应用。
社交网络系统可以使其各用户(例如,个人或组织)能够与其交互和通过其而彼此交互,该社交网络系统可以包括社交网络网站。社交网络系统可以利用来自用户的输入,在社交网络系统中创建和存储与用户相关联的用户简档(user profile)。用户简档可以包括基本信息、通信信道信息和关于用户个人兴趣的信息。社交网络系统还可以利用来自用户的输入,创建和存储该用户与社交网络系统中的其他用户的关系的记录,并提供用于促进用户之间或用户之中的社交互动的服务(例如,资料/新闻推送帖子、照片共享、活动组织、消息传递、游戏、或广告)。
社交网络系统可以通过一个或多个网络将与其服务相关的内容或消息发送到用户的移动或其它计算设备。用户还可以在用户的移动或其它计算设备上安装软件应用,以访问用户的用户简档和社交网络系统内的其它数据。社交网络系统可以生成一组个性化的内容对象(例如,与用户相关联的其他用户的聚合故事的新闻推送)以显示给该用户。
发明内容
在特定实施例中,助理系统可以帮助用户获得信息或服务。助理系统可以使用户能够在有状态和多轮会话(stateful and multi-turn conversations)中通过各种模态(例如,音频、语音、文本、视觉、图像、视频、姿势、运动、活动、位置、方位)的用户输入与助理系统交互,以接收来自助理系统的帮助。作为示例而非限制,助理系统可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模态输入、或它们的任何组合。由用户提供的用户输入可以与特定的助理相关任务相关联,并且可以包括例如用户请求(例如,对信息或执行动作的口头请求)、用户与和助理系统相关联的助理应用的交互(例如,经由触摸或姿势选择用户界面(UI)元素)、或者可以由助理系统检测和理解的任何其它类型的合适的用户输入(例如,由用户的客户端设备检测到的用户动作)。助理系统可以创建并存储用户简档,该用户简档包括与用户相关联的个人信息和上下文信息。在特定实施例中,助理系统可以使用自然语言理解(natural-language understanding,NLU)来分析用户输入。该分析可以基于用户的用户简档,以便更个人化和上下文感知的理解。助理系统可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,助理系统可以与不同的代理交互以获得与所解析的实体相关联的信息或服务。助理系统可以通过使用自然语言生成(natural-language generation,NLG)为用户生成关于信息或服务的响应。通过与用户的交互,助理系统可以使用对话管理技术来管理和推进与用户的对话流。在特定实施例中,助理系统还可以通过汇总信息来帮助用户有效和高效地理解所获得的信息。助理系统还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具来帮助用户更多地参与在线社交网络。该助理系统还可以帮助用户管理不同的任务,例如保持对事件的追踪。在特定实施例中,助理系统可以在没有用户输入的情况下,在与用户相关的时间基于用户简档主动执行与用户兴趣和偏好相关的任务。在特定实施例中,助理系统可以检查隐私设置以确保允许遵循用户的隐私设置来访问用户的简档或其它用户信息并执行不同任务。
在特定实施例中,助理系统可以经由构建在客户端侧过程和服务器侧过程上的混合架构来帮助用户。客户端侧过程和服务器侧过程可以是用于处理用户输入和向用户提供帮助的两个并行工作流。在特定实施例中,客户端侧过程可以在与用户相关联的客户端系统上本地执行。相比之下,服务器侧过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统上的仲裁器可以对如下进行协调:接收用户输入(例如,音频信号),确定是使用客户端侧过程、服务器侧过程还是客户端侧过程和服务器侧过程来响应用户输入,并分析来自每个过程的处理结果。仲裁器可以基于前述分析来指示客户端或服务器端的代理执行与用户输入相关联的任务。执行结果可以被进一步渲染作为到客户端系统的输出。通过利用客户端侧过程和服务器侧过程,助理系统可以有效地帮助用户优化使用计算资源,同时保护用户隐私并增强安全性。
在特定实施例中,在用户向启用助理的设备说唤醒词之后,在启用助理的设备的传声器正在收听用户并且用户正在讲话时,助理系统可以向用户提供主动的非视觉反馈(例如,音频和触觉)。连续非视觉反馈可以通过向用户提供助理系统正在主动收听其话语的指示来改善用户体验。在启用助理的设备与配套设备配对(例如,智能眼镜与智能手机配对)的情况下,该特征还可以具有如下好处:减少/消除由在配对的配套设备上正运行的助理配套应用的操作系统所导致的抑制(throttle)。尽管本公开描述了由特定系统以特定方式提供特定反馈,但是本公开考虑了由任何合适的系统以任何合适的方式提供任何合适的反馈。
在特定实施例中,助理系统可以从第一客户端系统接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词。然后,助理系统可以将助理xbot设置为收听模式。相应地,在助理xbot处于收听模式时,可以经由第一客户端系统提供连续非视觉反馈。在特定实施例中,在助理xbot处于收听模式时,助理系统可以从第一客户端系统接收第二用户输入,该第二用户输入包括用户话语。然后,助理系统可以基于用户话语的完成来确定第二用户输入已结束。助理系统还可以将助理xbot设置为非活动模式。在特定实施例中,在助理xbot处于非活动模式时,可以经由第一客户端系统终止非视觉反馈。在特定实施例中,第一用户输入和第二用户输入可以包括与助理系统的整个对话会话,或者可以是与助理系统的多轮对话会话的一部分。
随着操作容量的增加,主动收听存在某些技术挑战。一个技术挑战可包括,在客户端系统被锁定时,增加客户端系统上的助理系统的操作容量。本文所公开的实施例提出的用于解决该挑战的解决方案可以是经由客户端系统提供的连续非视觉反馈,这是因为操作系统可以在无需解锁客户端系统的情况下,响应于非视觉反馈而增加助理系统可访问的计算容量。另一个技术挑战可以包括避免阻碍用户对输入语音命令的感知能力。本文所公开的实施例提出的用于解决该挑战的解决方案可以是微妙且非间断的新设计的背景声音,该背景声音可能不会导致用户对何时应该发出语音命令感到困惑。
根据本公开的第一方面,提供了一种方法,该方法包括由一个或多个计算系统:从第一客户端系统接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词;将助理xbot设置为收听模式,其中,在助理xbot处于收听模式时,经由第一客户端系统提供连续非视觉反馈;在助理xbot处于收听模式时,从第一客户端系统接收第二用户输入,该第二用户输入包括用户话语;基于用户话语的完成来确定第二用户输入已结束;以及将助理xbot设置为非活动模式,其中,在助理xbot处于非活动模式时,经由第一客户端系统终止非视觉反馈。
在一些实施例中,该一个或多个计算系统包括第一客户端系统。
在一些实施例中,该一个或多个计算系统包括配套设备,该配套设备与第一客户端系统配对。
在一些实施例中,该配套设备在唤醒词被接收到时处于锁定状态。
在一些实施例中,助理xbot与在配套设备上执行的配套应用相关联。
在一些实施例中,配套应用正作为后台应用在配套设备上执行,并且其中,配套设备允许配套应用访问低于阈值容量的计算容量。
在一些实施例中,该方法还包括:响应于连续非视觉反馈,将配套应用作为前台应用来执行;以及增加计算容量,配套应用被允许访问大于阈值容量的计算容量。
在一些实施例中,该第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(augmented-reality,AR)眼镜、虚拟现实(virtual-reality,VR)头戴式视图器(headset)或智能手表。
在一些实施例中,该方法还包括:响应于第一用户输入,经由第一客户端系统在连续非视觉反馈之前提供初始非视觉反馈,其中,该初始非视觉反馈指示助理xbot的收听模式的启动。
在一些实施例中,该连续非视觉反馈基于声音、振动或触觉中的一者或多者。
在一些实施例中,该方法还包括:在助理xbot处于收听模式时,经由第一客户端系统提供连续视觉反馈。
在一些实施例中,该连续视觉反馈基于以下中的一者或多者:与助理xbot相关联的图标;收听模式的视觉指示;或光线。
在一些实施例中,该一个或多个计算系统包括配套设备,该配套设备与第一客户端系统配对,其中,该方法还包括:在助理xbot处于收听模式时,经由配套设备提供连续视觉反馈。
在一些实施例中,该连续视觉反馈基于以下中的一者或多者:与助理xbot相关联的图标;收听模式的视觉指示;或光线。
根据本公开的第二方面,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,该软件在被执行时能够操作以:从第一客户端系统接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词;将助理xbot设置为收听模式,其中,在助理xbot处于收听模式时,经由第一客户端系统提供连续非视觉反馈;在助理xbot处于收听模式时,从第一客户端系统接收第二用户输入,该第二用户输入包括用户话语;基于用户话语的完成来确定第二用户输入已结束;以及将助理xbot设置为非活动模式,其中,在助理xbot处于非活动模式时,经由第一客户端系统终止非视觉反馈。
在一些实施例中,该第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表。
在一些实施例中,该软件在被执行时还能够操作以:响应于第一用户输入,经由第一客户端系统在连续非视觉反馈之前提供初始非视觉反馈,其中,该初始非视觉反馈指示助理xbot的收听模式的启动。
根据本公开的第三方面,提供了一种系统,该系统包括:一个或多个处理器;以及非暂态存储器,该非暂态存储器耦接到处理器并且包括能够由处理器执行的指令,所述处理器在执行指令时能够操作以:从第一客户端系统接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词;将助理xbot设置为收听模式,其中,在助理xbot处于收听模式时,经由第一客户端系统提供连续非视觉反馈;在助理xbot处于收听模式时,从第一客户端系统接收第二用户输入,该第二用户输入包括用户话语;基于用户话语的完成来确定第二用户输入已结束;以及将助理xbot设置为非活动模式,其中,在助理xbot处于非活动模式时,经由第一客户端系统终止非视觉反馈。
在一些实施例中,该第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表。
在一些实施例中,所述处理器在执行指令时还能够操作以:响应于第一用户输入,经由第一客户端系统在连续非视觉反馈之前提供初始非视觉反馈,其中,该初始非视觉反馈指示该助理xbot的该收听模式的启动。
本文所公开的某些实施例可以提供一个或多个技术优势。这些实施例的技术优势可以包括改进用户对用户与助理系统之间来回交互的感知步调,这是因为连续声音可以通过消除交互中的静默停顿来将对交互时延或延迟的感知最小化。这继而可能有助于改善整体的用户体验和感知效率。这些实施例的另一个技术优势可以包括改进的用户感知反馈,这是因为当存在连续非视觉反馈和/或视觉反馈时,用户可以具有助理系统正在主动收听和处理输入的更高的置信度。本文所公开的某些实施例可以不提供上述技术优势、或提供上述技术优势中部分或全部。考虑到本公开的附图、说明书和权利要求书,一个或多个其它技术优势对于本领域技术人员来说是显而易见的。
本文所公开的各个实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文所公开的实施例中的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括本文所公开的实施例中的部件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附的针对方法、存储介质、系统和计算机程序产品的权利要求中特别公开,其中,在一个权利要求类别(例如,方法)中所提到的任何特征也可以在另一个权利要求类别(例如,系统)中主张。所附权利要求书中的从属关系或回引仅出于形式原因而选择。然而,由于有意引用任何先前的权利要求(特别是多项从属关系)而产生的任何主题也可以被主张,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被主张。可主张的主题不仅包括所附权利要求书中所陈述的多个特征的多种组合,还包括权利要求书中的多个特征的任何其它组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其它特征或其它特征的组合进行组合。此外,本文所描述或所描绘的实施例和特征中的任何可以在单独的权利要求中被主张,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被主张。
附图说明
图1示出了与助理系统相关联的示例网络环境。
图2示出了助理系统的示例架构。
图3示出了助理系统的示例流程图。
图4示出了处理用户输入的以任务为中心的示例流程图。
图5示出了用于主动收听的示例非视觉反馈。
图6示出了用于主动收听的示例非视觉反馈和视觉反馈。
图7示出了用于具有增加的操作容量的主动收听的示例方法。
图8示出了示例计算机系统。
具体实施方式
系统概述
图1示出了与助理系统相关联的示例网络环境100。网络环境100包括通过网络110彼此连接的客户端系统130、助理系统140、社交网络系统160和第三方系统170。尽管图1示出了客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110的特定布置,但本公开考虑了客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110的任何合适的布置。作为示例而非限制,客户端系统130、社交网络系统160、助理系统140和第三方系统170中的两者或更多者可以绕过网络110而彼此直接连接。作为另一示例,客户端系统130、助理系统140、社交网络系统160和第三方系统170中的两者或更多者可以在物理上或逻辑上整体或部分地彼此位于同一位置。此外,尽管图1示出了特定数量的客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110,但是本公开考虑了任何合适数量的客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110。作为示例而非限制,网络环境100可以包括多个客户端系统130、多个助理系统140、多个社交网络系统160、多个第三方系统170和多个网络110。
本公开考虑了任何合适的网络110。作为示例而非限制,网络110的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线局域网(wireless LAN,WLAN)、广域网(wide areanetwork,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、互联网的一部分、公共交换电话网络(Public Switched Telephone Network,PSTN)的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一网络110,或两个或更多个这种网络的组合。
多个链路150可以将客户端系统130、助理系统140、社交网络系统160和第三方系统170连接到通信网络110、或彼此连接。本公开考虑了任何合适的链路150。在特定实施例中,一个或多个链路150包括一个或多个有线(例如,数字用户线路(Digital SubscriberLine,DSL)或有线电缆数据服务接口规范(Data Over Cable Service InterfaceSpecification,DOCSIS))链路、无线(例如,Wi-Fi或全球微波接入互操作性(WorldwideInteroperability for Microwave Access,WiMAX))链路、或光(例如,同步光纤网络(Synchronous Optical Network,SONET)或同步数字体系(Synchronous DigitalHierarchy,SDH))链路。在特定实施例中,一个或多个链路150各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150、或两个或更多个这种链路150的组合。在整个网络环境100中,多个链路150不必都是相同的。在一个或多个方面,一个或多个第一链路150可以与一个或多个第二链路150不同。
在特定实施例中,客户端系统130可以是包括硬件、软件或嵌入式逻辑部件或两个或更多个此类部件的组合的任何合适的电子设备,并且可能够执行客户端系统130所实现或支持的功能。作为示例而非限制,客户端系统130可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位系统(GPS)设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持电子设备、蜂窝电话、智能手机、智能扬声器、智能手表、智能眼镜、增强现实(AR)智能眼镜、虚拟现实(VR)头戴式视图器、其它合适的电子设备、或它们的任何合适的组合。在特定实施例中,客户端系统130可以是智能助理设备。关于智能助理设备的更多信息可以在如下申请中找到:于2018年4月9日提交的申请号为15/949011的美国专利申请、于2018年10月5日提交的申请号为16/153574的美国专利申请、于2018年1月3日提交的申请号为29/631910的美国外观设计专利申请、于2018年1月2日提交的申请号为29/631747的美国外观设计专利申请、于2018年1月3日提交的申请号为29/631913的美国外观设计专利申请、于2018年1月3日提交的申请号为29/631914的美国外观设计专利申请,这些专利申请中的每一者通过引用而被并入。本公开考虑了任何合适的客户端系统130。在特定实施例中,客户端系统130可以使客户端系统130处的网络用户能够访问网络110。客户端系统130还可以使该用户能够与其它客户端系统130处的其他用户进行通信。
在特定实施例中,客户端系统130可以包括网络浏览器132,并且可以具有一个或多个后加组件(add-on)、插件或其它扩展。客户端系统130处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或其它将网络浏览器132定向到特定服务器(例如,服务器162、或与第三方系统170相关联的服务器)的地址,且网络浏览器132可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并向服务器传送该HTTP请求。服务器可以接受该HTTP请求,并且响应于该HTTP请求向客户端系统130传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端系统130可以基于来自服务器的HTML文件来渲染网络界面(例如,网页),以供呈现给用户。本公开考虑了任何合适的源文件。作为示例而非限制,根据特定需要,可以根据HTML文件、可扩展超文本标记语言(Extensible Hyper Text Markup Language,XHTML)文件或可扩展标记语言(ExtensibleMarkup Language,XML)文件来渲染网络界面。这种界面还可以执行脚本、标记语言和脚本的组合等。在本文中,在适当的情况下,对网络界面的引用包括一个或多个对应的源文件(浏览器可以使用所述源文件来渲染网络界面),反之亦然。
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用134。客户端系统130处的用户可以使用社交网络应用134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用134来与用户的社交联系(例如,朋友、追随者、关注的账户、联系人等)通信。客户端系统130处的用户还可以使用社交网络应用134来在在线社交网络上与多个内容对象(例如,帖子、新闻文章、短暂内容等)交互。作为示例而非限制,用户可以使用社交网络应用134浏览热门话题和突发新闻。
在特定实施例中,客户端系统130可以包括助理应用136。客户端系统130处的用户可以使用助理应用136来与助理系统140交互。在特定实施例中,助理应用136可以包括助理xbot功能,该助理xbot功能作为前端接口用于与客户端系统130的用户进行交互(包括接收用户输入和呈现输出)。在特定实施例中,助理应用136可以包括独立应用。在特定实施例中,助理应用136可以集成到社交网络应用134或另一合适的应用(例如,消息收发应用)中。在特定实施例中,助理应用136还可以集成到客户端系统130、助理硬件设备或任何其它合适的硬件设备中。在特定实施例中,助理应用136也可以是助理系统140的一部分。在特定实施例中,可以经由网络浏览器132访问助理应用136。在特定实施例中,用户可以通过经由各种模态(例如,音频、语音、文本、视觉、图像、视频、姿势、运动、活动、位置、方位)向助理应用136提供用户输入,来与助理系统140交互。助理应用136可以(例如经由助理xbot)将用户输入传送到助理系统140。基于用户输入,助理系统140可以生成响应。助理系统140可以将所生成的响应发送到助理应用136。然后,助理应用136可以经由各种模态(例如,音频、文本、图像和视频)将响应呈现给客户端系统130处的用户。作为示例而非限制,用户可以通过经由客户端系统130的传声器向助理xbot提供用户输入(例如,对关于附近车辆交通的当前状态的信息的口头请求)来与助理系统140交互。然后,助理应用136可以通过网络110将用户输入传送到助理系统140。助理系统140可以相应地分析用户输入,基于对用户输入的分析生成响应(例如,从第三方源获得的车辆交通信息),并将生成的响应传送回助理应用136。然后,助理应用136可以以任何合适的方式向用户呈现所生成的响应(例如,在客户端系统130的显示器上显示基于文本的推送通知和/或示出了附近车辆交通的本地地图的一个或多个图像)。
在特定实施例中,客户端系统130可以实现唤醒词检测技术,以允许用户使用与助理系统140相关联的一个或多个唤醒词来方便地激活助理系统140。作为示例而非限制,客户端系统130上的系统音频API可以连续地监测在客户端系统130处接收的用户输入,该用户输入包括音频数据(例如,语音数据帧)。在该示例中,与助理系统140相关联的唤醒词可以是语音短语“嘿助理”。在该示例中,当客户端系统130上的系统音频API在监测到的音频数据中检测到语音短语“嘿助理”时,助理系统140可以被激活以用于与用户的后续交互。在替代实施例中,可以实现类似的检测技术以使用与助理系统140相关联的特定非音频用户输入来激活助理系统140。例如,非音频用户输入可以是由客户端系统130的低功率传感器(例如,摄像头)检测到的特定视觉信号。作为示例而非限制,视觉信号可以是静态图像(例如,条形码、二维码、通用产品代码(universal product code,UPC))、用户的位置(例如,用户对客户端系统130的注视)、用户运动(例如,用户指向对象)或任何其它合适的视觉信号。
在特定实施例中,客户端系统130可以包括渲染设备137,以及可选地,配套设备138。渲染设备137可以被配置为为用户渲染由助理系统140生成的输出。配套设备138可以被配置为在特定情况下(例如,当渲染设备137不能执行与特定任务(例如与助理系统140的通信)相关联的计算时),在配套设备138上本地(即,在设备上)执行上述与特定任务(例如与助理系统140的通信)相关联的计算。在特定实施例中,客户端系统130、渲染设备137和/或配套设备138可以各自是包括硬件、软件或嵌入式逻辑部件或两个或更多个此类部件的组合的合适的电子设备,并且可能够分别或合作地执行本文描述的客户端系统130所实现或支持的功能。作为示例而非限制,客户端系统130、渲染设备137和/或配套设备138可以各自包括计算机系统,例如,台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、智能扬声器、虚拟现实(VR)头戴式视图器、增强现实(AR)智能眼镜、其它合适的电子设备,或它们的任何合适的组合。在特定实施例中,客户端系统130、渲染设备137和配套设备138中的一者或多者可以作为智能助理设备来操作。作为示例而非限制,渲染设备137可以包括智能眼镜,并且配套设备138可以包括智能手机。作为另一示例而非限制,渲染设备137可以包括智能手表,并且配套设备138可以包括智能手机。作为又一示例而非限制,渲染设备137可以包括智能眼镜,并且配套设备138可以包括用于智能眼镜的智能遥控器。作为又一示例而非限制,渲染设备137可以包括VR/AR头戴式视图器,并且配套设备138可以包括智能手机。
在特定实施例中,用户可以单独地或组合地使用渲染设备137或配套设备138与助理系统140交互。在特定实施例中,客户端系统130、渲染设备137和配套设备138中的一者或多者可以实现多阶段唤醒词检测模型,以通过连续监测与助理系统140相关联的一个或多个唤醒词来使用户能够方便地激活助理系统140。在唤醒词检测模型的第一阶段,渲染设备137可以接收音频用户输入(例如,语音数据帧)。如果渲染设备137与配套设备138之间的无线连接是可用的,则渲染设备137上的应用可以经由无线连接将接收到的音频用户输入传送到配套设备138上的配套应用。在唤醒词检测模型的第二阶段,配套设备138上的配套应用可以处理接收到的音频用户输入,以检测与助理系统140相关联的唤醒词。然后,配套设备138上的配套应用可以经由无线网络110将检测到的唤醒词传送到与助理系统140相关联的服务器。在唤醒词检测模型的第三阶段,与助理系统140相关联的服务器可以对检测到的唤醒词执行关键词验证,以验证用户是否有意激活助理系统140并接收来自助理系统140的帮助。在替代实施例中,处理、检测或关键词验证中的任何可以由渲染设备137和/或配套设备138来执行。在特定实施例中,当助理系统140已经被用户激活时,渲染设备137上的应用可以被配置为接收来自用户的用户输入,并且配套设备138上的配套应用可以被配置为处理由渲染设备137上的应用接收到的用户输入(例如,用户请求)。在特定实施例中,渲染设备137和配套设备138可以经由一个或多个无线通信协议(例如,蓝牙)彼此关联(即,配对)。
下面的示例工作流示出了渲染设备137和配套设备138可以如何处理由用户提供的用户输入。在该示例中,渲染设备137上的应用可以接收包括指向渲染设备137的用户请求的用户输入。然后,渲染设备137上的应用可以确定渲染设备137与配套设备138之间的无线连接的状态(即,系连状态(tethering status))。如果渲染设备137与配套设备138之间的无线连接是不可用的,则渲染设备137上的应用可以经由网络110将用户请求(可选地包括渲染设备137可用的附加数据和/或上下文信息)传送到助理系统140。然后,助理系统140可以生成对用户请求的响应,并将生成的响应传送回渲染设备137。然后,渲染设备137可以以任何合适的方式向用户呈现该响应。替代地,如果渲染设备137与配套设备138之间的无线连接是可用的,则渲染设备137上的应用可以经由无线连接将用户请求(可选地包括渲染设备137可用的附加数据和/或上下文信息)传送到配套设备138上的配套应用。然后,配套设备138上的配套应用可以经由网络110将用户请求(可选地包括配套设备138可用的附加数据和/或上下文信息)传送到助理系统140。然后,助理系统140可以生成对用户请求的响应,并将生成的响应传送回配套设备138。然后,配套设备138上的配套应用可以将生成的响应传送到渲染设备137上的应用。然后,渲染设备137可以以任何合适的方式向用户呈现该响应。在前面的示例工作流中,渲染设备137和配套设备138可以各自在工作流的每个相应步骤处执行一个或多个计算和/或处理。在特定实施例中,可以至少部分地基于渲染设备137和/或配套设备138的设备状态、与用户输入相关联的任务和/或一个或多个附加因素,在渲染设备137与配套设备138之间对本文所公开的计算和/或处理的性能进行自适应地切换。作为示例而非限制,一个因素可以是渲染设备137与配套设备138之间的无线连接的信号强度。例如,如果渲染设备137与配套设备138之间的无线连接的信号强度较强,则可以自适应地切换到基本上由配套设备138来执行计算和处理,以便例如受益于配套设备138的CPU的更大处理能力。替代地,如果渲染设备137与配套设备138之间的无线连接的信号强度较弱,则可以自适应地切换到基本上由渲染设备137以独立的方式来执行计算和处理。在特定实施例中,如果客户端系统130不包括配套设备138,则可以由渲染设备137以独立的方式单独执行前述计算和处理。
在特定实施例中,助理系统140可以帮助用户进行各种助理相关任务。助理系统140可以在执行这些助理相关任务时与社交网络系统160和/或第三方系统170交互。
在特定实施例中,社交网络系统160可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为,用户简档数据、概念简档数据、社交图谱信息、或与在线社交网络相关的其它合适的数据。社交网络系统160可以由网络环境100中的其它部件直接访问或经由网络110访问。作为示例而非限制,客户端系统130可以使用网络浏览器132或与社交网络系统160相关联的本地应用(例如,移动社交网络应用、消息收发应用、另一合适的应用、或它们的任何组合)来直接访问或者经由网络110访问社交网络系统160。在特定实施例中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是单一服务器或跨多个计算机或多个数据中心的分布式服务器。作为示例而非限制,每个服务器162可以是网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文中所描述的功能或过程的另一服务器、或它们的任何组合。在特定实施例中,每个服务器162可以包括用于执行由服务器162实现或支持的合适功能的硬件、软件、或嵌入式逻辑部件、或者两个或更多个这种部件的组合。在特定实施例中,社交网络系统160可以包括一个或多个数据存储库164。数据存储库164可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据存储库164中的信息。在特定实施例中,每个数据存储库164可以是关系数据库、列式数据库、关联数据库(correlation database)或其它合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开考虑了任何合适类型的数据库。特定实施例可以提供这样的接口:所述接口使客户端系统130、社交网络系统160、助理系统140或第三方系统170能够管理、检索、修改、增加或删除存储在数据存储库164中的信息。
在特定实施例中,社交网络系统160可以在一个或多个数据存储库164中存储一个或多个社交图谱。在特定实施例中,社交图谱可以包括多个节点——这些节点可以包括多个用户节点(每个用户节点对应于一特定用户)或多个概念节点(每个概念节点对应于一特定概念)—以及连接这些节点的多个边。社交网络系统160可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由社交网络系统160加入在线社交网络,然后可以增加与社交网络系统160中的其想要建立连接的多个其他用户的联系(例如,关系)。在本文中,术语“朋友”可以指社交网络系统160中的用户经由社交网络系统160与其形成联系、关联或关系的任何其他用户。
在特定实施例中,社交网络系统160可以向用户提供对由社交网络系统160支持的各种类型的项目或对象采取行动的能力。作为示例而非限制,项目和对象可以包括社交网络系统160的用户所属的群组或社交网络、用户可能感兴趣的事件或日历项、用户可以使用的基于计算机的应用、允许用户经由服务购买或销售项目的交易、与用户可以执行的广告的交互、或其它合适的项目或对象。用户可以与能够在社交网络系统160内或者由第三方系统170的外部系统表示的任何事物交互,该外部系统与社交网络系统160分开并且经由网络110耦接至社交网络系统160。
在特定实施例中,社交网络系统160可能够链接各种实体。作为示例而非限制,社交网络系统160可以使用户能够彼此交互并且接收来自第三方系统170或其他实体的内容,或者允许用户通过应用编程接口(API)或其它通信通道与这些实体交互。
在特定实施例中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个网络服务、一个或多个内容源、一个或多个网络、或例如可以与服务器进行通信的任何其它合适的部件。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。然而,在特定实施例中,社交网络系统160和第三方系统170可以彼此相结合地操作,以向社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或支柱,其它系统(例如第三方系统170)可以使用该平台或支柱来在互联网上向用户提供社交网络服务和功能。
在特定实施例中,第三方系统170可以包括第三方内容对象提供者。第三方内容对象提供者可以包括内容对象的一个或多个源,这些内容对象可被传送到客户端系统130。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论、或其它合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券、或其它合适的激励对象。在特定实施例中,第三方内容提供者可以使用一个或多个第三方代理来提供内容对象和/或服务。第三方代理可以是在第三方系统170上托管和执行的实现。
在特定实施例中,社交网络系统160还包括用户生成的内容对象,这可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可以添加、上传、发送、或“发布”到社交网络系统160的任何内容。作为示例而非限制,用户将帖子从客户端系统130传送到社交网络系统160。帖子可以包括诸如状态更新或其它文本数据、位置信息、照片、视频、链接、音乐或其它类似数据或媒体等数据。内容还可以由第三方通过“通信通道”(例如,新闻推送或流)添加到社交网络系统160中。
在特定实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志以及数据存储库。在特定实施例中,社交网络系统160可以包括以下项中的一项或多项:网络服务器、动作记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、行动日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定价模块、用户界面模块、用户简档存储库、联系存储库、第三方内容存储库或位置存储库。社交网络系统160还可以包括合适的部件,例如网络接口、安全机制、负载平衡器、故障转移服务器、管理和网络操作控制台、其它合适的部件、或它们的任何合适的组合。在特定实施例中,社交网络系统160可以包括用于存储用户简档的一个或多个用户简档存储库。用户简档可以包括例如传记信息、人口统计信息、行为信息、社交信息或其它类型的描述性信息(例如,工作经验、学历、爱好或偏好、兴趣、亲和力或地址)。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋品牌的物品,则类别可以是该品牌、或者是通用类别“鞋”或“服饰”。联系存储库可用于存储关于用户的联系信息。联系信息可以指示具有相似或共同的工作经历、群组成员资格、爱好、教育历史、或者以任何方式相关的或共享共同属性的用户。联系信息还可以包括不同用户和内容(内部和外部两者)之间的用户定义的联系。网络服务器可以用于经由网络110将社交网络系统160与一个或多个客户端系统130或者一个或多个第三方系统170链接。网络服务器可以包括邮件服务器或其它消息收发功能,以用于在社交网络系统160与一个或多个客户端系统130之间接收和路由消息。例如,API请求服务器可以允许助理系统140或第三方系统170通过调用一个或多个API来从社交网络系统160访问信息。动作记录器可以用于接收来自web服务器的关于用户在社交网络系统160上或在社交网络系统160外的动作的通信。与行动日志一起,用户接触第三方内容对象的第三方内容对象日志可以被维护。通知控制器可以向客户端系统130提供关于内容对象的信息。可以将信息作为通知推送到客户端系统130,或者可以响应于用户请求包括从客户端系统130接收的请求而从客户端系统130拉取信息。授权服务器可以用于执行社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置可以确定可如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置适当的隐私设置,选择加入或退出使他们的动作被社交网络系统160记录或与其它系统(例如,第三方系统170)共享。第三方内容对象存储库可以用于存储从第三方(例如,第三方系统170)接收的内容对象。位置存储库可以用于存储从与用户相关联的客户端系统130接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其它合适的信息,以通过通知的形式向用户提供相关广告。
助理系统
图2示出了助理系统140的示例架构200。在特定实施例中,助理系统140可以帮助用户获得信息或服务。助理系统140可以使用户能够在有状态和多轮对话中通过各种模态(例如,音频、语音、文本、视觉、图像、视频、姿势、运动、活动、位置、方位)的用户输入与助理系统140交互,以接收来自助理系统140的帮助。作为示例而非限制,用户输入可以包括基于用户语音(例如,口头命令)的音频输入,该音频输入可以由客户端系统130上的系统音频应用编程接口(API)来处理。系统音频API可以执行如下技术,以便生成可由助理系统140容易处理的音频数据:所述技术包括回声消除、噪声去除、波束形成、自用户语音激活、扬声器识别、语音活动检测(voice activity detection,VAD)和/或任何其它合适的声学技术。在特定实施例中,助理系统140可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模态输入、或它们的任何组合。在特定实施例中,用户输入可以是用户生成的输入,该用户生成的输入在单个轮次中被发送到助理系统140。由用户提供的用户输入可以与特定的助理相关任务相关联,并且可以包括例如用户请求(例如,对信息或执行动作的口头请求)、用户与和助理系统140相关联的助理应用136的交互(例如,经由触摸或姿势选择UI元素)、或者可以由助理系统140检测和理解的任何其它类型的合适的用户输入(例如,由用户的客户端设备130检测到的用户移动)。
在特定实施例中,助理系统140可以创建并存储用户简档,该用户简档包括与用户相关联的个人信息和上下文信息。在特定实施例中,助理系统140可以使用自然语言理解(NLU)技术来分析用户输入。该分析可以至少部分地基于用户的用户简档,以实现更个性化和上下文感知的理解。助理系统140可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,助理系统140可以与不同的代理交互以获得与所解析的实体相关联的信息或服务。助理系统140可以通过使用自然语言生成(NLG)为用户生成关于信息或服务的响应。通过与用户的交互,助理系统140可以使用对话管理技术来管理和转发与用户的会话流。在特定实施例中,助理系统140还可以通过汇总信息来帮助用户有效和高效地理解所获得的信息。助理系统140还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具来帮助用户更多地参与在线社交网络。助理系统140还可以帮助用户管理不同的任务,例如保持追踪事件。在特定实施例中,助理系统140可以在没有用户输入的情况下,在与用户相关的时间基于用户简档主动执行与用户兴趣和偏好相关的预授权任务。在特定实施例中,助理系统140可以检查隐私设置以确保允许遵循用户的隐私设置来访问用户的简档或其它用户信息并执行不同任务。关于遵循隐私设置来帮助用户的更多信息可以在如下申请中找到:于2018年11月6日提交的申请号为16/182542的美国专利申请,该美国专利申请通过引用而被并入。
在特定实施例中,助理系统140可以经由构建在客户端侧过程和服务器侧过程上的架构来帮助用户,该客户端侧过程和服务器侧过程可以在各种操作模式下进行操作。在图2中,客户端侧过程显示在虚线202的上方,而服务器侧过程显示在虚线202的下方。第一操作模式(即,设备上模式)可以是如下工作流:在该工作流中,助理系统140通过主要或专门地在客户端系统130上本地执行客户端侧过程来处理用户输入并向用户提供帮助。例如,如果客户端系统130未连接到网络110(即,当客户端系统130离线时),则助理系统140可以仅利用客户端侧过程来以第一操作模式处理用户输入。第二操作模式(即,云模式)可以是如下工作流:在该工作流中,助理系统140通过主要或专门地在一个或多个远程服务器(例如,与助理系统140相关联的服务器)上执行服务器侧过程来处理用户输入并向用户提供帮助。如图2所示,第三操作模式(即,混合模式)可以是如下并行工作流:在该并行工作流中,助理系统140通过结合一个或多个远程服务器(例如,与助理系统140相关联的服务器)上的服务器侧过程而在客户端系统130上本地执行客户端侧过程,来处理用户输入并向用户提供帮助。例如,客户端系统130和与助理系统140相关联的服务器均可以执行自动语音识别(automatic speech recognition,ASR)和自然语言理解(NLU)过程,但是客户端系统130可以委托对话、代理和自然语言生成(NLG)过程,以由与助理系统140相关联的服务器执行。
在特定实施例中,对操作模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务和/或一个或多个附加因素。作为示例而非限制,如上所述,一个因素可以是客户端系统130的网络连接状态。例如,如果客户端系统130未连接到网络110(即,当客户端系统130离线时),则助理系统140可以以第一操作模式(即,设备上模式)处理用户输入。作为另一示例而非限制,另一因素可以基于对客户端系统130的可用电池功率(即,电池状态)的测量结果。例如,如果客户端系统130需要节省电池功率(例如,当客户端系统130具有最小可用电池功率或者用户已经指示希望节省客户端系统130的电池功率时),则助理系统140可以以第二操作模式(即,云模式)或第三操作模式(即,混合模式)处理用户输入,以便在客户端系统130上执行较少的功率密集型操作。作为又一示例而非限制,另一因素可以是一个或多个隐私约束(例如,指定的隐私设置、适用的隐私策略)。例如,如果一个或多个隐私约束限制或阻止将特定数据发送到远程服务器(例如,与助理系统140相关联的服务器),则助理系统140可以以第一操作模式(即,设备上模式)处理用户输入,以保护用户隐私。作为又一示例而非限制,另一因素可以是客户端系统130与远程服务器(例如,与助理系统140相关联的服务器)之间的去同步的上下文数据。例如,可以确定客户端系统130和与助理系统140相关联的服务器具有不一致、缺失和/或未协调的上下文数据,助理系统140可以以第三操作模式(即,混合模式)处理用户输入,以降低与用户输入相关联的不充分分析的可能性。作为又一示例而非限制,另一因素可以是客户端系统130与远程服务器(例如,与助理系统140相关联的服务器)之间的连接的时延的测量结果。例如,如果与用户输入相关联的任务(例如,照片采集任务)可能显著受益于和/或需要立即或立刻执行,则助理系统140可以以第一操作模式(即,设备上模式)处理用户输入以确保以及时的方式执行该任务。作为又一示例而非限制,对于与和用户输入相关联的任务相关的特征,另一因素可以是该特征是否仅由远程服务器(例如,与助理系统140相关联的服务器)支持。例如,如果在用户输入时,相关特征需要高级技术功能(例如,高功率处理能力、快速更新周期),且该高级技术功能仅由与助理系统140相关联的服务器支持而不被客户端系统130支持,则助理系统140可以以第二操作模式(即,云模式)或第三操作模式(即,混合模式)处理用户输入,以便受益于该相关特征。
在特定实施例中,客户端系统130上的设备上协调器206可以协调接收用户输入,并且可以在示例工作流中的一个或多个判定点处确定应该使用上述操作模式中的哪个操作模式来处理或继续处理用户输入。如上所述,对操作模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务和/或一个或多个附加因素。作为示例而非限制,参考图2中所示的工作流架构,在从用户接收到用户输入之后,设备上协调器206可以在判定点(D0)205处,确定是以第一操作模式(即,设备上模式)、第二操作模式(即,云模式)还是第三操作模式(即,混合模式)开始处理用户输入。例如,如果客户端系统130未连接到网络110(即,当客户端系统130离线时),如果一个或多个隐私约束明确要求设备上处理(例如,向用户之间的私人通话添加或移除另一个人),或者如果用户输入与不需要或不受益于服务器侧处理的任务相关联(例如,设置警报或呼叫另一用户),则在判定点(D0)205处,设备上协调器206可以选择第一操作模式(即,设备上模式)。作为另一示例,如果客户端系统130需要节省电池功率(例如,当客户端系统130具有最小可用电池功率或用户已指示希望节省客户端系统130的电池功率时)或需要限制计算资源的额外利用(例如,当在客户端设备130上操作的其它过程需要高CPU利用率(短讯服务(SMS)消息收发应用)时),则在判定点(D0)205处,设备上协调器206可以选择第二操作模式(即,云模式)或第三操作模式(即,混合模式)。
在特定实施例中,如果设备上协调器206在判定点(D0)205处确定应该使用第一操作模式(即,设备上模式)或第三操作模式(即,混合模式)来处理用户输入,则可以继续进行客户端侧过程,如图2所示。作为示例而非限制,如果用户输入包括语音数据,则可以在客户端系统130上的本地自动语音识别(ASR)模块208a处接收语音数据。ASR模块208a可以允许用户进行口述,并将语音转录为书面文本,将文档合成为音频流,或发出据此被系统识别的命令。
在特定实施例中,ASR模块208a的输出可以被发送到本地自然语言理解(NLU)模块210a。NLU模块210a可以执行命名实体解析(named entity resolution,NER),或者命名实体解析可以由实体解析模块212a来执行,如下所述。在特定实施例中,意图、槽位或域中的一者或多者可以是NLU模块210a的输出。
在特定实施例中,用户输入可以包括非语音数据,该非语音数据可以在本地上下文引擎220a处接收。作为示例而非限制,非语音数据可以包括位置、视觉、触摸、姿势、世界更新、社交更新、上下文信息、与人相关的信息、活动数据和/或任何其它合适类型的非语音数据。非语音数据还可以包括由客户端系统130传感器(例如,传声器、摄像头)接收的感官数据,对该感官数据的访问可以遵循隐私约束,并且可以通过计算机视觉技术来进一步分析该感官数据。在特定实施例中,计算机视觉技术可以包对象检测、场景识别、手部追踪、眼睛追踪和/或任何其它合适的计算机视觉技术。在特定实施例中,非语音数据可以经受几何构建,该几何构建可以包括使用由客户端系统130收集的任何合适类型的数据来构建围绕用户的对象。作为示例而非限制,用户可以正穿戴着AR眼镜,并且可以利用几何构建来确定表面和项目(例如,地板、墙、用户的手)的空间位置。在特定实施例中,非语音数据可以是由AR眼镜或VR头戴式视图器采集的惯性数据,并且非语音数据可以是与线性和角运动相关联的数据(例如,与用户身体运动相关联的测量结果)。在特定实施例中,上下文引擎220a可以基于非语音数据来确定各种类型的事件和上下文。
在特定实施例中,NLU模块210a和/或上下文引擎220a的输出可以被发送到实体解析模块212a。实体解析模块212a可以对与NLU模块210a输出的一个或多个槽位相关联的实体进行解析。在特定实施例中,每个所解析的实体可以与一个或多个实体标识符相关联。作为示例而非限制,标识符可以包括与特定用户相对应的唯一用户标识符(identifier,ID)(例如,社交网络系统160的唯一用户名或用户ID号)。在特定实施例中,每个所解析的实体还可以与置信度分数相关联。关于对实体进行解析的更多信息可以在如下申请中找到:于2018年7月27日提交的专利号为10,803,050的美国专利、和于2018年7月27日提交的申请号为16/048072的美国专利申请,以上中的每一者通过引用而被并入。
在特定实施例中,在判定点(D0)205处,设备上协调器206可以确定应该以第二操作模式(即,云模式)或第三操作模式(即,混合模式)处理用户输入。在这些操作模式中,可以由某些服务器侧模块以与上述客户端侧过程类似的方式来处理用户输入。
在特定实施例中,如果用户输入包括语音数据,则可以在远程服务器(例如,与助理系统140相关联的服务器)上的远程自动语音识别(ASR)模块208b处接收用户输入的语音数据。ASR模块208b可以允许用户进行口述,并将语音转录为书面文本,将文档合成为音频流,或发出据此被系统识别的命令。
在特定实施例中,ASR模块208b的输出可以被发送到远程自然语言理解(NLU)模块210b。在特定实施例中,NLU模块210b可以执行命名实体解析(NER),或者命名实体解析可以由对话管理器模块216b的实体解析模块212b来执行,如下所述。在特定实施例中,意图、槽位或域中的一者或多者可以是NLU模块210b的输出。
在特定实施例中,用户输入可以包括非语音数据,该非语音数据可以在远程上下文引擎220b处接收。在特定实施例中,远程上下文引擎220b可以基于非语音数据来确定各种类型的事件和上下文。在特定实施例中,NLU模块210b和/或上下文引擎220b的输出可以被发送到远程对话管理器216b。
在特定实施例中,如上所述,客户端系统130上的设备上协调器206可以协调接收用户输入,并且可以在示例工作流中的一个或多个判定点处确定应该使用上述操作模式中的哪个操作模式来处理或继续处理用户输入。如上所进一步论述的,对操作模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务和/或一个或多个附加因素。作为示例而非限制,继续参考图2中所示的工作流架构,在实体解析模块212a生成输出或空输出之后,设备上协调器206可以在判定点(D1)215处确定是以第一操作模式(即,设备上模式)、第二操作模式(即,云模式)还是第三操作模式(即,混合模式)继续处理用户输入。例如,如果识别出的意图与时延敏感的处理任务(例如,拍照、暂停秒表)相关联,则在判定点(D1)215处,设备上协调器206可以选择第一操作模式(即,设备上模式)。作为另一示例而非限制,如果客户端系统130上的设备上处理不支持消息收发任务,则设备上协调器206可以选择第三操作模式(即,混合模式)来处理与消息收发请求相关联的用户输入。作为又一示例,如果正被处理的任务需要访问未存储在客户端系统130上的社交图谱、知识图谱或概念图谱,则在判定点(D1)215处,设备上协调器206可以选择第二操作模式(即,云模式)或第三操作模式(即,混合模式)。替代地,如果客户端系统130上存在包括任务的必需信息的信息图谱的足够版本(例如,知识图谱的较小和/或引导版本),则设备上协调器206可以改为选择第一操作模式(即,设备上模式)。
在特定实施例中,如果设备上协调器206在判定点(D1)215处确定该处理应该使用第一操作模式(即,设备上模式)或第三操作模式(即,混合模式)来继续,则客户端侧过程可以继续,如图2所示。作为示例而非限制,来自实体解析模块212a的输出可以被发送到设备上对话管理器216a。在特定实施例中,设备上对话管理器216a可以包括对话状态追踪器218a和动作选择器222a。设备上对话管理器216a可以具有复杂的对话逻辑和产品相关的业务逻辑,以管理用户与助理系统140之间的对话状态和会话流。设备上对话管理器216a可以包括用于端对端集成和多轮支持(例如,确认、消除歧义)的全部功能。设备上对话管理器216a还可以在包括存储器、计算(CPU)和二进制大小约束的计算限制和资源方面是轻量级的。设备上对话管理器216a还可以是可扩展的,以改善开发者体验。在特定实施例中,设备上对话管理器216a可以例如通过以下方式来使助理系统140受益:提供离线支持以缓解网络连接问题(例如,不稳定或不可用的网络连接)、使用客户端侧过程来防止隐私敏感信息被传输出客户端系统130、以及在高时延敏感场景中提供稳定的用户体验。
在特定实施例中,设备上对话管理器216a还可以进行误触发缓解。误触发缓解的实施方式可以检测并防止来自用户输入的误触发(否则该用户输入(例如,无意唤醒词)将调用助理系统140),并且可以进一步防止助理系统140基于可能不准确和/或遵循隐私约束的误触发来生成数据记录。作为示例而非限制,如果用户处于语音通话中,则用户在语音通话期间的会话可以被认为是私人的,并且误触发缓解可以将对唤醒词的检测限于由用户的客户端系统130本地接收到的音频用户输入。在特定实施例中,设备上对话管理器216a可以基于无意义检测器来实现误触发缓解。如果无意义检测器高置信度地确定在从用户接收到唤醒词的时间点、该接收到的唤醒词在逻辑和/或上下文上是不合理的,则设备上对话管理器216a可以确定用户无意调用助理系统140。
在特定实施例中,由于客户端系统130的计算能力有限,因此设备上对话管理器216a可以基于特别为客户端系统130定制的学习算法来进行设备上学习。作为示例而非限制,设备上对话管理器216a可以实现联合学习技术。联合学习是一种特定类别的分布式机器学习技术,其可以使用终端设备(例如,移动手机)上存储的分散数据来训练机器学习模型。在特定实施例中,设备上对话管理器216a可以使用联合用户表示学习模型来扩展现有神经网络个性化技术,以实现设备上对话管理器216a的联合学习。联合用户表示学习可以通过特定于学习任务的用户表示(即,嵌入)和/或通过个性化模型权重,使联合学习模型个性化。联合用户表示学习是简单的、可扩展的、保护隐私的和资源高效的。联合用户表示学习可以将模型参数分为联合参数和私人参数。诸如私人用户嵌入等私人参数可以在客户端系统130上进行本地训练,而不是被传送到远程服务器(例如,与助理系统140相关联的服务器)或由远程服务器平均分配。相比之下,联合参数可以在服务器上进行远程训练。在特定实施例中,设备上对话管理器216a可以使用主动联合学习模型,该主动联合学习模型可以将在远程服务器上训练的全局模型传输到客户端系统130,并在客户端系统130上本地计算梯度。主动联合学习可以使设备上对话管理器216a能够使与下载模型和上传梯度相关联的传输成本最小化。对于主动联合学习,在每一轮中,可以至少部分地基于以当前模型和客户端系统130上的数据为条件的概率以半随机方式来选择客户端系统130,以便优化联合学习模型的训练效率。
在特定实施例中,当用户与世界交互并且助理系统140与用户交互时,对话状态追踪器218a可以追踪状态随时间的变化。作为示例而非限制,对话状态追踪器218a可以遵循适用的隐私策略来追踪例如用户在谈论什么、用户与谁在一起、用户在哪里、当前正在进行什么任务、以及用户注视哪里。
在特定实施例中,在判定点(D1)215处,设备上协调器206可以针对第二操作模式(即,云模式)或第三操作模式(即,混合模式)确定将用户输入转发到服务器。作为示例而非限制,如果客户端系统130上不支持特定功能或过程(例如,消息收发),则设备上协调器206可以在判定点(D1)215处确定使用第三操作模式(即,混合模式)。在特定实施例中,设备上协调器206可以使得来自NLU模块210a、上下文引擎220a和实体解析模块212a的输出经由对话管理器代理224被转发到远程对话管理器216b的实体解析模块212b,以使处理继续。对话管理器代理224可以是用于客户端系统130与服务器之间的信息/事件交换的通信通道。在特定实施例中,对话管理器216b可以另外包括远程仲裁器226b、远程对话状态追踪器218b和远程动作选择器222b。在特定实施例中,在判定点(D0)205处,助理系统140可能已经开始用第二操作模式(即,云模式)处理用户输入,并且在判定点(D1)215处,设备上协调器206可以基于第二操作模式(即,云模式)确定继续处理用户输入。因此,可以在远程实体解析模块212b处接收来自NLU模块210b和上下文引擎220b的输出。远程实体解析模块212b可以具有与本地实体解析模块212a类似的功能,该功能可以包括解析与槽位相关联的实体。在特定实施例中,实体解析模块212b可以在解析实体时访问社交图谱、知识图谱或概念图谱中的一者或多者。可以在仲裁器226b处接收来自实体解析模块212b的输出。
在特定实施例中,远程仲裁器226b可以负责在客户端侧和服务器侧上游结果(例如,来自NLU模块210a/210b的结果、来自实体解析模块212a/212b的结果、以及来自上下文引擎220a/220b的结果)之间进行选择。仲裁器226b可以将所选择的上游结果发送到远程对话状态追踪器218b。在特定实施例中,类似于本地对话状态追踪器218a,远程对话状态追踪器218b可以使用任务规范将上游结果转换成候选任务,并利用实体解析来解析实参。
在特定实施例中,在判定点(D2)225处,设备上协调器206可以确定是基于第一操作模式(即,设备上模式)来继续处理用户输入,还是针对第三操作模式(即,混合模式)将用户输入转发到服务器。该判定可以取决于例如客户端侧过程是否能够成功地对任务和槽位进行解析、是否存在具有特定特征支持的有效任务策略、和/或客户端侧过程和服务器侧过程之间的上下文差异。在特定实施例中,在判定点(D2)225处做出的判定可以是针对多轮场景的。在特定实施例中,可能存在至少两种可能的场景。在第一场景中,助理系统140可能已经开始使用客户端侧对话状态以第一操作模式(即,设备上模式)处理用户输入。如果助理系统140在某一时刻决定切换到使远程服务器处理用户输入,则助理系统140可以创建具有当前任务状态的程序性/预定义任务,并将其转发到远程服务器。对于随后的轮次,助理系统140可以使用服务器侧对话状态以第三操作模式(即,混合模式)继续处理。在另一场景中,助理系统140可能已经开始以第二操作模式(即,云模式)或第三操作模式(即,混合模式)处理用户输入,并且助理系统140对于所有后续轮次可能基本上依赖于服务器侧对话状态。如果设备上协调器206确定基于第一操作模式(即,设备上模式)继续处理用户输入,则来自对话状态追踪器218a的输出可以在动作选择器222a处接收。
在特定实施例中,在判定点(D2)225处,设备上协调器206可以确定将用户输入转发到远程服务器,并继续以第二操作模式(即,云模式)或第三操作模式(即,混合模式)处理用户输入。助理系统140可以创建具有当前任务状态的程序性/预定义任务,并将其转发到服务器,其可以在动作选择器222b处接收。在特定实施例中,助理系统140可能已经开始以第二操作模式(即,云模式)处理用户输入,并且设备上协调器206可以在判定点(D2)225处确定继续以第二操作模式(即,云模式)处理用户输入。因此,可以在动作选择器222b处接收来自对话状态追踪器218b的输出。
在特定实施例中,动作选择器222a/222b可以执行交互管理。动作选择器222a/222b可以确定并触发一组一般可执行动作。这些动作可以在客户系统130上或在远程服务器处执行。作为示例而非限制,这些动作可以包括向用户提供信息或建议。在特定实施例中,动作可以与代理228a/228b、用户、和/或助理系统140本身交互。这些动作可以包括如下动作:所述动作包括槽位请求、确认、消除歧义或代理执行中的一者或多者。动作可以独立于动作选择器222a/222b的底层实现。对于更复杂的场景(例如,多轮任务或具有复杂业务逻辑的任务),本地动作选择器222a可以调用一个或多个本地代理228a,而远程动作选择器222b可以调用一个或多个远程代理228b来执行动作。可以通过任务ID来调用代理228a/228b,并且可以使用该任务ID将任何动作路由到正确的代理228a/228b。在特定实施例中,代理228a/228b可以被配置为充当一个域的多个内容提供者之间的代理。内容提供者可以是负责执行与意图相关联的动作或完成与该意图相关联的任务的实体。在特定实施例中,代理228a/228b可以为助理系统140提供若干功能,包括例如本地模板生成、任务特定的业务逻辑和查询外部API。当针对任务执行动作时,代理228a/228b可以使用来自对话状态追踪器218a/218b的上下文,并且还可以对对话状态追踪器218a/218b进行更新。在特定实施例中,代理228a/228b还可以从对话动作来生成部分有效载荷。
在特定实施例中,本地代理228a可以具有针对不同平台(例如,智能眼镜与VR头戴式视图器)而待编辑/待注册的不同实施。在特定实施例中,可以由单个代理228a在内部处理特定于多个设备的实施(例如,对客户端系统130或客户端系统130上的消息收发应用的实时通话)。替代地,设备专用的实施可以由与多个域相关联的多个代理228a来处理。作为示例而非限制,调用智能眼镜上的代理228a可以以与调用智能手机上的代理228a不同的方式来实现。不同的平台还可以使用不同数量的代理228a。代理228a也可以是跨平台(即,客户端系统130上的不同操作系统)的。此外,代理228a可以将启动时间或二进制大小影响最小化。本地代理228a可以适用于特定用例。作为示例而非限制,一个用例可以是对客户端系统130的紧急调用。作为另一示例而非限制,另一用例可以是在没有网络连接的情况下对用户输入作出响应。作为又一示例而非限制,另一用例可以是特定域/任务可以是隐私敏感的并且可以禁止将用户输入发送到远程服务器。
在特定实施例中,本地动作选择器222a可以调用本地传递系统230a来执行动作,而远程动作选择器222b可以调用远程传递系统230b来执行动作。传递系统230a/230b可以在从对话状态追踪器218a/218b接收到触发信号时通过执行相应动作来传递预定义事件。传递系统230a/230b可以确保将事件传递到具有活动连接(living connection)的主机。作为示例而非限制,传递系统230a/230b可以向属于一个用户的所有在线设备广播。作为另一示例而非限制,传递系统230a/230b可以将事件传递到目标特定设备。传递系统230a/230b还可以使用最新的设备上下文来渲染有效载荷。
在特定实施例中,设备上对话管理器216a可以另外包括单独的本地动作执行模块,并且远程对话管理器216b可以另外包括单独的远程动作执行模块。本地执行模块和远程动作执行模块可以具有类似的功能。在特定实施例中,动作执行模块可以调用代理228a/228b来执行任务。动作执行模块可以另外执行由动作选择器222a/222b确定的一组一般可执行动作。该组可执行动作可以经由传递系统230a/230b与代理228a/228b、用户和助理系统140本身交互。
在特定实施例中,如果使用第一操作模式(即,设备上模式)来处理用户输入,则来自代理228a和/或传递系统230a的结果可以被返回到设备上对话管理器216a。然后,设备上对话管理器216a可以指示本地仲裁器226a基于这些结果生成最终响应。仲裁器226a可以对这些结果进行聚合并对其进行评估。作为示例而非限制,仲裁器226a可以排序并选择用于响应于用户输入的最佳结果。如果以第二操作模式(即,云模式)处理用户请求,则可以将来自代理228b和/或传递系统230b的结果返回到远程对话管理器216b。远程对话管理器216b可以经由对话管理器代理224指示仲裁器226a基于这些结果生成最终响应。类似地,仲裁器226a可以分析结果并选择最佳结果以提供给用户。如果基于第三操作模式(即,混合模式)来处理用户输入,则(例如来自代理228a/228b和/或传递系统230a/230b的)客户端侧结果和服务器侧结果可以分别由设备上对话管理器216a和远程对话管理器216b提供给仲裁器226a。然后,仲裁器226可以在客户端侧结果与服务器侧结果之间进行选择,以确定待呈现给用户的最终结果。在特定实施例中,在这些结果之间做出决定的逻辑可以取决于特定用例。
在特定实施例中,本地仲裁器226a可以基于最终结果生成响应,并将该响应发送到渲染输出模块232。渲染输出模块232可以确定如何以适合于客户端系统130的方式渲染输出。作为示例而非限制,对于VR头戴式视图器或AR智能眼镜,渲染输出模块232可以确定使用基于视觉的模态(例如,图像或短视频)来渲染输出,该基于视觉的模态可以经由VR头戴式视图器或AR智能眼镜来显示。作为另一示例,响应可以被渲染为音频信号,该音频信号可以由用户通过VR头戴式视图器或AR智能眼镜来播放。作为又一示例,响应可以被渲染为增强现实数据以用于增强用户体验。
在特定实施例中,除了确定用于处理用户输入的操作模式之外,设备上协调器206还可以确定是在渲染设备137上处理用户输入、在配套设备138上处理用户输入、还是在远程服务器上处理用户请求。渲染设备137和/或配套设备138可以各自以与上面所公开的方式类似的方式使用助理栈来处理用户输入。作为示例而非限制,设备上协调器206可以确定部分处理应在渲染设备137上完成,部分处理应在配套设备138上完成,其余处理应在远程服务器上完成。
在特定实施例中,助理系统140可以具有各种能力,包括音频认知、视觉认知、信号情报、推理和记忆。在特定实施例中,音频认知能力可以使助理系统140能够:例如,理解与不同语言的各个域相关联的用户输入,理解和总结会话,执行复杂命令的设备上音频认知,通过语音识别用户,从会话和会话的自动标记部分中提取主题,在没有唤醒词的情况下实现音频交互,从环境噪声和会话中过滤和放大用户语音,和/或如果多个客户端系统130在附近、理解用户正在与哪个客户端系统130交谈。
在特定实施例中,视觉认知能力可以使助理系统140能够:例如,执行面部检测和追踪,识别用户,以不同角度识别主要大都市地区感兴趣的人,通过现有机器学习模型和单次学习的组合来识别世界上有趣的对象,识别有趣的时刻并自动对其进行采集,在跨不同时间片段的多个视觉帧上实现语义理解,为人、地点或对象识别中的附加能力提供平台支持,识别全套设置和微定位(包括个性化定位),识别复杂活动,识别用于控制客户端系统130的复杂姿势,处理来自自我中心摄像头的(例如,具有运动、采集角度、分辨率的)图像/视频,实现关于具有较低分辨率的图像的类似水平的准确性和速度,对人、地点和对象进行一次性配准和识别,和/或在客户端系统130上执行视觉识别。
在特定实施例中,助理系统140可以利用计算机视觉技术来实现视觉认知。除了计算机视觉技术之外,助理系统140还可以探索可补充这些技术以扩展对象识别的选项。在特定实施例中,助理系统140可以使用补充信号,所述补充信号例如为对象标签的光学字符识别(OCR)、用于地点识别的GPS信号和/或来自用户的客户端系统130以识别用户的信号。在特定实施例中,助理系统140可以执行一般场景(例如,家庭、工作、公共空间)识别以设置用户的上下文并减小计算机视觉搜索空间,以便识别可能的对象或人。在特定实施例中,助理系统140可以引导用户训练助理系统140。例如,可以使用众包(crowdsourcing)来让用户标记对象并帮助助理系统140随着时间的推移识别更多对象。作为另一示例,用户在使用助理系统140时,可以将其个人对象注册为初始设置的一部分。助理系统140还可以允许用户为其交互的对象提供肯定/否定信号,以训练和改进所述用户的个性化模型。
在特定实施例中,信号情报能力可以使助理系统140能够在运行时:例如,确定用户位置,理解日期/时间,确定家庭位置,理解用户的日历和未来期望的位置,整合更丰富的声音理解以仅通过声音来识别环境/上下文,和/或构建可针对用户的个体例程进行个性化的信号情报模型。
在特定实施例中,推理能力可以使助理系统140能够:例如,在未来的任何时间点拾取先前的会话线索,对所有信号进行合成以理解微和个性化上下文,从用户的历史行为中学习交互模式和偏好并准确地建议该用户可能重视的交互,基于微上下文理解生成高度预测性的主动建议,理解用户可能想要在一天中的什么时间观看什么内容,和/或理解场景中的变化以及这可能如何影响用户的期望内容。
在特定实施例中,记忆能力可以使助理系统140能够:例如,记住用户先前调用或交互的社交联系,随意地写入存储器和查询存储器(即,开放听写和自动标记),基于先前的交互和长期学习来提取更丰富的偏好,记住用户的生活史,从自我中心的数据流和自动目录中提取丰富的信息,和/或以结构化形式向存储器写入以形成丰富的短期、情节和长期记忆。
图3示出了助理系统140的示例流程图300。在特定实施例中,助理服务模块305可以在接收到用户输入时访问请求管理器310。在特定实施例中,请求管理器310可以包括上下文提取器312和会话理解(conversational understanding,CU)对象生成器314。上下文提取器312可以提取与用户输入相关联的上下文信息。上下文提取器312还可以基于在客户端系统130上执行的助理应用136来更新上下文信息。作为示例而非限制,对上下文信息的更新可以包括在客户端系统130上显示的内容项。作为另一示例而非限制,对上下文信息的更新可以包括,是否在客户端系统130上设置了警报。作为另一示例而非限制,对上下文信息的更新可以包括,是否正在客户端系统130上播放歌曲。CU对象生成器314可以生成与用户输入相关的特定CU对象。CU对象可以包括与用户输入相关联的对话会话(dialog-session)数据和特征,该对话会话数据和特征可以与助理系统140的所有模块共享。在特定实施例中,请求管理器310可以将上下文信息和所生成的CU对象存储在数据存储库320中,该数据存储库是在助理系统140中实现的特定数据存储库。
在特定实施例中,请求管理器310可以将所生成的CU对象发送到NLU模块210。NLU模块210可以执行多个步骤来处理CU对象。NLU模块210可以首先通过允许列表/阻止列表330运行CU对象。在特定实施例中,允许列表/阻止列表330可以包括与用户输入匹配的解释数据。然后,NLU模块210可以执行CU对象的特征化332。然后,NLU模块210可以基于由特征化332产生的特征对用户输入执行域分类/选择334,以将用户输入分类到预定义的域中。在特定实施例中,域可以表示交互的社交上下文(例如,教育)、或一组意图的命名空间(例如,音乐)。可以基于两个相关的过程进一步处理域分类/选择结果。在一个过程中,NLU模块210可以使用元意图分类器336a来处理域分类/选择结果。元意图分类器336a可以确定描述用户意图的类别。意图可以是预定义的语义意图分类中的元素,其可以指示用户与助理系统140交互的目的。NLU模块210a可以将用户输入分类成预定义分类中的成员。例如,用户输入可以是“播放贝多芬的第五首(Play Beethoven’s 5th)”,并且NLU模块210a可以将该输入分类为具有意图[意图:播放_音乐]([IN:play_music])。在特定实施例中,多个域共有的意图可以由元意图分类器336a处理。作为示例而非限制,元意图分类器336a可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算输入与特定预定义元意图相关联的概率。然后,NLU模块210可以使用元槽位标签器338a来对来自元意图分类器336a的分类结果的一个或多个元槽位进行注释。槽位可以是这样的命名子串:该命名子串与用户输入内的表示基本语义实体的字符串相对应。例如,“披萨”的槽位可以是[槽位:菜]([SL:DISH])。在特定实施例中,一组有效或预期的命名槽位可以以分类意图为条件。作为示例而非限制,对于意图[IN:play_music],有效槽位可以是[槽位:歌曲_名称]([SL:song_name])。在特定实施例中,元槽位标签器338a可以标记通用槽位(例如,对项目(例如,第一个)的引用)、槽位的类型、槽位的值等。在特定实施例中,NLU模块210可以使用意图分类器336b来处理域分类/选择结果。意图分类器336b可以确定与用户输入相关联的用户意图。在特定实施例中,对于每个域可以有一个意图分类器336b来确定给定域中最可能的意图。作为示例而非限制,意图分类器336b可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定预定义意图相关联的概率。然后,NLU模块210可以使用槽位标签器338b来对与用户输入相关联的一个或多个槽位进行注释。在特定实施例中,槽位标签器338b可以为用户输入的n元语法注释一个或多个槽位。作为示例而非限制,用户输入可包括“将我账户中的500美元兑换成日元”。意图分类器336b可以将用户输入作为输入并将其公式化成向量。然后,意图分类器336b可以基于表示用户输入的向量和表示不同预定义意图的向量之间的向量比较,来计算用户输入与不同预定义意图相关联的概率。以类似的方式,槽位标签器338b可以将用户输入作为输入并且将每个词公式化成向量。然后,槽位标签器338b可以基于表示每个词的向量和表示不同预定义槽位的向量之间的向量比较,来计算该词与不同预定义槽位相关联的概率。用户的意图可以被归类为“兑换货币”。用户输入的槽位可以包括“500”、“美元”、“账户”和“日元”。用户的元意图可以被分类为“金融服务”。元数据槽位可以包括“金融”。
在特定实施例中,自然语言理解(NLU)模块210还可以从社交图谱、知识图谱或概念图谱中的一者或多者中提取信息,并且可以检索本地存储在客户端系统130上的用户简档。NLU模块210在分析用户输入时,还可以考虑上下文信息。NLU模块210还可以通过如下方式来进一步处理来自这些不同来源的信息:对信息进行识别和聚合、对用户输入的n元语法进行注释、基于所聚合的信息利用置信度分数对n元语法进行排序、以及将经排序的n元语法公式化成可由NLU模块210用来理解用户输入的特征。在特定实施例中,NLU模块210可以以个性化和上下文感知的方式从用户输入中识别域、意图或槽位中的一者或多者。作为示例而非限制,用户输入可以包括“告诉我如何到达咖啡店”。NLU模块210可以基于用户的个人信息和相关联的上下文信息,来识别用户想要去的特定咖啡店。在特定实施例中,NLU模块210可以包括特定语言的词典、解析器和语法规则,以将句子划分为内部表示。NLU模块210还可以包括执行朴素语义(naive semantic)或随机语义分析的一个或多个程序,并且还可以使用语用学来理解用户输入。在特定实施例中,解析器可以基于包括多个长短期记忆(long-short term memory,LSTM)网络的深度学习架构。作为示例而非限制,解析器可以基于循环神经网络语法(recurrent neural network grammar,RNNG)模型,RNNG模型是一种循环和递归LSTM算法。关于自然语言理解(NLU)的更多信息可以在如下申请中找到:于2018年6月18日提交的申请号为16/011062的美国专利申请、于2018年7月2日提交的申请号为16/025317的美国专利申请、和于2018年7月17日提交的申请号为16/038120的美国专利申请,这些美国专利申请中的每一者通过引用而被并入。
在特定实施例中,NLU模块210的输出可以被发送到实体解析模块212以对相关实体进行解析。实体可以包括例如唯一的用户或概念,每个用户或概念可以具有唯一的标识符(ID)。这些实体可以包括以下中的一者或多者:(来自一般知识库的)真实世界实体、(来自用户存储器的)用户实体、上下文实体(设备上下文/对话上下文)或值解析(数字、日期时间等)。在特定实施例中,实体解析模块212可以包括域实体解析340和通用实体解析342。实体解析模块212可以执行通用实体解析和域特定的实体解析。通用实体解析342可以通过将槽位和元槽位分类为不同的通用主题来解析实体。域实体解析340可以通过将槽位和元槽位分类为不同的域来解析实体。作为示例而非限制,响应于对特定品牌电动汽车的优点的询问的输入,通用实体解析342可以将所引用品牌的电动汽车解析为车辆,并且域实体解析340可以将所引用品牌的电动汽车解析为电动汽车。
在特定实施例中,可以基于关于世界和用户的知识350来解析实体。助理系统140可以从图谱352中提取本体数据。作为示例而非限制,图谱352可以包括知识图谱、社交图谱或概念图谱中的一者或多者。本体数据可以包括不同槽位/元槽位与域之间的结构关系。本体数据还可以包括:关于可以如何对槽位/元槽位进行分组的信息、关于可以如何在层级结构(其中较高水平包括域)内对槽位/元槽位进行关联的信息、以及关于可以如何根据相似性和差异性对槽位/元槽位进行细分的信息。例如,知识图谱可以包括多个实体。每个实体可以包括与一个或多个属性值相关联的单个记录。该特定记录可以与唯一实体标识符相关联。每个记录对于实体属性可以具有不同的值。每个属性值可以与置信度概率和/或语义权重相关联。属性值的置信度概率表示,该值对于给定属性是准确的概率。属性值的语义权重可以表示,考虑到所有可用信息,该值在语义上如何适合给定属性。例如,知识图谱可以包括名称为“书名(BookName)”的书的实体,其可以包括从多个内容源(例如,在线社交网络、在线百科全书、书评源、媒体数据库和娱乐内容源)提取的信息,这些信息可以被去重、解析和融合以生成知识图谱的单个唯一记录。在该示例中,名称为“BookName”的实体可以与“体裁”实体属性的“奇幻”属性值相关联。关于知识图谱的更多信息可以在以下申请中找到:于2018年7月27日提交的申请号为16/048049的美国专利申请,以及于2018年7月27日提交的申请号为16/048101的美国专利申请,这些美国专利申请中的每一者通过引用而被并入。
在特定实施例中,助理用户记忆(assistant user memory,AUM)354可以包括用户情节记忆,这些用户情节记忆帮助确定如何更有效地帮助用户。AUM 354可以是用于存储、检索、索引和搜索用户数据的中心地。作为示例而非限制,AUM 354可以存储诸如联系人、照片、提醒等信息。此外,AUM 354可以自动将数据同步到服务器和其它设备(仅用于非敏感数据)。作为示例而非限制,如果用户为一个设备上的联系人设置了昵称,则所有设备可以基于AUM 354而同步并获得该昵称。在特定实施例中,AUM 354可以首先准备用于存储在数据存储库中的事件、用户状态、提醒和触发状态。可以创建记忆节点标识符(ID)以存储AUM354中的条目对象,其中,条目可以是关于用户的某条信息(例如,照片、提醒等)。作为示例而非限制,记忆节点ID的前几位可以指示这是记忆节点ID类型,接下来的多个位可以是用户ID,并且接下来的多个位可以是创建时间。然后,AUM 354可以根据需要索引这些数据以供检索。可以为此目的创建索引ID。在特定的实施例中,在给定了“索引关键词”(例如,照片_位置(PHOTO_LOCATION))和“索引值”(例如,“旧金山”)的情况下,AUM 354可以获得具有该属性(例如,旧金山的照片)的记忆ID的列表。作为示例而非限制,前几位可以指示这是索引ID类型,接下来的多个位可以是用户ID,并且接下来的多个位可以对“索引关键词”和“索引值”进行编码。AUM 354还可以使用灵活的查询语言进行信息检索。可以为此目的创建关系索引ID。在特定实施例中,在给定源记忆节点和边类型的情况下,AUM 354可以从源获得所有具有该类型输出边的目标节点的记忆ID。作为示例而非限制,前几位可以指示这是关系索引ID类型,接下来的多个位可以是用户ID,并且接下来的多个位可以是源节点ID和边类型。在特定实施例中,AUM 354可以帮助检测不同事件的并发更新。关于情节记忆的更多信息可以在于2019年8月27日提交的申请号为16/552559的美国专利申请中找到,该美国专利申请通过引用被合并。
在特定实施例中,实体解析模块212可以使用不同技术来解析不同类型的实体。对于真实世界实体,实体解析模块212可以使用知识图谱来解析对实体的涵盖,例如“音乐曲目”、“电影”等。对于用户实体,实体解析模块212可以使用用户记忆或一些代理来解析对用户特定的实体的涵盖,例如“联系人”、“提醒”或“关系”。对于上下文实体,实体解析模块212可以基于来自上下文引擎220的信息来执行共指关系,以解析上下文中对实体的引用,例如“他”、“她”、“第一个”或“最后一个”。在特定实施例中,对于共指关系,实体解析模块212可以为由NLU模块210确定的实体创建引用。然后,实体解析模块212可以准确地解析这些引用。作为示例而非限制,用户输入可以包括“为我找到最近的杂货店并指引我去那里”。基于共指关系,实体解析模块212可以将“那里”解释为“最近的杂货店”。在特定实施例中,共指关系可以依赖于来自上下文引擎220和对话管理器216的信息,以便以改进的准确性对引用进行解释。在特定实施例中,例如,实体解析模块212还可以对上下文(设备上下文或对话上下文)下的实体(诸如,屏幕上所示的实体或来自上一次会话历史的实体)进行解析。对于值解析,实体解析模块212可以以标准化形式来解析对精确值的提及,例如数值、日期时间、地址等。
在特定实施例中,实体解析模块212可以首先对适用的隐私约束执行检查,以便保证执行实体解析不违反任何适用的隐私策略。作为示例而非限制,待解析的实体可以是这样的另一用户:该另一用户在其隐私设置中指定其身份不应在在线社交网络上可搜索。在这种情况下,实体解析模块212可以避免响应于用户输入而返回该用户的实体标识符。通过利用从社交图谱、知识图谱、概念图谱和用户简档获得的所描述的信息,并通过遵循任何适用的隐私策略,实体解析模块212可以以个性化、上下文感知和隐私保护的方式来解析与用户输入相关联的实体。
在特定实施例中,实体解析模块212可以与ASR模块208一起工作以执行实体解析。下面的示例说明了实体解析模块212可以如何解析实体名称。实体解析模块212可以首先将与用户相关联的各名字扩展成其各自的标准化文本形式,作为可以使用双变音位算法来语音转录的语音辅音表示。然后,实体解析模块212可以确定n组最佳候选转录,并对该n组最佳候选转录中的所有语音转录执行并行理解过程。在特定实施例中,然后,可以将解析为相同意图的每个转录折叠成单个意图。然后,可以为每个意图分配与该意图的最高得分候选转录相对应的分数。在折叠期间,实体解析模块212可以识别与每个槽位相关联的各种可能的文本转录,该各种可能的文本转录通过与该槽位的转录相关联的边界定时偏移来关联。然后,实体解析模块212可以从多个(例如,1000个)候选转录中为每个槽位提取可能的候选转录的子集,而不管该多个候选转录是否被分类到相同的意图。以这种方式,槽位和意图可以是短语的评分列表。在特定实施例中,可以识别能够处理该意图的新的或正在运行的任务(例如,消息编辑任务,其用于向另一用户发送消息的意图),并将其与该意图一起提供。然后,所识别的任务可以通过向实体解析模块212提供与其槽位中的一个槽位相关联的短语的评分列表以及应针对其进行解析的类别,来触发实体解析模块212。作为示例而非限制,如果实体属性被指定为“朋友”,则实体解析模块212可以通过可在匹配器编译时间处运行的相同扩展来运行术语的每个候选列表。可以在预编译的字典树(trie)匹配结构中,对术语的每个候选扩展进行匹配。可以使用至少部分基于转录输入、匹配形式和朋友姓名的函数,来对匹配进行评分。作为另一示例而非限制,如果实体属性被指定为“名星/名人”,则实体解析模块212可以针对从ASR模块208输出的槽位的每一候选术语集合,针对知识图谱执行并行搜索。实体解析模块212可以基于匹配的人的受欢迎度和ASR提供的分数信号来对匹配进行评分。在特定实施例中,当指定记忆类别时,实体解析模块212可以针对用户记忆执行相同的搜索。实体解析模块212可以通过用户记忆向后爬行并尝试匹配每个记忆(例如,最近在会话中提到的人、或者经由视觉信号看到和识别的人等)。对于每个实体,实体解析模块212可以采用与如何匹配朋友相类似的匹配(即,语音)。在特定实施例中,评分可以包括时间衰减因素,该时间衰减因素与先前提到名称的新近性相关联。实体解析模块212还可以对所有匹配进行组合、排序和去重。在特定实施例中,任务可以接收候选的集合。当存在多个高得分候选时,实体解析模块212可以执行用户促进的歧义消除(例如,从用户获得对这些候选的实时用户反馈)。
在特定实施例中,上下文引擎220可以帮助实体解析模块212提升实体解析。上下文引擎220可以包括离线聚合器和在线推理服务。离线聚合器可以处理从先前时间窗口收集的与用户相关联的多个数据。作为示例而非限制,数据可以包括在预定时间帧期间(例如,从先前的90天窗口)收集的新闻推送帖子/评论、与新闻推送帖子/评论的交互、搜索历史等。处理结果可以作为用户简档的一部分被存储在上下文引擎220中。用户的用户简档可以包括用户简档数据,该用户简档数据包括与用户相关联的人口信息、社交信息和上下文信息。用户简档数据还可以包括用户对多个主题的兴趣和偏好,其是通过在新闻推送、搜索日志、消息收发平台等上的会话而聚合的。用户简档的使用可能受制于隐私限制,以确保用户的信息只能用于他/她的利益,而不能与其他任何人共享。关于用户简档的更多信息可以在于2018年4月30日提交的申请号为15/967239的美国专利申请中找到,该美国专利申请通过引用而被并入。在特定实施例中,在线推理服务可以对助理系统140在当前时间接收的与用户相关联的会话数据进行分析。分析结果也可以作为用户简档的一部分存储在上下文引擎220中。在特定实施例中,离线聚合器和在线推理服务都可以从多个数据中提取个性化特征。助理系统140的其它模块可以使用所提取的个性化特征来更好地理解用户输入。在特定实施例中,实体解析模块212可以基于自然语言处理(natural-language processing,NLP),在以下步骤中对来自上下文引擎220的信息(例如,用户简档)进行处理。在特定实施例中,实体解析模块212可以基于NLP通过文本归一化来对文本进行标记,从文本中提取语法特征,并从文本中提取语义特征。实体解析模块212还可以从如下的上下文信息中提取特征:该上下文信息是从用户与助理系统140之间的对话历史中取出的。实体解析模块212还可以基于上下文信息进行全局词嵌入、域特定嵌入和/或动态嵌入。处理结果可以由实体标签器用实体进行注释。基于注释,实体解析模块212可以生成词典。在特定实施例中,词典可以包括可离线动态更新的全局词典特征。实体解析模块212可以对由实体标签器标记的实体进行排序。在特定实施例中,实体解析模块212可以与包括社交图谱、知识图谱或概念图谱中的一者或多者的不同图谱352进行通信,以提取与从上下文引擎220检索到的信息相关的本体数据。在特定实施例中,实体解析模块212可以进一步基于用户简档、经排序的实体以及来自图谱352的信息来解析实体。
在特定实施例中,实体解析模块212可以由任务(对应于代理228)来驱动。这种处理顺序的倒置可以使任务中存在的域信息在明显且适当时被应用于对解析目标的集合进行预过滤或偏向。作为示例而非限制,对于表达“谁是约翰(John)?”,在该表达中没有明确的范畴。因此,实体解析模块212可以针对所有内容解析“John”。作为另一示例而非限制,对于表达“向John发送消息”,实体解析模块212可以容易地确定“John”指的是这样的人:可以向该人发送消息。因此,实体解析模块212可以将解析偏向朋友。作为另一示例而非限制,对于表达“John最著名的专辑是什么?”,为了解析“John”,实体解析模块212可以首先确定与该表达相对应的任务,该任务是寻找音乐专辑。实体解析模块212可以确定与音乐专辑相关的实体包括歌手、制作人和录音室。因此,实体解析模块212可以在音乐域中的这些类型的实体中进行搜索以解析“John”。
在特定实施例中,实体解析模块212的输出可以被发送到对话管理器216以推进与用户的会话流程。对话管理器216可以是异步状态机,该异步状态机对状态进行重复更新并基于新状态来选择动作。对话管理器216还可以存储用户与助理系统140之间的先前会话。在特定实施例中,对话管理器216可以进行对话优化。对话优化涉及如下挑战:理解并识别用户的对话中的最可能的分支选项。作为示例而非限制,因为助理系统140可以确定,基于上下文和可用数据而推断的人是预期接收者的高置信度,因此助理系统140可以实现对话优化技术以消除如下需要:确认用户想要呼叫谁。在特定实施例中,对话管理器216可以实现强化学习框架以改进对话优化。对话管理器216可以包括对话意图解析器356、对话状态追踪器218和动作选择器222。在特定实施例中,对话管理器216可以执行所选择的动作,然后再次调用对话状态追踪器218,直到所选择的动作需要用户响应,或者不再有动作要执行。选择的每个动作可以取决于来自先前动作的执行结果。在特定实施例中,对话意图解析356可以基于用户与助理系统140之间的对话历史,来解析与当前对话会话相关联的用户意图。对话意图解析356可以将由NLU模块210确定的意图映射到不同的对话意图。对话意图解析356可以进一步基于来自NLU模块210、实体解析模块212的信号以及用户与助理系统140之间的对话历史,来对对话意图进行排序。
在特定实施例中,对话状态追踪器218可以使用一组操作符来追踪对话状态。操作符可以包括更新对话状态所需的数据和逻辑。每个操作符可以在处理传入用户输入之后作为对话状态的增量(delta)。在特定实施例中,对话状态追踪器218可以包括任务追踪器,该任务追踪器可以基于任务规范和不同规则。对话状态追踪器218还可以包括槽位追踪器和共指部件,该槽位追踪器和共指部件可以是基于规则和/或基于新近的。共指部件可以帮助实体解析模块212解析实体。在替代实施例中,利用共指部件,对话状态追踪器218可以取代实体解析模块212,并且可以解析任何引用/提及并保持追踪状态。在特定实施例中,对话状态追踪器218可以使用任务规范将上游结果转换成候选任务,并利用实体解析来解析实参。可以追踪用户状态(例如,用户的当前活动)和任务状态(例如,触发条件)。给定当前状态,对话状态追踪器218可以生成助理系统140可为用户处理和执行的候选任务。作为示例而非限制,候选任务可以包括“显示建议”、“获取天气信息”或“拍照”。在特定实施例中,对话状态追踪器218可以基于来自例如知识图谱、用户记忆和用户任务历史的可用数据来生成候选任务。在特定实施例中,对话状态追踪器218然后可以使用所解析的实参来解析触发器对象。作为示例而非限制,用户输入“今晚妈妈在线并且我在家时,提醒我给她打电话(remindme to call mom when she’s online and I’m home tonight)”可以执行从NLU输出到对话状态追踪器218的触发器表示的转换,如以下表1所示:
表1:从NLU输出到触发器表示的示例转换
在上面的示例中,“mom”、“home”和“tonight”由其各自的实体来表示:personEntity、locationEntity、datetimeEntity。
在特定实施例中,对话管理器216可以将由上下文引擎220确定的事件映射到动作。作为示例而非限制,动作可以是自然语言生成(NLG)动作、显示或覆盖、设备动作或检索动作。对话管理器216还可以执行上下文追踪和交互管理。上下文追踪可以包括将实时事件流聚合成统一的用户状态。交互管理可以包括在每个状态中选择最佳动作。在特定实施例中,对话状态追踪器218可以执行上下文追踪(即,追踪与用户有关的事件)。为了支持对事件流的处理,对话状态追踪器218a可以使用事件处理器(例如,用于消除歧义、确认、请求),该事件处理器可以消费各种类型的事件并对内部助理状态进行更新。每个事件类型可以具有一个或多个处理器。每个事件处理器可正在修改助理状态的某个片段。在特定实施例中,各事件处理器可以对状态的不相交的子集进行操作(即,只有一个处理器可以对状态中的特定字段具有写入访问权限)。在特定实施例中,所有事件处理器可以具有处理给定事件的机会。作为示例而非限制,对话状态追踪器218可以对每个事件并行运行所有事件处理器,然后可以对由每个事件处理器提出的状态更新(例如,对于每个事件,大多数处理器可能返回空(NULL)更新)进行合并。
在特定实施例中,对话状态追踪器218可以用作需要版本化的任何编程处理器(逻辑)。在特定实施例中,对话状态追踪器218可以是无副作用部件并且生成n个最佳候选对话状态更新操作符(其提出对对话状态的更新),而不是直接改变对话状态。对话状态追踪器218可以包括意图解析器,所述意图解析器包含基于对话状态来处理不同类型的NLU意图并生成操作符的逻辑。在特定实施例中,可以通过意图处理器(例如,用于在助理系统140请求消除歧义时处理意图的消除歧义意图处理器、包括用于处理确认的逻辑的确认意图处理器等)来组织逻辑。意图解析器可以将转向意图(turn intent)与对话状态组合在一起,以生成与用户的会话的上下文更新。槽位解析部件然后可以用包括知识图谱的解析提供者和域代理来递归地解析更新操作符中的槽位。在特定实施例中,对话状态追踪器218可以对当前对话会话的对话状态进行更新/排序。作为示例而非限制,如果对话会话结束,则对话状态追踪器218可以将对话状态更新为“完成”。作为另一示例而非限制,对话状态追踪器218可以基于与对话状态相关联的优先级来对对话状态进行排序。
在特定实施例中,对话状态追踪器218可以关于对话意图和相关联的内容对象,与动作选择器222进行通信。在特定实施例中,动作选择器222可以针对不同的对话意图对不同的对话假设进行排序。动作选择器222可以采用候选的对话状态操作符,并参考对话策略360来判定应该执行什么动作。在特定实施例中,对话策略360可以是基于树的策略,该基于树的策略是预先构建的对话计划。基于当前对话状态,对话策略360可以选择待执行的节点并生成相应的动作。作为示例而非限制,基于树的策略可以包括主题分组节点和对话动作(叶子)节点。在特定实施例中,对话策略360还可以包括数据结构,该数据结构描述了代理228的动作的执行计划。对话策略360还可以包括通过逻辑操作符彼此相关的多个目标。在特定实施例中,目标可以是对话策略的一部分的结果,并且该目标可以由对话管理器216来构建。目标可以由具有一个或多个具名实参的标识符(例如,字符串)来表示,该具名实参将目标参数化。作为示例而非限制,具有其相关联的目标实参的目标可以被表示为{确认_艺术家,实参:{艺术家:“麦当娜”}}({confirm_artist,args:{artist:“Madonna”}})。在特定实施例中,目标可以被映射到对话策略360的树结构表示的树的叶子。
在特定实施例中,助理系统140可以使用分级对话策略360,其中通用策略362处理跨域业务逻辑,而任务策略364处理任务/域特定逻辑。通用策略362可以用于非特定于个别任务的动作。通用策略362可以用于确定任务堆叠和切换、主动任务、通知等。通用策略362可以包括处理低置信度意图、内部错误、具有重试的不可接受的用户响应、和/或基于ASR或NLU置信度分数跳过或插入确认。通用策略362还可以包括这样的逻辑:该逻辑对来自对话状态追踪器218输出的对话状态更新候选进行排序,并挑选要更新的对话状态更新候选(例如,挑选排名靠前的任务意图)。在特定实施例中,助理系统140可以具有用于通用策略362的特定接口,该特定接口允许将分散的跨域策略/业务规则(特别是在对话状态追踪器218中找到的那些跨域策略/业务规则)合并到动作选择器222的功能中。用于通用策略362的接口还可以允许创建可依赖于特定情况或客户端的自包含子策略单元(例如,可以基于客户端、情况容易地打开或关闭的策略功能)。用于通用策略362的接口还可以允许提供具有退避的策略分级(即多个策略单元),其具有处理特定情况的高度专用策略单元,这些高度专用策略单元由适用于更广泛情况的更通用策略362支持。在该上下文中,通用策略362可以可选地包括意图或任务特定策略。
在特定实施例中,任务策略364可以包括基于任务和当前状态而用于动作选择器222的逻辑。任务策略364可以是动态的和自组织的。在特定实施例中,任务策略364的类型可以包括以下类型中的一个或多个:(1)手动创建的基于树的对话计划;(2)直接实现接口(该接口用于生成动作)的编码策略;(3)配置器指定的槽位填充任务;或(4)从数据中学习的基于机器学习模型的策略。在特定实施例中,助理系统140可以用基于规则的逻辑引导新域,并且稍后用机器学习模型来精炼任务策略364。在特定实施例中,通用策略362可以从候选操作符中选择一个操作符来更新对话状态,随后由任务策略364选择面向用户的动作。一旦任务在对话状态中是活动的,就可以参考对应的任务策略364来选择正确的动作。
在特定实施例中,动作选择器222可以基于以下中的一者或多者来选择动作:由上下文引擎220确定的事件、对话意图和状态、相关联的内容对象和来自对话策略360的指引。每个对话策略360可以订阅状态字段上的特定条件。在事件被处理并且状态被更新之后,动作选择器222可以运行快速搜索算法(例如,类似于布尔(Boolean)可满足性),以基于当前状态识别哪些策略应该被触发。在特定实施例中,如果多个策略被触发,则动作选择器222可以使用平局打破机制来拾取特定策略。替代地,动作选择器222可以使用更精细的方法,该方法可以空运行(dry run)每个策略,然后拾取可以被确定为具有高成功可能性的特定策略。在特定实施例中,将事件映射到动作可以为助理系统140带来若干技术优势。一个技术优势可以包括:每个事件可以是来自用户或用户的物理/数字环境的状态更新,该状态更新可以触发也可以不触发来自助理系统140的动作。另一个技术优势可以包括:通过首先消费所有事件以更新状态、然后从最终状态触发一个或多个动作,来处理快速事件突发(例如,用户进入新建筑并看到许多人)的可能性。另一个技术优势可以包括将所有事件消费到单个全局助理状态中。
在特定实施例中,动作选择器222可以将对话状态更新操作符作为输入的一部分以用于选择对话动作。对对话动作的执行可以生成一组预期,以指示对话状态追踪器218来处理未来的轮次。在特定实施例中,预期可用于在处理来自下一轮的用户输入时,向对话状态追踪器218提供上下文。作为示例而非限制,槽位请求对话动作可以具有验证所请求槽位的值的预期。在特定实施例中,对话状态追踪器218和动作选择器222两者可以在执行所选择的动作之前不改变对话状态。这可以允许助理系统140执行对话状态追踪器218和动作选择器222,以处理推测的ASR结果并利用空运行进行n个最佳排名。
在特定实施例中,动作选择器222可以调用不同的代理228来执行任务。同时,对话管理器216可以接收更新对话状态的指令。作为示例而非限制,该更新可以包括等待代理228的响应。代理228可以在所注册的内容提供者中进行选择以完成动作。可以由对话管理器216基于意图以及与该意图相关联的一个或多个槽位来构建数据结构。在特定实施例中,多个代理228可以包括第一方代理和第三方代理。在特定实施例中,第一方代理可以包括可由助理系统140访问和控制的内部代理(例如,与在线社交网络提供的服务相关联的代理,所述服务例如为消息收发服务或照片共享服务)。在特定实施例中,第三方代理可以包括助理系统140不能控制的外部代理(例如,第三方在线音乐应用代理、票务销售代理)。第一方代理可以与提供由社交网络系统160托管的内容对象和/或服务的第一方提供者相关联。第三方代理可以与提供由第三方系统170托管的内容对象和/或服务的第三方提供者相关联。在特定实施例中,可以为特定域指定第一方代理或第三方代理中的每一者。作为示例而非限制,域可以包括天气、交通、音乐、购物、社交、视频、照片、事件、位置和/或工作。在特定实施例中,助理系统140可以协作地使用多个代理228来响应用户输入。作为示例而非限制,用户输入可以包括“将我引导到我的下一次会议”。助理系统140可以使用日历代理来检索下一次会议的位置。然后,助理系统140可以使用导航代理将用户引导到下一次会议。
在特定实施例中,对话管理器216可以支持对槽位提及的多轮组成解析。对于来自NLU模块210的组成语法分析,解析器可以递归地解析所嵌套的槽位。对话管理器216还可以支持对所嵌套的槽位的歧义消除。作为示例而非限制,用户输入可以是“提醒我呼叫亚历克斯(Alex)”。在创建可执行的提醒待办事项实体之前,解析器可能需要知道呼叫哪个Alex。当需要对特定槽位进行进一步的用户澄清时,解析器可以暂停解析并设置解析状态。通用策略362可以检查解析状态并为用户澄清创建相应的对话动作。在对话状态追踪器218中,基于用户输入和最后的对话动作,对话管理器216可以更新所嵌套的槽位。这一能力可以允许助理系统140与用户交互,以不仅收集了缺失的槽位值,还减少了更复杂/不明确的表达的歧义以完成任务。在特定实施例中,对话管理器216还可以支持在嵌套意图和多意图用户输入中请求缺失槽位(例如,“拍下这张照片并将其发送给爸爸”)。在特定实施例中,对话管理器216可以支持机器学习模型以获得更稳健的对话体验。作为示例而非限制,对话状态追踪器218可以使用基于神经网络的模型(或任何其它合适的机器学习模型)来对任务假设之上的信念进行建模。作为另一示例而非限制,对于动作选择器222,最高优先级策略单元可以包括白名单/黑名单覆盖,这可能必须通过设计来发生;中等优先级单元可以包括为动作选择而设计的机器学习模型;而较低优先级单元可以包括在机器学习模型选择不处理情况时基于规则的后退。在特定实施例中,基于机器学习模型的通用策略单元可以帮助助理系统140减少冗余的歧义消除或确认步骤,从而减少执行用户输入的轮次。
在特定实施例中,由动作选择器222确定的动作可以被发送到传递系统230。传递系统230可以包括CU编写器370、响应生成部件380、对话状态写入部件382和语音合成(text-to-speech,TTS)部件390。具体地,动作选择器222的输出可以在CU编写器370处接收。在特定实施例中,来自动作选择器222的输出可以被公式化为<k,c,u,d>元组,其中k指示知识源,c指示通信目标,u指示用户模型,并且d指示话语模型。
在特定实施例中,CU编写器370可以使用自然语言生成(NLG)部件372为用户生成通信内容。在特定实施例中,NLG部件372可以使用不同的语言模型和/或语言模板来生成自然语言输出。自然语言输出的生成可以是特定于应用的。自然语言输出的生成也可以针对每个用户进行个性化。在特定实施例中,NLG部件372可以包括内容确定部件、语句规划器和表层实现部件。内容确定部件可以基于知识源、通信目标和用户预期来确定通信内容。作为示例而非限制,该确定可以基于描述逻辑。该描述逻辑可以包括例如三个基本理念,这三个基本理念是个体(表示域中的对象)、概念(描述个体集合)和角色(表示各个体或各概念之间的二元关系)。描述逻辑可以由一组构造函数来表征,这些构造函数允许自然语言生成器从原子概念/角色构建复杂的概念/角色。在特定实施例中,内容确定部件可以执行以下任务来确定通信内容。第一任务可以包括翻译任务,其中对NLG部件372的输入可以被翻译成概念。第二任务可以包括选择任务,其中可以基于用户模型从翻译任务产生的概念中选择相关概念。第三任务可以包括验证任务,其中可以对所选择概念的一致性进行验证。第四任务可包括实例化任务,其中经验证的概念可以被实例化为可由NLG部件372处理的可执行文件。语句规划器可以确定通信内容的组织以使其可被人类理解。表层实现部件可以确定要使用的特定词、句子的顺序以及通信内容的风格。
在特定实施例中,CU编写器370还可以使用UI有效载荷生成器374来确定所生成的通信内容的模态。由于所生成的通信内容可以被认为是对用户输入的响应,因此CU编写器370可以另外使用响应排序器376来对所生成的通信内容进行排序。作为示例而非限制,排序可以指示响应的优先级。在特定实施例中,CU编写器370可以包括自然语言合成(natural-language synthesis,NLS)部件,该NLS部件可以与NLG部件372分开。NLS部件可以指定由CU编写器370生成的合成语音的属性,包括性别、音量、节奏、风格或音域,以便为特定用户、任务或代理定制响应。NLS部件可以在不涉及相关联任务的实现的情况下,对语言合成进行调整。在特定实施例中,CU编写器370可以检查与用户相关联的隐私约束以确保通信内容的生成遵循隐私策略。关于定制自然语言生成(NLG)的更多信息可以在如下申请中找到:于2018年4月30日提交的申请号为15/967279的美国专利申请、和于32018年4月30日提交的申请号为15/966455的美国专利申请,这些美国专利申请通过引用而被并入。
在特定实施例中,传递系统230可以基于CU编写器370的输出来执行不同的任务。这些任务可以包括:使用对话状态写入部件382将对话状态写入(即,存储/更新)到数据存储库330中,以及使用响应生成部件380生成响应。在特定实施例中,如果所确定的通信内容的模态是音频,则CU编写器370的输出还可以被发送到TTS部件390。在特定实施例中,来自传递系统230的输出包括以下中的一者或多者:所生成的响应、通信内容、或由TTS部件390生成的语音,该输出然后可以被发送回对话管理器216。
在特定实施例中,协调器206可以基于实体解析模块212的输出来确定是在客户端系统130上处理用户输入,还是在服务器上处理用户输入,还是使用客户端系统和服务器以第三操作模式(即,混合模式)处理用户输入。除了确定如何处理用户输入之外,协调器206还可以接收由对话管理器216提供的来自代理228的结果和/或来自传递系统230的结果。然后,协调器206可以将这些结果转发到仲裁器226。仲裁器226可以对这些结果进行聚合、分析,选择最佳结果并将所选择的结果提供给渲染输出模块232。在特定实施例中,仲裁器226可以参考对话策略360以在分析这些结果时获得指引。在特定实施例中,渲染输出模块232可以生成适合于客户端系统130的响应。
图4示出了处理用户输入的以任务为中心的示例流程图400。在特定实施例中,助理系统140不仅可以帮助用户获得语音发起体验,还可以帮助用户获得在理解用户上下文时发起的更主动的多模态体验。在特定实施例中,助理系统140可以为此目的依赖于助理任务。助理任务可以是如下核心概念:该核心概念在整个助理堆栈(assistant stack)中共享,以理解用户意图、与用户和世界交互以完成针对用户的正确任务。在特定实施例中,助理任务可以是助理能力的基本单位。助理任务可以包括数据获取、更新某个状态、执行某个命令或由较小任务集合组成的复杂任务。正确且成功地完成任务以将值传递给用户可能是助理系统140针对其进行优化的目标。在特定实施例中,助理任务可以被定义为能力或特征。如果多个产品表面(product surface)具有完全相同的要求,则可以跨多个产品表面共享助理任务,因此可以很容易地追踪该助理任务。助理任务也可以在设备之间传递,并且很容易在任务中途被另一个设备拾取,因为基本单元是一致的。此外,助理任务的一致格式可能允许开发者使用助理堆栈中的不同模块来更容易地围绕其进行设计。此外,助理任务还可以实现任务分担。作为示例而非限制,如果用户正在智能眼镜上听音乐,则该用户可以说“在我的手机上播放这首音乐”。在手机没有被唤醒或有任务要执行的情况下,智能眼镜可以制定提供给手机的任务,然后该任务可以由手机执行以开始播放音乐。在特定实施例中,如果各表面具有不同的预期行为,则每个表面可以单独地保留助理任务。在特定实施例中,助理系统140可以在服务器或本地产品表面上基于不同形态的用户输入或其它信号来识别正确任务,进行会话以收集所有必要的信息,并利用内部或外部实现的动作选择器222来完成该任务。在特定实施例中,助理堆栈可以包括一组处理部件,这些处理部件来自唤醒、识别用户输入、理解用户意图、对任务进行推理、完成任务,以生成带语音的自然语言响应。
在特定实施例中,用户输入可以包括语音输入。可以在ASR模块208处接收语音输入,以从该语音输入中提取文本转录。ASR模块208可以使用统计模型来确定最可能的词序列,该词序列对应于由助理系统140接收的作为音频输入的给定语音部分。这些模型可以包括以下中的一者或多者:隐马尔可夫(hidden Markov)模型、神经网络、深度学习模型或它们的任意组合。接收到的音频输入可以以特定的采样率(例如,16kHz、44.1kHz或96kHz)以及表示每个样本的特定的位数(例如,24位的8、16)被编码成数字数据。
在特定实施例中,ASR模块208可以包括以下中的一者或多者:字素到音素(grapheme-to-phoneme,G2P)模型、发音学习模型、个性化声学模型、个性化语言模型(personalized language model,PLM)或结束指向模型(end-pointing model)。在特定实施例中,字素到音素(G2P)模型可以用于确定用户的字素到音素风格(即,当特定用户说出特定词时,其可能听起来像什么)。在特定实施例中,个性化声学模型可以是音频信号与语言中的语音单元的声音之间的关系的模型。因此,这种个性化声学模型可以识别用户的语音听起来如何。可以使用训练数据(诸如作为音频输入接收的训练语音和对应于该语音的对应语音单元)来生成个性化声学模型。可以使用特定用户的声音来训练或精细化个性化声学模型以识别该用户的语音。在特定实施例中,个性化语言模型然后可以确定最可能的短语,该最可能的短语对应于特定音频输入的所识别的语音单元。个性化语言模型可以是各种词序列可能在该语言中出现的概率的模型。可以使用个性化语言模型将音频输入中的语音单元的声音与词序列进行匹配,并且可以将更大的权重分配给更有可能是该语言中的短语的词序列。然后,可以选择具有最高权重的词序列作为对应于音频输入的文本。在特定实施例中,个性化语言模型还可用于预测在给定上下文的情况下用户最可能说什么词。在特定实施例中,结束指向模型可以检测何时到达发声结束。在特定实施例中,至少部分地基于客户端系统130的有限计算能力,助理系统140可以在客户端侧过程期间在运行时对个性化语言模型进行优化。作为示例而非限制,助理系统140可以为用户可能谈论的多个可能主题预先计算多个个性化语言模型。当用户输入与请求协助相关联时,助理系统140可以在运行时基于用户活动在所预先计算的语言模型之间迅速切换并在本地对所述语言模型进行优化。这样,助理系统140可以保留计算资源,同时高效地识别与用户输入相关联的主题。在特定实施例中,助理系统140还可以在运行时动态地重新学习用户发音。
在特定实施例中,用户输入可以包括非语音输入。可以在上下文引擎220处接收非语音输入,以从该非语音输入确定事件和上下文。上下文引擎220可以确定如下多模态事件:所述多模态事件包括语音/文本意图、位置更新、视觉事件、触摸、注视、姿势、活动、设备/应用事件、和/或任何其它合适类型的事件。语音/文本意图可以取决于ASR模块208和NLU模块210。位置更新可以由对话管理器216来消费以支持各种主动/反应场景。视觉事件可以基于出现在用户视野中的人或对象。这些事件可以由对话管理器216消费并被记录在瞬时用户状态中以支持视觉共指关系(例如,解析出“那件衬衫多少钱?”中的“那件”以及解析出“将我的联系方式发送给他”中的“他”)。注视、姿势和活动可以使得在瞬时用户状态(例如,用户正在跑步)下设置标志,这可以调节动作选择器222。对于设备/应用事件,如果应用对设备状态进行更新,则可以将其发布到助理系统140,使得对话管理器216可以使用该上下文(当前向用户显示的上下文)来处理反应和主动场景。作为示例而非限制,上下文引擎220可以使推送通知消息能够显示在用户的客户端系统130的显示屏上。用户可以与推送通知消息交互,这可以发起多模态事件(例如,用于对从另一用户接收的消息进行回复的事件工作流)。其它示例多模态件可以包括看朋友、看地标、在家、跑步、照片中的面孔被识别、用触摸开始呼叫、用触摸拍照、打开应用等。在特定实施例中,上下文引擎220还可以基于世界更新/社交更新(例如,天气变化、朋友上线)来确定世界事件/社交事件。社交更新可以包括用户订阅的事件(例如,朋友的生日、帖子、评论、其它通知)。对话管理器216可以消费这些更新以基于上下文触发主动动作(例如,建议用户在朋友生日时给其打电话,但前提是该用户没有关注其它事情)。作为示例而非限制,接收消息可以是社交事件,其可以触发向用户阅读消息的任务。
在特定实施例中,来自ASR模块208的文本转录可以被发送到NLU模块210。NLU模块210可以处理文本转录并提取用户意图(即意图),并基于语言本体来语法分析槽位或语法分析结果。在特定实施例中,来自NLU模块210的意图和槽位和/或来自上下文引擎220的事件和上下文可以被发送到实体解析模块212。在特定实施例中,实体解析模块212可以基于来自NLU模块210和/或上下文引擎220的输出来解析与用户输入相关联的实体。实体解析模块212可以使用不同的技术来解析实体,包括从助理用户记忆(AUM)354访问用户记忆。在特定实施例中,AUM 354可以包括用户情景记忆,该用户情景记忆有助于由实体解析模块212来解析实体。AUM 354可以是用于存储、检索、索引和搜索用户数据的中心地。
在特定实施例中,实体解析模块212可以向对话状态追踪器218提供意图、槽位、实体、事件、上下文或用户记忆中的一者或多者。对话状态追踪器218可以相应地识别任务的一组状态候选,与用户进行交互以收集填充状态所需的信息,并调用动作选择器222来完成任务。在特定实施例中,对话状态追踪器218可以包括任务追踪器410。任务追踪器410可以追踪与助理任务相关联的任务状态。在特定实施例中,任务状态可以是如下数据结构:该数据结构持续交叉交互轮转并实时更新,以采集任务在整个交互期间的状态。任务状态可以包括关于任务执行状态的所有当前信息,例如实参、确认状态、置信度分数等。任务状态中的任何错误或过时信息都可能导致任务执行失败或不正确。任务状态还可以用作诸如ASR模块208、NLU模块210等许多其它部件的一组上下文信息。
在特定实施例中,任务追踪器410可以包括意图处理器411、任务候选排序模块414、任务候选生成模块416和合并层419。在特定实施例中,任务可以通过其ID名称来识别。如果在任务规范中没有明确设置任务ID,例如对话策略360、代理执行、NLG对话动作等,则该任务ID可以用于关联相应的组件资源。因此,来自实体解析模块212的输出可以由任务候选生成模块416的任务ID解析部件417来接收,以解析对应任务的任务ID。在特定实施例中,任务ID解析部件417可以调用任务规范管理器API 430以访问触发规范和部署规范以用于解析任务ID。在给定这些规范的情况下,任务ID解析部件417可以使用意图、槽位、对话状态、上下文和用户记忆来解析任务ID。
在特定实施例中,任务的技术规范可以由任务规范来定义。任务规范可以由助理系统140用来触发任务、进行对话会话、以及找到正确的执行模块(例如,代理228)来执行该任务。任务规范可以是产品需求文档的实施方式。任务规范可以用作所有组件约定的通用契约和要求。任务规范可以被认为是产品的装配规范,而所有开发伙伴都根据该规范交付模块。在特定实施例中,可以通过规范在实施方式中定义助理任务。作为示例而非限制,任务规范可以被定义为以下类别。一个类别可以是基本任务模式,该基本任务模式包括诸如ID、名称和输入实参的模式等基本识别信息。另一类别可以是触发规范,该触发规范是关于可以如何触发任务的,诸如意图、事件消息ID等。另一类别可以是会话规范,该会话规范用于对话管理器216以与用户和系统进行会话。另一类别可以是执行规范,该执行规范是关于如何执行和完成任务的。另一类别可以是部署规范,该部署规范是关于如何将特征部署到某些表面、本地和用户组的。
在特定实施例中,任务规范管理器API 430可以是用于访问任务规范管理器的API。任务规范管理器可以是运行时堆栈中的模块,用于从所有任务加载规范并提供访问所有任务规范的接口以获取详细信息或生成任务候选。在特定实施例中,任务规范管理器可能够经由任务规范管理器API 430对运行时堆栈中的所有组件进行访问。任务规范管理器可以包括一组静态实用功能,以利用任务规范管理器来管理任务,例如按平台过滤任务候选。在任务规范落地之前,助理系统140还可以动态加载多个任务规范以支持开发阶段的端对端开发。
在特定实施例中,任务规范可以按域分组并存储在运行时配置435中。运行时堆栈可以在构建时间期间从运行时配置435加载所有任务规范。在特定实施例中,在运行时配置435中,对于域,可以存在cconf文件和cinc文件(例如,sidechef_task.cconf和sidechef_task.inc)。作为示例而非限制,<domain>_tasks.cconf可以包括任务规范的所有细节。作为另一示例而非限制,<domain>_tasks.cinc可以提供一种方式来覆盖所生成的规范(如果还不支持该功能)。
在特定实施例中,任务执行可能需要一组实参才能执行。因此,实参解析部件418可以使用所解析的任务ID的实参规范来解析实参名称。可以基于NLU输出(例如,槽位[槽位:联系人]([SL:contact])))、对话状态(例如,短期呼叫历史)、用户记忆(例如,用户偏好、位置、长期呼叫历史等)或设备上下文(例如,定时器状态、屏幕内容等),来解析这些实参。在特定实施例中,实参形态可以是文本、音频、图像或其它结构化数据。槽位到实参的映射可以由填充策略和/或语言本体来定义。在特定实施例中,在给定任务触发规范的情况下,任务候选生成模块416可以基于所解析的任务ID和实参来查找待被触发的任务列表作为任务候选。
在特定实施例中,所生成的任务候选可以被发送到任务候选排序模块414以被进一步排序。任务候选排序模块414可以使用基于规则的排序器415来对所生成的任务候选进行排序。在特定实施例中,基于规则的排序器415可以包括一组启发以偏向某些域任务。下面可以用上下文优先的原则来描述排序逻辑。在特定实施例中,用户指定任务的优先级可以高于前台任务。当意图是元意图时,前台任务的优先级可以高于设备域任务。设备域任务的优先级可以高于对意图域进行触发的任务。作为示例而非限制,如果在表达中提到或指定了任务域,诸如“在定时器应用中创建定时器”,则排序可以挑选任务。作为另一示例而非限制,如果任务域处于前台或活动状态(例如,当定时器应用处于前台并且存在活动定时器时,“停止定时器”以停止定时器),则排序可以挑选任务。作为另一示例而非限制,如果意图是一般元意图,并且任务是设备控制而不存在其它活动应用或活动状态,则排序可以挑选任务。作为另一个示例而非限制,如果任务与意图域相同,则排序可以挑选任务。在特定实施例中,任务候选排序模块414可以定制一些更多的逻辑来检查意图/槽位/实体类型的匹配。经排序的任务候选可被发送到合并层419。
在特定实施例中,来自实体解析模块212的输出还可以被发送到意图处理器411的任务ID解析部件412。与任务ID解析部件417类似,任务ID解析部件412可以对相应任务的任务ID进行解析。在特定实施例中,意图处理器411还可以包括实参解析部件413。与实参解析部件418类似,实参解析部件413可以使用所解析的任务ID的实参规范来对实参名称进行解析。在特定实施例中,意图处理器411可以处理与任务无关的特征,并且可以不在特定于任务的任务规范内表达。意图处理器411可以输出除任务候选之外的状态候选,诸如实参更新、确认更新、歧义消除更新等。在特定实施例中,一些任务可能需要非常复杂的触发条件或非常复杂的实参填充逻辑,这些触发条件或实参填充逻辑即使在任务规范中被支持,也可能不能被其它任务再次使用(例如,呼叫中的语音命令、经由[IN:PLAY_MEDIA]的媒体任务等)。意图处理器411也可以适用于这种类型的任务。在特定实施例中,来自意图处理器411的结果可以优先于来自任务候选排序模块414的结果。来自意图处理器411的结果也可以被发送到合并层419。
在特定实施例中,合并层419可以对来自意图处理器411的结果和来自任务候选排序模块414的结果进行组合。对话状态追踪器218可以建议每个任务作为供对话策略360从中选择的新状态,从而生成状态候选列表。合并的结果还可以被发送到会话理解强化引擎(conversational understanding reinforcement engine,CURE)追踪器420。在特定实施例中,CURE追踪器420可以是个性化学习过程,以使用实时用户反馈来改进对话状态追踪器218在不同上下文下对状态候选的确定。关于会话理解强化引擎的更多信息可以在于2021年2月26日提交的申请号为17/186459的美国专利申请找到,该美国专利申请通过引用而被并入。
在特定实施例中,CURE追踪器420生成的状态候选可以被发送到动作选择器222。动作选择器222可以参考任务策略364,任务策略可以是从经由任务规范管理器API 430访问的执行规范中生成。在特定实施例中,执行规范可以描述应该如何执行任务以及动作选择器222可能需要采取什么动作来完成任务。
在特定实施例中,动作选择器222可以确定与系统相关联的动作。这样的动作可能涉及代理228来执行。这样,动作选择器222可以将系统动作发送到代理228,并且代理228可以返回这些动作的执行结果。在特定实施例中,动作选择器可以确定与用户或设备相关联的动作。这样的动作可能需要由传递系统230来执行。这样,动作选择器222可以将用户/设备动作发送到传递系统230,并且传递系统230可以返回这些动作的执行结果。
本文所公开的实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,其例如可以包括虚拟现实(VR)、增强现实(AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容、或与采集到的内容(例如,真实世界照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上任何一种均可以以单通道或多通道呈现(例如,为观看者带来三维效果的立体视频)。此外,在一些实施例中,人工现实可以与应用、产品、附件、服务或它们的某些组合相关联,该应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其它硬件平台。
主动收听
在特定实施例中,在用户向启用助理的设备说唤醒词之后,在启用助理的设备的传声器正在收听用户并且用户正在讲话时,助理系统140可以向用户提供主动的非视觉反馈(例如,音频和触觉)。连续非视觉反馈可以通过向用户提供助理系统140正在主动收听其话语的指示来改善用户体验。在启用助理的设备与配套设备配对(例如,智能眼镜与智能手机配对)的情况下,该特征还可以具有如下好处:减少/消除由在配对的配套设备上正运行的助理配套应用的操作系统引起的抑制。尽管本公开描述了由特定系统以特定方式提供特定反馈,但是本公开考虑了由任何合适的系统以任何合适的方式提供任何合适的反馈。
在特定实施例中,助理系统140可以从第一客户端系统130接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词。然后,助理系统140可以将助理xbot设置为收听模式。相应地,在助理xbot处于收听模式时,可以经由第一客户端系统130提供连续非视觉反馈。在特定实施例中,在助理xbot处于收听模式时,助理系统140可以从第一客户端系统130接收第二用户输入,该第二用户输入包括用户话语。然后,助理系统140可以基于用户话语的完成来确定第二用户输入已结束。助理系统140还可以将助理xbot设置为非活动模式。在特定实施例中,在助理xbot处于非活动模式时,可以经由第一客户端系统130终止非视觉反馈。在特定实施例中,第一用户输入和第二用户输入可以包括与助理系统140的整个对话会话,或者可以是与助理系统140的多轮对话会话的一部分。
在特定实施例中,可以在用户与助理系统140之间的多轮交互中提供连续非视觉反馈。多轮交互可以包括多于两轮的交互,即第三用户语音输入和所有后续用户语音输入。因此,助理系统140可能在用户与助理系统140之间的来回交互中不止一次地打开传声器。作为示例而非限制,用户可以说“嘿助理”作为第一用户输入。助理系统140可以提供唤醒声音,然后提供收听声音。然后,用户可以说“向莉娅(Lia)发送消息”。收听声音可逐渐消失,并且助理系统140可回复“您希望该消息是什么?”。助理系统140可以再次提供收听声音。同时,助理系统140可以再次打开传声器以进行第三用户输入。然后,用户可以说“我要迟到了”。然后,收听声音可再次消失,并且助理系统可回答“现在发送消息”。
在特定实施例中,该一个或多个计算系统可以包括第一客户端系统130。作为示例而非限制,第一客户端系统130可以包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表。相应的用例可如下所示。用户可能正在使用第一客户端系统130(例如,智能手机)。客户端系统130可以被锁定,并且助理xbot可以作为后台进程在运行。因此,助理xbot可能被第一客户端系统130的操作系统抑制,这可能会限制助理系统140运行整个助理堆栈。在替代实施例中,第一客户端系统130可以被解锁,并且助理xbot可以作为前台进程在运行。用户可以向第一客户端系统130说唤醒词,对于该第一客户端系统,助理系统140可以提供旨在指示助理系统140被激活的反馈(例如,砰(ping)声)。然后,助理系统140可以将在第一客户端系统130上正运行的助理xbot设置为收听模式。连续非视觉反馈(例如,音频)可以相应地经由第一客户端系统130传递给用户,这可以将助理xbot从后台带到前台。因此,操作系统可以给助理xbot更多的计算容量,使得助理系统140可以有效地运行整个助理堆栈。如果第一客户端系统130被解锁并且助理xbot作为前台进程在运行,则连续非视觉反馈可以用于可用性的好处。当用户停止讲话(即,保持沉默)时,助理系统140还可以提供旨在指示助理系统140被停用的反馈(例如,另一砰声)。同时,助理系统140可以停止向用户传递连续非视觉反馈。
在特定实施例中,该一个或多个计算系统可以包括与第一客户端系统130配对的配套设备。作为示例而非限制,第一客户端系统130可以是启用助理的智能眼镜,并且配套设备可以是智能手机。相应地,助理xbot可以与在配套设备上执行的配套应用相关联。当助理xbot接收到唤醒词时,助理系统140可以指示助理xbot提供旨在指示助理系统140被激活的反馈(例如,砰声)。然而,当唤醒词被接收到时,配套设备可能处于锁定状态。当配套设备被锁定时,配套应用可以作为后台应用在配套设备上执行。将配套设备与启用助理的设备一起使用的一个问题可能是,大多数操作系统可能会抑制后台应用可使用的计算容量。在特定实施例中,配套设备可以允许配套应用访问低于阈值容量的计算容量。作为示例而非限制,在一个操作系统上,后台应用可能被抑制至计算容量的8%,并且在另一操作系统上,后台应用可能被抑制至计算容量的25%。通过客户端系统130提供连续非视觉反馈可以是如下有效的解决方案:该解决方案用于解决当客户端系统130被锁定时在客户端系统130上增加助理系统140的操作容量的技术挑战,这是因为操作系统可以在无需解锁客户端系统130的情况下,响应于非视觉反馈而增加助理系统140可访问的计算容量。尽管本公开描述了在配套设备被锁定时在配套应用作为后台应用在执行时提供连续非视觉反馈,但是本公开考虑了在配套应用和配套设备处于任何合适的状态时提供连续非视觉反馈。作为示例而非限制,即使配套应用正在前台运行,助理系统140也可以提供连续非视觉反馈。作为另一示例而非限制,助理系统140可以在与配套应用和配套设备相关联的状态的各种组合中提供连续非视觉反馈,这些组合例如为当配套设备被解锁时配套应用正在前台运行、当配套设备被解锁时配套应用正在后台运行、以及当配套设备被锁定时配套应用正在后台运行等。
当操作系统通过限制配套应用可以访问的计算容量来抑制配套应用时,这可能阻止配套应用运行助理系统140的整个助理堆栈。然而,为了有效地帮助用户,配套应用可能需要访问足够的计算容量来运行整个助理堆栈。为了解决该问题,助理系统140可以通过提供主动反馈(例如,连续非视觉反馈)来响应用户输入,从而使配套应用脱离后台,使得操作系统可以解除对配套应用的抑制。换句话说,操作系统可以响应于连续非视觉反馈,将配套应用作为前台应用来执行。在替代实施例中,操作系统可以保持将配套应用作为后台应用来执行,这可以被认为是经由连续非视觉反馈与用户交互的更合适的状态。在特定实施例中,连续非视觉反馈可以基于声音、振动或触觉中的一者或多者。然后,操作系统可以增加计算容量,允许配套应用访问大于阈值容量的计算容量。换句话说,当配套应用向所配对的配套设备提供主动反馈时,操作系统可以减少或移除该抑制,从而允许配套应用正常运行助理堆栈。当用户停止讲话(即,保持沉默)时,助理系统140还可以指示助理xbot提供旨在指示助理系统140被停用的反馈(例如,另一砰声)。同时,助理系统140可以停止通过助理xbot向用户传递连续非视觉反馈。
在特定实施例中,可以有各种新的声音设计或其它非视觉设计作为连续非视觉反馈。在特定实施例中,当助理系统140唤醒时,可以有基于非循环音频信号的唤醒声音,以指示助理系统140已变为主动的(即,客户端系统130的传声器正在录音)。在检测到唤醒词之后,可以播放唤醒声音。在多轮交互期间的后续轮次期间可以不播放唤醒声音(即,如果助理系统140请求后续提示并主动打开传声器以供用户输入,则助理系统可以不播放唤醒声音)。此外,如果在特定时间(例如,在唤醒词之后1000ms)内检测到输入,则可以不播放唤醒声音(即,如果用户在唤醒词与话语之间没有停顿,则助理系统140可以不播放唤醒声音以避免打断用户)。
在特定实施例中,助理系统140可以播放收听声音以指示助理系统140正在主动收听(即,客户端系统130的传声器是打开的)。作为示例而非限制,一种声音设计可以是循环音频信号,例如安静的敲击或具有快速频率和降低强度的低音调。作为另一示例而非限制,另一声音设计可以是静音音频(silent audio)(即,用于静音音频的音频文件可以具有持续时间但没有实际音频波形)。收听声音可以在检测到唤醒词之后播放,并且在助理系统140正在收听时循环。当助理系统140停止收听时,收听声音可以停止。新设计的微妙且非间断的背景声音可能是如下有效的解决方案:该解决方案用于解决避免阻碍用户对输入语音命令的感知能力的技术挑战,这是因为背景声音可能不会导致用户对何时应该发出语音命令感到困惑。此外,由于连续声音可以通过消除交互中的静默停顿来将对交互时延或延迟的感知最小化,因此助理系统140可具有改进用户对用户与助理系统之间来回交互的感知步调的技术优势。这继而可有助于改善整体的用户体验和感知效率。
在特定实施例中,可以在没有文本到声音响应时存在基于非循环音频信号的确认声音,以指示助理系统140已理解输入并对其进行操作。确认声音可以提供保证并掩盖较小的延迟。如果在所解析的意图与任务完成之间存在相当大的时延,则可能需要附加用户信号。然而,如果存在文本到语音响应、如果存在用于确认动作(即,照片采集)或用于基本用户界面导航(即,“返回”、“下一页”)的另一声音,则确认声音可以不播放。
在特定实施例中,可以存在非活动声音以确认助理系统140已变为非活动(即,客户端系统130的传声器是关闭的)。如果通过语音或触摸取消唤醒,如果在唤醒之后什么都没有说,或者如果没有对第二后续提示作出响应,则非活动声音可以在助理系统140唤醒之后播放(即,如果用户没有对消除歧义提示作出响应,没有重复该问题,且在第二后续提示之后没有输入,则助理系统140可以关闭传声器并播放非活动声音)。作为示例而非限制,用户可以在听到收听声音但不提供语音输入之后取消交互。相应地,助理系统140可以关闭传声器并播放非活动声音。作为另一示例而非限制,在收听声音之后的阈值时间量(例如,2秒)内可能没有来自用户的语音输入。相应地,助理系统140可以确定超时,然后关闭传声器。在阈值时间量内没有用户语音输入的情况下,这可以由紧跟在收听声音之后的非活动声音来指示。
在特定实施例中,可能存在指示请求不能执行的故障声音。在技术错误的实例中可以播放故障声音,这对于连接问题的实例可能需要设备上资产。当用户输入不被理解时,或者在不存在文本到语音响应的面向对象设计的实例中,也可以播放故障声音。
在特定实施例中,助理系统140可以使用连续非视觉反馈(例如,主动音频反馈)加上视觉注意系统(例如,对于某些操作系统,其中主动音频反馈不足以解除对操作系统的抑制)。如果用户单独使用第一客户端系统130并且在第一客户端系统130上连续非视觉反馈本身不能完全解除第一客户端系统130的操作系统的抑制以允许助理xbot运行整个助理堆栈,则助理系统140可以在助理xbot处于收听模式时通过第一客户端系统130提供连续视觉反馈。作为示例而非限制,连续视觉反馈可以基于以下中的一者或多者:与助理xbot相关联的图标;收听模式的视觉指示;或光线。在特定实施例中,与视觉注意系统一起的连续非视觉反馈可以使得配套应用的状态从后台转换到前台。这种状态转换可以特定于操作系统,其中主动音频反馈不足以解除操作系统的抑制。
在特定实施例中,在助理xbot处于收听模式时,助理系统140可以经由配套设备提供连续视觉反馈。作为示例而非限制,视觉注意系统可以使配套应用能够在配套设备上显示视觉指示符(即,智能手机上的通知或图标),该视觉指示符指示所配对的启用助理的设备(例如,智能眼镜)处于收听模式。例如,用户可以对一副启用助理的智能眼镜说“嘿助理”。在配套设备(例如,智能手机)上,可以从锁屏显示助理图标。此外,可以有动画或文本描述来指示助理系统140正在经由智能眼镜上的传声器主动收听用户的进一步话语。然后,用户可以发出口头请求,并且响应可以经由智能眼镜的耳机上的音频和智能手机上的视觉来渲染。连续非视觉反馈与连续视觉反馈一起可以将配套应用带到前台,从而允许该应用避免被操作系统抑制。
如上所述,主动非视觉反馈、或非视觉反馈加视觉反馈可以确保配套应用能够访问足够的计算容量以在所配对的设备上运行助理堆栈,即使在该设备被锁定时下也是如此。主动非视觉反馈、或非视觉反馈加视觉反馈可以将配套应用带到前台,并且操作系统可以相应地允许配套应用访问更多的计算容量。
在特定实施例中,主动非视觉反馈、或非视觉反馈加视觉反馈还可以使用户知道助理系统140何时(即,当传声器打开/收听音频和/或向服务器或配套设备传输音频时)正在主动收听他们。因此,助理系统140可以具有改进的用户感知反馈的技术优势,这是因为当存在连续非视觉反馈和/或视觉反馈时,用户可以具有助理系统正在主动收听和处理输入的更高的置信度。对于一些启用助理的设备,这可以通过使设备提供连续视觉反馈(例如,发光的光线、动画图标)来完成。对于不具有显示屏的启用助理的设备(例如,智能眼镜),助理系统140可以依赖前述非视觉反馈(例如,声音、音频、触觉)。
以声音/音频为例,助理系统140可以如下通知用户其正在被主动收听。在特定实施例中,助理系统140可以响应于第一用户输入而经由第一客户端系统130在连续非视觉反馈之前提供初始非视觉反馈。初始非视觉反馈可以指示助理xbot的收听模式的启动。作为示例而非限制,当用户说唤醒词(例如,“嘿助理(hey assistant)”)时,配套应用可以首先发出唤醒声音(例如,“砰”声)。在唤醒声音之后,配套应用然后可以在其收听时连续播放收听声音(例如,循环音频信号,诸如安静的敲击或具有快速频率和降低强度的低音调)。这可以让用户知道助理系统140正在收听用户的进一步话语。然后,用户可以在该收听声音上说出其请求。当用户停止说话时,配套应用可以播放确认声音(例如,另一“砰”)。同时,收听声音可能会逐渐消失或立即终止。在助理系统140收听时提供收听声音可能不同于其它常规助理,所述其它常规助理在收听时保持静默。
图5示出了用于主动收听的示例非视觉反馈。用户505可正使用两个客户端系统130:一个是用户正佩戴的智能眼镜130a(该智能眼镜可以对应于图1中的渲染设备137),另一个是其在桌子上的智能手机130b(该智能手机可以对应于图1中的配套设备138)。可以对智能眼镜130a和智能手机130b进行配对。用户505可以对其智能眼镜130a说话。用户505可以首先说“嘿助理……”510。助理系统140随后可以响应于该唤醒词而唤醒。此外,助理系统140可能需要在用户的智能手机130b上加载的助理配套应用来处理用户的进一步话语。因此,为了通知用户505助理系统140正在主动收听用户505和/或为了防止智能手机130b的操作系统抑制助理配套应用,助理配套应用可以提供连续音频反馈。作为示例而非限制,智能手机130b上的助理配套应用可以播放指示助理系统140的唤醒的唤醒声音(即,指示传声器打开的声音)和指示助理系统140主动收听的连续声音(即,指示传声器仍打开的连续声音)。由于智能眼镜130a与智能手机130b配对,因此智能眼镜还可以用作智能手机130b的耳机。因此,智能手机130b可以向智能眼镜130a发送音频文件515,该音频文件包括唤醒声音和连续声音。因此,用户505可以从其智能眼镜130a听到声音“砰……哒、哒、哒、哒、……”515a。用户505还可以说“我想知道我是否还能买到今晚比赛的门票”520。响应于该话语,助理配套应用可以向智能眼镜130a发送另一音频文件515,该音频文件515包括指示助理系统140主动收听的连续声音。因此,用户505可以从其智能眼镜130a听到声音“哒、哒、哒、哒、……”515b。然后,用户505可能停止说话,对此,助理系统140可以检测到静默525。相应地,智能手机130b可以向智能眼镜130a发送包括连续声音的另一音频文件515(因为助理系统140在响应静默525之前仍在主动收听),并且该连续声音可能正在逐渐消失。因此,用户可以从其智能眼镜130a听到声音“哒、哒、[逐渐消失]”515c。助理系统140还可以响应于用户505的话语520生成响应,并基于文本到语音(TTS)转换来转换该响应(即,TTS响应)。智能手机130b可以向智能眼镜130a发送包括TTS响应的另一音频文件515。因此,用户可以从其智能眼镜130a听到“我刚刚检查过。还有票可以购买”515d。在图5的示例中,如果没有TTS响应,则助理系统140可以指示智能手机130b播放确认/结束耳标(earcon),其指示助理系统140接收到输入并且传声器将被停用(即,传声器关闭)。因此,用户505可以从其智能眼镜130a听到声音“哒、哒、砰”,其中“砰”是确认/结束耳标。尽管该示例描述了在用户505与助理系统140之间的多轮交互期间发送多个单独的音频文件(例如,另一音频文件515),但是助理系统140可以替代地发送连续音频文件,该连续音频文件在用户输入之前、在用户输入期间以及在检测到静默之后持续直到传声器关闭。相应地,用户505可以在这一连续音频文件上讲话。
图6示出了用于主动收听的示例非视觉反馈和视觉反馈。用户605可正使用两个客户端系统130:一个是用户正佩戴的智能眼镜130a(该智能眼镜可以对应于图1中的渲染设备137),另一个是用户正握持的其智能手机130b(该智能手机可以对应于图1中的配套设备138)。可以对智能眼镜130a和智能手机130b进行配对。用户可以首先说出“嘿助理……”610。助理系统140随后可以响应于该唤醒词而唤醒。此外,助理系统140可能需要在其智能手机130b上加载的助理配套应用来处理用户的进一步话语。因此,为了通知用户605助理系统140正在主动收听用户605和/或为了防止智能手机130b的操作系统抑制助理配套应用,助理配套应用可以提供连续音频和视觉反馈。作为示例而非限制,智能手机130b上的助理配套应用可以播放指示助理系统140的唤醒的唤醒声音和指示助理系统140主动收听的连续声音。由于智能眼镜130a与智能手机130b配对,因此智能眼镜还可以用作智能手机130b的耳机。因此,智能手机130b可以向智能眼镜130a发送包括唤醒声音和连续声音的音频文件615。因此,用户605可以从其智能眼镜130a听到声音“砰……哒、哒、哒、哒、……”615a。除了连续音频反馈之外,助理配套应用还可以在智能手机130b的屏幕625上提供连续视觉反馈620(例如,视觉指示符)。用户605还可以说“那是谁?他看起来很眼熟”630。响应于该话语,助理配套应用可以向智能眼镜130a发送另一音频文件615,该另一音频文件包括指示助理系统140主动收听的连续声音。因此,用户605可以从其智能眼镜130a听到声音“哒、哒、哒、哒、……”615b。除了连续音频反馈之外,用户605还可以在其智能手机130b的屏幕625上看到连续视觉反馈620。然后,用户605可能停止说话,对此,助理系统140可以检测到静默635。相应地,智能手机130b可以向智能眼镜130a发送包括连续声音的另一音频文件615(因为助理系统140在响应静默635之前仍在主动收听),并且该连续声音可以正在逐渐消失。因此,用户可以从其智能眼镜130a听到声音“哒、哒、[逐渐消失]”615c。同时,用户智能手机130b的屏幕625上的连续视觉反馈620可以消失。助理系统140还可以响应于用户605的话语630生成响应,并基于文本到语音(TTS)转换来转换该响应(即,TTS响应)。智能手机130b可以向智能眼镜130a发送包括TTS响应的另一音频文件615。相应地,用户可以从其智能眼镜130a听到“那是卢卡。你在艾瑞卡的生日派对上见过他”615d。在图6的示例中,如果没有TTS响应,则助理系统140可以指示智能手机130b播放确认/结束耳标,其指示助理系统140接收到输入并且传声器将被停用。因此,用户605可以从其智能眼镜130a听到声音“哒、哒、砰”。
图7示出了用于具有增加的操作容量的主动收听的示例方法700。该方法可以开始于步骤710,其中助理系统140可以从第一客户端系统130接收第一用户输入,该第一用户输入包括与助理xbot相关联的唤醒词,其中第一客户端系统130包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表,其中配套设备与第一客户端系统130配对,其中当唤醒词被接收到时,配套设备处于锁定状态,其中助理xbot与在配套设备上执行的配套应用相关联,其中配套应用作为后台应用正在配套设备上执行,并且其中配套设备允许配套应用访问低于阈值容量的计算容量。尽管本公开描述了当配套设备被锁定时提供关于配套应用何时作为后台应用执行的连续非视觉反馈,但是本公开考虑了当配套应用和配套设备处于任何合适的状态(例如,当配套设备被解锁时配套应用正在前台运行,当配套设备被解锁时配套应用正在后台运行,以及当配套设备被锁定时配套应用正在后台运行)时提供连续非视觉反馈。在步骤720,助理系统140可以响应于第一用户输入经由第一客户端系统130在连续非视觉反馈之前提供初始非视觉反馈,其中该初始非视觉反馈指示助理xbot的收听模式的启动。在步骤730,助理系统140可以将助理xbot设置为收听模式,其中在助理xbot处于收听模式时,经由第一客户端系统130提供连续非视觉反馈,其中该连续非视觉反馈基于声音、振动或触觉中的一者或多者。在步骤740,在助理xbot处于收听模式时,助理系统140可以经由配套设备提供连续视觉反馈,其中该连续视觉反馈基于以下中的一者或多者:与助理xbot相关联的图标;收听模式的视觉指示;或光线。在步骤750,助理系统140可以响应于连续非视觉反馈,将配套应用作为前台应用来执行。这种从后台到前台的状态转换可以是特定于操作系统的,其中主动音频反馈不足以解除操作系统的抑制。此外,可以将视觉注意系统添加到连续非视觉反馈之上以引起状态转换。在主动音频反馈足以解除操作系统的抑制的操作系统中,助理系统140可以保持将配套应用作为后台应用来执行,这可以被认为是经由连续非视觉反馈与用户交互的更合适状态。在步骤760,助理系统140可以增加计算容量,允许配套应用访问大于阈值容量的计算容量。在步骤770,在助理xbot处于收听模式时,助理系统140可以从第一客户端系统130接收第二用户输入,该第二用户输入包括用户话语。在步骤780,助理系统140可以基于用户话语的完成来确定第二用户输入已结束。在步骤790,助理系统140可以将助理xbot设置为非活动模式,其中在助理xbot处于非活动模式时经由第一客户端系统130终止非视觉反馈。在适当的情况下,特定实施例可以重复图7的方法中的一个或多个步骤。尽管本公开描述和示出了图7的方法的特定步骤以特定顺序发生,但是本公开考虑了图7的方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于具有增加的操作容量的包括图7的方法的特定步骤的主动收听的示例方法,但是本公开考虑了用于具有增加的操作容量的包括任何合适步骤(其在适当的情况下可以包括图7的方法的所有步骤、一些步骤或不包括图7的方法的步骤)的主动收听的任何合适的方法。此外,尽管本公开描述和示出了执行图7的方法的特定步骤的特定部件、设备或系统,但是本公开考虑了执行图7的方法的任何合适步骤的任何合适部件、设备或系统的任何合适的组合。
隐私
在特定实施例中,计算系统的一个或多个对象(例如,内容或其它类型的对象)可以与一个或多个隐私设置相关联。该一个或多个对象可以被存储在任何合适的计算系统或应用上或者与任何合适的计算系统或应用相关联,该计算系统或应用例如是社交网络系统160、客户端系统130、助理系统140、第三方系统170、社交网络应用、助理应用、消息收发应用、照片共享应用或任何其它合适的计算系统或应用。尽管本文所论述的示例是在在线社交网络的情境下,但是这些隐私设置可以应用于任何其它合适的计算系统。可以以任何合适的方式(例如,与对象相关联地、在授权服务器上的索引中、以另一合适的方式、或它们的任何合适的组合)存储对象的隐私设置(或“访问设置”)。对象的隐私设置可以指定可以如何在在线社交网络内访问、存储或以其它方式使用(例如,查看、共享、修改、复制、执行、显示或识别)对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其它实体访问该对象时,该对象可以被描述为相对于该用户或该其它实体是“可见的”。作为示例而非限制,在线社交网络的用户可以指定用户简档页面的隐私设置,该隐私设置标识可以访问用户简档页面上的工作经验信息的一组用户,从而阻挡其它用户访问该信息。
在特定实施例中,对象的隐私设置可以指定以下用户或其它实体的“阻止列表”:这些用户或其它实体不应被允许访问与对象相关联的特定信息。在特定实施例中,该阻止列表可以包括第三方实体。阻止列表可以指定一个或多个用户或实体,对于这些用户或实体,对象是不可见的。作为示例而非限制,用户可以指定不可以访问与该用户相关联的相册的一组用户,从而阻挡这些用户访问该相册(同时也可能允许不在指定的该组用户内的特定用户访问该相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可指定:可以如何使用在线社交网络来访问该社交图谱元素、与该社交图谱元素相关联的信息、或与该社交图谱元素相关联的对象。作为示例而非限制,特定照片可以具有隐私设置,该隐私设置指定只有在该照片中标记的用户和在该照片中标记的用户的朋友可以访问该照片。在特定实施例中,隐私设置可以允许用户选择加入或选择退出由社交网络系统160或助理系统140存储/记录他们的内容、信息或动作,或者选择加入或选择退出与其它系统(例如,第三方系统170)共享他们的内容、信息或动作。尽管本公开描述了以特定的方式使用特定的隐私设置,但是本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,社交网络系统160可以(例如,在网页、模块、一个或多个对话框、或任何其它合适的界面内)向第一用户呈现“隐私向导(wizard)”,以帮助第一用户指定一个或多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于从第一用户接受指定对隐私设置的改变或确认的一个或多个输入的一个或多个输入字段或它们的任何合适的组合。在特定实施例中,社交网络系统160可以向第一用户提供“控制面板(dashboard)”功能,该功能可以向第一用户显示第一用户的当前隐私设置。可以在任何适当的时间(例如,在第一用户调用控制面板功能的输入之后、在特定事件或触发动作发生之后)向第一用户显示控制面板功能。控制面板功能可以允许第一用户以任何合适的方式(例如,将第一用户重定向到隐私向导)在任何时间修改第一用户的当前隐私设置中的一个或多个隐私设置。
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而非限制,可以针对以下用户指定访问或拒绝访问:特定用户(例如,只有我、我的室友、我的老板)、特定分离度内的用户(例如,朋友、朋友的朋友)、用户群组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无用户(“私人”)、第三方系统170的用户、特定应用(例如,第三方应用、外部网站)、其它合适的实体或其任何合适的组合。尽管本公开描述了允许访问或拒绝访问的特定粒度,但本公开考虑了允许访问或拒绝访问的任何合适的粒度。
在特定实施例中,一个或多个服务器162可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其它实体)的对存储在数据存储库164中的特定对象的请求,社交网络系统160可以向数据存储库164发送对该对象的请求。该请求可以识别与该请求相关联的用户,并且如果授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象,则该对象可以仅被发送给该用户(或该用户的客户端系统130)。如果请求用户未被授权访问对象,则授权服务器可以阻止从数据存储库164检索所请求的对象,或者可以阻止将所请求的对象发送给该用户。在搜索查询上下文中,只有当查询用户被授权访问对象时(例如,如果针对该对象的隐私设置允许该对象被显露给该查询用户、允许该对象被该查询用户发现或允许该对象以其它方式对该查询用户可见),该对象才可以作为搜索结果提供。在特定实施例中,对象可以表示通过用户的新闻推送对该用户可见的内容。作为示例而非限制,一个或多个对象可以对用户的“热门话题(Trending)”页面可见。在特定实施例中,对象可以对应于特定用户。该对象可以是与该特定用户相关联的内容,或者可以是该特定用户的账户、或者存储在社交网络系统160或其它计算系统上的信息。作为示例而非限制,第一用户可以通过在线社交网络的“你可能认识的人(People You May Know)”功能或者通过查看第一用户的朋友列表,来查看在线社交网络的一个或多个第二用户。作为示例而非限制,第一用户可以指定,其不希望在其新闻推送或朋友列表中看到与特定第二用户相关联的对象。如果针对该对象的隐私设置不允许该对象显露在用户面前、被用户发现或对用户可见,则可以从搜索结果排除该对象。尽管本公开描述了以特定方式实施隐私设置,但本公开考虑了以任何合适的方式实施隐私设置。
在特定实施例中,与用户相关联的同一类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可以具有不同类型的隐私设置。作为示例而非限制,第一用户可以指定第一用户的状态更新是公开的,但是第一用户所共享的任何图像仅对在线社交网络上的第一用户的朋友可见。作为另一示例而非限制,用户可以针对不同类型的实体(例如,个人用户、朋友的朋友、关注者、用户群组或企业实体)指定不同的隐私设置。作为另一示例而非限制,第一用户可指定可以查看由第一用户发布的视频的一组用户,同时防止这些视频对第一用户的雇主可见。在特定实施例中,可以针对不同的用户群组或用户人口结构提供不同的隐私设置。作为示例而非限制,第一用户可以指定,与第一用户就读于同一大学的其他用户可以查看第一用户的照片,但是作为第一用户的家庭成员的其他用户不可以查看这些同样的照片。
在特定实施例中,社交网络系统160可以针对特定对象类型的每个对象提供一个或多个默认隐私设置。对象的被设置为默认的隐私设置可以由与该对象相关联的用户改变。作为示例而非限制,由第一用户发布的所有图像可以具有仅对第一用户的朋友可见的默认隐私设置,并且对于特定图像,第一用户可以将该图像的隐私设置改变为对朋友和朋友的朋友可见。
在特定实施例中,隐私设置可以允许第一用户(例如通过选择退出、不选择加入)指定,社交网络系统160或助理系统140是否可以出于任何目的而接收、收集、记录或存储与该用户相关联的特定对象或信息。在特定实施例中,隐私设置可以允许第一用户指定,特定应用或过程是否可以访问、存储或使用与该用户相关联的特定对象或信息。隐私设置可以允许第一用户选择加入或选择退出使对象或信息由特定应用或过程访问、存储或使用。社交网络系统160或助理系统140可以访问这样的信息以向第一用户提供特定功能或服务,而社交网络系统160或助理系统140不具有出于任何其它目的而访问该信息的权限。在访问、存储或使用这样的对象或信息之前,社交网络系统160或助理系统140可以提示用户提供隐私设置,指定哪些应用或过程(如果存在)可以访问、存储或使用对象或信息,然后才允许任何此类动作。作为示例而非限制,第一用户可以经由与在线社交网络相关的应用(例如,消息收发应用)向第二用户发送消息,并且可以指定如下隐私设置:这些消息不应由社交网络系统160或助理系统140存储。
在特定实施例中,用户可以指定与第一用户相关联的特定类型的对象或信息是否可以由社交网络系统160或助理系统140访问、存储或使用。作为示例而非限制,第一用户可以指定由第一用户通过社交网络系统160或助理系统140发送的图像不能由社交网络系统160或助理系统140存储。作为另一示例而非限制,第一用户可以指定从第一用户发送到特定第二用户的消息不能由社交网络系统160或助理系统140存储。作为又一示例而非限制,第一用户可以指定经由特定应用发送的所有对象可由社交网络系统160或助理系统140保存。
在特定实施例中,隐私设置可以允许第一用户指定,是否可以从特定客户端系统130或第三方系统170访问与第一用户相关联的特定对象或信息。隐私设置可以允许第一用户选择加入或选择退出使得从特定设备(例如,用户的智能手机上的电话簿)、从特定应用(例如,消息收发应用)或从特定系统(例如,电子邮件服务器)访问对象或信息。社交网络系统160或助理系统140可以提供关于每个设备、系统或应用的默认隐私设置,和/或第一用户可以被提示以指定每个上下文的特定隐私设置。作为示例而非限制,第一用户可以利用社交网络系统160或助理系统140的定位服务特征来提供对用户附近的餐厅或其它地方的推荐。第一用户的默认隐私设置可以指定,社交网络系统160或助理系统140可以使用从第一用户的客户端系统130提供的位置信息来提供基于位置的服务,然而社交网络系统160或助理系统140可以不存储第一用户的位置信息或可以不将第一用户的位置信息提供给任何第三方系统170。第一用户可以随后更新隐私设置以允许位置信息被第三方图像共享应用使用,以便对照片进行地理标记。
在特定实施例中,隐私设置可以允许用户指定可以从其访问对象的一个或多个地理位置。对对象的访问或拒绝访问可以取决于试图访问对象的用户的地理位置。作为示例而非限制,用户可以共享对象并指定只有在同一城市中的用户可以访问或查看该对象。作为另一示例而非限制,第一用户可以共享对象并指定仅当第一用户在特定位置时该对象才对第二用户可见。如果第一用户离开该特定位置,则该对象可能不再对第二用户可见。作为另一示例而非限制,第一用户可指定对象仅对距第一用户阈值距离内的第二用户可见。如果第一用户随后改变位置,则具有对该对象的访问权限的原始第二用户可能会失去访问权,而新的一组第二用户可以在其来到第一用户的阈值距离内时获得访问权。
在特定实施例中,社交网络系统160或助理系统140可以具有这样的功能:这些功能可以使用用户的个人或生物特征信息作为输入以用于用户认证或体验个性化的目的。用户可以选择利用这些功能来增强他们在在线社交网络上的体验。作为示例而非限制,用户可以向社交网络系统160或助理系统140提供个人或生物特征信息。用户的隐私设置可以指定可以仅针对特定过程(例如认证)使用此类信息,并且还指定此类信息不可以与任何第三方系统170共享或不可以被用于与社交网络系统160或助理系统140相关联的其它过程或应用。作为另一示例而非限制,社交网络系统160可以为用户提供用于向在线社交网络提供声纹记录的功能。作为示例而非限制,如果用户希望利用在线社交网络的此功能,则用户可以提供他或她自己语音的语音记录,以提供在线社交网络上的状态更新。语音输入的记录可以与用户的声纹进行比较,以确定用户说出了什么词。用户的隐私设置可以指定此类语音记录可以仅被用于语音输入目的(例如,以认证用户、发送语音消息、改进语音识别,以便使用在线社交网络的声控功能),并且还可以指定此类语音记录不可以与任何第三方系统170共享或者不可以被与社交网络系统160相关联的其它过程或应用使用。
系统和方法
图8示出了示例计算机系统800。在特定实施例中,一个或多个计算机系统800执行本文中所描述或示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统800提供本文中所描述或示出的功能。在特定实施例中,在一个或多个计算机系统800上运行的软件执行本文中所描述或示出的一种或多种方法的一个或多个步骤,或提供本文中所描述或示出的功能。特定实施例包括一个或多个计算机系统800的一个或多个部分。本文中,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统800。本公开考虑了采用任何合适的物理形式的计算机系统800。作为示例而非限制,计算机系统800可以为嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如计算机模块(computer-on-module,COM)或系统模块(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务机、大型机、计算机系统组网、移动电话、个人数字助理(personal digital assistant,PDA)、服务器、平板计算机系统、或这些计算机系统中的两者或更多者的组合。在适当的情况下,计算机系统800可以包括一个或多个计算机系统800;计算机系统800可以是单一的或分布式的;跨多个位置的;跨多台机器的;跨多个数据中心的;或位于云端(该云端可以包括一个或多个网络中的一个或多个云端组件)中。在适当的情况下,一个或多个计算机系统800可以在没有大量的空间限制或时间限制的情况下,执行本文中所描述或示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统800可以实时地或以批处理模式执行本文中所描述或示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统800可以在不同的时间或在不同的位置执行本文中所描述或示出的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机系统800包括处理器802、存储器(memory)804、存储装置(storage)806、输入/输出(input/output,I/O)接口808、通信接口810和总线812。尽管本公开描述和示出了具有处于特定布置的特定数量的特定部件的特定计算机系统,但是本公开考虑了具有处于任何合适的布置的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器802包括用于执行指令的硬件,这些指令例如为,构成计算机程序的那些指令。作为示例而非限制,为了执行指令,处理器802可以从内部寄存器、内部高速缓冲存储器、存储器804或存储装置806检索(或读取)多个指令;解码并执行这些指令;并且随后将一个或多个结果写入到内部寄存器、内部高速缓冲存储器、存储器804或存储装置806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器802。作为示例而非限制,处理器802可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个转译后备缓冲器(translation lookaside buffer,TLB)。指令高速缓冲存储器中的指令可以是存储器804或存储装置806中的指令的副本,并且该指令高速缓冲存储器可以加速处理器802对这些指令的检索。数据高速缓冲存储器中的数据可以是存储器804或存储装置806中的数据的副本,以供在处理器802处执行的指令进行操作;可以是在处理器802处执行的先前指令的结果,以供在处理器802处执行的后续指令访问或用于写入存储器804或存储装置806;或可以是其它合适的数据。数据高速缓冲存储器可以加速处理器802的读操作或写操作。TLB可以加速处理器802的虚拟地址转译。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了处理器802包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器802可以包括一个或多个算术逻辑单元(arithmetic logic unit,ALU);可以是多核处理器;或者可以包括一个或多个处理器802。尽管本公开描述并示出了特定处理器,但是本公开考虑了任何合适的处理器。
在特定实施例中,存储器804包括主存储器,该主存储器用于存储供处理器802执行的指令或供处理器802操作的数据。作为示例而非限制,计算机系统800可以将指令从存储装置806或另一个源(例如,另一个计算机系统800)加载到存储器804。然后,处理器802可以将指令从存储器804加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器802可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对这些指令进行解码。在这些指令的执行期间或之后,处理器802可以将一个或多个结果(其可以是中间或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器802可以将这些结果中的一个或多个结果写入存储器804。在特定实施例中,处理器802仅执行一个或多个内部寄存器中或内部高速缓冲存储器中或存储器804(而不是存储装置806或其它地方)中的指令,并且仅对一个或多个内部寄存器或内部高速缓冲存储器中的、或存储器804(与存储装置806不同或其它位置)中的数据进行操作。一个或多个存储器总线(每个存储器总线可以包括地址总线和数据总线)可以将处理器802耦接到存储器804。如下所述,总线812可以包括一个或多个存储器总线。在特定实施例中,一个或多个存储器管理单元(memory management unit,MMU)位于处理器802与存储器804之间,并且促进处理器802所请求的对存储器804的访问。在特定实施例中,存储器804包括随机存取存储器(random access memory,RAM)。在适当的情况下,该RAM是易失性存储器。在适当的情况下,该RAM可以为动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以为单端口或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,存储器804包括一个或多个存储器804。尽管本公开描述和示出了特定的内存,但本公开考虑了任何合适的内存。
在特定实施例中,存储装置806包括用于数据或指令的大容量存储器。作为示例而非限制,存储装置806可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些中的两者或更多者的组合。在适当的情况下,存储装置806可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置806可以位于计算机系统800的内部或外部。在特定实施例中,存储器1606是非易失性固态存储器。在特定实施例中,存储装置806包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩膜编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、电可改写ROM(electrically alterable ROM,EAROM)或闪存、或这些ROM中的两者或更多者的组合。本公开考虑了采用任何合适的物理形式的大容量的存储装置806。在适当的情况下,存储装置806可以包括促进处理器802和存储装置806之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置806可以包括一个或多个存储装置806。尽管本公开描述并示出了特定存储装置,但本公开考虑了任何合适的存储装置。
在特定实施例中,I/O接口808包括硬件、软件或两者,其提供用于计算机系统800与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统800可以包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可能够实现个人与计算机系统800之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静止摄像头、手写笔、平板电脑、触摸屏、轨迹球、摄像机、另一合适的I/O设备或这些的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于这些I/O设备的任何合适的I/O接口808。在适当的情况下,I/O接口808可以包括这样的一个或多个设备或软件驱动器:所述一个或多个设备或软件驱动器使处理器802能够驱动这些I/O设备中的一个或多个I/O设备。在适当的情况下,I/O接口808可以包括一个或多个I/O接口808。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口810包括这样的硬件、软件或这两者:该硬件、软件或这两者为计算机系统800与一个或多个其它计算机系统800或与一个或多个网络之间的通信(例如,基于包(packet-based)的通信)提供一个或多个接口。作为示例而非限制,通信接口810可以包括用于与以太网或其它基于有线的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器,或者可以包括用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口810。作为示例而非限制,计算机系统800可以与如下的网络进行通信:自组网、个域网(personal area network,PAN)、局域网(local areanetwork,LAN)、广域网(wide area network,WAN)、城域网(metropolitan area network,MAN)、或互联网的一个或多个部分、或这些中的两者或更多者的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线或无线的。作为示例,计算机系统800可以与无线PAN(wireless PAN,WPAN)(例如,蓝牙(BLUETOOTH)WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for Mobile Communications,GSM)网络)、或其它合适的无线网络、或这些网络中的两者或更多者的组合进行通信。在适当的情况下,计算机系统800可以包括用于这些网络中的任一者的任何合适的通信接口810。在适当情况下,通信接口810可以包括一个或多个通信接口810。尽管本公开描述和示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在特定实施例中,总线812包括如下的硬件、软件或这两者:所述硬件、软件或这两者将计算机系统800的多个部件彼此耦接。作为示例而非限制,总线812可以包括:加速图形端口(Accelerated Graphics Port,AGP)或其它图形总线、扩展工业标准结构(EnhancedIndustry Standard Architecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚计数(low-pin-count,LPC)总线、存储器总线、微通道结构(Micro Channel Architecture,MCA)总线、外围组件互连(Peripheral ComponentInterconnect,PCI)总线、高速外围组件互连(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、视频电子标准协会局域(VideoElectronics Standards Association local,VLB)总线、或另一合适的总线、或这些总线中的两者或更多者的组合。在适当的情况下,总线812可以包括一个或多个总线812。尽管本公开描述并示出了特定的总线,但是本公开考虑了任何合适的总线或互连。
在本文中,在适当的情况下,一个或多个计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其它集成电路(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specificIC,ASIC))、硬盘驱动器(hard disk drive,HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(floppy disk drive,FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡或驱动器、任何其它合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或者易失性和非易失性的组合。
其它
在本文中,除非另有明确说明或上下文另有说明,否则“或”是包含而非排它性的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A或B”意指“A、B、或这两者”。此外,除非另有明确说明或上下文另有说明,否则“和”既是共同的也是各自的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A和B”意指“A和B,共同地或各自地”。
本公开的范围包括对本文中所描述或所示出的示例实施例的所有改变、替代、变化、变换和修改,本领域普通技术人员将理解这些改变、替代、变化、变换和修改。本公开的范围不限于本文中所描述或所示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述并示出为包括特定的部件、元素、特征、功能、操作、或步骤,但是这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元素、特征、功能、操作、或步骤中的任何的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能够操作为、或可操作为执行特定功能的装置或系统、或装置或系统中的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件被如此适用于、被布置为、能够、被配置为、使能够、能够操作或可操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或可以提供这些优点中的一些或全部。

Claims (15)

1.一种方法,所述方法包括:由一个或多个计算系统:
从第一客户端系统接收第一用户输入,所述第一用户输入包括与助理xbot相关联的唤醒词;
将所述助理xbot设置为收听模式,其中,在所述助理xbot处于所述收听模式时,经由所述第一客户端系统提供连续非视觉反馈;
在所述助理xbot处于所述收听模式时,从所述第一客户端系统接收第二用户输入,所述第二用户输入包括用户话语;
基于所述用户话语的完成来确定所述第二用户输入已结束;以及
将所述助理xbot设置为非活动模式,其中,在所述助理xbot处于所述非活动模式时,经由所述第一客户端系统终止所述非视觉反馈。
2.根据前述权利要求中任一项所述的方法,其中,所述一个或多个计算系统包括所述第一客户端系统。
3.根据前述权利要求中任一项所述的方法,其中,所述一个或多个计算系统包括配套设备,所述配套设备与所述第一客户端系统配对。
4.根据权利要求3所述的方法,其中,所述配套设备在所述唤醒词被接收到时处于锁定状态。
5.根据权利要求3所述的方法,其中,所述助理xbot与在所述配套设备上执行的配套应用相关联。
6.根据权利要求5所述的方法,其中,所述配套应用正作为后台应用在所述配套设备上执行,并且其中,所述配套设备允许所述配套应用访问低于阈值容量的计算容量;和/或优选地,所述方法还包括:
响应于所述连续非视觉反馈,将所述配套应用作为前台应用来执行;以及
增加所述计算容量,所述配套应用被允许访问大于阈值容量的计算容量。
7.根据前述权利要求中任一项所述的方法,其中,所述第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表。
8.根据前述权利要求中任一项所述的方法,还包括:
响应于所述第一用户输入,经由所述第一客户端系统在所述连续非视觉反馈之前提供初始非视觉反馈,其中,所述初始非视觉反馈指示所述助理xbot的所述收听模式的启动;和/或优选地,其中,所述连续非视觉反馈基于声音、振动或触觉中的一者或多者。
9.根据前述权利要求中任一项所述的方法,还包括:
在所述助理xbot处于所述收听模式时,经由所述第一客户端系统提供连续视觉反馈;和/或优选地,其中,所述连续视觉反馈基于以下中的一者或多者:与所述助理xbot相关联的图标;所述收听模式的视觉指示;或光线。
10.根据前述权利要求中任一项所述的方法,其中,所述一个或多个计算系统包括配套设备,所述配套设备与所述第一客户端系统配对,其中,所述方法还包括:
在所述助理xbot处于所述收听模式时,经由所述配套设备提供连续视觉反馈。
11.根据权利要求10所述的方法,其中,所述连续视觉反馈基于以下中的一者或多者:与所述助理xbot相关联的图标;所述收听模式的视觉指示;或光线。
12.一种或多种计算机可读非暂态存储介质,所述一种或多种计算机可读非暂态存储介质包含软件,所述软件在被执行时能够操作以:
从第一客户端系统接收第一用户输入,所述第一用户输入包括与助理xbot相关联的唤醒词;
将所述助理xbot设置为收听模式,其中,在所述助理xbot处于所述收听模式时,经由所述第一客户端系统提供连续非视觉反馈;
在所述助理xbot处于所述收听模式时,从所述第一客户端系统接收第二用户输入,所述第二用户输入包括用户话语;
基于所述用户话语的完成来确定所述第二用户输入已结束;以及
将所述助理xbot设置为非活动模式,其中,在所述助理xbot处于所述非活动模式时,经由所述第一客户端系统终止所述非视觉反馈。
13.根据权利要求12所述的介质,其中,所述第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表;和/或优选地,其中,所述软件在被执行时还能够操作以:
响应于所述第一用户输入,经由所述第一客户端系统在所述连续非视觉反馈之前提供初始非视觉反馈,其中,所述初始非视觉反馈指示所述助理xbot的所述收听模式的启动。
14.一种系统,所述系统包括:一个或多个处理器;以及非暂态存储器,所述非暂态存储器耦接到所述处理器并且包括能够由所述处理器执行的指令,所述处理器在执行所述指令时能够操作以:
从第一客户端系统接收第一用户输入,所述第一用户输入包括与助理xbot相关联的唤醒词;
将所述助理xbot设置为收听模式,其中,在所述助理xbot处于所述收听模式时,经由所述第一客户端系统提供连续非视觉反馈;
在所述助理xbot处于所述收听模式时,从所述第一客户端系统接收第二用户输入,所述第二用户输入包括用户话语;
基于所述用户话语的完成来确定所述第二用户输入已结束;以及
将所述助理xbot设置为非活动模式,其中,在所述助理xbot处于所述非活动模式时,经由所述第一客户端系统终止所述非视觉反馈。
15.根据权利要求14所述的系统,其中,所述第一客户端系统包括以下中的一者或多者:智能手机、智能眼镜、增强现实(AR)眼镜、虚拟现实(VR)头戴式视图器或智能手表;和/或优选地,其中,所述处理器在执行所述指令时还能够操作以:
响应于所述第一用户输入,经由所述第一客户端系统在所述连续非视觉反馈之前提供初始非视觉反馈,其中,所述初始非视觉反馈指示所述助理xbot的所述收听模式的启动。
CN202280030440.4A 2021-04-21 2022-04-20 助理系统的主动收听 Pending CN117377942A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/177,812 2021-04-21
US17/521,623 2021-11-08
US17/521,623 US20220366904A1 (en) 2021-04-21 2021-11-08 Active Listening for Assistant Systems
PCT/US2022/025653 WO2022226131A1 (en) 2021-04-21 2022-04-20 Active listening for assistant systems

Publications (1)

Publication Number Publication Date
CN117377942A true CN117377942A (zh) 2024-01-09

Family

ID=89406350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280030440.4A Pending CN117377942A (zh) 2021-04-21 2022-04-20 助理系统的主动收听

Country Status (1)

Country Link
CN (1) CN117377942A (zh)

Similar Documents

Publication Publication Date Title
US20220327289A1 (en) Speech Recognition Accuracy with Natural-Language Understanding based Meta-Speech Systems for Assistant Systems
US20210400235A1 (en) Proactive In-Call Content Recommendations for Assistant Systems
US11861315B2 (en) Continuous learning for natural-language understanding models for assistant systems
US20220284904A1 (en) Text Editing Using Voice and Gesture Inputs for Assistant Systems
KR20230029582A (ko) 어시스턴트 시스템에서 다자간 통화를 위한 단일 요청의 사용
US20220366904A1 (en) Active Listening for Assistant Systems
WO2022225729A1 (en) Task execution based on real-world text detection for assistant systems
US20220358917A1 (en) Multi-device Mediation for Assistant Systems
US20240054156A1 (en) Personalized Labeling for User Memory Exploration for Assistant Systems
US20220366170A1 (en) Auto-Capture of Interesting Moments by Assistant Systems
CN116888661A (zh) 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出
US20230419952A1 (en) Data Synthesis for Domain Development of Natural Language Understanding for Assistant Systems
US20230353652A1 (en) Presenting Personalized Content during Idle Time for Assistant Systems
US20230236555A1 (en) Event-Based Reasoning for Assistant Systems
CN117377942A (zh) 助理系统的主动收听
EP4343493A1 (en) Presenting attention states associated with voice commands for assistant systems
US20240119932A1 (en) Systems and Methods for Implementing Smart Assistant Systems
CN117396837A (zh) 助理系统的多设备调解
CN117396838A (zh) 助理系统的基于真实世界文本检测的任务执行
CN116897353A (zh) 用于辅助系统的使用语音和手势输入的文本编辑
WO2022178066A1 (en) Readout of communication content comprising non-latin or non-parsable content items for assistant systems
TW202240461A (zh) 使用輔助系統的語音和手勢輸入之文字編輯
CN117396836A (zh) 由助理系统自动采集有趣时刻

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination