CN109545205A - 基于上下文的虚拟助理实现 - Google Patents
基于上下文的虚拟助理实现 Download PDFInfo
- Publication number
- CN109545205A CN109545205A CN201810017026.5A CN201810017026A CN109545205A CN 109545205 A CN109545205 A CN 109545205A CN 201810017026 A CN201810017026 A CN 201810017026A CN 109545205 A CN109545205 A CN 109545205A
- Authority
- CN
- China
- Prior art keywords
- state
- user
- input
- voice
- inquiry system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010586 diagram Methods 0.000 claims description 37
- 238000013507 mapping Methods 0.000 claims description 5
- 239000003607 modifier Substances 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 64
- 230000004044 response Effects 0.000 description 24
- 230000015654 memory Effects 0.000 description 18
- 208000027418 Wounds and injury Diseases 0.000 description 13
- 230000006378 damage Effects 0.000 description 13
- 208000014674 injury Diseases 0.000 description 13
- 238000000034 method Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及基于上下文的虚拟助理实现。具体而言,公开了用于维持虚拟助理和用户之间的对话的技术。系统生成上下文对象。与对话相关的上下文信息被存储到上下文对象。上下文信息可以定义状态。基于该状态,虚拟助理可以呈现信息、呈现查询、执行查询或从用户接收信息。虚拟助理经由上下文对象确定整个谈话中的上下文。虚拟助理可以使用存储到上下文对象的信息来确定与接收到的输入对应的变量。
Description
技术领域
本公开涉及虚拟助理。具体而言,本公开涉及经由特定于状态的上下文对象维持虚拟助理与用户之间的对话。
权益要求
本申请要求于2017年9月22日提交的美国非临时申请No.15/712,480号的优先权,该申请通过引用并入本文。
背景技术
虚拟助理是用于执行任务的软件代理。虚拟助理可以经由语音命令和/或文本命令来接受来自用户的指令。语音命令可以由智能扬声器接收。可替代地,虚拟助理可以经由键入聊天界面的文本命令接收来自用户的命令。一般而言,虚拟助理响应于请求而执行简单的任务。例如,响应于语音命令“今天的天气如何?”,虚拟助理获得并读取今天的天气预报。
虚拟助理可以使用特定的应用或模块来执行具体的任务。作为示例,虚拟助理调用独立的应用来查找方向、检查天气以及更新日历。虚拟助理可以确定用户的意图,以识别要执行的任务。虚拟助理可以使用样本话语来确定意图。例如,基于样本话语“我的支票帐户的余额是多少?”而调用名为lookupBalance的应用。
本节中描述的方法是可以追求的方法,但不一定是先前已经构想或追求的方法。因此,除非另有说明,否则不应当假定本节中描述的任何方法仅仅因为它们被纳入本节中就符合作为现有技术。
附图说明
在附图的各个图中,实施例是作为示例而不是作为限制进行图示的。应当注意的是,本公开中对“一个”实施例的引用不一定是指相同的实施例,并且它们意味着至少一个。在附图中:
图1图示了根据一个或多个实施例的系统;
图2A图示了根据一个或多个实施例的、用于维护基于上下文的虚拟助理对话的示例操作集合;
图2B图示了根据一个或多个实施例的、用于定制虚拟助理应用的示例操作集合;
图3图示了根据一个或多个实施例的示例状态图;以及
图4示出了图示根据一个或多个实施例的计算机系统的框图。
具体实施方式
在以下描述中,为了说明的目的,阐述了许多具体细节以便提供透彻的理解。可以在没有这些具体细节的情况下实践一个或多个实施例。在一个实施例中描述的特征可以与在不同的实施例中描述的特征组合。在一些示例中,参考框图形式描述众所周知的结构和设备,以避免不必要地模糊本发明。
1.一般概述
2.基于上下文的虚拟助理系统
3.基于上下文的虚拟助理对话
4.生成虚拟助理应用
5.示例实施例
6.杂项;扩展
7.硬件概述
1.一般概述
一个或多个实施例包括经由基于状态的上下文对象维护虚拟助理与用户之间的对话。系统建立与对话的相应部分对应的状态。系统向上下文对象存储上下文信息。上下文信息可以包括当前状态和与该状态相关联的信息。基于当前状态,虚拟助理请求来自用户的信息。系统可以经由智能扬声器或聊天界面接收来自用户的输入。系统将接收到的输入的一部分映射到与所请求的信息对应的变量。系统可以基于当前状态、先前状态和/或用户输入历史将输入映射到变量。当对话进行时,系统可以将上下文对象更新为新的状态。
一个或多个实施例包括经由图形界面来定制虚拟助理应用。系统经由图形界面呈现节点和连接器。系统允许用户配置节点和连接器以形成状态图,其中每个节点表示相应的状态。系统使用户能够重新布置节点来配置状态的顺序。系统使用户能够选择与状态节点相关联的输入和/或输出。系统将状态图转换成用于虚拟助理应用的可执行代码。
本说明书中描述和/或权利要求中阐述的一个或多个实施例可以不包括在这个“一般概述”部分中。
2.基于上下文的虚拟助理系统
图1图示了根据一个或多个实施例的系统100。如图1所示,系统100包括查询系统定义界面102、状态机生成器108、查询系统110和用户通信设备120。在一个或多个实施例中,系统100可以包括比图1中所示的部件更多或更少的部件。图1中所示的部件可以在彼此本地或彼此远离。图1中所示的部件可以在软件和/或硬件中实现。每个部件可以分布在多个应用和/或机器上。多个部件可以被组合到一个应用和/或机器中。关于一个部件描述的操作可以替代地由另一个部件执行。
在一个或多个实施例中,系统100基于来自用户130的输入来执行任务。示例性任务包括进行旅行安排、呈现方向、显示所请求的图像以及在账户之间转移资金。可以基于与用户130的对话来执行任务中的一个或多个步骤。对话可以包括由用户130接收的输入和由系统100生成的输出。对话可以包括来自用户130的初始请求。对话可以包括来自系统100的解决用户请求的响应。对话可以包括由系统100生成的针对来自用户130的附加信息的请求。
在一个或多个实施例中,用户通信设备120包括被配置为促进与用户130的通信的硬件和/或软件。用户通信设备120可以从用户130接收信息。用户通信设备120可以向用户130发送信息。用户通信设备可以促进经由音频接口122和/或可视界面124与用户130的通信。用户通信设备120通信耦合到查询系统110。
在实施例中,用户通信设备120在一个或多个数字设备上被实现。术语“数字设备”一般是指包括处理器的任何硬件设备。数字设备可以指执行应用或虚拟机的物理设备。数字设备的示例包括计算机、平板电脑、膝上型电脑、台式机、上网本、服务器、web服务器、网络策略服务器、代理服务器、通用机器、特定于功能的硬件设备、硬件路由器、硬件交换机、硬件防火墙、硬件网络地址翻译器(NAT)、硬件负载平衡器、大型机、电视机、内容接收器、机顶盒、打印机、移动手持机、智能手机、个人数字助理(“PDA”)、无线接收器和/或发送器、基站、通信管理设备、路由器、交换机、控制器、接入点和/或客户端设备。
在实施例中,用户通信设备120是智能扬声器。智能扬声器接收来自用户130的音频数据。智能扬声器播放音频。智能扬声器向查询系统110发送信息和从查询系统110发送信息。智能扬声器可以被实现为独立设备,或者实现为智能设备(诸如智能手机、平板电脑或计算机)的一部分。
在一个或多个实施例中,音频接口122是指被配置为促进用户130与用户通信设备120之间的音频通信的硬件和/或软件。音频接口122可以包括播放音频的扬声器。所播放的音频可以包括包含对话的口头问题和答案。音频接口可以包括接收音频的麦克风。所接收的音频可以包括从用户130接收的请求和其它信息。
在一个或多个实施例中,可视界面124是指被配置为促进用户与用户通信设备120之间的可视通信的硬件和/或软件。可视界面124渲染用户界面元素并且经由用户界面元素接收输入。可视界面的示例包括图形用户界面(GUI)和命令行界面(CLI)。用户界面元素的示例包括复选框、单选按钮、下拉列表、列表框、按钮、双态开关(toggles)、文本字段,日期和时间选择器、命令行、滑块、页面和表单。
可视界面124可以呈现消息传送界面。消息传送界面可以用于接受来自用户的键入的输入。消息传送界面可以用于向用户显示文本。可视界面124可以包括显示图像(诸如地图和图片)的功能。可视界面124可以包括上传图像的功能。作为示例,用户130上传动物的图片连同文本“这是什么?”。
在实施例中,查询系统110是用于响应于经由用户通信设备120来自用户130的输入来执行一个或多个任务的系统。查询系统110可以从用户通信设备120接收语音输入、文本输入和/或图像。
查询系统110可以使用语音识别技术将语音输入转换成文本。查询系统110可以数字化和/或过滤接收到的语音输入。查询系统110可以将语音输入与存储的模板声音样本进行比较,以识别词或短语。查询系统110可以将语音输入分离成部件,以便与特定语言中使用的声音进行比较。
基于文本,查询系统110可以使用自然语言处理来识别一个或多个可执行命令。查询系统110可以将相关文本与文本块隔离。查询系统110可以识别文本块中的关键字。查询系统110可以将接收到的文本与和查询系统110可执行的任务相关联的模板语言进行比较。
查询系统110可以实现人工智能技术(诸如机器学习),以随时间推移而改进。查询系统可以存储过去的对话,以与当前对话进行比较。作为示例,在过去的对话中,查询系统110呈现了5个后续问题,以完成特定的任务。基于从过去的对话中学习,查询系统110在当前对话中只呈现了1个后续问题,以完成相同的任务。
在实施例中,查询系统110远离用户通信设备120实现。查询系统110可以在云网络上执行。可替代地,查询系统110可以在用户通信设备120本地执行。查询系统110可以执行任务或从一个或多个外部服务器检索信息。作为示例,查询系统110可以从第三方地图应用检索交通数据。
在实施例中,查询系统110从用户通信设备120检索数据。作为示例,查询系统可以查询用户通信设备120,以经由用户通信设备120的全球定位系统(GPS)功能来确定位置。作为另一个示例,查询系统110可以通过访问与存储到用户通信设备120的日历应用相关联的数据来查询用户通信设备120,以确定用户在特定时间是否空闲。
查询系统可以基于上下文来确定要执行的操作。查询系统110可以基于分析用户输入来确定上下文。查询系统110可以基于用户输入历史114来确定上下文。查询系统110可以基于状态来确定上下文。
在实施例中,上下文对象112是存储关于对话的上下文信息的对象。上下文对象112可以在对话过程中在用户通信设备120与查询系统110之间来回发送。上下文对象可以存储反映由查询系统110执行的最后操作的信息。上下文对象可以存储反映用户输入历史114的信息。上下文对象112可以存储反映当前状态116和/或状态转变历史118的信息。
在实施例中,用户输入历史114是在一个或多个对话过程中用户输入的记录。用户输入历史114可以包括关于一系列语音输入的序列的信息。用户输入历史114可以按照类型对用户输入进行分类。例如,用户每天早上8点提出与天气有关的请求。
在实施例中,上下文对象112存储状态信息。每个状态可以被指派相应的状态标识号码。查询系统可以使用状态信息来确定与特定状态相关联地执行的一个或多个操作。例如,在状态1中,用户通信设备播放音频“你好”,并接受用户响应。在状态2中,用户通信设备播放音频“今天你好吗?”。
在实施例中,上下文对象112存储关于当前状态116的信息。当前状态是在特定时间与上下文对象112相关联的状态。当前状态116可以与唯一的状态标识符相关联。当前状态116可以由例如数字、十六进制或文字描述来表示。
在实施例中,上下文对象112存储状态转变历史118。状态转变历史118可以包括有序的状态序列。状态转变历史118可以包括当前对话中的先前状态集合。状态转变历史118可以包括先前对话中的一系列状态。状态转变历史118可以将状态转变与由查询系统110检索出的用户输入和/或信息相关联。
在实施例中,查询系统定义界面102是用于配置状态图的用户界面(UI)。状态图可以用于经由查询系统110生成与用于执行特定任务的应用对应的代码。查询系统定义界面102渲染用户界面元素并且经由用户界面元素接收输入。可视界面的示例包括图形用户界面(GUI)和命令行界面(CLI)。用户界面元素的示例包括复选框、单选按钮、下拉列表、列表框、按钮、双态开关、文本字段,日期和时间选择器、命令行、滑块、页面和表单。
在实施例中,查询系统定义界面102的不同部件以不同的语言指定。用户界面元素的行为以动态编程语言(诸如JavaScript)指定。用户界面元素的内容以标记语言(诸如超文本标记语言(HTML)或可扩展标记语言(XML)、用户界面语言(XUL))指定。用户界面元素的布局以样式表语言(诸如层叠样式表(CSS))指定。可替代地,查询系统定义界面102以一种或多种其它语言(诸如Java、C或C++)指定。
在实施例中,查询系统定义界面102显示可移动部件(诸如文本框和连接箭头)。查询系统允许用户重新布置部件。这些部件与状态信息相关联。通过重新布置状态定义部件,用户可以修改要由与特定虚拟助理应用相关联的查询系统110执行的操作。
在实施例中,状态定义104描述特定的状态。状态定义104可以包括要与状态相关联地被请求的信息。作为示例,状态定义104包括音频消息“你的地址是什么?”。音频信息将在上下文对象处于状态5时播放。
状态定义104可以包括与该状态相关联的预期的用户输入。作为示例,在特定状态下,查询系统110被配置为接收地址。状态定义104可以将用户输入与特定变量相关联。例如,在特定状态下,查询系统被配置为接收针对变量address(地址)的值。状态定义104可以定义与要在特定状态下接收的信息对应的槽。作为示例,状态机生成器定义槽{名字},用于传递经由用户输入接收到的名字。
在实施例中,状态关系106定义两个或更多个状态之间的关系。在视觉上,状态关系106可以经由UI呈现为连接状态节点的线或箭头。状态关系106可以定义对话中的状态的次序。状态关系106可以定义对话中的状态流。作为示例,在特定的状态下,查询系统被配置为接收“是”或“否”的响应。根据响应为“是”还是“否”,查询系统或者呈现方向,或者呈现再见消息。
在实施例中,状态机生成器108包括被配置为基于状态图生成可执行代码的硬件和/或软件。作为示例,状态机生成器108可以生成将被查询系统110用于执行如状态图所定义的一系列操作的程序的Node.js实现。状态机生成器108可以将状态图和关联的元数据变换成可执行代码。状态机生成器108可以使用与节点和连接器相关联地存储的预先生成的代码块来生成代码。状态机生成器可以生成代码,以包括由用户经由查询系统定义界面定义的定制代码。
3.基于上下文的虚拟助理对话
图2A图示了根据一个或多个实施例的、用于执行基于上下文的虚拟助理对话的示例操作集合。图2A中所示的一个或多个操作可以被修改、重新布置或完全被省略。因而,图2A中所示的操作的特定次序不应当被解释为限制一个或多个实施例的范围。
在实施例中,查询系统发起上下文对象(操作202)。查询系统可以创建与特定对话对应的上下文对象。查询系统可以为上下文对象分配存储器。查询系统可以建立用于要存储到上下文对象的信息的字段。
在实施例中,查询系统确定初始状态(操作204)。查询系统可以定义用户输入不可知的初始状态。作为示例,用户输入不可知的初始状态是基于基本上空白的上下文对象的。在用户输入不可知的初始状态下,查询系统可以等待用户输入。可替代地,查询系统可以基于用户输入来确定初始状态。作为示例,查询系统接收语音输入“制作列表”。查询系统识别列表制作应用的初始状态。
在实施例中,查询系统识别要从用户请求的与初始状态相关联的信息(操作206)。查询系统可以使用上下文对象来识别与初始状态相关联的信息。作为示例,上下文对象指定当前状态是A987。上下文对象进一步指定,在状态A987中,将从用户请求用户的名字。
在实施例中,系统请求来自用户的信息(操作208)。查询系统可以向用户通信设备发送呈现请求识别出的信息的查询的指令。用户通信设备可以播放请求该信息的音频。作为示例,用户通信设备经由智能扬声器播放音频消息“您想要什么午餐?”。可替代地或附加地,查询系统可以向用户通信设备发送经由可视界面显示文本查询的指令。例如,用户通信设备经由消息传送界面显示文本“你想要什么午餐?”。
在实施例中,查询系统接收并解析用户输入(操作210)。用户通信设备可以从用户接收包括语音输入的音频流。用户通信设备可以将音频流发送到查询系统。查询系统可以将音频流转换成文本。可替代地或附加地,用户通信设备可以从用户接收文本输入。用户通信设备可以向查询系统发送文本输入。
通过解析用户输入,查询系统可以识别用户输入的不同部分。查询系统可以执行自然语言分析,以解释用户输入。查询系统可以基于当前状态来隔离用户输入中的相关词或短语。查询系统可以将接收到的文本与可由查询系统执行的任务相关联的模板语言进行比较。
在实施例中,查询系统确定用户输入是否改变上下文(操作212)。如果用户输入包括所请求的信息,那么查询系统可以确定用户输入改变了上下文。作为示例,状态7与接收地址相关联。一旦接收到地址,上下文对象就被更新为下一个状态,即状态8。如果用户输入包括新的请求,那么查询系统可以确定用户输入改变了上下文。作为示例,系统接收用户输入“等等,我想发送电子邮件,而不是文本消息”。因而,上下文已经改变。状态应当被修改,以反映新的上下文。
在实施例中,查询系统修改上下文对象(操作214)。查询系统可以通过存储信息和/或更新当前状态来基于用户输入修改上下文对象。
在实施例中,查询系统更新上下文对象的当前状态。查询系统可以基于在上下文对象处于第一状态时接收到的语音输入将上下文对象从第一状态修改为第二状态。查询系统可以递增状态标识号码。作为示例,查询系统接收与状态1相关联的用户输入。因而,查询系统将状态标识号码递增到状态2。在递增状态标识号码时,上下文对象可以确定与新的当前状态相关联的操作。查询系统可以基于当前状态来识别要执行的代码块。
修改上下文对象还可以包括将信息存储到上下文对象。查询系统可以将用户输入与变量相关联地存储到上下文对象,如下所述。
在实施例中,查询系统鉴于当前状态、状态转变历史和/或用户输入历史来分析用户输入(操作216)。查询系统可以基于分析来确定用户输入的上下文。
在实施例中,查询系统鉴于当前状态来确定预期的响应。查询系统可以基于当前状态来检索存储的预期响应类型。作为示例,当前状态是R77。在状态R77中,查询系统被配置为接收银行账号。因而,查询系统从用户输入中选择十一位的数字。
在实施例中,查询系统鉴于状态转变历史来分析用户输入。查询系统可以基于当前对话中的一个或多个先前状态来确定用户输入的上下文。作为示例,当上下文对象处于状态1时,查询系统获得旅行者名字Joe Smith以添加到预订(reservation)。在状态2中,查询系统获得旅行者的护照号码。因为紧接着前一个状态识别出旅行者Joe Smith,所以查询系统确定护照号码是Joe Smith的。可替代地或附加地,查询系统可以基于先前对话中的一个或多个先前状态来确定用户输入的上下文。
在实施例中,查询系统鉴于用户输入历史来分析用户输入。查询系统可以基于当前对话中的用户输入历史来确定用于用户输入的上下文。可替代地或附加地,查询系统可以基于先前对话中的用户输入历史来确定用于用户输入的上下文。作为示例,在先前对话中,用户请求了Health Mart的方向。当提示输入位置时,用户选择了J Street位置。因而,查询系统将当前对Health Mart的方向的请求解释为对J Street Health Mart位置的方向的请求。
在实施例中,查询系统确定与用户输入的至少一部分对应的变量(操作218)。查询系统可以基于上下文对象来识别变量。作为示例,上下文对象包括用于接收变量accountnumber(账号)的槽。查询系统确定收到的数字是账号,与account number槽对应。可替代地或附加地,查询系统可以基于用户输入中的上下文来识别值。作为示例,用户说:“我的账号是12345678”。根据数字和“账号”两字的组合,查询系统将12345678识别为与accountnumber槽对应的值。
在实施例中,查询系统将用户输入的对应部分与变量相关联地存储(操作220)。查询系统可以将与变量对应的用户输入存储到上下文对象。可替代地或附加地,查询系统可以将与变量对应的用户输入存储到数据储存库。查询系统可以将用户输入的选定部分存储到与变量对应的槽中。
在实施例中,查询系统将用户输入的至少一部分映射到对应的变量。查询系统可以基于当前状态将用户输入映射到变量。查询系统可以基于先前的状态将用户输入映射到变量。基于映射,查询系统可以将输入与变量相关联地存储。可替代地或附加地,查询系统可以基于映射执行查询。作为示例,查询系统接收到用户输入“告诉我我的支票帐户的余额”。系统将请求映射到例程lookupBalance。该例程包括account number槽。系统将“主要支票账户”映射到account number槽。
在实施例中,查询系统可以丢弃语音输入的一部分而不将该部分映射到任何变量。作为示例,查询系统接收到语音输入“我是乘客”。查询系统将输入的一部分“乘客”映射到对应的变量于user role(用户角色)。查询系统丢弃语音输入的剩余部分,“我是”。
在实施例中,查询系统识别要从用户请求的附加信息(操作222)。查询系统可以基于存储到上下文对象的信息(诸如当前状态和/或用户输入历史)识别要从用户请求的附加信息。查询系统可以将接收到的输入与预期的响应类型进行比较。基于预期的响应类型,查询系统可以确定是否已经接收到所需的信息。
在实施例中,基于状态转变来识别要从用户请求的附加信息。上下文对象可以被更新为与要被系统接受的新变量相关联的新状态。作为示例,在状态5中,系统接收到名字和姓氏。在接收到名字和姓氏后,上下文对象被更新为状态6。在状态6中,系统被配置为请求地址。
在实施例中,基于接收到的一个或多个用户输入来选择要从用户请求的附加信息。可以基于两个或更多个用户输入的接收次序来选择要从用户请求的附加信息。
在实施例中,基于两个或更多个用户输入的接收之间的时间来选择要从用户请求的附加信息。作为示例,查询系统接收到两个语音输入。第一个语音输入是“今天的日程表是什么?”。用户当前在旧金山。用户在圣何塞(San Jose)有约会。查询系统确定并呈现响应“你要去圣何塞”。系统接收到第二个语音输入“天气怎么样?”。如果在第一个语音输入的同一天接收到第二个语音输入,那么系统会呈现请求,“您是问圣何塞还是旧金山的天气?”。另一方面,如果在第一次语音输入之后第二天接收到第二语音输入,那么查询系统呈现旧金山的天气,而不请求附加信息。
在实施例中,基于在第一语音输入和第二语音输入之间缺少任何中介用户输入(其改变上下文对象)来选择要从用户请求的附加信息。在特定状态下,上下文对象可以被配置为接受两个或更多个变量。如果没有接收到所需的变量,那么上下文对象不被更新到下一个状态。查询系统可以请求与和当前状态相关联的一个或多个变量对应的附加信息。作为示例,在状态5中,系统被配置为接收名字和姓氏。在状态5中接收到的用户响应包括名字但没有姓氏。因此,查询系统确定要从用户请求姓氏。
在实施例中,如果要从用户请求附加信息,那么系统请求附加信息(操作208,如上所述)。
如果不从用户请求附加信息,那么系统可以终止对话。系统可能以在结束对话之前生成退出语句。作为示例,用户通信设备播放朗诵消息的音频,“订单确认。再见。”
以下详细示例说明根据一个或多个实施例的操作。以下详细示例不应当被解释为限制任何权利要求的范围。查询系统接收来自用户的语音输入“预订飞往巴黎的航班”。语音输入“预订航班”调用虚拟助理应用BookTravel。BookTravel应用包括状态的集合,每个状态具有唯一的状态标识符。上下文对象被设置为状态0001,与BookTravel应用的第一状态对应。
当上下文对象处于状态0001时,系统请求出发日期。为了请求出发日期,系统经由智能扬声器播放音频“您想要什么时候离开?”。当上下文对象处于状态0001时,系统被配置为接收并存储与出发日期对应的用户输入。上下文对象指定出发日期应当以MM/DD/YYYY的形式存储在槽DepartureDate(出发日期)中。系统接收到用户输入“我想在12月5日离开”。系统将语音输入转换成文本。系统执行自然语言分析以识别文本中的日期。系统将当前年份附加到收到的输入,以生成变量12/05/2017。系统将值12/05/2017存储到DepartureDate槽。上下文对象从状态0001更新到状态0002。
当上下文对象处于状态0002时,系统被配置为请求返回日期。为了请求返回日期,系统经由智能扬声器播放音频“您想要什么时候返回?”。当上下文对象处于状态0002时,系统被配置为接收并存储与返回日期对应的用户输入。输入应当以MM/DD/YYYY的形式存储到槽ReturnDate(返回日期)。系统接收到用户输入“我想呆十天”。系统将语音输入转换成文本。系统执行自然语言分析以确定用户正在提供停留时间。系统将停留时间转换成返回日期,生成变量12/15/2017。系统将值12/15/2017存储到ReturnDate槽。上下文对象从状态0002更新到状态0003。
当上下文对象处于状态0003时,系统被配置为请求目的地,除非已经从用户接收到目的地。系统分析存储到上下文对象的用户输入历史。系统确定已经在用户的初始请求中指定了目的地。系统将目的地巴黎存储到Destination(目的地)槽。上下文对象被更新到状态0004。
当上下文对象处于状态0004时,系统被配置为识别航班信息以向用户呈现航班信息。系统执行对第三方旅行预订应用的查询。系统将Destination槽,DepartureDate槽和ReturnDate槽中的变量传递到旅行预订应用。系统从旅行预订应用呈现的一组航班中选择航班。系统生成并播放音频消息:“OK。我找到了法国航空到巴黎的往返航班,十二月5日离开并于十二月15日返回。经济舱是800美元。我可以预订吗?”。
当上下文对象处于状态0004时,系统被配置为接收“是”或“否”响应。系统接收语音输入“是”。系统根据当前状态分析用户输入。基于当前状态,系统确定“是”与预订所选航班的指令对应。上下文对象被更新到状态0005。
当上下文对象处于状态0005时,系统被配置为预订所选航班。系统向旅行预订应用发送请求以购买所选航班的往返机票。当上下文对象处于状态0005时,系统被进一步配置为播放最终消息。系统经由智能扬声器播放消息“OK。您的航班已预订。再见。”系统终止对话。
4.定制虚拟助理应用
图2B图示了根据一个或多个实施例的、用于定制虚拟助理应用的示例操作集合。图2B中所示的一个或多个操作可以被修改、重新布置或完全省略。因而,图2B中所示的操作的特定次序不应当被解释为限制一个或多个实施例的范围。
在实施例中,查询系统定义界面呈现用于生成状态图的图形部件(操作230)。查询系统定义界面可以呈现与相应状态对应的节点。节点可以预先填充有文本。可替代地或附加地,节点可以是用于接收定制用户输入的空白文本框。查询系统定义界面可以呈现用于将状态链接到流程图中的连接器(诸如箭头)。图3图示了示例状态图。
在实施例中,用针对查询系统呈现给用户的消息来定义特定状态。例如,与状态1对应的节点包含文本“您今天想做什么?”。当上下文对象处于状态1时,用户通信设备播放音频“您今天想做什么?”。
可替代地或附加地,可以用与预期的用户响应对应的变量来定义状态。状态可以由特定类型的预期输入来表示。状态可以与开放式问题相关联。在与开放式问题相关联的状态中,系统可以接受任何响应(即,一个字或一百个字)。状态可以与有效响应的具体集合相关联。作为示例,节点包含文本:<发生了伤害|是否>。节点与预期到“是”或“否”的用户响应的状态对应。
可替代地或附加地,可以用要执行的操作来定义状态。当上下文对象处于特定状态时,查询系统可以被配置为执行特定操作。状态可以与任务相关联,诸如制作列表或向第三方应用发送请求。作为示例,当上下文对象处于状态5时,查询系统通过查询天气应用来获得天气报告。
在实施例中,查询系统定义界面接收用户输入以配置状态图(操作232)。查询系统定义界面可以提示用户拖放文本框和连接器,以创建流程图式的状态图。查询系统定义界面可以允许用户从状态图中添加或移除节点。查询系统定义界面可以允许用户重新布置节点在状态图中出现的次序。查询系统定义界面可以允许用户插入或布置箭头,以定义状态图中的流程。
查询系统定义界面可以允许用户将类型指派给节点。作为示例,节点与系统被配置为接收开放式响应的状态对应。查询系统可以允许用户指定与节点相关联的变量的名字和类型。作为示例,用户输入文本<用户角色:客户|卖家>。该节点与变量User Role相关联。该节点的类型被配置为接受两个响应之一。
查询系统定义界面可以以定制执行代码的形式接收用户输入。作为示例,用户配置节点以接收事故报告。查询系统定义界面允许用户输入定制实现逻辑以生成表述性状态转移(REST)服务调用,从而添加第三方系统中的事故。
查询系统定义界面可以以元数据的形式接收用户输入。查询系统定义界面可以允许用户输入指定信息(诸如在其中查找特定数据片段的表或者要在执行查询中使用的web应用)的元数据。
在实施例中,查询系统定义界面确定状态图是否完整(操作234)。查询系统定义界面可以显示带有以下标签的按钮,诸如“完成状态图”、“导出”或“制作我的应用”。响应于用户点击按钮,查询系统定义界面确定状态图是完整的。如果用户没有点击按钮,那么查询系统定义界面可以确定状态图不完整。
在实施例中,如果状态图不完整,那么查询系统定义界面继续接收用户输入以配置状态图(操作232,如上所述)。
在实施例中,如果状态图是完整的,那么状态机生成器将状态图转换成可执行代码(操作236)。状态机生成器对流程图和相关联的元数据执行转换处理。状态机生成器生成与状态图的每个状态对应的实现块。特定的状态可以与实现块(诸如switch语句中的case或者函数)对应。实现块可以包括将接收到的与变量对应的输入保存到上下文对象的代码。实现块可以包括生成包括要被读取的文本的响应对象的代码。实现块可以包括状态图中指定的任何定制代码。实现块可以包括用于分析上下文对象并且在接收到分组时执行适当的执行块的代码。
在实施例中,状态机生成器向状态图中的每个状态指派唯一的标识(ID)号码。状态机生成器可以指派数字和/或字母,以识别特定的状态。顺序状态可以被给予顺序的ID号码。
5.示例实施例
为了清楚起见,下面描述详细的示例。下面描述的部件和/或操作应当被理解为可能不适用于某些实施例的一个具体示例。因而,下面描述的部件和/或操作不应当被解释为限制任何权利要求的范围。
图3图示了根据一个或多个实施例的示例状态图300。如关于图2B所描述的,状态图300可以使用查询系统定义界面来生成。如图3所示,状态图包括节点的集合(302-326),每个节点表示相应的状态。每个节点中的文本表示与对应状态相关联的输出和/或输入。节点用箭头连接,以产生流程图。每个箭头表示从第一状态到第二状态的转变。
节点302表示用于生成事故报告的对话的初始状态。当上下文对象处于状态302时,用户通信设备呈现消息“简要描述发生了什么”。节点302还指定接收用户输入的槽。当上下文对象处于状态302时,与描述对应的用户输入被存储到槽description(描述)中。节点302是被配置为接收开放式用户输入的类型。用户可以根据以需要的尽可能多的字来描述发生了什么。系统可以被配置为经由一个或多个槽接受多字用户输入。例如,描述中的每个词可以存储到不同的槽中。即使特定的虚拟助理平台没有被配置为接收自由形式的用户响应,将词存储到相应的槽也可以允许存储自由形式的描述。
在状态302中接收到用户输入时,上下文对象被更新为状态304。在状态304中,用户通信设备呈现消息“是否有任何疾病或伤害?”。在状态304中,系统还被配置为接收用户输入。节点304是被配置为接收与是否发生伤害对应的“是”或“否”答案的类型。系统可以被配置为接受“是”和“否”的变化,诸如“是的(yea)”、“耶(yep)”或“不是”。
在状态304中接收到用户输入时,上下文对象被更新到状态306。在状态306中,用户通信设备呈现消息“是否有任何环境影响?”。状态306包括接收“是”或“否”输入的槽。输入与是否有任何环境影响对应。在状态304和状态306中,系统都可以接收“是”或“否”输入。基于当前状态,系统可以在每次用户说“是”或“否”时确定适当的上下文。如果系统处于状态304,那么“是”意味着存在疾病或伤害。如果系统处于状态306,那么“是”意味着对环境有影响。
在状态306中接收到用户输入时,上下文对象被更新到状态308。在状态308中,用户通信设备呈现消息“你叫什么名字?”。在状态308中,系统被配置为接收与用于存储姓名的槽<用户名>相关联的用户输入。当系统在状态308中接收用户输入时,查询系统识别名字。查询系统将描述存储到<用户名>槽。
在状态308中接收到用户输入时,上下文对象被更新到状态310。在状态310中,用户通信设备呈现消息“在事故中你的角色是什么?”。系统还被配置为在状态310中接收用户输入。如果用户在状态310中响应“目击者”,那么上下文对象被更新到状态314。如果用户是目击者,那么状态图被配置为省略关于对用户的伤害的问题(即,下一个状态是314,跳过了状态312)。
另一方面,如果用户在上下文对象处于状态310时响应“受害者”,那么上下文对象被更新到状态312。在状态312中,用户通信设备呈现消息“你受到了什么伤害?”。节点312包括槽<伤害描述>。当上下文对象处于状态312时,查询系统识别并将描述存储到<伤害描述>槽。
在状态312中接收到用户输入时,上下文对象被更新到状态314。在状态314中,用户通信设备呈现消息“是否有其他人涉入?”。节点312被配置为接收“是”或“否”输入。
如果接收到的输入是“是”,那么上下文对象被更新到状态316。如果接收到的输入是“否”,那么上下文对象被更新到状态320。如果答案是“是”(即,上下文对象被更新到状态316),那么状态图已经被配置为包括关于另外的受害者的问题。如果回答是“否”(即,上下文对象被更新到状态320,跳过了状态316-318),那么状态图已经被配置为省略关于另外的受害者的问题。
在状态316中,用户通信设备呈现消息“他们的角色是什么?”。节点316被配置为接收两个响应之一:“受害者”或“目击者”。
如果在上下文对象处于状态316中的同时系统接收到输入“目击者”,那么上下文对象被更新到状态314。如果答案是“目击者”,那么状态图被配置为省略关于伤害的问题。
另一方面,如果在系统处于状态316时用户响应“受害者”,那么上下文对象被更新到状态318。如果该人是受害者,那么查询系统请求伤害描述。在状态318中,用户通信设备呈现消息“他们受到了什么伤害?”。系统被配置为将开放式伤害说明存储到槽InjuryDescription(伤害描述)。
在接收到伤害描述之后,将上下文对象更新到状态314(如上所述),以确定是否有其他人涉入。
如果没有其他人涉入,那么上下文对象被更新到状态320。在状态320中,用户通信设备呈现消息“位置在哪里?”。系统将与位置对应的用户输入存储到location(位置)槽。
在状态320中接收到位置之后,上下文对象被更新到状态322。事故报告完成。查询系统将事故存储到数据储存库。用户通信设备呈现消息“添加事故”。要我读吗?”。节点322被配置为接收“是”或“否”响应。
如果用户输入包括“是”的变体,那么上下文对象被更新到状态324。如果用户输入是“是”,那么状态图已经被配置为读事故报告。当上下文对象处于状态324时,用户通信设备呈现包括事件报告的读出的消息和消息“再见”。在呈现消息之后,查询系统关闭应用。
如果用户输入包括“否”的变体,那么上下文对象被更新到状态326。如果答案是“否”,那么状态图已经被配置为避免读事故报告。当上下文对象处于状态356时,用户通信设备呈现消息“再见”,并关闭应用。
6.杂项;扩展
实施例针对具有一个或多个设备的系统,一个或多个设备包括硬件处理器并且被配置为执行本文描述的和/或下面权利要求中任何一项所述的任何操作。
在实施例中,非瞬态计算机可读存储介质包括指令,指令在被一个或多个硬件处理器执行时,使得本文描述的和/或权利要求中任何一项所述的任何操作被执行。
本文描述的特征和功能的任何组合可以根据一个或多个实施例使用。在前面的说明书中,已经参考因实现方式而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。
7.硬件概述
根据一个实施例,本文所描述的技术由一个或多个专用计算设备来实现。专用计算设备可以是硬连线的以执行技术,或者可以包括诸如被永久性地编程以执行技术的一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU)的数字电子设备,或者可以包括编程为根据固件、存储器、其它存储装置或组合中的程序指令执行技术的一个或多个通用硬件处理器。这些专用计算设备还可以将定制的硬接线逻辑、ASIC、FPGA或NPU与定制的编程组合来实现技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或结合硬连线和/或程序逻辑来实现技术的任何其它设备。
例如,图4是图示可以在其上实现本发明的实施例的计算机系统400的框图。计算机系统400包括总线402或用于传送信息的其它通信机制,以及与总线402耦合用于处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
计算机系统400还包括耦合到总线402用于存储信息和要由处理器404执行的指令的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器406也可以用于存储在要由处理器404执行的指令执行期间的临时变量或其它中间信息。当这些指令被存储在处理器404可访问的非暂态存储介质中时,它们使计算机系统400成为被定制以执行指令中指定的操作的专用机器。
计算机系统400还包括耦合到总线402用于存储静态信息和用于处理器404的指令的只读存储器(ROM)408或其它静态存储设备。提供了诸如磁盘或光盘的存储设备410,并且存储设备410被耦合到总线402用于存储信息和指令。
计算机系统400可以经由总线402耦合到显示器412,诸如阴极射线管(CRT),用于向计算机用户显示信息。输入设备414(其包括字母数字和其它键)被耦合到总线402,用于将信息和命令选择传送到处理器404。另一种类型的用户输入设备是光标控件416,诸如鼠标、轨迹球、或光标方向键,用于向处理器404传送方向信息和命令选择并且用于控制光标在显示器412上的移动。这种输入设备通常具有在两个轴(第一轴(例如,x)和第二轴(例如,y))中的两个自由度,以允许设备在平面中指定位置。
计算机系统400可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,这些定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统结合使计算机系统400成为或将计算机系统400编程为专用机器。根据一个实施例,本文的技术由计算机系统400响应于处理器404执行主存储器406中包含的一条或多条指令的一个或多个序列而执行。这些指令可以从另一个存储介质(诸如存储设备410)读取到主存储器406中。包含在主存储器406中的指令序列的执行使处理器404执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令或与软件指令组合使用。
如本文所使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒带、内容可寻址存储器(CAM)和三元内容可寻址存储器(TCAM)。
存储介质与传输介质不同但可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线402的电线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信期间生成的那些波。
各种形式的介质可以涉及将一条或多条指令的一个或多个序列携带到处理器404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器经电话线发送指令。计算机系统400本地的调制解调器可以接收电话线上的数据,并且使用红外线发射器将数据转换为红外线信号。红外线探测器可以接收在红外线信号中携带的数据,并且适当的电路系统可以将数据放在总线402上。总线402将数据携带到主存储器406,处理器404从该主存储器406检索并执行指令。由主存储器406接收到的指令可以可选地在被处理器404执行之前或执行之后存储在存储设备410上。
计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,其中网络链路420连接到本地网络422。例如,通信接口418可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器、或向对应类型的电话线提供数据通信连接的调制解调器。作为另一个示例,通信接口418可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何这种实现中,通信接口418都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路420可以通过本地网络422提供到主计算机424或到由互联网服务提供商(ISP)426操作的数据设备的连接。ISP 426又通过现在通常称为“互联网”428的世界范围的分组数据通信网络提供数据通信服务。本地网络422和互联网428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路420上并且通过通信接口418的信号是传输介质的示例形式,其中信息将数字数据携带到计算机系统400或者携带来自计算机系统400的数字数据。
计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在互联网示例中,服务器430可以通过互联网428、ISP 426、本地网络422和通信接口418传送对应用程序的请求代码。
接收到的代码可以在其被接收到时由处理器404执行,和/或存储在存储设备410或其它非易失性存储器中以供以后执行。
在前面的说明书中,已经参考因实现而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。
Claims (10)
1.一种包括指令的非暂态计算机可读介质,所述指令在被一个或多个硬件处理器执行时使得包括以下的操作被执行:
由查询系统经由智能扬声器接收来自用户的第一语音输入;
基于第一语音输入:由查询系统将上下文对象从第一状态修改为第二状态;
由查询系统选择要从用户请求的、与第二状态相关联的信息;
由查询系统经由智能扬声器请求与第二状态相关联的信息;
由查询系统经由智能扬声器从用户接收第二语音输入;
至少基于第一语音输入,将第二语音输入的至少一部分映射到与所述信息对应的第一变量;以及
将第二语音输入的至少一部分存储为第一变量的值。
2.如权利要求1所述的介质,其中所述操作还包括以下中的一个或多个:
在接收第一语音输入之前,配置上下文对象的初始状态,所述上下文对象的初始状态是用户输入不可知的;
丢弃第二语音输入的第二部分,而不将第二部分映射到任何变量;或者
当上下文对象处于第一状态时,基于第一语音输入被接收而将上下文对象从第一状态修改为第二状态。
3.如权利要求1所述的介质,其中至少基于第一语音输入的映射包括基于第二状态的映射,其中第二状态是基于第一语音输入确定的。
4.如权利要求1所述的介质,其中:
用于查询系统的可执行代码是基于包括第一状态和第二状态的用户定义的状态图由计算机生成的;以及
用户定义的状态图经由用户界面来设计,其中用户界面包括至少表示用户定义的状态图中的第一状态和第二状态的图形部件。
5.如权利要求1所述的介质,其中所述操作还包括:
基于第二语音输入:由查询系统将上下文对象从第二状态修改为第三状态;
选择要从用户请求的、与第三状态相关联的附加信息;
由查询系统经由智能扬声器请求与第三状态相关联的附加信息;
由查询系统经由智能扬声器从用户接收第三语音输入;
至少基于第二语音输入,将第三语音输入的至少一部分映射到与所述附加信息对应的第二变量;以及
将第三语音输入的至少一部分存储为第二变量的值;
其中第三状态是基于查询系统从第一状态转变到第二状态的。
6.如权利要求1所述的介质,其中第二状态与第一状态相同。
7.一种包括指令的非暂态计算机可读介质,所述指令在被一个或多个硬件处理器执行时使得包括以下的操作被执行:
由查询系统经由智能扬声器接收来自用户的第一语音输入;
基于第一语音输入:由查询系统将上下文对象从第一状态修改为第二状态;
由查询系统选择要从用户请求的、与第二状态相关联的信息;
由查询系统经由智能扬声器请求与第二状态相关联的信息;
由查询系统经由智能扬声器从用户接收第二语音输入;
在接收到第二语音输入之后:由查询系统至少基于第一语音输入和第二语音输入两者来选择要从用户请求的附加信息;以及
由查询系统经由智能扬声器请求所述附加信息。
8.如权利要求7所述的介质,其中要从用户请求的附加信息是基于以下一个或多个来选择的:
接收第一语音输入和第二语音输入的次序;
第一语音输入和第二语音输入之间的时间;或者
第一语音输入和第二语音输入之间没有任何改变上下文对象的中介用户输入。
9.如权利要求7所述的介质,其中所述操作还包括以下中的一个或多个:
在接收第一语音输入之前,配置上下文对象的初始状态,所述上下文对象的初始状态是用户输入不可知的;
基于包括第一状态和第二状态的用户定义的状态图,为查询系统生成可执行代码;
为了设计用户定义的状态图,呈现包括表示用户定义的状态图的多个状态的图形部件的用户界面;或者
当上下文对象处于第一状态时,基于第一语音输入被接收而将上下文对象从第一状态修改为第二状态。
10.一种包括至少一个设备的系统,所述至少一个设备包括硬件处理器;
所述系统被配置为执行如权利要求1-9中任一项所述的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/712,480 | 2017-09-22 | ||
US15/712,480 US10452695B2 (en) | 2017-09-22 | 2017-09-22 | Context-based virtual assistant implementation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109545205A true CN109545205A (zh) | 2019-03-29 |
CN109545205B CN109545205B (zh) | 2023-08-29 |
Family
ID=65808301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810017026.5A Active CN109545205B (zh) | 2017-09-22 | 2018-01-09 | 基于上下文的虚拟助理实现 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10452695B2 (zh) |
CN (1) | CN109545205B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020076795A2 (en) * | 2018-10-08 | 2020-04-16 | Google Llc | Summarily conveying smart appliance statuses |
US10728294B2 (en) * | 2018-10-18 | 2020-07-28 | Paypal, Inc. | Systems and methods for providing dynamic and interactive content in a chat session |
US11551685B2 (en) * | 2020-03-18 | 2023-01-10 | Amazon Technologies, Inc. | Device-directed utterance detection |
US11721338B2 (en) | 2020-08-26 | 2023-08-08 | International Business Machines Corporation | Context-based dynamic tolerance of virtual assistant |
US11735180B2 (en) | 2020-09-24 | 2023-08-22 | International Business Machines Corporation | Synchronizing a voice reply of a voice assistant with activities of a user |
US11463387B1 (en) | 2021-07-23 | 2022-10-04 | Fmr Llc | Capturing and utilizing context data in virtual assistant communication sessions |
US11379446B1 (en) | 2021-07-23 | 2022-07-05 | Fmr Llc | Session-based data storage for chat-based communication sessions |
US11734089B2 (en) | 2021-10-11 | 2023-08-22 | Fmr Llc | Dynamic option reselection in virtual assistant communication sessions |
US11763097B1 (en) | 2022-08-02 | 2023-09-19 | Fmr Llc | Intelligent dialogue recovery for virtual assistant communication sessions |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275789B1 (en) * | 1998-12-18 | 2001-08-14 | Leo Moser | Method and apparatus for performing full bidirectional translation between a source language and a linked alternative language |
US6829603B1 (en) * | 2000-02-02 | 2004-12-07 | International Business Machines Corp. | System, method and program product for interactive natural dialog |
US20070050191A1 (en) * | 2005-08-29 | 2007-03-01 | Voicebox Technologies, Inc. | Mobile systems and methods of supporting natural language human-machine interactions |
CN102365639A (zh) * | 2009-04-06 | 2012-02-29 | 三菱电机株式会社 | 检索装置 |
CN104536677A (zh) * | 2015-01-20 | 2015-04-22 | 湖南化身科技有限公司 | 具有智能语音交互功能的三维数字人像 |
CN104718542A (zh) * | 2012-08-28 | 2015-06-17 | 甲骨文国际公司 | 利用索引串匹配的上下文盲数据转换 |
CN105336326A (zh) * | 2011-09-28 | 2016-02-17 | 苹果公司 | 用于使用上下文信息的语音识别修复的方法和系统 |
US20170060839A1 (en) * | 2015-09-01 | 2017-03-02 | Casio Computer Co., Ltd. | Dialogue control device, dialogue control method and non-transitory computer-readable information recording medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9973269B2 (en) * | 2012-03-09 | 2018-05-15 | San Diego State University Research Foundation | Electronic devices, systems, and methods for data exchange |
US20150370272A1 (en) * | 2014-06-23 | 2015-12-24 | Google Inc. | Intelligent configuration of a smart environment based on arrival time |
-
2017
- 2017-09-22 US US15/712,480 patent/US10452695B2/en active Active
-
2018
- 2018-01-09 CN CN201810017026.5A patent/CN109545205B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275789B1 (en) * | 1998-12-18 | 2001-08-14 | Leo Moser | Method and apparatus for performing full bidirectional translation between a source language and a linked alternative language |
US6829603B1 (en) * | 2000-02-02 | 2004-12-07 | International Business Machines Corp. | System, method and program product for interactive natural dialog |
US20070050191A1 (en) * | 2005-08-29 | 2007-03-01 | Voicebox Technologies, Inc. | Mobile systems and methods of supporting natural language human-machine interactions |
CN102365639A (zh) * | 2009-04-06 | 2012-02-29 | 三菱电机株式会社 | 检索装置 |
CN105336326A (zh) * | 2011-09-28 | 2016-02-17 | 苹果公司 | 用于使用上下文信息的语音识别修复的方法和系统 |
CN104718542A (zh) * | 2012-08-28 | 2015-06-17 | 甲骨文国际公司 | 利用索引串匹配的上下文盲数据转换 |
CN104536677A (zh) * | 2015-01-20 | 2015-04-22 | 湖南化身科技有限公司 | 具有智能语音交互功能的三维数字人像 |
US20170060839A1 (en) * | 2015-09-01 | 2017-03-02 | Casio Computer Co., Ltd. | Dialogue control device, dialogue control method and non-transitory computer-readable information recording medium |
Non-Patent Citations (2)
Title |
---|
TOMOHITO YAMAMOTO,ET AL.: "Synchrony of utterance rhythms and context of repetitive dialogue in a cooperation game" * |
杨明浩等: "面向自然交互的多通道人机对话系统" * |
Also Published As
Publication number | Publication date |
---|---|
CN109545205B (zh) | 2023-08-29 |
US10452695B2 (en) | 2019-10-22 |
US20190095524A1 (en) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109545205A (zh) | 基于上下文的虚拟助理实现 | |
US10853582B2 (en) | Conversational agent | |
CN111090728B (zh) | 一种对话状态跟踪方法、装置及计算设备 | |
US10978052B2 (en) | Email-like user interface for training natural language systems | |
EP3654211A1 (en) | Automated response server device, terminal device, response system, response method, and program | |
JP4466665B2 (ja) | 議事録作成方法、その装置及びそのプログラム | |
US20170337261A1 (en) | Decision Making and Planning/Prediction System for Human Intention Resolution | |
CN109992338B (zh) | 用于跨多个平台显露虚拟助理服务的方法和系统 | |
JP6682638B2 (ja) | 情報入力方法、情報入力装置、及び情報入力システム | |
US9489940B2 (en) | Apparatus and methods to update a language model in a speech recognition system | |
US8321226B2 (en) | Generating speech-enabled user interfaces | |
CN109313668B (zh) | 构建会话理解系统的系统和方法 | |
CN103080927A (zh) | 使用搜索结果的自动路由 | |
US20180060300A1 (en) | Framework for language understanding systems that maximizes reuse through chained resolvers | |
Garrido et al. | Smart tourist information points by combining agents, semantics and AI techniques | |
US10360914B2 (en) | Speech recognition based on context and multiple recognition engines | |
KR102188564B1 (ko) | 어체 변환이 가능한 기계 번역 방법 및 시스템 | |
CN109271503A (zh) | 智能问答方法、装置、设备及存储介质 | |
US8433053B2 (en) | Voice user interfaces based on sample call descriptions | |
US7941561B2 (en) | System and method for communications over a computer network | |
CN109891410B (zh) | 用于新的会话对话系统的数据收集 | |
CN114462376A (zh) | 基于rpa和ai的庭审笔录生成方法、装置、设备及介质 | |
CN104468926A (zh) | 移动终端中联系人的控制方法及装置 | |
DE102019217751A1 (de) | Verfahren zum Betreiben eines Sprachdialogsystems und Sprachdialogsystem | |
CN111176622A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |