CN118331651A - 用户配置的且自定义的交互式对话应用 - Google Patents
用户配置的且自定义的交互式对话应用 Download PDFInfo
- Publication number
- CN118331651A CN118331651A CN202410296991.6A CN202410296991A CN118331651A CN 118331651 A CN118331651 A CN 118331651A CN 202410296991 A CN202410296991 A CN 202410296991A CN 118331651 A CN118331651 A CN 118331651A
- Authority
- CN
- China
- Prior art keywords
- custom
- dialog
- state
- sub
- states
- 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
Links
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 172
- 230000007704 transition Effects 0.000 claims abstract description 143
- 238000000034 method Methods 0.000 claims description 70
- 230000004044 response Effects 0.000 claims description 56
- 238000010586 diagram Methods 0.000 claims description 19
- 230000000007 visual effect Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 7
- 238000012559 user support system Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 abstract description 22
- 239000003795 chemical substances by application Substances 0.000 description 32
- 238000011161 development Methods 0.000 description 22
- 230000006399 behavior Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 230000003993 interaction Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009466 transformation Effects 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
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/28—Constructional details of speech recognition systems
-
- 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
- G10L17/00—Speaker identification or verification techniques
- G10L17/22—Interactive procedures; Man-machine interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/169—Annotation, e.g. comment data or footnotes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及用户配置的且自定义的交互式对话应用。各实施方式涉及生成和/或执行自定义交互式对话应用。可以从状态映射工具生成自定义交互式对话应用,所述状态映射工具允许用户生成自定义状态和所述自定义状态之间的自定义转换。然后基于所生成的自定义状态和所述自定义转换而生成自定义配置描述。此外,标识出包括附加或替代状态和转换的默认配置描述。在执行自定义交互式对话应用的过程中,基于所述状态和所述转换信息而生成对话轮次,其中所述自定义配置描述优先,并且所述默认配置描述被用于任何未定义的状态和/或转换。另外或替代地,各实施方式涉及基于所生成的自定义状态和自定义转换以及默认配置描述而生成和/或执行自定义代理。
Description
分案说明
本申请是2019年12月13日提交进入中国专利局的国际申请日为2018年10月3日的申请号为201880039806.8(PCT/US2018/054126)的,发明名称为“用户配置的且自定义的交互式对话应用”的专利申请的分案申请。
技术领域
本申请涉及用户配置的且自定义的交互式对话应用。
背景技术
可以由用户经由多种客户端设备(诸如智能电话、平板计算机、可穿戴设备、汽车系统、独立个人助理设备等)与自动化助理(也称为“个人助理”、“移动助理”等)进行交互。自动化助理接收来自用户的输入(例如,键入的和/或口头的自然语言输入),并以响应内容进行响应(例如,视觉和/或听觉自然语言输出)。经由客户端设备本身和/或经由与客户端设备(例如,“云”中的计算设备)进行网络通信的一个或多个远程计算设备,可以实现经由客户端设备与自动化助理的交互。
发明内容
本说明书总体上涉及用于基于自定义配置描述而创建和执行自定义交互式对话应用的方法、装置和计算机可读介质,所述自定义配置描述基于用户接口输入而生成。在一些实施方式中,用户利用映射工具来为自定义交互式对话应用生成一组自定义状态,并为自定义交互式对话应用生成自定义状态之间的自定义转换。可以基于如由用户经由与映射工具的交互所指定的自定义状态和状态之间的自定义转换而生成自定义配置描述。选择了对应的默认配置描述(例如,从多个候选默认配置描述中选择)。例如,可以基于所生成的一系列交互式对话应用和/或基于生成有自定义交互式对话应用的(多个候选自动化助理中的)特定的自动化助理而选择默认配置描述。选定的默认配置描述可以包括默认状态和默认转换,其中的一些(或全部)不包括在自定义配置描述中。然后,可以将自定义配置描述和默认配置描述一起利用,以执行自定义交互式对话应用来参与人-计算机对话。在产生的对话的对话轮次期间,可以基于在自定义配置描述中明确描述的状态,而将自定义配置描述用于某些对话轮次,并且可以基于在自定义配置描述中未明确描述的状态,而将默认配置描述用于某些其它对话轮次。
作为本文描述的一些实施方式的一个示例,开发中的用户可能对配置自定义应用感兴趣,所述自定义应用使调用用户能够经由自动化助理(例如,经由调用用户的客户端设备的辅助接口)与自定义应用进行交互,其中所述自定义应用被配置成参与与用户的交互式对话,并将真相作为交互式对话的一部分提供给用户。开发中的用户可以利用基于图形用户接口的映射应用以生成自定义的“Serve Fact”(“派发真相”)状态,其中所述状态包括一个或多个真相陈述,所述一个或多个真相陈述可以由自动化助理提供,以便在与调用用户的交互式对话期间出现所述状态时呈现给调用用户。此外,开发中的用户可以定义“Prompt For Next Fact”(“提示下一个真相”)状态,在自动化助理致使真相被呈现给调用用户之后自动转换为所述状态。“Prompt For Next Fact”状态可以包括由自动化助理致使呈现(以可听和/或图形方式)的问题作为至调用用户的输出。例如,所述问题可以向调用用户提示调用用户是否有兴趣被提供另一个真相。此外,“Prompt For Next Fact”状态可以包括转换信息,以致使如果响应于问题的呈现而接收到来自调用用户的肯定的用户接口输入,则自动化助理转换回到“Serve Fact”状态。开发中的用户还可以可选地定义“Welcome”(“欢迎”)状态,所述状态可以致使在调用用户对自定义应用进行初始调用时呈现欢迎消息,和/或定义“Goodbye”(“再见”)状态,所述状态致使与自定义应用的交互式对话被终止(可选地在呈现再见消息之后)。开发中的用户还可以定义一个或多个调用短语以与自定义应用相关联。一旦开发中的用户已经完成了对自定义状态和自定义转换的定义,就基于自定义状态和自定义转换而生成自定义配置描述。此外,识别了真相派发应用的默认配置描述,所述默认配置描述可以特定于选定的一系列交互式对话应用,或者可以是所有应用的单个默认配置描述。当调用用户随后致使自定义应用被调用时,当对话的状态由自定义配置描述的自定义状态定义时,利用自定义配置描述来参与与调用用户的交互式对话,而当遇到自定义配置描述中未定义的对话状态时,利用默认配置描述。例如,自定义配置描述可能不包括对“Goodbye”状态的定义,因此可以反过来利用默认配置描述中定义的“Goodbye”状态来为对话应用的实例生成最终对话轮次。此外,默认配置描述可以包括针对可以应用于所有状态的一个或多个参数的默认定义(在自定义配置描述中可以定义或可以不定义)。例如,默认配置描述可以包括定义的“No Input”(“无输入”)参数,在默认情况下并且如果自定义配置描述中未定义,所述参数可以是具有所有状态的参数。因此,默认的“No Input”参数可以包括所有状态,并且如果不理解用户输入和/或如果当对话应用处于任何状态时用户等待一段时间而不提供期望的输入,则可以利用所述默认的“No Input”参数来生成对话。在一些实施方式中,调用用户通过经由开发中的用户的用户接口输入向自动化助理提供自然语言输入(例如,口头话语)来致使自定义应用被调用,所述自然语言输入包括与自定义应用相关联的调用短语。例如,开发中的用户可以提供“Bob's trivia game”(“鲍勃的益智问答游戏”)这一调用短语以与自定义应用相关联,并且基于与调用阶段相关联地存储的自定义应用,自动化助理可以响应于调用用户“Play Bob's trivia game”(“玩鲍勃的益智问答游戏”)的话语而识别自定义应用。
替代地或另外,可以基于用户创建的配置描述和/或从映射工具来生成代理,并且可以稍后执行所述代理。例如,系统可以接收状态和转换信息,生成自定义配置描述,识别默认配置描述,并基于所述描述而生成代理。然后可以在各种自动化助理交互中利用所述代理。例如,自动化助理可以接收用户输入,基于用户输入而生成代理命令,将代理命令传输给代理,代理可以基于代理命令而生成响应内容,并且所述响应内容(或其变换)是响应于用户输入而提供的。
在开发中的用户仅经由用户接口输入定义功能和/或鲁棒性应用和/或代理所必需的一些状态的情况下,本文所述的实施方式可以支持生成自定义交互式对话应用和/或自定义的交互式代理。例如,这些实施方式可以利用默认配置描述来消除对附加用户接口输入的需求,所述输入明确地定义了功能和/或鲁棒性应用和/或代理所必需的各种状态和/或状态转换。以这些方式和其它方式,可以减少创建应用和/或代理所需的用户接口输入的数量,这可以节省开发中的用户在生成自定义交互式对话应用时所利用的客户端设备的各种资源。此外,由于对应于各种状态和/或状态转换的数据不需要由客户端设备传输到生成自定义交互式对话应用的远程计算机系统,因此可以减少网络资源。此外,减少的用户接口输入数量可以有益于敏捷度降低的开发中的用户。
另外,如本文所述,在各种实施方式中,可以为多个不同的自定义交互式对话应用中的每个利用相同的默认配置描述。这可以支持利用相同的默认配置描述,而不必为不同的自定义应用中的每个完全独立地存储一个单独的实例。以这种方式,可以节省存储资源,因为多个不同的自定义应用可以共享配置描述,而不是需要为不同的自定义应用中的每个独立地存储单独的实例。此外,本文描述的各种实施方式利用默认配置描述来补充在生成自定义交互式对话应用和/或代理过程中定义的自定义状态和自定义转换。在这些实施方式中,利用默认配置描述使所生成的应用和/或代理起作用和/或更稳健。使所生成的应用和/或代理起作用和/或更稳健可以引起改进的人-计算机交互,例如在经由人机交互(例如,经由客户端设备的辅助接口)与正在执行应用和/或正在与代理介接的自动化助理的交互式对话期间发生的交互。例如,利用默认配置描述可以支持自动化助理响应于各种错误条件、意外的用户接口输入和/或可能原本会发生故障的其它情况,从而提供改进的人-计算机交互。
提供以上描述作为本文描述的仅一些实施方式的概述。附加和替代的实施方式在下面更详细地描述。
在一些实施方式中,提供了一种由一个或多个处理器执行的方法,并且所述方法包括:针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及自定义状态和自定义状态转换的状态图。自定义状态中的每个为自定义状态中的对应的一个定义自定义状态信息,并且自定义状态转换中的每个根据自定义状态中的对应的一个定义自定义转换信息。所述方法还包括基于自定义状态和自定义状态转换而生成自定义配置描述。所述方法还包括基于交互式对话应用的指示而识别默认配置描述。默认配置描述包括有关一个或多个默认状态的默认状态信息和默认转换信息。所述方法还包括:接收经由通过附加用户操作的附加客户端设备的辅助接口提供的自然语言输入,以及确定自然语言输入引用交互式对话应用。所述方法还包括:响应于确定自然语言输入引用交互式对话应用,基于自定义配置描述和默认配置描述二者而执行自定义交互式对话应用。在一些实施方式中,执行自定义交互式对话应用包括:在附加用户与自定义交互式对话应用之间的交互式对话期间,生成多个输出实例以便经由辅助接口进行呈现。多个输出实例中的每个实例用于自定义交互式对话应用执行期间交互式对话的多个对话轮次中的对应一个,并且多个输出实例中的至少一些是使用自定义配置描述生成的,而多个输出实例中的至少一些是使用默认配置描述生成的。在一些实施方式中,可以基于自定义配置描述和默认配置描述二者而生成一个或多个输出实例。
作为一个示例:可以使用自定义配置描述中定义的状态来生成交互式对话中的输出实例;可以使用默认配置描述中定义的附加状态来生成交互式对话中的附加输出实例;并且可以使用基于来自默认配置描述和自定义配置描述二者的内容的另一状态来生成交互式对话中的另一输出实例。
本文公开的技术的这些实施方式和其它实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,在多个对话轮次的给定对话轮次处生成多个输出实例的给定输出实例包括:识别给定对话轮次处的交互式对话的当前状态;确定交互式对话的当前状态是否为自定义配置描述的自定义状态中的一个;以及响应于确定对话的当前状态是自定义配置描述的自定义状态中的一个:基于为自定义状态中的一个定义的自定义状态信息,而生成给定输出实例。在这些实施方式的一些版本中,在多个对话轮次的给定附加对话轮次处生成多个输出实例的附加给定输出实例包括:识别附加对话轮次处的交互式对话的附加当前状态;确定交互式对话的附加当前状态是否为自定义配置描述的自定义状态中的一个;以及响应于确定对话的附加当前状态不是自定义配置描述的自定义状态中的一个:识别默认状态中的与附加当前状态匹配的一个默认状态;以及基于为默认状态中的一个定义的默认状态信息而生成附加给定输出实例。在这些版本中的一些中,所述方法还包括响应于识别默认状态中的与附加当前状态匹配的一个默认状态:使用有关默认状态中的一个默认状态的默认转换信息以转换到自定义配置描述的自定义状态中的另一自定义状态;在基于为默认状态中的一个定义的默认状态信息而生成附加给定输出实例之后:响应于附加给定输出实例而接收经由附加客户端设备的辅助接口提供的响应性用户接口输入;以及基于已转换到另一自定义状态,使用所述另一自定义状态在多个对话轮次的给定另一对话轮次处生成多个输出实例的另一输出实例。
在一些实施方式中,在多个对话轮次的给定对话轮次处生成多个输出实例的给定输出实例包括:识别给定对话轮次处的交互式对话的当前状态;确定交互式对话的当前状态是否为自定义配置描述的自定义状态中的一个;以及响应于确定对话的当前状态是自定义配置描述的自定义状态中的一个:基于为自定义状态中的一个定义的自定义状态信息,而生成给定输出实例。作为一个示例,为自定义状态中的一个定义的自定义状态信息可以包括自定义音频,并且生成给定输出实例可以包括致使经由附加客户端设备的一个或多个扬声器来呈现自定义音频。作为另一示例,为自定义状态中的一个定义的自定义状态信息可以另外地或替代地包括用于生成给定输出实例的外部资源,并且生成给定输出实例可以包括与外部资源介接。举例来说,与外部资源介接可以包括与外部资源通信。
在一些实施方式中,用于自定义状态中的给定自定义状态的自定义转换信息包括:预期响应和自定义状态中的附加自定义状态,如果接收到所述预期响应则转换到所述附加自定义状态。在这些实施方式的一些版本中,有关给定自定义状态的自定义转换信息还包括替代预期响应和自定义状态中的替代自定义状态,如果接收到所述替代预期响应则转换到所述替代自定义状态。在这些实施方式的一些附加或替代版本中,自定义状态中的给定自定义状态的自定义转换信息缺少对至少一个可能响应的任何定义,并且在多个对话轮次的给定对话轮次处生成多个输出实例的给定输出实例包括:在给定自定义状态下,接收经由附加客户端设备的辅助接口提供的用户接口输入;确定用户接口输入不符合有关给定自定义状态的自定义转换信息;以及响应于确定用户接口输入不符合有关给定自定义状态的自定义转换信息:识别默认状态中的符合用户接口输入的一个默认状态;并且基于默认状态中的一个而生成给定输出实例。
在一些实施方式中,提供了一种由一个或多个处理器实现的方法,并且所述方法包括:针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及自定义状态和自定义状态转换的状态图。自定义状态中的每个为自定义状态中的对应的一个定义自定义状态信息,并且自定义状态转换中的每个根据自定义状态中的对应的一个定义自定义转换信息。所述方法还包括基于自定义状态和自定义状态转换而生成自定义配置描述。所述方法还包括基于交互式对话应用的指示而识别默认配置描述。默认配置描述包括默认状态以及有关默认状态中的每个的默认状态信息和至少一个默认状态转换。所述方法还包括基于自定义配置描述和默认配置描述而生成合并的配置描述。生成合并的配置描述可以包括:识别自定义状态的包括在自定义配置描述中并且包括默认配置描述中的默认状态中的对应给定默认状态的给定自定义状态;以及基于给定自定义状态包括在自定义配置描述中:在合并的配置描述中包括给定自定义状态,而不在合并的配置描述中包括对应的给定默认状态。所述方法还可以包括基于合并的配置描述而生成自定义代理。自定义代理可由一台或多台计算机的系统执行,以与自动化助理介接从而参与交互式人-计算机对话。
本文公开的技术的这些实施方式和其它实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,生成合并的配置描述包括:识别自定义状态转换的包括在自定义配置描述中并且包括默认配置描述中的默认状态转换中的对应给定默认状态转换的给定自定义状态转换;以及基于给定自定义状态转换包括在自定义配置描述中:在合并的配置描述中包括给定自定义状态转换,而不在合并的配置描述中包括对应的给定默认状态转换。
在一些实施方式中,在与自动化助理介接从而参与交互式人-计算机对话的过程中,自定义代理接收来自自动化助理的请求,所述请求是基于经由客户端设备提供给自动化助理的用户接口输入而生成的,并且自定义代理生成响应性内容,并将所述响应性内容传输到自动化助理,以便基于响应性内容而配设(provisioning)输出。
在一些实施方式中,默认配置特定于自动化助理,而自定义代理则特定于自动化助理。在这些实施方式的一些版本中,所述方法还包括识别特定于附加自动化助理的附加默认配置。附加默认配置描述包括附加默认状态,以及有关附加默认状态中的每个的附加默认状态信息和至少一个附加默认状态转换。在这些版本中,所述方法还包括:基于自定义配置描述和附加默认配置描述而生成附加合并的配置描述;以及基于合并的配置描述而生成附加自定义代理。附加自定义代理可由一台或多台计算机的附加系统执行,以与附加自动化助理介接从而参与交互式人-计算机对话。生成附加合并的配置描述可以包括:识别自定义状态的包括在自定义配置描述中并且包括附加默认配置描述中的附加默认状态中的对应附加给定默认状态的给定附加自定义状态;基于给定附加自定义状态包括在自定义配置描述中:在附加合并的配置描述中包括给定附加自定义状态,而不在附加合并的配置描述中包括对应的给定附加默认状态。
在一些实施方式中,生成合并的配置描述还包括:确定默认配置描述中的默认状态中的附加默认状态不包括自定义配置描述中包括的自定义状态中的任何对应部分;以及基于确定附加默认状态不包括自定义状态中的任何对应部分:在合并的配置描述中包括附加默认状态。在这些实施方式中的一些中,所述方法还包括:确定在默认配置描述中将附加默认状态指示为强制性的,以及还基于确定将附加默认状态指示为强制性的,将附加默认状态包括在合并的配置描述中。
另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作来执行存储在相关联的存储器中的指令,并且其中所述指令被配置成致使执行前面提及的方法中的任何一个。一些实施方式另外地或替代地包括一个或多个非暂时性计算机可读存储介质,其可由一个或多个处理器执行以执行前面提及的方法中的任何一个的计算机指令。
应当了解,本文中更详细地描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1是其中可以实现本文公开的实施方式的示例环境的框图。
图2是可以在本文公开的实施方式中利用的图形状态图的示例。
图3示出了针对图2中示出的状态图的示例自定义配置描述。
图4示出了示例默认配置描述。
图5是示出根据本文公开的实施方式的示例方法的流程图。
图6示出了根据本文公开的实施方式的用户、客户端设备以及在用户和与执行交互式对话应用的客户端设备相关联的自动化助理之间的示例对话。
图7示出了计算设备的示例架构。
具体实施方式
在一些实例中,用户可能对生成自定义交互式对话应用感兴趣,并且用户可以以状态映射和自定义交互式对话应用的指示的形式向自动化助理提供内容。所述内容可以是例如来自视觉开发工具的输入,所述视觉开发工具允许用户定义一个或多个自定义状态并指示利用映射工具在定义的状态之间进行转换的转换条件。在一些实施方式中,状态可以包括提示、说明、声音和/或自定义音频,其可以在执行自定义交互式对话应用(在本文中也简称为“自定义应用”)时由自动化助理提供给后续用户。此外,基于自定义交互式对话应用的指示,可以识别默认配置描述,所述默认配置描述包括随后的用户在执行自定义应用时可能遇到的一个或多个默认状态。例如,当创建状态映射时,当自定义应用的后续用户提供意外响应时,用户可能未定义一个或多个状态和/或转换来处理实例。然而,默认配置描述可以包括一个或多个状态和/或用于所有生成的状态的默认参数以处理这些实例。通过要求用户仅定义那些自定义的状态,并可选地允许用户来自定义状态的默认行为,产生的自定义交互式对话应用将更加健壮,并且不易出错。此外,如本文所描述,默认配置描述可以用于多个不同的自定义应用中的每个,从而支持利用相同的配置描述,而不必为不同的自定义应用中的每个完全独立地存储单独的实例。以这种方式,可以节省存储资源,因为多个不同的自定义应用可以共享配置描述,而不是需要为不同的自定义应用中的每个独立地存储单独的实例。可以利用本文公开的实施方式来创建跨各种垂直元的各种类型的自定义应用,诸如游戏、交互式语音响应和/或客户支持的垂直元。
在一些实施方式中,可以基于默认配置描述和一个或多个自定义配置描述而生成单个配置描述。因此,虽然在本文中被描述为单独的描述,但是可以生成合并的对话应用描述,所述合并的对话应用描述包括自定义状态、默认状态、自定义的转换、默认转换、自定义状态参数、默认状态参数和/或有关自定义对话应用的其它状态属性。例如,可以在自定义配置描述和默认配置描述二者中定义状态,其中仅在默认描述中定义一个或多个状态参数。合并的配置描述可以包括来自自定义配置描述的定义状态,所述定义状态另外包括仅在默认描述中定义的参数。
现在转向图1,示出了其中可以实现本文公开的技术的示例环境。示例环境包括客户端设备106、自动化助理110、自定义应用引擎120和状态映射应用170。客户端设备106可以是例如独立的语音启用的扬声器设备、台式计算设备、笔记本计算机计算设备、平板计算机计算设备、移动电话计算设备、用户车辆的计算设备和/或用户的包括计算设备的可穿戴设备(例如,具有计算设备的用户手表,具有计算设备、虚拟或增强现实计算设备的用户眼镜)。可以提供附加和/或替代的客户端设备。
虽然在图1中自动化助理110被示出为与客户端设备106分开,但是在一些实施方式中,自动化助理110的全部或各方面可以由客户端设备106实现。例如,在一些实施方式中,输入处理引擎112可以由客户端设备106实现。在自动化助理110的一个或多个(例如,全部)方面是由远离客户端设备106的一个或多个计算设备实现的实施方式中,客户端设备106和自动化助理110的这些方面经由一个或多个网络进行通信,所述网络诸如广域网(WAN)(例如,互联网)。此外,虽然状态映射应用170被示为与客户端设备106和自动化助理110分开,但是在一些实施方式中,状态映射应用170可以是在客户端设备106和/或自动化助理110上执行的应用。类似地,虽然将自定义应用引擎120以及其组成部件描绘为自动化助理120的一部分,但是这不是必需的,并且这些部件中的一个或多个可以单独实现和/或可以是自定义应用引擎120的子部件。
虽然示出了仅一个客户端设备106与自动化助理110结合,但是在许多实施方式中,自动化助理110可以是远程的,并且可以与多个用户的多个客户端设备中的每个进行介接。例如,自动化助理110可以经由不同的会话来管理与多个设备中的每个设备的通信,并且可以并行地管理多个会话。举例来说,在一些实施方式中,自动化助理110可以被实现为采用云基础设施的基于云的服务,例如使用服务器场或运行适合于处理来自多个用户的大量请求的软件的高性能计算机集群。然而,为了简单起见,本文针对单个客户端设备106描述了许多示例。
自动化助理110包括输入处理引擎112、内容输入引擎130、输出引擎135和调用引擎160。在一些实施方式中,可以省略、组合自动化助理110的引擎中的一个或多个,和/或在与自动化助理110分开的部件中实现自动化助理110的引擎中的一个或多个。此外,为了简单起见,自动化助理110可以包括本文未示出的附加引擎。
自动化助理110从客户端设备106接收用户输入的实例。例如,自动化助理110可以以流式音频录音的形式接收自由形式的自然语言语音输入。如本文所使用的,“自由形式的自然语言输入”指的是不限于列举的选项列表的用户输入。可以由客户端设备106响应于从客户端设备106的麦克风接收到的信号而生成流式音频录音,所述麦克风捕获客户端设备106的用户的口头输入。作为另一示例,自动化助理110可以接收自由形式的自然语言键入的输入。在一些实施方式中,用户输入可以由客户端设备106生成和/或响应于客户端设备106的用户对自动化助理110的显式调用而被提供给自动化助理110。例如,所述调用可以是客户端设备106检测到用户的特定语音输入(例如,自动化助理110热词/短语,例如“HeyAssistant”(“嘿助理”)),用户与硬件按钮和/或虚拟按钮的交互(例如,点击硬件按钮,由客户端设备106显示的一系列图形接口元素)和/或其它特定用户接口输入。
在一些实施方式中,自动化助理110可以利用来自用户的输入来接收特定应用的指示。例如,自动化助理110可以接收交互式对话应用和状态信息的指示,指示状态信息将被用于生成交互式对话应用的自定义版本。交互式对话应用的指示可以包括关于在生成的过程中要利用状态和转换信息的多个应用类别中的哪一个的描述。在一些实施方式中,输入处理引擎112可以识别所提供的音频包括动态交互式对话应用的指示,并且将后续的音频提供给调用引擎160以进行进一步处理。例如,输入处理引擎112可以接收“Assistant,run the Facts Server”(“助理,请运行真相服务器”)的输入,并且输入处理引擎112可以识别“Facts Server”(“真相服务器”)应用正在被调用。因此,输入处理引擎112可以解析接收的音频并将解析的内容提供给调用引擎160以确定正在调用哪个应用。在一些实施方式中,调用引擎160可以通过识别对应的自定义配置描述并利用自定义配置描述和默认配置描述来执行应用来对应用进行调用。在一些实施方式中,调用引擎160可以基于自定义配置描述和默认配置描述而识别先前已经生成的代理。
自动化助理110响应于从客户端设备106接收到用户输入的实例而提供输出实例。输出实例可以是例如设备106可听地呈现的音频(例如,经由客户端设备106的扬声器的输出),客户端设备106以图形方式呈现的文本和/或图形内容,(例如,经由客户端设备106的显示器呈现)等。如本文所描述,一些输出实例可以基于有用户经由状态映射应用170或经由自定义配置描述定义的一个或多个自定义状态。
自动化助理110的输入处理引擎112处理经由客户端设备106接收到的用户的自然语言输入,并且生成注释输出,以供自动化助理110的一个或多个其它部件(诸如自定义应用引擎120)使用。例如,输入处理引擎112可以处理由用户经由客户端设备106的一个或多个用户接口输入设备生成的自然语言自由形式输入。所生成的注释输出可以包括自然语言输入的一个或多个注释,以及可选地输入自然语言输入的词项中的一个或多个(例如,全部)。作为另一示例,输入处理引擎112可以另外地或替代地包括语音到文本模块(也称为“语音到文本”或“STT”模块),所述模块接收语音输入的实例(例如,呈数字音频数据的形式),并将语音输入转换成包括一个或多个文本单词或短语的文本。在一些实施方式中,语音到文本模块是流式语音到文本引擎。语音到文本模块可以依赖一个或多个存储的语音到文本模型(也称为语言模型),每个模型可以对语言中的音频信号与语音学单位之间的关系以及所述语言中的单词序列进行建模。
在一些实施方式中,输入处理引擎112被配置成识别和注释自然语言输入中的各种类型的语法信息。例如,输入处理引擎112可以包括词性标记器,所述词性标记器被配置成用词项的语法角色来注释词项。例如,词性标记器可以用其词性(诸如“名词”、“动词”、“形容词”、“代词”等)来标记每个词项。而且,例如,在一些实施方式中,输入处理引擎112可以另外地和/或替代地包括可以依存句法分析器,所述依存句法分析器被配置成确定自然语言输入中的词项之间的句法关系。例如,依存句法分析器可以确定哪些词项修饰了其它词项,句子的主语和动词等等(例如,分析树),并且可以对这种依存关系进行注释。
内容输入引擎130处理由用户定义的将被用来生成自定义交互式对话应用的自定义状态信息,包括由操作状态映射应用170的用户定义的状态信息和转换信息。例如,参看图2,提供了可以由用户使用状态映射应用170生成的状态映射的示例。状态映射200包括定义了可以被提供用于向已经调用应用的后续用户呈现(例如,以可听和/或图形方式)的欢迎消息206和声音207的“Welcome”状态205。“Serve Fact”状态210包括可以被提供用于呈现给调用用户的一系列真相211。在“Welcome”状态205与“Serve Fact”状态210之间的转换不是条件性的;相反,“Welcome”状态是“pass through”(“直通”)状态,由此“Serve Fact”状态210始终在“Welcome”状态205之后发生,而不管来自用户的输入如何。类似地,“AskFor Another”(“询问另一个”)状态215始终在“Serve Fact”状态205之后发生。然而,“AskFor Another”状态215为“是/否”类型的状态。如本文所述,对于该状态下的对话轮次,通过在相应的客户端设备处呈现的提示来提示用户以便输入,并且应用期望输入“是”或“否”。基于来自用户的输入,如果答案为“是”,则应用转换为“Serve Fact”状态205,或者如果答案为“否”,则应用转换为“Goodbye”状态220。在一些实施方式中,对话模块126和/或输入处理引擎112可以将其它输入识别为符合“是”或“否”并相应地转换。例如,用户可以提供“确信”作为响应,并且对话模块126可以确定“确信”与“是”同义,并且因此可以从“Ask ForAnother”状态215转换为“Serve Fact”状态205,因为该答案与“是”同义。在一些实施方式中,内容输入引擎130可以替代地是自定义应用引擎120的部件。例如,内容输入引擎130可以仅处理被提供用于生成自定义对话应用的内容,而不处理可以被提供给自动化助理110的其它内容。
输出引擎135将输出实例提供给客户端设备106。在一些实施方式中,输出实例可以基于由操作自定义应用引擎120的用户生成的自定义交互式对话应用。在一些实施方式中,输出引擎135可以包括将响应性内容的文本组分转换成音频格式的文本到语音(“TTS”)引擎,并且由输出引擎135提供的输出呈音频格式(例如,作为流式音频)。在一些实施方式中,响应性内容可能已经呈音频格式。在一些实施方式中,输出引擎135另外地或替代地提供文本答复内容作为输出(可选地由设备106转换为音频)和/或提供其它图形内容作为输出以由客户端设备106进行图形显示。
自定义应用引擎120包括配置构建器模块124、对话模块126和外部资源模块128。在一些实施方式中,可以省略、组合自定义应用引擎120的模块,和/或在与自定义应用引擎120分开的部件中实现所述模块。此外,为了简单起见,自定义应用引擎120可以包括本文未示出的附加模块。
对话模块126可以在经由客户端设备106与用户交互时利用来自输入处理引擎112的一个或多个语法模型、规则和/或注释。对话模块126可以生成提示以征求与执行交互式对话应用相关的进一步用户输入。由对话模块126生成的任何提示可以被提供用于由输出引擎135呈现给用户(例如,通过在客户端设备106处呈现)以及用于接收到的进一步响应性用户输入。对话模块126可以在向正在创建自定义交互式对话应用的用户(在下文中也称为“开发中的用户”)提供内容的过程中利用一个或多个自定义配置描述,如本文更详细地描述。
配置构建器124接收来自开发中的用户(从状态映射应用170或从一个或多个其它部件)的输入,并基于状态图和转换而生成自定义配置描述。自定义配置描述是文档,其中包括开发中的用户已明确定义的状态以及交互式对话应用借以从一个状态转换为另一状态的条件。例如,参看图3,提供了示例自定义配置描述。所述描述包括“Welcome”状态305,其包括要提供给调用应用的用户(下文中称为“调用用户”)的欢迎短语。此外,“Welcome”状态305包括用于从该状态转换出来的条件。在这种情况下,所有转换都到“Serve Fact”状态310,并且不需要来自调用用户的输入。接下来,定义“Serve Fact”状态310,所述状态包括由开发用户经由状态映射应用170提供的真相。此外,“Serve Fact”状态310的描述包括向“Ask Another”(“Ask For Another”)状态315的转换而无需来自用户的输入。“Ask ForAnother”状态315包括提示要提供给调用用户的提示,以及关于基于来自调用用户的输入的要转变到哪个状态的条件。“Ask For Another”状态315的描述指示如果调用用户响应为“是”,则转换为“Serve Fact”状态310,而如果调用用户响应为“否”,则转换为“Goodbye”状态320。因为“Goodbye”状态320是最终状态(如由“type:STATE_TYPE.FINAL”所指示),因此所述状态没有转换,并且指示应用已完成执行。
除了图3中描述的状态外,在自定义配置描述中可以包括任何数量的附加状态和/或状态类型。例如,一个或多个状态可以经由用户的语音命令或经由其它用户输入来接收数字作为输入。而且,例如,状态可以在没有指定确切的预期输入的情况下接收来自用户的“任何”输入。作为示例,自定义对话应用可以向用户提供不需要某种类型的输入的开放式问题,并且自定义状态可以指示从用户接收的“任何”输入都可以接受以转换到新的状态。
在一些实施方式中,由配置构建器124生成的自定义配置描述可以用于为一个或多个不同的自动化助理平台(例如,各自由单独的一方控制的不同自动化助理平台)中的每个生成自定义应用和/或代理。例如,配置构建器124可以生成单个一组自定义配置描述,并将其用于为多个不同的自动化助理中的每个生成对应的自定义应用和/或代理。举例来说,可以利用特定于第一自动化助理平台的第一默认配置来为第一自动化助理平台生成对应的自定义应用和/或代理。此外,可以利用特定于第二自动化助理平台的第二默认配置(但是可能与第一默认配置具有一个或多个重叠的状态和/或状态转换)来为第二自动化助理平台生成对应的自定义应用和/或代理。以这些方式和其它方式,由开发中的用户提供并用于生成自定义配置描述的用户接口输入可以用于生成用于多个平台的多个代理和/或应用,而无需用户为多个平台中的每个平台提供用户接口输入的多个不同的实例。
在一些实施方式中,可以预定义状态名称和/或转换名称中的一个或多个。例如,在一些实施方式中,所有开始状态可以被命名为“Welcome”和/或所有结束状态可以被命名为“Goodbye”。此外,在一些实施方式中,可以预先定义状态和/或转换的一种或多种类别。例如,“Ask For Another”状态315包括作为“用户输入”状态的状态的定义,当应用正经由自定义应用引擎120执行时,所述状态可以指示对话模块126等待来自调用用户的输入,以确定针对下一个对话轮次将转换到哪个状态。可以定义其它类型的状态,诸如“多项选择”状态类型,其中提供给调用用户的输出可以包括用于调用用户的选择列表。
在一些实施方式中,给定自定义交互式对话应用的状态映射可以伴随有给定自定义交互式对话应用所属的特定类别的交互式对话应用的指示。例如,交互式对话应用可以包括“测验”应用、“真相派发”应用和/或“对话”应用。所述应用中的每个可以具有为该类别的应用定制的一个或多个状态和/或转换。例如,“测验”应用可以包括“派发问题”状态,所述状态向用户提供问题,并且然后等待来自用户的输入。“真相派发”应用可能相反只需要来自用户的“是”或“否”,以指示何时停止真相派发。此外,在一些实施方式中,所有类别的交互式对话应用可能共有一个或多个状态。在一些实施方式中,用于自定义交互式对话应用的自定义配置描述可以包括类别标识,例如在文件的开头附近(例如,作为标题)。
在一些实施方式中,可以在默认配置描述中定义一个或多个默认状态。默认配置描述可以包括用户不必经由状态映射应用170明确定义的一个或多个状态和转换。在一些实施方式中,当用户创建自定义交互式对话应用时,默认配置描述的状态和转换可以被用户用来填补剩余的空白(有意或无意地)。
例如,参看图4,提供了示例默认配置描述。默认配置包括“Goodbye”状态400,所述状态定义了用以结束应用的默认行为。此外,默认配置描述包括“Exit on Error”(“错误退出”)状态405,如果用户在应用执行期间三次提供不匹配的输入,则可以使用所述状态来结束应用。此外,当用户提供不一致的输入(即,输入处理引擎112无法注释的输入,和/或并非在自定义配置描述中定义的预期响应的输入)时,包括了“No Match”(“不匹配”)默认状态参数410作为所有状态的默认行为。此外,当提示用户提供输入但用户并没有这样做时,“NoMatch”默认状态参数410可以提供默认行为。默认状态参数例如可以是属于所有状态的参数的循环转换(即,将机器引导回到相同状态的转换)。因此,无论用户是否为参数中的任何一个定义了行为,所有用户创建的状态都将能够处理由默认配置描述定义的各种参数,诸如来自用户的意外输入、无来自用户的输入等。与默认状态一样,默认状态参数可以可选地由开发中的用户在生成自定义配置描述时和/或经由状态映射应用来定义。默认参数可以应用于所有状态,无论所述状态是自定义状态还是默认状态。
可以在默认配置数据库156中存储一个或多个默认配置描述。另外或替代地,可以将一个或多个默认配置描述用作默认模板,并且可以基于所述默认模板而生成一个或多个附加默认配置描述。例如,默认配置描述可以包括所有“No Match”实例的“行为A”。开发中的用户可以编辑默认配置描述,以实际将“行为B”阐述为“No Match”实例的默认值,并将新的默认配置描述存储为“默认描述B”。因此,利用“默认描述B”的任何未来的交互式对话应用都将具有修改的“行为B”作为“No Match”实例的默认行为。
在一些实施方式中,配置构建器124可以将自定义配置描述和默认配置描述合并到用于自定义交互式对话应用的单个可执行配置描述中。在合并描述时,配置构建器124将优先于在自定义配置描述而不是默认配置描述中定义的任何状态、转换和/或其它行为。通过这样做,配置构建器124确保由用户定义的任何自定义行为都包括在执行的配置描述中,并且不会被默认状态、转换和/或行为所覆盖。例如,参看图3的自定义配置描述,“Goodbye”状态320由开发中的用户定义,并且也在图4的默认配置描述中定义(“Goodbye”状态400)。因此,通过定义“Goodbye”状态320,开发中的用户已经选择为“Goodbye”状态包括与默认行为不同的自定义行为。配置构建器124可以将配置描述合并到单个执行的配置描述中,所述配置描述仅包括来自自定义配置描述的“Goodbye”状态320的定义(并且不包括基于默认配置描述“Goodbye”状态400的任何定义)。
在一些实施方式中,配置构建器124向可以基于合并的配置描述而生成代理的一个或多个部件提供合并的配置描述。例如,代理生成器可以利用一个或多个库来生成执行合并的配置描述中描述的自定义行为的代理,并且所述代理可以稍后由一个或多个附加调用用户进行调用。因此,配置构建器124可以用作允许开发中的用户在代理中生成自定义行为的工具,而无需详细了解否则将需要的用以完全开发稳健的交互式对话应用的相关库。
在一些实施方式中,配置构建器124可以基于多个先前生成的自定义配置描述而生成自定义配置描述。例如,配置构建器124可能已经被用来预先生成“Trivia”(“益智问答”)自定义配置描述,所述自定义配置描述包括有关益智问答游戏的状态和转换。此外,配置构建器124可能已经被用来预先生成有关“Fun Facts”(“趣闻”)对话应用的第二自定义配置描述。基于这两个配置描述的状态映射和转换,可以利用配置构建器124为“Trivia/Fun Facts”对话应用生成新的自定义配置描述,所述新的自定义配置描述包括“Trivia”应用和“Fun Facts”应用二者的自定义行为。在一些实例中,开发中的用户可以将自定义配置描述提供给配置构建器124。在一些实例中,自定义配置描述中的一个或两个可以由一个或多个其它部件来识别。例如,用户可能对“Trivia/Fun Facts”应用感兴趣并提供“FunFacts”配置描述,并且配置构建器124可以识别“Trivia”自定义配置描述以与提供的“FunFacts”配置描述合并。在一些实施方式中,可以合并不止两个配置描述以生成新的配置描述。
作为另一示例,一个或多个开发中的用户可能已预先利用配置构建器124来生成有关“付款”对话应用的自定义配置描述,所述应用处理经由自动化助理接收来自用户的付款信息。此外,一个或多个开发中的用户可能已预先利用配置构建器124为处理接收产品订购信息的“订购”对话应用生成自定义配置描述。给定开发中的用户可能有兴趣将两个预先生成的配置描述合并到有关允许用户下订单并提供付款信息的对话应用的单个自定义配置描述中。
当两个配置描述都包括在两个描述中定义的状态、映射和/或转换时,合并多个配置描述可能包括冲突。例如,要合并的两个配置描述可能包括具有不同提示和不同转换的不同“Welcome”状态。配置构建器124可以基于比较要合并的多个配置描述之间的状态、映射和/或转换而确定这种冲突。此外,配置构建器124可以向开发中的用户提供提示,所述提示指示这种冲突,并且还指示在可以生成合并的配置描述之前可能需要解决这种冲突。另外或替代地,当识别到冲突时,开发中的用户可以提供包括状态和/或转换信息的附加配置描述,以包括在配置描述中。在一些实例中,开发中的用户可以指示配置描述中的在任何冲突中优先的一个配置描述。例如,开发中的用户可以指示“Trivia”配置描述信息被用于优先于“Fun Facts”配置描述中包括的冲突状态和/或转换的任何状态或转换。
在一些实施方式中,可以利用一个或多个可选状态来经由对话应用提示被对话应用利用的一个或多个对象的强制性数据。作为示例,在“订购”自定义配置描述中,可以为用户简档创建一个对象,所述对象包括“姓名”、“电话号码”和“地址”。当创建了对象并从例如外部数据库中检索数据时,可能不会定义对象的字段中的一个或多个。为了定义对象的强制性字段中的任何一个,配置描述可以包括一个或多个状态,所述一个或多个状态允许对话模块126提供对话从而提示用户提供强制性信息以完成用户简档。替代地或另外地,配置描述可以包括对一个或多个附加源的引用,并且可以在提示用户之前或代替提示用户,首先尝试从一个或多个源检索丢失的信息。
在一些实施方式中,可以利用单个状态来提示用户输入强制性数据,并且对话应用可以保持在该状态中,直到已经提供了所有强制性数据和/或用户指示向另一状态的转换为止。例如,对于上述“订购”状态的描述可以包括有关下订单所需的每个强制性数据字段的提示的定义。产生的对话可能包括让用户提供姓名的提示,有关提供地址的提示以及有关提供电话号码的提示。对话应用可以保持在“订购”状态,直到提供了所有强制性数据或用户指示不同的转换(例如,“退出”或“重新开始”)为止。
一旦已经生成了自定义配置描述,就可以将其存储在自定义配置数据库158中,并由该应用的调用短语编索引和/或映射到该应用的调用短语。替代地,如本文所述,合并的配置描述可以存储在自定义配置数据库158中。在一些实施方式中,自定义配置数据库158可以仅包括用户的配置描述。在一些实施方式中,自定义配置数据库158可以包括来自多个用户的应用的配置描述。后续(或“调用”)用户可以向自动化助理110提供自由形式的自然语言输入。基于自由形式自然语言输入中包含的调用短语,自动化助理110可以识别自定义配置数据库158中的存储的自定义交互式对话应用。替代地,基于调用短语,可以识别代理,所述代理是基于开发中的用户的自定义配置描述而生成的。一旦识别出自定义交互式对话应用,与自定义交互式对话应用相关联的特定交互式对话应用类别就可以被用来识别默认配置数据库156中的默认配置描述。调用引擎160处理调用请求以确定交互式对话应用的多个先前提交的自定义版本中的哪个版本正在被调用,每个版本由开发中的用户或其他用户提交并存储在自定义配置数据库158中。在一些实施方式中,当生成了自定义应用时,用户可以提供未来将用于调用该应用的调用短语。在一些实施方式中,可以将一个或多个实体识别为与所提供的调用短语有关,并且调用引擎160可以基于用户输入和相关实体而选择自定义版本中的一个或多个。如本文所述,在一些情况下,当调用了自定义交互式对话应用时,自动化助理110仍可以用作中介。例如,在用作用户的自然语言输入是语音输入的中介的情况下:自动化助理110的输入处理引擎112可以将该语音输入转换为文本,调用引擎160可以利用所述文本来确定正在调用自定义配置数据库158中的哪个自定义交互式对话应用,并从调用的自定义交互式对话应用接收响应内容;并且输出引擎135可以提供基于自定义交互式对话应用的输出,以便经由客户端设备106呈现给用户。
在一些实施方式中,对话模块126可以基于来自调用用户的当前输入和当前状态而识别在当前自定义配置描述中是否定义了下一个状态。如果定义了状态,则对话模块126确定要呈现的以提供给用户的下一个输出。如果未定义下一状态,则对话模块126然后可以确定是否在适用于已被调用的对话应用的类别的一个或多个适用默认配置描述中定义了匹配状态。在一些实施方式中,可以在默认配置描述中定义“Error”(“错误”)或“No Match”状态,以处理未在其它地方定义的所有状态/转换。
在一些实施方式中,可以在默认配置描述和自定义配置描述中定义状态。例如,可以在默认配置描述中定义“Goodbye”状态,以使得无论开发中的用户是否在自定义配置描述中定义了结束状态,自定义交互式对话应用仍具有用于暂停执行的状态(例如,“选择全部”或“后退”)。然而,对话模块126将首先检查自定义配置描述,并且如果用户还定义了“Goodbye”状态,则将不查看默认配置描述。因此,对话模块126确保当应用正在执行时,任何用户定义的行为优先于任何默认行为。替代地,如本文所述,对话模块126可以反过来利用包括默认配置描述和自定义配置描述二者的合并的配置描述,其中仅针对两个描述中包括的状态提供自定义状态和转换信息。
在一些实例中,自定义配置描述可以不包括显式状态信息,而是可以包括状态信息的位置的指示。例如,“Trivia”对话应用可能在自定义配置描述中不包括益智问答问题,而是包括对数据库的引用和/或从数据库中检索信息的功能调用,所述数据库既可以在自动化助理内部,或者可以在外部。当对话模块126识别包括对另一源而不是状态信息的指示的状态时,外部源模块128处理该功能并检索所述状态信息。例如,再次参看“Trivia”对话应用,问题和/或答案可能不是明确地包括在自定义配置描述中,而是存储在信息数据库157和/或其它外部资源中。配置描述的“获取下一个问题”状态可以包括从外部资源中检索问题的功能调用。例如,外部源模块128可以识别用于益智问答问题资源的API,并经由所述API与益智问答问题资源介接以识别下一个益智问答问题。作为另一示例,外部源模块128可以将信息数据库157识别为包括益智问答问题,并且可以直接调用信息数据库157以检索下一个益智问答问题。任何下一个益智问答问题可以存储在本地以作为对话的一部分提供,或者当需要用于继续对话时,可以动态地检索所述益智问答问题。然后可以如本文中所述(例如,经由输出引擎135)将问题提供给调用用户。在一些实施方式中,一个或多个部件可以在对话应用正在执行时跟踪和/或更新信息。例如,在“Trivia”对话应用中,可以保留分数。因此,“正确答案”状态可以包括使分数计数器增量的指令。分数可以存储在配置描述中,或者可以替代地由一个或多个其它部件存储,诸如存储在信息数据库157中。
在一些实施方式中,自定义配置描述和/或默认配置描述可以包括由所有状态共享的转换的定义。然后,可以利用所述转换以暂时移至其它状态,无论对话应用的当前状态如何都可以生成对话,并且然后返回相同状态。例如,自定义配置描述可以包括“帮助”动作。每当用户提供“帮助”(或类似短语)的输入时,对话应用就可以向用户提供帮助信息和/或转换为“帮助”状态,以在一个或多个后续对话轮次中向用户提供帮助信息。然后,对话应用可以返回到用户调用“帮助”命令时的状态。在一些实施方式中,可以定义永久转换到不同状态的动作。例如,可以定义“重新起动”动作,所述动作转换到对话应用的开始状态,而与调用“重新起动”动作时对话应用处于什么状态无关。
在一些实施方式中,自定义配置描述和/或默认配置描述可以包括当对话应用处于任何状态时可以调用的子对话的定义。子对话可以包括一个或多个状态以及在对话应用处于任何状态时可以调用的状态之间的转换。当子对话被调用时,对话应用可以存储当前状态的指示。一旦子对话已经结束,对话应用可以返回调用子对话时其所处的状态。例如,自定义益智问答对话应用可以包括“笑话”子对话,而自定义的配置描述可以包括有关“笑话”子对话的调用短语。当益智问答对话应用正在执行时,用户可以在所述对话应用处于任何状态时提供调用短语,并且“笑话”子对话可以提供一个或多个笑话(取决于定义的状态和子对话的转换)。一旦用户调用了“笑话”退出短语,对话应用便可以返回首次调用“笑话”子对话时其所处的状态。
图5示出了根据本文公开的实施方式的示例方法的流程图。可以省略、以不同的顺序执行一个或多个步骤,和/或一个或多个附加步骤可以包括在各种实施方式中。
在步骤505处,接收交互式对话应用类别的指示以及状态和转换信息。所述指示可以用于确定开发中的用户有兴趣创建多个对话应用类别中的哪一个。在一些实施方式中,状态和转换信息可以由用户利用一个或多个状态映射应用(诸如状态映射应用170)预先生成。
在步骤510处,基于在步骤505处接收的状态和转换而生成自定义配置描述。在一些实施方式中,自定义配置描述包括自定义状态名称和有关来自调用用户的允许应用从一个状态转换到另一状态的输入的条件。例如,可以生成与图3中示出的自定义配置描述共享一个或多个特征的自定义配置描述。然后,通过调用短语对自定义配置描述进行存储和编索引,所述调用短语可以由开发中的用户另外提供。
在步骤515处,基于在步骤505处接收的指示而识别默认配置描述。在一些实施方式中,每个类别的对话应用可以具有其自身的默认配置描述,所述默认配置描述包括关于该应用类别独有的默认状态的状态信息。在一些实施方式中,所有应用可以共享相同的默认配置描述。
在步骤520处,接收来自附加用户(即,调用用户)的自然语言输入。解析自然语言输入以确定由开发中的用户提供的调用短语是否包括在自然语言输入中。如果识别了调用短语,则检索对应的自定义配置描述和默认配置描述,并配置自定义应用。
在步骤525处,向附加用户提供自定义应用。自定义应用包括基于自定义配置应用中提供的信息的对话轮次。如果在自定义配置描述中无法识别一个或多个状态和/或转换,则可以利用默认配置描述来基于应用的当前状态和用户的输入而确定如何继续进行。
图6示出了用户101、语音启用的客户端设备606以及对话的示例,所述对话可以在用户101和与客户端设备606相关联的自动化助理之间进行,所述自动化助理可以访问自定义交互式对话应用。客户端设备606包括一个或多个麦克风和一个或多个扬声器。图1的自动化助理110的一个或多个方面可以在客户端设备606上和/或与客户端设备606进行网络通信的一个或多个计算设备上实现。因此,为了便于说明,在图6的描述中引用了自动化助理110。
用户输入600A是对自定义的动态交互式真相派发应用的调用短语。如上所述,输入处理引擎112向调用引擎160提供解析的输入。然后,一个或多个部件可以识别自定义对话应用的与调用短语匹配的自定义配置描述和默认配置描述。
在输出602A处,应用执行如图3中的自定义配置描述中所定义的“Welcome”状态。“Welcome”状态是直通状态,并且不需要来自调用用户的输入即可转换到下一个状态。
在输出602B处,从图2中示出并且在图3的自定义配置描述中提供的“Serve Fact”状态来提供真相。同样,“Serve Fact”状态是直通状态,并且不需要来自调用用户的输入即可将应用移至下一个状态。
在602C处,应用已进入“Ask For Another”状态,并提示调用用户该用户是否有兴趣听附加的真相,如图2的状态映射和图3的自定义配置描述中所定义。该状态为“是/否”状态,并且要求这些响应中的一个响应以便移至另一状态。
相反,用户输入600B是模棱两可的“也许”,在自定义配置描述中未由“Ask ForAnother”状态处理。因此,应用在默认配置描述中为处理接收到不一致输入的实例的“AskFor Another”状态识别了“No Match”默认状态参数。在输出602D处,应用为“No Match”输入提供默认状态行为。在一些实施方式中,开发中的用户可以通过在自定义配置描述中定义“No Match”参数来为用于处理不一致输入的自定义应用定义自定义行为。
在用户输入600C处,用户提供符合有关状态的预期输入的输入。通过响应“否”,应用转换为自定义配置描述中定义的“Goodbye”状态。应当注意的是,默认配置描述还包括“Goodbye”状态,但是应用首先识别是否在自定义配置描述中定义了所述状态,并且仅在未识别出自定义状态时检查默认配置描述。
虽然本文已经将图6描述为根据两个单独的描述识别状态、转换和行为,但是在一些实施方式中,可以将自定义配置描述和默认配置描述合并成在执行应用时利用的单个描述。替代地,图6中提供的对话可以在用户101与先前基于用户的自定义配置描述和默认配置描述而生成的代理之间。此外,虽然本文中将自定义配置描述和默认配置描述描述为包括相同的状态,这可以通过优先于默认状态选择自定义状态来解决,但是在一些实例中,自定义配置描述将仅包括用户创建的状态,并且不会改变默认配置描述中定义的后续应用的默认行为中的任何一个。
如本文一般地描述并且如图6中所示,自动化助理可以在经由语音命令与用户交互的独立设备上执行。然而,在一些实例中,所述设备可以包括附加硬件和/或软件,以允许用户通过语音以外的其它形式与自动化助理进行交互。因此,虽然在本文的一些示例中将语音描述为用户与对话应用之间的一种形式的交互,但是除了或代替经由语音命令,用户还可以经由用户接口(UI)的元件(例如,触摸触摸屏上的UI元件,经由鼠标点击UI元件,经由硬件键盘和/或虚拟键盘键入)来提供输入。
在一些实施方式中,一个或多个状态可以包括用于向用户提供输出的多种形式,并且提供输出的形式可以基于提供输出的设备的平台和/或接口而变化。例如,状态定义可以包括选项列表,并且如果执行助理的设备没有屏幕,则可以经由自动化助理将列表作为单独的语音提供给用户。替代地,如果设备支持视觉输出,则配置描述可以包括图形和/或其它视觉元件以向用户提供相同的列表。作为另一示例,益智问答对话应用可以包括提供给屏幕的图形以示出益智问答问题的当前类别。如果执行设备不包括屏幕,则对话应用可以在向用户提出问题之前提供该类别的音频输出。在一些实施方式中,自定义配置描述可以包括如何提供输出的层次结构,并且对话应用可以基于所述层次结构而确定使用哪一种和/或将用于提供输出的设备支持哪种输出形式。如果设备支持,那么层次结构可以定义应如何提供输出的有序偏好。例如,层次结构可以定义最优选地经由轮播提供输出(即,利用在屏幕上部分可见的一个或多个先前和/或后续视觉图像来提供视觉信息),然后是提供输出的一个或多个下一优选形式。如果设备支持以轮播格式提供输出,则可以经由最优选的轮播格式提供输出。然而,如果设备不支持经由轮播提供输出,则可以改用下一个最优选的(和受支持的)提供输出的格式(例如,可听的静态图像、媒体卡)。
图7是示例计算设备710的框图,所述示例计算设备可以可选地用于执行本文描述的技术的一个或多个方面。在一些实施方式中,设备106、自动化助理110和/或其它部件中的一个或多个可以包括示例计算设备710的一个或多个部件。
计算设备710通常包括至少一个处理器714,所述至少一个处理器714经由总线子系统712与若干外围设备进行通信。这些外围设备可以包括存储子系统724,包括例如存储器子系统725和文件存储子系统726、用户接口输出设备720、用户接口输入设备722和网络接口子系统716。输入设备和输出设备允许用户与计算设备710交互。网络接口子系统716提供与外部网络的接口,并且联接到其它计算设备中的对应接口设备。
用户接口输入设备722可以包括键盘、指向设备(诸如鼠标、轨迹球、触摸板或绘图板)、扫描仪、并入显示器中的触摸屏、音频输入设备(诸如语音识别系统、麦克风和/或其它类型的输入设备)。一般来说,词项“输入设备”的使用意在包括将信息输入到计算设备710中或通信网络上的所有可能类型的设备和方式。
用户接口输出设备720可以包括显示子系统、打印机、传真机或诸如音频输出设备等的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)等的平板设备、投影设备或用于创建可见图像的某些其它机制。显示子系统还可以诸如经由音频输出设备来提供非视觉显示。一般来说,词项“输出设备”的使用意在包括从计算设备710向用户或另一台机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统724存储提供本文所述的模块中的一些或全部的功能的编程和数据构造。例如,存储子系统724可以包括执行图5的方法的选定方面和/或本文所描述的其它方法的逻辑。
这些软件模块通常由处理器714单独或与其它处理器结合执行。在存储子系统724中使用的存储器725可以包括:若干存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)730;以及只读存储器(ROM)732,其中存储了固定指令。文件存储子系统726可以为程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质、CD-ROM驱动器、光盘驱动器或可移除媒体盒。实现某些实施方式的功能的模块可以由文件存储子系统726存储在存储子系统724中,或者存储在处理器714可访问的其它机器中。
总线子系统712提供了一种用于使计算设备710的各种部件和子系统按预期彼此通信的机制。虽然总线子系统712被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。
计算设备710可以是不同的类型,包括工作站、服务器、计算集群、刀片式服务器、服务器场或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,因此对图7中所描绘的计算设备710的描述仅出于说明一些实施方式的目的而用作特定示例。计算设备710的许多其它配置可能具有比图7中描绘的计算设备更多或更少的部件。
Claims (40)
1.一种由一个或多个处理器实现的方法,所述方法包括:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息,并且
其中在任意所述自定义状态中调用所述预配置子对话致使:
存储其中调用了所述预配置子对话的所述自定义状态的指示,
执行所述预配置子对话,以及
当所述预配置子对话结束时,使用所存储的指示来返回到其中调用了所述预配置子对话的所述自定义状态;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
接收经由通过附加用户操作的客户端设备的辅助接口提供的自然语言输入;
确定所述自然语言输入引用所述交互式对话应用;以及
响应于确定所述自然语言输入引用所述交互式对话应用:
基于所述自定义配置描述来执行自定义交互式对话应用,其中执行所述自定义交互式对话应用包括:
在所述附加用户与所述自定义交互式对话应用之间的交互式对话期间,生成多个输出实例以便经由所述辅助接口进行呈现,其中所述多个输出实例中的每个实例用于所述自定义交互式对话应用执行期间的所述交互式对话的多个对话轮次中的对应一个,并且
其中所述多个输出实例中的至少一些是使用所述自定义配置描述的所述自定义状态和自定义状态转换来生成的,并且所述多个输出实例中的至少一些是通过调用所述自定义配置描述的所述预配置子对话来生成的。
2.根据权利要求1所述的方法,其中在所述多个对话轮次中的给定对话轮次处生成所述多个输出实例的给定输出实例包括:
识别所述给定对话轮次处的所述交互式对话的当前状态;
确定所述交互式对话的所述当前状态是否为所述自定义配置描述的所述自定义状态中的一个;以及
响应于确定所述对话的所述当前状态是所述自定义配置描述的所述自定义状态中的一个:
基于为所述自定义状态中的一个定义的所述自定义状态信息来生成所述给定输出实例。
3.根据权利要求2所述的方法,其中在所述多个对话轮次中的给定附加对话轮次处生成所述多个输出实例的附加给定输出实例包括:
识别所述附加对话轮次处的所述交互式对话的附加当前状态;
当所述交互式对话处于所述附加当前状态时,接收经由通过所述附加用户操作的所述客户端设备的所述辅助接口提供的进一步的自然语言输入;
确定所述进一步的自然语言输入引用所述预配置子对话;
响应于确定所述进一步的自然语言输入引用所述预配置子对话:
存储所述交互式对话的所述附加当前状态的指示,以及
执行所述预配置子对话;以及
响应于确定所述预配置子对话结束:
使用所存储的指示来返回到其中调用了所述预配置子对话的所述附加当前状态。
4.根据权利要求2所述的方法,其中为所述当前状态定义的所述自定义状态信息包括自定义音频,并且其中生成所述给定输出实例包括致使经由所述客户端设备的一个或多个扬声器来呈现所述自定义音频。
5.根据权利要求4所述的方法,其中为所述当前状态定义的所述自定义状态信息进一步包括自定义视觉元素,并且其中生成所述给定输出实例包括致使经由所述客户端设备的显示器来呈现所述自定义视觉元素。
6.根据权利要求5所述的方法,其中响应于确定通过所述附加用户操作的所述客户端设备支持视觉输出而致使经由所述客户端设备的所述显示器来呈现所述自定义视觉元素。
7.根据权利要求2所述的方法,其中为所述当前状态定义的所述自定义状态信息包括用于生成所述给定输出实例的外部资源,并且其中生成所述给定输出实例包括与所述外部资源介接。
8.根据权利要求7所述的方法,其中与所述外部资源的介接包括通过网络并使用应用编程接口与所述外部资源进行通信。
9.根据权利要求1所述的方法,其中所述预配置子对话定义调用短语,当检测到所述调用短语时,致使所述预配置子对话被调用。
10.根据权利要求9所述的方法,其中所述预配置子对话包括自定义子状态和自定义子状态转换,其中所述自定义子状态中的每个为所述自定义子状态中的对应的一个定义自定义子状态信息,并且其中所述自定义子状态转换中的每个根据所述自定义子状态中的对应的一个定义自定义子状态转换信息。
11.根据权利要求9所述的方法,其中所述预配置子对话进一步定义退出短语,当检测到所述退出短语时,致使所述预配置子对话结束。
12.根据权利要求1所述的方法,其中所述自定义状态中的给定自定义状态的自定义转换信息包括:预期响应和所述自定义状态的附加自定义状态,其中如果接收到所述预期响应则转换到所述附加自定义状态。
13.根据权利要求12所述的方法,其中所述给定自定义状态的所述自定义转换信息进一步包括:替代预期响应和所述自定义状态中的替代自定义状态,其中如果接收到所述替代预期响应则转换到所述替代自定义状态。
14.一种系统,包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器存储指令,所述指令当被执行时使所述至少一个处理器:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,以及
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
接收经由通过附加用户操作的客户端设备的辅助接口提供的自然语言输入;
确定所述自然语言输入引用所述交互式对话应用;以及
响应于确定所述自然语言输入引用所述交互式对话应用:
基于所述自定义配置描述来执行自定义交互式对话应用,其中用于执行所述自定义交互式对话应用的所述指令使所述至少一个处理器:
识别所述自定义交互式对话应用的交互式对话的当前状态;
当所述交互式对话处于所述当前状态时,接收经由通过所述附加用户操作的所述客户端设备的所述辅助接口提供的进一步的自然语言输入;
确定所述进一步的自然语言输入引用所述预配置子对话;
响应于确定所述进一步的自然语言输入引用所述预配置子对话:
存储所述交互式对话的所述当前状态的指示,以及
执行所述预配置子对话;以及
响应于确定所述预配置子对话结束,使用所存储的指示来返回到其中调用了所述预配置子对话的所述当前状态。
15.根据权利要求14所述的系统,其中所述预配置子对话定义调用短语,当检测到所述调用短语时,致使所述预配置子对话被调用,并且其中,用于确定所述进一步的自然语言输入引用所述预配置子对话的指令包括:用于确定所述进一步的自然语言输入包括所述调用短语的指令。
16.根据权利要求15所述的系统,其中所述预配置子对话包括自定义子状态和自定义子状态转换,其中所述自定义子状态中的每个为所述自定义子状态中的对应的一个定义自定义子状态信息,并且其中所述自定义子状态转换中的每个根据所述自定义子状态中的对应的一个定义自定义子状态转换信息。
17.根据权利要求15所述的方法,其中所述预配置子对话进一步定义退出短语,当检测到所述退出短语时,致使所述预配置子对话结束,并且其中,用于执行所述自定义交互式对话应用的所述指令进一步致使所述至少一个处理器:确定经由通过所述附加用户操作的所述客户端设备的所述辅助接口提供的再进一步的自然语言输入包括所述退出短语。
18.一种非暂时性计算机可读存储设备,存储包括可由至少一个处理器执行的指令的软件,当执行所述指令时,使所述至少一个处理器执行包括以下的操作:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且响应于检测到针对预配置子对话定义的调用短语,定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息,并且
其中调用所述预配置子对话并且在任意所述自定义状态中,致使:
存储其中调用了所述预配置子对话的所述自定义状态的指示,
执行所述预配置子对话,以及
当所述预配置子对话结束时,使用所存储的指示来返回到其中调用了所述预配置子对话的所述自定义状态;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
接收经由通过附加用户操作的客户端设备的辅助接口提供的自然语言输入;
确定所述自然语言输入引用所述交互式对话应用;以及
响应于确定所述自然语言输入引用所述交互式对话应用:
基于所述自定义配置描述来执行自定义交互式对话应用,其中用于执行所述自定义交互式对话应用的所述指令使所述至少一个处理器执行包括以下的操作:
在所述附加用户与所述自定义交互式对话应用之间的交互式对话期间,生成多个输出实例以便经由所述辅助接口进行呈现。
19.根据权利要求18所述的非暂时性计算机可读存储设备,其中所述多个输出实例中的每个实例用于所述自定义交互式对话应用执行期间的所述交互式对话的多个对话轮次中的对应一个,并且其中所述多个输出实例中的至少一些是使用所述自定义配置描述的所述自定义状态和自定义状态转换来生成的,并且所述多个输出实例中的至少一些是通过调用所述自定义配置描述的所述预配置子对话来生成的。
20.根据权利要求19所述的非暂时性计算机可读存储设备,其中用于在所述多个对话轮次中的给定对话轮次处生成所述多个输出实例的给定输出实例的指令使所述至少一个处理器执行包括以下的操作:
识别所述附加对话轮次处的所述交互式对话的当前状态;
当所述交互式对话处于所述附加当前状态时,接收经由通过所述附加用户操作的所述客户端设备的所述辅助接口提供的进一步的自然语言输入;
确定所述进一步的自然语言输入包括由所述预配置子对话定义的所述调用短语;
响应于确定所述进一步的自然语言输入引用所述预配置子对话:
存储所述交互式对话的所述当前状态的指示,以及
执行所述预配置子对话;以及
响应于确定所述预配置子对话结束:
使用所存储的指示来返回到其中调用了所述预配置子对话的所述附加当前状态。
21.根据权利要求20所述的非暂时性计算机可读存储设备,其中所述预配置子对话进一步定义退出短语,并且其中确定所述预配置子对话,并且其中所述指令进一步使所述至少一个处理器执行包括以下的操作:
接收经由通过所述附加用户操作的所述客户端设备的所述辅助接口提供的再进一步的自然语言输入;
确定所述再进一步的自然语言输入包括由所述预配置子对话定义的所述退出短语;以及
基于所述再进一步的自然语言输入包括由所述预配置子对话定义的所述退出短语,确定所述预配置子对话结束。
22.一种由一个或多个处理器实现的方法,所述方法包括:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且响应于检测到针对预配置子对话定义的调用短语,定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息,并且
其中调用所述预配置子对话并且在任意所述自定义状态中:
致使存储其中调用了所述预配置子对话的所述自定义状态的指示,
致使执行所述预配置子对话,以及
当所述预配置子对话结束时,致使使用所存储的指示来返回到其中调用了所述预配置子对话的所述自定义状态;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
致使所述用户创建的自定义交互式对话应用基于经由通过对应附加用户操作的对应客户端设备的对应辅助接口接收的对应自然语言输入来执行,其中致使所述交互式对话应用基于所述对应自然语言输入来执行包括:
在所述对应附加用户与所述自定义交互式对话应用之间的交互式对话期间,致使生成对应输出实例以便经由所述对应辅助接口进行呈现。
23.根据权利要求22所述的方法,其中致使生成给定对应输出实例以便呈现包括:
致使在所述交互式对话的多个对话轮次中的给定对话轮次处识别所述交互式对话的当前状态;
确定所述交互式对话的所述当前状态是否为所述自定义配置描述的所述自定义状态中的一个;以及
响应于确定所述对话的所述当前状态是所述自定义配置描述的所述自定义状态中的一个:
致使基于为所述自定义状态中的一个定义的所述自定义状态信息来生成所述给定对应输出实例。
24.根据权利要求23所述的方法,其中致使生成给定附加对应输出实例以便呈现包括:
致使在所述交互式对话的所述多个对话轮次的附加对话轮次处识别所述交互式对话的附加当前状态;
当所述交互式对话处于所述附加当前状态时,接收经由通过所述对应附加用户操作的所述对应客户端设备的所述对应辅助接口提供的对应自然语言输入的指示;
确定所述对应自然语言输入的所述指示引用所述预配置子对话;
响应于确定所述对应自然语言输入的所述指示引用所述预配置子对话:
致使存储所述交互式对话的所述附加当前状态的指示,以及
致使执行所述预配置子对话;以及
响应于确定所述预配置子对话结束:
致使使用所存储的所述附加当前状态的指示来返回到其中调用了所述预配置子对话的所述附加当前状态。
25.根据权利要求23所述的方法,其中为所述当前状态定义的所述自定义状态信息包括自定义音频,并且其中致使生成所述给定对应输出实例以便呈现包括:致使经由所述对应客户端设备的一个或多个扬声器来呈现所述自定义音频。
26.根据权利要求25所述的方法,其中为所述当前状态定义的所述自定义状态信息进一步包括自定义视觉元素,并且其中致使生成所述给定对应输出实例以便呈现包括:致使经由所述对应客户端设备的显示器来呈现所述自定义视觉元素。
27.根据权利要求26所述的方法,其中响应于确定通过所述对应附加用户操作的所述对应客户端设备支持视觉输出而致使经由所述对应客户端设备的所述显示器来呈现所述自定义视觉元素。
28.根据权利要求23所述的方法,其中为所述当前状态定义的所述自定义状态信息包括用于致使生成所述给定对应输出实例的外部资源以便呈现,并且其中致使生成所述给定对应输出实例以便呈现包括:与所述外部资源介接。
29.根据权利要求28所述的方法,其中与所述外部资源的介接包括通过网络并使用应用编程接口与所述外部资源进行通信。
30.根据权利要求22所述的方法,其中所述预配置子对话定义调用短语,当检测到所述调用短语时,致使所述预配置子对话被调用。
31.根据权利要求30所述的方法,其中所述预配置子对话包括自定义子状态和自定义子状态转换,其中所述自定义子状态中的每个为所述自定义子状态中的对应的一个定义自定义子状态信息,并且其中所述自定义子状态转换中的每个根据所述自定义子状态中的对应的一个定义自定义子状态转换信息。
32.根据权利要求30所述的方法,其中所述预配置子对话进一步定义退出短语,当检测到所述退出短语时,致使所述预配置子对话结束。
33.根据权利要求22所述的方法,其中所述自定义状态中的给定自定义状态的自定义转换信息包括:预期响应和所述自定义状态的附加自定义状态,其中如果接收到所述预期响应则转换到所述附加自定义状态。
34.根据权利要求33所述的方法,其中所述给定自定义状态的所述自定义转换信息进一步包括:替代预期响应和所述自定义状态中的替代自定义状态,其中如果接收到所述替代预期响应则转换到所述替代自定义状态。
35.一种由一个或多个处理器实现的方法,所述方法包括:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且响应于检测到针对预配置子对话定义的调用短语,定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息,并且
其中调用所述预配置子对话并且在任意所述自定义状态中:
致使存储其中调用了所述预配置子对话的所述自定义状态的指示,
致使执行所述预配置子对话,以及
当所述预配置子对话结束时,致使使用所存储的指示来返回到其中调用了所述预配置子对话的所述自定义状态;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
向通过对应附加用户操作的对应客户端设备传送所述用户创建的自定义交互式对话应用,其中向通过所述对应附加用户操作的所述对应客户端设备传送所述用户创建的自定义交互式对话应用致使所述对应客户端设备:
基于经由通过所述对应附加用户操作的所述对应客户端设备的对应辅助接口接收的对应自然语言输入,执行所述用户创建的自定义交互式对话应用。
36.根据权利要求35所述的方法,其中向通过所述对应附加用户操作的所述对应客户端设备传送所述用户创建的自定义交互式对话应用进一步致使所述对应客户端设备:
将所述用户创建的自定义交互式对话应用存储在所述对应客户端设备的对应设备上存储中。
37.根据权利要求36所述的方法,其中基于对应自然语言输入执行所述用户创建的自定义交互式对话应用致使所述对应客户端设备:
在所述对应附加用户与所述自定义交互式对话应用之间的交互式对话期间,动态地访问存储在所述对应客户端设备的所述对应设备上存储中的所述用户创建的自定义交互式对话应用。
38.根据权利要求37所述的方法,其中在所述交互式对话期间动态地访问存储在所述对应客户端设备的所述对应设备上存储中的所述用户创建的自定义交互式对话应用致使所述对应客户端设备:
在所述交互式对话的多个对话轮次中的给定对话轮次处识别所述交互式对话的当前状态;
确定所述交互式对话的所述当前状态是否为所述自定义配置描述的所述自定义状态中的一个;以及
响应于确定所述对话的所述当前状态是所述自定义配置描述的所述自定义状态中的一个:
基于为所述自定义状态中的一个定义的所述自定义状态信息来生成给定对应输出实例。
39.根据权利要求38所述的方法,其中在所述交互式对话期间动态地访问存储在所述对应客户端设备的所述对应设备上存储中的所述用户创建的自定义交互式对话应用进一步致使所述对应客户端设备:
在所述交互式对话的所述多个对话轮次的附加对话轮次处识别所述交互式对话的附加当前状态;
当所述交互式对话处于所述附加当前状态时,接收经由通过所述对应附加用户操作的所述对应客户端设备的所述对应辅助接口提供的对应自然语言输入;
确定所述对应自然语言输入引用所述预配置子对话;
响应于确定所述对应自然语言输入引用所述预配置子对话:
存储所述交互式对话的所述附加当前状态的指示,以及
执行所述预配置子对话;以及
响应于确定所述预配置子对话结束:
使用所存储的所述附加当前状态的指示来返回到其中调用了所述预配置子对话的所述附加当前状态。
40.一种系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在被执行时,使所述至少一个处理器:
针对用户创建的自定义交互式对话应用,从图形状态应用接收交互式对话应用的指示以及状态图,
其中所述状态图包括自定义状态、自定义状态转换,并且响应于检测到针对预配置子对话定义的调用短语,定义在所述自定义状态中的每个中可调用的至少一个预配置子对话,
其中所述自定义状态中的每个为所述自定义状态中的对应的一个定义自定义状态信息,
其中所述自定义状态转换中的每个根据所述自定义状态中的对应的一个定义自定义状态转换信息,并且
其中调用所述预配置子对话并且在任意所述自定义状态中:
致使存储其中调用了所述预配置子对话的所述自定义状态的指示,
致使执行所述预配置子对话,以及
当所述预配置子对话结束时,致使使用所存储的指示来返回到其中调用了所述预配置子对话的所述自定义状态;
基于所述自定义状态、所述自定义状态转换和所述预配置子对话来生成自定义配置描述;
在生成所述自定义配置描述之后:
致使所述用户创建的自定义交互式对话应用基于经由通过对应附加用户操作的对应客户端设备的对应辅助接口接收的对应自然语言输入来执行,其中用于致使所述交互式对话应用基于所述对应自然语言输入来执行的所述指令包括用于以下的指令:
在所述对应附加用户与所述自定义交互式对话应用之间的交互式对话期间,致使生成对应输出实例以便经由所述对应辅助接口进行呈现。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762568255P | 2017-10-04 | 2017-10-04 | |
US62/568,255 | 2017-10-04 | ||
US15/960,444 | 2018-04-23 | ||
US15/960,444 US10621984B2 (en) | 2017-10-04 | 2018-04-23 | User-configured and customized interactive dialog application |
PCT/US2018/054126 WO2019070826A1 (en) | 2017-10-04 | 2018-10-03 | INTERACTIVE DIALOGUE CONFIGURED AND CUSTOMIZED BY THE USER |
CN201880039806.8A CN110998526B (zh) | 2017-10-04 | 2018-10-03 | 用户配置的且自定义的交互式对话应用 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039806.8A Division CN110998526B (zh) | 2017-10-04 | 2018-10-03 | 用户配置的且自定义的交互式对话应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118331651A true CN118331651A (zh) | 2024-07-12 |
Family
ID=65898089
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039806.8A Active CN110998526B (zh) | 2017-10-04 | 2018-10-03 | 用户配置的且自定义的交互式对话应用 |
CN202410296991.6A Pending CN118331651A (zh) | 2017-10-04 | 2018-10-03 | 用户配置的且自定义的交互式对话应用 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039806.8A Active CN110998526B (zh) | 2017-10-04 | 2018-10-03 | 用户配置的且自定义的交互式对话应用 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10621984B2 (zh) |
EP (1) | EP3559805A1 (zh) |
JP (1) | JP7128847B2 (zh) |
KR (2) | KR102429407B1 (zh) |
CN (2) | CN110998526B (zh) |
WO (1) | WO2019070826A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621984B2 (en) | 2017-10-04 | 2020-04-14 | Google Llc | User-configured and customized interactive dialog application |
CN110234032B (zh) * | 2019-05-07 | 2022-02-25 | 百度在线网络技术(北京)有限公司 | 一种语音技能创建方法及系统 |
US10629191B1 (en) * | 2019-06-16 | 2020-04-21 | Linc Global, Inc. | Methods and systems for deploying and managing scalable multi-service virtual assistant platform |
US11494166B2 (en) * | 2020-03-30 | 2022-11-08 | Nuance Communications, Inc. | Omni-channel conversational application development system and method |
CN115048162A (zh) * | 2021-03-08 | 2022-09-13 | Oppo广东移动通信有限公司 | 表盘显示方法及装置、电子设备及计算机可读存储介质 |
KR102392223B1 (ko) * | 2021-11-24 | 2022-04-29 | (주) 바우디움 | 절차의 구조를 입출력하는 방법 및 이를 이용한 장치 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1163869C (zh) * | 1997-05-06 | 2004-08-25 | 语音工程国际公司 | 用于开发交互式语音应用程序的系统和方法 |
JP3092563B2 (ja) * | 1997-10-27 | 2000-09-25 | 日本電気株式会社 | 状態遷移図変換装置 |
US6321198B1 (en) * | 1999-02-23 | 2001-11-20 | Unisys Corporation | Apparatus for design and simulation of dialogue |
US20050091057A1 (en) * | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
US6314402B1 (en) * | 1999-04-23 | 2001-11-06 | Nuance Communications | Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system |
EP1192789B1 (en) * | 1999-06-11 | 2008-10-15 | Telstra Corporation Limited | A method of developing an interactive system |
TW501046B (en) * | 1999-06-11 | 2002-09-01 | Ind Tech Res Inst | A portable dialogue manager |
US6684183B1 (en) * | 1999-12-06 | 2004-01-27 | Comverse Ltd. | Generic natural language service creation environment |
JP2004505333A (ja) * | 2000-03-17 | 2004-02-19 | エンペレイティヴ インコーポレイテッド | 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語 |
JP2002073080A (ja) * | 2000-09-01 | 2002-03-12 | Fujitsu Ten Ltd | 音声対話システム |
JP2002135429A (ja) * | 2000-10-26 | 2002-05-10 | Hitachi Ltd | 電話音声応答装置 |
US20030007609A1 (en) * | 2001-07-03 | 2003-01-09 | Yuen Michael S. | Method and apparatus for development, deployment, and maintenance of a voice software application for distribution to one or more consumers |
AU2002950336A0 (en) * | 2002-07-24 | 2002-09-12 | Telstra New Wave Pty Ltd | System and process for developing a voice application |
AU2002951244A0 (en) * | 2002-09-06 | 2002-09-19 | Telstra New Wave Pty Ltd | A development system for a dialog system |
JP2004287016A (ja) * | 2003-03-20 | 2004-10-14 | Sony Corp | 音声対話装置及び方法並びにロボット装置 |
CN1864203A (zh) * | 2003-10-10 | 2006-11-15 | 皇家飞利浦电子股份有限公司 | 用于对话系统的对话控制 |
US20050228668A1 (en) * | 2004-03-31 | 2005-10-13 | Wilson James M | System and method for automatic generation of dialog run time systems |
JP2006011316A (ja) * | 2004-06-29 | 2006-01-12 | Kokichi Tanihira | 仮想会話システム |
US8478589B2 (en) * | 2005-01-05 | 2013-07-02 | At&T Intellectual Property Ii, L.P. | Library of existing spoken dialog data for use in generating new natural language spoken dialog systems |
US8225232B2 (en) * | 2005-02-28 | 2012-07-17 | Microsoft Corporation | Dynamic configuration of unified messaging state changes |
FR2882837B1 (fr) * | 2005-03-07 | 2008-11-14 | France Telecom | Procede et dispositif de construction d'un dialogue vocal |
US20070115920A1 (en) * | 2005-10-18 | 2007-05-24 | Microsoft Corporation | Dialog authoring and execution framework |
US8046220B2 (en) * | 2007-11-28 | 2011-10-25 | Nuance Communications, Inc. | Systems and methods to index and search voice sites |
JP2009193532A (ja) * | 2008-02-18 | 2009-08-27 | Oki Electric Ind Co Ltd | 対話管理装置、方法及びプログラム、並びに意識抽出システム |
US8346560B2 (en) * | 2009-05-01 | 2013-01-01 | Alpine Electronics, Inc | Dialog design apparatus and method |
US8843616B2 (en) * | 2010-09-10 | 2014-09-23 | Intel Corporation | Personal cloud computing with session migration |
KR101772152B1 (ko) * | 2013-06-09 | 2017-08-28 | 애플 인크. | 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스 |
WO2016040769A1 (en) * | 2014-09-14 | 2016-03-17 | Speaktoit, Inc. | Platform for creating customizable dialog system engines |
US9466297B2 (en) * | 2014-12-09 | 2016-10-11 | Microsoft Technology Licensing, Llc | Communication system |
US20160202957A1 (en) * | 2015-01-13 | 2016-07-14 | Microsoft Technology Licensing, Llc | Reactive agent development environment |
KR101655958B1 (ko) * | 2015-03-31 | 2016-09-08 | 네이버 주식회사 | 개인 통합형 음성 정보를 제공하는 방법과 시스템 및 기록 매체 |
US20170193385A1 (en) * | 2015-12-31 | 2017-07-06 | Nuance Communications, Inc. | Configurable Dialog System |
US10474439B2 (en) * | 2016-06-16 | 2019-11-12 | Microsoft Technology Licensing, Llc | Systems and methods for building conversational understanding systems |
US10552543B2 (en) * | 2017-05-10 | 2020-02-04 | International Business Machines Corporation | Conversational authoring of event processing applications |
US10621984B2 (en) | 2017-10-04 | 2020-04-14 | Google Llc | User-configured and customized interactive dialog application |
-
2018
- 2018-04-23 US US15/960,444 patent/US10621984B2/en active Active
- 2018-10-03 CN CN201880039806.8A patent/CN110998526B/zh active Active
- 2018-10-03 JP JP2019568393A patent/JP7128847B2/ja active Active
- 2018-10-03 CN CN202410296991.6A patent/CN118331651A/zh active Pending
- 2018-10-03 EP EP18795857.4A patent/EP3559805A1/en active Pending
- 2018-10-03 WO PCT/US2018/054126 patent/WO2019070826A1/en unknown
- 2018-10-03 KR KR1020217042284A patent/KR102429407B1/ko active IP Right Grant
- 2018-10-03 KR KR1020197038221A patent/KR102345615B1/ko active IP Right Grant
-
2020
- 2020-03-25 US US16/829,676 patent/US11341968B2/en active Active
-
2022
- 2022-05-20 US US17/749,687 patent/US11676602B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11341968B2 (en) | 2022-05-24 |
CN110998526A (zh) | 2020-04-10 |
WO2019070826A1 (en) | 2019-04-11 |
EP3559805A1 (en) | 2019-10-30 |
US20200258521A1 (en) | 2020-08-13 |
US10621984B2 (en) | 2020-04-14 |
US11676602B2 (en) | 2023-06-13 |
KR102345615B1 (ko) | 2021-12-30 |
KR20200011483A (ko) | 2020-02-03 |
JP2020530606A (ja) | 2020-10-22 |
CN110998526B (zh) | 2024-03-22 |
US20220277748A1 (en) | 2022-09-01 |
KR20220002704A (ko) | 2022-01-06 |
KR102429407B1 (ko) | 2022-08-05 |
US20190102379A1 (en) | 2019-04-04 |
JP7128847B2 (ja) | 2022-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110998526B (zh) | 用户配置的且自定义的交互式对话应用 | |
JP6963700B2 (ja) | 適切なサードパーティーエージェントへの呼び出し要求を生成および伝送すること | |
JP7063932B2 (ja) | 適切なエージェントの自動化アシスタント呼び出し | |
CN111033492B (zh) | 为自动化助手提供命令束建议 | |
KR102394289B1 (ko) | 맥락을 인식하는 인간-대-컴퓨터 대화 | |
CN110730953B (zh) | 基于创建者提供的内容定制交互式对话应用的方法、系统 | |
US11113481B2 (en) | Adapting automated assistants for use with multiple languages | |
CN118202344A (zh) | 用于从文档中提取嵌入式数据的深度学习技术 | |
CN118251668A (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 |