CN108270843A - 生成和传送对适当第三方代理的调用请求 - Google Patents
生成和传送对适当第三方代理的调用请求 Download PDFInfo
- Publication number
- CN108270843A CN108270843A CN201710872445.2A CN201710872445A CN108270843A CN 108270843 A CN108270843 A CN 108270843A CN 201710872445 A CN201710872445 A CN 201710872445A CN 108270843 A CN108270843 A CN 108270843A
- Authority
- CN
- China
- Prior art keywords
- user
- party agent
- input
- value
- response
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 33
- 230000009471 action Effects 0.000 claims abstract description 161
- 230000004044 response Effects 0.000 claims description 171
- 238000000034 method Methods 0.000 claims description 68
- 230000003993 interaction Effects 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 230000008030 elimination Effects 0.000 claims description 2
- 238000003379 elimination reaction Methods 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 239000003795 chemical substances by application Substances 0.000 description 92
- 238000012545 processing Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 17
- 230000000712 assembly Effects 0.000 description 13
- 238000000429 assembly Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 239000000463 material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010079 rubber tapping Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005469 granulation Methods 0.000 description 1
- 230000003179 granulation Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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
- 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/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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
- 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/40—Processing or translation of natural language
-
- 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/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1815—Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
-
- 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/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- 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
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Economics (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请涉及生成和传送对适当第三方代理的调用请求。一些实施方式涉及由自动化助理选择性地调用特定第三方(3P)代理,以在自动化助理和用户之间的动态对话期间实现由自动化助理确定的预期动作。在那些实施方式的一些中,以在动态对话期间确定的参数的值来调用特定3P代理;和/或从多个候选3P代理中选择特定3P代理以供基于所确定的参数的值和/或基于其他准则来进行调用。在那些实施方式的一些中,自动化助理通过向特定3P代理传送包括所确定的参数值的3P调用请求来调用特定3P代理。
Description
技术领域
本申请涉及生成和传送对适当第三方代理的调用请求。
背景技术
自动化助理(也称为“个人助理”、“移动助理”、或“聊天机器人”)可以由用户经由各种客户端设备进行交互,所述客户端设备诸如智能电话、平板计算机、可穿戴设备、汽车系统、独立个人助理设备等。自动化助理从用户接收输入(例如,键入和/或说出的自然语言输入)并以响应性内容(例如,视觉和/或听觉自然语言输出)进行响应。经由客户端设备交互的自动化助理可以经由客户端设备本身和/或经由与客户端设备进行网络通信的一个或多个远程计算设备(例如,“云”中的计算设备)来实现。
发明内容
本说明书主要涉及选择性地调用第三方(3P)代理。一些实施方式涉及通过自动化助理选择性地调用特定3P代理,来在自动化助理和用户之间的动态对话期间实现由自动化助理确定的预期动作。在那些实施方式的一些中,利用在动态对话期间确定的参数的值来调用特定3P代理;和/或基于所确定的参数的值和/或基于其他准则来从多个候选3P代理中选择特定3P代理以用于调用。在那些实施方式的一些版本中,自动化助理通过向特定3P代理传送包括所确定的参数值的3P调用请求来调用特定3P代理。例如,自动化助理可以通过一个或多个网络将3P调用请求传送到3P代理,并且可以利用应用编程接口(API)与3P代理对接。
在调用特定3P代理时,特定3P代理生成3P响应内容,其可以用于生成用于包含在动态对话中的输出。当调用请求包括所确定的参数值时,特定3P代理可以在生成3P响应内容时考虑到所述值。这可以使得能够更快地经由特定3P代理实现预期动作,其可以节省各种计算资源(例如,在没有值的备置(provision)的情况下可能有必要的附加“来回(turn)”所消耗的网络流量)。
此外,当利用所确定的参数值来选择特定3P代理时,该所确定的参数值可以确保所选择的特定3P代理能够基于所确定的值来执行预期动作。例如,可以将所确定的参数值与针对可以执行预期动作的多个候选3P代理中的每一个所定义的参数的对应值进行比较——并且仅可以考虑其值与该所确定的值相对应的3P代理以用于选择。这可以减轻选择用于调用的特定3P代理无法执行预期动作的风险,其可以节省各种计算资源。例如,它可以节省否则会由初始尝试利用3P代理来执行预期动作失败然后在另一尝试中调用替选的3P代理来执行预期动作而消耗的网络和/或处理器资源。
在某些情形下,响应于对特定3P代理的调用,与调用请求一起提供的参数的值可以使得特定3P代理能够实现预期动作,而无需进行与用户的进一步对话。在这些情形下,3P代理可以提供响应内容,其指示预期的动作已经实现和/或指示与实现预期动作有关的附加信息。
在一些情形下,响应于对特定3P代理的调用,动态对话可以至少临时传输(实际上或有效地)到特定3P代理,使得3P代理至少暂时“引导(steer)”动态对话的实质。例如,基于3P响应内容的输出可以提供给用户以增进该对话,以及响应于3P响应内容而接收到的进一步的用户输入。可以向特定3P代理提供进一步的用户输入(或其转换)。在生成进一步的响应内容中,特定的3P代理可以利用其自己的语义引擎和/或其他组件,该响应内容可以用于生成进一步的输出以供提供来增进动态对话。该一般过程可以继续,直到例如3P代理提供终止3P代理对话的响应内容(例如,回答或解决方案而不是提示),用户的附加用户接口输入终止3P代理对话(例如,而是调用来自自动化助理或其他3P代理的响应)等。
如本文所述,在某些情形下,当对话被有效地传输到3P代理时,自动化助理还可以充当中介。例如,在充当用户的自然语言输入为语音输入的中介时,自动化助理可以将该语音输入转换为文本,向3P代理提供该文本(以及可选的文本注释),从3P代理接收3P响应内容,并提供基于3P响应内容的输出以供呈现给用户。另外,例如,在充当中介时,自动化助理可以分析用户输入和/或3P响应内容以确定与3P代理的对话是否应当被终止、被传输到替选的3P代理等。如本文所述,在某些情形下,对话可能实际上被传输到3P代理(而无需自动化助理在传输时充当中介),并且在发生诸如由3P代理进行的终止(例如,响应于经由3P代理完成预期动作)的一个或多个条件后传输回到自动化助理。
这里描述的实施方式使得自动化助理能够基于与用户的对话来选择适当的3P代理,并且调用该3P代理以实现用户在对话中指示的用户的预期动作。这些实施方式可以使得用户能够经由与自动化助理的交互来接触(engage)3P代理,而不需要用户知道“热词”来明确触发3P代理和/或甚至不需要用户必需最初知道3P代理存在。此外,实施方式使得自动化助理能够基于与用户的对话来确定(与预期动作相关联)各种参数的值,并且结合调用3P代理将这些参数传递给3P代理。此外,这些实施方式可以使得用户能够利用公共的自动化助理接口(例如,基于可听见的/语音的接口和/或图形接口)来与多个相异的3P代理中的任何一个进行交互,所述多个相异的3P代理能够执行跨多个相异的服务业务(servicesector)的动作。例如,公共自动化助理界面可以用于:接触执行在“餐厅预订”服务业务中的预期动作的多个3P代理中的任何一个,接触执行在“购买专业服务”服务业务中的预期动作的多个3P代理中的任何一个,接触执行在“购买旅行服务”服务业务中的预期动作的多个3P代理中的任何一个,并接触执行在“交互式游戏”服务业务中的预期动作的多个3P代理中的任何一个。
如本文所使用的,3P代理指代由与管理自动化助理的一方分开的一方管理的一个或多个计算设备和/或相关联的软件。3P代理被配置为从自动化助理(例如,经由API通过网络)接收内容。响应于接收到该内容,3P代理基于接收到的内容来生成3P响应内容,并且传送该3P响应内容以用于基于3P响应内容的输出的备置。例如,3P代理可以将3P响应内容传送到自动化助理以用于由自动化助理备置基于3P响应内容的输出。通常3P代理可以被配置为执行一个或多个详细指定的预期动作,例如诸如:预约餐厅预订;点食物;购买电影票;购买服务;请求服务(例如交通运输);管理用户的文本、电子邮件、或其他电子通信;为用户的任务提供指南(例如,调制饮料、修理泄漏的水龙头);参与同用户的交互式游戏;等等。
这里描述了可以由用户经由用户接口输入设备向自动化助理和/或3P代理提供的各种类型的输入。在某些情形下,输入可以是处于自由形式的自然语言输入,诸如基于用户经由一个或多个用户接口输入设备来生成的用户接口输入(例如,基于经由物理或虚拟键盘提供的键入输入或基于经由麦克风提供的说出的输入)的文本输入。如本文所使用的,自由形式输入是由用户制定并且不受呈现以供用户选择的选项群组的约束(例如,不受在下拉菜单中呈现的选项群组的约束)的输入。
在一些实施方式中,提供了一种由一个或多个处理器执行的方法,其包括:接收用户的指向自动化助理的自然语言输入以作为用户和自动化助理之间的动态对话的一部分。自然语言输入是自由形式的,并且基于由用户经由用户接口输入设备来提供的用户接口输入。该方法还包括基于确定自然语言输入指示预期动作来选择预期动作。预期动作从可经由自动化助理获得并且跨越多个服务业务的潜在预期动作的群组中选择。该方法还包括确定与预期动作相关联地存储的至少一个强制参数在所述自然语言输入中未指定。所述方法还包括响应于确定所述至少一个强制参数未指定,生成基于所述至少一个强制参数的提示。该方法还包括:提供所述提示作为所述动态对话的一部分并作为对所述自然语言输入的回复;响应于所述提示而接收由所述用户提供的附加自然语言输入以作为所述动态对话的一部分;基于所述附加自然语言输入来确定所述强制参数的值;以及从均能够执行由所述自然语言输入指示的预期动作的第三方代理群组中选择特定的第三方代理。该方法还包括传送包括强制参数的值的第三方调用请求。该传送是经由一个或多个网络接口而去往特定的第三方代理的,并且在没有向第三方代理群组中的任何其他第三方代理的任何其他第三方调用请求传输的情况下发生的。在一些实施方式中,该方法还包括:响应于传送第三方调用请求,经由一个或多个网络接口从第三方代理接收响应内容;并且提供基于所述响应内容的输出以用于作为所述动态对话的一部分向所述用户呈现。
本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,该方法还包括:响应于基于所述第三方代理的响应内容的输出,接收由所述用户提供的进一步的输入;以及经由所述一个或多个网络接口向所述第三方代理传送基于所述进一步的输入的内容。在那些实施方式的一些中,进一步的输入是语音输入,并且该方法还包括将语音输入转换为文本并且所述内容包括所述文本中的至少一些。在这些实施方式的一些版本中,该方法还包括:经由所述一个或多个网络接口响应于传送所述内容而从所述第三方代理接收进一步的响应内容;以及提供基于所述进一步的响应内容的进一步输出以用于作为所述动态对话的一部分向所述用户呈现。
在一些实施方式中,该方法还包括:响应于基于所述第三方代理的响应内容的输出,接收由所述用户提供的进一步的输入;确定所述进一步的输入是否指示期望停止与所述第三方代理的交互;以及响应于确定所述进一步的输入不指示期望停止与所述第三方代理的交互:经由所述一个或多个网络接口向所述第三方代理传送基于所述进一步的输入的内容。
在一些实施方式中,该方法还包括:响应于所述输出或响应于基于由所述第三方代理提供的内容的进一步的输出而接收由所述用户提供的进一步的输入;确定所述进一步的输入指示期望与另一第三方代理交互;以及响应于确定所述进一步的输入指示期望与另一第三方代理交互:向所述第三方代理群组中的替选第三方代理传送包括所述强制参数的值的附加第三方调用请求。在那些实施方式的一些中,该方法还包括:基于在与所述第三方代理的接触期间在所述动态对话中的用户输入来确定所述预期动作的附加参数的附加值;以及在所述附加第三方调用请求中包括所述附加参数的附加值。
在一些实施方式中,该方法还包括:基于所述自然语言输入或所述附加自然语言输入来确定所述预期动作的非要求可选参数的附加值;并在所述第三方调用请求中包括所述附加参数的附加值。在那些实施方式的一些中,从所述第三方代理群组中选择所述特定第三方代理包括:基于所述值和所述附加值符合对于所述第三方代理、对于所述强制参数和所述附加参数而定义的对应值,来选择所述特定第三方代理。在这些实施方式的一些版本中,从所述第三方代理群组中选择所述特定第三方代理还包括:基于所述值和所述附加值不符合对于附加第三方代理、所述强制参数和所述附加参数定义的对应值,来从所述选择中消除所述附加第三方代理。附加第三方代理属于所述第三方代理群组。在那些实施方式的一些中,选择所述特定第三方代理可以是在不向所述用户提供明确地要求所述用户在所述第三方代理与所述群组中的一个或多个附加第三方代理之间进行选择的输出的情况下发生的。
在一些实施方式中,提供一种由一个或多个处理器执行的方法,并且包括作为用户和由所述一个或多个处理器实现的自动化助理之间的动态对话的一部分:接收用户的指向所述自动化助理的自然语言输入以作为所述动态对话的一部分,所述自然语言输入是自由形式的并且基于由所述用户经由用户接口输入设备来提供的用户接口输入;基于确定所述自然语言输入指示预期动作来选择所述预期动作,所述预期动作从跨越多个服务业务的潜在预期动作的群组中选择;识别均能够执行由所述自然语言输入指示的预期动作并且均能够执行所述预期动作的第三方代理群组;生成基于与所述预期动作相关联地存储并且在所述自然语言输入中未指定的参数的提示,其中所述提示不明确地标识所述群组中的任何第三方代理;提供所述提示作为动态对话的一部分并作为对所述自然语言输入的回复;响应于所述提示而接收由所述用户提供的附加自然语言输入以作为所述动态对话的一部分;基于所述附加自然语言输入来确定所述参数的值;从所述第三方代理群组中消除第三方代理以形成子群组,所述消除基于所述值不符合针对所述第三方代理的参数而定义的对应值;从所述子群组中选择特定的第三方代理;以及传送包括参数值的第三方调用请求。所述传送是经由一个或多个网络接口而去往仅所选择的特定第三方代理。
本文公开的技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。
在一些实施方式中,该方法还包括:响应于传送第三方调用请求,经由一个或多个网络接口而从第三方代理接收响应内容;并且提供基于所述响应内容的输出以用于作为所述动态对话的一部分向所述用户呈现。在那些实施方式的一些中,该方法还包括:响应于基于第三方代理的响应内容的输出而接收由用户提供的进一步的输入;以及经由一个或多个所述网络接口向所述第三方代理传送基于所述进一步的输入的内容。在那些实施方式的一些中,进一步的输入是语音输入,并且该方法还包括:将语音输入转换为文本并且所述内容包括所述文本中的至少一些。
在一些实施方式中,提供了一种由一个或多个处理器执行的方法,并且包括:由本地代理通过一个或多个网络接口接收由用户的客户端设备传送的第一自然语言输入。第一自然语言输入是自由形式的并且指向由客户端设备实现的自动化助理接口。该方法还包括由本地代理确定所述第一自然语言输入指示指向第一服务业务的第一预期动作。该方法还包括由本地代理经由一个或多个网络接口:经由客户端设备的自动化助理接口与用户交互以解析与第一预期动作相关联地存储的所有第一强制参数的值。该方法还包括由本地代理从均能够执行由所述第一自然语言输入指示的预期动作的第三方代理群组中选择特定第三方代理。所述方法还包括由所述本地代理在解析所述第一强制参数的值之后:基于所述第一强制参数的所解析的值来调用所述第三方代理;并且促进所述客户端设备和所述第三方代理之间的交互,所述交互经由所述自动化助理接口发生并由第三方代理引导。
在一些实施方式中,该方法还包括:由本地代理通过一个或多个网络接口从用户的客户端设备接收第二自然语言输入,第二自然语言输入是自由形式的并且指向自动化助理接口;由本地代理确定所述第二自由形式的自然语言输入指示指向第二服务业务的第二预期动作,所述第二服务业务与所述第一服务业务不同;由本地代理经由所述一个或多个网络接口经由所述客户端设备的自动化助理接口与所述用户交互,以解析与所述第二预期动作相关联地存储的所有第二强制参数的第二值;从均能够执行由所述自然语言输入指示的第二预期动作的附加第三方代理群组中选择附加特定第三方代理,所述附加第三方代理群组与所述第三方代理群组不同;以及由本地代理在解析第二强制参数的第二值之后:基于第二强制参数中的所解析的第二值来调用所述附加第三方代理,以及促进所述客户端设备和所述附加第三方代理之间的交互,所述交互经由所述自动化助理接口发生并由所述附加第三方代理引导。
在一些实施方式中,提供一种由一个或多个处理器执行的方法,并且包括:经由客户端设备接收由用户提供的初始语音输入;执行语音转文本转换以将初始语音输入转换为初始文本;基于初始文本来确定预期动作;识别存储为对于所述预期动作强制的强制参数;确定所述初始文本缺少对所述强制参数的任何值的指定;响应于确定初始文本缺少对强制参数的任何值的指定:基于强制参数来生成自然语言提示,以及提供所述自然语言提示作为对初始语音输入的回复,所述提示被提供以供经由所述客户端设备的用户接口输出设备呈现给所述用户;响应于提供自然语言提示而接收由用户提供的附加自然语言输入;基于所述附加自然语言输入来确定所述参数的值;选择能够执行所述预期动作的第三方代理群组中的特定第三方代理;传送包括所述强制参数的值的第三方调用请求,其中所述传送是经由一个或多个网络接口而去往所述特定第三方代理的;响应于传送所述预期动作和所述值,从所述第三方代理接收响应内容,所述接收经由所述一个或多个网络接口;以及提供基于响应内容的输出以供呈现给用户;响应于提供输出而接收由用户提供的进一步的附加自然语言输入;执行附加语音转文本转换以将所述进一步的附加自然语言输入转换为进一步的文本;以及将所述进一步的文本传送给所述特定第三方代理。
在一些实施方式中,提供一种由一个或多个处理器执行的方法,并且包括:经由一个或多个网络接口接收由客户端设备传送的输入,所述输入是自由形式的自然语言用户输入;基于所述输入来确定预期动作;识别存储为对于所述预期操作强制的强制参数;确定所述输入缺少对强制参数的任何值的指定;响应于确定所述初始文本缺少对强制参数的任何值的指定:生成提示,所述提示基于所述强制参数并且不要求关于存储为对于所述预期操作可选的可选参数的输入,以及向所述客户端设备传送所述自然语言提示以作为对所述输入的回复;经由一个或多个网络接口响应于所述提示而接收由客户端设备传送的附加输入,所述附加输入是自由形式的自然语言用户输入;基于所述附加自然语言输入来确定所述参数的值;基于附加自然语言输入来确定可选参数的附加值;基于所述值和所述附加值二者来选择能够执行预期动作的特定第三方代理;以及传送包括所述值和所述附加值的第三方调用请求。传送是经由一个或多个网络接口而去往特定的第三方代理的。
此外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中一个或多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中,该指令被配置为使得执行任何上述方法。一些实施方式还包括存储计算机指令的一个或多个非暂时性计算机可读存储介质,所述计算机指令可由一个或多个处理器执行以执行任何上述方法。
应当理解,本文更详细描述的前述概念和附加概念的所有组合都被认为是本文公开的主题的一部分。例如,出现在本公开的最后的要求保护的主题的所有组合都被认为是本文公开的主题的一部分。
附图说明
图1是可以实现本文公开的实施方式的示例环境的框图。
图2A是图示根据本文公开的实施方式的示例方法的流程图。
图2B是更详细图示图2A的流程图中的框的一些实施方式的流程图。
图3是图示根据本文公开的实施方式的,可以由第三方代理执行的示例方法的流程图。
图4、图5和图6各自图示了根据本文公开的实施方式的,用户、客户端设备以及用户、与客户端设备相关联的自动化助理和第三方代理之间的示例对话。
图7图示了根据本文公开的实施方式的,附加客户端设备以及客户端设备的用户、与客户端设备相关联的自动化助理和第三方代理之间的示例对话。
图8图示了计算设备的示例架构。
具体实施方式
在某些情形下,为了经由自动化助理来调用特定的第三方(3P)代理,用户必须提供明确地调用该特定3P代理的输入。例如,为了调用名为“Hypothetical Agent(假想代理)”的“电影票购买”3P代理,用户必须知道要说出3P代理的“热词/短语”,诸如“Ordertickets with Hypothetical Agent(用假想代理订票)”。这样的明确调用要求用户起初知道哪个3P代理最适合用户的预期操作,并且将用户直接送至该3P代理以供经由与该3P代理的交互来得到该预期动作的尝试解决方案。
然而,通常是这样的情况:由用户直接调用的3P代理无法以用户期望的方式执行预期动作。这可能会浪费用户和计算资源,因为用户必须首先与3P代理交互,确定该3P代理不合适,然后尝试经由与另一3P代理的交互来执行预期动作。此外,通常是这样的情况:用户不知道各个3P代理的可用性,并且对于各个自动化助理接口而言,在经常受约束的自动化助理界面中明确地向用户提供可用的3P代理和关联功能的列表可能是不切实际地和/或不期望的。例如,一些自动化助理是“仅语音”,并且“读出”3P代理的和相关联的功能“的列表”对用户可能是不切实际的和/或不期望的。
各个实施方式使得用户能够在对话中与自动化助理相接触,并且通过该对话自动化助理可以:确定用户的预期动作;确定与预期动作相关联存储的参数的值;选择能够基于确定的值来实现预期动作的特定3P代理;并用确定的值调用该3P代理。因此,不同于要求用户以对3P代理的明确调用来开始,本文公开的实施方式作为替代在调用任何3P代理之前进行与用户的对话,并且在用确定的值来确定特定3P代理可以实现预期动作之后仅调用该特定3P代理。这些和其他实施方式可以减轻当用户明确地调用证明是错误的3P代理的3P代理时可能遇到的人和计算资源的浪费。此外,在调用3P代理时,自动化助理可以将确定的值传送到该3P代理,并且免除需要3P代理来要求这些值。这可以使得能够更快地经由特定3P代理实现预期动作,其可以节省各种计算资源(例如,在没有值的备置的情况下可能有必要的附加“来回”所消耗的网络流量)。
如本文所使用的,调用3P代理可以涉及将自动化助理对话(实际上或有效地)传输到3P代理。当对话传输到3P代理时,3P代理“指导”对话的实质,而自动化助理仅响应于一个或多个条件而接管,所述条件诸如:由3P代理终止(例如,响应于经由3P代理完成预期动作)、用户终止(例如,响应于用户提供指示期望终止3P代理会话的输入)、超时等。调用如本文所使用的3P代理可另外地或替选地包括与3P代理的网络通信以实现预期的动作,而无需3P代理直接引导该对话。例如,在由自动化助理确定预期动作的所有强制参数的值的情况下,自动化助理可以将这些值传输给3P代理,以使得3P代理执行预期动作,从3P代理接收3P响应内容——其指示该预期动作被执行和/或包括预期动作的执行的细节,然后可以向用户提供输出——其基于所接收到的3P响应内容(例如,确认执行了预期动作)。
作为本文公开的上述和其他实施方式的一个示例,假设用户期望执行购买2张“电影A”的成人电影票的预期动作。不同于用户需要最初指定经由其可以实现预期动作的3P代理,用户作为替代可以提供“Buy 2 movie tickets to Movie A(购买2张电影A的电影票)”的自然语言输入。自动化助理可以解析这样的输入,并将解析的输入映射到“购买电影票”的预期动作,其中“”的参数值为“2”,并且“电影名称”的参数的值为“电影A”(或相关联的标识符)。
自动化助理还可以确定为“购买电影票”预期动作而定义(例如,在API中定义)的附加强制参数——诸如“剧院位置”的参数,并且确定附加强制参数不是由自然语言输入指定的。作为响应,自动化助理可以用“what theater(什么剧院)”提示用户,接收“Baxter大街”的响应,然后确定“Baxter大街剧院”(或相关联的标识符)作为该参数的值。
自动化助理还可以识别可以执行预期动作“购买电影票”的候选3P代理,并且基于由每个3P代理提供的数据来确定每个3P代理是否可以针对特定的所确定的参数值来实现动作(例如,3P代理是否被认为是销售“Baxter Avenue”的票和/或具有可用的该剧院的“电影A”的票)。由每个3P代理提供的数据可以是静态的和/或动态的。当是动态的时,3P代理可以周期性地(或以其他规则或非规则间隔)提供更新的数据以供自动化助理考虑和/或自动化助理在对话的过程期间接触(例如,经由API通过网络)3P代理以获得一定实时数据供考虑。在某些情形下,自动化助理可以确定性地选择3P代理中可以针对特定的确定值实现预期动作的一个3P代理(例如,如果它是唯一的代理,或者如果它是精选的几个之一并且用户强烈偏好)——并且将对所选3P代理的调用请求与所确定的值一起传送。在某些其他情形下,如果多个3P代理可以用特定确定的值来实现预期动作,则自动化助理可以向用户呈现在那些3P代理中的至少一些之间的选择(例如,“Do you want to use 3P Agent 1or 3PAgent 2(您想使用3P代理1还是3P代理2)”)。在其他一些情形下,自动化助理可另外地或替选地向用户呈现特定于所呈现的3P代理并且还没有被用户指定的值以帮助用户来选择(例如,每个3P代理的票价,每个代理的用户评级)。此外,在其他一些情形下,实际上选择(可以用确定值来实现预期动作的多个3P代理中的)哪个3P代理以供呈现给用户作为选择可以基于特定于那些3P代理并且用户尚未指定的值。例如,如果用户尚未指定价格参数的值,则可以使用它。而且,例如,可以利用3P代理的用户和/或其他用户的评级。
在一些实施方式中,用户与3P代理和与自动化助理的交互可以经由公共自动化助理界面来发生。例如,对于基于语音的自动化助理界面,与自动化助理和3P代理的交互可以经由基于语音的交互来实现(尽管所提供的输出的“声音”可以在两者之间变化)。此外,例如,对于图形自动化助理界面,用户可以在与自动化助理和3P代理的交互期间保持在相同的对话界面内(尽管图形图标和/或其他标记可以指示何时调用3P代理)。这可以使得用户能够与各种3P代理进行交互和/或能够实现跨各种服务业务的各个预期动作,而无需用户在多个接口之间切换。
现在转向图1,图示了可以实现本文公开的技术的示例环境。该示例环境包括客户端设备106、自动化助理110、和多个第三方(3P)代理140a-n。例如,客户端设备106可以是独立的语音激活的扬声器设备、台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、和/或包括计算设备的用户可穿戴装置(例如,用户的具有计算设备的手表、用户的具有计算设备的眼镜、虚拟现实或增强现实计算设备)。可以提供附加和/或替选的客户端设备。
虽然图1中图示了与客户端设备106分离的自动化助理110,但是在一些实施方式中,自动化助理110的全部或方面可以由客户端设备106实现。例如,在一些实施方式中,输入处理引擎112可以由客户端设备106实现。在自动化助理110的一个或多个(例如,全部)方面由远离客户端设备106的一个或多个计算设备实现的实施方式中,客户端设备106和自动化助理110的那些方面经由诸如广域网(WAN)(例如互联网)的一个或多个网络进行通信。
尽管结合自动化助理110图示了仅一个客户端设备106,但是在许多实施方式中,自动化助理110可以是远程的并且可以与多个用户的多个客户端设备中的每一个对接。例如,自动化助理110可以经由不同的会话管理与多个设备中的每一个的通信,并且可以并行地管理多个会话。例如,一些实施方式中,自动化助理110可以例如使用运行适合于处置来自多个用户的大量请求的软件的服务器群或高性能计算机的集群被实现为采用云基础设施的基于云的服务。然而,为了简单起见,本文中许多示例是关于单个设备106描述的。
自动化助理110与3P代理140A-N分离,并且经由诸如WAN的一个或多个网络与3P代理140A-N通信。在许多实施方式中,3P代理140A-N中的一个或多个(例如,全部)均由与管理自动化助理110的一方分离的相应方管理。
3P代理140A-N均可以直接地或间接地提供用于存储在3P代理数据库152中的数据。例如,给定的3P代理的数据可以定义能够由3P代理解析的预期动作。此外,给定3P代理的数据可以为每个预期动作定义值,该值可由该3P代理处置以用于针对该预期动作定义的多个参数。在一些实施方式中,自动化助理110和/或其他组件可以定义预期动作、该预期动作中的每一个的参数、以及可为该参数中的每一个定义的可接受值。例如,这样的准则可以经由自动化助理110所维护的API来定义。然后,3P代理中的每一个可以向自动化助理110和/或其他组件提供(例如,通过WAN传送)其预期动作及其针对预期动作的参数的值,该自动化助理110和/或其他组件可以验证数据并将其存储在3P代理数据库152中。在一些实施方式中,3P代理140A-N中的一个或多个可以动态地为各个参数的值提供更新(例如,响应于库存变化、对功能的更改、服务产品的更改而提供)。而且,在一些实施方式中,除了从3P代理数据库152中获得值之外或者作为其替代,自动化助理110还可附加地或替选地执行向3P代理140A-N中的一个或多个的对各个值的实时请求152。
作为一个示例,对于“餐厅预订”预期动作,可以定义强制参数,诸如“人数”、“位置”、和“时间”。3P代理可以提供指示可执行“餐厅预订动作”的强制参数的可用值的数据。例如,它可以提供指示其服务的每个位置的值,并且对于这些位置中的每一个,还提供指示其当前是否可以为特定数目的人(例如,特定数量和/或数量范围)服务预期动作和/或以特定数目的次数(例如,特定次数和/或次数范围)服务预期动作的值。另外,例如,对于“餐厅预订”的预期动作,可以定义可选参数,诸如“餐桌类型偏好”(例如,卡座(booth)、餐桌(table)、高台餐桌(high top))、“座位位置偏好”(例如,室内、室外、窗口)等。3P代理同样可以提供指示这些可选参数的可用值(如果有的话)的数据,其中该值中的一个或多个可选地依赖于其他可选值和/或强制值。例如,3P代理可以提供指示其是否可以服务具有“餐桌类型偏好”的预期动作的数据和/或指示什么餐桌类型可用(可选地与次数、人数、和/或其他参数的值配对)。作为另一个示例,对于“车辆运输”预期动作,可以定义强制参数诸如“始发位置”和“出发时间”,并且可以定义可选参数诸如“目的地位置”、“车辆大小”、“价格”等。3P代理可以提供指示其可执行“车辆运输”预期动作的强制参数和可选参数的可用值的数据。例如,它可以提供指示其服务的地理区域的值作为“起始位置”和“目的地位置”参数的值。
可以由3P代理指示的预期动作可以跨越各种相异的服务业务。如本文所使用的,服务业务是粗粒度服务业务,其本身可以具有数个更精细粒度的子业务。例如,“旅游”是服务业务,它本身具有诸如航空旅行、汽车旅行、火车旅行、住宿等的数个子业务。此外,例如,“交互式游戏”是服务业务,其本身具有诸如“智力百科(trivia)游戏”、“角色扮演游戏”等的数个子业务。因此,可由3P代理140A-N执行并且可由自动化助理110调用的预期动作可以来自大量(例如,10+)粗粒度服务业务中的任何一个。
自动化助理110包括输入处理引擎112、本地内容引擎130、3P代理引擎120、和输出引擎135。在一些实施方式中,可以省略、组合、和/或在与自动化助理110分离的组件中实现自动化助理110的一个或多个引擎。此外,为简化起见,自动化助理110可以包括本文未图示的附加引擎。
自动化助理110从客户端设备106接收用户输入的实例。例如,自动化助理110可以以流送音频记录的形式接收自由形式的自然语言语音输入。响应于从捕获客户端设备106的用户的说出的输入的客户端设备106的麦克风接收到的信号,客户端设备106可以生成流送音频记录。作为另一个示例,在一些实施方式中,自动化助理110可以接收自由形式自然语言键入的输入和/或甚至结构化(非自由形式)输入。在一些实施方式中,用户输入可以由客户端设备106生成和/或响应于客户端设备106的用户对自动化助理110的明确调用而被提供给自动化助理110。例如,该调用可以是客户端设备106对用户的某些语音输入(例如,自动化助理110热词/短语,例如“Hey Assistant(嗨,助理)”)的检测,与硬件按钮和/或虚拟按钮的用户交互(例如,对硬件按钮的轻敲,对由客户端设备106显示的图形界面元素的选择)和/或其他特定用户接口输入。
响应于接收来自客户端设备106的用户输入的实例,自动化助理110提供输出的实例。例如,输出的实例可以是:由设备106可听见地呈现的音频(例如,经由客户端设备106的扬声器输出)、由设备106图形呈现的文本和/或图形内容(例如,经由客户端设备106的显示器来渲染)等。如本文所述,输出的某些实例可以基于由自动化助理110生成的本地响应内容(可选地利用由管理自动化助理110的相同实体管理的一个或多个外部组件来生成),而输出的其他实例可以基于由3P代理140A-N中的所选的一个3P代理生成的3P响应内容。
自动化助理110的输入处理引擎112处理经由客户端设备106接收的自然语言输入和/或其他用户输入,并生成注释输出以供自动化助理110的一个或多个其他组件使用,该其他组件诸如本地内容引擎130和/或3P代理引擎120。例如,输入处理引擎112可以处理由用户经由客户端设备106的一个或多个用户接口输入设备生成的自然语言自由形式的输入。生成的注释输出包括自然语言输入的一个或多个注释以及可选地包括自然语言输入的一个或多个(例如,全部)词项。作为另一示例,输入处理引擎112可以附加地或替选地包括接收语音输入的实例(例如,以数字音频数据的形式)的语音转文本模块,并且将语音输入转换成包括一个或多个文本词或短语的文本。在一些实施方式中,语音转文本模块是流送语音转文本引擎。语音转文本模块可以依赖于一个或多个存储的语音转文本模型(也称为语言模型),其均可以对语言中音频信号和语音单元之间的关系连同该语言中的词序列一起建模。
在一些实施方式中,输入处理引擎112被配置为识别和注释自然语言输入(例如,键入输入和/或从音频输入转换的文本)中的各种类型的语法信息。例如,输入处理引擎112可以包括被配置为用其语法角色来啊注释词项的词性标注器。例如,词性标注器可以用诸如“名词”、“动词”、“形容词”、“代词”等的词项的词性来标记每个词项。例如,在一些实施方式中,输入处理引擎112可以附加地和/或替选地包括被配置为确定自然语言输入中的词项之间的句法关系的依存性解析器。例如,依存性解析器可以确定哪些词项修改句子的其他词项、主语和动词等等(例如,解析树)-并且可以对这样的依存性进行注释。
在一些实施方式中,输入处理引擎112可以附加地和/或替选地包括实体标注器,其被配置为在一个或多个片段中注释实体引用,诸如对人、组织、位置等的引用。实体标注器可以以高粒度水平来注释对实体的引用(例如,以使得能够识别对诸如人的实体类的所有引用)和/或以较低粒度水平来注释对实体的引用(例如,以使得能够识别对诸如特定的人的特定实体的所有引用)。实体标注器可以依赖于自然语言输入的内容来解析特定实体和/或可以可选地与知识图或其他实体进行通信以解析特定实体。
在一些实施方式中,输入处理引擎112可以附加地和/或替选地包括共指解析器,其被配置为基于一个或多个上下文线索来对相同实体的引用进行分组或“聚类(cluster)”。例如,可以使用协议解析器来将在用户输入的实例中词项“它”解析为对在用户输入的前一实例中的“电影A”的在前提及。
在一些实施方式中,输入处理引擎112的一个或多个组件可以依赖于来自输入处理引擎112的一个或多个其他组件的注释。例如,在一些实施方式中,命名实体标记器可以在注释对特定实体的所有提及时依赖于来自共指解析器和/或依存性解析器的注释。此外,例如,在一些实施方式中,共指解析器可以在聚类对相同实体的引用时依赖于来自依存性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,输入处理引擎112的一个或多个组件可以使用特定自然语言输入之外的相关的先前输入和/或其他相关数据来确定一个或多个注释。
输入处理引擎112可以尝试辨别用户输入的语义或含义,并将用户输入的语义指示提供给本地内容引擎130和/或3P代理引擎120以供那些引擎使用。输入处理引擎112可以依赖于一个或多个存储的语法模型来将文本(或其他输入)映射到特定动作,并且识别约束这样的动作的执行的属性,例如对这样的动作的输入变量。
本地内容引擎130可以在接收到的用户输入与“本地动作”(与3P代理动作相反)相关联时,生成对该用户输入的响应。在一些实施方式中,输入处理引擎112确定用户输入是否与本地动作或3P代理预期动作相关联。本地内容引擎130可以与输入处理引擎112结合来工作,并且执行由输入处理引擎112提供的解析文本(例如,动作和动作参数)所指示的一个或多个动作。对于本地动作,本地内容引擎130可以生成本地响应内容并将该本地响应内容提供给输出引擎135,以供经由设备106提供用于呈现给用户的相应输出。本地内容引擎130可以利用一个或多个存储的本地内容模型154来用于生成本地内容和/或执行其他动作。例如,内容模型154可以包含用于创建本地响应内容的各个规则。在一些实施方式中,本地内容引擎130可以在生成本地响应内容时与一个或多个其他“本地”组件通信,该其他“本地”组件诸如由管理自动化助理110的实体管理的搜索引擎。
输出引擎135向客户端设备106提供输出的实例。输出的实例可以基于本地响应内容(来自本地内容引擎130)和/或3P响应内容(例如,当自动化助理110充当中介时来自3P代理140A-N中的一个)。在一些实施方式中,输出引擎135可以包括将响应内容的文本分量转换为音频格式的文本转语音引擎,并且由输出引擎135提供的输出处于音频格式(例如,作为流送音频)。在一些实施方式中,响应内容可以已经处于音频格式。在一些实施方式中,输出引擎135附加地或替选地提供文本回复内容作为输出(可选地,用于由设备106转换为音频)和/或提供其他图形内容作为用于由客户端设备106图形显示的输出。
3P代理引擎120包括参数模块122、代理选择模块124、对话模块126、和调用模块128。在一些实施方式中,3P代理引擎120的模块可以被省略、组合、和/或实现在与3P代理引擎120分离的组件中。此外,为简单起见,3P代理引擎120可以包括本文未图示的附加模块。
当由客户端设备106提供的用户输入与3P预期动作相关联时,参数模块122可以确定该用户输入是否包括与该预期操作相关联地存储(例如,存储在数据库152中)的任何参数的值,并且如果是,则将这些值与用户的预期动作相关联地存储。参数模块122可以与对话模块126进一步交互以生成提示以要求与预期动作的任何未指定的强制参数相关的进一步的用户输入。可以提供由对话模块126生成的任何提示以供由输出引擎135呈现给用户,以及接收进一步的响应用户输入。进一步的用户输入均可以由参数模块122来分析(可选地按照由输入处理引擎112所注释的),以确定那些输入是否包括参数的值,并且如果是,则将那些值与用户的预期动作相关联地存储。
代理选择模块124利用由参数模块122确定的值从与预期动作相关联存储(例如,在数据库152中)的3P代理的群组中选择特定3P代理以在预期动作的执行时利用。代理选择模块124可以附加地或替选地利用其他准则来选择特定3P代理,并且可以可选地与对话模块126交互以生成提示以在选择3P代理时要求进一步的用户输入。可以提供由对话模块126生成的任何提示,以供由输出引擎135呈现给用户,以及接收进一步的响应用户输入。进一步的用户输入均可以由代理选择模块124分析(可选地,按照由输入处理引擎112注释的)以确定特定的3P代理。
在生成与参数模块122和/或代理选择模块124交互的提示时,对话模块126可以利用这些模块所寻求的参数和/或3P代理的属性。此外,对话模块126可以在生成提示并经由客户端设备106与用户交互时利用来自输入处理引擎112的一个或多个语法模型、规则、和/或注释。
调用模块128向由代理选择模块124选择的3P代理140A-N中的特定3P代理传送包括由参数模块122确定的可选参数和/或强制参数的调用请求。所传送的调用请求调用该特定3P代理。如本文所使用的,调用3P代理可以指代将客户端设备106的用户与自动化助理110之间的对话(实际上或有效地)传输到3P代理。调用3P代理可以附加地或替选地包括自动化助理110与3P代理的网络通信以实现预期动作,而无需3P代理直接引导该对话。
如本文所述,在某些情形下,当对话被有效地传输到特定3P代理时,自动化助理110仍然可以充当中介。例如,在充当用户的自然语言输入是语音输入的中介时:自动化助理110的输入处理引擎112可将该语音输入转换为文本;自动化助理110可以将文本(以及可选地将来自文本输入处理引擎112的注释)传输到3P代理,并从3P代理接收3P响应内容;并且输出引擎135可以提供基于3P响应内容的输出以经供由客户端设备106呈现给用户。另外,例如,在充当中介时,自动化助理110还可以附加地或替选地分析用户输入和/或3P响应内容以确定是否应当终止与3P代理的对话、传输到替选的3P代理等。如本文还描述的,在某些情形下,对话可以实际上被传输到3P代理(无需自动化助理110在传输时充当中介),并且在发生一个或多个条件时传输回自动化助理110。
3P代理140A-N中的每一个可以包括3P上下文参数引擎、3P内容引擎、和/或其他引擎。此外,在许多实施方式中,3P代理可以在生成3P响应内容时访问各个存储的模型和/或其他资源(例如,其自己的语法模型和/或内容模型)。
现在转到图2A、图2B和图3,描述可以由图1的环境的组件执行的方法的示例。
图2A是图示根据本文公开的实施方式的示例方法200A的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,例如自动化助理110的一个或多个组件。此外,当以特定顺序示出方法200的操作时,这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框250处,系统接收用户输入。在一些实施方式中,在框250处接收的用户输入是处于自由形式的自然语言输入。例如,系统可以基于由客户端设备的物理键盘或虚拟键盘感测到的用户输入来接收处于客户端设备所生成的文本的形式的键入输入。此外,例如,系统可以基于由客户端设备的换能器感测到的语音输入来接收处于支持语音的客户端设备所生成的流送音频数据的形式的语音输入。在那些示例中的一些中,系统可以可选地将语音输入转换为文本。例如,系统的语音转文本模块可以使用语音转文本模型——诸如有限状态解码图——将语音输入转换为文本。
在框252处,系统确定所接收的用户输入是否指示第三方(3P)预期动作。例如,系统可以解析接收到的自然语言输入的文本(或从接收的音频自然语言输入转换的文本),并且确定被解析的文本是否映射到任何3P预期动作。例如,系统可以基于文本中包括的词项/短语是否匹配与3P预期动作相关联的词项/短语来确定解析文本是否映射到任何3P预期动作。此外,例如,系统可以确定从文本导出的一个或多个实体是否匹配与3P预期动作相关联地存储的一个或多个实体。
如果系统在框252处确定未指示3P预期动作,则系统进行到框254、256和258。在框254处,系统生成本地响应内容而不调用第三方代理。例如,系统可以利用系统的本地语法模型和/或本地内容模型来生成本地响应内容。在框256处,系统提供基于本地响应内容的输出。例如,该输出可以是本地响应内容或本地响应内容的转换(例如,文本转语音转换)。该输出被提供用于经由客户端设备的呈现(例如,可听或图形呈现)。在框258处,系统等待附加语音输入,并且在接收附加语音输入时返回到框250。
如果系统在框252的迭代中确定指示了3P预期动作,则系统进行到框260。在框260处,系统确定是否已经针对与预期动作相关联地存储所有参数将值解析为强制性的。在框260的第一次迭代处,这涉及确定在框250的最近迭代和/或框250的一个或多个先前迭代处接收的用户输入(例如,先前的用户输入,其提供了值但尚未指示预期动作)是否指示强制值。框260还可以涉及基于存储的用户偏好和/或其他数据来推断一个或多个强制参数的值。在框260的进一步的迭代处,还将考虑在框264处提供的进一步的用户输入(下面描述)。
作为框260的一个示例,假设在框250的最近迭代中接收到“Purchase 2 adulttickets for that movie for tonight(购买2张今晚那场电影的成人票)”的自然语言输入,之前是在框250的前一迭代中“Tell me about Movie A(告诉我关于电影A的事)”的自然语言输入,并且框254、256和258被调用以用于框250的前一迭代来提供关于虚构的“电影A”的本地内容。基于“购买2张今晚电影A的成人票”的自然语言输入,可以在框252处确定“购买电影票”的3P预期动作。在框260处,系统可以利用该自然语言输入来确定“成人票数”的强制参数的值“2”。该系统还可以利用该自然语言输入和对框250的在前迭代的先前自然语言输入来确定“电影名称”的强制参数的值“电影A”(或相关联的标识符)(例如,使用共指解析来将“that movie(那场电影)”解析为“电影A”)。该系统可以进一步确定,对于“购买电影票”的3P预期动作,存在“剧院位置”的附加强制参数-并且“剧院位置”强制参数的值尚未解析。
如果系统在框260处确定尚未对于所有强制参数解析值,则系统进行到框262和264。在框262处,系统提供要求尚未解析的一个或多个强制参数的值的提示以用于呈现给用户。例如继续前一段的示例,系统可以生成“what theatre(什么剧院)”的提示以要求“剧院位置”的强制参数的值。在框264处,系统响应于提示而接收进一步的用户输入。例如继续相同的示例,系统可以接收“Megaplex”的自由形式的自然语言输入。然后,系统进行回到框260。例如,在框260的下一次迭代处,系统可以将“Megaplex”的输入解析到特定的剧院位置(例如,基于文本和可选基于用户的位置),并且确定所有强制参数都已经解析。应当理解,在一些情况下,将执行对框260、262和264的多次迭代,并且每次迭代可涉及提示、接收、和/或解析与一个或多个对应的强制参数相关联的值。
如果系统在框260处确定已经为所有强制参数解析了值,则系统进行到框270。在框270处,系统确定特定3P代理是否可以从均可以执行预期动作的3P代理的群组中选择。在一些实施方式中,系统可以基于比较以下来从选择中消除该群组中的一个或多个3P代理:基于框250和/或框264的一次或多次迭代处的用户输入来确定的参数的值与为可以执行预期动作的每个3P代理定义的参数的相应值。例如,对于“剧院位置”的强制参数,可以确定“Megaplex”的值,并且可以基于给定3P代理的“剧院位置”参数不包括“Megaplex”的值来从选择中消除给定的3P代理。
虽然关于强制参数提供了示例,但是在许多实施方式中,系统可以附加地或替选地利用为预期动作定义的一个或多个可选参数来消除一个或多个3P代理。例如,可选参数可以基于存储的用户偏好来推断和/或可以在系统的提示中要求和/或由用户经由用户输入在框250和/或框264的一个或多个迭代处自由提供。例如,假设在框262处的提示是“whattheatre”(以要求“剧院位置”的强制参数的值),并且在框264处的响应用户输入是“Megaplex–the 7:00 showing(Megaplex-7:00放映)”。这样的响应用户输入可以用于为“电影时间”的可选参数确定“7:00”的值,即使没有明确要求。此外,在框270处(和/或下面描述的框280处),可以利用可选参数。例如,在框270处,可以利用“7:00”来消除具有“电影时间”参数的值的3P代理,该“电影时间”参数指示在“Megaplex”不具有“电影A”在该时间的库存。
在框270处可以另外地或替选地利用其他准则来确定特定3P代理是否可以从均可以执行预期动作的3P代理群组中选择。例如,如果确定多个3P代理可以利用确定的参数值来执行预期动作,则系统可以基于一个或多个准则来可选地选择单个特定3P代理。例如,系统可以基于用户先前隐含地或明确地指示特定3P代理超过其他可用3P代理的偏好来选择该特定3P代理。此外,例如,系统可以基于特定3P代理的评级(例如,基于多个用户的反馈和/或使用)、基于利用特定3P代理完成预期动作的价格等来另外或替选地选择特定3P代理。
如果系统在框270处确定不能选择特定3P代理,则系统进行到框272。在框272处,系统提供要求用户从多个选项中选择3P代理的提示以用于向用户呈现。呈现给用户的多个选项包括“未被消除的”3P代理中的一个或多个。换言之,3P代理中的一个或多个可以用特定所确定的值执行预期动作。作为一个示例,系统可以提供向用户呈现在两个或更多个这样的3P代理之间选择的提示(例如,“Do you want to use 3P Agent 1 or 3P Agent 2”)。在一些实施方式中,系统可以附加地或替选地在提示中包括特定于所呈现的3P代理并且尚未被用户指定的值以帮助用户选择。例如,不同于明确识别多个3P代理中的每一个,该提示只可以识别在多个3P代理之间不同的参数值(例如,“One can do it for$15 by Mondayand the other can do it for$12 by Tuesday,which one?(一个可以花$15在星期一前完成,而另一个可以花$12在星期二前完成,哪一个?”)。而且,在一些实施方式中,实际上选择用于在提示中包括的3P代理(可以用所确定的值实现预期动作的3P代理)可以基于特定于那些3P代理并且尚未被用户指定的值。例如,在用户没有指定价格参数的值的情况下,可以利用它来选择两个特定的3P代理以用于在提示中提供而不选择也可以用所确定的值执行预期动作的其他可用3P代理。
在框274处,响应于框272的提示,系统接收进一步的用户输入。然后,系统进行回到框270以确定是否可以虑及进一步的用户输入来选择特定3P代理。例如,在框274处,系统可以接收自由形式的自然语言输入,其直接(例如,包括其名称)或间接地(例如,指定其值)指示在框272的提示中呈现的3P代理之一。在框270处,系统然后可以基于所指示的3P代理在框274的用户输入中被指示来选择所指示的3P代理。在一些情况下,可以执行框272和274的多次迭代。例如,在框272的第一次迭代处,提示可以是“two 3P agents can pick youup in less than 10 minutes and estimate a cost of$15;another will pick you upin 20 minutes and estimates a cost of$10(两个3P代理可以在不到10分钟内接你并且估计花费$15;另一个会在20分钟内接你并且估计花费$10”。作为响应,并且在框274的第一次迭代处,用户输入可以是“one of the less than 10minutes(小于10分钟的一个)”。在框272的下一次迭代处,提示然后可以是“OK.3P agent A has a rating of 4.0 and 3PAgent B has a rating of 3.9,which one?(好。3P代理A的评级为4.0,并且3P代理B的评级为3.9,哪一个?)”作为响应,在框274的第二次迭代处,用户输入可以是“3P Agent B(3P代理B)”,系统可以在块270利用该用户输入来选择“3P代理B”。
如果系统在框270的迭代处确定可以选择特定3P代理,则系统可以进行到框280。在一些实施方式中,系统可以在进行到框280之前首先提示用户确认用户期望利用特定3P代理(例如,如果未执行框272和274的迭代和/或用户未以其他方式指示进行的期望)。在那些实施方式中,系统可以在进行到框280之前响应于提示而请求肯定的用户输入。在其他实施方式中,系统可以自动进行到框280,而不首先提示用户确认。
在框280处,系统向在框270处选择的3P代理传送调用请求。例如,系统可以通过一个或多个网络传送调用请求,并且可以可选地利用API。在一些实施方式中,调用请求包括如上所述来确定的参数的值。在一些实施方式中,调用请求还可选地包括预期动作(例如,当所选择的3P代理可以执行多个预期动作时)。
在框282处,响应于在框280处传送调用请求,系统从3P代理接收3P响应内容。例如,系统可以通过一个或多个网络接口接收3P响应内容,并且可以可选地利用API。3P响应内容响应于调用请求,并且可以由3P代理利用其自己的语义处理引擎、其自己的语义模型、和/或其他3P代理特定组件生成。在一些实施方式中,3P响应内容还基于在块280处与调用请求一起提供的参数的值。
在框284处,系统提供基于3P响应内容的输出。例如,该输出可以是3P响应内容或3P响应内容的转换(例如,文本转语音转换)。该输出被提供以用于经由客户端设备呈现(例如,可听或图形呈现)。
在框286处,系统响应于在框284处提供的输出而等待来自用户的附加输入。
在框288处,系统接收附加输入。例如,系统可以接收处于自由形式自由语言输入的附加输入。
在框290处,系统确定所接收的附加输入是否指向在框280的最近迭代处调用的3P代理。如果是,则系统传送对应的内容(例如,所接收的附加输入、其转换、和/或其注释)到3P代理。然后,系统进行到框282的另一次迭代,并且从3P代理接收响应于在框292处的传送的进一步的响应内容。可以执行框282、284、286、288、290和292的多个迭代以使得用户能够有效地进行与3P代理的对话,同时自动化助理充当中介。如本文所述,在一些实施方式中,系统实际上可以在框280处将对话传输到3P代理,并且一旦对话被传输回系统就可以返回到框250(和/或其他框)。在那些实施方式的一些中,可以省略框282、284、286、288、290、292和/或294。
在一些实施方式中,在框290处,系统可以基于在框280处传送的调用请求和/或在框282处接收到的3P响应内容来确定所接收的附加输入是否指向3P代理。例如,在框280处,系统可以传送具有所有强制参数的调用请求和/或请求3P代理执行预期动作而无需3P代理进行对话的调用请求。在这样的示例中,系统可以在框290处作为结果确定附加输入不指向3P代理。作为另一个示例,在框282处接收到的3P响应内容可以指示3P代理是否期待指向3P代理的进一步语音输入。例如,3P响应内容可以指示是否其是请求进一步的3P代理相关语音输入的“询问”/“提示”(在这种情况下,期待指向3P代理的进一步输入),或者替选地,是否其是不期待进一步的3P代理相关语音输入的“告诉”/“解决方案”(在这种情况下,不期待指向3P代理的进一步输入)。
在一些实施方式中,即使系统正在期待指向所选择的3P代理的附加输入,取决于在框288处接收的实际输入,尽管如此它仍然可以确定所接收的附加输入不指向3P代理。例如,系统可以确定诸如“停止”、“退出”、“与另一3P代理说话”、“不同3P代理”等的输入不指向所选择的3P代理。
如果在框290处,系统确定所接收的附加输入不指向3P代理,则系统进行到框294。在框294处,系统确定所接收的附加输入是否指示期望切换到不同的3P代理。如果是,并且如果可以执行具有确定值的预期动作的附加3P代理可用,则系统可以进行到框280并将调用请求传送到该附加3P代理之一。在框280处,该系统可以包括将确定的值与对该附加3P代理的调用请求包括在一起。此外,在一些实施方式中,可以在与3P代理交互期间确定附加值,并且也在对附加3P代理的调用请求中提供那些值。选择多个附加3P代理中的哪一个以用于传送附加调用请求可以基于附加输入本身(例如,如果其通过名称或特性引用附加3P代理之一)和/或基于其他因素(例如,如果附加输入是“next agent(下一个代理)”,则选择下一个最流行的3P代理)。
如果在框294处系统确定所接收的附加输入不指示期望切换到不同的3P代理,则系统进行到框252。
图2B是图示图2A的方法200的某些框的一些实施方式的示例200B的流程图。为了方便起见,流程图的操作是参考执行该操作的系统来描述的。该系统可以包括各种计算机系统的各种组件,诸如3P代理引擎120和/或自动化助理110的一个或多个其他组件。此外,当示例200B的操作以特定顺序示出时,这不意味着限制。可以重新排序、省略或添加一个或多个操作。
示例200B提供了图2A的框252、260、270和280的一些特定示例。
图2B的框252A是图2A的框252的特定示例。在框252A处,系统基于用户输入来选择3P预期动作。
图2B的框260A、260B和2660C是图2A的框260的特定示例。在框260A处,系统识别在框252A处选择的预期动作的强制参数和可选参数。
在框260B处,系统确定并存储在框252A接收的用户输入中指示的参数——如果有的话——的值。
在框260C处,系统确定在框260B的最近迭代处是否已经确定了预期动作的所有强制参数。如果没有,则系统进行到图2A的框262和264,然后进行回到框260B以确定并存储在框264中提供的进一步的用户输入中的参数(如果有的话)。
如果在框260C的迭代处已经确定了预期动作的所有强制参数,则系统进行到框270A。在框270A处,系统基于在框260B的一次或多次迭代处确定和存储的值、过去的用户交互、和/或其他准则来确定用于预期动作的单个3P代理是否可解析。如果否,则系统进行到图2A的框272和274,然后进行回到框270A以确定框274中提供的进一步的用户输入是否使得能够解析单个3P代理。
如果在框270A的迭代处,单个3P代理是可解析的,则系统进行到框280A。在框280A处,系统向单个3P代理传送包括在块260B的一次或多次迭代处确定和存储的参数的调用请求。然后,系统进行到图2A的框282。
图3是图示根据本文公开的实施方式的,可以由第三方代理执行的示例方法300的流程图。该系统可以包括各种计算机系统的各种组件,诸如3P代理140A-N之一中的一个或多个组件。此外,虽然方法300的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。
在框352处,系统从自动化助理接收调用请求。调用请求可以包括预期动作(例如,当系统可以执行多个预期动作时)、预期动作的参数的值、和/或其他数据。在一些实施方式中,调用请求可以指示系统应当有效地或实际地接管该对话。如果调用请求指示系统应当实际接管对话,则系统可以建立与对应的客户端设备的直接网络通信会话。如果调用请求指示系统应当有效地接管对话,则系统可以在仍然与提供调用请求的组件和/或相关组件通信的同时接管该对话。
在框354处,系统基于包括在调用请求中的参数的值——诸如强制参数和/或可选参数的值——来生成响应内容。
在框356处,系统提供响应内容。例如,如果调用请求指示系统应当有效地接管对话和/或应当仅执行预期动作而不进行对话,则系统可以将响应内容传送到发送调用请求的组件(或相关组件)。而且,例如,在调用请求指示系统应当实际接管对话的情况下,系统可以将响应内容传送到对应的客户端设备。
在框358处,系统接收进一步的内容,该内容回复框356处提供的响应内容。例如,进一步的内容可以包括:响应于响应内容而提供的用户输入、对该用户输入的转换、和/或该用户输入的注释。例如,在自动化助理或其他组件充当中介的情况下,则自动化助理可提供该用户输入的转换和/或该用户输入的注释。
在框360处,系统基于接收到的框358的进一步的内容来生成进一步的响应内容。
在框362处,系统提供在框360处生成的进一步的响应内容。然后,系统可以可选地返回到框358并执行框358、360和362的附加迭代。应当理解,在一些实施方式中,当直到和进行对话时,系统可以执行框358、360和362的多次迭代。响应于满足一个或多个条件(例如,预期动作的执行),系统可以退出方法300,并且可以可选地向提供框352的调用请求的组件传送通信,以指示系统正在退出方法300。
框358、360和362在图3中以虚线图示以指示它们可能在某些情形下可能不被执行。例如,如在一些实施方式中所描述的,系统可以响应于框352的调用请求来执行预期动作而在框354处生成指示已经执行预期动作的响应内容,在框356处提供响应内容,然后不接收与该调用请求相关联的进一步的内容。
图4、图5和图6均图示了用户101、支持语音的客户端设备406、以及可能在用户101、与客户端设备406相关联的自动化助理和第三方代理之间发生的对话的示例。客户端设备406包括一个或多个麦克风和一个或多个扬声器。图1的自动化助理110的一个或多个方面可以在客户端设备406上和/或与客户端设备406进行网络通信的一个或多个计算设备上实现。因此,为了便于说明,在图4、图5和图6的描述中引用了自动化助理110。
在图4中,用户提供“购买2张今晚电影A的成人票(Buy 2 adult tickets forMovie A for tonight)”的说出的输入480A。与说出的输入相对应的语音输入由设备606生成并提供给自动化助理110(例如,作为流送语音输入)。自动化助理110可以将语音输入转换为文本,并且确定该文本指示“购买电影票”的预期动作。自动化助理110还可以确定该文本指示“成人票数”参数的“2”的值,“电影名称”参数的“电影A”(或相关联的标识符)的值。
自动化助理110还可以确定针对未由说出的输入480A指定的“购买电影票”预期动作定义的“剧院位置”的附加强制参数。作为响应,自动化助理110可以生成并提供提示482A“什么剧院(what theater)”来要求强制参数的值。
响应于响应输出端482A,用户提供“Baxter Avenue”的进一步的说出输入480B。与说出的输入相对应的语音输入由设备606生成并提供给自动化助理110。自动化助理110可以将语音输入转换为文本,并且基于该文本来确定“Baxter Avenue剧院”(或相关联的标识符)以作为“剧院位置”强制参数的值。
自动化助理110还可以确定两个3P代理(“3P1”和“3P2”)能够执行具有“2”、“电影A”和“Baxter Avenue剧院”的值的“购买电影票”预期动作。在一些实施方式中,自动化助理110可以基于所选的3P代理能够执行具有所确定的值的预期动作的而其它较大群组不能来从可以执行“购买电影票”预期动作的较大3P代理群组中选择那些3P代理。
自动化助理110还生成并提供识别那些所选的3P代理的提示482B以及针对3P代理中的每一个的附加未指定参数(价格)的值。
响应于响应输出482B,用户提供“我将使用3P2(I’ll use 3P2)”的进一步的说出的输入480C。与说出的输入相对应的语音输入由设备606生成并提供给自动化助理110。自动化助理110可以将该语音输入转换为文本,并且基于该文本来确定3P代理3P2被选择。然后,自动化助理110可以向3P代理3P2发送调用请求连同确定的参数值。
然后,3P代理3P2有效地或实际地接管(即,引导)对话,并且基于由3P代理3P2生成的响应内容来提供提示482C。提示482C可以由3P代理3P2直接提供和/或经由自动化助理110提供。
响应于响应输出482B,用户提供“购买7:00的票(Buy the 7:00 tickets)”的进一步的说出的输入480C。与说出的输入相对应的语音输入由设备606生成,并提供给自动化助理110(然后将其和/或转换转发给3P代理)和/或直接向3P代理3P2提供。
3P代理3P2基于说出的输入480D(和/或其转换)来生成进一步的响应内容,并且基于该响应内容来提供响应输出482D。然后,对对话的直到被返回到自动化助理110。
然后,用户提供“在假想咖啡馆预订5:30的2人桌(Book a table for 2 at 5:30at Hypothetical Café)”的说出的输入480E。与说出的输入相对应的语音输入由设备606生成并提供给自动化助理110。自动化助理110可以将该语音输入转换为文本,并且确定该文本指示“餐厅预订”的预期动作。自动化助理110还可以确定该文本指示预期动作的所有强制参数。此外,自动化助理110可以自动选择特定3P代理来调用执行具有参数的预期动作。例如,可以基于作为仅有的可以执行预期动作的3P代理或者基于用户动作和/或指示特定3P代理为预期动作的优选的输入来选择特定3P代理。响应于调用,特定3P代理执行预期动作,并且将响应内容传送到确认执行和/或其他数据的自动化助理110。然后,自动化助理110提供响应输出482E,其指示由特定3P代理执行的预期动作和由该3P代理提供的附加数据(“电子邮件确认正在发送中(Email confirmation is on its way)”)。
在图5中,说出的输入580A与说出的输入480A(图4)相似,但也没有指定“电影名称”的强制参数。作为响应,自动化助理提供要求“剧院位置”和“电影名称”参数二者的值的提示582A。
然后,用户提供指定两个参数的值的说出的输入580B。自动化助理110确定:在多个“购买电影票”3P代理中,3P代理3P1是能够用基于说出的输入580A和580B确定的值执行预期动作的唯一3P代理。自动化助理110提供指示该信息的输出582B,并指示用户将被送至3P代理3P1。在其他实施方式中,可以不提供输出582B,并且用户作为替代直接送至3P代理3P1。
自动化助理110用确定的值来调用3P代理3P1,并且基于来自3P代理3P1的响应内容来提供提示582C。说出的输入580C确认用户想要从3P代理3P1购买电影票。然后,基于来自3P代理3P1的响应内容来提供输出582D以确认购买。
图6图示了说出的输入680A-F和响应输出682A-E以及最初调用第三方代理3P4并且以输出682C和682D来引导对话的情形。然而,响应于指示期望切换到其他有能力的3P代理3P5的说出的输入680E,自动化助理110在从对话中止3P代理3P4的同时介入并调用3P代理3P5。然后基于来自3P代理3P5的响应内容提供输出682E。注意,在调用3P代理3P5时,自动化助理110提供基于说出输入680B和680D来确定的参数的值。因此,3P代理3P5可以生成响应内容,其虑及由3P代理3P4引导的对话期间确定的参数(“车辆大小”)的值(“大车”)。这可能导致改进的用户体验并且可以减少计算资源(例如,否则如果3P代理3P5必须生成提示“车辆大小”参数的值的响应内容,则可能消耗这些资源)。
图7图示出了另一客户端设备706和客户端设备706的显示屏740。客户端设备706可以包括自动化助理110和/或与其通信。显示屏740包括:回复界面元素788——用户可以选择其以经由虚拟键盘来生成用户输入,以及语音回复界面元素789——用户可以选择其以经由麦克风来生成用户输入。在一些实施方式中,用户可以经由麦克风生成用户输入,而无需选择语音回复界面元素789。例如,在对话会话期间,可能会发生对经由麦克风输入的可听见的用户接口输入的主动监视以避免需要用户选择语音回复界面元素789。在那些实施方式中的一些和/或其他实施方式中,可以省略语音回复界面元素789。此外,在一些实施方式中,回复界面元素788可另外地和/或替选地被省略(例如,用户只能提供可听的用户接口输入)。显示屏740还包括系统界面元素781、782、783,其可与用户交互以使得客户端设备710执行一个或多个动作。
在图7中,对话类似于图4并且经由如图4所示的公共自动化助理界面发生(尽管它是与图4不同的界面)。然而,图7图示了在使用不同的界面和/或不同的用户接口输入设备可用时交互可以有哪些不同的一些示例。
在图7中,用户提供“Buy 2 adult tickets for Movie A for tonight(购买2张今晚电影A的成人票)”的键入的或说出的输入780A。基于该输入,自动化助理110可以确定“购买电影票”的预期动作。自动化助理110还可以确定“成人票数”参数的“2”值以及“电影名称”参数的“电影A”(或相关联的标识符)的值。
自动化助理110还可以确定为输入780A尚未指定的“购买电影票”预期动作定义的“剧院位置”的附加强制参数。作为响应,自动化助理110可以生成并提供提示782A来要求强制参数的值。应当注意,在图7中,用户可以“轻敲”加下划线的“here(这里)”词项来选择对应的剧院,而无需提供进一步的说出的或键入的文本输入。然而,用户作为替代提供“Baxter Avenue”的说出的或键入的输入780B。
基于输入780B,自动化助理110可以将“Baxter Avenue剧院”(或相关联的标识符)确定为“剧院位置”的强制参数的值。自动化助理110还可以确定两个3P代理(“3P1”和“3P2”)能够执行具有“2”、“电影A”和“Baxter Avenue剧院”的值的“购买电影票”预期动作。
自动化助理110还生成并提供提示782B,其识别那些所选的3P代理,以及3P代理中的每一个的附加未指定参数(价格)的值。应当注意,在图7中,用户可以“轻敲”带下划线的“3P1”来选择对应的代理,或者可以“轻敲”带下划线的“3P2”来选择对应的代理。用户还可以可选地能够提供说出的或键入的输入。
在图7的示例中,用户轻敲带下划线的“3P2”。响应于响应“轻敲”输入,自动化助理选择3P代理3P2。然后,自动化助理110可以向3P代理3P2发送调用请求连同确定的参数值。
然后,3P代理3P2有效地或实际上接管对话,并且基于由3P代理3P2生成的响应内容来提供提示782C。提示782C可以直接由3P代理3P2和/或经由自动化助理110提供。对话可以进一步继续,如图7中省略号所示。
图8是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备810的框图。在一些实施方式中,设备106、自动化助理110、3P代理、和/或其他组件中的一个或多个可以包括示例计算设备810的一个或多个组件。
计算设备810通常包括经由总线子系统812与多个外围设备通信的至少一个处理器814。这些外围设备可以包括存储子系统824,其包括例如存储器子系统825和文件存储子系统826、用户接口输出设备820、用户接口输入设备822、和网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口并耦合到其他计算设备中的对应接口设备。
用户接口输入设备822可以包括键盘、诸如鼠标、轨迹球、触摸板或图形板的指示设备、扫描仪、并入显示器中的触摸屏、诸如语音识别系统、麦克风的音频输入设备、和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括将信息输入到计算设备810或通信网络上的所有可能类型的设备和方式。
用户接口输出设备820可以包括显示子系统、打印机、传真机、或非视觉显示器——诸如音频输出设备。显示子系统可以包括阴极射线管(CRT),诸如液晶显示器(LCD)的平板设备、投影设备、或用于创建可见图像的一些其它机构。显示子系统还可以提供诸如经由音频输出设备的非视觉显示。通常,术语“输出设备”的使用旨在包括从计算设备810向用户或另一机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统824存储提供本文描述的一些或全部模块的功能的编程和数据构造。例如,存储子系统824可以包括用于执行图2A、图2B和/或图3的方法的所选方面的逻辑。
这些软件模块通常由处理器814单独执行或与其他处理器组合执行。在存储子系统824中使用的存储器825可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830和存储固定指令的只读存储器(ROM)832。文件存储子系统826可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器连同关联的可移动介质、CD-ROM驱动器、光驱动器、或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统826存储在存储子系统824中,或者由处理器814可访问的其他机器中。
总线子系统812提供用于使计算设备810的各个组件和子系统按照预期彼此通信的机制。虽然总线子系统812被示意性地示出为单个总线,但是总线子系统的替选实施方式可以使用多个总线。
计算设备810可以是不同的类型,包括工作站、服务器、计算集群、刀片服务器、服务器群、或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图8所示的计算设备810的描述仅意图作为具体示例以用于说明一些实施方式的目的。计算设备810的许多其他配置可能具有比图8所描绘的计算设备更多或更少的组件。
在本文讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,从其他电子通信提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物特征信息,以及用户的活动和群体特征信息)的情况下,向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储、和使用有关用户的信息。也就是说,本文所讨论的系统和方法仅在接收到相关用户的明确授权才能收集、存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。将收集其个人信息的每个用户都被呈现一个或多个选项,用于允许对与该用户相关的信息收集进行控制,用于提供关于该信息是否被收集以及关于信息的哪些部分被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,某些数据可以在存储或使用之前以一种或多种方式处理使得移除个人可识别信息。作为一个示例,可以对用户的身份进行处理,使得无法确定个人可识别信息。作为另一示例,用户的地理位置可以被泛化到更大的区域,使得用户的具体位置无法被确定。
尽管本文已经描述和图示了几个实施方式,但是可以利用用于执行功能和/或获得结果的各种其他手段和/或结构和/或本文所述的一个或多个优点,并且这样的变化和/或修改中的每一个被认为在本文描述的实施方式的范围内。更一般来说,本文描述的所有参数、尺寸、材料、和配置旨在是示例性的,并且该实际参数、尺寸、材料、和/或配置将取决于使用教导的具体一个或多个应用。本领域技术人员将认识到或者能够使用不超过常规实验来确定本文所述的具体实现的许多等同物。因此,应当理解,前述实施方式仅以举例的方式呈现,并且在所附权利要求书及其等同物的范围内,可以以与具体描述和所要求保护不同的方式实践实施方式。本公开的实施方式涉及本文所述的每个单独特征、系统、制品、材料、套件、和/或方法。此外,如果这些特征、系统、物品、材料、套件和/或方法不相互矛盾,则两个或更多个这样的特征、系统、制品、材料、套件和/或方法的任何组合都包括在本公开的范围内。
Claims (20)
1.一种由一个或多个处理器实现的方法,包括:
接收用户的指向自动化助理的第一自然语言输入以作为所述用户和所述自动化助理之间的动态对话的一部分,所述第一自然语言输入是自由形式的并且基于由所述用户经由用户接口输入设备来提供的用户接口输入;
基于确定所述第一自然语言输入指示预期动作来选择所述预期动作,所述预期动作从能够经由所述自动化助理获取并且跨越多个服务业务的潜在预期动作的群组中选择;
确定与所述预期动作相关联地存储的强制参数在所述第一自然语言输入中未指定;
响应于确定所述强制参数未指定,生成基于所述强制参数的提示;
提供所述提示作为所述动态对话的一部分并作为对所述第一自然语言输入的回复,所述提示被提供以供经由用户接口输出设备呈现给所述用户;
响应于所述提示而接收由所述用户提供的第二自然语言输入以作为所述动态对话的一部分,所述第二自然语言输入是自由形式的;
基于所述第二自然语言输入来确定所述强制参数的第一值;
从均能够执行由所述第一自然语言输入指示的所述预期动作的第三方代理群组中选择第一第三方代理;
经由一个或多个网络接口向所述第一第三方代理传送包括所述强制参数的所述第一值的第一第三方调用请求,而无需将任何其他第三方调用请求传送到所述第三方代理群组中的任何其他第三方代理;
经由所述一个或多个网络接口响应于传送所述第一第三方调用请求而从所述第一第三方代理接收第一响应内容;以及
提供基于所述第一响应内容的第一输出以用于作为所述动态对话的一部分向所述用户呈现。
2.根据权利要求1所述的方法,进一步包括:
响应于所述第一输出而接收由所述用户提供的第三输入;以及
经由所述一个或多个网络接口向所述第一第三方代理传送基于所述第三输入的第二内容。
3.根据权利要求2所述的方法,其中所述第三输入是语音输入,并且所述方法进一步包括:
将所述语音输入转换为文本;
其中所述第二内容包括所述文本中的至少一些。
4.根据权利要求3所述的方法,进一步包括:
经由所述一个或多个网络接口响应于传送所述第二内容而从所述第一第三方代理接收第三响应内容;以及
提供基于所述第三响应内容的第二输出以用于作为所述动态对话的一部分向所述用户呈现。
5.根据权利要求1所述的方法,进一步包括:
响应于所述第一输出,接收由所述用户提供的第三输入;
确定所述第三输入是否指示期望停止与所述第一第三方代理的交互;以及
响应于确定所述第三输入不指示期望停止与所述第三方代理的交互:
经由所述一个或多个网络接口向所述第一第三方代理传送基于所述第三输入的内容。
6.根据权利要求1所述的方法,进一步包括:
响应于所述第一输出或响应于基于由所述第一第三方代理提供的内容的进一步的输出而接收由所述用户提供的第三输入;
确定所述第三输入指示期望与另一第三方代理交互;以及
响应于确定所述第三输入指示期望与另一第三方代理交互:
向所述第三方代理群组中的第二第三方代理传送包括所述强制参数的第一值的第二第三方调用请求。
7.根据权利要求6所述的方法,进一步包括:
基于在与所述第三方代理的接触期间在所述动态对话中的用户输入来确定所述预期动作的第二参数的第二值;以及
在所述第二第三方调用请求中包括所述第二参数的所述第二值。
8.根据权利要求1所述的方法,进一步包括:
基于所述第一自然语言输入或所述第二自然语言输入来确定所述预期动作的非要求可选参数的第二值;
在所述第一第三方调用请求中包括所述非要求可选参数的所述第二值。
9.根据权利要求8所述的方法,其中,从所述第三方代理群组中选择所述第一第三方代理包括:
基于所述第一值和所述第二值符合针对所述第三方代理、针对所述强制参数和所述非要求可选参数而定义的对应值,来选择所述第一第三方代理。
10.根据权利要求9所述的方法,其中,从所述第三方代理群组中选择所述第一第三方代理进一步包括:
基于所述第一值和所述第二值不符合针对所述第三方代理群组中的附加第三方代理、所述强制参数和所述非要求可选参数而定义的对应值,来从选择所述第三方代理中消除所述附加第三方代理。
11.根据权利要求9所述的方法,其中,选择所述第一第三方代理是在不向所述用户提供明确地要求所述用户在所述第三方代理与所述第三方代理群组中的一个或多个附加第三方代理之间进行选择的输出的情况下发生的。
12.一种由一个或多个处理器实现的方法,包括:
接收用户的指向自动化助理的第一自然语言输入以作为所述用户与所述自动化助理之间的动态对话的一部分,所述第一自然语言输入是自由形式的并且基于由所述用户经由用户接口输入设备来提供的用户接口输入;
基于确定所述第一自然语言输入指示预期动作来选择所述预期动作,所述预期动作从跨越多个服务业务的潜在预期动作的群组中选择;
识别均能够执行所述预期动作的第三方代理群组;
生成基于与所述预期动作相关联地存储并且在所述第一自然语言输入中未指定的参数的提示,其中,所述提示不明确地标识所述第三方代理群组中的任何一个第三方代理;
提供所述提示作为动态对话的一部分并作为对所述第一自然语言输入的回复,所述提示被提供以供经由用户接口输出设备呈现给所述用户;
响应于所述提示而接收由所述用户提供的第二自然语言输入以作为所述动态对话的一部分,所述第二自然语言输入是自由形式的;
基于所述第二自然语言输入来确定所述参数的值;
从所述第三方代理群组中消除第三方代理以形成子群组,所述消除基于所述值不符合针对所述第三方代理的所述参数而定义的对应值;
从所述子群组中选择第一第三方代理;以及
经由一个或多个网络接口向仅所述第一第三方代理传送包括所述参数的所述值的第一第三方调用请求。
13.根据权利要求12所述的方法,进一步包括:
响应于传送所述第一第三方调用请求而经由所述一个或多个网络接口从所述第一第三方代理接收第一响应内容;以及
提供基于所述第一响应内容的第一输出以用于作为所述动态对话的一部分向所述用户呈现。
14.根据权利要求13所述的方法,进一步包括:
响应于所述第一输出而接收由所述用户提供的第三输入;以及
经由所述一个或多个网络接口向所述第一第三方代理传送基于所述第三输入的第二内容。
15.根据权利要求14所述的方法,其中所述第三输入是语音输入,并且所述方法进一步包括:
将所述语音输入转换为文本;
其中所述第二内容包括所述文本中的至少一些。
16.根据权利要求13所述的方法,进一步包括:
响应于所述第一输出或响应于基于由所述第一第三方代理提供的内容的进一步的输出而接收由所述用户提供的第三输入;
确定所述第三输入指示期望与另一第三方代理交互;和
响应于确定所述第三输入指示期望与另一第三方代理交互:
向所述第三方代理群组中的第二第三方代理传送包括所述参数的所述值的第二第三方调用请求。
17.一种由一个或多个处理器实现的方法,包括:
经由一个或多个网络接口,接收由用户的客户端设备传送的第一自然语言输入,所述第一自然语言输入是自由形式的并且指向由所述客户端设备实现的自动化助理接口;
确定所述第一自然语言输入指示指向第一服务业务的第一预期动作;
经由所述一个或多个网络接口通过所述客户端设备的自动化助理接口来与所述用户交互以解析与所述第一预期动作相关联地存储的多个第一强制参数的相应第一值;
从均能够执行由所述第一自然语言输入指示的所述预期动作的第一第三方代理群组中选择第一第三方代理;以及
在解析所述多个第一强制参数的相应第一值之后:
基于所述多个第一强制参数的所解析的相应第一值来调用所述第一第三方代理,
促进所述客户端设备和所述第一第三方代理之间的交互,所述交互经由所述自动化助理接口发生并由所述第一第三方代理引导。
18.根据权利要求17所述的方法,进一步包括:
经由所述一个或多个网络接口从所述用户的所述客户端设备接收第二自然语言输入,所述第二自然语言输入是自由形式的并指向所述自动化助理接口;
确定所述第二自然语言输入指示指向第二服务业务的第二预期动作,所述第二服务业务与所述第一服务业务不同;
经由所述一个或多个网络接口通过所述客户端设备的所述自动化助理接口来与所述用户交互以解析与所述第二预期动作相关联地存储的多个第二强制参数的相应第二值;
从均能够执行由所述第二自然语言输入指示的所述第二预期动作的第二第三方代理群组中选择第二第三方代理,所述第二第三方代理群组与所述第一第三方代理群组不同;以及
在解析所述多个第二强制参数中的相应第二值之后:
基于所述多个第二强制参数中的所解析的相应第二值来调用所述第二第三方代理,以及
促进所述客户端设备和所述第二第三方代理之间的交互,所述交互经由所述自动化助理接口发生并由所述第二第三方代理引导。
19.一种由一个或多个处理器实现的方法,包括:
接收由用户经由客户端设备提供的第一语音输入;
执行第一语音转文本转换以将所述第一语音输入转换为第一文本;
基于所述第一文本来确定预期动作;
识别存储为对于所述预期动作强制的强制参数;
确定所述第一文本缺少对所述强制参数的任何值的指定;
响应于确定所述第一文本缺少对所述强制参数的任何值的指定:
基于所述强制参数来生成自然语言提示,以及
提供所述自然语言提示作为对所述第一语音输入的回复,所述自然语言提示被提供以供经由所述客户端设备的用户接口输出设备呈现给所述用户;
响应于提供所述自然语言提示而接收由所述用户提供的第二自然语言输入;
基于所述第二自然语言输入来确定所述强制参数的值;
选择能够执行所述预期动作的第三方代理群组中的特定第三方代理;
经由一个或多个网络接口向所述特定第三方代理传送包括所述强制参数的所述值的第三方调用请求;
经由所述一个或多个网络接口响应于传送所述预期动作和所述值而从所述特定第三方代理接收响应内容;
提供基于所述响应内容的输出以供呈现给所述用户;
响应于提供所述输出而接收由所述用户提供的第三自然语言输入;
执行第二语音转文本转换以将所述第三自然语言输入转换为第二文本;以及
将所述第二文本传送给所述特定第三方代理。
20.一种由一个或多个处理器实现的方法,包括:
经由一个或多个网络接口接收由客户端设备传送的第一输入,所述第一输入是自由形式的自然语言用户输入;
基于所述第一输入来确定预期动作;
识别存储为对于所述预期操作强制的强制参数;
确定所述第一输入缺少对所述强制参数的任何值的指定;
响应于确定所述第一文本缺少对所述强制参数的任何值的指定:
生成自然语言提示,所述自然语言提示基于所述强制参数并且不要求关于存储为对于所述预期操作可选的可选参数的输入,以及
向所述客户端设备传送所述自然语言提示以作为对所述第一输入的回复;
经由所述一个或多个网络接口响应于所述自然语言提示而接收由所述客户端设备传送的第二输入,所述第二输入是自由形式的自然语言用户输入;
基于所述第二输入来确定所述强制参数的第一值;
基于所述第二输入来确定所述可选参数的第二值;
基于所述第一值和所述第二值来选择能够执行所述预期动作的特定第三方代理;以及
经由所述一个或多个网络接口向所述特定第三方代理传送包括所述第一值和所述第二值二者的第三方调用请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213830.3A CN115643307A (zh) | 2016-12-30 | 2017-09-25 | 用于生成和传送调用请求的方法、系统和存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/394,872 US10224031B2 (en) | 2016-12-30 | 2016-12-30 | Generating and transmitting invocation request to appropriate third-party agent |
US15/394,872 | 2016-12-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213830.3A Division CN115643307A (zh) | 2016-12-30 | 2017-09-25 | 用于生成和传送调用请求的方法、系统和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108270843A true CN108270843A (zh) | 2018-07-10 |
Family
ID=60083475
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710872445.2A Pending CN108270843A (zh) | 2016-12-30 | 2017-09-25 | 生成和传送对适当第三方代理的调用请求 |
CN202211213830.3A Pending CN115643307A (zh) | 2016-12-30 | 2017-09-25 | 用于生成和传送调用请求的方法、系统和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213830.3A Pending CN115643307A (zh) | 2016-12-30 | 2017-09-25 | 用于生成和传送调用请求的方法、系统和存储介质 |
Country Status (10)
Country | Link |
---|---|
US (5) | US10224031B2 (zh) |
EP (1) | EP3485393A1 (zh) |
JP (2) | JP6839288B2 (zh) |
KR (2) | KR102475719B1 (zh) |
CN (2) | CN108270843A (zh) |
DE (1) | DE202017105915U1 (zh) |
GB (1) | GB2558348A (zh) |
IE (1) | IE20170203A1 (zh) |
SG (1) | SG10201708062SA (zh) |
WO (1) | WO2018125345A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113168336A (zh) * | 2018-08-27 | 2021-07-23 | 谷歌有限责任公司 | 基于实验参数适配功能电话的客户端应用 |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9947316B2 (en) | 2016-02-22 | 2018-04-17 | Sonos, Inc. | Voice control of a media playback system |
US10264030B2 (en) | 2016-02-22 | 2019-04-16 | Sonos, Inc. | Networked microphone device control |
US10509626B2 (en) | 2016-02-22 | 2019-12-17 | Sonos, Inc | Handling of loss of pairing between networked devices |
US9965247B2 (en) | 2016-02-22 | 2018-05-08 | Sonos, Inc. | Voice controlled media playback system based on user profile |
US9772817B2 (en) | 2016-02-22 | 2017-09-26 | Sonos, Inc. | Room-corrected voice detection |
US10095470B2 (en) | 2016-02-22 | 2018-10-09 | Sonos, Inc. | Audio response playback |
US9978390B2 (en) | 2016-06-09 | 2018-05-22 | Sonos, Inc. | Dynamic player selection for audio signal processing |
US10134399B2 (en) | 2016-07-15 | 2018-11-20 | Sonos, Inc. | Contextualization of voice inputs |
US10115400B2 (en) | 2016-08-05 | 2018-10-30 | Sonos, Inc. | Multiple voice services |
US9942678B1 (en) | 2016-09-27 | 2018-04-10 | Sonos, Inc. | Audio playback settings for voice interaction |
US10181323B2 (en) | 2016-10-19 | 2019-01-15 | Sonos, Inc. | Arbitration-based voice recognition |
US10224031B2 (en) * | 2016-12-30 | 2019-03-05 | Google Llc | Generating and transmitting invocation request to appropriate third-party agent |
US11276395B1 (en) * | 2017-03-10 | 2022-03-15 | Amazon Technologies, Inc. | Voice-based parameter assignment for voice-capturing devices |
US10748531B2 (en) * | 2017-04-13 | 2020-08-18 | Harman International Industries, Incorporated | Management layer for multiple intelligent personal assistant services |
US10475449B2 (en) | 2017-08-07 | 2019-11-12 | Sonos, Inc. | Wake-word detection suppression |
US11004444B2 (en) * | 2017-09-08 | 2021-05-11 | Amazon Technologies, Inc. | Systems and methods for enhancing user experience by communicating transient errors |
US10048930B1 (en) | 2017-09-08 | 2018-08-14 | Sonos, Inc. | Dynamic computation of system response volume |
US10446165B2 (en) | 2017-09-27 | 2019-10-15 | Sonos, Inc. | Robust short-time fourier transform acoustic echo cancellation during audio playback |
US10482868B2 (en) | 2017-09-28 | 2019-11-19 | Sonos, Inc. | Multi-channel acoustic echo cancellation |
US10621981B2 (en) | 2017-09-28 | 2020-04-14 | Sonos, Inc. | Tone interference cancellation |
US10466962B2 (en) | 2017-09-29 | 2019-11-05 | Sonos, Inc. | Media playback system with voice assistance |
CN107704450B (zh) * | 2017-10-13 | 2020-12-04 | 威盛电子股份有限公司 | 自然语言识别设备以及自然语言识别方法 |
US11343614B2 (en) | 2018-01-31 | 2022-05-24 | Sonos, Inc. | Device designation of playback and network microphone device arrangements |
US10714084B2 (en) * | 2018-02-09 | 2020-07-14 | Accenture Global Solutions Limited | Artificial intelligence based service implementation |
KR102596436B1 (ko) * | 2018-02-20 | 2023-11-01 | 삼성전자주식회사 | 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법 |
US11175880B2 (en) | 2018-05-10 | 2021-11-16 | Sonos, Inc. | Systems and methods for voice-assisted media content selection |
US10959029B2 (en) | 2018-05-25 | 2021-03-23 | Sonos, Inc. | Determining and adapting to changes in microphone performance of playback devices |
US10681460B2 (en) | 2018-06-28 | 2020-06-09 | Sonos, Inc. | Systems and methods for associating playback devices with voice assistant services |
WO2020040753A1 (en) * | 2018-08-21 | 2020-02-27 | Google Llc | Automated assistant invocation of second interactive module using supplemental data provided by first interactive module |
US11714955B2 (en) | 2018-08-22 | 2023-08-01 | Microstrategy Incorporated | Dynamic document annotations |
US11815936B2 (en) | 2018-08-22 | 2023-11-14 | Microstrategy Incorporated | Providing contextually-relevant database content based on calendar data |
US11076035B2 (en) | 2018-08-28 | 2021-07-27 | Sonos, Inc. | Do not disturb feature for audio notifications |
US10461710B1 (en) | 2018-08-28 | 2019-10-29 | Sonos, Inc. | Media playback system with maximum volume setting |
US10587430B1 (en) | 2018-09-14 | 2020-03-10 | Sonos, Inc. | Networked devices, systems, and methods for associating playback devices based on sound codes |
JP6887409B2 (ja) * | 2018-09-19 | 2021-06-16 | Kddi株式会社 | 情報提供システム及び情報提供方法 |
US11024331B2 (en) | 2018-09-21 | 2021-06-01 | Sonos, Inc. | Voice detection optimization using sound metadata |
US11100923B2 (en) | 2018-09-28 | 2021-08-24 | Sonos, Inc. | Systems and methods for selective wake word detection using neural network models |
US11899519B2 (en) | 2018-10-23 | 2024-02-13 | Sonos, Inc. | Multiple stage network microphone device with reduced power consumption and processing load |
EP3654249A1 (en) | 2018-11-15 | 2020-05-20 | Snips | Dilated convolutions and gating for efficient keyword spotting |
US10839167B2 (en) * | 2018-12-04 | 2020-11-17 | Verizon Patent And Licensing Inc. | Systems and methods for dynamically expanding natural language processing agent capacity |
US11183183B2 (en) | 2018-12-07 | 2021-11-23 | Sonos, Inc. | Systems and methods of operating media playback systems having multiple voice assistant services |
US11132989B2 (en) | 2018-12-13 | 2021-09-28 | Sonos, Inc. | Networked microphone devices, systems, and methods of localized arbitration |
US10602268B1 (en) | 2018-12-20 | 2020-03-24 | Sonos, Inc. | Optimization of network microphone devices using noise classification |
US10395648B1 (en) * | 2019-02-06 | 2019-08-27 | Capital One Services, Llc | Analysis of a topic in a communication relative to a characteristic of the communication |
US11682390B2 (en) * | 2019-02-06 | 2023-06-20 | Microstrategy Incorporated | Interactive interface for analytics |
US10867604B2 (en) | 2019-02-08 | 2020-12-15 | Sonos, Inc. | Devices, systems, and methods for distributed voice processing |
US11315556B2 (en) | 2019-02-08 | 2022-04-26 | Sonos, Inc. | Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification |
JP2020144275A (ja) * | 2019-03-07 | 2020-09-10 | 本田技研工業株式会社 | エージェント装置、エージェント装置の制御方法、およびプログラム |
JP7280074B2 (ja) * | 2019-03-19 | 2023-05-23 | 本田技研工業株式会社 | エージェント装置、エージェント装置の制御方法、およびプログラム |
US11120794B2 (en) | 2019-05-03 | 2021-09-14 | Sonos, Inc. | Voice assistant persistence across multiple network microphone devices |
US11301479B2 (en) | 2019-05-30 | 2022-04-12 | International Business Machines Corporation | Service provider selection for queries sent to a digital assistant |
US20200388280A1 (en) | 2019-06-05 | 2020-12-10 | Google Llc | Action validation for digital assistant-based applications |
EP4270172A3 (en) * | 2019-06-05 | 2024-01-10 | Google LLC | Action validation for digital assistant-based applications |
US11361756B2 (en) | 2019-06-12 | 2022-06-14 | Sonos, Inc. | Conditional wake word eventing based on environment |
US10586540B1 (en) | 2019-06-12 | 2020-03-10 | Sonos, Inc. | Network microphone device with command keyword conditioning |
US11200894B2 (en) | 2019-06-12 | 2021-12-14 | Sonos, Inc. | Network microphone device with command keyword eventing |
US10629191B1 (en) * | 2019-06-16 | 2020-04-21 | Linc Global, Inc. | Methods and systems for deploying and managing scalable multi-service virtual assistant platform |
JP2021004950A (ja) * | 2019-06-25 | 2021-01-14 | 株式会社デンソーテン | 情報処理装置、情報処理システムおよび情報処理方法 |
US10871943B1 (en) | 2019-07-31 | 2020-12-22 | Sonos, Inc. | Noise classification for event detection |
US11138975B2 (en) | 2019-07-31 | 2021-10-05 | Sonos, Inc. | Locally distributed keyword detection |
KR20210016815A (ko) | 2019-08-05 | 2021-02-17 | 삼성전자주식회사 | 복수의 지능형 에이전트를 관리하는 전자 장치 및 그의 동작 방법 |
US11086991B2 (en) * | 2019-08-07 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Method and system for active risk control based on intelligent interaction |
US11189286B2 (en) | 2019-10-22 | 2021-11-30 | Sonos, Inc. | VAS toggle based on device orientation |
CN110851723B (zh) * | 2019-11-14 | 2022-09-23 | 学利网络科技(上海)有限公司 | 一种基于大规模知识点标注结果的英语习题推荐方法 |
US11200900B2 (en) * | 2019-12-20 | 2021-12-14 | Sonos, Inc. | Offline voice control |
US11562740B2 (en) | 2020-01-07 | 2023-01-24 | Sonos, Inc. | Voice verification for media playback |
US11308958B2 (en) | 2020-02-07 | 2022-04-19 | Sonos, Inc. | Localized wakeword verification |
US11010129B1 (en) * | 2020-05-08 | 2021-05-18 | International Business Machines Corporation | Augmented reality user interface |
US11308962B2 (en) | 2020-05-20 | 2022-04-19 | Sonos, Inc. | Input detection windowing |
US11482224B2 (en) | 2020-05-20 | 2022-10-25 | Sonos, Inc. | Command keywords with input detection windowing |
US11893984B1 (en) * | 2020-06-22 | 2024-02-06 | Amazon Technologies, Inc. | Speech processing system |
US11698771B2 (en) | 2020-08-25 | 2023-07-11 | Sonos, Inc. | Vocal guidance engines for playback devices |
US11978437B1 (en) * | 2020-09-22 | 2024-05-07 | Amazon Technologies, Inc. | Natural language processing |
US11984123B2 (en) | 2020-11-12 | 2024-05-14 | Sonos, Inc. | Network device interaction by range |
US11984124B2 (en) * | 2020-11-13 | 2024-05-14 | Apple Inc. | Speculative task flow execution |
US20230169963A1 (en) | 2021-11-30 | 2023-06-01 | Google Llc | Selectively masking query content to provide to a secondary digital assistant |
US11790107B1 (en) | 2022-11-03 | 2023-10-17 | Vignet Incorporated | Data sharing platform for researchers conducting clinical trials |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179633A (zh) * | 2006-11-08 | 2008-05-14 | 国际商业机器公司 | 用于经由虚拟联系中心提供服务的方法和设备 |
WO2013137660A1 (en) * | 2012-03-16 | 2013-09-19 | Samsung Electronics Co., Ltd. | Collaborative personal assistant system for delegating provision of services by third party task providers and method therefor |
US8849675B1 (en) * | 2013-12-18 | 2014-09-30 | Google Inc. | Suggested query constructor for voice actions |
CN104335234A (zh) * | 2012-05-15 | 2015-02-04 | 苹果公司 | 用于将第三方服务与数字助理相结合的系统和方法 |
US20160035353A1 (en) * | 2014-07-31 | 2016-02-04 | Google Inc. | Conversational agents |
US20160274864A1 (en) * | 2015-03-20 | 2016-09-22 | Google Inc. | Systems and methods for enabling user voice interaction with a host computing device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009046B1 (en) * | 2005-09-27 | 2015-04-14 | At&T Intellectual Property Ii, L.P. | System and method for disambiguating multiple intents in a natural language dialog system |
US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8943394B2 (en) * | 2008-11-19 | 2015-01-27 | Robert Bosch Gmbh | System and method for interacting with live agents in an automated call center |
US10276170B2 (en) * | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US9787725B2 (en) | 2011-01-21 | 2017-10-10 | Qualcomm Incorporated | User input back channel for wireless displays |
CA2747153A1 (en) | 2011-07-19 | 2013-01-19 | Suleman Kaheer | Natural language processing dialog system for obtaining goods, services or information |
CN103186522B (zh) | 2011-12-29 | 2018-01-26 | 富泰华工业(深圳)有限公司 | 电子设备及其自然语言分析方法 |
US9223537B2 (en) * | 2012-04-18 | 2015-12-29 | Next It Corporation | Conversation user interface |
US20150088523A1 (en) * | 2012-09-10 | 2015-03-26 | Google Inc. | Systems and Methods for Designing Voice Applications |
US9218819B1 (en) * | 2013-03-01 | 2015-12-22 | Google Inc. | Customizing actions based on contextual data and voice-based inputs |
CN105074700A (zh) * | 2013-03-01 | 2015-11-18 | 奎克西公司 | 产生含有到应用程序的状态链接的搜索结果 |
US9875494B2 (en) | 2013-04-16 | 2018-01-23 | Sri International | Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant |
KR102197560B1 (ko) | 2013-06-07 | 2020-12-31 | 애플 인크. | 지능형 자동 어시스턴트 |
US9830044B2 (en) * | 2013-12-31 | 2017-11-28 | Next It Corporation | Virtual assistant team customization |
US9837081B2 (en) * | 2014-12-30 | 2017-12-05 | Microsoft Technology Licensing, Llc | Discovering capabilities of third-party voice-enabled resources |
US9647968B2 (en) * | 2015-03-25 | 2017-05-09 | Pypestream Inc | Systems and methods for invoking chatbots in a channel based communication system |
US9578173B2 (en) * | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US20170286133A1 (en) | 2016-03-29 | 2017-10-05 | Microsoft Technology Licensing, Llc | One Step Task Completion |
US10224031B2 (en) * | 2016-12-30 | 2019-03-05 | Google Llc | Generating and transmitting invocation request to appropriate third-party agent |
-
2016
- 2016-12-30 US US15/394,872 patent/US10224031B2/en active Active
-
2017
- 2017-09-25 CN CN201710872445.2A patent/CN108270843A/zh active Pending
- 2017-09-25 CN CN202211213830.3A patent/CN115643307A/zh active Pending
- 2017-09-27 KR KR1020227022889A patent/KR102475719B1/ko active IP Right Grant
- 2017-09-27 IE IE20170203A patent/IE20170203A1/en unknown
- 2017-09-27 KR KR1020197022111A patent/KR102418511B1/ko active IP Right Grant
- 2017-09-27 JP JP2019535827A patent/JP6839288B2/ja active Active
- 2017-09-27 EP EP17784122.8A patent/EP3485393A1/en not_active Withdrawn
- 2017-09-27 WO PCT/US2017/053832 patent/WO2018125345A1/en unknown
- 2017-09-28 GB GB1715691.0A patent/GB2558348A/en not_active Withdrawn
- 2017-09-28 DE DE202017105915.4U patent/DE202017105915U1/de active Active
- 2017-09-29 SG SG10201708062SA patent/SG10201708062SA/en unknown
-
2019
- 2019-01-10 US US16/244,780 patent/US10714086B2/en active Active
-
2020
- 2020-05-19 US US16/877,799 patent/US10937427B2/en active Active
-
2021
- 2021-01-15 US US17/150,139 patent/US11562742B2/en active Active
- 2021-01-28 JP JP2021011873A patent/JP6963700B2/ja active Active
-
2023
- 2023-01-23 US US18/100,446 patent/US20230162735A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179633A (zh) * | 2006-11-08 | 2008-05-14 | 国际商业机器公司 | 用于经由虚拟联系中心提供服务的方法和设备 |
WO2013137660A1 (en) * | 2012-03-16 | 2013-09-19 | Samsung Electronics Co., Ltd. | Collaborative personal assistant system for delegating provision of services by third party task providers and method therefor |
CN104335234A (zh) * | 2012-05-15 | 2015-02-04 | 苹果公司 | 用于将第三方服务与数字助理相结合的系统和方法 |
US8849675B1 (en) * | 2013-12-18 | 2014-09-30 | Google Inc. | Suggested query constructor for voice actions |
US20160035353A1 (en) * | 2014-07-31 | 2016-02-04 | Google Inc. | Conversational agents |
US20160274864A1 (en) * | 2015-03-20 | 2016-09-22 | Google Inc. | Systems and methods for enabling user voice interaction with a host computing device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113168336A (zh) * | 2018-08-27 | 2021-07-23 | 谷歌有限责任公司 | 基于实验参数适配功能电话的客户端应用 |
US11966764B2 (en) | 2018-08-27 | 2024-04-23 | Google Llc | Adapting client application of feature phone based on experiment parameters |
Also Published As
Publication number | Publication date |
---|---|
KR20220100729A (ko) | 2022-07-15 |
KR102475719B1 (ko) | 2022-12-08 |
JP2020514794A (ja) | 2020-05-21 |
JP2021099813A (ja) | 2021-07-01 |
US10937427B2 (en) | 2021-03-02 |
KR20190097267A (ko) | 2019-08-20 |
SG10201708062SA (en) | 2018-07-30 |
JP6963700B2 (ja) | 2021-11-10 |
US10714086B2 (en) | 2020-07-14 |
CN115643307A (zh) | 2023-01-24 |
IE20170203A1 (en) | 2018-07-11 |
WO2018125345A1 (en) | 2018-07-05 |
US11562742B2 (en) | 2023-01-24 |
GB201715691D0 (en) | 2017-11-15 |
GB2558348A (en) | 2018-07-11 |
US20200279564A1 (en) | 2020-09-03 |
US20190147878A1 (en) | 2019-05-16 |
US20210134294A1 (en) | 2021-05-06 |
US20180190274A1 (en) | 2018-07-05 |
US20230162735A1 (en) | 2023-05-25 |
JP6839288B2 (ja) | 2021-03-03 |
KR102418511B1 (ko) | 2022-07-07 |
DE202017105915U1 (de) | 2018-01-10 |
US10224031B2 (en) | 2019-03-05 |
EP3485393A1 (en) | 2019-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108270843A (zh) | 生成和传送对适当第三方代理的调用请求 | |
US11488601B2 (en) | Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant | |
AU2018383615B2 (en) | Systems and methods for chatbot generation | |
JP6888125B2 (ja) | ユーザプログラマブル自動アシスタント | |
JP7263376B2 (ja) | 自動化されたアシスタントによる以前の対話コンテキスト間の遷移 | |
US10679622B2 (en) | Dependency graph generation in a networked system | |
CN115485690A (zh) | 用于处置聊天机器人的不平衡训练数据的分批技术 | |
KR20180134994A (ko) | 적절한 에이전트의 자동화된 어시스턴트 호출 | |
CN114730429A (zh) | 用于管理联系中心系统和其用户之间的对话的系统和方法 | |
US11989523B2 (en) | Composite entity for rule driven acquisition of input data to chatbots | |
CN110050303A (zh) | 基于第三方代理内容的语音到文本转换 | |
CN107590171A (zh) | 控制计算机以发起基于计算机的动作的执行 | |
JP2021022928A (ja) | 人工知能基盤の自動応答方法およびシステム | |
JP6442807B1 (ja) | 対話サーバ、対話方法及び対話プログラム | |
CN109829744A (zh) | 基于自然语言处理的咨询方法、装置、电子设备及介质 | |
CN111966803B (zh) | 对话模拟方法、装置、存储介质及电子设备 | |
CN118093076A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180710 |