CPC G10L 17/22 (2013.01) [G06F 16/3329 (2019.01)] | 20 Claims |
1. A method implemented by one or more processors, the method comprising:
receiving, from a user device, a request comprising a first voice input;
submitting the request to each of a plurality of distinct data providers, wherein each data provider is associated with a distinct data model, and wherein the plurality of distinct data providers includes (i) a task provider that directs a dialog toward information used to complete a task and (ii) a search provider;
in response to the first voice input, receiving at least one suggested response to the first voice input from at least one of the plurality of distinct data providers;
determining, from the at least one suggested response to the first voice input, a first dialog including one or more responses to the first voice input to provide to the user device to complete the first dialog;
receiving, from the user device, a second voice input in response to providing the one or more responses to the first voice input to the user device, and submitting the second voice input to each of the plurality of distinct data providers;
in response to the second voice input, receiving suggested responses to the second voice input from two or more of the plurality of distinct data providers, the suggested responses to the second voice input including a suggested response to the second voice input from the search provider and a suggested response to the second voice input from the task provider, the suggested response to the second voice input from the task provider being based on the suggested response to the second voice input from the search provider;
for each suggested response to the second voice input, determining a respective score associated with the suggested response;
selecting, from the suggested responses to the second voice input, a response to the second voice input based on the respective scores associated with the suggested responses to the second voice input; and
providing the response to the second voice input to the user device.
|