适应多个年龄组和/或词汇水平的自动助理的制作方法
背景技术:
人们可以参与与本文称为“自动助理”(也称为“聊天机器人”、“交互式个人助理”、“智能个人助理”、“个人语音助理”、“会话代理”等)的交互式软件应用的人机对话。例如,人类(当他们与自动助理交互时可以被称为“用户”)可以使用自由形式的自然语言输入来提供命令、查询和/或请求(在本文中统称为“查询”),所述自由形式的自然语言输入可以包括被转换成文本并且然后进行处理的口头话语和/或键入的自由形式的自然语言输入。
用户可以使用诸如智能电话、膝上型计算机、平板计算机等的各种不同类型的计算设备来与自动助理接洽。“助理设备”是被主要或甚至排他地设计来促进用户与自动助理之间的人机对话的计算设备。助理设备的一个常见示例是独立交互式扬声器,该独立交互式扬声器使得用户能够口头与自动助理接洽,例如,通过发出预定调用短语来激活自动助理,使得自动助理能够对用户的接下来话语做出响应。
助理设备对口头交互的关注使它们变得尤其适合于供孩子使用。然而,内置到可商购的自动助理中或者使用可商购的自动助理以其他方式可访问的许多特征可能不适合于孩子。例如,如果孩子要问牙仙子是否是真的,则常规的自动助理可以基于在线文档答复“no,thetoothfairyisanimaginarycharacterevokedbyparentstoincentivizechildrentopulllooseteeth(不,牙仙子是由父母唤起以激励孩子拔松牙的虚构人物)”。作为另一示例,自动助理可以被配置成与诸如第三方应用的独立代理接洽,这些独立代理使得用户能够订购商品/服务,诸如比萨、电影、玩具等—这种能力能由可能无法判断其动作的所有后果的孩子使用。附加地,常规的自动助理被设计来与具有全面发展的词汇的人们交互。如果用户的输入不够清楚,则自动助理可以请求澄清和/或消除歧义,而不是试图基于关于用户的意图的“最佳猜测”来解析用户的请求。这样的长时间来回可以引起对各种计算机和/或网络资源的过度消耗(例如,作为生成并渲染对澄清的请求和/或处理所得输入的结果)并且/或者对于具有有限词汇的孩子来说可能令人沮丧。
技术实现要素:
本文描述了用于使得自动助理能够取决于正在与自动助理接洽的用户的所检测的年龄范围和/或“词汇水平”来调整其行为的技术。因此,自动助理能够在与孩子交互时使用一种模式,诸如“儿童模式”,而在与未被视为孩子的用户(例如,青少年和老年人)交互时使用另一模式,诸如“正常”或“成人”模式。在一些实现方式中,自动助理可以能够在一系列模式之间转变,每种模式与特定年龄范围相关联(或者替换地,在与多个词汇水平相关联的一系列模式之间转变)。自动助理的行为的各个方面可以受到基于用户的年龄范围(或词汇水平)而选择的模式影响,这些方面诸如(i)对用户的意图的识别、(ii)解析用户的意图、以及(iii)如何输出解析用户的意图的结果。
如本文更详细地描述的,各种实现方式能够使得自动助理能够生成对各种输入的响应,所述各种输入在缺少本文描述的技术情况下,将不是可解析的。如本文另外描述的,各种实现方式能够减轻自动助理请求对各种输入进行澄清的需要,从而保存各种计算机和/或网络资源,这些计算机和/或网络资源将以其他方式用于生成并渲染此类对澄清的请求并且/或者响应于对澄清的请求而处理进一步输入。另外,配置有本公开的所选方面的自动助理可以在用户可能通常难以与助理设备交互的情形下促进与用户进行更有效的交互。例如,当用户的语音与此类设备的普通用户的语音比不太清楚时(例如,当后续用户是幼儿、具有影响其语音的清晰度的残疾和/或是非母语讲话者时),可能发生这个。
虽然本文的示例主要涉及确定用户的年龄范围并相应地行动,但是这不意在为限制性的。可以检测并使用各种用户特性,诸如性别、位置等,以影响自动助理的行为。例如,在一些实现方式中,可以估计用户的词汇水平,而不是他们的年龄范围,使得具有更高级词汇的较年轻用户将由自动助理适当地与之接洽(即使得高级词汇孩子不被自动助理“驳倒”)。类似地,具有发出成人声音的话音但词汇有限(例如,由于学习障碍、非母语语言等而导致)的年长用户可以由自动助理以有助于他们的有限词汇的方式接洽。此外,当自动助理以与由用户使用的相同词汇水平与用户沟通时,这可以使用户知道他或她在与自动助理沟通时已“使”他或她的语言“通俗易懂”的事实。这可能鼓励用户讲话更自然。
配置有本公开的所选方面的自动助理可以被配置成基于各种信号进入各种年龄相关模式,诸如“标准”(例如,适合于成人)和“儿童模式”(例如,适合于小孩子)。在一些实现方式中,父母或其他成人(例如,监护人、老师)可以使自动助理手动地转变成儿童模式,例如,按需和/或在孩子很可能与自动助理接洽的预定时间间隔期间。
附加地或替换地,在一些实施例中,自动助理可以例如基于用户话音的诸如节奏、音高、音素、词汇、语法、发音等的特性自动地检测(例如,预测、估计)用户的年龄范围。在一些实现方式中,可以训练机器学习模型以基于指示用户讲出的话语(例如,音频记录、特征向量、嵌入)的数据来生成指示用户的所预测的年龄的输出。例如,可以例如使用形式为按讲话者的年龄(或年龄范围)而标记的音频样本的训练示例来训练前馈神经网络,以生成与多个年龄范围相关联的多个概率(例如,2-4岁:25%;5-6岁:38%;7-9岁:22%;10-14岁:10%;14岁以下:5%)。在各种实现方式中,可以选择具有最高概率的年龄范围作为用户的事实年龄范围。在其他实现方式中,可以采用其他类型的人工智能模型和/或算法来估计用户的年龄。
附加地或替换地,在一些实现方式中,例如,响应于一个或多个用户的配置,自动助理可以采用话音识别,以区分并标识各个讲话者。例如,一个家庭可以将其家中的一个或多个助理设备配置成识别所有家庭成员的话音,使得当该成员与自动助理接洽时,每个成员的配置文件可以是活动的。在一些此类实现方式中,每个家庭成员的配置文件可以包括他们的年龄(例如,出生日期),使得在标识讲话者时,自动助理也能够确定该讲话者的年龄。
一旦用户/讲话者的年龄和/或年龄范围(或词汇水平)被确定,它就可以影响自动助理如何操作的各个方面。例如,在一些实现方式中,当确定讲话者是孩子(或具有有限语言能力的另一用户)时,与在确定讲话者是成人或其他熟练的讲话者的情况下比,自动助理关于什么话语将有资格作为调用短语可能不太严格。在一些实现方式中,可以例如在客户端设备上在本地使用一个或多个设备上模型(例如,训练后的人工智能模型)来检测预定调用短语。如果检测到讲话者是孩子,则在一些实现方式中,可以采用为孩子专门地设计的调用模型。附加地或替换地,如果对于所有用户使用单个调用模型,则可以降低将用户的话语分类为适当调用所必须满足的一个或多个阈值,例如,使得可以仍然将孩子在调用时发错音的尝试分类为适当调用短语。
作为另一示例,可以在检测用户的意图时使用用户的所估计的年龄范围和/或词汇水平。在各种实现方式中,各自与具体年龄范围相关联的一个或多个候选“查询理解模型”可能可供由自动助理使用。每个查询理解模型可能可用于确定用户的意图,但是可以与其他查询理解模型不同地操作。为成人设计的“标准”查询理解模型可以具有例如低于与“儿童”查询理解模型相关联的语法容忍度(tolerance)的特定“语法容忍度”。例如,儿童查询理解模型可以具有这样的语法容忍度(例如,最小置信阈值):即便当用户的语法/词汇不完善时也同意给予自动助理相当大的余地来“猜测”用户的意图,如通常年幼孩子的情况那样。相反地,当自动助理选择“标准”查询理解模型时,它可以具有较低的语法容忍度,因此可以更快地从用户寻求消除歧义和/或澄清,而不是“猜测”或选择相对较低的置信候选意图作为用户的实际意图。
附加地或替换地,在一些实现方式中,查询理解模型可以影响由自动助理采用或代表自动助理采用的语音至文本(“stt”)处理。例如,常规的stt处理器可能无法处理孩子的“像giggy一样的喵叫声”的话语。不是生成跟踪由用户做出的话音的语音识别输出(例如,文本),而是stt过程可以简单地拒绝话语(例如,因为未在词典中标识单词),并且自动助理可以说出像“i’msorry,ididn’tcatchthat(对不起,我没听懂)”一样的东西。然而,配置有本公开的所选方面的stt处理器可以响应于确定讲话者是孩子而更加容忍发错音和/或低于平均值语法/词汇。当检测到孩子讲话者时,即使语音识别输出包括未在字典中找到的一些单词/短语,stt处理器也生成跟踪由用户做出的话音的语音识别输出(例如,话语、嵌入等的文本解释)。同样地,自然语言理解模块可以利用以孩子为中心的查询理解模型来将文本“giggy”解释为“kitty(小猫)”,然而如果使用了以成人为中心的查询理解模型,则词语“giggy”可能无法解释。
在一些实现方式中,stt处理器可以在处理孩子使用的简化语法时使用专用解析模块。在一些此类实现方式中,专用解析模块可以使用stt模型,这些stt模型使用现有技术来训练,但是具有更嘈杂的(例如,不完整的、语法上含糊的等)训练数据。例如,在一些实现方式中,训练数据可以至少部分地由原先从成人生成的数据生成,但是根据孩子的声域形式的模型和/或通过向文本输入添加噪声以表示不完整的语法来变换。
一般地说,配置有本公开的所选方面的自动助理可以在与孩子接洽时比常规的自动助理更主动。例如,并且如先前所描述的,可能更愿意“猜测”孩子的意图是什么。附加地,自动助理关于在它检测到孩子讲话者时需要调用短语可能更不严格。例如,在一些实现方式中,如果孩子喊动物名字,则自动助理可以在确定讲话者是孩子时,放弃该孩子讲出调用短语的要求,并且可以替换地模仿动物做出的声音。附加地或替换地,自动助理可以例如响应于语法上不正确的和/或发错音的话音而试图“教导”孩子适当的语法、发音和/或词汇。
关于对用户的意图的解析,各种动作和/或信息可能不适合于孩子。因此,在各种实施例中,基于用户的所预测的年龄范围,自动助理可以确定用户的意图是否是可解析的。例如,如果确定用户是孩子,则自动助理可以限制它能够用于响应于用户的请求而检索信息的数据的在线语料库,例如,限于儿童友好网站的“白名单”和/或远离非儿童友好网站的“黑名单”。例如,相同情况可能适用于音乐。如果孩子说出“playmusic!(播放音乐!)”,则自动助理可以将它播放的音乐限于儿童友好音乐的库,而不是包括通常针对年长个人的音乐的以成人为中心的库。自动助理也可能不要求孩子用户指定播放列表或艺术家,并且可以简单地播放适于用户的检测年龄的音乐。相反地,成人“播放音乐”的请求可以使自动助理寻求关于要播放什么音乐的附加信息。在一些此类实现方式中,也可以在自动助理处于儿童模式时调整音量,例如,以具有比否则在成人情况下可获得的音量低的极限。作为另一示例,各种动作,诸如通过第三方应用来订购商品/服务,可能不适合于孩子。因此,当自动助理确定正在与孩子接洽时,它可以拒绝执行可能例如花钱或者促进在线与陌生人接洽的各种动作。
关于输出解析用户的意图的结果,在各种实施例中,自动助理可以从多个候选话音合成模型中选择与针对用户预测的预定年龄组相关联的给定话音合成模型。例如,由自动助理采用的默认话音合成模型可以是以相对较快的步调讲话的成人话音(例如,类似于成人之间的现实生活对话)。相反地,由自动助理在与孩子用户接洽时采用的话音合成模型可以是卡通人物的话音,并且/或者可以以相对较慢的步调讲话。
附加地或替换地,在一些实现方式中,自动助理可以取决于用户的所预测的年龄而输出更多或更少的细节。这个可以例如通过提供各自针对特定年龄组定制的多个自然语言生成模型来实现。作为示例,当与确定为介于两个与四个之间的用户接洽时,自动助理可以采用合适的自然语言生成模型来使自动助理使用简单单词和短句子。随着讲话者的所检测的年龄增加,由自动助理使用的词汇可以增长(例如,依照它选择的自然语言生成模型),使得它使用较长的句子和更复杂或更高级的单词。在一些实施例中,自动助理可以提供鼓励孩子用户以更完整的句子讲话、建议替代单词等的输出。在一些实现方式中,通常不会要求向成人解释的词语和/或短语可以由自动助理在与孩子接洽时更全面地说明。
附加地或替换地,在一些实现方式中,自然语言生成(“nlg”)模板可以包括逻辑,该逻辑规定当估计用户处于第一年龄范围中时提供一种自然语言输出,而当估计用户处于第二年龄段中时提供另一自然语言输出。因此,孩子可以听到针对于他们的输出(例如,使用适合于孩子的词语和/或俚语),然而成人可以听到不同的输出。
作为另一示例,自动助理通常遇到的一个用例是网页(或网页的一部分)的摘要。例如,用户常常问自动助理可能可使用在线百科全书条目回答的随机问题。自动助理可以采用各种技术来将网页的密切部分概括成相干答案。使用本文描述的技术,自动助理可以在概括网页的密切部分时考虑用户的所估计的年龄范围和/或词汇水平。例如,孩子可以仅接收到网页中描述的高级和/或容易理解的概念,然而成人可以接收到更多的细节和/或描述。在一些实施例中,如果摘要不仅是抽象的,而且是生成性的,则它甚至能由自动机器翻译系统(例如,“成人英语至简单英语”翻译系统)供以动力和/或与之组合。
在一些实现方式中,自动助理可以被配置成报告孩子的语法和/或词汇进步。例如,当自动助理确定它与成人接洽时,或者尤其是当它识别父母的话音时,成人/父母用户可以问自动助理关于一个或多个孩子与自动助理交互的进步。在各种实现方式中,自动助理可以提供响应于此类询问的各种数据,诸如孩子往往发错音或者受困于的单词或音节、在孩子中是否检测到口吃倾向、孩子已问过什么问题、孩子在交互式游戏中进步如何等等。
在一些实现方式中,提供了一种由一个或多个处理器执行的方法,该方法包括:在一个或多个客户端设备的一个或多个输入组件处接收来自用户的有声话语;跨训练后的机器学习模型应用指示有声话语的数据以生成输出;基于输出,确定用户落入预定年龄组;从多个候选查询理解模型中选择与预定年龄组相关联的给定查询理解模型;使用给定查询理解模型来确定用户的意图;基于预定年龄组,确定用户的意图是可解析的;解析用户的意图以生成响应数据;以及在一个或多个客户端设备的一个或多个输出组件处输出响应数据。
在各种实现方式中,多个候选查询理解模型可以包括具有与给定查询理解模型的语法容忍度不同的语法容忍度的至少一个候选查询理解模型。在各种实现方式中,指示有声话语的数据可以包括用户的话语的音频记录,并且训练机器学习模型以基于音频记录中包含的一个或多个音素来生成指示用户的年龄的输出。
在各种实现方式中,该方法可以进一步包括:从多个候选自然语言生成模型中选择与预定年龄组相关联的给定自然语言生成模型,其中,所选择的给定自然语言输出模型用于生成响应数据。在各种实现方式中,多个候选自然语言生成模型可以包括使用比由给定自然语言输出模型使用的词汇更复杂的词汇的至少一个候选自然语言生成模型。
在各种实现方式中,该方法可以进一步包括:从多个候选话音合成模型中选择与预定年龄组相关联的给定话音合成模型,其中,输出响应数据使用给定话音合成模型来执行。在各种实现方式中,可以应用给定查询理解模型来执行对有声话语的语音至文本处理。在各种实现方式中,可以应用给定查询理解模型来执行对从有声话语生成的语音识别输出的自然语言理解。
在另一方面,提供了一种由一个或多个处理器执行的方法,该方法包括:在一个或多个客户端设备的一个或多个输入组件处接收来自用户的有声话语;跨训练后的机器学习模型应用指示有声话语的数据以生成输出;基于输出,确定用户落入多个预定词汇水平中的给定词汇水平;从多个候选查询理解模型中选择与给定词汇水平相关联的给定查询理解模型;使用给定查询理解模型来确定用户的意图;基于预定词汇水平,确定用户的意图是可解析的;解析用户的意图以生成响应数据;以及在一个或多个客户端设备的一个或多个输出组件处输出响应数据。
另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中所述指令被配置成使得执行前述方法中的任一个。一些实施方式还包括一个或多个非暂时性计算机可读存储介质,其存储可由一个或多个处理器执行以执行前述方法中的任一个的计算机指令。
应理解,本文更详细描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开结尾处的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例环境的框图。
图2描绘根据各种实施方式的例证本公开的各个方面的示例性处理流程。
图3a和3b描绘根据各种实施方式的用户和自动助理之间的示例对话。
图4a和图4b描绘根据各种实施方式的用户与自动助理之间的示例对话。
图5a和5b描绘根据各种实施方式的用户和自动助理之间的示例对话。
图6描绘图示根据本文公开的实施方式的示例方法的流程图。
图7图示计算设备的示例架构。
具体实施方式
现在转到图1,图示其中可以实现本文公开的技术的示例环境。示例环境包括一个或多个客户端计算设备106。每个客户端设备106可以执行自动助理客户端118的相应实例。可以在经由在114处通常指示的一个或多个局域网和/或广域网(例如,互联网)通信耦合到客户端设备1061-n的一个或多个计算系统(统称为“云”计算系统)上实现一个或多个基于云的自动助理组件119,诸如自然语言理解引擎135。
在各种实施方式中,自动助理客户端108的实例通过其与一个或多个基于云的自动助理组件119的交互可以形成从用户的角度来看显现为自动助理120的逻辑实例的事物,用户可以与所述自动助理120的逻辑实例参与人机对话。在图1中以虚线描绘这种自动助理120的一个实例。因此,应理解,与在客户端设备106上执行的自动助理客户端108接洽的每个用户实际上可以与自动助理120的他或她自己的逻辑实例接洽。为了简洁和简单起见,本文中用作“服务”特定用户的术语“自动助理”将会指的是在由用户操作的客户端设备106上执行的自动助理客户端108和(可以在多个自动助理客户端108当中共享的)一个或多个基于云的自动助理组件119的组合。还应理解,在一些实施方式中,自动助理120可以响应于来自任何用户的请求,不管自动助理120的该特定实例是否实际上“服务”该用户。
一个或者多个客户端设备106可以包括例如下述中的一个或多个:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的交互扬声器、诸如智能电视的智能电器(和/或配备有具有自动助理性能的联网的电子狗的独立的电视)、和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算设备)。可以提供附加的和/或替代的客户端计算设备。
如本文中更详细描述的,自动助理120经由一个或多个客户端设备106的用户接口输入和输出设备与一个或多个用户参与人机对话会话。在一些实施方式中,响应于用户经由客户端设备106之一的一个或多个用户接口输入设备提供的用户接口输入,自动助理120可以与用户参与人机对话会话。在那些实施方式中的一些中,用户接口输入被明确地指向自动助理120。例如,用户可以说出预定调用短语,诸如“ok,assistant”或“hey,assistant”,以使自动助理120开始主动收听。
在一些实施方式中,即使当用户接口输入未明确地指向自动助理120时,自动助理120也可以响应于用户接口输入而参与人机对话会话。例如,自动助理120可以响应于用户接口输入中存在的某些术语和/或基于其他提示而检查用户接口输入的内容并且参与对话会话。在许多实施方式中,自动助理120可以利用语音识别来将来自用户的话语转换为文本,并且例如通过提供搜索结果、一般信息和/或采取一种或多种响应动作(例如,播放媒体、启动游戏、点菜等)来对文本做出响应。在一些实施方式中,自动助理120可以另外或可替选地对话语做出响应而无需将话语转换成文本。例如,自动助理120可以将语音输入转换成嵌入,转换成实体表示(指示语音输入中存在的一个实体/多个实体)和/或其他“非文本”表示,并且对这样的非文本表示进行操作。因此,本文描述为基于从语音输入转换的文本进行操作的实施方式可以另外和/或可替选地直接对语音输入和/或语音输入的其他非文本表示进行操作。
客户端计算设备106和操作基于云的自动助理组件119的计算设备中的每一个可以包括一个或多个用于存储数据和软件应用的存储器、一个或多个用于访问数据并执行应用的处理器以及有助于通过网络进行通信的其他组件。由客户端计算设备106和/或由自动助理120执行的操作可以分布在多个计算机系统上。自动助理120可以被实现为,例如,在通过网络彼此耦合的一个或多个位置中的一个或多个计算机上运行的计算机程序。
如上所述,在各种实施方式中,客户端计算设备106可以操作自动助理客户端108。在各种实施方式中,自动助理客户端108可以包括话音捕获模块110、熟练度检测器111和/或调用模块112。在其他实施方式中,话音捕获模块110、熟练度检测器111和/或调用模块112的一个或多个方面可以与自动助理客户端108分离实现,例如,通过一个或多个基于云的自动助理组件119实现。在各种实施方式中,话音捕获模块110可以与诸如麦克风(未被描述)的硬件对接以捕获用户话语的音频记录。出于各种目的,可以对该音频记录执行各种类型的处理,如下所述。
在各种实现方式中,可以使用硬件或软件的任何组合来实现的熟练度检测器111可以被配置成分析由话音捕获模块110捕获的音频记录以基于用户的明显讲话熟练度做出一个或多个确定。在一些实现方式中,这些确定可以包括对用户的年龄进行预测或估计,例如,像将用户分类为多个年龄范围中的一个一样。附加地或替换地,这些确定可以包括对用户的词汇水平进行预测或估计,或者将用户分类为多个词汇水平中的一个。如将在下面描述的,由熟练度检测器111做出的确定可以例如由自动助理120的各种组件使用,以适应多个不同的年龄组和/或词汇水平的用户。
熟练度检测器111可以采用各种技术来做出关于用户的讲话熟练度的确定。例如,在图1中,熟练度检测器111与熟练度模型数据库113(其可以与客户端设备106集成在一起和/或从客户端设备106远程地托管,例如在云中)通信地耦合。熟练度模型数据库113可以包括一个或多个人工智能(或机器学习)模型,这些模型被训练来生成指示用户的讲话熟练度的输出。在各种实现方式中,可以训练人工智能(或机器学习)模型以基于音频记录中包含的一个或多个音素、在音频记录中检测到的用户的话音的音高、发音等来生成指示用户的年龄的输出。
作为一个非限制性示例,可以训练神经网络(并将其存储在数据库113中),使得可以跨神经网络将用户的话语的音频记录或从该音频记录中提取的特征向量应用为输入。在各种实现方式中,神经网络可以生成多个输出,每个输出与年龄范围和相关联概率相对应。在某些此类实现方式中,可以将具有最高概率的年龄范围用作用户的年龄范围的预测。可以使用各种形式的训练示例来训练这样的神经网络,这些形式诸如用户的按用户的相应年龄(或年龄范围)而标记的音频记录(或由此生成的特征向量)。当跨网络应用训练示例时,可以使用所生成的输出与和训练示例相关联的标记之间的差异,例如,以使损失函数最小化。然后可以例如使用诸如梯度下降和/或反向传播的标准技术来调整神经网络的各种权重。
话音捕获模块110可以被配置成例如经由麦克风(未描绘)捕获用户的语音,如前所述。附加地或可替代地,在一些实施方式中,话音捕获模块110可以进一步被配置成例如使用语音到文本(“stt”)处理技术将捕获的音频转换为文本和/或其他表示或嵌入。附加地或可替代地,在一些实施方式中,话音捕获模块110可以被配置成例如使用一个或多个语音合成器将文本转换为计算机合成的语音。然而,因为客户端设备106可能在计算资源(例如,处理器周期、存储器、电池等)方面受到相对约束,所以对于客户端设备106而言本地的话音捕获模块110可以被配置成将有限数量的不同说话短语——特别是调用自动助理120的短语——转换成文本(或其他形式,诸如较低维度的嵌入)。可以将其他话音输入发送到基于云的自动助理组件119,该组件可以包括基于云的tts模块116和/或基于云的stt模块117。
在一些实现方式中,客户端设备106可以包括调用模块112,该调用模块被配置成确定用户的话语是否有资格作为应该发起与自动助理120的人机对话会话的调用短语。一旦用户的年龄(或年龄范围)由熟练度检测器111估计,在一些实现方式中,调用模块112就可以分析指示用户的话语的数据,诸如音频记录或与用户的估计年龄范围相结合地从该音频记录中提取的特征向量(例如,嵌入)。在一些实现方式中,随着用户的估计年龄落入一个或多个年龄范围,例如与小孩子相关联的年龄范围,可以降低由调用模块112采用来确定是否调用自动助理120的阈值。因此,当与小孩子接洽时,仍然可以将与适当调用短语“okassistant(好的助理)”不同但在发音上稍微与该适当调用短语类似的诸如“okassisa”的短语接受为调用。
附加地或替换地,设备上调用模型可以由调用模块112使用来确定话语是否有资格作为调用。可以训练这样的设备上调用模型以检测调用短语的常见变化。例如,在一些实现方式中,可以使用训练示例来训练设备上调用模型(例如,一个或多个神经网络),这些训练示例中的每一个均包括孩子的话语的音频记录(或提取的特征向量)。一些训练示例可以包括孩子发出适当调用短语的尝试;此类训练示例可以是肯定训练示例。附加地,在一些实现方式中,一些训练示例可以包括来自孩子的不是要讲出调用短语的尝试的其他话语。可以将这些其他训练示例用作否定训练示例。可以跨设备上调用模型将(肯定和/或否定)训练示例应用为输入以生成输出。可以将输出与和(例如,肯定的或否定的)训练示例相关联的标记进行比较,并且可以使用差异(误差函数)来训练设备上调用模型,例如,使用诸如梯度下降和/或反向传播的技术。在一些实现方式中,如果设备上调用模型指示话语有资格作为调用,但是与输出相关联的置信分值相对较低(例如,因为话语是由容易发错音的孩子生成的),则低置信分值它本身可以例如由熟练度检测器111使用来估计孩子的年龄。
基于云的tts模块116可以被配置成利用云的可能更大的计算资源以将文本数据(例如,由自动助理120制定的自然语言响应)转换成计算机生成的话音输出。在一些实施方式中,tts模块116可以将计算机生成的话音输出提供给客户端设备106以,例如使用一个或多个扬声器被直接输出。在其他实施方式中,由自动助理120生成的文本数据(例如,自然语言响应)可以被提供给话音捕获模块110,然后其可以将文本数据转换成本地输出的计算机生成的话音。在一些实施方式中,基于云的tts模块116可以可操作地与包括多个话音合成模型的数据库115耦合。当与具有特定口语能力和/或处于特定年龄组的用户互动时,自动助理120可以采用每个话音合成模型来生成模拟特定类型语音的计算机话音,例如,男人、女人、卡通人物、具有特定口音的说话者等。
在一些实现方式中,tts模块116可以按需采用特定话音合成模型。例如,假设通常用短语“heyassistant(嘿助理)”调用自动助理120。在一些实现方式中,可以修改用于检测此短语的模型(例如,先前描述的设备上调用模型),例如,使得它对“hey,<entity>(嘿,<实体>)”的任何话语做出响应。在一些此类实现方式中,所请求的<实体>可以由tts模块116使用来选择要采用的话音合成模型。因此,如果孩子通过说出像“hey,hypotheticalhippo(嘿,假想河马)”一样的东西来调用自动助理,则可以采用与实体“假想河马”相关联的话音合成模态。
基于云的stt模块117可以被配置成利用云的可能更大的计算资源来将由话音捕获模块110捕获的音频数据转换成文本,然后可以将该文本提供给自然语言理解模块135。在各种实现方式中,基于云的stt模块117可以采用针对解释具有有限和/或不发达词汇和/或语法的用户如孩子的话语具体地定制的一个或多个定制解析器和/或stt模型(有时在本文中根据庞统术语“查询理解模型”引用)。
例如,在一些实现方式中,基于云的stt模块117可以与存储多个查询理解模型的一个或多个数据库118操作地耦合。每个查询理解模型可以被配置用于与特定年龄范围的用户一起使用。在一些实现方式中,每个查询理解模型可以包括人工智能模型(例如,各种风味的神经网络),该人工智能模型被训练来基于音频输入(或指示音频输入的数据,诸如音频输入的提取到特征向量中的音素和/或其他特征)从话音生成文本。在一些此类实现方式中,用于这样的模型的训练数据可以包括来自成人的具有注入到其中的噪声的例如用话音的实际文本标记的音频记录(或指示其的数据)。附加地或替换地,在一些实现方式中,训练数据可以包括来自孩子的用孩子的话音的文本标记的音频记录。
在一些实现方式中,基于云的stt模块117可以将话音的音频记录转换为一个或多个音素,然后将一个或多个音素转换为文本。附加地或替换地,在一些实现方式中,stt模块117可以采用状态解码图。在一些实现方式中,stt模块117可以生成用户的话语的多个候选文本解释。利用常规的自动助理120,可以将具有最高相关联置信分值的候选文本解释接受为用户的自由形式输入,只要置信分值满足某个阈值和/或具有足够好于与其他候选文本解释相关联的置信分值的置信分值即可。否则,自动助理120可能要求用户进行澄清和/或消除歧义。利用配置有本公开的所选方面的stt模块117,可以降低此类阈值。因此,即使用户的话语(例如,来自学步的幼儿的陈述)演示语法/词汇缺陷,自动助理120也可能更可能试图满足用户的意图。
自动助理120(特别是基于云的自动助理组件119)可以包括自然语言理解模块135、前述tts模块116、前述stt模块117以及下面将更详细描述的其他组件。在一些实施方式中,可以在与自动助理120分离的组件中省略、组合和/或实现一个或多个模块和/或自动助理120的模块。在一些实施方式中,为了保护隐私,诸如自然语言处理器122、tts模块116、stt模块117等的自动助理120的组件中的一个或者多个可以至少部分地在客户端设备106上实现(例如,排除在云之外)。
在一些实施方式中,自动助理120响应于在与自动助理120的人机对话会话期间由客户端设备1061-n之一的用户生成的各种输入来生成响应内容。自动助理120可以(例如,当与用户的客户端设备分离时通过一个或多个网络)提供响应内容,以作为对话会话的一部分呈现给用户。例如,自动助理120可以响应于经由客户端设备106提供的自由形式自然语言输入而生成响应内容。如本文所使用的,自由形式输入是由用户制定的并且不被约束为呈现给用户进行选择的选项组的输入。
如本文中所使用的,“对话会话”可以包括用户与自动助理120(并且在一些情况下,其它人类参与者)之间的一个或多个消息的逻辑上自包含的交换。自动助理120可以基于各种信号在与用户的多个对话会话之间进行区分,所述信号诸如会话之间的时间流逝、会话之间的用户场境的更改(例如,位置,在排程会议之前/期间/之后等等)、检测除了用户与自动助理之间的对话之外的用户与客户端设备之间的一个或多个干预交互(例如,用户暂时切换应用、用户走远然后稍后再返回到独立的语音激活的产品)、会话之间客户端设备的锁定/睡眠、用于与自动助理120的一个或多个实例交互的客户端设备的更改等。
自然语言理解模块135的自然语言处理器122处理由用户经由客户端设备106生成的自然语言输入,并且可以生成注释输出(例如,以文本形式)以供自动助理120的一个或多个其他组件使用。例如,自然语言处理器122可以处理由用户经由客户端设备1061的一个或多个用户接口输入设备生成的自然语言自由形式输入。所生成的注释输出包括自然语言输入的一个或多个注释以及自然语言输入的词项中的一个或多个(例如,全部)。
在一些实施方式中,自然语言处理器122被配置成识别和注释自然语言输入中的各种类型的语法信息。例如,自然语言处理器122可以包括可以将单个词分离成词素和/或例如用它们的类别注释词素的词法模块。自然语言处理器122还可以包括词性标注器,该词性标注器地被配置成用其语法角色来注释词项。例如,词性标注器可以用诸如“名词”、“动词”、“形容词”、“代词”等的每个词项的词性来标记该词项。此外,例如,在一些实施方式中,自然语言处理器122可以附加地和/或可替选地包括被配置成确定自然语言输入中的词项之间的句法关系的依存解析器(未被描述)。例如,依存解析器可以确定哪些词项修饰其他词项、句子的主语和动词等等(例如,解析树)——并且可以对这种依存进行注释。
在一些实施方式中,自然语言处理器122可以附加地和/或可替选地包括实体标注器(未被描述),该实体标注器被配置成在一个或多个段落中注释实体引用,诸如对人的引用(包括,例如文学人物、名人、公众人物等)、组织、位置(真实的和虚构的)等等。在一些实施方式中,关于实体的数据可以存储在一个或多个数据库中,诸如知识图(未被描述)中。在一些实施方式中,知识图可以包括表示已知实体(在某些情况下,还实体属性)的节点,以及连接节点并表示实体之间的关系的边。例如,“banana(香蕉)”节点可以(例如,作为孩子)被连接到“fruit(水果)”节点,其继而可以(例如,作为孩子)被连接到“produce(产品)”和/或“food(食物)”节点。作为另一个示例,称为“hypotheticalcafé(假想咖啡厅)”的餐厅可以由节点表示,该节点还包括诸如其地址、所供应食物的类型、营业时间、联系信息等属性。在一个实施方式中,该“hypotheticalcafé”节点可以通过边(例如,表示孩子到父母的关系)连接到一个或多个其他节点,诸如“restaurant(餐厅)”节点、“business(商业)”节点、表示餐厅所在城市和/或州的节点等等。
自然语言处理器122的实体标注器可以以较高的粒度级别(例如,使能够识别对诸如人的实体类别的所有引用)和/或较低的粒度级别(例如,使能够识别对诸如特定人员的特定实体的所有引用)注释对实体的引用。实体标注器可以依赖于自然语言输入的内容来解析(resolve)特定实体和/或可以可选地与知识图或其他实体数据库进行通信以解析特定实体。
在一些实施方式中,自然语言处理器122可以附加地和/或可替选地包括被配置成基于一个或多个场境线索来将对同一实体的引用进行分组或“聚类”的共指解析器(未被描述)。例如,可以利用共指解析器以将自然语言输入“ilikedhypotheticalcafélasttimeweatethere.(我喜欢上次在那里用餐的假想咖啡厅)”中的词项“there(那里)”解析为“hypotheticalcafé(假想咖啡厅)”。
在一些实施方式中,自然语言处理器122的一个或多个组件可以依赖于来自于自然语言处理器122的一个或多个其他组件的注释。例如,在一些实施方式中,在注释对特定实体的所有提及时,所指名的实体标注器可以依赖于来自于共指解析器和/或依存解析器的注释。同样,例如,在一些实施方式中,在将对同一实体的引用聚类时,共指解析器可能依赖于来自依存解析器的注释。在一些实施方式中,在处理特定自然语言输入时,自然语言处理器122的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据以确定一个或多个注释。
自然语言理解模块135也可以包括意图匹配器136,该意图匹配器被配置成确定参与与自动助理120的人机对话会话的用户的意图。虽然在图1中与自然语言处理器122分开地描绘,但是在其他实现方式中,意图匹配器136可以是自然语言处理器122(或更一般地,包括自然语言处理器122的流水线)的整体部分。在一些实现方式中,自然语言处理器122和意图匹配器136可以共同地形成前述“自然语言理解”模块135。
意图匹配器136可以使用各种技术来确定用户的意图,例如基于来自自然语言处理器122的输出(其可以包括自然语言输入的注释和词语)。在一些实现方式中,意图匹配器136可以能够访问一个或多个数据库137,该一个或多个数据库包括例如语法与响应动作(或更一般地,意图)之间的多个映射。在许多情况下,这些语法可以随着时间的推移而被选择和/或学习,并且可以表示用户的最常见意图。例如,可以将一种语法“play<artist>(播放<艺术家>)”映射到调用使得在由用户操作的客户端设备106上播放<艺术家>的音乐的响应动作的意图。另一语法“[weather|forecast]today(今天的[天气|预报])”可以能够与诸如“what’stheweathertoday(今天天气怎么样)”和“what’stheforecastfortoday(今天的预报怎么样?)”的用户查询匹配。除了语法之外或代替语法,在一些实现方式中,意图匹配器136可以单独或与一个或多个语法相结合地采用一个或多个训练后的机器学习模型。这些训练后的机器学习模型也可以被存储在一个或多个数据库137中,并且可以被训练来标识意图,例如,通过将指示用户的话语的数据嵌入到降维空间中,然后例如使用诸如欧几里得距离、余弦相似度等的技术来确定哪些其他嵌入(以及因此,意图)是最接近的。
如在“play<artist>”示例语法中看到的,一些语法具有能够用槽值(或“参数”)填充的槽(例如,<artist>)。可以以各种方式确定槽值。常常用户将主动地提供槽值。例如,对于语法“ordermea<topping>pizza(给我订购<浇汁>披萨)”,用户很可能讲出短语“ordermeasausagepizza(给我订购香肠披萨)”,在此情况下槽<topping>被自动地填充。附加地或替换地,如果用户调用包括要用槽值填充的槽的语法,而无需用户主动地提供槽值,则自动助理120可以从用户恳求那些槽值(例如,“whattypeofcrustdoyouwantonyourpizza?(你想要什么类型的硬皮在你的披萨上?)”)。
在一些实现方式中,自动助理120可以促进(或“安排”)用户与代理之间的交易,这些交易可以是接收输入并提供响应输出的独立软件进程。一些代理可以采取第三方应用的形式,这些第三方应用可以或可能不在与操作例如基于云的自动助理组件119的计算系统分开的计算系统上操作。可以由意图匹配器136标识的一种用户意图是接洽第三方应用。例如,自动助理120可以向披萨递送服务提供对应用编程接口(“api”)的访问。用户可以调用自动助理120并且提供诸如“i’dliketoorderapizza(我想订购披萨)”的命令。意图匹配器136可以将此命令映射到触发自动助理120与第三方披萨递送服务接洽的语法(其可以在一些情况下由第三方添加到数据库137)。第三方比萨递送服务可以给自动助理120提供需要被填充以便履行比萨递送订单的槽的最小列表。自动助理120可以生成恳求用于槽的参数的自然语言输出并且(经由客户端设备106)将其提供给用户。
在各种实现方式中,意图匹配器136可以能够访问例如在数据库137中的多个语法和/或训练模型集的库。每个语法和/或模型集可以被设计成促进自动助理120与特定年龄范围和/或词汇水平的用户之间的交互。在一些实现方式中,这些语法和/或模型可以是前述“查询理解模型”的一部分,作为上面关于stt模块117(例如,被存储在数据库118中)描述的模型的补充或替代。因此,在一些实现方式中,查询理解模型可以包括在stt处理和意图匹配两者期间使用的组件。在其他实现方式中,查询理解模型可以包括仅在stt处理期间使用的组件。在仍然其他的实现方式中,查询理解模型可以包括仅在意图匹配和/或自然语言处理期间使用的组件。在本文中设想了这些变化的任何组合。如果在stt处理和意图匹配两者期间采用查询理解模型,则在一些实现方式中,可以组合数据库118和137。
作为示例,存储在数据库137中的第一语法和/或模型(或“查询理解模型”)集可以被配置成促进与非常小的孩子例如两岁以下学步的幼儿交互。在一些此类实现方式中,这样的语法/模型集对于语法、词汇、发音等方面的错误可以具有相对较高的容忍度,并且可以例如在孩子讲出动物的名字时做像做出动物噪声一样的事情。另一语法和/或模型集可以被配置成促进与介于两岁与四岁之间的孩子和/或具有有限词汇的其他人(例如,处于学习由自动助理120采用的语言的过程中的用户)接洽。这样的语法和/或模型集对于错误可以具有稍微较低的容忍度,但是它仍然可以是相对宽松的。另一语法和/或模型集可以被配置成促进与“下一个”年龄范围和/或词汇例如五岁至七岁和/或中级讲话者接洽,并且可能甚至不太容忍错误。又一个语法和/或模型集可以被配置成促进与成人、年长孩子和/或其他相对熟练的讲话者进行“正常”接洽—针对语法、词汇和/或发音方面的错误的容忍度对于这样的语法/模型集来说可以是相对较低的。
履行模块124可以被配置成接收由意图匹配器136输出的预测/估计意图以及关联槽值(无论是由用户主动地提供还是从用户恳求),并且履行(或“解析”)意图。在各种实现方式中,对用户的意图的履行(或“解析”)可以使得各种履行信息(也称为“响应”信息或数据)例如由履行模块124生成/获得。如将下面描述的,可以在一些实现方式中将履行信息提供给自然语言生成器(在一些图中为“nlg”)126,该自然语言生成器可以基于履行信息生成自然语言输出。
履行信息可以采取各种形式,因为能够以各种方式履行意图。假设用户请求纯粹信息,诸如“whereweretheoutdoorshotsof‘theshining’filmed?(‘闪灵’的室外镜头是在哪里拍摄的?)”用户的意图可以例如由意图匹配器136确定为搜索查询。可以将搜索查询的意图和内容提供给履行模块124,该履行模块如图1所描绘的那样可以与被配置成在文档和/或其他数据源(例如,知识图等)的语料库中搜索响应信息的一个或多个搜索模块150通信。履行模块124可以向搜索模块150提供指示搜索查询的数据(例如,查询的文本、降维嵌入等)。搜索模块150可以提供响应信息,诸如gps坐标或其他更显式的信息,诸如“timberlinelodge,mt.hood,oregon(俄勒冈州胡德林线客栈)”。此响应信息可以形成由履行模块124生成的履行信息的一部分。
附加地或替换地,履行模块124可以被配置成例如从自然语言理解模块135接收用户的意图以及由用户提供或使用其他手段(例如,用户的gps坐标、用户偏好等)确定的任何槽值并且触发响应动作。响应动作可以包括例如订购商品/服务、启动定时器、设定提醒、发起电话呼叫、播放媒体、发送消息等。在一些此类实现方式中,履行信息可以包括与履行相关联的槽值、确认响应(其在一些情况下可以选自预定响应)等。
在一些实现方式中,并且类似于本文的诸如stt模块117、意图匹配器136的其他组件,履行模块124可以能够访问数据库125,该数据库存储针对于各种年龄范围和/或词汇水平的规则、试探法等的库。例如,数据库125可以存储网站、通用资源标识符(uri)、通用资源定位符(url)、域等的一个或多个白名单和/或黑名单,其取决于用户年龄而规定用户能够且不能够访问什么。数据库125也可以包括规定用户如何和/或是否能够使自动助理120与第三方应用接洽的一个或多个规则,该第三方应用如以上所指出的那样能够用于例如订购商品或服务。
如以上所指出的,自然语言生成器126可以被配置成基于从各种源获得的数据生成和/或选择自然语言输出(例如,被设计成模仿人类语音的单词/短语)。在一些实现方式中,自然语言生成器126可以被配置成接收与对意图的履行相关联的履行信息作为输入,并且基于履行信息生成自然语言输出。附加地或替换地,自然语言生成器126可以从诸如第三方应用(例如,所需槽)的其他源接收信息,它可以使用该信息来为用户组成自然语言输出。
如果用户的意图是搜索一般信息,则自然语言生成器126可以生成例如以句子形式传达响应于用户的信息的自然语言输出。在一些实例中,自然语言输出可以例如由自然语言生成器126提取,不从文档更改(例如,因为它已经是完整句子形式)并照原样提供。附加地或替换地,在一些实现方式中,响应内容可能不是完整句子形式(例如,对今天的天气的请求可以包括高温和降水机会作为独立数据片),在此情况下自然语言生成器126可以制定将响应内容呈现为自然语言输出的一个或多个完整句子或短语。
在一些实现方式中,自然语言生成器126可以依靠将在本文称为“自然语言生成模板”(或“nlg模板”)的东西来生成自然语言输出。在一些实现方式中,可以将nlg模板存储在数据库127中。nlg模板可以包括逻辑(例如,如果/否则语句、循环、其他编程逻辑),该逻辑规定响应于来自各种源的各种信息而制定自然语言输出,所述各种信息诸如包括有由履行模块124生成的履行信息的数据片。因此,以一些方式nlg模板实际上可以构成状态机,并且可以使用任何已知的编程语言或其他建模语言(例如,统一建模语言、规范和描述语言、可扩展标记语言等)来创建。
作为示例,nlg模板可以被配置成对对天气信息的英语语言请求做出响应。nlg模板可以规定在多种情况下提供多个候选自然语言输出中的哪一个。例如,假设由履行模块124生成的履行信息指示温度将高于例如80华氏度并且将没有云。在nlg模板中阐述的逻辑(例如,如果/否则语句)可以规定由自然语言生成器126选择的自然语言输出是诸如“it’sgonnabeascorcher,don’tforgetyoursunglasses(天气会是大热天,别忘记你的墨镜)”的短语。假设由履行模块124生成的履行信息指示温度将低于例如30华氏度并且将有雪。在nlg模板中阐述的逻辑可以规定由自然语言生成器126选择的自然语言输出是诸如“it’sgonnabechilly,youmightwantahatandgloves,andbecarefulontheroad(天气会寒冷,您可能想要帽子和手套,并且在路上小心)”等的短语。
在一些实现方式中,nlg模板可以包括受所检测到的用户的词汇水平和/或年龄范围影响的逻辑。例如,nlg模板可以具有这样的逻辑:如果预测用户在第一年龄范围内,则使得提供第一自然语言输出,而如果预测用户在另一例如年长年龄范围内,则使得提供第二自然语言输出。第一自然语言输出可以使用具有较简单语言的更多解释性单词和/或短语,使得年轻用户可能更可能理解它。在年长用户不需要同样多说明的假设下,第二自然语言输出可能比第一自然语言输出简洁。
在以上天气示例中,可以基于nlg模板中的逻辑告诉成人和孩子不同的事情。例如,如果天气会冷,则可能给检测到的孩子提供提醒该孩子采取将不需要提醒成人的预防措施的自然语言输出。例如,提供给孩子的自然语言输出可以是:“it’sgonnabecooollddoutsideandmayevensnow!don’tforgetyourcoat,scarf,mittens,andhat.also,makesuretoletagrownupknowthatyouwillbeoutside(外面会很冷并且可能甚至下雪!不要忘记你的外套、围巾、手套和帽子。另外,确保让大人知道你将在外面)”。相比之下,在相同情况下提供给成人的自然语言输出可以是“it’sgoingtobe30degreesfahrenheit,witha20%chanceofsnow(天气将是30华氏度,下雪机会为20%)”。
作为另一示例,nlg模板可以被配置为对关于某些实体是真的还是假想的查询例如“is<entity_name>real?(<实体_名称>是真的吗?)”做出响应。这样的nlg模板可以包括取决于用户的预测年龄范围而从多个选项中选取的逻辑。假设用户问“isthetoothfairyreal?(牙仙子是真的吗?)”,如果预测用户是小孩子,则nlg模板内的逻辑可以规定回答有点像“yes,thetoothfairyleavesmoneyunderpillowsofchildrenwhentheyloseteeth(是的,当孩子掉牙时,牙仙子将钱留在他们的枕头下)”。如果预测用户是成人,则nlg模板内的逻辑可以规定回答有点像“no,thetoothfairyisamake-believeentityemployedbyparentsandguardianstomotivatechildrentopullalready-loseteethinordertogetmoneyinexchange(不,牙仙子是由父母和监护人采用来激励孩子拔已经失去的牙以便换取金钱的假装实体)”。
图2演示如何可以取决于用户201的预测/估计年龄而通过图1的各种组件来处理来自用户201的话语的示例。描绘了与本文描述的技术相关的组件,但是这不意在为限制性的,并且可以将在图2中未描绘的各种其他组件用作处理用户的话语的一部分。
当用户提供有声话语时,由用户201操作的客户端设备(例如,106)的输入/输出(“i/o”)组件(诸如麦克风)可以将用户的话语捕获为音频记录(图2中的“音频记录”)。可以将音频记录提供给熟练度检测器111,该熟练度检测器如上所述预测和/或估计用户201的年龄范围和/或词汇水平。
然后将所估计的年龄范围或词汇水平提供给调用模块112。基于所估计的年龄范围和指示用户的话语的数据(例如,音频记录、特征向量、嵌入),调用模块112可以将用户的话语分类为打算或不打算触发自动助理120。如以上所指出的,对于具有相对较低的词汇水平的孩子或另一用户,可以降低为让调用模块112将话语分类为适当调用而必须满足的阈值。
在一些实现方式中,也可以基于其他信号如检测到的环境噪声、运动(例如,驾驶车辆)等来降低由调用模块112采用的阈值。用于基于这些其他信号降低阈值的一个原因是当检测到这些其他信号时,与如果在安静环境中做出用户的话语比可能在用户的话语中存在更多的噪声。在此类情况下,尤其是如果用户正在驾驶或骑自行车时,可能期望自动助理120被更容易地调用。
再次参考图2,一旦自动助理120被触发,stt模块117就可以与所估计的年龄范围/词汇水平相结合地使用音频记录(或指示用户的话语的数据)来(例如,从数据库113)选择一个或多个阈值和/或模型。如以上所指出的,这些阈值/模型可以是“查询理解模型”的一部分。stt模块117然后可以生成用户的话语的文本解释作为输出。可以将此文本解释提供给自然语言处理器122,该自然语言处理器如上所述注释和/或以其他方式处理文本解释。自然语言处理器122的输出连同用户201的所估计的年龄范围或词汇水平一起被提供给意图匹配器136。
意图匹配器136可以基于用户201的所检测/预测到的年龄例如从数据库137中选择一个或多个语法和/或模型。在一些实现方式中,由于用户201的所预测/估计的年龄范围或词汇水平,一些意图可能是不可用的。例如,当用户的所估计的年龄范围或词汇水平被确定为例如低于阈值时,可以例如通过存储在数据库137中的一个或多个规则来不允许涉及自动助理120与第三方应用—特别是要求支出资金和/或否则不适于孩子的第三方应用交互的意图。附加地或替换地,在一些实现方式中,可以在别处例如在数据库125中存储和/或实现这些规则。
可以将由意图匹配器136确定的意图以及所估计的年龄范围或词汇水平和任何用户提供的槽值(若适用的话)提供给履行模块124。履行模块124可以依照存储在数据库125中的各种规则和/或试探法来履行意图。可以将由履行模块124生成的履行信息例如连同用户的所估计的年龄范围和/或词汇水平一起传递给自然语言生成器126。自然语言生成器126可以被配置成依照履行信息以及用户的估计年龄范围和/或词汇水平来生成自然语言输出。例如,并且如先前所描述的,自然语言生成器126可以实现一个或多个nlg模板,这些nlg模板包括取决于用户的所估计的年龄范围和/或词汇水平生成自然语言输出的逻辑。
可以将由自然语言生成器126生成的文本输出连同用户的所估计的年龄范围和/或词汇水平一起提供给tts模块116。tts模块116可以基于用户的所估计的年龄范围和/或词汇水平从数据库115中选择要由自动助理120使用来将音频输出递送给用户的一个或多个话音合成器。可以将由tts模块116生成的音频输出提供给由用户201操作的客户端设备的一个或多个i/o组件250,使得可以经由一个或多个扬声器可听地和/或在一个或多个显示器上在视觉上输出音频输出。
图3a和图3b描绘可以采用本文描述的技术的示例场景。在图3a中,第一用户301a是正在试图与至少部分地在客户端设备306上操作的自动助理120接洽的相对较年轻的孩子。在此示例中,客户端设备306采取助理设备且更具体地为独立交互式扬声器的形式,但是这不意在为限制性的。
第一用户301a说出可以作为音频记录和/或作为从音频记录中提取的特征的向量被捕获的“ok,assisa,wannamusic(好的,助理,想要音乐)”。自动助理120可以首先基于音频记录/特征向量来估计用户301a的年龄范围。在一些实现方式中,熟练度检测器111可以分析诸如音素、音高、节奏等的特征,以估计用户301a的年龄。附加地或替换地,在一些实现方式中,音频记录可以由自动助理120的其他组件(诸如stt模块117)处理,以生成用户的话语的文本解释。此文本解释可以例如由熟练度检测器111分析,以估计/预测用户301a的语法和/或词汇熟练度(其在一些情况下可以被用作用户的年龄的代理)。
一旦自动助理120已被调用,它就可以分析来自用户301a的话语的剩余部分“wannamusic”。这样的短语可能使常规的自动助理寻求来自用户301a的消除歧义和/或澄清。然而,配置有本公开的所选方面的自动助理120对于语法、词汇和/或发音错误可以具有比常规的自动助理的容忍度高的容忍度。因此,并且使用诸如先前关于图2描述的过程,自动助理120的各种组件可以使用所估计的年龄范围和/或词汇水平来在图2的流水线中的不同点处选择各种模型、规则、语法、试探法等,以处理并履行用户的请求。在这种情况下,自动助理120可以通过为孩子输出音乐(例如,童谣、来自孩子的电视和电影的歌曲、教育音乐等)(outputsmusicforchildren)来响应。
图3b描绘另一孩子用户301b再次使用客户端设备306与自动助理120交互的另一示例。在此示例中,用户301b再次讲出“hayassissi,giggygat”,这不可由常规的自动助理解释的。然而,配置有本公开的所选方面的自动助理120可以估计/预测用户301b处于低年龄范围例如2-3岁中。因此,自动助理120可以更加容忍语法、词汇和/或发音错误。因为它是与自动助理接洽的孩子,所以可以将短语“giggygat”更宽容地解释为“kittycat(小猫)”。
此外,如果成人用户在哪里调用自动助理120并简单地说出“kittycat(小猫)”,则因为成人用户的意图不清楚,所以自动助理120可能无法响应。然而,使用本文描述的技术,自动助理120例如通过意图匹配器136和/或履行模块124,可以基于这种解释和用户301b的所估计的年龄范围来将用户301b的意图确定为将听猫做出的声音。结果,自动助理120可以输出猫喵叫的声音(outputssoundofcatmeowing)。
图4a描绘孩子用户401a与至少部分地在客户端设备406a上操作的自动助理120交互的又一个示例,该客户端设备再次采用助理设备的形式,并且更具体地为独立交互式扬声器。在此示例中,用户401a问“okassisa,whygrownupsputtedmilkinfrigerator?(好的助理,大人为什么将牛奶放在冰箱中?)”这样的问题由于其各种语法和词汇错误以及各种发错音而可能无法由常规的自动助理解释。然而,配置有本公开的所选方面的自动助理120可能更加能容忍此类错误,并且因此可以能够处理来自用户401a的问题。附加地,在一些实现方式中,自动助理120可以被配置成教导用户401a适当语法和/或词汇。无论用户是孩子(如图4a中所示)还是由自动助理120使用的语言不是母语的用户都同样如此。
在图4a中,在回答用户的问题之前,自动助理120陈述“theproperwaytoaskthatquestionis,‘whydogrownupsputmilkintherefrigerator?(问那个问题的适当方式是,“大人为什么将牛奶放在冰箱中?)”。此陈述意在关于适当语法、词汇和/或发音指导用户401a。在一些实现方式中,自动助理120可以随着时间的推移而监视特定用户的话语以确定用户的词汇量是否正在改善。在一些此类实现方式中,如果用户从一个对话会话到下一个对话会话演示了提高的词汇水平,则自动助理120可以祝贺用户或以其他方式提供鼓励,例如,以便用户继续在语言上改善。在一些实现方式中,诸如孩子的父母、老师或监护人的另一用户可以向自动助理120问关于孩子的语言进步的更新。自动助理120可以被配置成提供指示孩子的进步的数据(例如,作为自然语言输出、作为在屏幕上显示的结果等)。
一旦自动助理120已给用户401a提供了语言指导,它就然后提供响应于用户的查询的信息(例如,由履行模块124从一个或多个网站获得),但是以基于用户401a的所估计的年龄范围和/或词汇来选择的方式。在此示例中,自动助理120说明“becausegermsgrowinmilkoutsideoftherefrigeratorandmakeityucky(因为病菌在冰箱外部在牛奶中滋生并使它变得难吃)。”这样的回答显然是为孩子定制的。可以以各种方式完成这个。在一些实现方式中,诸如履行模块124和/或自然语言生成器126的组件可以基于用户401a是孩子的估计来用诸如“germs(病菌)”和“yucky(难吃)”的简单词语替换诸如“bacteria(细菌)”、“spoil(腐败)”、“perishable(易腐坏的)”或“curdle(变质)”的相对复杂的单词。如果成人问了相同问题,则自动助理120可能已生成诸如以下的答案:“milkisaperishablefoodandthereforeisatriskwhenkeptoutsidearefrigerator.milkmustbestoredinarefrigeratorsettobelow40°fforpropersafety(牛奶是易腐坏食品,因此当被保持在冰箱外部时有风险。为了适当的安全,必须将牛奶存储在设定为40°f以下的冰箱中)”。在其他实现方式中,可能采用一个或多个nlg模板来向用户401a的所估计的年龄范围和/或词汇水平影响输出。
在各种实现方式中,可以取决于用户的所预测的年龄而提供(或阻止)各种不同的功能性。例如,在一些实现方式中,可以向孩子用户提供针对于孩子的各种游戏或其他活动。在一些此类实现方式中,可以取决于用户的所预测的年龄范围而向用户提供和/或推荐不同的游戏。附加地或替换地,相同的游戏可以是可用的/被推荐,但是可以被设定成对于更高级年龄范围中的用户来说更困难。
图4b描绘孩子用户401b与自动助理120交互的另一示例场景。与先前的示例不同,在此示例中,自动助理120至少部分地在采取智能电视或配备有数字媒体播放器加密狗(未描绘)的标准电视的形式的客户端设备406b上操作。在此示例中,能够假定自动助理120已经预测/估计了用户401b是小孩子,例如,在两岁至四岁的范围内。
在此示例中,用户401b发出“let’splayagame(让我们玩游戏)”。基于用户的所预测的年龄范围,自动助理120可以例如随机地从针对用户401b的年龄范围定制的一组游戏中和/或随机从所有游戏中选择要玩的游戏(其中针对于用户401b的年龄范围的游戏被加权更重)。附加地或替换地,可以给用户401b呈现适于用户401b的游戏的列表(例如,在客户端设备406b上看得见地)。
自动助理120然后使客户端设备406b在其显示器上看得见地渲染四个斑马(例如,静止图像、动画等)。自动助理120问“howmanyzebrasdoyousee?(你看到多少斑马?)”在计数之后,用户401b响应“iseefour(我看到四个)”。在其他实现方式中,用户能说出像“iseethismany(我看到这么多)”的东西,并且举起她的手指。自动助理120可以例如通过分析由客户端设备406b的相机(未描绘)捕获的数字图像来对手指进行计数。无论哪种方式,自动助理120都可以确定“四个”与渲染斑马的数目匹配,并且可以响应“greatjob!(太棒了!)”。
在图4b中,用户401b排他地使用智能电视(或配备有智能电视加密狗的标准电视)来与自动助理120接洽。然而,这不意在为限制性的。在其他实现方式中,用户401b可以使用诸如独立交互式扬声器的不同客户端设备与自动助理120接洽,并且可以仍然将此示例的视觉方面渲染在电视屏幕上。例如,智能电视和交互式独立扬声器可以是例如由单个用户(例如,父母或户主)控制或者与家庭的所有成员(或诸如同事、邻居等的其他群组)相关联的客户端设备的同一协调“生态系统”的一部分。
在一些实现方式中,用户的所检测/预测/估计的特征可以例如由自动助理120用作在执行各种任务时使用的槽值。这些任务可以包括例如自动助理120与一个或多个“代理”接洽。如先前所指出的,如本文所使用的,“代理”可以是指例如从自动助理或以其他地方接收诸如槽值、意图等的输入并且作为响应提供输出的过程。web服务是代理的一个示例。也能够将上述第三方应用认为是代理。代理可以使用由自动助理出于各种目的如履行用户的请求而提供的槽值。
图5a和图5b描绘如何可以将用户的年龄范围用作槽值的一个示例,该槽值使得从同一代理引出不同的响应,该同一代理在此示例中是形式为笑话服务的第三方应用。在此示例中,第三方代理接受指示用户的年龄的槽值,并且至少部分地基于该槽值选择适当的笑话。那样,由自动助理120所讲的笑话是适合观众的。
在图5a中,用户501a是小孩子。因此,当他请求笑话时,至少部分地在客户端设备506上执行的自动助理120(再次采取独立交互式扬声器的形式)将孩子的所预测/估计的年龄范围提供给第三方笑话服务。笑话服务选择并提供适合年龄的笑话:“whydidthebirdiegotothehospital?togetatweetment(小鸟为什么去医院?为了得到推文)”,以供由自动助理120输出。
与图5b相反,在此情况下用户501b是成人。在此示例中,用户501b做出确切相同的请求:“ok,assistant,tellmeajoke(好的,助理,给我讲个笑话)”。因为来自用户501b的话语与图5a中由用户501a进行的话语比被更好地形成和/或在语法上更正确,所以将用户501b标识为成人(或至少不是小孩子)。因此,给用户501b提供了年龄更适于她的笑话:“what'sthedifferencebetweenataxidermistandataxcollector?thetaxidermistonlytakestheskin(动物标本剥制者与收税员之间的差异是什么?动物标本剥制者仅取皮)”。
本文描述的示例涉及估计用户的年龄(或年龄范围)和词汇水平并且以适应这些估计的方式操作自动助理120。然而,这不意在为限制性的。可以基于用户的话语预测/估计用户的其他特性。例如,在一些实现方式中,可以估计并使用用户的性别来影响自动助理120如何操作的各个方面。作为示例,假设用户正在经历对于不同性别表示不同事物的特定医学症状。在一些实现方式中,自动助理120可以使用所预测的用户性别来从自各种医疗网站获得的信息的多个潜在冲突的信息小片中选择适于用户的性别的小片。作为另一示例,在图5a和图5b的笑话上下文中,可以给男性用户和女性用户呈现不同的笑话。
图6是图示根据本文公开的实现方式的示例方法600的流程图。为了方便,参考执行操作的系统来描述流程图的操作。此系统可以包括各种计算机系统的各种组件,诸如实现自动助理120的计算系统的一个或多个组件。此外,虽然以特定次序示出方法600的操作,但是这不意在为限制性的。可以对一个或多个操作进行重新排序、省略或添加。
在框602处,系统可以在一个或多个客户端设备的一个或多个输入组件(例如,麦克风)处接收来自用户的有声话语。在框604处,系统(例如,通过熟练度检测器111)可以跨训练后的机器学习模型应用指示有声话语(例如,音频记录、特征向量)的数据以生成输出。在框606处,系统可以基于在框604处生成的输出确定用户落入(或者应该被分类为)例如多个预定义年龄组中的预定年龄组。在其他实现方式中,可以将用户分类成其他类别,诸如性别。
在框608处,系统(例如,调用模块112)可以基于用户的预定年龄组和指示话语的数据确定用户调用了自动助理120。例如,由调用模块112使用的设备上模型可以被训练以将用户的话语分类为调用或不是调用,例如,取决于基于模型生成的调用分值是否满足某个阈值。在一些实现方式中,当确定用户是孩子或另外语言方面不足时,可以例如向下或向上更改此阈值。因此,如果检测到用户是孩子,则与在用户是成人的情况下比,更有可能将孩子的话语分类为调用。换句话说,与对于成人或具有相对高级词汇水平的其他用户比,对于具有有限词汇的孩子(或其他用户)来说调用自动助理120可能更容易。
在框610处,系统可以从多个候选查询理解模型中选择与预定年龄组相关联的给定查询理解模型。如以上所指出的,此查询理解模型可以包括由stt模块117使用来生成语音辨识输出的组件和/或由意图匹配器136使用来确定用户的意图的组件。
在方框612处,系统例如通过意图匹配器136,可以使用给定查询理解模型来确定用户的意图。如先前所描述的,在一些实现方式中,与当用户是成人并且预期更高精度时相比,给定查询理解模型当在当用户是孩子并且其话语语法上不正确或者不容易理解时确定用户的意图时可能要求较低的精度。
在框614处,系统可以基于预定年龄组确定用户的意图是可解析的。例如,如果预定年龄组是小孩子的年龄组,则要求支付资金以得到履行的意图可能不是可解析的。在框616处,系统例如通过履行模块124,可以履行(或解析)用户的意图以生成响应数据(例如,先前描述的履行数据)。在框618处,系统可以在一个或多个客户端设备的一个或多个输出组件(例如,扬声器、显示屏等)处输出响应数据。
在本文描述的示例中,可以使自动助理120转变成儿童模式,使得可以更加容忍不够完美的语法,提供适合于孩子的输出,确保孩子不能够访问不适当的内容和/或触发例如花钱的动作。然而,这不意在为限制性的,并且客户端设备如何操作的其他方面可能受到自动助理120转变成儿童模式影响。例如,在一些实现方式中,当在孩子模式下可以限制音量设定以保护孩子的听力。
另外,并且如先前间接提到的,在一些实现方式中,当在儿童模式下时自动助理120可以使用基本客户端设备特征来提供各种游戏,例如基于输出动物噪声猜测动物、猜测1与100(更高/更低)之间的数字、回答谜语或琐事等。例如,可以基于谜语或琐事的难度和用户的所估计的年龄范围来选择谜题或琐事问题:较年轻的用户可以接收较容易的谜语/琐事问题。
有时情况可能是特定助理设备主要由孩子使用。例如,可以在儿童游乐区中部署独立交互式扬声器。在一些实现方式中,这样的助理设备可以例如由父母配置,使得默认情况下,正在使用该助理设备来接洽的自动助理处于儿童模式。当处于默认儿童模式时,自动助理可以显示出先前描述的各种行为中的一种或多种,例如,更加容忍语法和/或词汇错误、在与孩子接洽时更主动等。如果诸如父母的成人期望使用该特定助理设备与自动助理120接洽,则成人可以(至少暂时)使助理设备转变到非儿童模式,例如,通过讲出被烘焙到由调用模块112采用的调用模型中的特殊调用短语。
在一些实现方式中,不是预测或估计讲话者的年龄范围,而是自动助理120可以被配置成执行话音识别以对讲话者进行认证。例如,家庭的成员可以各自训练自动助理120以识别他们的话音,例如,使得自动助理120知道它与谁接洽。用户可以具有尤其包括他们的年龄/生日的配置文件。在一些实现方式中,自动助理120可以使用这些配置文件来确定性地探知用户的精确年龄,而不是估计他们的年龄范围。一旦用户的年龄被确定,自动助理120就可以如上所述以适于用户的年龄的方式操作。
图7是示例计算设备710的框图,该示例计算设备710可以可选地用于执行本文所述技术的一个或多个方面。在一些实施方式中,客户端计算设备、用户控制的资源模块130和/或其他组件中的一个或多个可以包括示例计算设备710的一个或多个组件。
计算设备710通常包括至少一个处理器714,其经由总线子系统712与多个外围设备通信。这些外围设备可以包括存储子系统724,包括例如,存储器子系统725和文件存储子系统726;用户接口输出设备720;用户接口输入设备722以及网络接口子系统716。输入和输出设备允许用户与计算设备710交互。网络接口子系统716提供到外部网络的接口,并耦合到其他计算设备中的对应接口设备。
用户接口输入设备722可以包括键盘;诸如鼠标、轨迹球、触摸板或图形输入板的指向设备;扫描仪;并入到显示器的触摸屏;诸如语音辨识系统的音频输入设备;麦克风;以及/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括所有可能类型的设备以及将信息输入到计算设备710或通信网络中的方式。
用户接口输出设备720可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(crt)、诸如液晶显示器(lcd)的平板设备、投影设备或其他用于创建可视图像的机制。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。通常,术语“输出设备”的使用旨在包括所有可能类型的设备以及从计算设备710向用户或另一个机器或计算设备输出信息的方式。
存储子系统724存储提供本文所述的一些或全部模块的功能性的编程和数据构造。例如,存储子系统724可以包括执行图6的方法的所选方面以及实现图1和图2中所描绘的各种组件的逻辑。
这些软件模块通常由处理器714单独或与其他处理器结合执行。存储子系统724中使用的存储器725可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)730以及存储固定指令的只读存储器(rom)732。文件存储子系统726可以提供用于程序和数据文件的持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd-rom驱动器、光盘驱动器或可移动介质盒。实现某些实施方式的功能性的模块可以由在存储子系统724中的文件存储子系统726存储,或者存储在处理器714可访问的其他机器中。
总线子系统712提供一种机制,其用于使计算设备710的各种组件和子系统按照预期相互通信。尽管总线子系统712被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备710能够是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图7中描绘的计算设备710的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备710的许多其他配置可能具有比图7中描绘的计算设备更多或更少的组件。
在此处描述的系统收集或以其他方式监视有关用户的个人信息,或可以使用个人和/或监视的信息的情况下,可以为用户提供控制程序或特征是否收集用户信息的机会(例如,有关用户的社交网络、社交行为或活动、职业、用户的偏好或用户当前地理位置的信息),或控制是否和/或如何从内容服务器接收与用户更相关的内容。同样,某些数据在存储或使用之前可能会以一种或多种方式处理,使得删除个人身份信息。例如,可以对待用户的身份,使得无法为该用户确定任何个人身份信息,或者可以概括获得地理位置信息的用户的地理位置(诸如城市、邮政编码或州级别),使得无法确定用户的特定地理位置。因此,用户可以控制如何收集有关用户的信息和/或使用信息。例如,在一些实施方式中,用户可以选择不让自动助理120尝试估计他们的年龄范围和/或词汇水平。
虽然本文已经描述和说明若干实施方式,但是可以利用用于执行功能和/或获取结果和/或本文描述的一个或多个优点的各种其他手段和/或结构,并且这些变化和/或修改中的每一个被认为是在本文描述的实施方式的范围内。更一般地,本文描述的所有参数、尺寸、材料和配置旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的特定应用或应用。本领域的技术人员将认识到或者能够使用不超过常规的实验确定本文所述具体实施方式的许多等同物。因此,要理解,前述实施方式仅作为示例呈现,并且在所附权利要求及其等同物的范围内,可以以不同于具体描述和要求保护的方式实施实施方式。本公开的实施方式涉及本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这些特征、系统、物品、材料、套件和/或方法不相互矛盾,则两个或更多个这样的特征、系统、物品、材料、套件和/或方法的任何组合被包括在本公开的范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除