IP Library › Granted Patent US 12,597,425
Granted Patent B1
US 12,597,425 · App. 17/957,271 · Granted Apr 7, 2026

Data routing in a multi-assistant context

Inventors: David Henry (New York, NY); Kenneth Chung Leung Chan (Burnaby, CA); Akshai Prabhu (Toronto, CA); Yilin Zhu (North York, CA); Alain Soquet (Mialet, FR)
Assignee: Amazon Technologies, Inc.
G10L15/22G10L15/08G10L2015/088G10L2015/223
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 12,597,425
App. No.
17/957,271
Filed
Sep 30, 2022
Granted
Apr 7, 2026
Kind
B1
Art Unit
2657
USPC
704/275
Abstract

Techniques for routing data, in a system including multiple assistants, are described. A user device may store configuration data for a virtual assistant, where the configuration data includes a virtual assistant identifier, one or more resource identifiers, and optionally a virtual assistant name. A resource identifier may correspond to a virtual assistant component implemented by the user device, or a virtual assistant component(s) in communication with the user device. Based on the user device storing the configuration data, the user device may send virtual assistant data to at least one system component, where the virtual assistant data corresponds to each virtual assistant implemented at least partially by the first user device, and the virtual assistant data includes the configuration data. When the user device receives event data associated with a virtual assistant identifier, the user device may use stored configuration data to determine a resource identifier(s) associated with the virtual assistant identifier, associated with the event data. The user device may thereafter send the event data to the component and/or device(s) corresponding to the determined resource identifier(s).

Claims (75)

1 . A computer-implemented method comprising:

presenting, by a first user device capable of executing functionality of a plurality of virtual assistants, a list of virtual assistants;

receiving, by the first user device, a user input selecting for enablement a first virtual assistant from the list of virtual assistants;

in response to the user input selecting for enablement the first virtual assistant from the list of virtual assistants, sending, by the first user device and to a first component of the first virtual assistant in communication with the first user device over at least one network, a request for stored data to configure processing related to the first virtual assistant on the first user device;

in response to sending the request, receiving, by the first user device and from the first component, a first trained machine learning model configured to perform wakeword detection processing to detect a wakeword corresponding to the first virtual assistant; and

configuring a wakeword detection component of the first user device using the first trained machine learning model, wherein configuring the wakeword detection component enables the first user device to detect the wakeword corresponding to the first virtual assistant.

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

causing an application, installed on the first user device, to include a graphical user interface configured to present virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device.

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

in response to sending the request, receiving, by the first user device and from the first component, a second trained machine learning model configured to perform automatic speech recognition (ASR) processing with respect to at least one spoken natural language user input capable of being processed by the first virtual assistant; and

configuring an ASR component of the first user device using the second trained machine learning model.

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

sending, by the first user device and to the first component of the first virtual assistant, virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device;

based on receiving the virtual assistant data, determining, by the first component of the first virtual assistant, profile data associated with the first user device;

determining a second user device indicated in the profile data; and

sending the first trained machine learning model to the second user device to enable the second user device to detect the wakeword corresponding to the first virtual assistant.

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

after configuring the wakeword detection component, receiving, by the first user device, input audio data including a spoken user input; and

processing, by the first user device using the wakeword detection component, the input audio data to determine the spoken user input comprises the wakeword corresponding to the first virtual assistant.

6 . A computer-implemented method comprising:

presenting, by a first user device capable of executing functionality of a plurality of virtual assistants, a list of virtual assistants;

receiving, by the first user device, a user input selecting for enablement a first virtual assistant from the list of virtual assistants;

in response to the user input selecting for enablement the first virtual assistant from the list of virtual assistants, sending, by the first user device and to a first component of the first virtual assistant in communication with the first user device over at least one network, a request for stored data to configure processing related to the first virtual assistant on the first user device;

in response to sending the request, receiving, by the first user device and from the first component, a first trained machine learning model usable to perform first processing corresponding to the first virtual assistant; and

configuring a component of the first user device using the first trained machine learning model, wherein configuring the component of the first user device enables the first user device to perform the first processing corresponding to the first virtual assistant.

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

causing an application, installed on the first user device, to include a graphical user interface configured to present virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device.

8 . The computer-implemented method of claim 6 , wherein:

the first trained machine learning model is usable to perform wakeword detection processing to detect a wakeword corresponding to the first virtual assistant; and

configuring the component of the first user device comprises configuring a wakeword detection component of the first user device to detect the wakeword corresponding to the first virtual assistant.

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

sending, by the first user device and to the first component of the first virtual assistant, virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device;

based on receiving the virtual assistant data, determining, by the first component of the first virtual assistant, a second user device associated with the first user device; and

sending the first trained machine learning model to the second user device to enable the second user device to perform the first processing corresponding to the first virtual assistant.

10 . The computer-implemented method of claim 6 , wherein the first trained machine learning model is usable to perform automatic speech recognition processing with respect to at least one spoken natural language user input capable of being processed by the first virtual assistant.

11 . The computer-implemented method of claim 6 , wherein the first trained machine learning model is usable to perform natural language understanding processing with respect to at least one natural language user input capable of being processed by the first virtual assistant.

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

receiving, by the first user device and from a second component in communication with the first user device via at least one network, directive data intended for the first virtual assistant;

identifying a routing rule indicating a type of processing permitted to be performed by the first virtual assistant;

determining the directive data corresponds to the type of processing permitted to be performed by the first virtual assistant; and

based on determining that the directive data corresponds to the type of processing permitted to be performed by the first virtual assistant, sending the directive data to the first component for processing.

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

receiving, from a second component of the first virtual assistant implemented by the first user device, directive data intended for a recipient;

identifying a routing rule indicating a type of directive permitted to be sent by the first virtual assistant;

determining the directive data corresponds to the type of directive permitted to be sent by the first virtual assistant; and

based on determining that the directive data corresponds to the type of directive permitted to be sent by the first virtual assistant, sending the directive data to the recipient.

14 . A computing system comprising:

at least one processor; and

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

present, by a first user device capable of executing functionality of a plurality of virtual assistants, a list of virtual assistants;

receive, by the first user device, a user input selecting for enablement a first virtual assistant from the list of virtual assistants;

in response to the user input selecting for enablement the first virtual assistant from the list of virtual assistants, send, by the first user device and to a first component of the first virtual assistant in communication with the first user device over at least one network, a request for stored data to configure processing related to the first virtual assistant on the first user device;

in response to sending the request, receive, by the first user device and from the first component, a first trained machine learning model usable to perform first processing corresponding to the first virtual assistant; and

configure a component of the first user device using the first trained machine learning model, wherein configuring the component of the first user device enables the first user device to perform the first processing corresponding to the first virtual assistant.

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

cause an application, installed on the first user device, to include a graphical user interface configured to present virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device.

16 . The computing system of claim 14 , wherein:

the first trained machine learning model is usable to perform wakeword detection processing to detect a wakeword corresponding to the first virtual assistant; and

configuring the component of the first user device comprises configuring a wakeword detection component of the first user device to detect the wakeword corresponding to the first virtual assistant.

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

send, by the first user device and to the first component of the first virtual assistant, virtual assistant data indicating the first virtual assistant has been enabled for execution by the first user device;

based on receiving the virtual assistant data, determine, by the first component of the first virtual assistant, a second user device associated with the first user device; and

send the first trained machine learning model to the second user device to enable the second user device to perform the first processing corresponding to the first virtual assistant.

18 . The computing system of claim 14 , wherein the first trained machine learning model is usable to perform automatic speech recognition processing with respect to at least one spoken natural language user input capable of being processed by the first virtual assistant.

19 . The computing system of claim 14 , wherein the first trained machine learning model is usable to perform natural language understanding processing with respect to at least one natural language user input capable of being processed by the first virtual assistant.

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

receive, by the first user device and from a second component in communication with the first user device via at least one network, directive data intended for the first virtual assistant;

identify a routing rule indicating a type of processing permitted to be performed by the first component of the first virtual assistant;

determine the directive data corresponds to the type of processing permitted to be performed by the first virtual assistant; and

based on determining that the directive data corresponds to the type of processing permitted to be performed by the first virtual assistant, send the directive data to the first component for processing.

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

receive, from a second component of the first virtual assistant implemented by the first user device, directive data intended for a recipient;

identify a routing rule indicating a type of directive permitted to be sent by the first virtual assistant;

determine the directive data corresponds to the type of directive permitted to be sent by the first virtual assistant; and

based on determining that the directive data corresponds to the type of directive permitted to be sent by the first virtual assistant, send the directive data to the recipient.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2024
From: HENRY, DAVID; CHAN, KENNETH CHUNG LEUNG; PRABHU, AKSHAI; ZHU, YILIN; SOQUET, ALAIN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 067430/0001 →
References Cited (99)
US 8028314B1 · Sezan · 2011 [cited by examiner]
US 9547468B2 · Yen · 2017 [cited by examiner]
US 9721570B1 · Beal · 2017 [cited by examiner]
US 10205698B1 · Petersen · 2019 [cited by examiner]
US 10218651B2 · Schubert · 2019 [cited by examiner]
US 10497361B1 · Rule · 2019 [cited by examiner]
US 10514888B1 · Rodgers · 2019 [cited by examiner]
US 10540711B1 · Gau · 2020 [cited by examiner]
US 10608966B1 · Landowski · 2020 [cited by examiner]
US 10623246B1 · Iyer · 2020 [cited by examiner]
US 10832681B1 · Jethva · 2020 [cited by examiner]
US 10909442B1 · Szarvas · 2021 [cited by examiner]
US 10909983B1 · Peng · 2021 [cited by examiner]
US 11076018B1 · Mehta · 2021 [cited by examiner]
US 11100923B2 · Fainberg · 2021 [cited by examiner]
US 11133004B1 · Naik · 2021 [cited by examiner]
US 11164570B2 · Nadkar · 2021 [cited by examiner]
US 11176933B1 · Gundeti · 2021 [cited by examiner]
US 11188808B2 · Wang · 2021 [cited by examiner]
US 11258671B1 · Vora · 2022 [cited by examiner]
US 11295743B1 · Bumberger · 2022 [cited by examiner]
US 11355098B1 · Zhong · 2022 [cited by examiner]
US 11361764B1 · Zhao · 2022 [cited by examiner]
US 11399028B1 · Krishnamoorthy · 2022 [cited by examiner]
US 11455987B1 · Dabas · 2022 [cited by examiner]
US 11516211B2 · Bulpin · 2022 [cited by examiner]
US 11528274B1 · Krishnamoorthy · 2022 [cited by examiner]
US 11670285B1 · Crews · 2023 [cited by examiner]
US 11682393B2 · Jain · 2023 [cited by examiner]
US 11763809B1 · Bobbili · 2023 [cited by examiner]
US 11783831B1 · Lantin · 2023 [cited by examiner]
US 11853401B1 · Nookula · 2023 [cited by examiner]
US 11991253B2 · Kaplan · 2024 [cited by examiner]
US 12142298B1 · Kottur · 2024 [cited by examiner]
US 12424215B2 · Stahl · 2025 [cited by examiner]
US 20110096913A1 · Mahalingam · 2011 [cited by examiner]
US 20140244712A1 · Walters · 2014 [cited by examiner]
US 20150242760A1 · Miao · 2015 [cited by examiner]
US 20160360039A1 · Sanghavi · 2016 [cited by examiner]
US 20170242860A1 · Souche · 2017 [cited by examiner]
US 20180060031A1 · Boesen · 2018 [cited by examiner]
US 20180061420A1 · Patil · 2018 [cited by examiner]
US 20180108343A1 · Stevans · 2018 [cited by examiner]
US 20180204569A1 · Nadkar · 2018 [cited by examiner]
US 20180286400A1 · Seo · 2018 [cited by examiner]
US 20180293484A1 · Wang · 2018 [cited by examiner]
US 20180314689A1 · Wang · 2018 [cited by examiner]
US 20190089831A1 · Medlen · 2019 [cited by examiner]
US 20190147850A1 · Almudafar-Depeyrot · 2019 [cited by examiner]
US 20190332400A1 · Spoor · 2019 [cited by examiner]
US 20190342727A1 · Park · 2019 [cited by examiner]
US 20200027452A1 · Rangarajan · 2020 [cited by examiner]
US 20200073692A1 · Rao · 2020 [cited by examiner]
US 20200104123A1 · Laschet · 2020 [cited by examiner]
US 20200105273A1 · O'Donovan · 2020 [cited by examiner]
US 20200137230A1 · Spohrer · 2020 [cited by examiner]
US 20200356379A1 · Gopisetti · 2020 [cited by examiner]
US 20210043205A1 · Lee · 2021 [cited by examiner]
US 20210192078A1 · Cosman · 2021 [cited by examiner]
US 20210287673A1 · Kaplan · 2021 [cited by examiner]
US 20210304769A1 · Ye · 2021 [cited by examiner]
US 20210312138A1 · Kaplan · 2021 [cited by examiner]
US 20210338177A1 · Cavalli · 2021 [cited by examiner]
US 20220115009A1 · Sharifi · 2022 [cited by examiner]
US 20220129556A1 · Chen · 2022 [cited by examiner]
US 20220148592A1 · Maury · 2022 [cited by examiner]
US 20220157323A1 · Verma · 2022 [cited by examiner]
US 20220180867A1 · Bobbili · 2022 [cited by examiner]
US 20220232084A1 · Shetty · 2022 [cited by examiner]
US 20220245606A1 · Chauhan · 2022 [cited by examiner]
US 20220318655A1 · Moon · 2022 [cited by examiner]
US 20220321405A1 · Cox · 2022 [cited by examiner]
US 20220357801A1 · Udall · 2022 [cited by examiner]
US 20230050655A1 · Song · 2023 [cited by examiner]
US 20230108256A1 · Kaplan · 2023 [cited by examiner]
US 20230119043A1 · Crettenand · 2023 [cited by examiner]
US 20230131099A1 · Anamandra · 2023 [cited by examiner]
US 20230179855A1 · Liu · 2023 [cited by examiner]
US 20230186902A1 · Fu · 2023 [cited by examiner]
US 20230297849A1 · Cheng · 2023 [cited by examiner]
US 20230298593A1 · Ramos · 2023 [cited by examiner]
US 20230318930A1 · Yarabolu · 2023 [cited by examiner]
US 20230353512A1 · Gollareddy · 2023 [cited by examiner]
US 20230368773A1 · Mishra · 2023 [cited by examiner]
US 20240021205A1 · Singh · 2024 [cited by examiner]
US 20240037128A1 · Koneru · 2024 [cited by examiner]
US 20240037205A1 · Bhatt · 2024 [cited by examiner]
US 20240071378A1 · Jonker · 2024 [cited by examiner]
US 20240086461A1 · Varakin · 2024 [cited by examiner]
US 20240096343A1 · Wei · 2024 [cited by examiner]
US 20240146582A1 · Wang · 2024 [cited by examiner]
US 20240146776A1 · Hansen · 2024 [cited by examiner]
US 20240221755A1 · Bromand · 2024 [cited by examiner]
US 20240296838A1 · Ramakrishna · 2024 [cited by examiner]
US 20240310957A1 · Shen · 2024 [cited by examiner]
US 20250008306A1 · Allsbrook · 2025 [cited by examiner]
US 20250094855A1 · Chasnov · 2025 [cited by examiner]
EP 4550313A1 · 2025 [cited by examiner]
WO WO2020236309A1 · 2020 [cited by examiner]