User-programmable automated assistant
First Claim
1. A method implemented by an automated assistant executed by one or more processors, comprising:
- receiving, from a user at one or more input components of a computing device, a first speech input, wherein the first speech input includes a command to perform a task;
performing semantic processing on first speech recognition output generated from the first speech input;
determining, based on the semantic processing, that the automated assistant is unable to interpret the command;
providing, to the user at one or more output components of the computing device, output that solicits clarification from the user about the command;
receiving, from the same user in response to the output, at one or more of the input components, a second speech input;
identifying, from second speech recognition output generated from the second speech input, one or more slots that are required to be filled with values in order to fulfill the task;
storing a dialog routine that includes a mapping between the command and the task, and which accepts, as input, one or more values to fill the one or more slots;
receiving, at one or more of the input components, a third speech input, wherein the third speech input invokes the dialog routine based on the mapping;
identifying, based on third speech recognition output generated from the third speech input or additional speech input, one or more values to be used to fill the one or more slots that are required to be filled with values in order to fulfill the task; and
transmitting, to a remote computing device, data that is indicative of at least the one or more values to be used to fill the one or more slots, wherein the transmitting causes the remote computing device to fulfill the task.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques described herein relate to allowing users to employ voice-based human-to-computer dialog to program automated assistants with customized routines, or “dialog routines,” that can later be invoked to accomplish task(s). In various implementations, a first free form natural language input—that identifies a command to be mapped to a task and slot(s) required to be filled with values to fulfill the task—may be received from a user. A dialog routine may be stored that includes a mapping between the command and the task, and which accepts, as input, value(s) to fill the slot(s). Subsequent free form natural language input may be received from the user to (i) invoke the dialog routine based on the mapping, and/or (ii) to identify value(s) to fill the slot(s). Data indicative of at least the value(s) may be transmitted to a remote computing device for fulfillment of the task.
-
Citations
20 Claims
-
1. A method implemented by an automated assistant executed by one or more processors, comprising:
-
receiving, from a user at one or more input components of a computing device, a first speech input, wherein the first speech input includes a command to perform a task; performing semantic processing on first speech recognition output generated from the first speech input; determining, based on the semantic processing, that the automated assistant is unable to interpret the command; providing, to the user at one or more output components of the computing device, output that solicits clarification from the user about the command; receiving, from the same user in response to the output, at one or more of the input components, a second speech input; identifying, from second speech recognition output generated from the second speech input, one or more slots that are required to be filled with values in order to fulfill the task; storing a dialog routine that includes a mapping between the command and the task, and which accepts, as input, one or more values to fill the one or more slots; receiving, at one or more of the input components, a third speech input, wherein the third speech input invokes the dialog routine based on the mapping; identifying, based on third speech recognition output generated from the third speech input or additional speech input, one or more values to be used to fill the one or more slots that are required to be filled with values in order to fulfill the task; and transmitting, to a remote computing device, data that is indicative of at least the one or more values to be used to fill the one or more slots, wherein the transmitting causes the remote computing device to fulfill the task. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method implemented by an automated assistant executed by one or more processors, comprising:
-
receiving, at one or more input components of a computing device, a first speech input from a user, wherein the first speech input; identifying, from first speech recognition output generated from the first speech input, a command that the user intends to be mapped to a task, and one or more slots that are required to be filled with values in order to fulfill the task; storing a dialog routine that includes a mapping between the command and the task, and which accepts, as input, one or more values to fill the one or more slots; receiving, at one or more of the input components, a second speech input from the user, wherein the second speech input invokes the dialog routine based on the mapping; identifying, based on second speech recognition output generated from the second speech input or additional speech input, one or more values to be used to fill the one or more slots that are required to be filled with values in order to fulfill the task; and transmitting, to a remote computing device, data that is indicative of at least the one or more values to be used to fill the one or more slots, wherein the transmitting causes the remote computing device to fulfill the task. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. At least one non-transitory computer-readable medium comprising instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to perform the following operations:
-
receiving, from a user at one or more input components of a computing device, a first speech input, wherein the first speech input includes a command to perform a task; performing semantic processing on first speech recognition output generated from the first speech input; determining, based on the semantic processing, that the automated assistant is unable to interpret the command; providing, at one or more output components of the computing device, output that solicits clarification from the user about the command; receiving, from the same user at one or more of the input components, a second speech input; identifying, based on second speech recognition output generated from the second speech input, one or more slots that are required to be filled with values in order to fulfill the task; storing a dialog routine that includes a mapping between the command and the task, and which accepts, as input, one or more values to fill the one or more slots; receiving, at one or more of the input components, a third speech input, wherein the third speech input invokes the dialog routine based on the mapping; identifying, based on third speech recognition output generated from the third speech input or additional speech input, one or more values to be used to fill the one or more slots that are required to be filled with values in order to fulfill the task; and transmitting, to a remote computing device, data that is indicative of at least the one or more values to be used to fill the one or more slots, wherein the transmitting causes the remote computing device to fulfill the task. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification