IP Library Granted Patent US 11,887,596
Granted Patent B2
US 11,887,596 · App. 17/945,320 · Granted Jan 30, 2024

Multiple skills processing

Inventors: Rohin Dabas (Kirkland, WA); Troy Dean Schuring (Maple Valley, WA); Rashmi Tonge (Bellevue, WA); Michael James Montgomery (Seattle, WA); Kevindra Pal Singh (Seattle, WA); Adam Baran (Redmond, WA); David Thomas (Woodinville, WA); Nnenna Eleanya Okwara (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G10L15/22G10L15/1815G10L15/30G10L15/183G10L15/1822G10L2015/223G10L2015/228
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,887,596
App. No.
17/945,320
Granted
Jan 30, 2024
Kind
B2
Abstract

Described herein is a system for enabling a user to perform complex goals using multiple skills/applications of an intelligent assistant device. Skills may register as consumers of an action or providers of an action, and the consumer skills may be configured to invoke provider skills to perform actions. The system receives a request to perform an action from a skill along with some action data. The system validates the action data, selects another skill to perform the action, and forwards the request to the selected skill to perform the action.

Claims (72)

1. A computer-implemented method, comprising:

receiving first data indicating a first application, capable of performing a first action, is authorized to request performance of a second action that is performable by at least one other application different than the first application;

after receiving the first data, receiving input data;

determining, using the input data, that the first action is to be performed using the first application;

sending, to the first application, a first request to perform the first action;

receiving, from the first application and after sending the first request, a second request to perform the second action, the second action being determined by the first application;

determining, using the first data, that the first application is authorized to request performance of the second action;

determining a second application is capable of performing the second action; and

sending, to the second application, a third request to perform the second action.

2. The computer-implemented method of claim 1 , further comprising:

receiving the first data from the first application.

3. The computer-implemented method of claim 1 , further comprising:

determining a user profile associated with the input data; and

determining, based at least in part on the user profile, that the first application is permitted to execute with respect to the input data.

4. The computer-implemented method of claim 1 , further comprising:

detecting, by a first device, a user input corresponding to the input data;

executing, by the first device, the first application; and

executing, by the first device, the second application.

5. The computer-implemented method of claim 1 , further comprising:

receiving a user input corresponding to an indication for the first application to be permitted to request performance of the second action; and

based at least in part on the user input, determining the first data.

6. The computer-implemented method of claim 1 , further comprising:

after receiving the input data and prior to sending the third request, determining that second data is required to perform the second action by the second application; and

generating output data requesting the second data from a user device.

7. The computer-implemented method of claim 1 , further comprising:

processing, by a first component, the second request and stored data to determine the second action, wherein the stored data indicates which of a plurality of applications are associated with which of a plurality of actions.

8. The computer-implemented method of claim 1 , further comprising:

determining, by the first application, second data corresponding to execution of the second action; and

sending, from the first application to the second application, the second data.

9. The computer-implemented method of claim 1 , further comprising:

determining, by the first application, second data corresponding to execution of the second action by the second application; and

causing a user device to display an output corresponding to the second data.

10. The computer-implemented method of claim 1 , further comprising:

receiving audio data corresponding to an utterance; and

performing speech processing on the audio data to determine the input data.

11. A system comprising:

at least one processor; and

at least one memory comprising instructions that, when executed by the at least one processor, cause the system to:

receive first data indicating a first application, capable of performing a first action, is authorized to request performance of a second action that is performable by at least one other application different than the first application;

after receipt of the first data, receiving input data;

determine, using the input data, that the first action is to be performed using the first application;

send, to the first application, a first request to perform the first action;

receive, from the first application and after sending the first request, a second request to perform the second action, the second action being determined by the first application;

determine, using the first data, that the first application is authorized to request performance of the second action;

determine a second application is capable of performing the second action; and

send, to the second application, a third request to perform the second action.

12. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive the first data from the first application.

13. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine a user profile associated with the input data; and

determine, based at least in part on the user profile, that the first application is permitted to execute with respect to the input data.

14. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

detecting, by a first device, a user input corresponding to the input data;

execute, by the first device, the first application; and

execute, by the first device, the second application.

15. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive a user input corresponding to an indication for the first application to be permitted to request performance of the second action; and

based at least in part on the user input, determine the first data.

16. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

after receipt of the input data and prior to sending the third request, determine that second data is required to perform the second action by the second application; and

generate output data requesting the second data from a user device.

17. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

process, by a first component, the second request and stored data to determine the second action, wherein the stored data indicates which of a plurality of applications are associated with which of a plurality of actions.

18. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine, by the first application, second data corresponding to execution of the second action; and

send, from the first application to the second application, the second data.

19. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine, by the first application, second data corresponding to execution of the second action by the second application; and

cause a user device to display an output corresponding to the second data.

20. The system of claim 11 , wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive audio data corresponding to an utterance; and

perform speech processing on the audio data to determine the input data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2022
From: DABAS, ROHIN; SCHURING, TROY DEAN; TONGE, RASHMI; MONTGOMERY, MICHAEL JAMES; SINGH, KEVINDRA PAL; BARAN, ADAM; THOMAS, DAVID; OKWARA, NNENNA ELEANYA
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 061105/0441 →
Continuity (2)
Continuation 16294747 · Mar 6, 2019
Related Publication 20230115420A1 · Apr 13, 2023