CN118154114A - 使用惯性测量单元信号检测头部姿势 - Google Patents

使用惯性测量单元信号检测头部姿势 Download PDF

Info

Publication number
CN118154114A
CN118154114A CN202311652535.2A CN202311652535A CN118154114A CN 118154114 A CN118154114 A CN 118154114A CN 202311652535 A CN202311652535 A CN 202311652535A CN 118154114 A CN118154114 A CN 118154114A
Authority
CN
China
Prior art keywords
user
head
particular embodiments
assistant
assistant system
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
CN202311652535.2A
Other languages
English (en)
Inventor
德瓦什·普拉萨德·乔希
谢尔文·加塞姆卢
沈荣州
里扎·卡泽米
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
Application filed by Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN118154114A publication Critical patent/CN118154114A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了使用惯性测量单元信号检测头部姿势。在一个实施例中,一种方法包括:在头戴式设备的用户与助理xbot之间的对话会话期间,通过头戴式设备经由助理xbot向该用户呈现建议,其中,该建议与待由助理系统执行的多个动作相关联,该助理系统与助理xbot相关联;在对话会话期间,通过头戴式设备访问来自该头戴式设备的惯性测量单元(IMU)传感器的信号;通过设备上头部姿势检测模型并且仅基于来自这些IMU传感器的信号,来确定用户在对话会话期间做出的头部姿势;以及通过助理系统在头戴式设备上执行,来执行该多个动作中的第一动作,其中,该第一动作是在对话会话期间基于确定的头部姿势来选择的。

Description

使用惯性测量单元信号检测头部姿势
相关申请的交叉引用
本申请要求于2022年12月5日提交的、申请号为18/061,838的美国非临时专利申请的优先权和权益,其全部内容通过引用结合在本申请中。
技术领域
本公开总体上涉及网络环境内的数据库和文件管理,并且尤其涉及用于智能助理系统的硬件和软件。
背景技术
助理系统可以基于以下各项的组合来代表用户提供信息或服务:用户输入、位置感知、以及从各种在线源中访问信息(例如,天气状况、交通拥堵、新闻、股票价格、用户日程、零售价格等)的能力。用户输入可以包括文本(例如,在线聊天)(尤其是在即时消息收发应用或其它应用中)、语音、图像、动作或它们的组合。助理系统可以基于用户输入来执行礼宾型(concierge-type)服务(例如,预订晚餐、购买活动门票、做出旅行安排)或提供信息。助理系统还可以在无需用户发起或交互的情况下,基于在线信息和活动来执行管理或数据处理任务。可由助理系统执行的那些任务的示例可以包括日程管理(例如,发送用户由于交通状况而推迟晚餐日期的提示、更新双方的日程、以及改变餐厅预订时间)。助理系统可以通过以下项的组合来实现:计算设备、应用编程接口(application programminginterface,API)、以及用户设备上的大量应用。
可包括社交网络网站的社交网络系统可以使其用户(例如,个人或组织)能够与该社交网络系统交互、以及通过该社交网络系统彼此交互。社交网络系统可以利用来自用户的输入来创建与该用户相关联的用户资料并将其存储在社交网络系统中。用户资料可以包括人口统计信息、通信信道信息、和关于用户的个人兴趣的信息。社交网络系统还可以利用来自用户的输入,来创建并存储该用户与社交网络系统的其他用户的关系的记录,以及提供用于促进各用户之间或各用户之中的社交互动的服务(例如,资料/新闻馈送帖子、照片共享、活动组织、消息收发、游戏、或广告)。
社交网络系统可以通过一个或多个网络向用户的移动计算设备或其它计算设备发送与该社交网络系统的服务相关的内容或消息。用户还可以在该用户的移动计算设备或其它计算设备上安装软件应用,以用于访问社交网络系统内的用户的用户资料和其它数据。社交网络系统可以生成一组个性化的内容对象(例如,与用户有联系的其他用户的综合报道的新闻馈送)以显示给该用户。
发明内容
在特定实施例中,助理系统可以帮助用户获得信息或服务。助理系统可以使用户能够在有状态和多轮对话(stateful and multi-turn conversations)中通过各种模态(例如,音频、语音、文本、图像、视频、姿势、运动、位置、取向)的用户输入与该助理系统交互,以接收来自该助理系统的帮助。作为示例而非限制,助理系统可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模态输入、或它们的任意组合。由用户提供的用户输入可以与特定的助理相关任务相关联,并且可以包括例如用户请求(例如,对信息或执行动作的口头请求)、与同助理系统相关联的助理应用的用户交互(例如,通过触摸或姿势对用户界面(UI)元素进行选择)、或者可以由助理系统检测和理解的任何其它类型的合适的用户输入(例如,由用户的客户端设备检测到的用户移动)。助理系统可以创建并存储这样的用户资料:所述用户资料包括与用户相关联的个人信息和上下文信息。在特定实施例中,助理系统可以使用自然语言理解(natural-languageunderstanding,NLU)来分析用户输入。该分析可以基于用户的用户资料以进行更个性化的和上下文感知的理解。助理系统可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,助理系统可以与不同的代理交互,以获取与所解析的实体相关联的信息或服务。助理系统可以通过使用自然语言生成(natural-language generation,NLG)为用户生成关于这些信息或服务的响应。通过与用户的交互,助理系统可以使用对话管理技术来管理和推进与用户的对话流。在特定实施例中,助理系统还可以通过概括信息来帮助用户有效和高效地理解所获取的信息。助理系统还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具,来帮助用户更好地参与在线社交网络。附加地,助理系统可以帮助用户管理不同的任务,例如保持对事件的追踪。在特定实施例中,助理系统可以在没有用户输入的情况下,基于用户资料,在与用户相关的时间主动执行与用户兴趣和偏好相关的任务。在特定实施例中,助理系统可以检查隐私设置,以确保根据用户的隐私设置而允许访问用户资料或其他用户信息以及执行不同任务。
在特定实施例中,助理系统可以通过构建在客户端过程和服务器端过程上的混合架构来帮助用户。客户端过程和服务器端过程可以是用于处理用户输入和向用户提供帮助的两个并行工作流。在特定实施例中,客户端过程可以在与用户相关联的客户端系统上本地执行。相比之下,服务器端过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统上的仲裁器可以协调接收用户输入(例如,音频信号),确定是使用客户端过程、服务器端过程还是这两者来响应该用户输入,并分析来自每个过程的处理结果。该仲裁器可以基于前述分析指示客户端的代理或服务器端的代理执行与该用户输入相关联的任务。执行结果可以进一步被渲染以作为到客户端系统的输出。通过利用客户端过程和服务器端过程这两者,助理系统可以有效地帮助用户优化使用计算资源,同时保护用户隐私并增强安全性。
在特定实施例中,助理系统可以使穿戴着头戴式设备(例如,智能眼镜)的用户能够使用头部姿势来提供响应。助理系统可以通过使用客户端头部姿势检测模型检测头部姿势、并将检测到的头部姿势与这些头部姿势的预定义指示相关联,来理解这种响应。头部姿势检测模型可以仅使用来自头戴式设备的惯性测量单元(inertial measurement unit,IMU)传感器的输入来检测头部姿势。客户端头部姿势检测模型可能能够以低时延和低功耗来推断用户的头部姿势(例如,点头、左右摇动等)。在特定实施例中,可以由其它系统而不是助理系统来执行头部姿势检测。作为示例而非限制,客户端系统(例如,头戴式设备)可以单独检测头部姿势并将检测到的头部姿势提供给助理系统或正在该客户端系统上执行的另一应用。作为另一示例而非限制,虚拟现实(virtual-reality,VR)系统可以在用户穿戴着VR头戴式视图器(headset)时检测头部姿势,并将检测到的头部姿势提供给助理系统或正在VR头戴式视图器上执行的另一应用。作为又一示例而非限制,增强现实(augmented-reality,AR)系统可以在用户穿戴着AR设备时检测头部姿势,并将检测到的头部姿势提供给助理系统或正在该AR设备上执行的另一应用。尽管本公开描述了由特定系统以特定的方式检测特定姿势,但是本公开考虑了由任何合适的系统以任何合适的方式检测任何合适的姿势。
在特定实施例中,在头戴式设备的用户与助理xbot之间的对话会话期间,助理系统可以通过头戴式设备经由助理xbot向该用户呈现建议。该建议可以与待由该助理系统执行的多个动作相关联,该助理系统与助理xbot相关联。在特定实施例中,助理系统可以在对话会话期间,通过头戴式设备访问来自头戴式设备的一个或多个惯性测量单元(IMU)传感器的一个或多个信号。然后,助理系统可以通过设备上头部姿势检测模型并且仅基于来自该一个或多个IMU传感器的一个或多个信号来确定用户在对话会话期间做出的头部姿势。在特定实施例中,助理系统还可以通过助理系统在头戴式设备上执行,来执行该多个动作中的第一动作。该第一动作可以是在对话会话期间基于确定的头部姿势来选择的。
本文所公开的某些实施例提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,该软件在被执行时能够操作以:在头戴式设备的用户与助理xbot之间的对话会话期间,通过头戴式设备经由助理xbot向用户呈现建议,其中,该建议与待由助理系统执行的多个动作相关联,该助理系统与该助理xbot相关联;在该对话会话期间,通过头戴式设备访问来自头戴式设备的一个或多个惯性测量单元IMU传感器的一个或多个信号;通过设备上头部姿势检测模型并且仅基于来自一个或多个IMU传感器的一个或多个信号,来确定该用户在对话会话期间做出的头部姿势;以及通过助理系统在头戴式设备上执行,来执行多个动作中的第一动作,其中,该第一动作是在对话会话期间基于确定的头部姿势来选择的。
本文所公开的某些实施例提供了一种系统,该系统包括一个或多个处理器以及非暂态存储器。该非暂态存储器耦接到一个或多个处理器,该非暂态存储器包括能够由一个或多个处理器执行的指令,该一个或多个处理器在执行指令时能够操作以:在头戴式设备的用户与助理xbot之间的对话会话期间,通过头戴式设备经由助理xbot向用户呈现建议,其中,该建议与待由助理系统执行的多个动作相关联,助理系统与助理xbot相关联;在对话会话期间,通过头戴式设备访问来自头戴式设备的一个或多个惯性测量单元IMU传感器的一个或多个信号;通过设备上头部姿势检测模型并且仅基于来自一个或多个IMU传感器的一个或多个信号,来确定用户在对话会话期间做出的头部姿势;以及通过助理系统在头戴式设备上执行,来执行多个动作中的第一动作,其中,该第一动作是在对话会话期间基于确定的头部姿势来选择的。
设备上头部姿势检测存在某些技术挑战。一个技术挑战可以包括仅使用来自IMU传感器的信号来有效地检测头部姿势。本文公开的实施例提出的用于解决这一挑战的解决方案可以是,基于神经网络(所述神经网络能够操作以对与来自IMU传感器的信号相关联的顺序数据中的上下文和追踪关系进行学习)来训练头部姿势检测模型,这是因为该模型可以分析已知头部姿势的模式,并且如果检测到这种模式,则该模型可以利用对相应头部姿势的检测来进行响应。
本文所公开的某些实施例可以提供一个或多个技术优势。各实施例的技术优势可以包括特别适合于在具有有限功率和计算资源的可穿戴设备(例如,智能眼镜)上检测头部姿势,因为IMU传感器可能需要非常低的功率,并且相应的头部姿势检测模型可能需要非常低的存储空间。本文所公开的某些实施例可以不提供上述技术优势、提供上述技术优势中的一些或全部技术优势。对于本领域技术人员来说,考虑到本公开的附图、说明书和权利要求书,一个或多个其它技术优势可以是显而易见的。
本文所公开的实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文所公开的实施例中的各部件、各元素、各特征、各功能、各操作或各步骤中的全部、一些,或者可以不包括本文中所公开的实施例的各部件、各元素、各特征、各功能、各操作或各步骤。涉及方法、存储介质、系统和计算机程序产品的所附权利要求尤其公开了根据本发明的实施例,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,系统)中得到保护。所附权利要求书中的从属关系或回引是仅出于形式原因而选择的。然而,也可以对从对任何先前的权利要求(特别是多个从属权利要求)的有意引用中产生的任何主题要求保护,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被要求保护。可以要求保护的主题不仅包括所附权利要求书中所陈述的特征的组合,还包括权利要求书中的特征的任何其它组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其它特征或其它特征的组合进行组合。此外,本文所描述或所描绘的实施例和特征中的任何可以在单独的权利要求中要求保护,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中要求保护。
附图说明
图1示出了与助理系统相关联的示例网络环境。
图2示出了助理系统的示例架构。
图3示出了助理系统的示例流程图。
图4示出了处理用户输入的、以任务为中心的示例流程图。
图5示出了具有矢状面、额状面和横断面的示例人体头部。
图6示出了人体头部的示例动作。
图7示出了基于头部姿势检测的用户辅助的示例序列图。
图8A至图8E示出了响应于上下矢状点头而执行动作的示例场景。
图9A至图9E示出了响应于左右横向摇头而执行动作的示例场景。
图10A至图10D示出了响应于左右横向摇头而执行动作的另一示例场景。
图11示出了用于头部姿势检测的示例方法。
图12示出了示例人工神经网络。
图13示出了示例计算机系统。
具体实施方式
系统概述
图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的一个或多个部分可以包括自组网(ad hoc network)、内联网、外联网、虚拟专用网络(virtual privatenetwork,VPN)、局域网(local area network,LAN)、无线LAN(wireless LAN,WLAN)、广域网(wide area network,WAN)、无线WAN(wireless WAN,WWAN)、城域网(metropolitan areanetwork,MAN)、互联网的一部分、公共交换电话网络(Public Switched TelephoneNetwork,PSTN)的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一网络110、或两个或更多个这种网络110的组合。
多个链路150可以将客户端系统130、助理系统140、社交网络系统160和第三方系统170连接到通信网络110,或使客户端系统130、助理系统140、社交网络系统160和第三方系统170彼此连接。本公开考虑了任何合适的链路150。在特定实施例中,一个或多个链路150包括一个或多个有线(例如,数字用户线路(Digital Subscriber Line,DSL)或电缆数据服务接口规范(Data Over Cable Service Interface Specification,DOCSIS))链路、一个或多个无线(例如,Wi-Fi或全球微波接入互操作性(Worldwide Interoperabilityfor 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)文件、或可扩展标记语言(Extensible Markup Language,XML)文件而渲染的。这种界面还可以执行脚本、执行标记语言和脚本的组合等。在本文中,在适当的情况下,对网络界面的引用包含一个或多个对应的源文件(浏览器可以使用该源文件来渲染网络界面),反之亦然。
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用134。客户端系统130处的用户可以使用社交网络应用134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用134来与用户的社交关系(例如,朋友、关注者、关注的账户、联系人等)通信。客户端系统130处的用户还可以使用社交网络应用134来在在线社交网络上与多个内容对象(例如,帖子、新闻文章、短暂内容等)交互。作为示例而非限制,用户可以使用社交网络应用134浏览热门话题和突发新闻。
在特定实施例中,客户端系统130可以包括助理应用136。客户端系统130处的用户可以使用助理应用136来与助理系统140交互。在特定实施例中,助理应用136可以包括助理xbot功能,作为用于与客户端系统130的用户交互(其包括接收用户输入并呈现输出)的前端接口。在特定实施例中,助理应用136可以包括独立应用。在特定实施例中,助理应用136可以被集成到社交网络应用134或另一合适的应用(例如,消息收发应用)中。在特定实施例中,助理应用136也可以被集成到客户端系统130、助理硬件设备或任何其它合适的硬件设备中。在特定实施例中,助理应用136也可以是助理系统140的一部分。在特定实施例中,可以通过网络浏览器132访问助理应用136。在特定实施例中,用户可以通过以下方式来与助理系统140交互:通过各种模态(例如,音频、语音、文本、视觉、图像、视频、姿势、运动、活动、位置、取向)向助理应用136提供用户输入。助理应用136可以(例如,通过助理xbot)向助理系统140传送用户输入。助理系统140可以基于该用户输入生成响应。助理系统140可以向助理应用136发送所生成的响应。然后,助理应用136可以通过各种模态(例如,音频、文本、图像和视频)向客户端系统130处的用户呈现该响应。作为示例而非限制,用户可以通过以下方式来与助理系统140交互:通过客户端系统130的传声器向助理xbot提供用户输入(例如,对关于附近车辆交通的当前状态的信息的口头请求)。然后,助理应用136可以通过网络110向助理系统140传送用户输入。助理系统140可以相应地分析用户输入,基于对用户输入的分析来生成响应(例如,从第三方源获取到的车辆交通信息),并将所生成的响应传送回助理应用136。然后,助理应用136可以以任何合适的方式向用户呈现所生成的响应(例如,在客户端系统130的显示器上显示:基于文本的推送通知和/或示出了附近车辆交通的本地地图的一幅或多幅图像)。
在特定实施例中,客户端系统130可以实现唤醒词检测技术,以允许用户使用与助理系统140相关联的一个或多个唤醒词来方便地激活助理系统140。作为示例而非限制,客户端系统130上的系统音频API可以连续地监测在客户端系统130处接收的包括音频数据(例如,语音数据帧)的用户输入。在该示例中,与助理系统140相关联的唤醒词可以是语音短语“嘿助理”。在该示例中,当客户端系统130上的系统音频API在监测到的音频数据中检测到语音短语“嘿助理”时,助理系统140可以被激活以用于与用户的后续交互。在替代实施例中,可以实现类似的检测技术以使用与助理系统140相关联的特定非音频用户输入来激活助理系统140。例如,非音频用户输入可以是由客户端系统130的低功率传感器(例如,摄像头)检测到的特定视觉信号。作为示例而非限制,视觉信号可以是静态图像(例如,条形码、快速响应(QR)码、通用产品代码(universal product code,UPC))、用户的位置(例如,用户对客户端系统130的注视)、用户动作(例如,用户指向一对象)或任何其它合适的视觉信号。
在特定实施例中,客户端系统130可以包括渲染设备137,以及可选地,配套设备138。渲染设备137可以被配置为向用户渲染由助理系统140生成的输出。配套设备138可以被配置为在特定情况下(例如当渲染设备137不能执行与特定任务(例如,与助理系统140的通信)相关联的计算时)在配套设备138上本地(即,在设备上)执行所述计算。在特定实施例中,客户端系统130、渲染设备137和/或配套设备138可以各自是合适的电子设备,该电子设备包括硬件、软件、或嵌入式逻辑部件或两个或更多个这种部件的组合,并且客户端系统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)状态)。如果渲染设备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可以提供平台或主干网(backbone),其它系统(例如,第三方系统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访问信息。动作记录器可以用于接收来自网络服务器的与用户登录或退出社交网络系统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通过在客户端系统130上本地执行客户端过程、结合在一个或多个远程服务器(例如,与助理系统140相关联的服务器)上执行服务器端过程,来处理用户输入并向用户提供帮助。例如,客户端系统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上运行的其它过程(例如,SMS消息收发应用)需要高CPU利用时),则在决策点(D0)205处,设备上协调器206可以选择第二运行模式(即,云模式)或第三运行模式(即,混合模式)。
在特定实施例中,如图2所示,如果设备上协调器206在决策点(D0)205处确定应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)来处理用户输入,则客户端过程可以继续。作为示例而非限制,如果用户输入包括语音数据,则可以在客户端系统130上的本地的自动语音识别(ASR)模块208a处接收语音数据。ASR模块208a可以允许用户口述,并将语音转录为书面文本,将文档合成为音频流,或发出据此被系统识别的命令。
在特定实施例中,可以将ASR模块208a的输出发送到本地的自然语言理解(NLU)模块210a。NLU模块210a可以执行命名实体解析(named entity resolution,NER),或者命名实体解析可以由实体解析模块212a执行,如下所述。在特定实施例中,意图、槽(slot)或域(domain)中的一者或多者可以是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可以替代地选择第一运行模式(即,设备上模式)。
在特定实施例中,如图2所示,如果设备上协调器206在决策点(D1)215处确定该处理应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)来继续,则客户端过程可以继续。作为示例而非限制,可以将来自实体解析模块212a的输出发送到设备上对话管理器216a。在特定实施例中,设备上对话管理器216a可以包括对话状态追踪器218a和动作选择器222a。设备上对话管理器216a可以具有复杂的对话逻辑和产品相关的业务逻辑,以管理用户与助理系统140之间的对话状态和对话流。设备上对话管理器216a可以包括用于端到端集成和多轮支持的全部功能(例如,确认、消歧)。设备上对话管理器216a在计算限制和资源(包括内存、计算(CPU)和二进制大小约束)方面也可以是轻量级的。设备上对话管理器216a也可以是可扩展的,以提高开发者体验。在特定实施例中,设备上对话管理器216a可以例如通过以下方式来使助理系统140受益:提供离线支持以减少网络连接问题(例如,不稳定或不可用的网络连接),使用客户端过程来防止隐私敏感信息被传输出客户端系统130,以及在高时延敏感场景中提供稳定的用户体验。
在特定实施例中,设备上对话管理器216a还可以进行错误触发缓解。错误触发缓解的实现可以检测并防止来自用户输入的、也将会调用助理系统140的错误触发(例如,意外唤醒词),并且可以进一步防止助理系统140基于可能不准确和/或遵循隐私约束的错误触发来生成数据记录。作为示例而非限制,如果用户处于语音通话中,则用户在语音通话期间的对话可以被认为是私密的,并且错误触发缓解可以将对唤醒词的检测限制为由用户的客户端系统130本地接收的音频用户输入。在特定实施例中,设备上对话管理器216a可以基于废话检测器(nonsense detector)来实现错误触发缓解。如果废话检测器以高置信度确定在从用户接收到唤醒词的时间点、所接收到的该唤醒词在逻辑和/或上下文上是不合理的,则设备上对话管理器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可以使用任务规范将上游结果转换成候选任务,并用实体解析来解析实参(argument)。
在特定实施例中,在决策点(D2)225处,设备上协调器206可以确定是继续基于第一运行模式(即,设备上模式)来处理用户输入,还是针对第三运行模式(即,混合模式)将用户输入转发到服务器。该决策可以取决于例如客户端过程是否能够成功地解析任务和槽、是否存在具有特定特征支持的有效任务策略、和/或客户端过程与服务器端过程之间的上下文差异。在特定实施例中,在决策点(D2)225处做出的决策可以是针对多轮场景的。在特定实施例中,可能存在至少两种可能的场景。在第一场景中,助理系统140可能已经开始使用客户端对话状态以第一运行模式(即,设备上模式)处理用户输入。如果助理系统140在某一时刻决定切换到使远程服务器处理用户输入,则助理系统140可以创建具有当前任务状态的程序化/预定义任务,并将该程序化/预定义任务转发到远程服务器。对于后续轮次,助理系统140可以使用服务器端对话状态以第三运行模式(即,混合模式)继续处理。在另一场景中,助理系统140可能已经开始以第二运行模式(即,云模式)或第三运行模式(即,混合模式)处理用户输入,并且助理系统140对于所有后续轮次可能基本上依赖于服务器端对话状态。如果设备上协调器206确定继续基于第一运行模式(即,设备上模式)处理用户输入,则可以在动作选择器222a处接收来自对话状态追踪器218a的输出。
在特定实施例中,在决策点(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可以被配置为充当一个域的多个内容提供者之间的代理商(broker)。内容提供者可以是负责执行与意图相关联的动作或完成与该意图相关联的任务的实体。在特定实施例中,代理228a/228b可以为助理系统140提供若干功能,这些功能包括例如本地模板生成、特定于任务的业务逻辑和查询外部API。代理228a/228b在执行任务的动作时,可以使用来自对话状态追踪器218a/218b的上下文,并且还可以更新对话状态追踪器218a/218b。在特定实施例中,代理228a/228b还可以生成来自对话动作的部分有效负载。
在特定实施例中,本地的代理228a可以具有针对不同平台(例如,智能眼镜与VR头戴式视图器)而待编辑/待注册的不同实现。在特定实施例中,多个特定于设备的实现(例如,对客户端系统130或客户端系统130上的消息收发应用的实时调用)可以由单个代理228a进行内部处理。替代地,多个特定于设备的实现可以由与多个域相关联的多个代理228a来处理。作为示例而非限制,在智能眼镜上调用代理228a可以以与在智能手机上调用代理228a不同的方式来实现。不同的平台还可以使用不同数量的代理228a。代理228a也可以是跨平台的(即,客户端系统130上的不同操作系统)。此外,代理228a可以具有最小化的启动时间或二进制大小影响。本地的代理228a可以适用于特定用例。作为示例而非限制,一个用例可以是对客户端系统130的紧急调用。作为另一示例而非限制,另一用例可以是在没有网络连接的情况下对用户输入作出响应。作为另一示例而非限制,另一用例可以是:特定域/任务可能是隐私敏感的并且可以禁止将用户输入发送到远程服务器。
在特定实施例中,本地的动作选择器222a可以调用本地的传递系统230a来执行动作,而远程的动作选择器222b可以调用远程的传递系统230b来执行动作。传递系统230a/230b一经接收到来自对话状态追踪器218a/218b的触发信号,就可以通过执行对应动作来传递预定义事件。传递系统230a/230b可以确保通过实时连接将事件传递到主机。作为示例而非限制,传递系统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。然后,仲裁器226a可以在客户端结果与服务器端结果之间进行选择,以确定要呈现给用户的最终结果。在特定实施例中,在这些结果之间做出决定的逻辑可以取决于特定用例。
在特定实施例中,本地的仲裁器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的复杂姿势,处理来自以自我为中心的摄像头(egocentric camera)的(例如,具有运动、采集角度、分辨率的)图像/视频,实现与具有较低分辨率的图像有关的类似准确度和速度水平,对地点和对象进行一次性登记和识别,和/或在客户端系统130上执行视觉识别。
在特定实施例中,助理系统140可以利用计算机视觉技术来实现视觉认知。除了计算机视觉技术之外,助理系统140还可以探索可补充这些技术以扩展对对象的识别的选项。在特定实施例中,助理系统140可以使用补充信号,例如对象标签的光学字符识别(opticalcharacter recognition,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中,该数据存储库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模块210可以将用户输入分类为预定义分类中的成员。例如,用户输入可以是“播放贝多芬的第五曲”,并且NLU模块210可以将该输入分类为具有意图[意图:播放_音乐]([IN:play_music])。在特定实施例中,多个域共同的意图可以由元意图分类器336a处理。作为示例而非限制,元意图分类器336a可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定预定义元意图相关联的概率。然后,NLU模块210可以使用元槽标注器338a来为来自元意图分类器336a的分类结果标注一个或多个元槽。槽可以是与用户输入内的表示基本语义实体的字符串相对应的命名子串。例如,“披萨(pizza)”的槽可以是[槽:食物]([SL:dish])。在特定实施例中,一组有效或预期的命名槽可以以分类意图为条件。作为示例而非限制,对于意图[IN:play_music],有效的槽可以是[槽:歌曲_名称]([SL:song_name])。在特定实施例中,元槽标注器338a可以标记通用槽(例如对项目(例如,第一个)的引用)、槽的类型、槽的值等。在特定实施例中,NLU模块210可以使用意图分类器336b来处理域分类/选择结果。意图分类器336b可以确定与用户输入相关联的用户意图。在特定实施例中,对于每个域,可以存在一个意图分类器336b来确定给定域中最可能的意图。作为示例而非限制,意图分类器336b可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定的预定义意图相关联的概率。然后,NLU模块210可以使用槽标注器338b来标注与用户输入相关联的一个或多个槽。在特定实施例中,槽标注器338b可以为用户输入的n元语法(n-gram)标注一个或多个槽。作为示例而非限制,用户输入可以包括“将我的账户中的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)以在AUM 354中存储条目对象,其中条目可以是某条关于用户的信息(例如,照片、提醒等)。作为示例而非限制,记忆节点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的信息来执行共指(coreference),以解析上下文中对实体的引用,例如“他”、“她”、“第一个”或“最后一个”。在特定实施例中,对于共指,实体解析模块212可以为由NLU模块210确定的实体创建指代。然后,实体解析模块212可以准确地解析这些指代。作为示例而非限制,用户输入可以包括“为我找到最近的杂货店并指引我去那里”。基于共指,实体解析模块212可以将“那里”解释为“最近的杂货店”。在特定实施例中,共指可以取决于来自上下文引擎220和对话管理器216的信息,以便以提高的准确性解释指代。在特定实施例中,实体解析模块212还可以解析依据上下文(设备上下文或对话上下文)的实体,例如屏幕上所示的实体或来自上一次对话历史的实体。对于值解析,实体解析模块212可以将所提及的值解析为标准形式的精确值,例如数值、日期时间、地址等。
在特定实施例中,实体解析模块212可以首先对适用的隐私约束执行检查,以保证执行实体解析不违反任何适用的隐私策略。作为示例而非限制,待解析的实体可以是在其隐私设置中指定其身份不应该在在线社交网络上可搜索的另一用户。在这种情况下,实体解析模块212可能不会响应于用户输入而返回该用户的实体标识符。通过利用从社交图谱、知识图谱、概念图谱和用户资料获得的所描述的信息,并通过遵循任何适用的隐私策略,实体解析模块212可以以个性化的、上下文感知和隐私保护的方式,解析与用户输入相关联的实体。
在特定实施例中,实体解析模块212可以与ASR模块208一起工作以执行实体解析。下文的示例示出了实体解析模块212可以如何解析实体名称。实体解析模块212可以首先将与一用户相关联的多个名称扩展成这些名称各自的规范化文本形式,作为可以使用双音素算法(double metaphone algorithm)来语音转录的语音辅音表示。然后,实体解析模块212可以确定n个最佳候选转录集合,并对n个最佳候选转录集合中的所有语音转录执行并行理解过程。在特定实施例中,随后可以将解析为相同意图的每个转录转变(collapse)为单个意图。然后,可以为每个意图分配与该意图的最高得分候选转录相对应的分数。在转变期间,实体解析模块212可以识别与每个槽相关联的各种可能的文本转录,这些可能的文本转录通过与该槽的转录相关联的边界定时偏移来进行关联。然后,实体解析模块212可以从多个(例如,1000个)候选转录中针对每个槽提取可能的候选转录的子集,而不管它们是否被分类到相同的意图。以这种方式,槽和意图可以是短语的评分列表。在特定实施例中,可以识别能够处理该意图的新任务或正在运行的任务(例如,用于向另一用户发送消息的意图的消息创建(composition)任务),并将其与该意图一起提供。然后,所识别的任务可以通过向实体解析模块212提供与其槽中的一个槽相关联的短语的评分列表、以及应该针对其进行解析的类别,来触发实体解析模块212。作为示例而非限制,如果实体属性被指定为“朋友”,则实体解析模块212可以在可在匹配器编译时运行的相同扩展中遍历项的每个候选列表。可以在预编译的特里(trie)匹配结构中匹配项的每个候选扩展。可以使用至少部分地基于转录输入、匹配形式和朋友姓名的函数,来对匹配进行评分。作为另一示例而非限制,如果实体属性被指定为“名人/杰出人物”,则实体解析模块212可以针对从ASR模块208输出的槽的每个候选项集,针对知识图谱执行并行搜索。实体解析模块212可以基于匹配的人受欢迎度和ASR提供的得分信号来对匹配进行评分。在特定实施例中,当记忆类别被指定时,实体解析模块212可以针对用户记忆执行相同的搜索。实体解析模块212可以在用户记忆中向后缓慢行进(crawl)并尝试匹配每个记忆(例如,最近在会话中提到的人、或者看到并通过视觉信号识别到的人等)。对于每个实体,实体解析模块212可以采用与如何匹配朋友类似的匹配(即,音标)。在特定实施例中,评分可以包括与先前提到名称的最近时间相关联的时间衰减因子。实体解析模块212还可以对所有匹配进行组合、排序和去重。在特定实施例中,任务可以接收候选的集合。当存在多个高得分候选时,实体解析模块212可以执行用户促进的消歧(例如,从用户获得对这些候选的实时用户反馈)。
在特定实施例中,上下文引擎220可以帮助实体解析模块212改进实体解析。上下文引擎220可以包括离线聚合器和在线推理服务。离线聚合器可以处理从先前时间窗口收集的与用户相关联的多个数据。作为示例而非限制,这些数据可以包括在预定时间帧内(例如,从先前的90天窗口)收集的新闻推送帖子/评论、与新闻推送帖子/评论的交互、搜索历史等。处理结果可以作为用户资料的一部分而被存储在上下文引擎220中。用户的用户资料可以包括用户资料数据,该用户资料数据包括与该用户相关联的人口信息、社交信息和上下文信息。该用户资料数据还可以包括用户对多个主题的兴趣和偏好,其是通过在新闻推送、搜索日志、消息收发平台等上的对话而被聚合的。用户资料的使用可能受制于隐私约束,以确保用户的信息只能用于他/她的利益,而不能与其他任何人共享。有关用户资料的更多信息可以在以下文件中找到:于2018年4月30日提交的第15/967239号美国专利申请,该申请通过引用并入。在特定实施例中,在线推理服务可以分析助理系统140在当前时间接收的与用户相关联的对话数据。分析结果也可以作为用户资料的一部分而被存储在上下文引擎220中。在特定实施例中,离线聚合器和在线推理服务这两项都可以从多个数据中提取个性化特征。助理系统140的其它模块可以使用所提取的个性化特征来更好地理解用户输入。在特定实施例中,实体解析模块212可以基于自然语言处理(natural-languageprocessing,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随后可以使用经解析的实参来解析触发对象。作为示例而非限制,用户输入“remind me tocall mom when she’s online and I’m home tonight(今晚妈妈在线且我在家时提醒我给她打电话)”可以通过对话状态追踪器218执行从NLU输出到触发表示的转换:
表1:从NLU输出到触发表示的示例转换
在上面的示例中,“mom(妈妈)”、“home(家)”和“tonight(今晚)”由它们各自的实体来表示:personEntity(人物实体)、locationEntity(位置实体)、datetimeEntity(日期实体)。
在特定实施例中,对话管理器216可以将由上下文引擎220确定的事件映射为动作。作为示例而非限制,动作可以是自然语言生成(NLG)动作、显示或覆盖、设备动作或检索动作。对话管理器216还可以执行上下文追踪和交互管理。上下文追踪可以包括将实时的事件流聚合为统一的用户状态。交互管理可以包括在每个状态中选择最佳动作。在特定实施例中,对话状态追踪器218可以执行上下文追踪(即,追踪与用户有关的事件)。为了支持对事件流的处理,对话状态追踪器218可以使用事件处理器(例如,用于消歧、确认、请求),该事件处理器可以消费(consume)各种类型的事件并更新内部助理状态。每个事件类型可以具有一个或多个处理器。每个事件处理器可以正在修改助理状态的某个片段。在特定实施例中,多个事件处理器可以正在对状态的不相交子集进行操作(即,只有一个处理器可以对该状态中的特定字段具有写入访问权)。在特定实施例中,所有事件处理器可以具有处理给定事件的机会。作为示例而非限制,对话状态追踪器218可以对每个事件并行运行所有事件处理器,并且随后可以合并由各个事件处理器提出的状态更新(例如,对于每个事件,大多数处理器可能返回空(NULL)更新)。
在特定实施例中,对话状态追踪器218可以用作需要版本化的任何编程处理器(逻辑)。在特定实施例中,代替直接改变对话状态,对话状态追踪器218可以是边际效应无关的部件,并且可以生成对话状态更新操作符(其提出对对话状态的更新)的n个最佳候选。对话状态追踪器218可以包括意图解析器,这些意图解析器包含这样的逻辑:该逻辑基于对话状态来处理不同类型的NLU意图并生成操作符。在特定实施例中,可以通过意图处理器来组织该逻辑,该意图处理器例如为当助理系统140请求进行消歧时用于处理意图的消歧意图处理器、包括用于处理确认的该逻辑的确认意图处理器等。意图解析器可以将该轮意图与对话状态组合在一起,以生成与用户的对话的上下文更新。然后,槽解析部件可以使用包括知识图谱和域代理的解析提供器,递归地解析更新操作符中的槽。在特定实施例中,对话状态追踪器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的接口还可以允许提供具有回退(back-off)的策略分层(即多个策略单元),其中处理特定情况的高度专业化的策略单元由适用于更广泛情形的更通用策略362来备份。在该上下文中,通用策略362可以可选地包括意图或任务特定的策略。
在特定实施例中,任务策略364可以包括基于任务和当前状态的动作选择器222的逻辑。任务策略364可以是动态的和自组织的。在特定实施例中,任务策略364的类型可以包括以下类型中的一者或多者:(1)手动创建的基于树的对话计划;(2)直接实现用于生成动作的接口的编码策略;(3)配置器指定的槽填充任务;或(4)从数据中学习到的基于机器学习模型的策略。在特定实施例中,助理系统140可以使用基于规则的逻辑来自举新的域,并且随后使用机器学习模型来细化任务策略364。在特定实施例中,通用策略362可以从候选操作符中选择一个操作符以更新对话状态,随后由任务策略364选择面向用户的动作。一旦任务在对话状态中是活动的,就可以查询对应的任务策略364来选择正确的动作。
在特定实施例中,动作选择器222可以基于以下项中的一者或多者来选择动作:由上下文引擎220确定的事件、对话意图和状态、相关联的内容对象、以及来自对话策略360的指引。每个对话策略360可以订阅状态字段上的特定条件。在事件被处理并且状态被更新之后,动作选择器222可以运行快速搜索算法(例如,类似于布尔可满足性(Booleansatisfiability)),以基于当前状态识别哪些策略应该被触发。在特定实施例中,如果多个策略被触发,则动作选择器222可以使用平局决胜机制来挑选特定策略。替代地,动作选择器222可以使用如下的更精细的方法:该方法可以预演每个策略,并且随后挑选可被确定为具有高成功可能性的特定策略。在特定实施例中,将事件映射到动作可以为助理系统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可以支持对槽提及的多轮组成(compositional)解析。对于来自NLU模块210的组成解析,解析器可以递归地解析嵌套的槽。对话管理器216还可以支持对嵌套的槽的消歧。作为示例而非限制,用户输入可以是“提醒我给亚历克斯(Alex)打电话”。解析器在创建可操作的提醒待办事项实体之前,可能需要知道要给哪一个亚历克斯打电话。当需要对特定槽进行进一步的用户澄清时,解析器可以暂停解析并设置解析状态。通用策略362可以检查解析状态并为用户澄清创建相应对话动作。对话管理器216可以在对话状态追踪器218中,基于用户输入和最近的对话动作来更新嵌套的槽。该功能可以允许助理系统140与用户交互,以便不仅能够收集丢失的槽值,而且还减少更复杂/不明确的表达的歧义,以完成任务。在特定实施例中,对话管理器216可以进一步支持在嵌套意图和多意图用户输入(例如,“拍下这张照片并将其发送给爸爸”)中请求缺失的槽。在特定实施例中,对话管理器216可以支持机器学习模型以获得更鲁棒的对话体验。作为示例而非限制,对话状态追踪器218可以使用基于神经网络的模型(或任何其它合适的机器学习模型)来对任务假设之上的信念(belief)进行建模。作为另一示例而非限制,对于动作选择器222,最高优先级策略单元可以包括白名单/黑名单覆盖,这些白名单/黑名单覆盖可能必须通过设计来进行;中等优先级单元可以包括针对动作选择而设计的机器学习模型;而较低优先级单元可以包括当机器学习模型选择不处理一情形时的基于规则的后退(fallback)。在特定实施例中,基于机器学习模型的通用策略单元可以帮助助理系统140减少冗余的消歧或确认步骤,从而减少执行用户输入的轮次数量。
在特定实施例中,可以将由动作选择器222确定的动作发送到传递系统230。传递系统230可以包括CU编辑器370、响应生成部件380、对话状态写入部件382和语音合成(text-to-speech,TTS)部件390。具体地,可以在CU编辑器370处接收动作选择器222的输出。在特定实施例中,来自动作选择器222的输出可以被表示为<k,c,u,d>元组,其中k指示知识源,c指示通信目标,u指示用户模型,d指示话语模型。
在特定实施例中,CU编辑器370可以使用自然语言生成(NLG)部件372为用户生成通信内容。在特定实施例中,NLG部件372可以使用不同的语言模型和/或语言模板来生成自然语言输出。对自然语言输出的生成可以是应用特定的。对自然语言输出的生成还可以针对每个用户进行个性化。在特定实施例中,NLG部件372可以包括内容确定部件、句子规划器和表层实现部件。内容确定部件可以基于知识源、通信目标和用户期望来确定通信内容。作为示例而非限制,该确定可以基于描述逻辑。描述逻辑可以包括例如三个基本观念(notion),这三个基本观念是个体(表示域中的对象)、概念(描述个体的集合)和角色(表示各个体或各概念之间的二元关系)。描述逻辑可以由一组构造器来表征,该组构造器允许自然语言生成器从原子概念/角色构建复杂的概念/角色。在特定实施例中,内容确定部件可以执行以下任务来确定通信内容。第一任务可以包括转换任务,在该转换任务中,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号美国专利申请、以及于2018年4月30日提交的第15/966455号美国专利申请,这些专利申请通过引用并入。
在特定实施例中,传递系统230可以基于CU编辑器370的输出来执行不同的任务。这些任务可以包括:使用对话状态写入部件382将对话状态写入(即,存储/更新)到数据存储库320中,以及使用响应生成部件380生成响应。在特定实施例中,如果所确定的通信内容的模态是音频,则还可以将CU编辑器370的输出发送到TTS部件390。在特定实施例中,来自传递系统230的输出随后可以被发送回对话管理器216,所述输出包括所生成的响应、通信内容或由TTS部件390生成的语音中的一者或多者。
在特定实施例中,协调器206可以基于实体解析模块212的输出,来确定是在客户端系统130上处理用户输入,还是在服务器上处理用户输入,还是使用这两者以第三运行模式(即,混合模式)处理用户输入。除了确定如何处理用户输入之外,协调器206还可以接收由对话管理器216提供的、来自代理228的结果和/或来自传递系统230的结果。协调器206随后可以将这些结果转发给仲裁器226。仲裁器226可以聚合这些结果、分析它们、选择最佳结果、并将所选择的结果提供给渲染输出模块232。在特定实施例中,仲裁器226可以在分析这些结果时查询对话策略360以获得指引。在特定实施例中,渲染输出模块232可以生成适合于客户端系统130的响应。
图4示出了处理用户输入的以任务为中心的示例流程图400。在特定实施例中,助理系统140不仅可以用语音发起的体验来帮助用户,还可以用在理解用户上下文时发起的更主动的多模态体验来帮助用户。在特定实施例中,助理系统140可以出于这样的目的而依赖于助理任务。助理任务可以是这样的中心概念:该中心概念在整个助理堆栈(assistantstack)中共享,以理解用户意图、与用户和世界交互,从而为用户完成正确任务。在特定实施例中,助理任务可以是助理功能的原始单元。助理功能可以包括数据提取、更新某个状态、执行某个命令或由较小的一组任务组成的复杂任务。正确且成功地完成任务以将数值传递给用户可能是对助理系统140进行优化的目标。在特定实施例中,助理任务可以被定义为功能或特征。如果多个产品表面(product surface)具有完全相同的要求,则可以跨该多个产品表面共享助理任务,因此可以很容易地追踪该助理任务。助理任务还可以从一个设备传递到另一个设备,并且很容易在任务中途被另一个设备获得,因为原始单元是一致的。此外,助理任务的一致格式可以允许对助理堆栈中的不同模块作业的各开发者更容易地围绕它进行设计。此外,它还可以允许任务共享。作为示例而非限制,如果用户正在智能眼镜上听音乐,则该用户可以说“在我的手机上播放这首音乐”。在手机还没有被唤醒或有任务要执行的情况下,智能眼镜可以制定提供给手机的任务,该任务随后由手机执行以开始播放音乐。在特定实施例中,如果各个表面具有不同的预期行为,则各个表面可以单独地保留助理任务。在特定实施例中,助理系统140可以在服务器或本地产品表面上基于不同模态的用户输入或其它信号来识别正确的任务,进行对话以收集所有必要的信息,并利用内部或外部实现的动作选择器222来完成该任务。在特定实施例中,助理堆栈可以包括一组处理部件,该组处理部件来自唤醒、识别用户输入、理解用户意图、对任务进行推理、完成任务以生成带语音的自然语言响应。
在特定实施例中,用户输入可以包括语音输入。可以在ASR模块208处接收语音输入,以从该语音输入中提取文本转录。ASR模块208可以使用统计模型,来确定与由助理系统140接收到的作为音频输入的给定语音部分相对应的最有可能的词语序列。这些模型可以包括以下中的一者或多者:隐马尔可夫(Markov)模型、神经网络、深度学习模型或其任意组合。可以以特定的采样率(例如,16千赫兹(kHz)、44.1kHz或96kHz)并利用表示每个样本的特定的位数(例如,24位中的8、16位)来将接收到的音频输入编码为数字数据。
在特定实施例中,ASR模块208可以包括以下中的一者或多者:字素到音素(grapheme-to-phoneme,G2P)模型、发音学习模型、个性化声学模型、个性化语言模型(personalized language model,PLM)或结束指向模型(end-pointing model)。在特定实施例中,字素到音素(G2P)模型可以用于确定用户的字素到音素风格(即,其在特定用户说出特定词语时可能听起来像什么)。在特定实施例中,个性化声学模型可以是音频信号与语言中的语音单元的声音之间的关系的模型。因此,这种个性化声学模型可以识别用户的语音听起来如何。可以使用训练数据(例如,作为音频输入接收到的训练语音和对应于该语音的对应语音单元)来生成个性化声学模型。可以使用特定用户的声音来训练或细化个性化声学模型以识别该用户的语音。在特定实施例中,个性化语言模型随后可以确定与针对特定音频输入而识别出的语音单元相对应的最可能的短语。个性化语言模型可以是各种词语序列可能在该语言中出现的概率的模型。可以使用个性化语言模型将音频输入中的语音单元的声音与词语序列相匹配,并且可以将更大的权重分配给更有可能是该语言中的短语的词语序列。然后,可以选择具有最高权重的词语序列作为对应于音频输入的文本。在特定实施例中,个性化语言模型还可以用于预测在给定上下文的情况下用户最可能说出什么词语。在特定实施例中,结束指向模型可以检测何时到达表达的结束。在特定实施例中,在客户端过程期间,助理系统140可以在运行时至少部分地基于客户端系统130的有限计算能力,优化个性化语言模型。作为示例而非限制,助理系统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对实体进行解析的用户情景记忆。AUM354可以是用于存储用户数据、检索用户数据、为用户数据编索引和搜索用户数据的中心位置。
在特定实施例中,实体解析模块212可以向对话状态追踪器218提供意图、槽、实体、事件、上下文或用户记忆中的一者或多者。对话状态追踪器218可以相应地识别任务的一组状态候选,与用户进行交互以收集填充状态所需的信息,并调用动作选择器222来完成任务。在特定实施例中,对话状态追踪器218可以包括任务追踪器410。任务追踪器410可以追踪与助理任务相关联的任务状态。在特定实施例中,任务状态可以是在多个交互轮次中持续存在的数据结构,并实时更新以采集整个交互期间的任务状态。任务状态可以包括与任务执行状态有关的所有当前信息,例如实参、确认状态、置信度分数等。任务状态中的任何错误或过时的信息都可能导致任务执行失败或错误。任务状态还可以用作许多其它部件(例如,ASR模块208、NLU模块210等)的一组上下文信息。
在特定实施例中,任务追踪器410可以包括意图处理器411、任务候选排序模块414、任务候选生成模块416和合并层419。在特定实施例中,任务可以通过其ID名称来标识。如果在任务规范(例如对话策略360、代理执行、NLG对话动作等)中没有明确设置任务ID,则该任务ID可以用于关联相应的部件资源(asset)。因此,来自实体解析模块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)。作为示例而非限制,<domian>_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,任务策略364可以是从通过任务规范管理器API 430访问的执行规范中生成的。在特定实施例中,执行规范可以描述应该如何执行任务以及动作选择器222可能需要采取什么动作来完成任务。
在特定实施例中,动作选择器222可以确定与系统相关联的动作。这样的动作可能需要代理228来执行。因此,动作选择器222可以将系统动作发送到代理228,并且代理228可以返回这些动作的执行结果。在特定实施例中,动作选择器可以确定与用户或设备相关联的动作。这样的动作可能需要由传递系统230执行。因此,动作选择器222可以将用户/设备动作发送到传递系统230,并且传递系统230可以返回这些动作的执行结果。
本文所公开的各实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(mixed reality,MR)、混合现实(hybridreality),或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与采集到的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且以上中的任何一种都可以在单通道或多通道中呈现(例如,给观看者带来三维效果的立体视频)。此外,在一些实施例中,人工现实可以与应用、产品、附件、服务或它们的某些组合相关联,该应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其它硬件平台。
使用IMU信号检测头部姿势
在特定实施例中,助理系统140可以使穿戴着头戴式设备(例如,智能眼镜)的用户能够使用头部姿势来提供响应。助理系统140可以通过以下方式来理解这种响应:使用客户端头部姿势检测模型检测头部姿势、并将检测到的头部姿势与这些头部姿势的预定义指示相关联。头部姿势检测模型可以仅使用来自头戴式设备的惯性测量单元(IMU)传感器的输入来检测头部姿势。客户端头部姿势检测模型可能能够以低时延和低功耗来推断用户的头部姿势(例如,点头、左右摇动等)。在特定实施例中,可以由其它系统而不是助理系统140来执行头部姿势检测。作为示例而非限制,客户端系统130(例如,头戴式设备)可以单独检测头部姿势,并将检测到的头部姿势提供给助理系统140或在客户端系统130上执行的另一应用。作为另一示例而非限制,虚拟现实(VR)系统可以在用户穿戴着VR头戴式视图器时检测头部姿势,并将检测到的头部姿势提供给助理系统140或在该VR头戴式视图器上执行的另一应用。作为又一示例而非限制,增强现实(AR)系统可以在用户穿戴着AR设备时检测头部姿势,并将检测到的头部姿势提供给助理系统140或在该AR设备上执行的另一应用。尽管本公开描述了由特定系统以特定的方式检测特定姿势,但是本公开考虑了由任何合适的系统以任何合适的方式检测任何合适的姿势。
在特定实施例中,助理系统140可以在头戴式设备的用户与助理xbot之间的对话会话期间,通过头戴式设备经由助理xbot向该用户呈现建议。该建议可以与待由助理系统140执行的多个动作相关联,该助理系统140与助理xbot相关联。在特定实施例中,助理系统140可以在对话会话期间,通过头戴式设备访问来自该头戴式设备的一个或多个惯性测量单元(IMU)传感器的一个或多个信号。然后,助理系统140可以通过设备上头部姿势检测模型并且仅基于来自该一个或多个IMU传感器的一个或多个信号,来确定用户在对话会话期间做出的头部姿势。在特定实施例中,助理系统140还可以通过助理系统140在头戴式设备上执行,来执行该多个动作中的第一动作。该第一动作可以是在对话会话期间基于确定的头部姿势来选择的。
尽管用户主要通过音频与眼镜交互,但是可能存在用户可能不能或不想通过语音输入与助理系统140通信的情况。作为示例而非限制,在安静的环境中,可能不适合说话。作为另一示例而非限制,在嘈杂的环境中,助理系统140或用户可能不能将用户的声音或助理的声音与背景噪声区分开来。作为又一示例而非限制,当用户处于不安全的情况下并且需要帮助,并且助理系统140主动询问用户其是否需要帮助时,说话可能是不安全的。在上面提供的示例中,允许用户向助理系统140提供非语言输入可能是有利的。
在其它情况下,助理系统140可以提供需要用户响应的提示或主动建议,但是用户可能倾向于不提供语言响应。作为示例而非限制,在某种环境中,用户讲话可能不方便或不合适。在该场景中,助理系统140使用户能够提供对提示或主动建议的非语言响应可能是有利的。为了处理这种问题,助理系统140可以接受来自用户的其它形式的响应。一种可能的方式可以是通过客户端系统130使用按钮或手动输入,但是在诸如智能眼镜等头戴式设备上使用按钮或手动输入可能不方便。可能需要其它类型的方便的输入方法,这些方法也应该最好以低时延和低功耗在设备上可检测。
作为上述问题的解决方案,在特定实施例中,助理系统140可以使用这样的头部姿势检测模型:所述头部姿势检测模型使用IMU传感器信号来检测头部姿势。在特定实施例中,助理系统140可以使用这样的头部姿势检测模型:所述头部姿势检测模型使用IMU传感器信号和其它传感器信号(例如,由摄像头采集的视觉信号或由传声器采集的音频信号等)。在特定实施例中,助理系统140可以使用这样的头部姿势检测模型:所述头部姿势检测模型仅使用IMU传感器信号来检测头部姿势。通过仅使用IMU传感器信号,本文所公开的实施例可以具有特别适合于在具有有限功率和计算资源的可穿戴设备(例如,智能眼镜)上检测头部姿势的技术优势,因为IMU传感器可能需要非常低的功率,并且相应的头部姿势检测模型可能需要非常低的存储空间。相比之下,基于摄像头采集的视觉数据的计算机视觉(computer-vision,CV)模型或基于传声器采集的音频信号的音频模型可能在功耗和存储大小方面都更昂贵,因此在客户端实现方面用处较小。此外,仅基于IMU信号的头部姿势检测模型可以额外增强隐私保护。
在特定实施例中,可以以相对低的频率对来自一个或多个IMU传感器的一个或多个信号进行采样。头部姿势检测模型可能只需要IMU传感器以不大于26Hz的频率(而典型的采样频率范围可以是400Hz至833Hz)进行采样。可以将头部姿势检测模型的上下文中的“低频率”定义为约13Hz至约100Hz。要注意的是,头部姿势检测模型还可以以该低频率范围以上的任何频率工作。因此,头部姿势检测模型会继续正确操作的采样频率没有上限。然而,较高的采样频率可能会消耗更多功率,这是不利的。可以看出,可以使用约26Hz的采样频率来降低功耗。此外,由于头部姿势检测模型仅需要IMU信号,因此该头部姿势检测模型可以非常紧凑。在特定实施例中,设备上头部姿势检测模型的大小可以不大于1MB,其占用非常小的存储空间。尽管本公开描述了以特定方式使用以特定频率采样的IMU传感器信号,但是本公开考虑了以任何合适的方式使用以任何合适的频率采样的IMU传感器信号。
在特定实施例中,头部姿势检测模型由于仅需要IMU信号且其大小较小,因此可以直接在可穿戴设备(例如,头戴式设备)上运行。换句话说,头部姿势检测模型可以在可穿戴设备上本地运行,而不是在远程服务器或配套设备138上运行。为了进一步节省功耗,头部姿势检测模型可以仅在对话会话已经开始时才开始运行(即,头部姿势检测模型不需要连续运行从而浪费功率)。换句话说,助理系统140可以在开始对话会话时,激活设备上头部姿势检测模型。在替代实施例中,头部姿势检测模型可以在数字信号处理器(digital signalprocessor,DSP)上运行,这可以允许头部姿势检测模型在需要时(例如,在用户想要允许头部姿势作为助理系统140的一种非语言激活时)以极低的功率连续运行。
图5示出了具有矢状面、额状面和横断面的示例人体头部。对于人体头部505,可以存在额状(冠状)面510。额状(冠状)面510可以是将人体头部505分成背侧部分和腹侧部分的解剖平面。也可以存在正中矢状(中间)面515a。正中矢状(中间)面515a可以将人体头部505竖直地分成相对相等的两半部分——左侧和右侧。还可以存在旁矢状面515b,该旁矢状面可以包括偏离中心的竖直切面,该竖直切面以不相等的部分将人体头部505的左侧与右侧分开。还可以存在横断面520。横断面520可以是将人体头部505分成上部分和下部分的解剖平面。如图5所示,额状(冠状)面510可以垂直于矢状面515和横断面520,并且横断面520可以垂直于额状(冠状)面510和矢状面515。
图6示出了人体头部的示例动作。相对于x-轴,人体头部610可以做出侧倾(roll)620动作,其包括头部朝向肩部倾斜。相对于y-轴,人体头部610可以做出偏摆(yaw)630动作,其包括头部向左或向右转动。相对于z-轴,人体头部610可以做出俯仰(pitch)640动作,其包括头部向下或向上转动。在特定实施例中,不同的头部姿势可以基于不同的头部动作或这些头部动作的不同组合。
在特定实施例中,头部姿势可以包括以下项中的一项或多项:上下矢状点头、左右横向摇头、沿着与用户头部相关联的额状面的单向头部倾斜、在额状面内左右头部倾斜、或单向横向头部转动。在特定实施例中,多个头部姿势与该多个头部姿势的对应指示之间的多个对可以针对用户而是个性化的。多个头部姿势与该多个头部姿势的对应指示之间的多个对也可以是针对与用户相关联的区域而定制的。换句话说,助理系统140还可以针对不同的用户、区域等定制头部姿势。作为示例而非限制,在一些国家,摇头意味着“是”,而点头意味着“不”。这些国家的用户可以定制其头部姿势,以将这些头部姿势与用户指定的含义相关联。
在特定实施例中,助理系统140可以根据IMU数据训练头部姿势检测模型。助理系统140可以按照以下方式来收集和处理训练数据。在特定实施例中,IMU传感器可以包括加速度计或陀螺仪中的一者或多者。作为示例而非限制,陀螺仪的数据率可以是833Hz,并且单位可以是弧度/秒(rad/s)。在直接从头戴式设备(例如,智能眼镜)收集数据时,这些数据率可以是默认值。然而,作为示例而非限制,在头戴式设备的摄像头关闭时,陀螺仪的数据率可以是26Hz,而在该摄像头开启时,陀螺仪的数据率可以是833Hz。为了解决这个问题,助理系统140可以使用两个机器学习模型。在输入数据处于833Hz(即,摄像头开启)时,可以使用第一机器学习模型。在输入数据处于26Hz(即,摄像头关闭)时,可以使用第二机器学习模型。这两个机器学习模型中的每一个机器学习模型都可能仍然在1MB以下。此外,这两个机器学习模型可能不需要同时加载到内存中。在特定实施例中,加速度计值和陀螺仪值可以具有不同的单位/格式。如果直接从头戴式设备收集数据,则助理系统140可以选择不应用旋转和变换以确保一致性。在特定实施例中,助理系统140可以基于陀螺仪值的标准差(即这些值是高于还是低于特定阈值)来处理所收集的数据。尽管本公开描述了以特定方式使用特定数据训练头部姿势模型,但是本公开考虑了以任何合适的方式使用任何合适的数据训练头部姿势模型。
在特定实施例中,可以收集用于检测头部姿势的数据,使得用户做出头部姿势(例如,点头或摇动),然后暂停,然后继续重复该动作。因此,识别这些暂停对于处理所收集的数据以创建用于头部姿势检测的标记数据可能是有用的。在特定实施例中,助理系统140可以使用统计操作来识别这些暂停,并创建用于头部姿势检测的标记数据。尽管本公开描述了以特定方式收集和处理特定数据,但是本公开考虑了以任何合适的方式收集和处理任何合适的数据。
在替代实施例中,为了处理所收集的数据,助理系统140可以首先使用统计方法来检测与所收集的数据相关联的运动。如果在样本窗口中,陀螺仪值和加速度计值的标准差大于特定阈值,则该窗口的标签可以是运动而不是无运动。替代地,助理系统140可以训练运动检测模型,以使用针对活动识别收集的IMU数据来检测运动。在特定实施例中,运动检测模型可以识别与头部姿势相关联的暂停。助理系统140可以进一步利用所识别的这些暂停来创建用于头部姿势检测的标记数据。尽管本公开描述了以特定方式处理特定数据,但是本公开考虑了以任何合适的方式处理任何合适的数据。
在特定实施例中,助理系统140可以基于各种模型架构来训练头部姿势检测模型。在特定实施例中,设备上头部姿势检测模型可以基于一个或多个神经网络,该一个或多个神经网络能够操作以对与来自一个或多个IMU传感器的一个或多个信号相关联的顺序数据中的上下文和追踪关系进行学习。助理系统140可以基于顺序模型来训练头部姿势检测模型,这些顺序模型例如为补丁转换器、门控递归单元(gated recurrent unit,GRU)和长短期记忆(LSTM)。作为示例而非限制,在使用补丁转换器时,所得到的头部姿势检测模型可以使用IMU数据(陀螺仪值和加速度计值)来预测约1.2秒窗口内的头部姿势,从而处理来自该模型的输出以做出最终预测。该模型架构可以具有单层,并且补丁大小可以是10。该模型可以分析已知头部姿势的模式。如果检测到这种模式,则该模型可以利用对相应头部姿势的检测进行响应。实验表明,基于补丁转换器模型的头部姿势检测模型可以达到99%以上的准确率。在另一示例实施例中,头部姿势检测模型可以基于被配置用于活动识别的模型架构。基于神经网络(所述神经网络能够操作以对与来自IMU传感器的信号相关联的顺序数据中的上下文和追踪关系进行学习)来训练头部姿势检测模型可能是用于解决仅使用来自IMU传感器的信号有效地检测头部姿势的技术挑战的有效解决方案,因为该模型可以分析已知头部姿势的模式,并且如果检测到这种模式,则利用对相应头部姿势的检测进行响应。尽管本公开描述了以特定方式使用特定架构来训练头部姿势模型,但是本公开考虑了以任何合适的方式使用任何合适的架构来训练头部姿势模型。
图7示出了基于头部姿势检测的用户辅助的示例序列图700。在特定实施例中,助理系统140可以检测头戴式设备在用户头部上的放置。可以响应于检测到头戴式设备在用户头部上的放置来生成(例如,播放音乐或播客的)建议。用户可以通过做出头部姿势来响应所述建议。在嘈杂环境中或在不希望或不可以说话时,这可以被视为语音响应的替代方案。然后,助理系统140可以使用头部姿势检测模型来理解用户的响应。在特定实施例中,微控制器单元(microcontroller unit,MCU)705可以使用有限状态机(finite statemachine,FSM)来检测头戴式设备是戴在还是没有戴在用户面部710。换句话说,检测头戴式设备在用户头部上的放置可以基于包括一个或多个有限状态机的机器学习模型。MCU 705还可以执行IMU信号缓存715。
在特定实施例中,然后可以将FSM检测结果和缓存的IMU信号提供给片上系统(SOC)720上的上下文服务725。在特定实施例中,助理系统140可以基于与用户相关联的上下文信息来确定建议。如图7所示,助理服务730可以向上下文服务725记录设备放置回调735。一旦上下文服务725通知助理服务730该设备戴在了用户面部740,助理服务730就可以进一步从上下文服务725中查询活动745。
在特定实施例中,助理系统140可以检测与用户相关联的用户活动。因此,可以基于检测到的用户活动来确定建议。在一个示例实施例中,上下文服务725可以从媒体采集服务755中查询头戴式设备的摄像头数据750。基于所查询的数据,活动引擎760可以确定用户活动(例如,行走、跑步、骑自行车等),并将该用户活动返回给助理服务730。然后,助理服务730可以提供一些主动建议。作为示例而非限制,一个主动建议765可以是,如果活动是“行走”,则助理服务730可以询问用户“您想听一些播客吗?”。
在特定实施例中,助理服务730还可以从上下文服务725中的头部姿势检测模型775查询头部姿势信息770。头部姿势检测模型775可以返回对用户头部姿势的检测。然后,助理服务730可以相应地对该检测结果进行动作。在特定实施例中,多个动作可以包括以下项中的一项或多项:执行与建议相关联的任务、不执行与建议相关联的任务、以特定方式执行与建议相关联的任务、或激活助理系统140。在特定实施例中,助理系统140可以从与助理系统140相关联的数据库中访问多个头部姿势与这些头部姿势的对应指示之间的多个对。助理系统140可以进一步从该多个对中识别第一对。第一对可以是在所确定的头部姿势与该头部姿势的对应指示之间。因此,可以进一步基于与所确定的头部姿势相对应的指示来选择第一动作。在特定实施例中,该头部姿势可以包括上下矢状点头,对于该点头,第一动作可以包括执行与建议相关联的任务。作为示例而非限制,一个任务780a可以是,如果头部姿势是“点头”,则助理服务730可以播放播客,回答“好的,播放。”。在特定实施例中,头部姿势可以包括左右横向摇头,对于该摇头,第一动作可以包括不执行与建议相关联的任务。作为另一示例而非限制,另一任务780b可以是,如果头部姿势是“摇动”,则助理服务730可以不播放播客,回答“当然,不会播放。”。
在特定实施例中,穿戴着头戴式设备的用户可以在多轮对话会话中使用多个头部姿势以执行不同的用户动作。在第一轮,用户可以做出第一头部姿势,该第一头部姿势被配置用于第一用户动作。在第二轮,用户可以做出第二头部姿势,该第二头部姿势被配置用于第二用户动作。用户可以继续进行附加头部姿势,直到多轮对话会话结束。作为示例而非限制,可能有用户的呼入电话。助理系统140可以询问用户其是否想要接听该电话。可选地,用户仅可以通过头戴式设备听到铃声或看到通知,而无需助理系统140询问。用户可以做出上下矢状点头以接听电话。然后,用户可以做出左-右/右-左横向摇头来挂断电话。尽管本公开描述了以特定方式用于特定多轮对话的特定头部姿势,但是本公开考虑了以任何合适的方式用于任何合适的多轮对话的任何合适的头部姿势。
在特定实施例中,穿戴着头戴式设备的用户可以使用多个头部姿势以在特定应用中执行不同的用户动作。作为示例而非限制,用户可以处于VR游戏中。用户可以做出上下矢状点头,这可能使得在VR游戏中代表用户的化身上下跳跃。用户还可以做出单向横向头部转动,这可能使得化身转身。用户可以做出附加头部姿势以使化身相应地做出动作。用户可以根据其偏好来配置这些头部姿势在VR游戏中的含义。
图8A至图8E示出了响应于上下矢状点头而执行动作的示例场景。图8A示出了穿戴着智能眼镜130的用户810正在行走。图8B示出了用户810开始跑步。图8C示出了助理系统140检测到用户810开始跑步,并且通过经由智能眼镜130讲话来提供主动建议820。主动建议820可以是“看起来您已经开始跑步了。您想听点音乐吗?”。图8D示出了用户810点动其头部。图8E示出了助理系统140检测到点头姿势。然后,助理系统140可以确定用户810确认其开始跑步了。因此,助理系统140可以执行播放音乐的动作。助理系统140可以进一步通过智能眼镜130向用户说“好的,现在播放您的播放列表。830”。
图9A至图9E示出了响应于左右横向摇头而执行动作的示例场景。图9A示出了穿戴着智能眼镜130的用户910正在跑步,并且智能眼镜130正在播放音乐。图9B示出了用户910停止跑步。图9C示出了助理系统140检测到用户910停止跑步,并且通过经由智能眼镜130讲话来提供主动建议920。主动建议920可以是“看起来您已经跑完步了。您想停止音乐吗?”。图9D示出了用户910摇动其头部。图9E示出了助理系统140检测到摇头姿势。然后,助理系统140可以确定用户910不希望音乐停止。因此,助理系统140可以不执行停止播放音乐的动作。助理系统140可以进一步通过智能眼镜130向用户910说“好的,将继续播放音乐。930”。
图10A至图10D示出了响应于左右横向摇头而执行动作的另一示例场景。图10A示出了穿戴着VR头戴式视图器130a的用户1010正在玩VR游戏。用户1010的手机130b可能在桌子上。用户1010的手机130b可以是VR头戴式视图器130a的配套设备。图10B示出了助理系统140通过VR头戴式视图器130a对用户说“您的兄弟正在呼叫你。您想接听吗?1020”。图10C示出了用户摇动其头部。图10D示出了助理系统140检测到摇头姿势。然后,助理系统140可以确定用户1010不想接听电话。因此,助理系统140可以在手机130b上执行拒绝电话呼叫的动作。助理系统140可以进一步通过VR头戴式视图器130a向用户1010说“好的,将挂断该电话。1030”。
图11示出了用于设备上头部姿势检测的示例方法1100。该方法可以开始于步骤1110,在步骤1110,助理系统140可以基于与用户相关联的上下文信息或检测到的与用户相关联的用户活动中的一个或多个来确定建议,其中,该建议是响应于检测到头戴式设备在用户的头部的放置而生成的。在步骤1120,助理系统140可以在头戴式设备的用户与助理xbot之间的对话会话期间,通过头戴式设备经由助理xbot向该用户呈现该建议,其中,该建议与待由助理系统140执行的多个动作相关联,该助理系统140与该助理xbot相关联,其中,该多个动作包括以下项中的一项或多项:执行与该建议相关联的任务;不执行与该建议相关联的任务;以特定方式执行与该建议相关联的任务;或激活助理系统140。在步骤1130,助理系统140可以在开始对话会话时,激活设备上头部姿势检测模型。在步骤1140,助理系统140可以在对话会话期间,通过头戴式设备访问来自该头戴式设备的一个或多个惯性测量单元(IMU)传感器的一个或多个信号,其中,来自该一个或多个IMU传感器的一个或多个信号是以不大于26Hz的频率采样的。在步骤1150,助理系统140可以通过设备上头部姿势检测模型并且仅基于来自IMU传感器的一个或多个信号,来确定用户在对话会话期间做出的头部姿势,其中,该设备上头部姿势检测模型是基于一个或多个神经网络,所述一个或多个神经网络能够操作以对与来自该一个或多个IMU传感器的一个或多个信号相关联的顺序数据中的上下文和追踪关系进行学习,其中,该设备上头部姿势检测模型的大小不大于1MB,并且其中,该头部姿势包括以下项中的一项或多项:上下矢状点头、左右横向摇头、沿着与用户头部相关联的额状面的单向头部倾斜、在额状面内左右头部倾斜或单向横向头部转动。在步骤1160,助理系统140可以通过助理系统140在头戴式设备上执行,来执行该多个动作中的第一动作,其中,该第一动作是在对话会话期间基于确定的头部姿势来选择的,其中,当头部姿势包括上下矢状点头时,该第一动作包括执行与该建议相关联的任务,并且其中,当头部姿势包括左右横向摇头时,该第一动作包括不执行与该建议相关联的任务。在适当的情况下,特定实施例可以重复图11的方法的一个或多个步骤。尽管本公开将图11的方法的特定步骤描述和示出为以特定顺序发生,但是本公开考虑了将图11的方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于设备上头部姿势检测的、包括图11的方法的特定步骤的示例方法,但是本公开考虑了用于设备上头部姿势检测的、包括任何合适的步骤的任何合适的方法,在适当的情况下,该任何合适的方法可以包括图11的方法的所有步骤、一些步骤或者不包括图11的方法的步骤。此外,尽管本公开描述和示出了执行图11的方法的特定步骤的特定部件、设备或系统,但是本公开考虑了执行图11的方法的任何合适的步骤的任何合适的部件、设备或系统的任何合适组合。
人工神经网络
图12示出了示例人工神经网络(artificial neural network,“ANN”)1200。在特定实施例中,ANN可以指包括一个或多个节点的计算模型。示例ANN 1200可以包括输入层1210、隐藏层1220、1230、1240和输出层1250。ANN 1200的每一层可以包括一个或多个节点,例如节点1205或节点1215。在特定实施例中,ANN的每个节点可以连接到ANN的另一节点。作为示例而非限制,输入层1210的每个节点可以连接到隐藏层1220的一个或多个节点。在特定实施例中,一个或多个节点可以是偏置节点(例如,层中未连接到前一层中的任何节点且不从前一层中的任何节点接收输入的节点)。在特定实施例中,每层中的每个节点可以连接到前一层或后一层中的一个或多个节点。尽管图12描绘了具有特定数量的层、特定数量的节点以及这些节点之间的特定连接的特定ANN,但是本公开考虑了具有任何合适数量的层、任何合适数量的节点以及这些节点之间的任何合适连接的任何合适的ANN。作为示例而非限制,尽管图12描绘了输入层1210的每个节点与隐藏层1220的每个节点之间的连接,但是输入层1210的一个或多个节点可以不连接到隐藏层1220的一个或多个节点。
在特定实施例中,ANN可以是前馈ANN(例如,不具有循环或环路的ANN,其中节点之间的通信在一个方向上流动,从输入层开始并继续到后续的层)。作为示例而非限制,到隐藏层1220的每个节点的输入可以包括输入层1210的一个或多个节点的输出。作为另一示例而非限制,到输出层1250的每个节点的输入可以包括隐藏层1240的一个或多个节点的输出。在特定实施例中,ANN可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施例中,ANN可以是深度残差网络。深度残差网络可以是包括被组织为残差块的隐藏层的前馈ANN。对第一残差块之后的每个残差块的输入可以是前一残差块的输出和前一残差块的输入的函数。作为示例而非限制,进入残差块N的输入可以是F(x)+x,其中F(x)可以是残差块N-1的输出,x可以是进入残差块N-1的输入。尽管本公开描述了特定ANN,但是本公开考虑了任何合适的ANN。
在特定实施例中,激活函数可以对应于ANN的每个节点。对于给定输入,节点的激活函数可以定义节点的输出。在特定实施例中,到节点的输入可以包括一组输入。作为示例而非限制,激活函数可以是身份函数、二元阶梯函数(binary step function)、逻辑函数或任何其它合适的函数。作为另一示例而非限制,节点k的激活函数可以是Sigmoid函数双曲正切函数/>整流(rectifier)Fk(sk)=max(0,sk)或任何其它合适的函数Fk(sk),其中sk可以是到节点k的有效输入。在特定实施例中,可以对与节点相对应的激活函数的输入进行加权。每个节点可以使用对应的激活函数、基于加权后的输入来生成输出。在特定实施例中,节点之间的每个连接可以与权重相关联。作为示例而非限制,节点1205与节点1215之间的连接1225可以具有0.4的加权系数,该加权系数可以指示用节点1205的输出乘以0.4来用作节点1215的输入。作为另一示例而非限制,节点k的输出yk可以是yk=Fk(sk),其中Fk可以是对应于节点k的激活函数,sk=∑j(wjkxj)可以是到节点k的有效输入,xj可以是连接到节点k的节点j的输出,并且wjk可以是节点j和节点k之间的加权系数。在特定实施例中,对输入层的各节点的输入可以基于表示对象的向量。尽管本公开描述了对节点的特定输入和节点的特定输出,但是本公开考虑了对节点的任何合适的输入和节点的任何合适的输出。此外,尽管本公开可能描述了节点之间的特定连接和权重,但是本公开考虑了节点之间的任何合适的连接和权重。/>
在特定实施例中,可以使用训练数据来训练ANN。作为示例而非限制,训练数据可以包括到ANN 1200的输入和预期输出。作为另一示例而非限制,训练数据可以包括各自表示一训练对象的多个向量和每个训练对象的一预期标签。在特定实施例中,训练ANN可以包括通过优化目标函数来修改与ANN的节点之间的连接相关联的权重。作为示例而非限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降法)来反向传播作为表示训练对象的各个向量之间的距离而(例如,使用最小化平方和误差的代价函数)测量到的平方和(sum-of-squares)误差。在特定实施例中,可以使用丢弃(dropout)技术来训练ANN。作为示例而非限制,在训练时可以暂时省略一个或多个节点(例如,该一个或多个节点不接收输入并且不生成输出)。对于每个训练对象,ANN的一个或多个节点可以具有某种被省略的可能性。为特定训练对象省略的节点可以不同于为其它训练对象省略的节点(例如,这些节点可以在逐个对象的基础上被暂时省略)。尽管本公开描述了以特定方式训练ANN,但是本公开考虑了以任何合适的方式训练ANN。
隐私
在特定实施例中,计算系统的一个或多个对象(例如,内容或其它类型的对象)可以与一个或多个隐私设置相关联。该一个或多个对象可以存储在任何合适的计算系统或应用上或以其它方式与其相关联,该合适的计算系统或应用例如是社交网络系统160、客户端系统130、助理系统140、第三方系统170、社交网络应用、助理应用、消息收发应用、照片共享应用或任何其它合适的计算系统或应用。尽管本文所论述的示例处于在线社交网络的上下文中,但是这些隐私设置可以应用于任何其它合适的计算系统。可以以任何合适的方式(例如与该对象相关联、以授权服务器上的索引的方式、以另一合适的方式、或以这些方式的任意组合)存储对象的隐私设置(或“访问设置”)。对象的隐私设置可以指定可以如何在在线社交网络内访问、存储或以其它方式使用(例如,查看、共享、修改、复制、执行、呈现或标识)该对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其他实体访问该对象时,该对象可以被描述为相对于该用户或其他实体是“可见的”。作为示例而非限制,在线社交网络的用户可以指定用户资料页面的隐私设置,这些隐私设置标识可以访问用户资料页面上的工作经验信息的一组用户,从而拒绝其他用户访问该信息。
在特定实施例中,对象的隐私设置可以指定以下用户或其他实体的“被阻止列表”:这些用户或其他实体不应被允许访问与该对象相关联的某些信息。在特定实施例中,该被阻止列表可以包括第三方实体。该被阻止列表可以指定一个或多个用户或实体,对于这些用户或实体,对象是不可见的。作为示例而非限制,用户可以指定不可以访问与该用户相关联的相册的一组用户,从而阻挡这些用户访问相册(同时也可能允许不在指定的该组用户内的某些用户访问该相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图谱元素、与社交图谱元素相关联的信息、或与社交图谱元素相关联的对象。作为示例而非限制,特定照片可以具有隐私设置,该隐私设置指定仅照片中标记的用户和照片中标记的用户的朋友可以访问该照片。在特定实施例中,隐私设置可以允许用户选择加入或选择退出由社交网络系统160或助理系统140存储/记录其内容、信息或动作、或选择加入或选择退出与其它系统(例如,第三方系统170)共享其内容、信息或动作。尽管本公开描述了以特定的方式使用特定的隐私设置,但是本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,社交网络系统160可以(例如,在网页、模块、一个或多个对话框、或任何其它合适的界面内)向第一用户呈现“隐私向导(wizard)”,以帮助第一用户指定一个或多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于接收来自第一用户的指定隐私设置的改变或确认的一个或多个输入的一个或多个输入域、或其任何合适的组合。在特定实施例中,社交网络系统160可以向第一用户提供“控制面板(dashboard)”功能,该功能可以向第一用户显示第一用户的当前隐私设置。可以在任何合适的时间(例如,在来自第一用户调用控制面板功能的输入之后、在特定事件或触发动作发生之后)向第一用户显示控制面板功能。控制面板功能可以允许第一用户在任何时间以任何合适的方式修改第一用户的当前隐私设置中的一个或多个(例如,将第一用户重定向到隐私向导)。
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而非限制,可以为以下项指定访问或拒绝访问:特定用户(例如,只有我、我的室友、我的领导)、特定分离度内的用户(例如,朋友、朋友的朋友)、用户群组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无用户(“私人”)、第三方系统170的用户、特定应用(例如,第三方应用、外部网站)、其他合适的实体、或以上项的任意组合。尽管本公开描述了允许访问或拒绝访问的特定粒度,但是本公开考虑了允许访问或拒绝访问的任何合适的粒度。
在特定实施例中,一个或多个服务器162可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)对存储在数据存储库164中的特定对象的请求,社交网络系统160可以向数据存储库164发送对该对象的请求。该请求可以识别与该请求相关联的用户,并且如果授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象,则该请求可以仅被发送给该用户(或用户的客户端系统130)。如果请求用户未被授权访问该对象,则授权服务器可以阻止从数据存储库164中检索所请求的对象,或者可以阻止将所请求的对象发送给该用户。在搜索查询上下文中,只有当查询用户被授权访问该对象时,例如,如果该对象的隐私设置允许该对象被呈现给该查询用户、被该查询用户发现或以其它方式对该查询用户可见,才可以将该对象提供为搜索结果。在特定实施例中,对象可以表示通过用户的新闻推送对用户可见的内容。作为示例而非限制,一个或多个对象可以对用户的“热门话题(Trending)”页面可见。在特定实施例中,对象可以对应于特定用户。该对象可以是与该特定用户相关联的内容,或者可以是该特定用户的账户或存储在社交网络系统160或其它计算系统上的信息。作为示例而非限制,第一用户可以通过在线社交网络的“你可能认识的人”功能或者通过查看第一用户的朋友列表来查看在线社交网络的一个或多个第二用户。作为示例而非限制,第一用户可以指定其不希望在其新闻推送或朋友列表中看到与特定第二用户相关联的对象。如果该对象的隐私设置不允许它出现在用户面前、被用户发现或对用户可见,则可以从搜索结果中排除该对象。尽管本公开描述了以特定方式执行隐私设置,但是本公开考虑了以任何合适的方式执行隐私设置。
在特定实施例中,与用户相关联的同一类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可以具有不同类型的隐私设置。作为示例而非限制,第一用户可以指定第一用户的状态更新是公开的,但是由第一用户共享的任何图像仅对在线社交网络上的第一用户的朋友可见。作为另一示例而非限制,用户可以为不同类型的实体(例如个人用户、朋友的朋友、追随者、用户组或企业实体)指定不同的隐私设置。作为另一示例而非限制,第一用户可以指定可以查看由第一用户发布的视频的一组用户,同时防止这些视频对第一用户的雇主可见。在特定实施例中,可以为不同的用户组或用户访客提供不同的隐私设置。作为示例而非限制,第一用户可以指定与第一用户在同一所大学的其他用户可以观看第一用户的照片,但是作为第一用户的家庭成员的其他用户不可以查看这些相同的照片。
在特定实施例中,社交网络系统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相关联的其它过程或应用使用。
系统和方法
图13示出了示例计算机系统1300。在特定实施例中,一个或多个计算机系统1300执行本文所描述或示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1300提供本文所描述或示出的功能。在特定实施例中,在一个或多个计算机系统1300上运行的软件执行本文所描述或示出的一种或多种方法的一个或多个步骤,或者提供本文所描述或示出的功能。特定实施例包括一个或多个计算机系统1300的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统1300。本公开考虑了采用任何合适的物理形式的计算机系统1300。作为示例而非限制,计算机系统1300可以为嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本式计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统组网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、或这些系统中的两者或更多者的组合。在适当的情况下,计算机系统1300可以包括一个或多个计算机系统1300;可以是单一的或分布式的;跨多个位置的;跨多台机器的;跨越多个数据中心的;或位于云中(该云可以包括一个或多个网络中的一个或多个云部件)。在适当的情况下,一个或多个计算机系统1300可以在无实质性的空间限制或时间限制的情况下,执行本文中所描述或示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统1300可以实时地或以分批处理模式执行本文中所描述或示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1300可以在不同的时间或在不同的位置执行本文中所描述或示出的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机系统1300包括处理器1302、内存1304、存储器1306、输入/输出(input/output,I/O)接口1308、通信接口1310和总线1312。尽管本公开描述并示出了具有处于特定布置的特定数量的特定部件的特定计算机系统,但本公开考虑了具有处于任何合适的布置的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器1302包括用于执行多个指令的硬件,这些指令例如为,构成计算机程序的那些指令。作为示例而非限制,为了执行多个指令,处理器1302可从内部寄存器、内部高速缓冲存储器、内存1304、或存储器1306检索(或提取)这些指令;解码并执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存1304或存储器1306。在特定实施例中,处理器1302可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器1302。作为示例而非限制,处理器1302可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个页表缓存(translationlookaside buffer,TLB)。指令高速缓冲存储器中的指令可以是内存1304或存储器1306中的指令的副本,并且该指令高速缓冲存储器可以加速处理器1302对这些指令的检索。数据高速缓冲存储器中的数据可以是内存1304或存储器1306中、供在处理器1302处执行的指令操作的数据的副本;可以是在处理器1302处执行的先前指令的结果,以供在处理器1302处执行的后续指令访问、或用于写入内存1304或存储器1306;或者可以是其它合适的数据。数据高速缓冲存储器可以加速处理器1302的读操作或写操作。TLB可以加速处理器1302的虚拟地址转换。在特定实施例中,处理器1302可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何适当数量的任何合适的内部寄存器的处理器1302。在适当的情况下,处理器1302可以包括一个或多个算术逻辑单元(arithmeticlogic unit,ALU);可以是多核处理器;或可以包括一个或多个处理器1302。尽管本公开描述并示出了特定的处理器,但是本公开考虑了任何合适的处理器。
在特定实施例中,内存1304包括主内存,该主内存用于存储供处理器1302执行的指令或供处理器1302操作的数据。作为示例而非限制,计算机系统1300可以将指令从存储器1306或另一源(例如,另一计算机系统1300)加载到内存1304。然后,处理器1302可以将这些指令从内存1304加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器1302可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对它们进行解码。在执行这些指令期间或之后,处理器1302可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器1302可以将这些结果中的一个或多个结果写入内存1304。在特定实施例中,处理器1302仅执行一个或多个内部寄存器中或一个或多个内部高速缓冲存储器中的、或内存1304(与存储器1306不同或其它位置)中的指令,且仅对一个或多个内部寄存器或内部高速缓冲存储器中的、或内存1304(与存储器1306不同或其它位置)中的数据进行操作。一条或多条内存总线(每条内存总线可以包括地址总线和数据总线)可以将处理器1302耦接到内存1304。如下所述,总线1312可以包括一条或多条内存总线。在特定实施例中,一个或多个内存管理单元(memorymanagement unit,MMU)位于处理器1302与内存1304之间,并且促进由处理器1302所请求的对内存1304的访问。在特定实施例中,内存1304包括随机存取存储器(random accessmemory,RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以为动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存1304可以包括一个或多个内存1304。尽管本公开描述和示出了特定的内存,但本公开考虑了任何合适的内存。
在特定实施例中,存储器1306包括用于数据或指令的大容量存储器。作为示例而非限制,存储器1306可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些存储器中的两者或更多者的组合。在适当的情况下,存储器1306可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器1306可以处于计算机系统1300的内部或外部。在特定实施例中,存储器1306是非易失性固态存储器。在特定实施例中,存储器1306包括只读存储器(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中的两者或更多者的组合。本公开考虑了采用任何合适物理形式的大容量存储器1306。在适当的情况下,存储器1306可以包括促进处理器1302和存储器1306之间的通信的一个或多个存储器控制单元。在适当的情况下,存储器1306可以包括一个或多个存储器1306。尽管本公开描述和示出了特定的存储器,但是本公开考虑了任何合适的存储器。
在特定实施例中,I/O接口1308包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统1300与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统1300可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现个人与计算机系统1300之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物摄像头、手写笔、平板电脑、触摸屏、追踪球、摄像机、另一合适的I/O设备、或这些I/O设备中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于这些I/O设备的任何合适的I/O接口1308。在适当的情况下,I/O接口1308可以包括使处理器1302能够驱动这些I/O设备中的一个或多个I/O设备的一个或多个设备或软件驱动器。在适当的情况下,I/O接口1308可以包括一个或多个I/O接口1308。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口1310包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统1300与一个或多个其它计算机系统1300或一个或多个网络之间的通信(例如,基于数据包的通信)的一个或多个接口。作为示例而非限制,通信接口1310可以包括用于与以太网或其它基于线路的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器,或用于与诸如WI-FI网络等无线网络进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口1310。作为示例而非限制,计算机系统1300可以与如下的网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或这些网络中的两者或更多者的组合。这些网络中的一种或多种网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1300可以与如下的网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for MobileCommunications,GSM)网络)、或其它合适的无线网络、或这些网络中的两者或更多者的组合。在适当的情况下,计算机系统1300可以包括用于这些网络中的任何网络的任何合适的通信接口1310。在适当情况下,通信接口1310可以包括一个或多个通信接口1310。尽管本公开描述并示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在特定实施例中,总线1312包括将计算机系统1300的多个部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线1312可以包括:加速图形端口(AcceleratedGraphics Port,AGP)或其它图形总线、增强型工业标准体系结构(Enhanced IndustryStandard 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)总线、或另一合适的总线、或这些总线中的两者或更多者的组合。在适当的情况下,总线1312可以包括一条或多条总线1312。尽管本公开描述和示出了特定的总线,但本公开考虑了任何合适的总线或互连件。
在本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其它IC(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(floppy diskdrive,FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡(SECUREDIGITAL card)或安全数字驱动器、任何其它合适的计算机可读非暂态存储介质、或这些存储介质中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或易失性与非易失性的组合。
其他
在本文中,除非另有明确说明或上下文另有说明,否则“或”是包含而非排他性的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A或B”意指“A、B、或这两者”。此外,除非另有明确说明或上下文另有说明,否则“和”是共同的和单独的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A和B”意指“A和B,共同地或单独地”。
本公开的范围包括本领域普通技术人员将理解的、对本文中所描述或所示出的示例实施例的所有改变、替代、变化、变换和修改。本公开的范围不限于本文所描述或所示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述并示出为包括特定的部件、元件、特征、功能、操作、或步骤,但是这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元件、特征、功能、操作、或步骤中的任何的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能被操作、或可被操作以执行特定功能的装置或系统、或装置或系统中的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件被如此适用于、被布置为、能够、被配置为、使能够、能被操作或可被操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或可以提供这些优点中的一些或全部。

Claims (18)

1.一种方法,包括:由头戴式设备的一个或多个处理器:
在所述头戴式设备的用户与助理xbot之间的对话会话期间,通过所述头戴式设备经由所述助理xbot向所述用户呈现建议,其中,所述建议与待由助理系统执行的多个动作相关联,所述助理系统与所述助理xbot相关联;
在所述对话会话期间,通过所述头戴式设备访问来自所述头戴式设备的一个或多个惯性测量单元IMU传感器的一个或多个信号;
通过设备上头部姿势检测模型并且仅基于来自所述一个或多个IMU传感器的所述一个或多个信号,来确定所述用户在所述对话会话期间做出的头部姿势;以及
通过所述助理系统在所述头戴式设备上执行,来执行所述多个动作中的第一动作,其中,所述第一动作是在所述对话会话期间基于确定的所述头部姿势来选择的。
2.根据权利要求1所述的方法,还包括:
基于与所述用户相关联的上下文信息来确定所述建议。
3.根据权利要求1所述的方法,还包括:
检测与所述用户相关联的用户活动;以及
基于检测到的所述用户活动来确定所述建议。
4.根据权利要求1所述的方法,其中,来自所述一个或多个IMU传感器的所述一个或多个信号是以不大于26Hz的频率来采样的。
5.根据权利要求1所述的方法,还包括:
检测所述头戴式设备在所述用户的头部的放置,其中,所述建议是响应于检测到所述头戴式设备在所述用户的头部的放置而生成的。
6.根据权利要求5所述的方法,其中,检测所述头戴式设备在所述用户的头部的放置是基于包括一个或多个有限状态机的机器学习模型。
7.根据权利要求1所述的方法,其中,所述设备上头部姿势检测模型是基于一个或多个神经网络,所述一个或多个神经网络能够操作以对与来自所述一个或多个IMU传感器的所述一个或多个信号相关联的顺序数据中的上下文和追踪关系进行学习。
8.根据权利要求1所述的方法,其中,所述设备上头部姿势检测模型的大小不大于1MB。
9.根据权利要求1所述的方法,其中,所述多个动作包括以下项中的一项或多项:
执行与所述建议相关联的任务,
不执行与所述建议相关联的任务,
以特定方式执行与所述建议相关联的任务,或者
激活所述助理系统。
10.根据权利要求1所述的方法,其中,所述头部姿势包括上下矢状点头,并且其中,所述第一动作包括执行与所述建议相关联的任务。
11.根据权利要求1所述的方法,其中,所述头部姿势包括左右横向摇头,并且其中,所述第一动作包括不执行与所述建议相关联的任务。
12.根据权利要求1所述的方法,还包括:
从与所述助理系统相关联的数据库中访问多个头部姿势与所述多个头部姿势的对应指示之间的多个对;以及
从所述多个对中识别第一对,其中,所述第一对是在确定的所述头部姿势与所述头部姿势的对应指示之间,并且其中,所述第一动作还基于与确定的所述头部姿势相对应的所述指示来选择。
13.根据权利要求12所述的方法,其中,所述多个头部姿势与所述多个头部姿势的对应指示之间的所述多个对针对所述用户而是个性化的。
14.根据权利要求12所述的方法,其中,所述多个头部姿势与所述多个头部姿势的对应指示之间的所述多个对是针对与所述用户相关联的区域而定制的。
15.根据权利要求1所述的方法,其中,所述头部姿势包括以下项中一项或多项:上下矢状点头、左右横向摇头、沿着与所述用户的头部相关联的额状面的单向头部倾斜、在所述额状面内左右头部倾斜或单向横向头部转动。
16.根据权利要求1所述的方法,还包括:
在开始所述对话会话时,激活所述设备上头部姿势检测模型。
17.一种或多种计算机可读非暂态存储介质,所述一种或多种计算机可读非暂态存储介质包含软件,所述软件在被执行时能够操作以:
在头戴式设备的用户与助理xbot之间的对话会话期间,通过所述头戴式设备经由所述助理xbot向所述用户呈现建议,其中,所述建议与待由助理系统执行的多个动作相关联,所述助理系统与所述助理xbot相关联;
在所述对话会话期间,通过所述头戴式设备访问来自所述头戴式设备的一个或多个惯性测量单元IMU传感器的一个或多个信号;
通过设备上头部姿势检测模型并且仅基于来自所述一个或多个IMU传感器的所述一个或多个信号,来确定所述用户在所述对话会话期间做出的头部姿势;以及
通过所述助理系统在所述头戴式设备上执行,来执行所述多个动作中的第一动作,其中,所述第一动作是在所述对话会话期间基于确定的所述头部姿势来选择的。
18.一种系统,包括:一个或多个处理器;以及非暂态存储器,所述非暂态存储器耦接到所述一个或多个处理器,所述非暂态存储器包括能够由所述一个或多个处理器执行的指令,所述一个或多个处理器在执行所述指令时能够操作以:
在头戴式设备的用户与助理xbot之间的对话会话期间,通过所述头戴式设备经由所述助理xbot向所述用户呈现建议,其中,所述建议与待由助理系统执行的多个动作相关联,所述助理系统与所述助理xbot相关联;
在所述对话会话期间,通过所述头戴式设备访问来自所述头戴式设备的一个或多个惯性测量单元IMU传感器的一个或多个信号;
通过设备上头部姿势检测模型并且仅基于来自所述一个或多个IMU传感器的所述一个或多个信号,来确定所述用户在所述对话会话期间做出的头部姿势;以及
通过所述助理系统在所述头戴式设备上执行,来执行所述多个动作中的第一动作,其中,所述第一动作是在所述对话会话期间基于确定的所述头部姿势来选择的。
CN202311652535.2A 2022-12-05 2023-12-04 使用惯性测量单元信号检测头部姿势 Pending CN118154114A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18/061,838 2022-12-05
US18/061,838 US11983329B1 (en) 2022-12-05 2022-12-05 Detecting head gestures using inertial measurement unit signals

Publications (1)

Publication Number Publication Date
CN118154114A true CN118154114A (zh) 2024-06-07

Family

ID=88600256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311652535.2A Pending CN118154114A (zh) 2022-12-05 2023-12-04 使用惯性测量单元信号检测头部姿势

Country Status (3)

Country Link
US (1) US11983329B1 (zh)
EP (1) EP4383046A3 (zh)
CN (1) CN118154114A (zh)

Family Cites Families (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014439A (en) 1997-04-08 2000-01-11 Walker Asset Management Limited Partnership Method and apparatus for entertaining callers in a queue
US5926537A (en) 1997-04-29 1999-07-20 Ericsson Inc Generating a distinctive ring tone for a calling party subscriber within a telecommunications network
US7421432B1 (en) 1999-12-15 2008-09-02 Google Inc. Hypertext browser assistant
AU2434600A (en) 1999-12-29 2001-07-16 Koninklijke Kpn N.V. Electronic call assistants with shared database
NL1015165C2 (nl) 2000-05-12 2001-11-13 Koninkl Kpn Nv Communicatiesysteem.
US7158678B2 (en) 2001-07-19 2007-01-02 Motorola, Inc. Text input method for personal digital assistants and the like
US7124123B1 (en) 2003-06-30 2006-10-17 America Online, Inc. Intelligent processing in the context of away and offline instant messages
US7889853B2 (en) 2004-07-27 2011-02-15 At&T Intellectual Property I, L.P. Methods, systems, devices, and products for providing ring backs
US7693829B1 (en) 2005-04-25 2010-04-06 Google Inc. Search engine with fill-the-blanks capability
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7613287B1 (en) 2005-11-15 2009-11-03 TellMe Networks Method and apparatus for providing ringback tones
US20080240379A1 (en) 2006-08-03 2008-10-02 Pudding Ltd. Automatic retrieval and presentation of information relevant to the context of a user's conversation
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US9794348B2 (en) 2007-06-04 2017-10-17 Todd R. Smith Using voice commands from a mobile device to remotely access and control a computer
US8494978B2 (en) 2007-11-02 2013-07-23 Ebay Inc. Inferring user preferences from an internet based social interactive construct
US8204200B2 (en) 2008-09-03 2012-06-19 Core Wireless Licensing S.à.r.l. Method, system, and apparatus for overriding a ring back signal
US8977242B1 (en) 2009-04-06 2015-03-10 Wendell Brown Method and apparatus for content presentation in association with a telephone call
US10042032B2 (en) 2009-04-29 2018-08-07 Amazon Technologies, Inc. System and method for generating recommendations based on similarities between location information of multiple users
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US20110246383A1 (en) 2010-03-30 2011-10-06 Microsoft Corporation Summary presentation of media consumption
US9098808B1 (en) 2010-04-22 2015-08-04 Google Inc. Social search engine
CA2824627C (en) 2011-02-23 2014-09-30 Bottlenose, Inc. System and method for analyzing messages in a network or across networks
US20120246191A1 (en) 2011-03-24 2012-09-27 True Xiong World-Wide Video Context Sharing
US9398347B2 (en) 2011-05-30 2016-07-19 Sandvine Incorporated Ulc Systems and methods for measuring quality of experience for media streaming
US9015031B2 (en) 2011-08-04 2015-04-21 International Business Machines Corporation Predicting lexical answer types in open domain question and answering (QA) systems
US9154739B1 (en) 2011-11-30 2015-10-06 Google Inc. Physical training assistant system
US9418658B1 (en) 2012-02-08 2016-08-16 Amazon Technologies, Inc. Configuration of voice controlled assistant
US8947323B1 (en) 2012-03-20 2015-02-03 Hayes Solos Raffle Content display methods
US10235346B2 (en) 2012-04-06 2019-03-19 Hmbay Patents Llc Method and apparatus for inbound message summarization using message clustering and message placeholders
US9060224B1 (en) 2012-06-01 2015-06-16 Rawles Llc Voice controlled assistant with coaxial speaker and microphone arrangement
US9299059B1 (en) 2012-06-07 2016-03-29 Google Inc. Generating a summary of social media content
US9576325B2 (en) 2012-07-09 2017-02-21 Facebook, Inc. Recommending additional users for an event using a social networking system
US9747895B1 (en) 2012-07-10 2017-08-29 Google Inc. Building language models for a user in a social network from linguistic information
US20140032659A1 (en) 2012-07-27 2014-01-30 BranchOut, Inc. Facilitating communications between users of multiple social networks
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US8983383B1 (en) 2012-09-25 2015-03-17 Rawles Llc Providing hands-free service to multiple devices
US11397462B2 (en) 2012-09-28 2022-07-26 Sri International Real-time human-machine collaboration using big data driven augmented reality technologies
US20140129266A1 (en) 2012-11-06 2014-05-08 Utix Social Ticketing, Llc Social interactive ticketing system
WO2014142702A1 (en) 2013-03-15 2014-09-18 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speaktoit" Selective speech recognition for chat and digital personal assistant systems
US20140164506A1 (en) 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of networked media content
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
US9172747B2 (en) 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US20140280017A1 (en) 2013-03-12 2014-09-18 Microsoft Corporation Aggregations for trending topic summarization
US9659577B1 (en) 2013-03-14 2017-05-23 Amazon Technologies, Inc. Voice controlled assistant with integrated control knob
US9639608B2 (en) 2013-03-15 2017-05-02 Daniel Freeman Comprehensive user/event matching or recommendations based on awareness of entities, activities, interests, desires, location
US9304736B1 (en) 2013-04-18 2016-04-05 Amazon Technologies, Inc. Voice controlled assistant with non-verbal code entry
US9472206B2 (en) 2013-06-17 2016-10-18 Google Technology Holdings LLC Privacy mode for always-on voice-activated information assistant
US9881077B1 (en) 2013-08-08 2018-01-30 Google Llc Relevance determination and summary generation for news objects
US9338242B1 (en) 2013-09-09 2016-05-10 Amazon Technologies, Inc. Processes for generating content sharing recommendations
US9953079B2 (en) 2013-09-17 2018-04-24 International Business Machines Corporation Preference based system and method for multiple feed aggregation and presentation
US10134395B2 (en) 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
US9904360B2 (en) * 2013-11-15 2018-02-27 Kopin Corporation Head tracking based gesture control techniques for head mounted displays
US9189742B2 (en) 2013-11-20 2015-11-17 Justin London Adaptive virtual intelligent agent
US10162813B2 (en) 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US20150169744A1 (en) 2013-12-12 2015-06-18 Flipboard, Inc. Selecting Diverse, Relevant Content From Multiple Content Feeds
US9804820B2 (en) 2013-12-16 2017-10-31 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US9479931B2 (en) 2013-12-16 2016-10-25 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
US10181322B2 (en) 2013-12-20 2019-01-15 Microsoft Technology Licensing, Llc Multi-user, multi-domain dialog system
US9424247B1 (en) 2013-12-31 2016-08-23 Google Inc. Associating one or more terms in a message trail with a task entry
US9830044B2 (en) 2013-12-31 2017-11-28 Next It Corporation Virtual assistant team customization
US20150207765A1 (en) 2014-01-17 2015-07-23 Nathaniel Brantingham Messaging Service with Conversation Suggestions
US20150220888A1 (en) 2014-02-06 2015-08-06 Zeeplanner Llc System and method of scheduling meetings, appointments and events using multiple identities
US9690771B2 (en) 2014-05-30 2017-06-27 Nuance Communications, Inc. Automated quality assurance checks for improving the construction of natural language understanding systems
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10120955B2 (en) 2014-07-18 2018-11-06 Nuance Communications, Inc. State tracking over machine-learned relational trees in a dialog system
WO2016018111A1 (en) 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Message service providing device and method of providing content via the same
US10255365B2 (en) 2014-08-29 2019-04-09 Facebook, Inc. Priming search results on online social networks
US9189514B1 (en) 2014-09-04 2015-11-17 Lucas J. Myslinski Optimized fact checking method and system
US20160196490A1 (en) 2015-01-02 2016-07-07 International Business Machines Corporation Method for Recommending Content to Ingest as Corpora Based on Interaction History in Natural Language Question and Answering Systems
US10719786B1 (en) 2015-01-09 2020-07-21 Facebook, Inc. Event ticketing in online social networks
US9508339B2 (en) 2015-01-30 2016-11-29 Microsoft Technology Licensing, Llc Updating language understanding classifier models for a digital personal assistant based on crowd-sourcing
US11093971B2 (en) 2015-02-27 2021-08-17 Keypoint Technologies India Pvt Ltd. Contextual discovery
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US20160306505A1 (en) 2015-04-17 2016-10-20 Avincel Group, Inc. Computer-implemented methods and systems for automatically creating and displaying instant presentations from selected visual content items
US10218651B2 (en) 2015-04-20 2019-02-26 Oracle International Corporation Virtual assistance for chat agents
US10417799B2 (en) 2015-05-07 2019-09-17 Facebook, Inc. Systems and methods for generating and presenting publishable collections of related media content items
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9792281B2 (en) 2015-06-15 2017-10-17 Microsoft Technology Licensing, Llc Contextual language generation by leveraging language understanding
US10686738B2 (en) 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
US10262654B2 (en) 2015-09-24 2019-04-16 Microsoft Technology Licensing, Llc Detecting actionable items in a conversation among participants
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
KR20170051013A (ko) * 2015-11-02 2017-05-11 엘지전자 주식회사 테더링 형 hmd 및 그 hmd의 제어 방법
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
JP6798106B2 (ja) * 2015-12-28 2020-12-09 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10402750B2 (en) 2015-12-30 2019-09-03 Facebook, Inc. Identifying entities using a deep-learning model
WO2017168202A1 (en) 2016-03-27 2017-10-05 Yogesh Chunilal Rathod Identifying & storing followers, following users, viewers, users and connections for user
WO2017168252A1 (en) 2016-03-31 2017-10-05 Maluuba Inc. Method and system for processing an input query
EP4365784A2 (en) 2016-04-18 2024-05-08 Google LLC Automated assistant invocation of appropriate agent
US10305828B2 (en) 2016-04-20 2019-05-28 Google Llc Search query predictions by a keyboard
US20170353469A1 (en) 2016-06-03 2017-12-07 Facebook, Inc. Search-Page Profile
US10462619B2 (en) 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
WO2018009231A1 (en) 2016-07-08 2018-01-11 Asapp, Inc. Automatically responding to a request of a user
US20180018562A1 (en) 2016-07-14 2018-01-18 Cside Japan Inc. Platform for providing task based on deep learning
US20180018963A1 (en) 2016-07-16 2018-01-18 Ron Zass System and method for detecting articulation errors
US10990174B2 (en) 2016-07-25 2021-04-27 Facebook Technologies, Llc Methods and apparatus for predicting musculo-skeletal position information using wearable autonomous sensors
US20180054523A1 (en) 2016-08-16 2018-02-22 Rulai, Inc. Method and system for context sensitive intelligent virtual agents
US20180052824A1 (en) 2016-08-19 2018-02-22 Microsoft Technology Licensing, Llc Task identification and completion based on natural language query
US20180096072A1 (en) 2016-10-03 2018-04-05 Google Inc. Personalization of a virtual assistant
US10579688B2 (en) 2016-10-05 2020-03-03 Facebook, Inc. Search ranking and recommendations for online social networks based on reconstructed embeddings
US11392598B2 (en) 2016-10-19 2022-07-19 Ebay Inc. Applying a quantitative range for qualitative terms
US10585891B2 (en) 2016-11-03 2020-03-10 Soundhound, Inc. Dynamic choice of data sources in natural language query processing
US10699181B2 (en) 2016-12-30 2020-06-30 Google Llc Virtual assistant generation of group recommendations
US10146768B2 (en) 2017-01-25 2018-12-04 Google Llc Automatic suggested responses to images received in messages using language model
WO2018160199A1 (en) 2017-03-03 2018-09-07 Google Llc Systems and methods for detecting improper implementation of presentation of content items by applications executing on client devices
US11188808B2 (en) 2017-04-11 2021-11-30 Lenovo (Singapore) Pte. Ltd. Indicating a responding virtual assistant from a plurality of virtual assistants
US9865260B1 (en) 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10311872B2 (en) 2017-07-25 2019-06-04 Google Llc Utterance classifier
US10438594B2 (en) 2017-09-08 2019-10-08 Amazon Technologies, Inc. Administration of privileges by speech for voice assistant system
US10685049B2 (en) 2017-09-15 2020-06-16 Oath Inc. Conversation summary
US10841249B2 (en) 2017-10-02 2020-11-17 Samsung Electronics Co., Ltd. System and method for bot platform
US10645035B2 (en) 2017-11-02 2020-05-05 Google Llc Automated assistants with conference capabilities
US20190139150A1 (en) 2017-11-09 2019-05-09 Facebook, Inc. Systems and methods for generating multi-contributor content posts for events
US11631017B2 (en) 2018-01-09 2023-04-18 Microsoft Technology Licensing, Llc Federated intelligent assistance
US10444932B2 (en) * 2018-01-25 2019-10-15 Institute For Information Industry Virtual space positioning method and apparatus
US10462422B1 (en) 2018-04-09 2019-10-29 Facebook, Inc. Audio selection based on user engagement
US10523864B2 (en) 2018-04-10 2019-12-31 Facebook, Inc. Automated cinematic decisions based on descriptive models
US11030412B2 (en) 2018-04-10 2021-06-08 Verizon Patent And Licensing Inc. System and method for chatbot conversation construction and management
US10573298B2 (en) 2018-04-16 2020-02-25 Google Llc Automated assistants that accommodate multiple age groups and/or vocabulary levels
US10978056B1 (en) 2018-04-20 2021-04-13 Facebook, Inc. Grammaticality classification for natural language generation in assistant systems
US11115410B1 (en) 2018-04-20 2021-09-07 Facebook, Inc. Secure authentication for assistant systems
US10963273B2 (en) 2018-04-20 2021-03-30 Facebook, Inc. Generating personalized content summaries for users
US20190348033A1 (en) 2018-05-10 2019-11-14 Fujitsu Limited Generating a command for a voice assistant using vocal input
EP3797345A4 (en) 2018-05-22 2022-03-09 Magic Leap, Inc. TRANSMODAL INPUT FUSION FOR A BODY WEARABLE SYSTEM
JP7155605B2 (ja) 2018-05-22 2022-10-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10896295B1 (en) 2018-08-21 2021-01-19 Facebook, Inc. Providing additional information for identified named-entities for assistant systems
US10949616B1 (en) 2018-08-21 2021-03-16 Facebook, Inc. Automatically detecting and storing entity information for assistant systems
KR102242703B1 (ko) 2018-10-24 2021-04-21 주식회사 알파서클 헤드 마운트 디스플레이에 연결된 스마트 단말 및 이를 위한 제어 방법
US11264029B2 (en) * 2019-01-05 2022-03-01 Starkey Laboratories, Inc. Local artificial intelligence assistant system with ear-wearable device
US11442992B1 (en) 2019-06-28 2022-09-13 Meta Platforms Technologies, Llc Conversational reasoning with knowledge graph paths for assistant systems
US11657094B2 (en) 2019-06-28 2023-05-23 Meta Platforms Technologies, Llc Memory grounded conversational reasoning and question answering for assistant systems
US20210117214A1 (en) 2019-10-18 2021-04-22 Facebook, Inc. Generating Proactive Content for Assistant Systems
US11308284B2 (en) 2019-10-18 2022-04-19 Facebook Technologies, Llc. Smart cameras enabled by assistant systems
US11159767B1 (en) 2020-04-07 2021-10-26 Facebook Technologies, Llc Proactive in-call content recommendations for assistant systems
US11658835B2 (en) 2020-06-29 2023-05-23 Meta Platforms, Inc. Using a single request for multi-person calling in assistant systems
GB202015887D0 (en) * 2020-10-07 2020-11-18 Veeride Geo Ltd Hands-free pedestrian navigation system and method
US20220129556A1 (en) 2020-10-28 2022-04-28 Facebook, Inc. Systems and Methods for Implementing Smart Assistant Systems
US20220188361A1 (en) 2020-12-11 2022-06-16 Meta Platforms, Inc. Voice-based Auto-Completions and Auto-Responses for Assistant Systems
US20220199079A1 (en) 2020-12-22 2022-06-23 Meta Platforms, Inc. Systems and Methods for Providing User Experiences on Smart Assistant Systems
US11563706B2 (en) 2020-12-29 2023-01-24 Meta Platforms, Inc. Generating context-aware rendering of media contents for assistant systems
US20220269870A1 (en) 2021-02-18 2022-08-25 Meta Platforms, Inc. Readout of Communication Content Comprising Non-Latin or Non-Parsable Content Items for Assistant Systems
US20220284904A1 (en) 2021-03-03 2022-09-08 Meta Platforms, Inc. Text Editing Using Voice and Gesture Inputs for Assistant Systems
US20220358917A1 (en) 2021-04-21 2022-11-10 Meta Platforms, Inc. Multi-device Mediation for Assistant Systems
US20220366904A1 (en) 2021-04-21 2022-11-17 Meta Platforms, Inc. Active Listening for Assistant Systems
US20220366170A1 (en) 2021-04-21 2022-11-17 Meta Platforms, Inc. Auto-Capture of Interesting Moments by Assistant Systems
US20220374645A1 (en) 2021-04-21 2022-11-24 Meta Platforms, Inc. Task Execution Based on Real-world Text Detection for Assistant Systems
US11861315B2 (en) 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems

Also Published As

Publication number Publication date
EP4383046A2 (en) 2024-06-12
US20240184378A1 (en) 2024-06-06
US11983329B1 (en) 2024-05-14
EP4383046A3 (en) 2024-08-07

Similar Documents

Publication Publication Date Title
US11861315B2 (en) Continuous learning for natural-language understanding models for assistant systems
CN114556355A (zh) 抑制助理系统的提醒
CN114930363A (zh) 为助理系统生成主动内容
US20220284904A1 (en) Text Editing Using Voice and Gesture Inputs for Assistant Systems
CN116018791A (zh) 在助手系统中使用单个请求进行多人呼叫
US20220366170A1 (en) Auto-Capture of Interesting Moments by Assistant Systems
US20220374645A1 (en) Task Execution Based on Real-world Text Detection for Assistant Systems
US20220366904A1 (en) Active Listening for Assistant Systems
CN116888661A (zh) 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出
WO2022226244A1 (en) Multi-device mediation for assistant systems
US20240054156A1 (en) Personalized Labeling for User Memory Exploration for Assistant Systems
TW202240461A (zh) 使用輔助系統的語音和手勢輸入之文字編輯
US11983329B1 (en) Detecting head gestures using inertial measurement unit signals
EP4418077A1 (en) Proactively pausing media playing based on ambient motion for assistant systems
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
CN118506776A (zh) 助理系统的基于环境运动的主动暂停媒体播放
CN117396837A (zh) 助理系统的多设备调解
CN117765940A (zh) 为助理系统呈现与语音命令相关联的注意状态
CN117396836A (zh) 由助理系统自动采集有趣时刻
CN117377942A (zh) 助理系统的主动收听
CN117396838A (zh) 助理系统的基于真实世界文本检测的任务执行
CN118522274A (zh) 用于助理系统的对话设计流的交互编辑器
CN116897353A (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