CN116888661A - 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出 - Google Patents

用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出 Download PDF

Info

Publication number
CN116888661A
CN116888661A CN202280015966.5A CN202280015966A CN116888661A CN 116888661 A CN116888661 A CN 116888661A CN 202280015966 A CN202280015966 A CN 202280015966A CN 116888661 A CN116888661 A CN 116888661A
Authority
CN
China
Prior art keywords
latin
user
content items
particular embodiments
readout
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
CN202280015966.5A
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
Priority claimed from PCT/US2022/016706 external-priority patent/WO2022178066A1/en
Publication of CN116888661A publication Critical patent/CN116888661A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/53Processing of non-Latin text
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L2013/083Special characters, e.g. punctuation marks

Abstract

在一个实施例中,一种方法包括:访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;基于解析规则确定通信内容的读出,其中,解析规则基于非拉丁文字内容项的属性指定该读出的格式,并且其中,该读出包括零个或多个拉丁文字文本字符串、和对非拉丁文字内容项的描述;以及向客户端系统发送用于呈现通信内容的读出的音频渲染的指令。

Description

用于辅助系统的包括非拉丁或不可解析内容项的通信内容的 读出
技术领域
本公开总体上涉及网络环境内的数据库和文件管理,并且尤其涉及用于智能辅助系统的硬件和软件。
背景技术
辅助系统可以基于以下项的组合来代表用户提供信息或服务:用户输入、位置感知和从各种在线源访问信息(例如天气状况、交通拥堵、新闻、股票价格、用户日程、零售价格等)的能力。用户输入可以包括(特别是在即时消息收发应用程序或其它应用程序中的)文本(例如,在线聊天)、语音、图像、动作或它们的组合。辅助系统可以基于用户输入来执行礼宾型(concierge-type)服务(例如,预订晚餐、购买活动门票、做出旅行安排)或提供信息。辅助系统还可以基于在线信息和活动来执行管理或数据处理任务,而无需用户发起或交互。可由辅助系统执行的那些任务的示例可以包括日程管理(例如,发送用户由于交通状况而推迟晚餐日期的提示、更新双方的日程、以及改变餐厅预订时间)。该辅助系统可以通过以下的组合来实现:计算设备、应用程序编程接口(application programminginterface,API)、以及用户设备上的大量应用程序。
可包括社交网络网站的社交网络系统可以使其用户(例如,个人或组织)能够与该社交网络系统交互、并通过该社交网络系统彼此交互。社交网络系统可以利用来自用户的输入,在社交网络系统中创建并存储与该用户相关联的用户资料。用户资料可以包括人口统计信息、通信信道信息、和关于用户的个人兴趣的信息。社交网络系统还可以利用来自用户的输入,来创建并存储该用户与社交网络系统的其他用户的关系的记录,以及提供用于促进用户之间或之中的社交互动的服务(例如,资料/新闻馈送帖子、照片共享、活动组织、消息收发、游戏、或广告)。
社交网络系统可以通过一个或多个网络将与其服务相关的内容或消息发送到用户的移动计算设备或其它计算设备。用户还可以在该用户的移动计算设备或其它计算设备上安装软件应用程序,以用于访问社交网络系统内的该用户的用户资料和其它数据。社交网络系统可以生成个性化的一组内容对象(例如,与该用户有联系的其他用户的综合报道的新闻馈送)以显示给用户。
发明内容
在特定实施例中,辅助系统可以帮助用户获取信息或服务。辅助系统可以使用户能够在有状态的和多轮对话中通过各种模态(例如,音频、语音、文本、图像、视频、手势、运动、位置、方位)的用户输入与辅助系统交互,以接收来自辅助系统的辅助。作为示例而非限制,辅助系统可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模态输入、或它们的任意组合。由用户提供的用户输入可以与特定的辅助相关任务相关联,并且可以包括例如用户请求(例如,对信息或动作的执行的口头请求)、和与辅助系统相关联的辅助应用程序的用户交互(例如,通过触摸或手势对用户界面(UI)元素的选择)、或者可由辅助系统检测和理解的任何其它类型的合适的用户输入(例如,由用户的客户端设备检测到的用户移动)。辅助系统可以创建并存储这样的用户资料:该用户资料包括与用户相关联的个人信息和上下文信息。在特定实施例中,辅助系统可以使用自然语言理解(natural-language understanding,NLU)来分析用户输入。该分析可以基于用户的用户资料来进行更个性化和上下文感知的理解。辅助系统可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,辅助系统可以与不同的代理交互,以获取与所解析的实体相关联的信息或服务。辅助系统可以通过使用自然语言生成(natural-languagegeneration,NLG)为用户生成关于这些信息或服务的响应。通过与用户的交互,辅助系统可以使用对话管理技术来管理和推进与用户的对话流。在特定实施例中,辅助系统还可以通过对信息进行概括来辅助用户有效和高效地理解所获取的信息。辅助系统还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具来辅助用户更多地与在线社交网络互动。辅助系统还可以辅助用户管理不同的任务,例如保持对事件的追踪。在特定实施例中,辅助系统可以在没有用户输入的情况下,基于用户资料,在与用户相关的时间主动执行与用户兴趣和偏好相关的任务。在特定实施例中,辅助系统可以检查隐私设置,以确保受制于用户的隐私设置而允许访问用户资料或其他用户信息、并执行不同的任务。
在特定实施例中,辅助系统可以通过基于客户端侧过程和服务器侧过程这两者而构建混合架构来辅助用户。客户端侧过程和服务器侧过程可以是用于处理用户输入和向用户提供辅助的两个并行工作流。在特定实施例中,客户端侧过程可以在与用户相关联的客户端系统上本地执行。相比之下,服务器侧过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统上的仲裁器可以协调接收用户输入(例如,音频信号),确定是使用客户端侧过程、服务器侧过程、还是这两者来响应用户输入,并分析来自各个过程的处理结果。仲裁器可以指示客户端侧或服务器侧上的代理,基于前述分析来执行与用户输入相关联的任务。执行结果可以进一步被渲染为客户端系统的输出。通过利用客户端侧过程和服务器侧过程这两者,辅助系统可以有效地辅助用户优化使用计算资源,同时保护用户隐私并增强安全性。
在特定实施例中,当通信内容(例如,消息)包括可能难以转换为仅音频渲染的非拉丁文字内容项(例如,表情、缩写词、符号、附件等)时,辅助系统可以向用户提供对该通信内容的音频读出。在特定实施例中,这些非拉丁文字内容项中的一些非拉丁文字内容项可能是辅助系统可解析的(例如,表情和缩写词),而这些非拉丁文字内容项中的一些非拉丁文字内容项可能是辅助系统不可解析的(例如,附件)。当将非拉丁文字内容项转换为仅音频渲染时,辅助系统可以具有这样的技术优势:通过向用户提供通信内容的完整上下文来维护通信内容的完整性和情感的完整性,同时保持读出的对话性并且最小化用于理解读出的认知负荷。此外,辅助系统可以基于不同的解析规则以各种方式处理读出。这些解析规则可以取决于拉丁文字文本字符串和非拉丁文字内容项(例如,表情、图形交换格式(gif)、附件等)的数量或比例、以及它们的组合。例如,当读出来自马特(Matt)的消息“嗨!”时,辅助系统可以将该消息读出为“Matt says'Hi'with three smiley faceemoji and 2other emoji(马特说‘嗨!’并用了三个笑脸表情和2个其它表情)”。辅助系统可以在服务器侧或客户端侧处理自然语言读出。此外,当在支持音频输出和视觉输出这两者的客户端系统(例如,智能手表)上读出通信内容时,辅助系统可以将对通信内容的渲染划分为音频读出和客户端系统的屏幕上的视觉分量,其中可以在该屏幕上显示非拉丁文字内容项中的一些或所有非拉丁文字内容项。虽然本公开描述了由特定系统以特定方式读出特定通信内容,但本公开考虑了由任何合适的系统以任何合适的方式读出任何合适的通信内容。
在特定实施例中,辅助系统可以访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项。然后,辅助系统可以基于一个或多个解析规则来确定通信内容的读出。在特定实施例中,一个或多个解析规则可以基于非拉丁文字内容项的一个或多个属性来指定读出的一种或多种格式。该读出可以包括零个或多个拉丁文字文本字符串、以及对一个或多个非拉丁文字内容项的描述。在特定实施例中,辅助系统还可以向客户端系统发送用于呈现通信内容的读出的音频渲染的指令。
根据一些实施例,提供了一种方法,该方法包括:由一个或多个计算系统:访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串和一个或多个非拉丁文字内容项;基于一个或多个解析规则来确定通信内容的读出,其中,该一个或多个解析规则基于该一个或多个非拉丁文字内容项的一个或多个属性指定了读出的一种或多种格式,并且其中,该读出包括零个或多个拉丁文字文本字符串、以及对该一个或多个非拉丁文字内容项的描述;以及向客户端系统发送用于呈现通信内容的读出的音频渲染的指令。
在一些实施例中,该方法还可以包括:接收来自发送者的通信内容,其中,该通信内容指向一个或多个接收者,并且其中,客户端系统与该一个或多个接收者中的一个接收者相关联。
在一些实施例中,发送者可以与非英语拉丁名相关联,其中,读出还包括与该发送者相关联的非英语拉丁名的发音,并且其中,该发音是基于与该非英语拉丁名相关联的英语或非英语中的一者或多者。
在一些实施例中,发送者可以与非拉丁文字语言名相关联,并且其中,读出还包括对与该发送者相关联的非拉丁文字语言名的概括。
在一些实施例中,一个或多个非拉丁文字内容项可以包括以下项中的一者或多者:非拉丁文字语言文本字符串、表情、符号、图像、视频、图形交换格式(graphicsinterchange format,GIF)、标签、语音片段、音频片段、链接、命名实体的提及、特定于环境的反应、电子支付、联系人、位置、文件、帖子、主题标签、首字母缩略词、缩写词、或基于符号的表情。
在一些实施例中,该一种或多种格式可以包括:分别读出该一个或多个非拉丁文字内容项中的一个或多个;概括该一个或多个非拉丁文字内容项中的一个或多个;当该一个或多个非拉丁文字内容项的总数超过阈值数量时,分别读出该一个或多个非拉丁文字内容项的第一子集;或当该一个或多个非拉丁文字内容项的总数超过阈值数量时,概括该一个或多个非拉丁文字内容项的第二子集。
在一些实施例中,客户端系统可以包括一个或多个渲染设备、和一个或多个伴随设备,并且其中,该一种或多种格式包括在一个或多个目标设备处渲染该读出,该一个或多个目标设备是从该一个或多个渲染设备、和该一个或多个伴随设备中选择的。
在一些实施例中,对该一个或多个非拉丁文字内容项的描述包括以下项中的一者或多者:针对该一个或多个非拉丁文字内容项中的一个或多个中的每个的分别读出、或者针对该一个或多个非拉丁文字内容项中的一个或多个的概括。
在一些实施例中,该一个或多个属性可以包括以下项中的一者或多者:对该一个或多个非拉丁文字内容项的阈值要求、或者与该一个或多个非拉丁文字内容项中的每个相关联的描述难度。
在一些实施例中,该一个或多个属性可以包括对该一个或多个非拉丁文字内容项的阈值要求,并且其中,该一种或多种格式包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足该阈值要求的相应第一索引相关联;或概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足该阈值要求的相应第二索引相关联。
在一些实施例中,该一个或多个属性可以包括与该一个或多个非拉丁文字内容项中的每个相关联的描述难度,并且其中,该一种或多种格式包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足难度要求的相应描述难度相关联;或概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足该难度要求的相应描述难度相关联。
在一些实施例中,该一个或多个属性可以包括:对该一个或多个非拉丁文字内容项的阈值要求、以及与该一个或多个非拉丁文字内容项中的每个相关联的描述难度,并且其中,该一种或多种格式包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足阈值要求的相应第一索引和满足难度要求的相应描述难度相关联;或概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足该阈值要求的相应第二索引或不满足该难度要求的相应描述难度相关联。
在一些实施例中,该一个或多个非拉丁文字内容项可以包括一个或多个非英语拉丁文字文本字符串,其中,对该一个或多个非英语拉丁文字文本字符串的描述包括针对该非英语拉丁文字内容项中的一个或多个中的每个的分别读出,其中,该分别读出是基于与该一个或多个非英语拉丁文字文本字符串相关联的英语或非英语中的一者或多者。
在一些实施例中,该一个或多个非拉丁文字内容项可以包括一个或多个非拉丁文字文本字符串,并且其中,该一个或多个属性包括通信内容中该一个或多个非拉丁文字文本字符串占总文字文本字符串的百分比。
在一些实施例中,该百分比可以小于阈值百分比,并且其中,该读出包括零个或多个拉丁文字文本字符串、以及对该一个或多个非拉丁文字文本字符串的概括。
在一些实施例中,该百分比可以不小于阈值百分比,并且其中,该读出包括零个拉丁文字文本字符串、和对通信内容的概括。
在一些实施例中,该一个或多个非拉丁文字内容项可以包括一个或多个表情或符号,其中,对该一个或多个表情或符号的描述包括针对该一个或多个表情或符号中的一个或多个的分别读出,其中,该分别读出是基于与对应表情或符号相关联的统一码描述。
在一些实施例中,该一个或多个非拉丁文字内容项可以包括一个或多个联系人,并且其中,对该一个或多个联系人的描述包括对该一个或多个联系人中的一个或多个的对应联系人名的分别读出。
根据另一些实施例,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,该软件在被执行时能够操作以:访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;基于一个或多个解析规则来确定该通信内容的读出,其中,该一个或多个解析规则基于该一个或多个非拉丁文字内容项的一个或多个属性指定了该读出的一种或多种格式,并且其中,该读出包括零个或多个拉丁文字文本字符串、以及对该一个或多个非拉丁文字内容项的描述;以及向客户端系统发送用于呈现该通信内容的读出的音频渲染的指令。
根据另一些实施例,提供了一种系统,该系统包括:一个或多个处理器;以及非暂态存储器,该非暂态存储器被耦接到该一个或多个处理器,该非暂态存储器包括能够被该一个或多个处理器执行的指令,该一个或多个处理器在执行指令时能够操作以:访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;基于一个或多个解析规则来确定该通信内容的读出,其中,该一个或多个解析规则基于该一个或多个非拉丁文字内容项的一个或多个属性指定了该读出的一种或多种格式,并且其中,该读出包括零个或多个拉丁文字文本字符串、以及对该一个或多个非拉丁文字内容项的描述;以及向客户端系统发送用于呈现该通信内容的读出的音频渲染的指令。
对于读出包括非拉丁文字内容项的通信内容,存在某些技术挑战。一个技术挑战可能包括有效地完整读出通信内容。由本文中所公开的实施例提出的用于解决该挑战的解决方案可以是确定如下内容:是否提供对非拉丁文字内容项的转换,或者是否基于对通信内容中的非拉丁文字内容项的数量进行量化阈值化来将这些内容项视为不可解读的。另一技术挑战可包括确定是分别读出这些非拉丁文字内容项还是对它们进行概括。由本文中所公开的实施例提出的用于解决该挑战的解决方案可以是分析与这些非拉丁文字内容项相关联的属性,这些属性包括以下项中的一者或多者:对非拉丁文字内容项的阈值要求、或与这些非拉丁文字内容项中的每个相关联的描述难度,因为这些属性可以为自然地读出通信内容提供有效的标准,并为通信内容的接收者提供足够的信息提示。
本文中所公开的某些实施例可以提供一个或多个技术优势。这些实施例的技术优势可以包括:通过向用户提供通信内容的完整上下文来维护通信内容的完整性和情感的完整性,同时保持读出的对话性并且最小化用于理解读出的认知负荷。本文中所公开的某些实施例可以不提供上述技术优势、提供上述技术优势中的一些或全部技术优势。基于本公开的附图、说明书和权利要求书,一个或多个其它技术优势对于本领域技术人员来说可能是显而易见的。
本文中所公开的实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文中所公开的实施例中的部件、元素、特征、功能、操作或步骤中的全部、一些、或者不包括本文中所公开的实施例中的部件、元素、特征、功能、操作或步骤。具体地,在所附权利要求中公开了根据本发明的实施例,所附权利要求针对方法、存储介质、系统和计算机程序产品,其中,在一个权利要求类别(例如,方法)中提及的任何特征也可以在另一权利要求类别(例如,系统)中被主张。所附权利要求中的从属关系或回引是仅出于形式上的原因而被选择。然而,因对任何先前的权利要求(尤其是多项从属)的故意回引而产生的任何主题也可以被主张,使得无论在所附权利要求中选择的从属关系如何,权利要求及其特征的任何组合都被公开且可以被主张。可被主张的主题不仅包括在所附权利要求中所陈述的特征的组合,还包括权利要求中的特征的任何其它组合,其中,在权利要求中提及的每个特征可以与权利要求中的任何其它特征或其它特征的组合相结合。此外,本文中所描述或所描绘的实施例和特征中的任何实施例和特征可以在单独的权利要求中被主张、和/或以在与本文中所描述或所描绘的任何实施例或特征的任何组合形式或以与所附权利要求的特征中的任何特征的任何组合形式被主张。
附图说明
图1示出了与辅助系统相关联的示例网络环境。
图2示出了辅助系统的示例架构。
图3示出了辅助系统的示例流程图。
图4示出了处理用户输入的以任务为中心的示例流程图。
图5示出了包括表情的示例通信内容。
图6A示出了包括两个表情的通信内容的示例读出。
图6B示出了包括四个表情的通信内容的示例读出。
图6C示出了包括大量表情的通信内容的示例读出。
图7示出了包括非拉丁文字文本字符串的示例通信内容。
图8示出了包括非拉丁文字文本字符串的通信内容的示例读出。
图9示出了用于读出包括非拉丁文字内容项的通信内容的示例方法。
图10示出了示例计算机系统。
具体实施方式
系统概述
图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)、无线局域网(wireless LAN,WLAN)、广域网(wide area network,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitanarea network,MAN)、互联网的一部分、公共交换电话网(Public Switched TelephoneNetwork,PSTN)的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一网络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 Interoperability forMicrowave Access,WiMAX))链路、或一条或多条光学(例如,同步光纤网络(SynchronousOptical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在特定实施例中,一条或多条链路150各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150、或两条或更多条这些链路150的组合。在整个网络环境100中,链路150不必都是相同的。在一个或多个方面,一条或多条第一链路150可以不同于一条或多条第二链路150。
在特定实施例中,客户端系统130可以是任何合适的电子设备,该电子设备包括硬件、软件、或嵌入式逻辑部件、或两个或更多个这些部件的组合,并且能够执行由客户端系统130实现或支持的功能。作为示例而非限制,客户端系统130可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位系统(GPS)设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持式电子设备、蜂窝电话、智能手机、智能扬声器、智能手表、智能眼镜、增强现实(augmented-reality,AR)智能眼镜、虚拟现实(virtual reality,VR)头戴式设备(headset)、其它合适的电子设备、或它们的任何合适的组合。在特定实施例中,客户端系统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可以包括网页浏览器(web browser)132,并且可以具有一个或多个附件、插件或其它扩展。客户端系统130处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或将网页浏览器132引导到特定服务器(例如,服务器162、或与第三方系统170相关联的服务器)的其它地址,并且网页浏览器132可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并向服务器传送该HTTP请求。服务器可以接受该HTTP请求,并且响应于该HTTP请求向客户端系统130传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端系统130可以基于来自服务器的HTML文件来渲染网页界面(例如,网页),以用于呈现给用户。本公开考虑了任何合适的源文件。作为示例而非限制,根据特定需要,可以根据HTML文件、可扩展超文本标记语言(Extensible Hyper Text Markup Language,XHTML)文件或可扩展标记语言(ExtensibleMarkup Language,XML)文件来渲染网页界面。这些界面还可以执行脚本、以及标记语言和脚本的组合等。在本文中,在适当的情况下,对网页界面的引用包含一个或多个对应的源文件(浏览器可以使用该一个或多个对应的源文件来渲染网页界面),并且反之亦然。
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用程序134。客户端系统130处的用户可以使用社交网络应用程序134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用程序134来与用户的社交关系(例如,朋友、关注者、关注的账号、联系人等)通信。客户端系统130处的用户还可以使用社交网络应用程序134与在线社交网络上的多个内容对象(例如,帖子、新闻文章、短暂内容等)交互。作为示例而非限制,用户可以使用社交网络应用程序134浏览热门话题和突发新闻。
在特定实施例中,客户端系统130可以包括辅助应用程序。客户端系统130处的用户可以使用辅助应用程序136与辅助系统140交互。在特定实施例中,辅助应用程序136可以包括辅助xbot功能,作为用于与客户端系统130的用户交互的前端接口,该辅助xbot功能包括接收用户输入并提供输出。在特定实施例中,辅助应用程序136可以包括独立应用程序。在特定实施例中,辅助应用程序136可以被集成到社交网络应用程序134或另一合适的应用程序(例如,消息收发应用程序)中。在特定实施例中,辅助应用程序136还可以被集成到客户端系统130、辅助硬件设备、或任何其它合适的硬件设备中。在特定实施例中,辅助应用程序136还可以是辅助系统140的一部分。在特定实施例中,辅助应用程序136可以通过网页浏览器132来访问。在特定实施例中,用户可以通过以下方式来与辅助系统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相关联的唤醒词可以是语音短语“嘿辅助(hey assistant)”。在该示例中,当客户端系统130上的系统音频API在所监测的音频数据中检测到语音短语“嘿辅助”时,辅助系统140可以被激活以用于与用户的后续交互。在替代实施例中,可以实现类似的检测技术,以使用与辅助系统140相关联的特定非音频用户输入来激活辅助系统140。例如,非音频用户输入可以是由客户端系统130的低功率传感器(例如,摄像头)检测到的特定视觉信号。作为示例而非限制,视觉信号可以是静态图像(例如,条形码、快速响应(QR)码、通用产品代码(universal productcode,UPC))、用户的位置(例如,用户对客户端系统130的注视)、用户动作(例如,用户指向一对象)、或任何其它合适的视觉信号。
在特定实施例中,客户端系统130可以包括渲染设备137,并且可选地包括伴随设备138。渲染设备137可以被配置为向用户渲染由辅助系统140生成的输出。伴随设备138可以被配置为在特定情况下(例如,当渲染设备137不能执行与特定任务(例如,与辅助系统140的通信)相关联的计算时)在伴随设备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可以通过一个或多个无线通信协议(例如,蓝牙(Bluetooth))彼此相关联(即,配对)。
下面的示例工作流示出了渲染设备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可以是关系型数据库、列式数据库、关联数据库、或其它合适的数据库。虽然本公开描述或示出了特定类型的数据库,但本公开考虑了任何合适类型的数据库。特定实施例可以提供这样的接口:所述接口使客户端系统130、社交网络系统160、辅助系统140、或第三方系统170能够对存储在数据存储库164中的信息进行管理、检索、修改、添加或删除。
在特定实施例中,社交网络系统160可以在一个或多个数据存储库164中存储一个或多个社交图谱。在特定实施例中,社交图谱可以包括多个节点——这些节点可以包括多个用户节点(每个用户节点对应于一特定用户)或多个概念节点(每个概念节点对应于一特定概念)——以及连接这些节点的多条边。社交网络系统160可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以通过社交网络系统160加入在线社交网络,并且随后可以添加与社交网络系统160中的他们想要联系到的多个其他用户的联系(例如,关系)。在本文中,术语“朋友”可以指社交网络系统160的、用户通过社交网络系统160已经与之形成了联系、关联或关系的任何其他用户。
在特定实施例中,社交网络系统160可以向用户提供由社交网络系统160支持的对各种类型的项目或对象采取动作的能力。作为示例而非限制,这些项目和对象可以包括社交网络系统160的用户可能所属的群组或社交网络、用户可能感兴趣的活动或日历条目、用户可使用的基于计算机的应用程序、允许用户通过服务购买或销售项目的交易、与用户可执行的广告的交互、或其它合适的项目或对象。用户可以与如下的任何事物交互:所述事物能够在社交网络系统160中表示、或由第三方系统170的外部系统表示,该外部系统与社交网络系统160分开并且通过网络110耦接到社交网络系统160。
在特定实施例中,社交网络系统160可能能够链接各种实体。作为示例而非限制,社交网络系统160可以使用户能够彼此交互、以及接收来自第三方系统170或其它实体的内容,或者允许用户通过应用程序编程接口(API)或其它通信信道与这些实体交互。
在特定实施例中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个网页服务、一个或多个内容源、一个或多个网络、或者例如服务器可与之通信的任何其它合适的部件。第三方系统170可以由与运行社交网络系统160的实体不同的实体运行。然而,在特定实施例中,社交网络系统160和第三方系统170可以彼此相结合地运行,以向社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或主干网,其它系统(例如,第三方系统170)可以使用该平台或主干网来向互联网上的用户提供社交网络服务和功能。
在特定实施例中,第三方系统170可以包括第三方内容对象提供者。第三方内容对象提供者可以包括内容对象的一个或多个源,这些内容对象可被传送到客户端系统130。作为示例而非限制,内容对象可以包括与用户感兴趣的事物或活动有关的信息,例如,电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其它合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券、或其它合适的激励对象。在特定实施例中,第三方内容提供者可以使用一个或多个第三方代理来提供内容对象和/或服务。第三方代理可以是在第三方系统170上被托管和执行的实现。
在特定实施例中,社交网络系统160还包括用户生成的内容对象,用户生成的内容对象可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可添加、上传、发送、或“发布”到社交网络系统160的任何内容。作为示例而非限制,用户将帖子从客户端系统130传送到社交网络系统160。帖子可以包括诸如状态更新或其它文本数据等数据、位置信息、照片、视频、链接、音乐、或其它类似数据或媒体。内容还可以由第三方通过“通信信道”(例如,新闻馈送或流)被添加到社交网络系统160。
在特定实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志和数据存储库。在特定实施例中,社交网络系统160可以包括以下项中的一者或多者:网页服务器、动作日志记录器、API请求服务器、相关性和排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象公开日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块、用户界面模块、用户资料存储库、联系存储库、第三方内容存储库、或位置存储库。社交网络系统160还可以包括合适的部件,例如网络接口、安全机制、负载均衡器、故障转移服务器、管理和网络操作控制台、其它合适的部件、或它们的任何合适的组合。在特定实施例中,社交网络系统160可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料可以包括例如传记信息、人口统计信息、行为信息、社交信息、或其它类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、姻亲关系、或位置)。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于某品牌的鞋子的文章,则该类别可以是该品牌,或者可以是“鞋子”或“服饰”的通用类别。联系存储库可被用于存储关于用户的联系信息。联系信息可以指示如下用户:所述用户具有相似或共同的工作经历、群组成员资格、爱好、教育历史,或者以任何方式相关或共享共同的属性。联系信息还可以包括不同用户与内容(内部和外部两者)之间的用户定义的联系。网页服务器可以用于通过网络110将社交网络系统160链接到一个或多个客户端系统130或者一个或多个第三方系统170。网页服务器可以包括邮件服务器、或用于在社交网络系统160与一个或多个客户端系统130之间接收和路由消息的其它消息收发功能。API请求服务器可以允许例如辅助系统140或第三方系统170通过调用一个或多个API来从社交网络系统160访问信息。动作日志记录器可以用于接收来自网页服务器的与用户启动或关闭社交网络系统160的动作有关的通信。结合动作日志,可以维护用户公开给第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统130提供关于内容对象的信息。可以将信息作为通知推送到客户端系统130,或者可以响应于包括从客户端系统130接收到的用户请求的用户输入而从客户端系统130提取信息。授权服务器可以用于实施社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置可以确定可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置合适的隐私设置来选择让或选择不让:社交网络系统160记录他们的动作、或与其它系统(例如,第三方系统170)共享他们的动作。第三方内容对象存储库可以用于存储从第三方(例如,第三方系统170)接收到的内容对象。位置存储库可以用于存储从客户端系统130接收到的与用户相关联的位置信息。广告定价模块可以对社交信息、当前时间、位置信息或其它合适的信息进行组合,以便以通知的形式向用户提供相关广告。
辅助系统
图2示出了辅助系统140的示例架构200。在特定实施例中,辅助系统140可以辅助用户获取信息或服务。辅助系统140可以使用户能够通过有状态的和多轮的对话中的各种模态(例如,音频、语音、文本、视觉、图像、视频、手势、动作、活动、位置、方位)的用户输入与辅助系统140交互,以接收来自辅助系统140的辅助。作为示例而非限制,用户输入可以包括基于用户语音的音频输入(例如,口头命令),该音频输入可以由客户端系统130上的系统音频API(应用程序编程接口)来处理。系统音频API可以执行这样的技术:所述技术包括回声消除、噪声去除、波束成形、自用户语音激活、说话者识别、语音活动检测(voice activitydetection,VAD)、和/或任何其它合适的声学技术,以便生成容易由辅助系统140处理的音频数据。在特定实施例中,辅助系统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可以委托与辅助系统140相关联的服务器执行对话、代理和自然语言生成(NLG)进程。
在特定实施例中,对运行模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务、和/或一个或多个附加因素。作为示例而非限制,如上所述,一个因素可以是客户端系统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处确定是在第一运行模式(即,设备上模式)、在第二运行模式(即,云模式)、还是在第三运行模式(即,混合模式)下开始处理用户输入。例如,在决策点(D0)205处,如果客户端系统130没有被连接到网络110(即,当客户端系统130离线时),如果一个或多个隐私约束明确要求设备上处理(例如,向多个用户之间的私人通话添加或删除另一个人),或者如果用户输入与不需要或不受益于服务器侧处理的任务(例如,设置提示或呼叫另一用户)相关联,则设备上协调器206可以选择第一运行模式(即,设备上模式)。作为另一示例,在决策点(D0)205处,如果客户端系统130需要节省电池电量(例如,当客户端系统130具有最小可用电池电量或用户已经指示了希望节省客户端系统130的电池电量时)或者需要限制对计算资源的附加利用时(例如,当在客户端设备130上运行的其它过程需要高CPU利用(例如,短消息服务(SMS)消息收发应用程序)时),则设备上协调器206可以选择第二运行模式(即,云模式)或第三运行模式(即,混合模式)。
在特定实施例中,如果设备上协调器206在决策点(D0)205处确定应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)来处理用户输入,则客户端侧过程可以继续进行,如图2中所示。作为示例而非限制,如果用户输入包括语音数据,则可以在客户端系统130上的本地自动语音识别(ASR)模块208a处接收该语音数据。ASR模块208a可以允许用户口述并将语音转录为书面文本,将文件合成为音频流,或者发出由系统像这样来识别的命令。
在特定实施例中,可以将ASR模块208a的输出发送到本地自然语言理解(NLU)模块210a。NLU模块210a可以执行命名实体解析(Named Entity Resolution,NER),或者命名实体解析可以由实体解析模块212a来执行,如下所述。在特定实施例中,意图(intent)、槽(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可以选择第三运行模式(即,混合模式)来处理与消息收发请求相关联的用户输入。作为又一示例,在决策点(D1)215处,如果正在被处理的任务需要访问未存储在客户端系统130上的社交图谱、知识图谱或概念图谱,则设备上协调器206可以选择第二运行模式(即,云模式)或第三运行模式(即,混合模式)。替代地,如果在客户端系统130上存在信息图谱(该信息图谱包括用于任务的必需信息)的充分版本(例如,知识图谱的小版本和/或自举版本),则设备上协调器206可以替代地选择第一运行模式(即,设备上模式)。
在特定实施例中,如果设备上协调器206在决策点(D1)215处确定处理应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)继续进行,则客户端侧过程可以继续进行,如图2中所示。作为示例而非限制,可以将来自实体解析模块212a的输出发送到设备上对话管理器216a。在特定实施例中,设备上对话管理器216a可以包括对话状态追踪器218a和动作选择器222a。设备上对话管理器216a可以具有复杂的对话逻辑和产品相关的业务逻辑,以管理用户与辅助系统140之间的对话的对话状态和流。设备上对话管理器216a可以包括用于端到端集成和多轮支持(例如,确认、消歧)的全部功能。设备上对话管理器216a在如下的计算限制和资源方面还可以是轻量级的:所述计算限制和资源包括存储器、计算(CPU)和二进制大小约束。设备上对话管理器216a还可以是可扩展的,以改善开发者体验。在特定实施例中,设备上对话管理器216a可以例如通过以下方式来使辅助系统140受益:提供离线支持来减少网络连接性问题(例如,不稳定或不可用的网络连接),使用客户端侧过程来防止隐私敏感信息被传送出客户端系统130,以及在高时延敏感场景中提供稳定的用户体验。
在特定实施例中,设备上对话管理器216a还可以进行错误触发减少。对错误触发减少的实现可以检测并防止根据用户输入的、也将会调用辅助系统140的错误触发(例如,意外唤醒词),并且可以进一步防止辅助系统140基于错误触发来生成数据记录,这些数据记录可能是不准确的和/或可能受制于隐私约束。作为示例而非限制,如果用户处于语音通话中,则用户在语音通话期间的对话可以被认为是私人的,并且错误触发减少可以将对唤醒词的检测限制为由用户的客户端系统130本地接收到的音频用户输入。在特定实施例中,设备上对话管理器216a可以基于废话(nonsense)检测器来实现错误触发减少。如果废话检测器以高置信度确定所接收到的唤醒词在从用户接收到唤醒词的时间点在逻辑上和/或上下文是不合理的,则设备上对话管理器216a可以确定用户不想要调用辅助系统140。
在特定实施例中,由于客户端系统130的计算能力有限,因此设备上对话管理器216a可以基于为客户端系统130特别定制的学习算法来进行设备上学习。作为示例而非限制,联合学习技术可以由设备上对话管理器216a来实现。联合学习是一特定类别的分布式机器学习技术,该技术可以使用端设备(例如,移动电话)上存储的分散化数据来训练机器学习模型。在特定实施例中,设备上对话管理器216a可以使用联合用户表示学习模型来扩展现有的神经网络个性化技术,以实现设备上对话管理器216a的联合学习。联合用户表示学习可以通过学习任务特定的用户表示(即,嵌入(Embedding))和/或通过使模型权重个性化,来使联合学习模型个性化。联合用户表示学习是简单的、可扩展的、隐私保护的和资源高效的。联合用户表示学习可以将模型参数分为联合参数和隐私参数。隐私参数(例如,私有用户嵌入)可以在客户端系统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头戴式设备)的不同实施方式。在特定实施例中,可以由单个代理228a在内部处理多个设备特定的实施方式(例如,对客户端系统130或客户端系统130上的消息收发应用程序的实时调用)。替代地,设备特定的实施方式可以由与多个域相关联的多个代理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。然后,仲裁器226可以在客户端侧结果和服务器侧结果之间进行选择,以确定要提供给用户的最终结果。在特定实施例中,在这些结果之间做出决定的逻辑可以取决于特定用例。
在特定实施例中,本地的仲裁器226a可以基于最终结果生成响应并将该响应发送到渲染输出模块232。渲染输出模块232可以确定如何以适合于客户端系统130的方式来渲染输出。作为示例而非限制,对于VR头戴式设备或AR智能眼镜,渲染输出模块232可以确定使用基于视觉的模态(例如,图像或视频片段)来渲染输出,该基于视觉的模态可以通过VR头戴式设备或AR智能眼镜显示。作为另一示例,该响应可以被渲染为如下音频信号:所述音频信号可以由用户通过VR头戴式设备或AR智能眼镜来播放。作为又一示例,该响应可以被渲染为增强现实数据以用于增强用户体验。
在特定实施例中,除了确定用于处理用户输入的运行模式之外,设备上协调器206还可以确定是在渲染设备137上处理用户输入、在伴随设备138处理的用户输入、还是在远程服务器上处理用户请求。渲染设备137和/或伴随设备138均可以以与上面所公开的方式类似的方式使用辅助堆栈(stack)来处理用户输入。作为示例而非限制,设备上协调器206可以确定该处理的一部分应在渲染设备137上完成,该处理的一部分应在伴随设备138上完成,并且剩余处理应在远程服务器上完成。
在特定实施例中,辅助系统140可以具有各种能力,包括音频认知、视觉认知、信号情报、推理和记忆。在特定实施例中,音频认知的能力可以使辅助系统140能够例如:理解与不同语言中的各个域相关联的用户输入,理解并概括会话,针对复杂命令执行设备上音频认知,通过语音识别用户,从对话和该对话的自动标记部分提取主题,实现无唤醒词的音频交互,从环境噪声和对话中过滤和放大用户语音,和/或理解在多个客户端系统130在附近的情况下用户正在与哪个客户端系统130对话。
在特定实施例中,视觉认知的能力可以使辅助系统140能够例如:执行面部检测和追踪,识别用户,在不同角度识别对主要城市区域感兴趣的人,通过现有机器学习模型和一次性学习的组合来识别世界上的感兴趣对象,识别感兴趣的瞬间并自动捕获它,在不同时间片段上的多个视觉帧上实现语义理解,为人物识别、地点识别或对象识别中的附加能力提供平台支持,识别全套设置和包括个性化位置的微位置,识别复杂活动,识别用户控制客户端系统130的复杂手势,(例如,通过运动、捕获角度、分辨率)处理来自以自我为中心的摄像头(egocentric camera)的图像/视频,实现与具有较低分辨率的图像有关的类似准确度和速度水平、进行地点和对象的一次性注册和识别,和/或在客户端系统130上执行视觉识别。
在特定实施例中,辅助系统140可以利用计算机视觉技术来实现视觉认知。除了计算机视觉技术之外,辅助系统140还可以探索可补充这些技术以扩展对对象的识别的选项。在特定实施例中,辅助系统140可以使用补充信号,例如,对象的标签的光学字符识别(optical character recognition,OCR)、用于地点识别的GPS信号、和/或来自用户的客户端系统130的用于识别该用户的信号。在特定实施例中,辅助系统140可以执行通用场景识别(例如,家庭空间、工作空间、公共空间)以设置针对用户的上下文,并缩小计算机视觉搜索空间以识别可能的对象或人。在特定实施例中,辅助系统140可以引导用户训练辅助系统140。例如,可以使用众包(crowdsourcing)来让用户标记对象并帮助辅助系统140随着时间的推移而识别更多对象。作为另一示例,当使用辅助系统140时,用户可以将其个人对象注册为初始设置的一部分。辅助系统140还可以允许用户为他们与之交互的对象提供正信号/负信号,以训练和改善他们的个性化模型。
在特定实施例中,信号情报的能力可以使辅助系统140能够例如:确定用户位置,理解日期/时间,确定家庭位置,理解用户的日程和未来想去的地点,整合更丰富的声音理解以仅通过声音来识别设置/上下文,和/或构建在运行时可根据用户的个人例程进行个性化的信号情报模型。
在特定实施例中,推理能力可以使辅助系统140能够例如:在未来的任何时间点提取先前的对话线程,合成所有信号以理解微上下文和个性化上下文,根据用户的历史行为学习交互模式和偏好并准确地建议他们可能重视(value)的交互,基于微上下文理解生成高度预测性的主动建议,理解用户可能想要在一天中的什么时间观看什么内容、和/或理解场景中的变化和该变化可能如何影响用户想要的内容。
在特定实施例中,记忆能力可以使辅助系统140能够例如:记住用户先前访问过或与之交互过的社交联系,随意地写入存储器和查询存储器(即,开放口述和自动标签),基于先前的交互和长期学习来提取更丰富的偏好,记住用户的生活史,从以自我为中心的数据流和自动目录中提取丰富的信息,和/或以结构化形式向存储器写入以形成丰富的短期记忆、片段记忆和长期记忆。
图3示出了辅助系统140的示例流程图300。在特定实施例中,辅助服务模块305一经接收到用户输入就可以访问请求管理器310。在特定实施例中,请求管理器310可以包括上下文提取器312和对话型理解(conversational understanding,CU)对象生成器(CU对象生成器)314。上下文提取器312可以提取与用户输入相关联的上下文信息。上下文提取器312还可以基于在客户端系统130上执行的辅助应用程序136来更新上下文信息。作为示例而非限制,对上下文信息的更新可以包括在客户端系统130上显示内容项。作为另一示例而非限制,对上下文信息的更新可以包括是否在客户端系统130上设置提示。作为另一示例而非限制,对上下文信息的更新可以包括是否正在客户端系统130上播放歌曲。CU对象生成器314可以生成与用户输入相关的特定CU对象。CU对象可以包括与用户输入相关联的对话会话数据和特征,该对话会话数据和特征可以与辅助系统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模块210a可以将用户输入分类为预定义分类的成员。例如,用户输入可以是“Play Beethoven’s 5th(播放贝多芬第五曲)”,并且NLU模块210a可以将该输入分类为具有意图[IN:play_music]。在特定实施例中,多个域共同的意图可以由元意图分类器336a来处理。作为示例而非限制,元意图分类器336a可以基于如下的机器学习模型:该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定的预定义元意图相关联的概率。然后,NLU模块210可以使用元槽标注器338a来为自元意图分类器336a的分类结果标注一个或多个元槽。槽可以是与用户输入内表示基本语义实体的字符串相对应的命名子串。例如,“披萨(pizza)”的槽可以是[SL:dish]([SL:食物])。在特定实施例中,一组有效或预期的命名槽可以以被分类的意图为条件。作为示例而非限制,对于意图[IN:play_music]([IN:播放_音乐]),有效的槽可以是[SL:song_name]([SL:歌曲_名])。在特定实施例中,元槽标注器338a可以标记诸如对项的指代(例如,第一)、槽的类型、槽的值等通用槽。在特定实施例中,NLU模块210可以使用意图分类器336b来对域分类/选择结果进行处理。意图分类器336b可以确定与用户输入相关联的用户意图。在特定实施例中,对于每个域,可以存在一个意图分类器336b来确定给定域中最可能的意图。作为示例而非限制,意图分类器336b可以基于如下的机器学习模型:该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定的预定义意图相关联的概率。然后,NLU模块210可以使用槽标注器338b来对与用户输入相关联的一个或多个槽进行标注。在特定实施例中,槽标注器338b可以为用户输入的n元语法(n-gram)标注一个或多个槽。作为示例而非限制,用户输入可以包括“change 500dollars in my account to Japanese yen(将我的帐户中的500美元兑换为日元)”。意图分类器336b可以将用户输入作为输入并将该输入表示为向量。然后,意图分类器336b可以基于表示用户输入的向量与表示不同预定义意图的向量之间的向量比较,来计算用户输入与不同的预定义意图相关联的概率。以类似的方式,槽标注器338b可以将用户输入作为输入并且将每个词语表示为向量。然后,槽标注器338b可以基于表示词语的向量与表示不同的预定义槽的向量之间的向量比较,来计算每个词语与不同的预定义槽相关联的概率。用户的意图可以被分类为“changing money(兑换货币)”。用户输入的槽可以包括“500”、“dollars(美元)”、“account(账户)”和“Japanese yen(日元)”。用户的元意图可以被分类为“financial service(金融服务)”。元槽可以包括“finance(金融)”。
在特定实施例中,自然语言理解(NLU)模块210还可以从社交图谱、知识图谱或概念图谱中的一者或多者中提取信息,并且可以检索本地存储在客户端系统130上的用户资料。NLU模块210在分析用户输入时,还可以考虑上下文信息。NLU模块210还可以通过以下方式来处理来自这些不同源的信息:对信息进行识别和整合,对用户输入的n元语法进行标注,基于所整合的信息利用置信度得分对n元语法进行排序,以及将经排序的n元语法表示为可由NLU模块210用于理解用户输入的特征。在特定实施例中,NLU模块210可以以个性化的和上下文感知的方式,从用户输入中识别域、意图或槽中的一者或多者。作为示例而非限制,用户输入可以包括“show me how to get to the coffee shop(告诉我怎么去咖啡店)”。NLU模块210可以基于用户的个人信息和相关联的上下文信息,来识别用户想要去的特定咖啡店。在特定实施例中,NLU模块210可以包括特定语言的词典、解析器、和将句子划分为内部表示的语法规则。NLU模块210还可以包括执行朴素语义或随机语义分析的一个或多个程序,并且还可以使用程序学来理解用户输入。在特定实施例中,解析器可以基于如下的深度学习架构:该深度学习架构包括多个长短期记忆(long-short term memory,LSTM)网络。作为示例而非限制,解析器可以基于递归神经网络语法(recurrent neural networkgrammar,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)”的书的实体,该实体可包括从多个内容源(例如,在线社交网络、在线百科全书、书评来源、媒体数据库、和娱乐内容源)中提取的信息,该信息可以被去重、解析和融合,以生成该知识图谱的单个唯一记录。在该示例中,名称为“书名”的实体可以与“类型(genre)”实体属性的“奇幻(fantasy)”属性值相关联。可以在以下申请中找到更多关于知识图谱的信息:于2018年7月27日提交的第16/048049号美国专利申请、和于2018年7月27日提交的第16/048101号美国专利申请,在本文中对这些申请中的每个申请进行了论述。
在特定实施例中,辅助用户存储器(assistant user memory,AUM)354可以包括用户片段记忆,该用户片段记忆帮助确定如何更有效地辅助用户。AUM 354可以是用于存储用户数据、检索用户数据、为用户数据编索引和搜索用户数据的中心位置。作为示例而非限制,AUM 354可以存储诸如联系人、照片、提醒等信息。此外,AUM 354可以自动将数据同步到服务器和其它设备(仅针对非敏感数据)。作为示例而非限制,如果用户在一个设备上为联系人设置了昵称,则所有设备可以基于AUM 354同步并获得该昵称。在特定实施例中,AUM354可以首先准备事件、用户状态、提醒、和触发状态,以用于存储在数据存储库中。可以创建记忆节点标识符(ID)以在AUM 354中存储条目对象,其中条目可以是某条关于用户的信息(例如,照片、提醒等)。作为示例而非限制,记忆节点ID的前几位可以指示这是记忆节点ID类型,后几位可以是用户ID,并且后几位可以是创建的时间。然后,AUM 354可以为这些数据编索引,以用于根据需要进行检索。对于此目的,可以创建索引ID。在特定的实施例中,在给定了“索引关键词”(例如,照片_位置(PHOTO_LOCATION))和“索引值”(例如,“旧金山(SanFrancisco)”)的情况下,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可以准确地解析这些指代。作为示例而非限制,用户输入可以包括“find me the nearest grocery storeand direct me there(为我找到最近的杂货店并指引我去那里)”。基于共指,实体解析模块212可以将“there(那里)”解释为“the nearest grocery store(最近的杂货店)”。在特定实施例中,共指可以取决于来自上下文引擎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-language processing,NLP)对来自上下文引擎220的信息(例如,用户资料)进行处理。在特定实施例中,实体解析模块212可以基于NLP,通过文本规范化(normalization)来标记文本,从文本提取句法特征,并且从文本提取语义特征。实体解析模块212还可以从上下文信息提取特征,该上下文信息是从用户与辅助系统140之间的对话历史访问的。实体解析模块212还可以基于上下文信息进行全局词嵌入、域特定嵌入和/或动态嵌入。可以由实体标签器使用实体来注释处理结果。基于注释,实体解析模块212可以生成词典。在特定实施例中,词典可以包括全局词典特征,全局词典特征可以离线动态更新。实体解析模块212可以对由实体标注器标注的实体进行排序。在特定实施例中,实体解析模块212可以与不同的图谱352(包括社交图谱、知识图谱或概念图谱中的一者或多者)通信,以提取与从上下文引擎220检索到的信息相关的本体数据。在特定实施例中,实体解析模块212还可以基于用户资料、经排序的实体、以及来自图谱352的信息来解析实体。
在特定实施例中,实体解析模块212可以由任务(对应于代理228)驱动。这种对处理顺序的颠倒可以使任务中存在的域知识有可能在显然且适合这样做时、被应用于对一组解析目标进行预过滤或偏置。作为示例而非限制,对于话语“谁是约翰?”,在该话语中没有暗含明确的类别。因此,实体解析模块212可以针对所有内容解析“约翰”。作为另一示例而非限制,对于话语“向约翰发送消息”,实体解析模块212可以容易地确定“约翰”是指可以收发消息的人。因此,实体解析模块212可以将解析倾向为朋友。作为另一示例而非限制,对于话语“what is John’s most famous album?(约翰最著名的专辑是什么?)”,为了解析“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 to call mom when she’s online and I’m home tonight(今晚当妈妈在线且我在家时提醒我给她打电话)”可以执行由对话状态追踪器218从NLU输出到触发表示的转换,如下面的表1中所示:
表1:从NLU输出到触发表示的示例转换在上面的示例中,“妈妈”、“家”和“今晚”由它们各自的实体来表示:人物实体(personEntity)、位置实体(locationEntity)、日期实体(datetimeEntity)。
在特定实施例中,对话管理器216可以将由上下文引擎220确定的事件映射为动作。作为示例而非限制,动作可以是自然语言生成(NLG)动作、显示或覆盖、设备动作、或检索动作。对话管理器216还可以执行上下文追踪和交互管理。上下文追踪可以包括将实时的事件的流聚合为统一的用户状态。交互管理可以包括在每个状态中选择最佳动作。在特定实施例中,对话状态追踪器218可以执行上下文追踪(即,追踪与用户相关的事件)。为了支持对事件流的处理,对话状态追踪器218a可以使用事件处理模块(handler)(例如,用于消歧、确认、请求),该事件处理模块可以消耗(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将对话状态写入(即,存储/更新)到数据存储库330中,以及使用响应生成部件380生成响应。在特定实施例中,附加地,如果所确定的通信内容的模态是音频,则可以将CU编辑器370的输出发送到TTS部件390。在特定实施例中,来自传送系统230的输出随后可以被发送回对话管理器216,来自传送系统230的输出包括以下中的一者或多者:所生成的响应、通信内容、或由TTS部件390生成的语音。
在特定实施例中,协调器206可以基于实体解析模块212的输出,来确定是在客户端系统130上处理用户输入,还是在服务器上处理用户输入,或者是使用客户端系统130和服务器这两者在第三运行模式(即,混合模式)下处理用户输入。除了确定如何处理用户输入之外,协调器206还可以接收由对话管理器216提供的来自代理228的结果和/或来自传送系统230的结果。协调器206随后可以将这些结果转发给仲裁器226。仲裁器226可以聚合这些结果,分析这些结果,选择最佳结果,并将所选择的结果提供给渲染输出模块232。在特定实施例中,仲裁器226可以咨询对话策略360以在分析这些结果时获得指导。在特定实施例中,渲染输出模块232可以生成适合于客户端系统130的响应。
图4示出了处理用户输入的以任务为中心的示例流程图400。在特定实施例中,辅助系统140不仅可以用语音启动的体验来辅助用户,还可以用在理解用户上下文时启动的更主动的、多模态体验来辅助用户。在特定实施例中,辅助系统140可以出于这样的目的而依赖于辅助任务。辅助任务可以是这样的中心概念:该中心概念在整个辅助堆栈上共享,以理解用户意图、与用户和世界交互,从而为用户完成正确的任务。在特定实施例中,辅助任务可以是辅助功能的原始单元。辅助任务可以包括数据提取、更新某个状态、执行某个命令、或由较小的一组任务组成的复杂任务。正确且成功地完成任务以将值传送给用户可能是对辅助系统140进行优化的目标。在特定实施例中,辅助任务可以被定义为功能或特征。如果多个结果表面具有完全相同的要求,则可以在该多个结果表面上共享辅助任务,因此该辅助任务可以容易地被追踪。辅助任务还可以从一个设备传递到另一设备,并且容易在任务中途被另一设备拾取,这是因为原始单元是一致的。此外,辅助任务的一致格式可以允许在辅助堆栈中处理不同模块的开发者更容易地围绕辅助堆栈进行设计。此外,辅助任务的一致格式还可以允许任务分享。作为示例而非限制,如果用户正在智能眼镜上听音乐,则该用户可以说“在我的手机上播放这首音乐”。在手机还没有被唤醒或有任务要执行的情况下,智能眼镜可以制定提供给手机的任务,该任务随后由手机来执行以开始播放音乐。在特定实施例中,如果各个表面具有不同的预期行为,则辅助任务可以由各个表面单独保留。在特定实施例中,辅助系统140可以基于不同模态的用户输入或其它信号来识别正确的任务,进行会话以收集所有必要的信息,并利用在服务器或本地结果表面内部或外部实现的动作选择器222来完成该任务。在特定实施例中,辅助堆栈可以包括一组处理部件,该一组处理部件用于唤醒、识别用户输入、理解用户意图、对任务进行推理、完成任务以利用语音生成自然语言响应。
在特定实施例中,用户输入可以包括语音输入。可以在ASR模块208处接收语音输入,以从该语音输入中提取文本转录。ASR模块208可以使用统计模型来确定与由辅助系统140接收到的作为音频输入的语音的给定部分相对应的最有可能的词语序列。该模型可以包括以下中的一者或多者:隐马尔可夫(Markov)模型、神经网络、深度学习模型、或它们的任意组合。可以以特定采样率(例如,16kHz、44.1kHz或96kHz)并利用表示每个样本的特定数量的比特(例如,8、16或24个比特)来将接收到的音频输入编码为数字数据。
在特定实施例中,ASR模块208可以包括以下中的一者或多者:字素到音素(grapheme-to-phoneme,G2P)模型、发音学习模型、个性化声学模型、个性化语言模型(personalized language model,PLM)或结束点模型。在特定实施例中,字素到音素(G2P)模型可以用于确定用户的字素到音素风格(即,当特定用户说出特定词语时,该词语可能听起来像什么)。在特定实施例中,个性化声学模型可以是音频信号与语言中的语音单位的声音之间的关系的模型。因此,这种个性化声学模型可以识别用户的语音听起来如何。可以使用训练数据(例如作为音频输入接收到的训练语音、和对应于语音的对应语音单位)来生成个性化声学模型。可以使用特定用户的声音来训练或细化个性化声学模型,以识别该用户的语音。在特定实施例中,个性化语言模型随后可以确定与针对特定音频输入而识别出的语音单位相对应的最可能的短语。个性化语言模型可以是各种词语序列可能在该语言中出现的概率的模型。可以使用个性化语言模型将音频输入中的语音单位的声音与词语序列匹配,并且可以将更大权重分配给如下词语序列:所述词语序列更可能是该语言中的短语。然后,可以选择具有最高权重的词语序列作为与音频输入相对应的文本。在特定实施例中,个性化语言模型还可以用于预测在给定上下文的情况下用户最可能说出什么词语。在特定实施例中,结束点模型可以检测何时结束话语。在特定实施例中,辅助系统140可以至少部分地基于客户端系统130的有限计算能力,在客户端侧过程期间在运行时优化个性化语言模型。作为示例而非限制,辅助系统140可以为用户可能谈论的多个可能主题预计算多个个性化语言模型。当用户输入与用于辅助的请求相关联时,辅助系统140可以在运行时基于用户活动,在预计算的语言模型之间迅速切换并在本地优化这些预计算的语言模型。因此,辅助系统140可以保留计算资源,同时高效地识别与用户输入相关联的主题。在特定实施例中,辅助系统140还可以在运行时动态地重新学习用户发音。
在特定实施例中,用户输入可以包括非语音输入。可以在上下文引擎220处接收非语音输入,以用于从非语音输入中确定事件和上下文。上下文引擎220可以确定包括多模态事件,多模态事件包括语音/文本意图、位置更新、视觉事件、触摸、注视、手势、活动、设备/应用事件、和/或任何其它合适类型的事件。语音/文本意图可以取决于ASR模块208和NLU模块210。位置更新可以由对话管理器216消耗以支持各种主动/被动场景。视觉事件可以基于出现在用户视野中的人或对象。这些事件可以由对话管理器216消耗并在临时用户状态中记录,以支持视觉共指(例如,解析“how much is that shirt?(那件衬衫多少钱?”中的“that(那件)”,以及解析“send him my contact(把我的联系人发给他)”中的“him(他)”)。注视、手势和活动可以使得在临时用户状态(例如,用户正在跑步)中设置标记,所述标记可以调节动作选择器222。对于设备/应用事件,如果应用程序对设备状态进行更新,则这可以被发布到辅助系统140,使得对话管理器216可以使用该上下文(当前向用户显示的上下文)来处理被动和主动场景。作为示例而非限制,上下文引擎220可以使得在用户的客户端系统130的显示屏上显示推送通知消息。用户可以与该推送通知消息交互,这可以发起多模态事件(例如,用于回复从另一用户接收到的消息的事件工作流)。其它示例多模态事件可以包括看到朋友、看到地标、在家、跑步、在照片中识别面部、利用触摸开始打电话、利用触摸拍照、打开应用程序等。在特定实施例中,上下文引擎220还可以基于世界/社交更新(例如,天气变化、朋友上线)来确定世界/社交事件。社交更新可以包括用户订阅的事件(例如,朋友的生日、帖子、评论、其它通知)。对话管理器216可以消耗这些更新,以触发基于上下文的主动动作(例如,建议用户在朋友的生日时给他们打电话,但仅当用户没有关注其它事情时)。作为示例而非限制,接收消息可以是社交事件,该社交事件可以触发为用户阅读消息的任务。
在特定实施例中,可以将来自ASR模块208的文本转录发送到NLU模块210。NLU模块210可以处理文本转录并提取用户意图(即,意图),并且基于语言本体来对槽或解析结果进行解析。在特定实施例中,来自NLU模块210的意图和槽、和/或来自上下文引擎220的事件和上下文可以被发送到实体解析模块212。在特定实施例中,实体解析模块212可以基于来自NLU模块210和/或上下文引擎220的输出,来解析与用户输入相关联的实体。实体解析模块212可以使用不同的技术(包括从辅助用户存储器(AUM)354中访问用户记忆)来解析实体。在特定实施例中,AUM 354可以包括有助于实体解析模块212对实体进行解析的用户片段记忆。AUM 354可以是如下的中心位置:该中心位置用于存储用户数据、检索用户数据、为用户数据编索引、和搜索用户数据。
在特定实施例中,实体解析模块212可以向对话状态追踪器218提供以下中的一者或多者:意图、槽、实体、事件、上下文或用户记忆。对话状态追踪器218可以相应地识别任务的一组状态候选,与用户进行交互以收集填充状态必要的信息,并调用动作选择器222来完成任务。在特定实施例中,对话状态追踪器218可以包括任务追踪器410。任务追踪器410可以追踪与辅助任务相关联的任务状态。在特定实施例中,任务状态可以是这样的数据结构:该数据结构在多个交互轮次和实时更新中持续存在,以在整个交互期间采集任务状态。任务状态可以包括与任务执行状态有关的所有当前信息,例如参数、确认状态、置信度得分等。任务状态中的任何错误或过时的信息都可能导致任务执行失败或错误。任务状态还可以用作针对许多其它部件(例如,ASR模块208、NLU模块210等)的一组上下文信息。
在特定实施例中,任务追踪器410可以包括意图处理模块411、任务候选排序模块414、任务候选生成模块416和合并层419。在特定实施例中,任务可以通过任其ID名称来标识。如果在任务规范(例如,对话策略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)。作为示例而非限制,<domain>_tasks.cconf可以包括任务规范的所有细节。作为另一示例而非限制,如果还不支持该功能的话,则<domain>_tasks.cinc可以提供一种方法来覆盖所生成的规范。
在特定实施例中,任务执行可能需要一组参数来执行。因此,参数解析部件418可以使用所解析的任务ID的参数规范来解析参数名称。可以基于NLU输出(例如,槽[SL:contact]([SL:联系人]))、对话状态(例如,短期通话历史)、用户记忆(例如,用户偏好、位置、长期通话历史等)、或设备上下文(例如,定时器状态、屏幕内容等)来解析这些参数。在特定实施例中,参数模态可以是文本、音频、图像、或其它结构数据。槽到参数的映射可以由填充策略和/或语言本体来定义。在特定实施例中,在给定任务触发规范的情况下,任务候选生成模块416可以基于所解析的任务ID和参数来查找要被触发的任务列表作为任务候选。
在特定实施例中,可以将所生成的任务候选发送到任务候选排序模块414以进行进一步排序。任务候选排序模块414可以使用基于规则的排序器415来对这些任务候选进行排序。在特定实施例中,基于规则的排序器415可以包括一组试探以倾向某些域任务。以下可以利用上下文优先的原则对排序逻辑进行描述。在特定实施例中,用户指定任务的优先级可以高于前台任务。当意图是元意图时,前台任务的优先级可以高于设备域任务。设备域任务的优先级可以高于触发意图域的任务。作为示例而非限制,如果在话语(例如,“createa timer in TIMER app(在定时器应用程序中创建定时器)”)中提到或指定了任务域,则排序可以挑选出该任务。作为另一示例而非限制,如果任务域处于前台或活动状态(例如,在定时器应用程序处于前台并且存在活动定时器时,“stop the timer(停止定时器)”用于停止定时器),则排序可以挑选出该任务。作为又一示例而非限制,如果意图是通用元意图,并且在不存在其他活动应用程序或活动状态时、任务是设备控制,则排序可以挑选出该任务。作为又一示例而非限制,如果任务与意图域相同,则排序可以挑选出该任务。在特定实施例中,任务候选排序模块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可以从经由任务规范管理器API430访问的执行规范中生成。在特定实施例中,执行规范可以描述应该如何执行任务、以及动作选择器222可能需要采取什么动作来完成该任务。
在特定实施例中,动作选择器222可以确定与系统相关联的动作。这些动作可能需要代理228来执行。因此,动作选择器222可以将系统动作发送到代理228,并且代理228可以返回这些动作的执行结果。在特定实施例中,动作选择器可以确定与用户或设备相关联的动作。这些动作可能需要由传送系统230来执行。因此,动作选择器222可以将用户/设备动作发送到传送系统230,并且传送系统230可以返回这些动作的执行结果。
本文中所公开的实施例可以包括人工现实(artificial reality)系统,或者可以结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实可以包括例如虚拟现实(virtual reality,VR)、增强现实(augmentedreality,AR)、混合现实(mixed reality,MR)、混合的现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容、或与采集的内容(例如,真实世界照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上中的任何一种都可以在单通道或多通道中呈现(例如为观看者带来三维效果的立体视频)。此外,在一些实施例中,人工现实还可以与应用、产品、附件、服务或它们的某种组合相关联,该应用、产品、附件、服务或它们某种组合例如用于在人工现实中创建内容和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其它硬件平台。
包括非拉丁内容项的通信内容的读出
在特定实施例中,当通信内容(例如,消息)包括可能难以转换为仅音频渲染的非拉丁文字内容项(例如,表情、缩写词、符号、附件等)时,辅助系统140可以向用户提供对该通信内容的音频读出。在特定实施例中,这些非拉丁文字内容项中的一些非拉丁文字内容项可能是辅助系统140可解析的(例如,表情和缩写词),而这些非拉丁文字内容项中的一些非拉丁文字内容项可以是辅助系统140不可解析的(例如,附件)。当将非拉丁文字内容项转换为仅音频渲染时,辅助系统140可能具有这样的技术优势:通过向用户提供通信内容的完整上下文来维护通信内容的完整性和情感的完整性,同时保持读出的对话性并且最小化用于理解读出的认知负荷。此外,辅助系统140可以基于不同的解析规则以各种方式处理读出。这些解析规则可以取决于拉丁文字文本字符串和非拉丁文字内容项(例如,表情、gif、附件等)的数量或比例、以及它们的组合。例如,当读出来自马特(Matt)的消息(“嗨!”)时,辅助系统可以将该消息读出为“Matt says‘Hi’with three smileyface emoji and 2other emoji(玛特说‘嗨!’并用了三个笑脸表情和2个其它表情”。辅助系统140可以在服务器侧或客户端侧处理自然语言读出。此外,当在支持音频输出和视觉输出这两者的客户端系统130(例如,智能手表)上读出通信内容时,辅助系统140可以将对通信内容的渲染划分为音频读出和客户端系统130的屏幕上的视觉分量,其中可以在该屏幕上显示该非拉丁文字内容项中的一些或全部非拉丁文字内容项。虽然本公开描述了由特定系统以特定方式读出特定通信内容,但本公开考虑了由任何合适的系统以任何合适的方式读出任何合适的通信内容。
在特定实施例中,辅助系统140可以访问通信内容,该通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项。然后,辅助系统140可以基于一个或多个解析规则来确定通信内容的读出。在特定实施例中,一个或多个解析规则可以基于非拉丁文字内容项的一个或多个属性来指定读出的一种或多种格式。该读出可以包括零个或多个拉丁文字文本字符串、以及对一个或多个非拉丁文字内容项的描述。在特定实施例中,辅助系统140还可以向客户端系统130发送用于呈现对通信内容的读出的音频渲染的指令。
图5示出了包括表情的示例通信内容。由于通信内容可以包括文本、标点符号、表情、附件等,使得难以将通信内容转换为仅音频渲染,因此在支持仅音频辅助的设备(例如,智能眼镜)上使通信内容的读出体验尽可能自然可能是具有挑战性的。在特定实施例中,一个或多个非拉丁文字内容项可以包括以下项中的一者或多者:非拉丁文字语言文本字符串、表情、符号、图像、视频、图形交换格式(GIF)、标签、语音片段、音频片段、链接、对命名实体的提及、社交网络反应、电子支付、联系人、位置、文件、帖子、主题标签(Hashtag)、首字母缩略词、缩写词、或基于符号的表情。一些内容项(如可由辅助系统140解析的表情和符号)可能具有因广泛使用而开放的共同接受的名称、描述符或目录。其它内容项(如非拉丁文字文本)对于辅助系统140可能是不可解读的(即,不可解析的)。一旦存在这些不同类型的内容项的组合,读出通信内容的希望可能会变得越来越复杂,并且对用户的认知负荷很重。此外,辅助系统在生成仅音频渲染时需要维持“消息完整性”。例如,考虑示例通信内容502。对于像该示例502这样的通信内容,可能需要一种方式来确定任何给定的读出(例如,由来自单个联系人或线程的一个或多个消息组成的读出)中有多少被认为是不可解读的,并在超出某阈值时决定不尝试读出。合理的读出可以是“Jessie sent you 5 messages withemoji,symbols,and characters I can’t read(杰西给你发送了5条具有我无法阅读的表情、符号和字符的消息)”。
为了解决完整地读出通信内容的技术挑战,作为解决方案,辅助系统140可以确定是否提供对非拉丁文字内容项的转换,或者基于对非拉丁文字内容项在通信内容中的数量进行定量阈值化来将这些内容项视为不可解读的。例如,如果消息包含可由辅助系统140解析且具有常用的描述符的几个表情,则辅助系统140可以基于这些描述符来提供转换。如果消息满是非拉丁文字内容项,以至于该消息将被认为是不可解读的消息,则辅助系统140可以提供通用上下文和该消息不可解读的通知。在特定实施例中,客户端系统130可以包括一个或多个渲染设备、以及一个或多个伴随设备。对应地,一种或多种格式可以包括在一个或多个目标设备处渲染读出,该一个或多个目标设备是从渲染设备和伴随设备中选择。例如,读出可以是“Matt sent you a message that says‘Hi!What’s up?’followed byseveral emoji and a gif(马特给你发送了一条消息,说‘嗨!怎么了?’,随后跟着几个表情和一个gif)”。这种对不可解读消息的通知随后可以在用户的渲染设备(例如,智能手表)具有显示器的情况下提示用户查看其渲染设备,或者可以在该读出来自仅音频设备的设备的情况下提示用户查看其伴随设备(例如,智能手机),以查看视觉渲染的消息。
在特定实施例中,辅助系统140可以接收来自发送者的通信内容。通信内容可以指向一个或多个接收者,例如,两个人之间对话或群聊中的对话。因此,客户端系统130可以与一个或多个接收者中的一个接收者相关联。在特定实施例中,发送者可以与非英语拉丁名(例如,葡萄牙语的Joao(若昂))相关联。在一种场景下,非英语拉丁名可以处于辅助系统140可发音的文字中。因此,读出还可以包括与发送者相关联的非英语拉丁名的发音。在特定实施例中,发音可以基于与非英语拉丁名相关联的英语或非英语中的一者或多者。这指示:如果非英语名处于辅助系统140可发音的文字中,则辅助系统140可以使用原始语言的发音来读出非英语名,或者如果非英语名处于辅助系统140不可以发音的文字中,则可以使用英语发音来读出非英语名,或者这两者的组合。在特定实施例中,发送者可以与非拉丁文字语言名(例如,中文名(其可能是辅助系统140不可解析的))相关联。读出还可以包括对与发送者相关联的非拉丁文字语言名的概括,例如,“I can’t read the sender’s name(我无法阅读该发送者的名称)”。在特定实施例中,辅助系统140可以基于不同的解析规则以各种方式处理通信内容的读出。这些解析规则可以取决于拉丁文字文本字符串和非拉丁文字内容项(例如,表情、gif、附件等)的数量、以及它们的组合。
在特定实施例中,一种或多种格式可以包括:分别读出该一个或多个非拉丁文字内容项中的一个或多个,概括该一个或多个非拉丁文字内容项中的一个或多个,当该一个或多个非拉丁文字内容项的总数量超过阈值数量时分别读出该一个或多个非拉丁文字内容项的第一子集,或者当该一个或多个非拉丁文字内容项的总数量超过阈值数量时概括该一个或多个非拉丁文字内容项的第二子集。因此,对该一个或多个非拉丁文字内容项的描述可以包括以下项中的一者或多者:针对该一个或多个非拉丁文字内容项中的一个或多个中的每个的分别读出、或针对该一个或多个非拉丁文字内容项中的一个或多个的概括。
在特定实施例中,一个或多个非拉丁文字内容项可以包括表情或符号中的一者或多者。表情和符号可以由辅助系统140解析。对一个或多个表情或符号的描述可以包括针对该一个或多个表情或符号中的一个或多个的分别读出。在特定实施例中,分别读出是基于与对应表情或符号相关联的统一码(Unicode)描述。在特定实施例中,辅助系统140可以如以下处理针对包括表情的通信内容的读出。辅助系统140可以在描述表情之前附加“emoji(表情)”,例如,“emoji[Description](表情[描述])”。对于具有单个表情的通信内容,辅助系统140可以完全将该表情与拉丁文字文本字符串一起读出。例如,对于仅包括单个表情的通信内容504,读出可以是“[Contact]sent 1message,saying:Emoji heart([联系人]发送了1条消息,说:表情心)”。作为另一示例,对于包括单个表情和拉丁文字文本字符串的通信内容506(即,表情处于开始/结尾处),读出可以是“[Contact]sent 1message,saying:Emoji heart.How’s it going?([联系人]发送了1条消息,说:表情心。一切都好吗?)”。作为另一示例,对于包括单个表情和拉丁文字文本字符串的通信内容508(即,表情处于中间),读出可以是“[Contact]sent 1message,saying:I emoji heart you([联系人]发送了1条消息,说:我表情心你)”。作为另一示例,对于包括单个表情和拉丁文字文本字符串的多条消息(即,多条消息)的通信内容510,读出可以是“[Contact]sent 2messages,saying:Emoji heart.How’s it going?([联系人]发送了2条消息,说:表情心。一切都好吗?)”
在特定实施例中,一个或多个属性可以包括以下项中的一者或多者:对该一个或多个非拉丁文字内容项的阈值要求、或者与该一个或多个非拉丁文字内容项中的每个非拉丁文字内容项相关联的描述难度。作为示例而非限制,对于具有多个表情的通信内容,辅助系统140可以读出每个表情,直到达到超过阈值数量的表情(例如,4个表情)为止,此时辅助系统140可以告诉用户该通信内容并且告诉用户该通信内容包含大量表情。在特定实施例中,辅助系统140可以依次读出多个表情,例如,通信内容512可以被读出为“two emojiheart,emoji peace sign,emoji heart(两个表情心、表情剪刀手、表情心)”。在特定实施例中,辅助系统140可以将类似的表情分组为单元。一个单元可以被定义为如下。单个离散的表情可以被视为一个单元(例如,表情红心)。多个相同的表情也可以被视为一个单元(例如,三个表情红心)。形状相同但特性不同的多个表情也可以被视为一个单元(例如,七个表情心形)。对与非拉丁文字内容项相关联的属性(其包括以下项中的一者或多者:对非拉丁文字内容项的阈值要求、或与该一个或多个非拉丁文字内容项中的每个非拉丁文字内容项相关联的描述难度)进行分析可以是用于解决以下技术挑战的有效解决方案:确定是分别读出非拉丁文字内容项,还是概括这些非拉丁文字内容项,这是因为这些属性可以为自然地读出通信内容提供有效的标准,并为通信内容的接收者提供足够的信息提示。
如果存在一至三个单元,则辅助系统140可以读出通信内容。例如,对于仅包括表情的通信内容514,读出可以是“[Contact]sent you 2emoji:heart,umbrella([联系人]给你发送了2个表情:心、伞)”。作为另一示例,对于仅包括表情的另一通信内容516,读出可以是“[Contact]sent you 4emoji:two heart,tropical drink,palm tree([联系人]给你发送了4个表情:两个心、热带饮料、棕榈树)”。作为另一示例,对于包括表情和拉丁文字文本字符串的通信内容518(即,表情处于开始/结尾处),读出可以是“[Contact]sent1message,saying:emoji heart,emoji tropical drink.Happy hour?([联系人]发送了一条消息,说:表情心,表情热带饮料。一起去开心一下?)”。作为另一示例,对于包括表情和拉丁文字文本字符串的另一通信内容520(即,表情处于中间),读出可以是“[Contact]sent1message,saying:I emoji heart you.Happy hour?Emoji tropical drink([联系人]发送了一条消息,说:我表情心你。一起去开心一下?表情热带饮料)”。作为另一示例,对于包括表情和拉丁文字文本字符串的另一通信内容522,读出可以是“[Contact]sent2messages,saying:I two emoji heart you.Want to get a emoji tropical drink?([联系人]发送了2条消息,说:我2个表情心你。想喝一杯表情热带饮料吗?)”。从该示例可以看出,当向句子中插入“表情”时,辅助系统140可能不会为了符合语法而将“a”转换为“an”,即,更好地保持了原始通信内容的自然性。
在特定实施例中,该一个或多个属性可以包括对一个或多个非拉丁文字内容项的阈值要求。由此,该一种或种格式可以包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项;或者概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项。每个第一非拉丁文字内容项可以与满足阈值要求的相应第一索引相关联,而每个第二非拉丁文字内容项可以与不满足阈值要求的相应第二索引相关联。作为示例而非限制,如果存在多于四个(包括四个)单元,则辅助系统140可以将三个单元以上的那些单元默认为“lots of emoji(许多表情)”,即,针对这些表情的概括。辅助系统140可以读出前两个表情,并且然后读出剩余表情的数量。例如,对于仅包括表情的通信内容524,读出可以是“[Contact]sent you emoji heart,emojiumbrella,and 2more emoji([联系人]向你发送了表情心、表情伞和两个其它表情)”。作为另一示例,对于包括表情和拉丁文字文本字符串的通信内容526(即,表情处于开始/结尾处),读出可以是“[Contact]sent 1message with lots of emoji.It says:Happy hour?([联系人]发送了1条具有许多表情的消息,说:一起去开心一下?)”。作为另一示例,对于包括表情和拉丁文字文本字符串的另一通信内容528(即,在中间具有表情的完整句子),读出可以是“[Contact]sent 1message with lots of emoji.It says:You free later?Let’sget([联系人]发送了一条具有许多表情的消息,说:你一会儿有空吗?我们去吧)”。作为另一示例,对于包括表情和拉丁文字文本字符串的通信内容530(即,到处都是表情),读出可以是“[Contact]sent 1message with lots of emoji([联系人]发送了一条具有许多表情的消息)”。作为另一示例,对于包括包含表情的多条消息的通信内容532,读出可以是“[Contact]sent 3messages,saying:Hi!How are you?Two emoji heart,emoji tropicaldrink,and 9other emoji([联系人]发送了3条消息,说:嗨!你好吗?2个表情心、表情热带饮料和9个其它表情)”。作为另一示例,对于包括包含表情的多条消息的另一通信内容534,读出可以是“[Contact]sent 3messages,saying:Hi!Two emoji heart,emoji tropicaldrink,and 9other emoji.How are you?([联系人]发送了3条消息,说:嗨!2个表情心、表情热带饮料和9个其它表情。你好吗?)”。作为另一示例,对于包括包含表情和拉丁文字文本字符串的多条消息的另一通信内容536,读出可以是“[Contact]sent 3messages,saying:Hi!How are you?There's also a message with lots of emoji([联系人]发送了3条消息,说:嗨!你好吗?还有1条具有许多表情的消息)”。作为另一示例,对于包括包含表情和拉丁文字文本字符串的多条消息的另一通信内容538,读出可以是“[Contact]sent3messages,saying:Hi!How are you?There’s also a message with lots of emoji([联系人]发送了3条消息,说:嗨!你好吗?还有1条具有许多表情的消息)”。从前面的示例可以看出,辅助系统140可以在拉丁文字文本字符串的末尾引用大量表情通信内容(例如,“Hi.A message with lots of emoji.How are you?(嗨。一条具有许多表情的消息。你好吗?)”对比“Hi!How are you?There's also a message with lots of emoji.(嗨!你好吗?还有一条具有许多表情的消息。)”)。作为另一示例,对于包括包含表情和拉丁文字文本字符串的多条消息的另一通信内容540,读出可以是“[Contact]sent 4messages,saying:Hi!How are you?Two emoji heart,emoji tropical drink,and 9other emoji.There’salso a message with text and emoji([联系人]发送了4条消息,说:嗨!你好吗?2个表情心、表情热带饮料和9个其它表情。还有一条具有文本和表情的消息)”。作为另一示例,对于包括包含表情和拉丁文字文本字符串的多条消息的另一通信内容542,读出可以是“[Contact]sent4messages,saying:Hi!How are you?There are also 2messages withtext and emoji([联系人]发送了4条消息,说:嗨!你好吗?还有2条具有文本和表情的消息)”。
图6A至图6C示出了包括表情的通信内容的示例读出。图6A示出了包括两个表情的通信内容的示例读出。用户605(即,诺亚(Noah))可以请求与他相关联的辅助系统140a向用户615发送消息610。该请求可以通过他的客户端系统130a(例如,智能手机)来提交。辅助系统140a可以通过网络110向与用户615相关联的另一辅助系统140b发送该消息610。用户615可能正佩戴着作为他的客户端系统130b的智能眼镜。如此,辅助系统140b可以向智能眼镜130b发送指令以读出消息610。读出620可以是“Noah sent a message,saying:emojiheart,emoji tropical drink.Happy hour?(诺亚发送了一条消息,说:表情心、表情热带饮料。一起去开心一下?)”
图6B示出了包括四个表情的通信内容的示例读出。用户605(即,诺亚)可以请求与他相关联的辅助系统140a向用户615发送消息625。该请求通过通过他的客户端系统130a(例如,智能手机)来提交。辅助系统140a可以通过网络110向与用户615相关联的另一辅助系统140b发送该消息625。用户615可能正佩戴着作为他的客户端系统130b的智能眼镜。如此,辅助系统140b可以向智能眼镜130b发送指令以读出消息625。读出630可以是“Noahsent a message,saying:emoji heart,emoji umbrella,and 2more emoji.Happy hour?(诺亚发送了一条消息,说:表情心、表情伞和两个其它表情。一起去开心一下?)”。
图6C示出了包括许多表情的通信内容的示例读出。用户605(即,诺亚)可以请求与他相关联的辅助系统140a向用户615发送消息635。该请求可以通过他的客户端系统130a(例如,智能手机)来提交。辅助系统140a可以通过向与用户615相关联的另一辅助系统140b发送该消息635。用户615可能正佩戴着作为他的客户端系统130b的智能眼镜。如此,辅助系统140b可以向智能眼镜130b发送指令以读出消息635。读出540可以是“Noah sent amessage with lots of emoji.It says:Happy hour?(诺亚发送了一条具有许多表情的消息,说:一起去开心一下?)”。
对于由符号组成的表情符号,辅助系统140可以基于这些表情符号的常用描述来像表情一样读出这些表情符号。表2示出了示例表情符号及其对应的描述。作为示例而非限制,辅助系统140可以将“:-)”读出为“smiling face(笑脸)”、将“:D”读出为“grinningface(咧嘴笑脸)”、将“:(”读出为“frowning face(蹙眉脸)”、将“:'(”读出为“crying face(哭脸)”、将“:O”读出为“surprised face(惊讶脸)”、将“:*”读出为“kiss face(亲亲脸)”、将“;)”读出为“winking face(眨眼脸)”、以及将“:P”读出为“tongue sticking out face(吐舌头脸)”。
表2示例表情图标及其描述
在特定实施例中,一个或多个属性可以包括:与该一个或多个非拉丁文字内容项中的每个非拉丁文字内容项相关联的描述难度。对应地,该一种或多种格式可以包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项;或者概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项。在特定实施例中,每个第一非拉丁文字内容项可以与满足难度要求相应描述难度相关联,而每个第二非拉丁文字内容项可以与不满足难度要求的相应描述难度相关联。
在特定实施例中,一个或多个属性可以包括对一个或多个非拉丁文字内容项的阈值要求、以及与该一个或多个非拉丁文字内容项中的每个非拉丁文字内容项相关联的描述难度。对应地,该一种或多种格式包括以下项中的一者或多者:分别读出该一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项;或者概括该一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项。在特定实施例中,每个第一非拉丁文字内容项可以与满足阈值要求的相应第一索引和满足难度要求的相应描述难度相关联。每个第二非拉丁文字内容项可以与不满足阈值要求的相应第二索引或不满足难度要求的相应描述难度相关联。
对于包括照片、视频、gif或标签的通信内容,遵循辅助系统140不能按内容描述的实体的通用附件处理模式,辅助系统140可以读出该通信内容并且还告诉用户该通信内容存在附件。像照片、视频、gif或标签这样的附件可以是不可解析的非拉丁文字内容项。在特定实施例中,对于仅具有单个附件的通信内容,模式可以是“[Contact]sent a/an[Attachment Type]([联系人]发送了一个[附件类型])”。例如,对于消息:“[photo/video/GIF/sticker]([照片/视频/GIF/标签])”读出可以是“[Contact]sent a[photo/video/GIF/sticker]([联系人]发送了一个[照片/视频/GIF/标签])”。在特定实施例中,对于仅具有多个相同类型的附件的通信内容,模式可以是“[Contact]sent[#][Attachment Type]s([联系人]发送了[#][附件类型])”或“[Contact]sent a message with[#][AttachmentType]s([联系人]发送了具有[#]个[附件类型]的消息)”。例如,对于消息:“[photo][photo]([照片][照片])”,读出可以是“[Contact]sent 2photos([联系人]发送了2个照片)”或“[Contact]sent a message with 2photos([联系人]发送了一条具有2个照片的消息)”。在特定实施例中,对于仅具有多个不同类型的附件的通信内容,模式可以是“[Contact]sent[#][Attachment Type]s([联系人]发送了[#]个[附件类型])”或“[Contact]sent a message with[#][Attachment Type]s([联系人]发送了具有[#]个[附件类型]的消息)”。例如,对于消息:“[photo][photo]([照片][照片])”,读出可以是“[Contact]sent 2photos([联系人]发送了2个照片)”或“[Contact]sent a message with2photos([联系人]发送了一条具有2个照片的消息)”。
在特定实施例中,对于包括单条消息和单个附件的通信内容,模式可以是“[Contact]sent a/an[Attachment Type]and said:[Message]([联系人]发送了一个[附件类型]并说:[消息])”。例如,对于通信内容:“Hey girl[photo/video/GIF/sticker](嘿女孩[照片/视频/GIF/标签])”,读出可以是“[Contact]sent a[photo/video/GIF/sticker]and said:Hey girl([联系人]发送了一个[照片/视频/GIF/标签],并说:嘿女孩)”。在特定实施例中,对于包括单条消息和多个相同类型的附件的通信内容,模式可以是“[Contact]sent[#][Attachment Type]s and said:[Message]([联系人]发送了[#]个[附件类型]并说:[消息])”。例如,对于通信内容:“[photo/video/GIF/sticker]Hey girl[photo/video/GIF/sticker]([照片/视频/GIF/标签]嗨女孩[照片/视频/GIF/标签])”,读出可以是“[Contact]sent 2[photos/videos/gifs]and said:Hey girl([联系人]发送了2个[照片/视频/gif]并说:嗨女孩)”。在特定实施例中,对于包括单条消息和多个不同类型的附件的通信内容,模式可以是“[Contact]sent[#]attachments and said:[Message]([联系人]发送了[#]个附件并说:[消息])”。例如,对于通信内容:“[sticker]Hey girl[photo]([标签]嗨女孩[照片])”,读出可以是“[Contact]sent 2attachments and said:Hey girl([联系人]发送了2个附件,并说:嗨女孩)”。
在特定实施例中,对于包括多条消息和单个附件的通信内容,模式可以是“[Contact]sent a/an[Attachment Type]and[#]messages,saying:[Messages]([联系人]发送了一个[附件类型]和[#]条消息,说:[消息])”。例如,对于通信内容:“Hey girl[photo/video/GIF/sticker]You want to go to the museum tomorrow?(嗨女孩[照片/视频/GIF/标签]明天你想去博物馆吗?)”,读出可以是“[Contact]sent a[photo/video/GIF/sticker]and 2messages,saying:Hey girl.You want to go to the museumtomorrow?([联系人]发送了一个[照片/视频/GIF/标签]和2条消息,说:嗨女孩。明天你想去博物馆吗?)”。在具体实施例中,对于包含多条消息和多个相同类型的附件的通信内容,模式可以是:“[Contact]sent[#][Attachment Type]s and[#]messages,saying:[Messages]([联系人]发送了[#]个[附件类型]和[#]条消息,说:[消息])”。例如,对于通信内容:“[image]he ate all his veggies![image]FINALLY([图片]他把他所有的蔬菜都吃了![图片]最终)”,读出可以是“[Contact]sent 2images and 2messages,saying:he ateall his veggies!FINALLY([联系人]发送了2个图片和2条消息,说:他把他所有的蔬菜都吃了!最终)”。在特定实施例中,对于包括多条消息和多个不同类型的附件的通信内容,模式可以是“[Contact]sent[#]attachments and[#]messages,saying:[Messages]([联系人]发送了[#]个附件和[#]条消息,说:[消息])”。例如,对于通信内容:“[image]he ateall his veggies![GIF]FINALLY([图片]他把他所有的蔬菜都吃了![GIF]最终)”,读出可以是”[Contact]sent 2attachments and 2messages,saying:he ate all his veggies!FINALLY([联系人]发送了2个附件和2条消息,说:他把他所有的蔬菜都吃了!最终)”。
在特定实施例中,包括附件的通信内容可以与群组(例如,群聊)相关联。对于这样的通信内容,模式可以以“In the group[group name](在群组[群组名称]中)”为开头读出,随后读出群组成员的内容。例如,对于群聊中的消息:“(John)[image]he ate all hisveggies!(Kumiko)[gif]((约翰)[图片]他把他所有的蔬菜都吃了!(久美子)[gif])”,读出可以是“In the group Family.John sent a photo and said:he ate all his veggies!Kumiko sent a gif(在群组家庭中。约翰发送了一张照片并说:他把他所有的蔬菜都吃了!久美子发送了一个gif)”。
在特定实施例中,当读出包括附件的通信内容时,辅助系统140可以包括对附件的描述、或者在照片或视频中被标记的人或地点的信息。作为示例而非限制,对于包括单个附件的消息:“[photo/video]([照片/视频])”,读出可以是“[Contact]sent a[photo/video].The[photo/video]is from an x-ray([联系人]发送了一个[照片/视频]。该[照片/视频]来自x射线)”。作为另一示例而非限制,对于包括单个附件的另一消息:“[photo/video]([照片/视频])”,读出可以是“[Contact]sent a[photo/video].The[photo/video]depicts a beach([联系人]发送了一个[照片/视频]。该[照片/视频]描绘了沙滩)”。作为又一示例而非限制,对于包括单个附件的消息:“[photo/video]([照片/视频])”,读出可以是“[Contact]sent a[photo/video].You are tagged in this[photo/video]([联系人]发送了一个[照片/视频]。你在这个[照片/视频]中被标记)”。
对于包括标准符号的通信内容,辅助系统可以读出通信内容,并且还可以正常读出标准符号。然而,对于包括特殊符号的通信内容,辅助系统140可以应用特殊规则。对于离散实例(即,不与其它字符相邻的符号),辅助系统140可以相应地解析这些符号。一些符号可能是辅助系统140可解析的,而一些符号可能是辅助系统140不可解析的。在特定实施例中,辅助系统140可以将“@”读出为“at(在)”。辅助系统140可以将“@home(@家)”和“@home(@家)”都读出为“at home(在家)”。在特定实施例中,对于“@”的例外可以是用户名/处理/提及,即,“@”被用作标记特定标识符(其可在前导中提到)的机制。例如,读出可以是“Jessiementioned/tagged you in a message...(杰西在消息...中提到/标记了你)”。在特定实施例中,辅助系统140可以将“w/”读出为“with(与)”。辅助系统140可以将“w/jam(w/贾姆)”和“w/jam(w/贾姆)”都读出为“with jam(与贾姆)”。在特定实施例中,辅助系统140可以将“w/o”读出为“without(没有)”。在特定实施例中,辅助系统140可以将“#”读出为“数量”。在特定实施例中,辅助系统140可以以同处理与其它字符相邻的“#”不同的方式,来处理与纯数字相邻的“#”。例如,“#10”和“#10”都可被读出为“数量10”,但“#olympics”或“#legit2quit”可被解析为标签。在特定实施例中,辅助系统140可以将“+”读出为“plus(加)”。辅助系统140可以将“you+me(你+我)”和“you+me(你+我)”读出为“you plus me(你加我)”。在特定实施例中,辅助系统140可以将“&”读出为“and(和)”。辅助系统140可以将“butter&jam(黄油和果酱)”和“butter&jam(黄油和果酱)”读出为“butter and jam(黄油和果酱)”。
在特定实施例中,辅助系统140在读出具有符号的通信内容时可以遵循不同的模式。对于包括诸如“?”等独立符号的通信内容,读出可以是“[Contact]sent 1message,saying:question mark([联系人]发送了1条消息,说:问号)”。对于具有独立符号和拉丁文字文本字符串的通信内容(诸如“Happy Friday!Meet@our spot?(周五快乐!老地方见?)”),读出可以是“[Contact]sent 1message,saying:Happy Friday!Meet at ourspot?([联系人]发送了1条消息,说:周五快乐!老地方见?)”。对于包括多个独立符号和拉丁文字文本字符串的通信内容(例如,“Happy Friday!Meet@our spot?$(周五快乐!老地方见?$)”),读出可以是“[Contact]sent 1message,saying:Happy Friday!Meet at ourspot?Dollar sign([联系人]发送了一条消息,说:周五快乐!老地方见?美元符号)”。作为另一示例,对于“Happy Friday!Meet@our spot???(周五快乐!老地方见???)”的读出可以是“[Contact]sent 1message,saying:Happy Friday!Meet at our spot?Question mark,question mark([联系人]发送了一条消息,说:周五快乐!老地方见?问号、问号)”。对于具有多个相邻符号的通信内容,例如读出可以是“[Contact]sent 1message withsymbols([联系人]发送了一条具有多个符号的消息)”。对于包括多个相邻符号和拉丁文字文本字符串的通信内容,例如“Happy Friday!/>?Meet@our spot?(周五快乐!/>?老地方见?)”,读出可以是“[Contact]sent 1message with symbols,saying:HappyFriday!Meet at our spot?([联系人]发送了1条具有符号的消息,说:周五快乐!老地方见?)”。对于包括多个相邻符号和拉丁文字文本字符串的多个通信内容,例如“HappyFriday!/>?Meet@our spot?Can’t wait to see you.Cause you’re the best.K bye(周五快乐!/>?老地方见?迫不及待想见你。因为你是最好的。再见)”,读出可以是“[Contact]sent 4messages,1with symbols,saying:Happy Friday!Meet at our spot?Can’twait to see you.Cause you’re the best.K bye([联系人]发送了4条消息,其中1条具有符号,说:周五快乐!老地方见?迫不及待想见你。因为你是最好的。再见)”。作为另一示例,对于“Happy Friday!/>?Meet@our spot?Can’t wait to see you;-P(周五快乐!/>?老地方见?迫不及待想见你;-P)”,读出可以是“[Contact]sent 2messageswith symbols,saying:Happy Friday!Meet at our spot?can’t wait to see you([联系人]发送了2条具有符号的消息,说:周五快乐!老地方见?迫不及待想见你)”。
在特定实施例中,一个或多个非拉丁文字内容项可以包括一个或多个非英语拉丁文字文本字符串。在特定实施例中,非英语拉丁文字文本字符串可以是可解析的(即,辅助系统140可以具有对应的语言技能来解析它们)。在替代实施例中,非英语拉丁文字文本字符串可以是不可解析的(即,辅助系统140可能没有对应的语言技能来解析它们)。对应地,对一个或多个非英语拉丁文字文本字符串的描述可以包括:针对该一个或多个非英语拉丁文字内容项中的一个或多个中的每个的分别读出。分别读出可以基于与非英语拉丁文字文本字符串相关联的英语或非英语中的一者或多者。换言之,对于包括非英语拉丁文字文本字符串(例如,基于拉丁的外语中的词语,如意大利语的“ciao(你好)”)的通信内容,辅助系统140可以将其读出为英语发音或原始语言的发音。
图7示出了包括非拉丁文字文本字符串的示例通信内容。在特定实施例中,一个或多个非拉丁文字内容项可以包括一个或多个非拉丁文字文本字符串。对应地,一个或多个属性可以包括通信内容中非拉丁文字文本字符串占全部文字文本字符串的百分比。对于包括非拉丁外语(例如,阿拉伯语、汉语等)的通信内容,辅助系统140可以确定通信内容中非拉丁与拉丁(例如,英语)的百分比。在特定实施例中,该百分比可以小于阈值百分比。由此,读出可以包括零个或多个拉丁文字文本字符串、以及对一个或多个非拉丁文字文本字符串的概括。换言之,如果该百分比低于阈值百分比(例如,50%),则辅助系统140可以读出可读的内容。在特定实施例中,该百分比可以不小于阈值百分比。由此,读出可以包括零个拉丁文字文本字符串、以及对通信内容的概括。换言之,如果该百分比等于或大于阈值百分比,则辅助系统140可以概括,但可以不尝试读出。在特定实施例中,通信内容可以部分地包括百分比低于阈值百分比(例如,<50%)的非拉丁文字文本字符串。例如,对于通信内容702,对应读出可以是“[Contact]sent 1 message with some characters I can't read,saying:Hi Tim.Want to grab lunch?([联系人]发送了一条消息,其中有些字符我无法阅读,说:嗨,蒂姆。想去吃午饭吗?)”。在特定实施例中,通信内容可以部分地包括百分比不低于阈值百分比(例如,≥50%)的非拉丁文字文本字符串。例如,对于通信内容704,对应读出可以是“[Contact]sent you 1 message,but I can't read many of the characters init([联系人]向你发送了一条消息,但我无法阅读其中的许多字符)”。在特定实施例中,通信内容可以全部包括非拉丁文字文本字符串。例如,对于通信内容706,对应读出可以是“[Contact]sent 1 message with characters I can't read([联系人]发送了一条具有我无法阅读的字符的消息)”。
在特定实施例中,通信内容可以来自具有非拉丁名的发送者,并且部分地包括百分比低于阈值百分比(例如,<50%)的非拉丁文字文本字符串。例如,通信内容708可以来自具有中文名的人。如果中文名不能被辅助系统140解析,则对应读出可以是“Someone sentyou a message,but I can't read their name,or some of the characters in themessage.It says:Hi Tim.Are you around on Saturday,want to get lunch?(有人向你发送了一条消息,但我无法阅读他们的名称或消息中的一些字符。该消息说:嗨蒂姆。周六你在吗,想去吃午饭吗?)”。然而,如果中文名是可解析的(即,辅助系统140具有汉语技能),则读出可以包括中文名的中文发音。在特定实施例中,通信内容可以来自具有非拉丁名的发送者,并且部分地包括百分比不低于阈值百分比(例如,≥50%)的非拉丁文字文本字符串。例如,通信内容710可以来自具有中文名的人。对应读出可以是“Someone sent you1message,but I can't read their name,or many of the characters in the message(有人给你发送了一条消息,但我无法阅读他们的名称或该消息中的许多字符)”。在特定实施例中,通信内容可以来自具有非拉丁名的发送者,并且包括具有全部是非拉丁文字文本字符串的消息。例如,通信内容712可以来自具有中文名的人。对应读出可以是“You have1new message(你有1条新消息)”。在替代实施例中,对应读出可以是“Someone sent you amessage,but I can’t read their name,or the characters in the message(有人向你发送了一条消息,但我无法阅读他们的名称或该消息中的字符)”。在特定实施例中,通信内容可以来自具有非拉丁名的发送者,并且包括具有部分非拉丁文字文本字符串的多条消息,该部分非拉丁文字文本字符串的百分比低于阈值百分比(例如,<50%)。例如,通信内容714可以来自具有中文名的人。对应读出可以是“Someone sent you 3messages,but Ican't read their name,or some of the characters in the messages.They say:HiTim.Are you around on Saturday?Want to grab lunch?(有人给你发送了3条消息,但我无法阅读他们的名称或该消息中的一些字符。他们说:嗨蒂姆。周六你在吗?想去吃午饭吗?)”。在特定实施例中,通信内容可以来自具有非拉丁文名的发送者,并且包括具有部分非拉丁文字文本字符串的多个消息,该部分非拉丁文字文本字符串的百分比不低于阈值百分比(例如,≥50%)。例如,通信内容716可以来自具有中文名的人。对应读出可以是“Someone sent you 2 messages,but I can’t read their name,or many of thecharacters in the messages(有人给你发了两条消息,但我无法阅读他们的名称或该消息中的许多字符)”。在特定实施例中,通信内容可以来自具有非拉丁名称的发送者,并且包括具有全部是非拉丁文字文本字符串的多个消息。例如,通信内容718可以来自具有中文名的人。对应读出可以是“Someone sent you 2 messages,but I can’t read their name,or the characters in the messages(有人给你发送了两条消息,但我无法阅读他们的名字或该消息中的字符)”。
图8示出了包括非拉丁文字文本字符串的通信内容的示例读出。用户805(即,具有中文名)可以请求与他相关联的辅助系统140a向用户815发送消息810。该请求可以通过他的客户端系统130a(例如,智能手机)来提交。辅助系统140a可以通过网络110向与用户815相关联的另一辅助系统140b发送消息810。用户815可以具有两个客户端系统,该两个客户端系统包括智能眼镜130b_1和智能手表130b_2。辅助系统140b可以向智能眼镜130b_1发送指令以读出消息810。读出820可以是“Someone sent you a message,but I can’t readtheir name,or some of the characters in the message.It says:Hi Kim.Are youaround on Saturday,want to get lunch?You can also read the message on yoursmart watch(有人给你发送了一条消息,但我无法阅读他们的名字或该消息中的一些字符。该消息说:嗨金。周六你在吗,想去吃午饭吗?你也可以在你的智能手表上阅读这条消息)”。同时,由于智能眼镜130b_1无法读出消息810的全部内容,因此辅助系统140b可以向智能手表130b_2发送指令以显示消息810。如图8中所示,智能手表130b_2的屏幕可以显示消息825。
在替代实施例中,如果辅助系统140具有对应的语言技能,则辅助系统140可以以类似于拉丁语言文字文本字符串的方式读出外语的非拉丁文字文本字符串。
对于包括语音片段或音频文件的通信内容,辅助系统140可以遵循与照片、视频、gif或标签类似的通用附件处理模式。语音片段或音频文件可以是辅助系统140不可解析的非拉丁内容项。在特定实施例中,对于包括单个语音片段的通信内容,例如,“[audio file]([音频文件])”,读出可以是“[Contact]sent audio([联系人]发送了音频)”。对于包括单条消息和单个语音片段的通信内容,例如“Check out my new karaoke song![audio](来听听我的新卡拉OK歌曲吧![音频])”,读出可以是“[Contact]sent audio and said:Checkout my new karaoke song!([联系人]发送了音频并说:来听听我的新卡拉OK歌曲吧!)”。对于包括单条消息和多个语音片段的通信内容,例如“Help me decide on my karaokesong![voice clip][voice clip](帮我决定我的卡拉OK歌曲![语音片段][语音片段])”,读出可以是“[Contact]sent 2audio files and said:Help me decide on my karaokesong!([联系人]发送了2个音频文件并说:帮我决定我的卡拉OK歌曲!)”。在特定实施例中,通信内容可以包括多条消息和单个语音片段。例如,这样的通信内容可以是“Check out mynew karaoke song![voice clip]I’m gonna slay(来听听我的卡拉OK新歌![语音片段]我要碾压全场)”。对应读出可以是“[Contact]sent audio and 2messages,saying:Checkout my new karaoke song!I’m gonna slay([联系人]发送了一条音频和2条消息,说:来听听我的卡拉OK新歌!我要碾压全场)”。通信内容可以包括多条消息和多个语音片段。例如,这样的通信内容可以是“Help me decide on my karaoke song![voice clip][voiceclip]I’m determined to slay(帮我决定我的卡拉OK歌曲![语音片段][语音片段]我下定决心要碾压全场)”。对应读出可以是“[Contact]sent 2audio files and 2messages,saying:Help me decide on my karaoke song!I’m determined to slay([联系人]发送了2个音频文件和2条消息,说:帮我决定我的卡拉OK歌曲!我下定决心要碾压全场)”。
对于包括链接的通信内容,辅助系统140也可以遵循通用附件处理模式。链接可以由辅助系统140解析。在特定实施例中,对于包括单个链接的通信内容,例如,“[Link]([链接])”,读出可以是“[Contact]sent a link([联系人]发送了一个链接)”。对于包括多个链接的通信内容,例如“[Link][Link]([链接][链接])”,读出可以是“[Contact]sent[#]links([联系人]发送了[#]个链接)”。对于包括单条消息和单个链接的通信内容,例如“What do you think of this one?[Link](你觉得这个怎么样?[链接])”,读出可以是“[Contact]sent a link and said:What do you think of this one?([联系人]发送了一个链接并说:你觉得这个怎么样?)”。对于包括单条消息和多个链接的通信内容,例如“What do you think of these?[Link][Link](你觉得这些怎么样?[链接][链接])”,读出可以是“[Contact]sent 2links and said:What do you think of these?The pup wouldlove them([联系人]发送了2个链接并说:你觉得这些怎么样?小狗会喜欢它们的)”。在特定实施例中,通信内容可以包括多条消息和单个链接。例如,这样的通信内容可以是“Whatdo you think of this one?[Link]The pup would love it(你觉得这个怎么样?[链接]小狗会喜欢它的)”。对应读出可以是“[Contact]sent a link and 2messages,saying:What do you think of this one?The pup would love it([联系人]发送了一个链接和2条消息,说:你觉得这个怎么样?小狗会喜欢它的)”。通信内容可以包括多条消息和多个链接。例如,这样的通信内容可以是“What do you think of these?[Link][Link]The pupwould love them(你觉得这些怎么样?[链接][链接]小狗会喜欢它们的)”。对应读出可以是“[Contact]sent 2links and 2messages,saying:What do you think of these?Thepup would love them([联系人]发送了2个链接和2条消息,说:你觉得这些怎么样?小狗会喜欢它们的)”。
在特定实施例中,通信内容可以包括提及。提及可以由辅助系统140解析。在提及中可以使用“@”符号作为标记特定ID(例如,名称)的机制。辅助系统140可以读出该特定ID而不读出“@”,这是因为已经隐含了该特定性。对于包括单个提及的通信内容,例如“@Jessie(@杰西)”,读出可以是“[Contact]mentioned/tagged you in a message([联系人]在消息中提及/标记了你)”。对于包括单个消息和单个链接的通信内容,例如“@Jessiewhat’s up?(@杰西怎么了?)”,读出可以是“[Contact]mentioned/tagged you in amessage,saying:Jessie,what’s up?([联系人]在消息中提及/标记了你,说:杰西,怎么了?)”。在特定实施例中,通信内容可以包括单个消息和多个提及。例如,这样的通信内容可以是“What do y’all think?@Jessie?@Leif?(你们都怎么想的?@杰西?@列夫?)”。对应读出可以是“[Contact]sent 2messages and mentioned/tagged you,saying:What do y’all think?Jessie?Leif?([联系人]发送了2条消息,并提及/标记了你,说:你们都怎么想的?杰西?列夫?)”。通信内容可以包括多条消息和单个提及。例如,这样的通信内容可以是“What’s up?@Jessie you around this weekend?(怎么了?@杰西这个周末你在吗?)”。对应读出可以是“[Contact]sent 2messages and mentioned/tagged you,saying:What’sup?Jessie,you around this weekend?([联系人]发送了2条消息,并提及/标记了你,说:怎么了?杰西,这个周末你在吗?)”。通信内容可以包括多条消息和多个提及。例如,这样的通信内容可以是“I want to sing Oh You Pretty Things at karaoke.What do y’allthink?@Jessie?@Leif?(我想在卡拉OK唱Oh You Pretty。你们觉得怎么样?@杰西?@列夫?)”。对应读出可以是“[Contact]sent 2messages and mentioned/tagged you,saying:I want to sing Oh You Pretty Things at karaoke.What do y’all think?Jessie?Leif?([联系人]发送了2条消息并提及/标记了你,说:我想在卡拉OK唱Oh You PrettyThings。你们觉得怎么样?杰西?列夫?)”。
在特定实施例中,通信内容可以包括特定于环境的反应。特定于环境的反应可以是辅助系统140不可解析的非拉丁内容项。作为示例而非限制,特定于环境的反应可以包括“喜欢”、“爱”、“笑”、“哇”、“悲伤”和“愤怒”。作为另一示例而非限制,消息收发应用程序可以允许用户利用其它特定于环境的反应(例如,“沉重的黑心”、“眯着眼睛咧嘴笑”、“张着嘴惊讶”、“哭脸”、“愤怒脸”、“竖起大拇指”)对消息作出反应。作为又一示例而非限制,特定于环境的反应可以包括专门为VR头戴式设备/平台而设计的反应。作为又一示例而非限制,特定于环境的反应可以包括与第三方应用程序/平台相关联的反应。在特定实施例中,当读出包括特定于环境的反应的通信内容时,辅助系统140可以遵循通用模式。通用模式可以如下所示。如果没有描述可用于特定于环境的反应,则读出可以类似于“[Contact]reacted toone of your messages([联系人]对你的消息中的一条消息做出了反应)”。如果有描述可用于特定于环境的反应,则读出可以类似于“[Contact]reacted to one of yourmessages with a/an[reaction description]([联系人]利用一个[反应描述]对你的消息中的一条消息作出反应)”。例如,对于“like(喜欢)”,模式可以是“[Contact]liked one ofyour messages([联系人]喜欢你的消息中的一条消息)”。作为另一示例,对于“laugh(笑)”,模式可以是“[Contact]reacted to one of your messages with a laughingface([联系人]利用笑脸对你的消息中的一条消息作出反应)”。作为另一示例,对于“wow(哇)”,模式可以是“[Contact]reacted to one of your messages with a surprisedface([联系人]利用惊讶脸对你的消息中的一条消息作出反应)”。作为另一示例,对于“sad(悲伤)”,模式可以是“[Contact]reacted to one of your messages with a cryingface([联系人]利用哭脸对你的消息中的一条消息作出反应)”。作为又一示例,对于“愤怒”,模式可以是“[Contact]reacted to one of your messages with an angry face([联系人]利用愤怒脸对你的消息中的一条消息作出反应)”。
在特定实施例中,通信内容可以包括电子支付。电子支付可以是辅助系统140不能解析的。当读出包括电子支付的通信内容时,辅助系统140可以遵循各种模式。对于包括单个支付的通信内容,模式可以是“[Contact]sent a payment([联系人]发送了一个支付)”。例如,对于消息:“[Payment]([支付])”,读出可以是“[Contact]sent a[payment]([联系人]发送了一个[支付])”。对于包括单条消息和单个支付的通信内容,模式可以是“[Contact]sent a/an payment and said:[Message]([联系人]发送了一个支付并说:[消息])”。例如,对于通信内容:“Hey girl[payment](嗨女孩[支付])”,读出可以是“[Contact]sent a[payment]]and said:Hey girl([联系人]发送了一个[支付]并说:嗨女孩)”。对于包括单条消息和包含一个电子支付的多个附件的通信内容,模式可以是“[Contact]sent[#][Attachment Type]s and said:[Message]([联系人]发送了[#]个[附件类型],并说:[消息])”。例如,对于通信内容:“[payment]Hey girl[gif]([支付]嗨女孩[gif])”,读出可以是“[Contact]sent a[payment]and a[gif]and said:Hey girl([联系人]发送了一个[Payment]和一个[gif],并说:嗨女孩)”。对于包括多条消息和单个支付的通信内容,模式可以是“[Contact]sent a payment and[#]messages,saying:[Messages]([联系人]发送了一个支付和[#]条消息,说:[消息])”。例如,对于通信内容:“Hey girl[payment]You want to go to the museum tomorrow?(嗨女孩[支付]明天你想去博物馆吗?)”,读出可以是“[Contact]sent a[payment]2messages,saying:Hey girl.You wantto go to the museum tomorrow?([联系人]发送了一个[支付]2条消息,说:嗨女孩。明天你想去博物馆吗?)”。
在特定实施例中,一个或多个非拉丁文字内容项可以包括一个或多个联系人。联系人可以是辅助系统140不可解析的。联系人可以由通信内容的发送者共享。由此,对一个或多个联系人的描述可以包括对该一个或多个联系人中的一个或多个的对应联系人名的分别读出。通信内容可以包括单个联系人。例如,这种通信内容可以是“[Jessie contactcard]([杰西名片])”。对应读出可以是“[联系人]共享了杰西的联系信息。”替代地,读出可以是“[Contact]shared a contact’s details with you.([联系人]与你共享了联系人的细节。)”。通信内容可以包括单条消息和单个联系人。例如,这样的通信内容可以是“Thisis the person I was talking about[Jessie contact card].(这是我说的那个人[杰西名片]。)”。对应读出可以是“[Contact]shared Jessie’s contact information andsaid:This is the person I was talking about.([联系人]共享了杰西的联系信息,并说:这是我说的那个人。)”。替代地,读出可以是“[Contact]shared a contact’s detailsand said:This is the person I was talking about.([联系人]共享了联系人的细节,并说:这是我说的那个人。)”。在特定实施例中,通信内容可以包括多条消息和单个联系人。例如,这样的通信内容可以是“Remember I told you about my friend who quilts?Thisis the person I was talking about[Jessie contact card].(记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人[杰西名片]。)”。对应读出可以是“[Contact]sharedJessie’s contact information and sent 2messages,saying:Remember I told youabout my friend who quilts?This is the person I was talking about.([联系人]分享了Jessie的联系信息,并发送了两条消息,说:记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人。)”。替代地,读出可以是“[Contact]shared a contact’s details andsent 2messages,saying:Remember I told you about my friend who quilts?This isthe person I was talking about.([联系人]分享了一个联系人的细节并发送了两条消息,说:记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人。)”。在特定实施例中,通信内容可以包括多条消息和多个联系人。例如,通信内容可以是“Remember I told youabout my friends who sew?These are them[Jessie contact card][Ilana contactcard][Laura contact card].(记得我跟你说过我那些缝纫的朋友吗?”这些是他们[杰西名片][伊拉娜名片][劳拉名片])。”。对应读出可以是“[Contact]shared 3 contacts—Jessie,Ilana,and Laura—and sent 2 messages,saying:Remember I told you aboutmy friends who sew?These are them.([联系人]共享了3个联系人—杰西、伊拉娜、和劳拉—并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。替代地,读出可以是“[Contact]shared 3 peoples’contact details and sent 2 messages,saying:Remember I told you about my friends who sew?These are them.([联系人]分享了3个人的联系细节,并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。作为另一示例,通信内容可以是“Remember I told you about my friendswho sew?These are them[Jessie contact card][Ilana contact card][Laura contactcard][Leif contact card](记得我跟你说过我那些缝纫的朋友吗?这些是他们[杰西名片][伊拉娜名片][劳拉名片][列夫名片])”。对应读出可以是“[Contact]shared 4contacts—Jessie,Ilana,and 2 others—and sent 2 messages,saying:Remember Itold you about my friends who sew?These are them.([联系人]共享了4个联系人—杰西、伊拉娜和其他2个人—并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。替代地,读出可以是“[Contact]shared 4 peoples’contact details andsent 2 messages,saying:Remember I told you about my friends who sew?These arethem.([联系人]分享了4个人的联系细节,并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。
在特定实施例中,通信内容可以包括资料。资料可以是辅助系统140不可解析的。资料可以由通信内容的发送者共享。通信内容可以包括单个资料。例如,这样的通信内容可以是“[Jessie profile]([杰西资料])”。对应读出可以是“[Contact]shared Jessie’sprofile([联系人]共享了杰西的资料)”。替代地,读出可以是“[Contact]shared aprofile with you([联系人]与你共享了资料)”。通信内容可以包括单个消息和单个资料。例如,这样的通信内容可以是“This is the person I was talking about[Jessieprofile].(这是我说的那个人[杰西资料])”。对应读出可以是“[Contact]shared Jessie’s profile and said:This is the person I was talking about.([联系人]分享了杰西的资料,并说:这是我说的那个人。)”。替代地,读出可以是“[Contact]shared a profileand said:This is the person I was talking about.([联系人]共享了资料,并说:这是我说的那个人。)”。在特定实施例中,通信内容可以包括多条消息和单个资料。例如,这样的通信内容可以是“Remember I told you about my friend who quilts?This is theperson I was talking about[Jessie profile].(记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人[杰西资料]。)”。对应读出可以是“[Contact]shared Jessie’sprofile and sent 2 messages,saying:Remember I told you about my friend whoquilts?This is the person I was talking about.([联系人]分享了杰西的资料,并发送了两条消息,说:记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人。)”。可替代地,读出可以是“[Contact]shared a profile and sent 2 messages,saying:Remember Itold you about my friend who quilts?This is the person I was talking about.([联系人]共享了一个资料,并发送了2条消息,说:记得我跟你说过我那个缝被子的朋友吗?这是我说的那个人。)”。在特定实施例中,通信内容可以包括多条消息和多个资料。例如,通信内容可以是“Remember I told you about my friends who sew?These are them[Jessie profile][Ilana profile][Laura profile].(记得我跟你说过我那些缝纫的朋友吗?”这些是他们[杰西资料][伊拉娜资料][劳拉资料)”。对应读出可以是“[Contact]shared 3 profiles—Jessie,Ilana,and Laura—and sent 2 messages,saying:Remember I told you about my friends who sew?These are them.([联系人]共享了3个资料—杰西、伊拉娜和劳拉—并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。替代地,读出可以是“[Contact]shared 3 profiles and sent 2messages,saying:Remember I told you about my friends who sew?These are them.([联系人]共享了3个资料,并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。作为另一示例,通信内容可以是“Remember I told you about my friendswho sew?These are them[Jessie profile][Ilana profile][Laura profile][Leifprofile].(记得我跟你说过我那些缝纫的朋友吗?这些是他们[杰西资料][伊拉娜资料][劳拉资料][列夫资料]。)”。对应读出可以是“[Contact]shared 4 profiles—Jessie,Ilana,and 2 others—and sent 2 messages,saying:Remember I told you about myfriends who sew?These are them.([联系人]共享了4个资料—杰西、伊拉娜和其他2个人—并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。替代地,读出可以是“[Contact]shared 4 profiles and sent 2 messages,saying:Remember Itold you about my friends who sew?These are them.([联系人]共享了4个资料并发送了2条消息,说:记得我跟你说过我那些缝纫的朋友吗?这些是他们。)”。
在特定实施例中,通信内容可以包括位置。位置可以是辅助系统140不可解析的。位置可以由通信内容的发送者共享。当读出这样的通信内容时,辅助系统140可以遵循与照片、视频、gif或标签类似的通用附件处理模式。对于包括单个位置的通信内容,例如“[Location]([位置])”,读出可以是“[Contact]shared a location([联系人]共享了一个[位置])”。对于包括多个位置的通信内容,例如“[Location][Location]([位置][位置])”,读出可以是“[Contact]shared 2locations([联系人]共享了2个[位置])”。在特定实施例中,通信内容可以包括单条消息和单个位置。例如,这样的通信内容可以是“Meet here?[Location](在这见面?[位置])”。对应读出可以是“[Contact]shared a location andsaid:Meet here?([联系人]共享了一个位置,并说:在这见面?)”。在特定实施例中,通信内容可以包括多条消息和单个位置。例如,这样的通信内容可以是“Meet here?[Location]They’ve got a patio(在这见面?[位置]他们有一个露台)”。对应读出可以是“[Contact]shared a location and sent 2 messages,saying:Meet here?They’ve got a patio([联系人]共享了一个位置,并发送了2条消息,说:在这见面?他们有一个露台)”。在特定实施例中,通信内容可以包括多条消息和多个位置。例如,这样的通信内容可以是“Want tograb dinner?[Location]or[Location](想去吃顿饭吗?[位置]或[位置])”。对应读出可以是“[Contact]sent 2locations and 2messages,saying:Want to grab dinner?([联系人]发送了2个位置和2条消息,说:想去吃顿饭吗?)”。替代地,读出可以是“[Contact]sent2locations and 2messages,saying:Want to grab dinner?<pause>Shared Location<pause>Or<pause>Shared Location<pause>([联系人]发送了2个位置和2条消息,说:想去吃顿饭吗?<停顿>共享的位置<停顿>或<停顿>共享的位置<停顿>)”。
在特定实施例中,通信内容可以包括帖子。帖子可以是辅助系统140可解析的。这些帖子可以由通信内容的发送者共享。当读出这样的通信内容时,辅助系统140可以遵循与照片、视频、gif或标签类似的通用附件处理模式。对于包括单个帖子的通信内容,例如“[Post]([帖子])”,读出可以是“[Contact]shared a post.([联系人]共享了一个帖子。)”。对于包括多个帖子的通信内容,例如“[Post][Post]([帖子][帖子])”,读出可以是“[Contact]shared[#]posts.([联系人]共享了[#]个帖子。)”。在特定实施例中,通信内容可以包括单条消息和单个帖子。例如,这样的通信内容可以是“Reminds me of us![Post](让我想起了我们![帖子])”。对应读出可以是“[Contact]shared a post and said:Reminds me of us!([联系人]分享了一个帖子,并说:让我想起了我们!)”。在特定实施例中,通信内容可以包括单条消息和多个帖子。例如,这样的通信内容可以是“Check outthis nonsense.[Post][Post](看看这些胡说八道。[帖子][帖子])”。对应读出可以是“[Contact]shared 2posts and said:Check out this nonsense.([联系人]分享了2个帖子,并说:看看这些胡说八道。)”。在特定实施例中,通信内容可以包括多条消息和单个帖子。例如,这样的通信内容可以是“Check out this nonsense.[Post]Reminds me of us!(看看这些胡说八道。[帖子]让我想起了我们!)”。对应读出可以是“[Contact]sent a postand 2messages,saying:Check out this nonsense.Reminds me of us!([联系人]发送了一个帖子和两条消息,说:看看这些胡说八道。让我想起了我们!)”。在特定实施例中,通信内容可以包括多条消息和多条帖子。例如,这样的通信内容可以是“Check out thisnonsense.[Post][Post]Reminds me of us!(看看这些胡说八道。[帖子][帖子]让我想起了我们!)”。对应读出可以是“[Contact]sent 2posts and 2messages,saying:Check outthis nonsense.Reminds me of us!([联系人]发送了2个帖子和2条消息,说:看看这些胡说八道。让我想起了我们!)”。
在特定实施例中,通信内容可以包括常见的首字母缩略词和缩写词。这些首字母缩略词和缩写词可以是辅助系统140可解析的。辅助系统140可以逐个字符地读出首字母缩略词和缩写词。表3示出了示例常见的首字母缩略词和缩写词。在特定实施例中,辅助系统140可以将纯X和O的任何组合视为逐个字符地读出。在特定实施例中,辅助系统140可以分别将“2moro”、“2morrow”、“2day”、“2nite”、“2night”、“4get”、“4u”、“4ever”、“gr8”和“w00t”读出为“tomorrow(明天)”、“tomorrow(明天)”、“today(今天)”、“tonight(今晚)”、“tonight(今晚)”、“forget(忘记)”、“for you(为了你)”、“forever(永远)”、“great(伟大)”和“woot(噢吼)”。在特定实施例中,辅助系统140可以分别将“txt”、“plz”、“ppl”、“abt”、“yr”、“msg”、“pls”、“etc”、“hrs”、“appt”、“nxt”、“tmrw”和“sry”读出为“text(文本)”、“please(请)”、“people(人)”、“about(关于)”、“year(年)”、“message(消息)”、“please(请)”、“et cetera(等)”、“appointment(约会)”、“next(下一个)”、“tomorrow(明天)”、和“sorry(对不起)”。
表3.常见的首字母缩略词和缩写词
在特定实施例中,通信内容可以包括文件。文件可以是辅助系统140完全或部分不可解析的。文件可以由通信内容的发送者共享。辅助系统140可以读出通信内容,并且还可以告诉用户存在具有文件的通信内容,类似于包括照片、视频、gif或标签的通信内容。在特定实施例中,通信内容可以包括产品,例如,游戏应用程序。该产品可以由通信内容的发送者共享。辅助系统140可以读出通信内容,并且还可以告诉用户存在具有产品的通信内容,类似于包括照片、视频、gif或标签的通信内容。
在特定实施例中,通信内容可以包括主题标签。主题标签可以是辅助系统140可解析的。辅助系统可以读出具有“hashtag(主题标签)”的主题标签,该“hashtag(主题标签)”在该主题标签的内容之前。作为示例而非限制,辅助系统140可以分别将“#sunday”、“#sundayvibes”、“#2legit2quit”和“#cpwe20”读出为“hashtag Sunday(主题标签周日)”、“hastag Sunday vibes(主题标签周日氛围)”、“hashtag too legit to quit(主题标签太合法无法拒绝)”和“hashtag cpwe twenty(主题标签cpwe二十)”。
图9示出了用于读出包括非拉丁文字内容项的通信内容的示例方法900。该方法可以在步骤910处开始,其中辅助系统140可以接收来自发送者的通信内容,其中,该通信内容指向一个或多个接收者,其中,该发送者与非拉丁文字语言名相关联。在步骤920,辅助系统140可以访问包括零个或多个拉丁文字文本字符串和一个或多个非拉丁文字内容项的通信内容,其中,该一个或多个非拉丁文字内容项包括以下项中的一者或多者:非拉丁文字语言文本字符串、表情、符号、图像、视频、图形交换格式(GIF)、标签、语音片段、音频片段、链接、命名实体的提及、社交网络反应、电子支付、联系人、位置、文件、帖子、主题标签、首字母缩略词、缩写词或基于符号的表情。在步骤930处,辅助系统140可以基于一个或多个解析规则来确定通信内容的读出,其中,该一个或多个解析规则基于非拉丁文字内容项的一个或多个属性指定了读出的一种或多种格式,其中,读出包括零个或多个拉丁文字文本字符串、对一个或多个非拉丁文字内容项的描述、以及对与发送者相关联的非拉丁文字语言名的概括,其中,该一个或多个属性包括以下项中的一者或多者:对一个或多个非拉丁文字内容项的阈值要求、与该一个或多个非拉丁文字内容项中的每个非拉丁文字内容项相关联的描述难度、或者通信内容中非拉丁文字文本字符串占总文字文本字符串的百分比,其中,该一种或多种格式包括分别读出该一个或多个非拉丁文字内容项中的一个或多个、概括该一个或多个非拉丁文字内容项中的一个或多个、当该一个或多个非拉丁文字内容项的总数超过阈值数量时分别读出该一个或多个非拉丁文字内容项的第一子集、或者当该一个或多个非拉丁文字内容项的总数超过阈值数量时概括该一个或多个非拉丁文字内容项的第二子集,并且其中,对该一个或多个非拉丁文字内容项的描述包括以下项中的一者或多者:对该一个或多个非拉丁文字内容项中的一个或多个中的每个的分别读出、或者针对该一个或多个非拉丁文字内容项中的一个或多个的概括。在步骤940处,辅助系统140可以向与一个或多个接收者中的一个接收者相关联的客户端系统130发送用于呈现通信内容的读出的音频渲染的指令,其中,客户端系统130包括一个或多个渲染设备、和一个或多个伴随设备,并且其中,该一种或多种格式包括在一个或多个目标设备处渲染读出,该一个或多个目标设备是从渲染设备和伴随设备中选择的。特定实施例可以在适当的情况下重复图9的方法的一个或多个步骤。虽然本公开描述和示出了图9的方法的按照特定顺序进行的特定步骤,但本公开考虑了图9的方法的以任何合适的顺序进行的任何合适的步骤。此外,虽然本公开描述和示出了包括图9的方法的特定步骤的用于读出包括非拉丁文字内容项的通信内容的示例方法,但本公开考虑了包括任何合适的步骤的用于读出包括非拉丁文字内容项的通信内容的任何合适的方法,在适当的情况下,该方法可以包括图9的方法的步骤中的所有步骤、一些步骤,或不包括图9的方法的步骤。此外,虽然本公开描述和示出了执行图9的方法的特定步骤的特定部件、设备或系统,但本公开考虑了执行图9的方法的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
隐私
在特定实施例中,计算系统的一个或多个对象(例如,内容或其它类型的对象)可以与一个或多个隐私设置相关联。一个或多个对象可以被存储在任何合适的计算系统或应用上、或者以其它方式与任何合适的计算系统或应用相关联,该计算系统或应用例如是社交网络系统160、客户端系统130、辅助系统140、第三方系统170、社交网络应用程序、辅助应用程序、消息收发应用程序、照片共享应用程序、或任何其它合适的计算系统或应用程序。虽然本文中所论述的示例处于在线社交网络的上下文中,但这些隐私设置可以被应用于任何其它合适的计算系统。可以以任何合适的方式(例如,以与对象相关联的方式、以授权服务器上的索引的方式、以另一合适的方式、或其任何合适的组合的方式)存储对象的隐私设置(或“访问设置”)。对象的隐私设置可以指定在在线社交网络内可以如何访问、存储、或以其它方式使用(例如,查看或共享、修改、复制、执行、显露、识别)对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其它实体访问该对象时,该对象可以被描述为相对于该用户或其它实体是“可见的”。作为示例而非限制,在线社交网络的用户可以指定用户资料页面的隐私设置,该隐私设置标识了一组可以访问用户资料页面上的工作经验信息的用户,从而拒绝其他用户访问该信息。
在特定实施例中,对象的隐私设置可以指定不应被允许访问与对象相关联的特定信息的用户或其它实体的“被阻止列表”。在特定实施例中,该被阻止列表可以包括第三方实体。该被阻止列表可以指定一个或多个用户或实体,对于这些用户或实体,对象是不可见的。作为示例而非限制,用户可以指定一组不可以访问与该用户相关联的相册的用户,从而拒绝这些用户访问该相册(同时也可能允许不在指定的一组用户内的特定用户访问该相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问该社交图谱元素、与该社交图谱元素相关联的信息、或与该社交图谱元素相关联的对象。作为示例而非限制,特定照片可以具有隐私设置,该隐私设置指定只有在该照片中标记的用户和在该照片中标记的用户的朋友可以访问该照片。在特定实施例中,隐私设置可以允许用户选择让或不选择让:社交网络系统160或辅助系统140存储/记录他们的内容、信息或动作,或者与其它系统(例如,第三方系统170)共享他们的内容、信息或动作。虽然本公开描述了以特定方式使用特定隐私设置,但本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,社交网络系统160可以(例如,在网页、模块、一个或多个对话框、或任何其它合适的界面内)向第一用户呈现“隐私向导(wizard)”,以帮助第一用户指定一个或多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于从指定对隐私设置的改变或确认的第一用户接受一个或多个输入的一个或多个输入域、或其任何合适的组合。在特定实施例中,社交网络系统160可以向第一用户提供“控制面板”功能,该功能可以向第一用户显示第一用户的当前隐私设置。可以在任何合适的时间(例如,在来自召唤控制面板功能的第一用户的输入之后、在特定事件或触发动作发生之后)向第一用户显示控制面板功能。控制面板功能可以允许第一用户以任何合适的方式(例如,将第一用户重定向到隐私向导)在任何时间修改第一用户的当前隐私设置中的一个或多个当前隐私设置。
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而非限制,可以针对以下用户指定访问或拒绝访问:特定用户(例如,只有我、我的室友、我的老板)、特定分离度内的用户(例如,朋友、或朋友的朋友)、用户群组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无用户(“私人”)、第三方系统170的用户、特定应用(例如,第三方应用、外部网站)、其它合适的实体、或其任何合适的组合。虽然本公开描述了允许访问或拒绝访问的特定粒度,但本公开考虑了允许访问或拒绝访问的任何合适的粒度。
在特定实施例中,一个或多个服务器162可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其它实体)的对存储在数据存储库164中的特定对象的请求,社交网络系统160可以向数据存储库164发送对该对象的请求。该请求可以识别与该请求相关联的用户,并且如果授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象,则该对象可以仅被发送给该用户(或该用户的客户端设备130)。如果请求用户未被授权访问该对象,则授权服务器可以阻止从数据存储库164检索所请求的对象,或者可以阻止将所请求的对象发送给该用户。在搜索查询上下文中,只有当查询用户被授权访问该对象时(例如,如果针对该对象的隐私设置允许该对象被显露给该查询用户、允许该对象被该查询用户发现或允许该对象以其它方式对该查询用户可见),才可以提供该对象作为搜索结果。在特定实施例中,对象可以表示通过用户的新闻馈送对该用户可见的内容。作为示例而非限制,一个或多个对象可以对用户的“趋势(Trending)”页面可见。在特定实施例中,对象可以对应于特定用户。该对象可以是与特定用户相关联的内容,或者可以是该特定用户的帐户、或者存储在社交网络系统160或其它计算系统上的信息。作为示例而非限制,第一用户可以通过在线社交网络的“你可能认识的人(People You May Know)”功能或者通过查看第一用户的朋友列表来查看在线社交网络的一个或多个第二用户。作为示例而非限制,第一用户可以指定他们不希望在他们的新闻流或朋友列表中看到与特定第二用户相关联的对象。如果针对该对象的隐私设置不允许该对象显露在用户面前、被用户发现或对用户可见,则可以从搜索结果排除该对象。虽然本公开描述了以特定方式实施隐私设置,但本公开考虑了以任何合适的方式实施隐私设置。
在特定实施例中,与用户相关联的相同类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可以具有不同类型的隐私设置。作为示例而非限制,第一用户可以指定第一用户的状态更新是公开的,但是第一用户所共享的任何图像仅对在线社交网络上的第一用户的朋友可见。作为另一示例而非限制,用户可以针对不同类型的实体(例如,个人用户、朋友的朋友、关注者、用户群组或公司实体)指定不同的隐私设置。作为另一示例而非限制,第一用户可以指定一组可查看由第一用户发布的视频的用户,同时防止该视频对第一用户的雇主可见。在特定实施例中,可以针对不同的用户群组或用户人口统计提供不同的隐私设置。作为示例而非限制,第一用户可以指定与第一用户就读于同一大学的其他用户可以查看第一用户的照片,但是作为第一用户的家庭成员的其他用户不可以查看那些相同的照片。
在特定实施例中,社交网络系统160可以针对特定对象类型的每个对象提供一个或多个默认隐私设置。被设置为默认的针对对象的隐私设置可以被与该对象相关联的用户改变。作为示例而非限制,由第一用户发布的所有图像可以具有仅对第一用户的朋友可见的默认隐私设置,并且对于特定图像,第一用户可以将针对该图像的隐私设置改变为对朋友和朋友的朋友可见。
例如,在特定实施例中,隐私设置可以允许用户指定(例如,通过选择、通过不选择)社交网络系统160或辅助系统140是否可以出于任何目的而接收、收集、记录或存储与该用户相关联的特定对象或信息。在特定实施例中,隐私设置可以允许第一用户指定特定应用或进程是否可以访问、存储或使用与该用户相关联的特定对象或信息。隐私设置可以允许用户选择让或不选择让特定应用或进程访问、存储或使用对象或信息。社交网络系统160或辅助系统140可以为了向第一用户提供特定功能或服务而访问这种信息,但社交网络系统160或辅助系统140不能出于任何其它目的而访问该信息。在访问、存储或使用这些对象或信息之前,社交网络系统160或辅助系统140可以提示用户在允许任何此类动作之前提供如下隐私设置:该隐私设置指定哪些应用程序或进程(如果存在)可以访问、存储或使用这些对象或信息。作为示例而非通过限制,第一用户可以经由与在线社交网络相关的应用程序(例如,消息收发应用程序)向第二用户发送消息,并且可以指定如下隐私设置:社交网络系统160或辅助系统140不应存储这些消息。
在特定实施例中,用户可以指定社交网络系统160或辅助系统140是否可以访问、存储或使用与第一用户相关联的特定类型的对象或信息。作为示例而非限制,第一用户可以指定由第一用户通过社交网络系统160或辅助系统140发送的图像可以不被社交网络系统160或辅助系统140存储。作为另一示例而非限制,第一用户可以指定从第一用户发送到特定第二用户的消息可以不被社交网络系统160或辅助系统140存储。作为又一示例而非限制,第一用户可以指定经由特定应用程序发送的所有对象可由社交网络系统160或辅助系统140保存。
在特定实施例中,隐私设置可以允许第一用户指定是否可以从特定客户端系统130或第三方系统170访问与第一用户相关联的特定对象或信息。隐私设置可以允许第一用户选择或不选择从特定设备(例如,用户的智能电话上的电话簿)、从特定应用(例如,消息收发应用)、或从特定系统(例如,电子邮件服务器)访问对象或信息。社交网络系统160或辅助系统140可以提供关于每个设备、系统或应用的默认隐私设置,并且/或者第一用户可以被提示以针对每个上下文指定特定隐私设置。作为示例而非限制,第一用户可以利用社交网络系统160或辅助系统140的位置服务特征来提供对用户附近的餐厅或其它地方的推荐。第一用户的默认隐私设置可以指定社交网络系统160或辅助系统140可以使用从第一用户的客户端系统130提供的位置信息来提供基于位置的服务,但是可以指定社交网络系统160或辅助系统140可以不存储第一用户的位置信息或可以不将第一用户的位置信息提供给任何第三方系统170。第一用户可以随后更新隐私设置以允许位置信息被第三方图像共享应用使用,以便对照片进行地理标记。
在特定实施例中,隐私设置可以允许用户指定可以从其访问对象的一个或多个地理位置。对对象的访问或拒绝访问可以取决于试图访问对象的用户的地理位置。作为示例而非限制,用户可以共享对象并指定只有在相同城市中的用户可以访问或查看该对象。作为另一示例而非限制,第一用户可以共享对象并指定仅当第一用户在特定位置时该对象才对第二用户可见。如果第一用户离开该特定位置,则该对象可能对第二用户不再可见。作为另一示例而非限制,第一用户可指定对象仅对与第一用户在阈值距离内的第二用户可见。如果第一用户随后改变位置,则具有对该对象的访问权的原始第二用户可能失去访问权,而新的一组第二用户在他们来到第一用户的阈值距离内时可以获得访问权。
在特定实施例中,社交网络系统160或辅助系统140可以具有这样的功能:可以使用用户的个人或生物识别信息作为输入以用于用户认证或体验个性化的目的。用户可以选择使用这些功能来增强他们对在线社交网络的体验。作为示例而非限制,用户可以向社交网络系统160或辅助系统140提供个人或生物识别信息。用户的隐私设置可以指定可以仅针对特定进程(例如认证)使用此类信息,并且还指定此类信息不可以与任何第三方系统170共享或不可以被用于与社交网络系统160或辅助系统140相关联的其它进程或应用程序。作为另一示例而非限制,社交网络系统160可以为用户提供用于向在线社交网络提供声纹记录的功能。作为示例而非限制,如果用户希望利用在线社交网络的该功能,则用户可以提供他或她自己的语音的语音记录来提供在线社交网络上的状态更新。可以将语音输入的记录与用户的声纹进行比较,以确定用户说了什么词语。用户的隐私设置可以指定此类语音记录可以仅被用于语音输入目的(例如,以认证用户、发送语音消息、改进语音识别,以便使用在线社交网络的语音操作特征),并且还可以指定此类语音记录不可以与任何第三方系统170共享或者被与社交网络系统160相关联的其它进程或应用程序使用。
系统和方法
图10示出了示例计算机系统1000。在特定实施例中,一个或多个计算机系统1000执行本文中所描述或所示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1000提供本文中所描述或所示出的功能。在特定实施例中,在一个或多个计算机系统1000上运行的软件执行本文中所描述或所示出的一个或多个方法的一个或多个步骤,或者提供本文中所描述或所示出的功能。特定实施例包括一个或多个计算机系统1000的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统1000。本公开考虑了采用任何合适物理形式的计算机系统1000。作为示例而非限制,计算机系统1000可以是嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统网、移动电话、个人数字助理(personal digital assistant,PDA)、服务器、平板计算机系统、或这些中的两者或更多者的组合。在适当的情况下,计算机系统1000可以:包括一个或多个计算机系统1000;是单一的或分布式的;跨多个位置;跨多个机器;跨多个数据中心;或位于云中,该云可以包括一个或多个网络中的一个或多个云部件。在适当的情况下,一个或多个计算机系统1000可以在无实质性的空间限制或时间限制的情况下,执行本文中所描述或所示出的一个或多个方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统1000可以实时地或以分批模式执行本文中所描述或所示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1000可以在不同的时间或在不同的位置处执行本文中所描述或所示出的一个或多个方法的一个或多个步骤。
在特定实施例中,计算机系统1000包括处理器1002、内存1004、存储器1006、输入/输出(I/O)接口1008、通信接口1010、和总线1012。虽然本公开描述和示出了具有按特定布置的特定数量的特定部件的特定计算机系统,但本公开考虑了具有按任何合适的布置的任何合适数量的任何合适部件的任何合适计算机系统。
在特定实施例中,处理器1002包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行指令,处理器1002可以从内部寄存器、内部高速缓冲存储器、内存1004、或存储器1006中检索(或提取)指令;对这些指令进行解码并执行这些指令;并且随后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存1004或存储器1006。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适的数量的任何合适的内部高速缓冲存储器的处理器1002。作为示例而非限制,处理器1002可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、以及一个或多个页表缓存(translationlookaside buffer,TLB)。指令高速缓冲存储器中的指令可以是内存1004或存储器1006中的指令的副本,并且指令高速缓冲存储器可以加速处理器1002对这些指令的检索。数据高速缓冲存储器中的数据可以是:内存1004或存储器1006中、供在处理器1002处执行的指令操纵的数据的副本;在处理器1002处执行的先前指令的结果,以供在处理器1002处执行的后续指令访问或以用于写入内存1004或存储器1006;或者其他合适的数据。数据高速缓冲存储器可以加速处理器1002的读操作或写操作。TLB可以加速处理器1002的虚拟地址转译。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器1002。在适当的情况下,处理器1002可以:包括一个或多个算术逻辑单元(arithmetic logicunit,ALU);是多核处理器;或者包括一个或多个处理器1002。虽然本公开描述和示出了特定处理器,但本公开考虑了任何合适的处理器。
在特定实施例中,内存1004包括用于存储由处理器1002执行的指令或供处理器1002操纵的数据的主内存。作为示例而非限制,计算机系统1000可以将指令从存储器1006或另一源(例如,另一计算机系统1000)加载到内存1004。然后,处理器1002可以将指令从内存1004加载到内部寄存器或内部高速缓冲存储器。为了执行指令,处理器1002可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对这些指令进行解码。在对指令的执行期间或之后,处理器1002可以将一个或多个结果(其可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器1002可以将这些结果中的一个或多个结果写入内存1004。在特定实施例中,处理器1002仅执行一个或多个内部寄存器或内部高速缓冲存储器中或者内存1004(而不是存储器1006或其它地方)中的指令,并且仅操纵一个或多个内部寄存器或内部高速缓冲存储器中或内存1004(而不是存储器1006或其它地方)中的数据。一个或多个内存总线(其可以各自包括地址总线和数据总线)可以将处理器1002耦接到内存1004。如下所述,总线1012可以包括一个或多个内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,MMU)位于处理器1002与内存1004之间,并且促进由处理器1002请求的对内存1004的访问。在特定实施例中,内存1004包括随机存取存储器(random access memory,RAM)。在适当的情况下,RAM可以是易失性存储器。在适当的情况下,RAM可以是动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存1004可以包括一个或多个内存1004。虽然本公开描述和示出了特定内存,但本公开考虑了任何合适的内存。
在特定实施例中,存储器1006包括用于数据或指令的大容量存储器。作为示例而非限制,存储器1006可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器(floppydisk drive,FDD)、闪存、光盘、磁光盘、磁带、或通用串行总线(universal serial bus,USB)驱动器、或这些中的两者或更多者的组合。在适当的情况下,存储器1006可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器1006可以处于计算机系统1000的内部或外部。在特定实施例中,存储器1006是非易失性、固态存储器。在特定实施例中,存储器1006包括只读存储器(read-only memory,ROM)。在适当的情况下,ROM可以是掩模编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电子可擦除PROM(electrically erasable PROM,EEPROM)、电改写ROM(electrically alterableROM,EAROM)、或闪存、或这些中的两者或更多者的组合。本公开考虑了采用任何合适的物理形式的大容量存储器1006。在适当的情况下,存储器1006可以包括促进处理器1002与存储器1006之间的通信的一个或多个存储器控制单元。在适当的情况下,存储器1006可以包括一个或多个存储器1006。虽然本公开描述和示出了特定存储器,但本公开考虑了任何合适的存储器。
在特定实施例中,I/O接口1008包括硬件、软件或这两者,该硬件、软件或这两者为计算机系统1000与一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统1000可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现人与计算机系统1000之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像头、手写笔、平板电脑、触摸屏、轨迹球、摄影机、另一合适的I/O设备、或这些中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于任何合适的I/O设备的任何合适的I/O接口1008。在适当的情况下,I/O接口1008可以包括一个或多个设备或软件驱动器,该一个或多个设备或软件驱动器使处理器1002能够驱动这些I/O设备中的一个或多个I/O设备。在适当的情况下,I/O接口1008可以包括一个或多个I/O接口1008。虽然本公开描述和示出了特定I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口1010包括硬件、软件或这两者,该硬件、软件或这两者为计算机系统1000与一个或多个其它计算机系统1000或与一个或多个网络之间的通信(例如,基于数据包(packet-based)的通信)提供一个或多个接口。作为示例而非限制,通信接口1010可以包括用于与以太网或其它基于有线的网络进行通信的网络接口控制器(network interface controller,NIC)或网络适配器、或者用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于任何合适的网络的任何合适的通信接口1010。作为示例而非限制,计算机系统1000可以与以下网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或多个部分、或这些中的两者或更多者的组合。这些网络中的一个或多个网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1000可以与以下网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN(BLUETOOTH WPAN))、Wi-Fi网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for Mobile Communications,GSM)网络)、或其它合适的无线网络、或这些中的两者或更多者的组合。在适当的情况下,计算机系统1000可以包括用于这些网络中的任何网络的任何合适的通信接口1010。在适当情况下,通信接口1010可以包括一个或多个通信接口1010。虽然本公开描述和示出了特定通信接口,但本公开考虑了任何合适的通信接口。
在特定实施例中,总线1012包括将计算机系统1000的部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线1012可以包括加速图形端口(Accelerated GraphicsPort,AGP)或其它图形总线、增强工业标准架构(Enhanced Industry StandardArchitecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、内存总线、微通道架构(MicroChannel Architecture,MCA)总线、外围部件互连(Peripheral Component Interconnect,PCI)总线、快速PCI(PCI-Express,PCIe)总线、串行高级技术附件(serial advancedtechnology attachment,SATA)总线、本地视频电子标准协会(Video ElectronicsStandards Association local,VLB)总线、或另一合适的总线、或这些中的两者或更多者的组合。在适当的情况下,总线1012可以包括一个或多个总线1012。虽然本公开描述和示出了特定总线,但本公开考虑了任何合适的总线或互连。
在本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其它集成电路(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specificIC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动(FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动、安全数字(SECURE DIGITAL)卡或驱动器、任何其它合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或者易失性和非易失性的组合。
其它
在本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括性的而非排他性的。因此,在本文中,除非另有明确指示或通过上下文另有指示,否则“A或B”表示“A、B、或这两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的,也是各自的。因此,在本文中,除非另有明确指示或通过上下文另有指示,否则“A和B”表示“联合地或各自地A和B”。
本公开的范围涵盖本领域普通技术人员将理解的、对文本中所描述或所示出的示例实施例的所有改变、替换、变型、变更和修改。本公开的范围不限于本文中所描述或所示出的示例实施例。此外,虽然本公开将本文中的相应实施例描述和示出为包括特定部件、元素、特征、功能、操作或步骤,但这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、在本文中任何地方所描述或所示出的任何部件、元素、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求中对适用于、布置为、能够、配置为、实现为、可操作为或操作用于执行特定功能的装置或系统、或者该装置或系统的部件的引用涵盖该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件如此适用于、布置为、能够、配置为、实现为、可操作或操作即可。此外,虽然本公开将特定实施例描述或示出为提供特定优点,但特定实施例可以提供这些优点中的一些或全部优点,或者可以不提供这些优点。

Claims (15)

1.一种方法,包括:由一个或多个计算系统:
访问通信内容,所述通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;
基于一个或多个解析规则来确定所述通信内容的读出,其中,所述一个或多个解析规则基于所述一个或多个非拉丁文字内容项的一个或多个属性指定了所述读出的一种或多种格式,并且其中,所述读出包括所述零个或多个拉丁文字文本字符串、以及对所述一个或多个非拉丁文字内容项的描述;以及
向客户端系统发送用于呈现所述通信内容的所述读出的音频渲染的指令。
2.根据权利要求1所述的方法,还包括:
接收来自发送者的所述通信内容,其中,所述通信内容指向一个或多个接收者,并且其中,所述客户端系统与所述一个或多个接收者中的一个接收者相关联;并且优选地,
i.其中,所述发送者与非英语拉丁名相关联,其中,所述读出还包括与所述发送者相关联的所述非英语拉丁名的发音,并且其中,所述发音是基于与所述非英语拉丁名相关联的英语或非英语中的一者或多者的;和/或
ii.其中,所述发送者与非拉丁文字语言名相关联,并且其中,所述读出还包括对与所述发送者相关联的所述非拉丁文字语言名的概括。
3.根据权利要求1或2所述的方法,其中,所述一个或多个非拉丁文字内容项包括以下项中的一者或多者:非拉丁文字语言文本字符串、表情、符号、图像、视频、图形交换格式(GIF)、标签、语音片段、音频片段、链接、对命名实体的提及、特定于环境的反应、电子支付、联系人、位置、文件、帖子、主题标签、首字母缩略词、缩写词、或基于符号的表情。
4.根据权利要求1、2或3所述的方法,其中,所述一种或多种格式包括:
分别读出所述一个或多个非拉丁文字内容项中的一个或多个;
概括所述一个或多个非拉丁文字内容项中的一个或多个;
当所述一个或多个非拉丁文字内容项的总数量超过阈值数量时,分别读出所述一个或多个非拉丁文字内容项的第一子集;或
当所述一个或多个非拉丁文字内容项的总数量超过所述阈值数量时,概括所述一个或多个非拉丁文字内容项的第二子集。
5.根据前述权利要求中任一项所述的方法,其中,所述客户端系统包括一个或多个渲染设备、和一个或多个伴随设备,并且其中,所述一种或多种格式包括在一个或多个目标设备处渲染所述读出,所述一个或多个目标设备是从所述一个或多个渲染设备、和所述一个或多个伴随设备中选择的。
6.根据前述权利要求中任一项所述的方法,其中,对所述一个或多个非拉丁文字内容项的描述包括以下项中的一者或多者:针对所述一个或多个非拉丁文字内容项中的一个或多个中的每个的分别读出、或者针对所述一个或多个非拉丁文字内容项中的一个或多个的概括。
7.根据前述权利要求中任一项所述的方法,其中,所述一个或多个属性包括以下项中的一者或多者:对所述一个或多个非拉丁文字内容项的阈值要求、或者与所述一个或多个非拉丁文字内容项中的每个相关联的描述难度。
8.根据前述权利要求中任一项所述的方法,其中,所述一个或多个属性包括对所述一个或多个非拉丁文字内容项的阈值要求,并且其中,所述一种或多种格式包括以下项中的一者或多者:
分别读出所述一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足所述阈值要求的相应第一索引相关联;或
概括所述一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足所述阈值要求的相应第二索引相关联。
9.根据前述权利要求中任一项所述的方法,其中,所述一个或多个属性包括与所述一个或多个非拉丁文字内容项中的每个相关联的描述难度,并且其中,所述一种或多种格式包括以下项中的一者或多者:
分别读出所述一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足难度要求的相应描述难度相关联;或
概括所述一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足所述难度要求的相应描述难度相关联。
10.根据前述权利要求中任一项所述的方法,其中,所述一个或多个属性包括:对所述一个或多个非拉丁文字内容项的阈值要求、以及与所述一个或多个非拉丁文字内容项中的每个相关联的描述难度,并且其中,所述一种或多种格式包括以下项中的一者或多者:
分别读出所述一个或多个非拉丁文字内容项中的一个或多个第一非拉丁文字内容项,其中,每个第一非拉丁文字内容项与满足所述阈值要求的相应第一索引和满足难度要求的相应描述难度相关联;或
概括所述一个或多个非拉丁文字内容项中的一个或多个第二非拉丁文字内容项,其中,每个第二非拉丁文字内容项与不满足所述阈值要求的相应第二索引或不满足所述难度要求的相应描述难度相关联。
11.根据前述权利要求中任一项所述的方法,其中,所述一个或多个非拉丁文字内容项包括一个或多个非英语拉丁文字文本字符串,其中,对所述一个或多个非英语拉丁文字文本字符串的描述包括针对所述一个或多个非英语拉丁文字内容项中的一个或多个中的每个的分别读出,其中,所述分别读出是基于与所述一个或多个非英语拉丁文字文本字符串相关联的英语或非英语中的一者或多者。
12.根据前述权利要求中任一项所述的方法,其中,所述一个或多个非拉丁文字内容项包括一个或多个非拉丁文字文本字符串,并且其中,所述一个或多个属性包括所述通信内容中所述一个或多个非拉丁文字文本字符串占总文字文本字符串的百分比;并且优选地:
i.其中,所述百分比小于阈值百分比,并且其中,所述读出包括零个或多个拉丁文字文本字符串、以及对所述一个或多个非拉丁文字文本字符串的概括;或
ii.其中,所述百分比不小于阈值百分比,并且其中,所述读出包括零个拉丁文字文本字符串、和对所述通信内容的概括。
13.根据前述权利要求中任一项所述的方法,其中,所述一个或多个非拉丁文字内容项包括:
i.一个或多个表情或符号,其中,对所述一个或多个表情或符号的描述包括针对所述一个或多个表情或符号中的一个或多个的分别读出,其中,所述分别读出是基于与对应表情或符号相关联的统一码描述;和/或
ii.一个或多个联系人,并且其中,对所述一个或多个联系人的描述包括对所述一个或多个联系人中的一个或多个的对应联系人名的分别读出。
14.一种或多种计算机可读非暂态存储介质,包含软件,所述软件在被执行时能够操作以:
访问通信内容,所述通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;
基于一个或多个解析规则来确定所述通信内容的读出,其中,所述一个或多个解析规则基于所述一个或多个非拉丁文字内容项的一个或多个属性指定了所述读出的一种或多种格式,并且其中,所述读出包括所述零个或多个拉丁文字文本字符串、以及对所述一个或多个非拉丁文字内容项的描述;以及
向客户端系统发送用于呈现所述通信内容的所述读出的音频渲染的指令。
15.一种系统,包括:一个或多个处理器;以及非暂态存储器,所述非暂态存储器被耦接到所述一个或多个处理器,所述非暂态存储器包括能够被所述一个或多个处理器执行的指令,所述一个或多个处理器在执行所述指令时能够操作以:
访问通信内容,所述通信内容包括零个或多个拉丁文字文本字符串、以及一个或多个非拉丁文字内容项;
基于一个或多个解析规则来确定所述通信内容的读出,其中,所述一个或多个解析规则基于所述一个或多个非拉丁文字内容项的一个或多个属性指定了所述读出的一种或多种格式,并且其中,所述读出包括所述零个或多个拉丁文字文本字符串、以及对所述一个或多个非拉丁文字内容项的描述;以及
向客户端系统发送用于呈现所述通信内容的所述读出的音频渲染的指令。
CN202280015966.5A 2021-02-18 2022-02-17 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出 Pending CN116888661A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163151027P 2021-02-18 2021-02-18
US63/151,027 2021-02-18
US17/566,467 US20220269870A1 (en) 2021-02-18 2021-12-30 Readout of Communication Content Comprising Non-Latin or Non-Parsable Content Items for Assistant Systems
US17/566,467 2021-12-30
PCT/US2022/016706 WO2022178066A1 (en) 2021-02-18 2022-02-17 Readout of communication content comprising non-latin or non-parsable content items for assistant systems

Publications (1)

Publication Number Publication Date
CN116888661A true CN116888661A (zh) 2023-10-13

Family

ID=82899662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280015966.5A Pending CN116888661A (zh) 2021-02-18 2022-02-17 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出

Country Status (3)

Country Link
US (1) US20220269870A1 (zh)
EP (1) EP4278346A1 (zh)
CN (1) CN116888661A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230350928A1 (en) * 2022-04-28 2023-11-02 Knowbl LLC Systems and methods for implementing a virtual agent performing context and query transformations using unsupervised machine learning models

Also Published As

Publication number Publication date
US20220269870A1 (en) 2022-08-25
EP4278346A1 (en) 2023-11-22

Similar Documents

Publication Publication Date Title
CN114600099A (zh) 使用助理系统的基于自然语言理解的元语音系统提高语音识别精度
CN114930363A (zh) 为助理系统生成主动内容
US20230401170A1 (en) Exploration of User Memories in Multi-turn Dialogs for Assistant Systems
US20220284904A1 (en) Text Editing Using Voice and Gesture Inputs for Assistant Systems
JP2023531346A (ja) 補助システムにおけるマルチパーソンコーリングのための単一の要求の使用
US20220366904A1 (en) Active Listening for Assistant Systems
WO2022225729A1 (en) Task execution based on real-world text detection for assistant systems
US20220269870A1 (en) Readout of Communication Content Comprising Non-Latin or Non-Parsable Content Items for Assistant Systems
US20240054156A1 (en) Personalized Labeling for User Memory Exploration for Assistant Systems
US20220366170A1 (en) Auto-Capture of Interesting Moments by Assistant Systems
US20220358917A1 (en) Multi-device Mediation for Assistant Systems
US11983329B1 (en) Detecting head gestures using inertial measurement unit signals
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
EP4343493A1 (en) Presenting attention states associated with voice commands for assistant systems
US20230236555A1 (en) Event-Based Reasoning for Assistant Systems
US20240161742A1 (en) Adaptively Muting Audio Transmission of User Speech for Assistant Systems
WO2022178066A1 (en) Readout of communication content comprising non-latin or non-parsable content items for assistant systems
CN116897353A (zh) 用于辅助系统的使用语音和手势输入的文本编辑
CN117396837A (zh) 助理系统的多设备调解
CN117377942A (zh) 助理系统的主动收听
CN117396838A (zh) 助理系统的基于真实世界文本检测的任务执行
WO2022187480A1 (en) Text editing using voice and gesture inputs for assistant systems
CN117396836A (zh) 由助理系统自动采集有趣时刻

Legal Events

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