(映维网Nweon2023年02月22日)数字助手可以在人类用户和电子设备之间提供有益的界面,允许用户使用口语和/或文本形式的自然语言与设备或系统交互。但用户可能会提供不明确的请求或不明确地指代对象,特别是在计算机生成现实领域。因此,数字助手可能很难确定对请求的适当响应,除非解决了不明确的指代。
所以在名为“Digital assistant reference resolution”的专利申请中,苹果就提出了一种关于数字助手的指代解析。
图2描绘了用于完成对象确定过程的示例性数字助手200。如图所示,数字助手200包括指代检测器202、指代分类器204、文本指代解析模块206、基本视觉指代解析模块208、复杂视觉指代解析模型210和实体数据库212。指代分类器204、文本指代解析模块206、基本视觉指代解析模块208、复杂视觉指代解析模型210和实体数据库212被包括在单个指代解析模块214中。
图3和图4描绘了用于对象确定过程的示例图像输入。图3包括语音输入301、负鼠302和树303。图4包括语音输入401、绘画402和沙发403。图3和图4中的每一个都将与图2的各种组件以及可以由数字助手200接收的输入的各种示例一起讨论。
在一个实施例中,数字助手200接收口语输入201,并通过对口语输入201执行自动语音识别和/或自然语言处理来基于口语输入201确定多个用户意图。因此,数字助手200可以选择多个用户意图中的用户意图,并基于所选择的用户意图确定要执行的一个或多个任务。
在一个实施例中,数字助手200接收语音输入201并将语音输入201提供给指代检测器202。如图3所示,数字助手200可以接收语音输入301“那是什么动物?”,并将语音输入301提供给指代检测器202进行处理。
口语输入201在口语输入301中包括诸如“那是什么动物?”的请求。语音输入201除了请求之外同时包括音频。例如,口头输入201可以包括“嘿,看看那个,那是什么动物是?”。
指代检测器202确定口头输入201是否包括请求。指代检测器202对口语输入201执行自动语音识别和/或自然语言处理,以确定口语输入201是否包括请求。另外,当口语输入201包括请求时,指代检测器202对口语输入201执行自动语音识别和/或自然语言处理,以确定口语输入201的请求。
在一个实施例中,确定语音输入201是否包括请求包括对语音输入201执行自动语音识别(ASR)。具体地,指代检测器202可以包括一个或多个ASR系统,其处理通过电子设备100的输入设备(例如麦克风)接收的语音输入201。ASR系统从语音输入中提取代表性特征。例如,ASR系统预处理器对语音输入201执行傅里叶变换,以提取将语音输入表征为代表性多维向量序列的频谱特征。
另外,指代检测器202的每个ASR系统包括一个或多个语音识别模型,并实现一个或更多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、高斯混合模型、深度神经网络模型、n元语言模型和其他统计模型。语音识别引擎的示例包括基于动态时间扭曲的引擎和基于加权有限状态变换器(WFST)的引擎。一个或多个语音识别模型和一个或更多个语音识别引擎用于处理前端语音预处理器的提取的代表性特征,以产生中间识别结果,并最终产生文本识别结果。
在一个实施例中,确定口语输入201是否包括请求包括对口语输入201执行自然语言处理。特别地,一旦输入分析器202通过ASR产生包含文本串的识别结果,输入分析器就可以推断出口头输入201的意图。
指代检测器202产生语音输入的多个候选文本表示。每个候选文本表示是对应于口语输入201的单词或标记的序列。每个候选文本表示与语音识别置信分数相关联。基于语音识别置信度得分,指代检测器202对候选文本表示进行排序,并将n个最佳(例如,n个最高排序)候选文本表示提供给数字助手200的其他模块以供进一步处理。
确定口语输入201是否包括请求包括确定口语输入202是否包括歧义项。在一个示例中,歧义词是一个指示词。指示词指的是一个词或短语,它模糊地指代诸如对象、时间、人或地点之类的东西。示例性指示指代包括但不限于,this,here,there,then,these,them,he,she等,特别是当与诸如问题“这是什么?”、“那在哪里?”和“他是谁?”之类的问题一起使用时。
因此,指代检测器202确定请求是否包括一个或类似的单词。例如,在口语输入301中,“那是什么动物?”指代检测器202可以通过ASR和/或NLP确定“那”是指代含义 。类似地,在口语输入401中,“沙发上方的那个是什么?”指代检测器202确定“那个”是指示指代。在这两个示例中,指代检测器202可以确定“那个”是模糊的,因为用户输入不包括可以用“那个”或“这个”来指代的主题或对象
在一个实施例中,数字助手200接收图像输入203。图像输入203包括多个对象,例如图像输入300包括负鼠302和树303。作为另一示例,图像输入400包括绘画402和沙发403。
在一个实施例中,图像输入203可以包括虚拟现实、增强现实或增强虚拟现实中的电子设备100的视图。因此,包括在图像输入203中的一个或多个对象可以是为图像输入203创建或添加到图像输入203的虚拟对象。
在接收图像输入203之前,数字助手200确定是否调用电子设备100的摄像头。数字助手200基于用户是否选择了物理按钮或显示的按钮来确定是否调用电子设备100的摄像头。数字助手200基于音频输入201确定是否调用摄像头。
除了接收图像输入203之外,数字助手200同时可以检测与语音输入201相关联的手势。在一个实施例中,数字助手200通过检测图像输入203中的手势来检测与语音输入201相关联的手势。例如,当图像输入203是电子设备100的视图时,图像输入203可以包括用户的手指向一个或多个对象,同时提供语音输入201。
在一个实施例中,数字助手200使用电子设备100的另一传感器检测与语音输入201相关联的手势。电子设备100的其他传感器可以是陀螺仪、加速计或检测电子设备100移动的其他传感器。因此,数字助手200在接收语音输入201的同时,基于在陀螺仪、加速计或其他传感器处接收的数据来检测与语音输入201相关联的手势。
当电子设备100是诸如头戴式显示器的可穿戴设备时,用户可以朝可穿戴设备的视图中的对象点头。因此,电子设备100的陀螺仪、加速计等检测指示点头的数据。数字助手200然后可以基于由陀螺仪或加速计检测到的数据来确定用户在哪个方向点头、他们点头的程度以及在用户点头的方向上图像输入203中存在哪些对象。
类似于上面讨论,数字助手200可以检测与语音输入201相关联的用户注视。例如,当电子设备100是诸如头戴式显示器的可穿戴设备时,电子设备100的视图同时是佩戴电子设备100用户的视图。因此,数字助手200可以将与语音输入201相关联的用户注视确定为与语音输入202一起接收的图像输入203。
数字助手200可以通过执行诸如边缘检测、边缘提取、图像分割、纹理分析、运动分析等图像处理技术来从图像输入203确定基本图像特征。基本图像特征包括但不限于图像中的对象、图像中的文本、用户注视、用户的手势以及在接收图像输入203和/或语音输入201时与电子设备相关联的情景数据。
例如,当数字助手200接收到图像输入300时,数字助手200可以确定复杂的图像特征,包括负鼠302靠近树303、负鼠302在树303的右侧、负鼠303不在树303中、用户比负鼠302更靠近树303等。又如,数字助手200可以确定复杂的图像特征,包括图片402在沙发403上方、沙发403靠墙、绘画402靠近沙发403等。
数字助手200向指代分类器204提供语音输入201和图像输入203,使得指代分类器204可以基于语音输入201的请求和图像输入204的请求从多个指代解析模块中选择指代解析模块。
如图2所示,多个指代解析模块包括文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析组件210。除了语音输入201和图像输入203之外,数字助手200同时向指代分类器204提供用户和数字助手200之间的基本图像特征、复杂图像特征和历史交互数据。
指代分类器204通过确定哪个指代解析模块将能够完成对象确定过程,从文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析组件210中进行选择。文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析模型210中的每一个都可以通过检查不同的输入和因素来完成对象确定过程,以确定用户正在用语音输入201指代图像输入203的哪个对象。
因此,指代分类器204通过确定当前输入集合中存在哪些输入和/或因素,从而确定三个指代解析模块中的哪一个最有可能完成对象确定过程,并选择三个指代分辨模块中的一个或多个。在一个实施例中,指代分类器204对文本指代解析模块206、基本视觉指代解析模块208或复杂视觉指代解析模型210的选择基于由指代分类器204确定的多个置信度分数。
指代分类器204可以基于语音输入201、图像输入203、历史交互数据、基本图像特征和/或复杂图像特征来确定置信度分数。例如,指代分类器204可以将某些权重或值分配给在口语输入201中出现或不出现的单词。类似地,指代分类器204可以基于出现在图像输入203中的某些基本或复杂图像特征以及语音输入201是否指代一个或多个基本或复杂的图像特征来分配权重。
因此,指代分类器204可以基于分配给这些因素中的每一个的一个或多个权重来计算置信度分数,以及复杂视觉指代解析模块210与多个置信度分数中的不同置信度分数相关联。
与文本指代解析模块206相关联的置信度分数是可以基于口头输入201和历史交互数据来完成对象确定过程的可能性。例如,当用户提供包括请求“它们吃什么?”的口头输入,并且数字助手200接收到不包括任何对象或图像特征的图像输入时,指代分类器204可以确定用户打算指代与数字助手200的过去交互。
因此,指代分类器204可以基于“它们吃什么?”的当前口语输入和存储在实体数据库212中的关系/历史交互来确定对象确定过程是否可能完成。因此,指代分类器204可以基于口头输入201和历史交互数据以及因此与文本指代解析模块206相关联的高置信度来计算对象确定过程可以完成的高可能性。
与基本视觉指代解析模块208相关联的置信度分数是可以至少基于语音输入201和由数字助手200确定的基本图像特征来完成对象确定过程的可能性。例如,当用户提供语音输入301“那是什么动物?”,并且数字助手200接收图像输入300时,数字助手200可以确定图像输入300的基本图像特征包括负鼠302和树303。
所以,指代分类器204可以进行确定,因为在输入中提供了单词“动物”,并且存在作为图像输入300中包括的动物的对象(例如负鼠302),所以很可能可以基于语音输入和基本图像特征来完成对象确定过程。
因此,指代分类器204可以基于语音输入201和图像输入300以及因此与基本视觉指代解析模块208相关联的高置信度来计算可以完成对象确定过程的高可能性。
除了语音输入201和基本图像特征之外,与基本视觉指代解析模块208相关联的置信度分数同时可以考虑是否能够基于历史交互数据来完成对象确定过程。例如,当用户提供语音输入“那一个呢?”时,数字助手200可以接收包括浣熊的基本图像特征的图像输入。指代分类器204然后可以基于输入“那一个”确定用户正在指代与数字助手200的先前对话。
因此,指代分类器204可以确定很可能可以基于口头输入、历史交互和当前图像输入(例如浣熊)的基本特征来完成对象确定过程。所以,指代分类器204可以确定与基本视觉指代解析模块208相关联的高置信度分数。
与复杂视觉指代解析模块210相关联的置信度分数是可以至少基于语音输入201和由数字助手200确定的复杂图像特征来完成对象确定过程的可能性。例如,当用户提供语音输入401“沙发上方的绘画是什么?”,并且数字助手200接收图像输入400时,数字助手200可以确定图像输入400的复杂图像特征包括绘画402和沙发403之间的关系。
因此,指代分类器204可以基于输入401中包括的“沙发上方”和图像输入400的确定的复杂图像特征来确定对象确定过程很可能可以完成。所以,指代分类器204可以确定与复杂视觉指代解析模块210相关联的高置信度分数。
在确定置信分数之后,指代分类器204确定一个或多个置信分数是否超过相关联的预定阈值。在一些示例中,存在与文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析模型210中的每一个相关联的预定阈值。因此,当置信度分数超过与特定指代解析模块相关联的预定阈值之一时,指代分类器204为对象确定过程选择相关联的指代解析模块。
例如,当用户提供口头输入301“那是什么动物?”,并且数字助手200接收图像输入300时,指代分类器204可以确定与文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析模块210中的每一个相关联的置信度分数。
如上所述,指代分类器204可以确定很可能基于口头输入和基本图像特征完成对象确定过程,并且进一步确定不可能基于历史交互数据或复杂图像特征完成目标确定过程。因此,指代分类器204可以确定与基本视觉指代解析模块208相关联的高置信度分数和与文本指代解析模块206和复杂视觉指代解析模型210相关联的低置信度分数。
指代分类器204然后确定与基本视觉指代解析模块208相关联的置信度分数超过预定阈值,并选择基本视觉指代分辨模块208用于对象确定过程。
作为另一个示例,当用户提供语音输入401“沙发上方的是什么?”,并且数字助手200接收到图像输入400时,指代分类器204可以确定很可能可以基于语音输入和复杂的图像特征来完成对象确定过程,并且进一步,不可能基于历史交互数据或基本图像特征来完成对象确定过程。
因此,指代分类器204可以确定与复杂视觉指代解析模块210相关联的高置信度分数和与文本指代解析模块206和基本视觉指代解析模型208相关联的低置信度分数。指代分类器204然后确定与复杂视觉指代解析模块210相关联的置信度分数超过预定阈值,并选择复杂视觉指代分辨模块210用于对象确定过程。
在选择文本指代解析模块206、基本视觉指代解析模块208和复杂视觉指代解析模型210中的一个之后,指代分类器204向所选择的指代解析模块提供口语输入201、图像输入203、基本图像特征、复杂图像特征和历史交互数据。
在选择指代分类器204之后,文本指代解析模块206通过检查当前口语输入201和用户与数字助手200之间的历史交互数据来完成对象确定过程,以确定请求指代哪个对象。例如,在用户提供了“那是什么动物?”,以及数字助手200回答“那是负鼠”的交互之后,用户可以提供包括请求“它们吃什么?”的口头输入。
因此,文本指代解析模块206可以基于用户和数字助手200之间的先前交换来确定当前用户请求所指代的对象是负鼠。因此,数字助手200可以基于请求和所确定的对象来确定对用户的适当响应。
作为另一个示例,用户可以提供包括请求“树旁边的动物又是什么?”的口头输入。文本指代解析模块206可以检查实体数据库212,以确定哪些对象与术语“动物”、“动物”或“树”有关系,以确定用户指代的对象。因此,文本指代解析模块206可以确定实体数据库212包括对象“负鼠”和术语中的一个或多个之间的存储关系,从而确定当前用户请求指代的对象是负鼠。
在一个实施例中,如上所述,基本图像特征包括在接收语音输入201时检测到的用户手势或注视。因此,基本视觉指代解析模块208通过检查语音输入201以及检测到的注视和/或手势来完成对象确定过程。
检查语音输入201以及检测到的注视和/或手势包括确定手势的类型。示例性的手势类型包括指向、点头以及可以指示对象的任何其他类型的手势。在一个实施例中,基本视觉指代解析模块208基于手势的类型和图像输入203来确定手势是否指代图像输入203中的对象。
例如,基本视觉指代解析模块208可以接收语音输入“那个是什么?”,以及指示用户指向图像输入203的猫的数据。因此,基本视觉指代解析模块208确定用户正在用语音输入中的指代“那个”来指代猫,并且数字助手200可以确定用户的适当响应。
作为另一示例,基本视觉指代解析模块208可以接收语音输入“那边是什么?”,以及指示用户朝向图像输入203的山脉点头的数据。因此,基本视觉指代解析模块208确定用户正在用口语输入中的指代“那边”来指代山脉。