IP Library › Granted Patent US 10,204,627
Granted Patent B2
US 10,204,627 · App. 13/966,665 · Granted Feb 12, 2019

Providing virtual personal assistance with multiple VPA applications

Inventors: Kenneth C. Nitz (Redwood City, CA); Patrick D. Lincoln (Woodside, CA)
Assignee: SRI International
G10L15/30G06Q30/06G10L15/1822G10L15/22G10L15/32
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 10,204,627
App. No.
13/966,665
Filed
Aug 14, 2013
Granted
Feb 12, 2019
Kind
B2
Art Unit
2657
USPC
704/270.1
Abstract

The activities of multiple virtual personal assistant (VPA) applications are coordinated. For example, different portions of a conversational natural language dialog involving a user and a computing device may be handled by different VPAs.

Claims (68)

1. A computer-implemented method, comprising:

using an input signal received by an input device, determining an input intent,

wherein the input signal comprises a dialog request,

wherein the input intent is determined at least in part by a first virtual assistant application of a first device;

based on the input intent, identifying a second virtual assistant application;

obtaining pairing information;

using the pairing information, establishing a communication connection between the first virtual assistant application and the second virtual assistant application,

wherein the second virtual assistant application is to fulfill the dialog request by generating an output intent or communicating the output intent to an output generator to cause a second device to present output that corresponds to the output intent,

wherein the output intent comprises a structured representation of a response to the input intent.

2. The computer-implemented method of claim 1 , wherein the first and second virtual assistant applications determine input intents differently using different models.

3. The computer-implemented method of claim 1 , wherein the second virtual assistant application modifies the input intent to produce a modified input intent, and the output intent comprises a structured representation of a response to the modified input intent.

4. The computer-implemented method of claim 1 , wherein one of the first and second virtual assistant applications is a single user, multiple application virtual assistant and the other of the first and second virtual assistant applications is a multiple user, single application virtual assistant.

5. The computer-implemented method of claim 1 , wherein using the pairing information enables the first virtual assistant application to communicate directly with the second virtual assistant application.

6. The computer-implemented method of claim 1 , wherein the output intent is determined based on a model that is coupled to the second virtual assistant application, wherein the model is not accessible to the first virtual assistant application.

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

determining, based on the pairing information, that the first virtual assistant application has permission to communicate with the second virtual assistant application.

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

receiving, by the first virtual assistant application, a notification that the second virtual assistant has generated the output intent.

9. The computer-implemented method of claim 1 , wherein establishing a communication connection between the first virtual assistant application and the second virtual assistant application protects communications sent over the communication connection from being accessible to other virtual assistant applications.

10. The computer-implemented method of claim 1 , comprising, before establishing the communication connection, determining that both the first and second virtual assistant applications allow the communication connection to be established.

11. The computer-implemented method of claim 1 , comprising identifying the second virtual assistant application based on a preference or a usage history of a user of the first virtual assistant application.

12. The computer-implemented method of claim 1 , wherein the first and second virtual assistant applications are embodied in different devices.

13. A computing device, comprising:

one or more processors; and

a non-transitory computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:

using an input signal received by an input device, determining an input intent,

wherein the input signal comprises a dialog request,

wherein the input intent is determined at least in part by a first virtual assistant application of a first device;

based on the input intent, identifying a second virtual assistant application;

obtaining pairing information;

using the pairing information, establishing a communication connection between the first virtual assistant application and the second virtual assistant application,

wherein the second virtual assistant application is to fulfill the dialog request by generating an output intent or communicating the output intent to an output generator to cause a second device to present output that corresponds to the output intent,

wherein the output intent comprises a structured representation of a response to the input intent.

14. The computing device of claim 13 , wherein the first and second virtual assistant applications determine input intents differently using different models.

15. The computing device of claim 13 , wherein the second virtual assistant application modifies the input intent to produce a modified input intent, and the output intent comprises a structured representation of a response to the modified input intent.

16. The computing device of claim 13 , wherein one of the first and second virtual assistant applications is a single user, multiple application virtual assistant and the other of the first and second virtual assistant applications is a multiple user, single application virtual assistant.

17. The computing device of claim 13 , wherein using the pairing information enables the first virtual assistant application to communicate directly with the second virtual assistant application.

18. The computing device of claim 13 , wherein the output intent is determined based on a model that is coupled to the second virtual assistant application, wherein the model is not accessible to the first virtual assistant application.

19. The computing device of claim 13 , further comprising:

determining, based on the pairing information, that the first virtual assistant application has permission to communicate with the second virtual assistant application.

20. The computing device of claim 13 , further comprising:

receiving, by the first virtual assistant application, a notification that the second virtual assistant has generated the output intent.

21. The computing device of claim 13 , wherein establishing a communication connection between the first virtual assistant application and the second virtual assistant application protects communications sent over the communication connection from being accessible to other virtual assistant applications.

22. The computing device of claim 13 , comprising, before establishing the communication connection, determining that both the first and second virtual assistant applications allow the communication connection to be established.

23. The computing device of claim 13 , comprising identifying the second virtual assistant application based on a user preference or a usage history of a user of the first virtual assistant application.

24. The computing device of claim 13 , wherein the first and second virtual assistant applications are embodied in different devices.

25. A computer-program product embodied in a non-transitory machine-readable storage medium, including instructions that, when executed by one or more processors, cause the one or more processors to:

using an input signal received by an input device, determining an input intent,

wherein the input signal comprises a dialog request,

wherein the input intent is determined at least in part by a first virtual assistant application of a first device;

based on the input intent, identifying a second virtual assistant application;

obtaining pairing information;

using the pairing information, establishing a communication connection between the first virtual assistant application and the second virtual assistant application,

wherein the second virtual assistant application is to fulfill the dialog request by generating an output intent or communicating the output intent to an output generator to cause a second device to present output that corresponds to the output intent,

wherein the output intent comprises a structured representation of a response to the input intent.

26. The computer-program product of claim 25 , wherein the first and second virtual assistant applications determine input intents differently using different models.

27. The computer-program product of claim 25 , wherein the second virtual assistant application modifies the input intent to produce a modified input intent, and the output intent comprises a structured representation of a response to the modified input intent.

28. The computer-program product of claim 25 , wherein one of the first and second virtual assistant applications is a single user, multiple application virtual assistant and the other of the first and second virtual assistant applications is a multiple user, single application virtual assistant.

29. The computer-program product of claim 25 , wherein using the pairing information enables the first virtual assistant application to communicate directly with the second virtual assistant application.

30. The computer-program product of claim 25 , wherein the output intent is determined based on a model that is coupled to the second virtual assistant application, wherein the model is not accessible to the first virtual assistant application.

31. The computer-program product of claim 25 , further comprising:

determining, based on the pairing information, that the first virtual assistant application has permission to communicate with the second virtual assistant application.

32. The computer-program product of claim 25 , further comprising:

receiving, by the first virtual assistant application, a notification that the second virtual assistant has generated the output intent.

33. The computer-program product of claim 25 , wherein establishing a communication connection between the first virtual assistant application and the second virtual assistant application protects communications sent over the communication connection from being accessible to other virtual assistant applications.

34. The computer-program product of claim 25 , comprising, before establishing the communication connection, determining that both the first and second virtual assistant applications allow the communication connection to be established.

35. The computer-program product of claim 25 , comprising identifying the second virtual assistant application based on a user preference or a usage history of a user of the first virtual assistant application.

36. The computer-program product of claim 25 , wherein the first and second virtual assistant applications are embodied in different devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2014
From: NITZ, KENNETH C.; LINCOLN, PATRICK D.
To: SRI INTERNATIONAL
Reel/Frame 032100/0497 →
Continuity (2)
Provisional Application 61812698 · Apr 16, 2013
Related Publication 20140310002A1 · Oct 16, 2014
Cited By (28)
US 12,197,712 US 12,197,817 US 12,200,297 US 12,204,932 US 12,211,502 US 12,216,894 US 12,219,314 US 12,236,952 US 12,260,234 US 12,260,858 US 12,277,954 US 12,293,763 US 12,301,635 US 12,327,553 US 12,333,404 US 12,361,943 US 12,367,879 US 12,374,336 US 12,386,434 US 12,386,491 US 12,431,128 US 12,469,033 US 12,477,470 US 12,556,890 US 12,608,171 US 12,613,730 US 12,619,452 US 12,748,568