IP Library › Granted Patent US 11,727,925
Granted Patent B2
US 11,727,925 · App. 17/115,484 · Granted Aug 15, 2023

Cross-device data synchronization based on simultaneous hotword triggers

Inventors: Matthew Sharifi (Kilchberg, CH); Victor Carbune (Zurich, CH)
Assignee: GOOGLE LLC
G10L15/197G06F16/27G06N5/043G06N20/00G10L15/22G10L15/1815G10L2015/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 11,727,925
App. No.
17/115,484
Granted
Aug 15, 2023
Kind
B2
Abstract

Techniques are described herein for cross-device data synchronization based on simultaneous hotword triggers. A method includes: executing a first instance of an automated assistant in an inactive state at least in part on a first computing device operated by a user; while in the inactive state, receiving, via one or more microphones of the first computing device, audio data that captures a spoken utterance of the user; processing the audio data using a machine learning model to generate a predicted output that indicates a probability of one or more hotwords being present in the audio data; determining that the predicted output satisfies a threshold that is indicative of the one or more hotwords being present in the audio data; in response to determining that the predicted output satisfies the threshold, performing arbitration with at least one other computing device that is executing at least in part at least one other instance of the automated assistant; and in response to performing arbitration with the at least one other computing device, initiating synchronization of user data or configuration data between the first instance of the automated assistant on the first computing device and the at least one other instance of the automated assistant on the at least one other computing device, the user data comprising data that is based on one or more interactions with the user at the first computing device, the one or more interactions occurring prior to the receiving of the audio data.

Claims (48)

1. A method implemented by one or more processors, the method comprising:

executing a first instance of an automated assistant in an inactive state at least in part on a first computing device operated by a user;

while in the inactive state, receiving, via one or more microphones of the first computing device, audio data that captures a spoken utterance of the user;

processing the audio data using a machine learning model to generate a predicted output that indicates a probability of one or more hotwords being present in the audio data;

determining that the predicted output satisfies a threshold that is indicative of the one or more hotwords being present in the audio data;

in response to determining that the predicted output satisfies the threshold, performing arbitration with at least one other computing device that is executing at least in part at least one other instance of the automated assistant; and

in response to performing arbitration with the at least one other computing device:

selecting user data for synchronization based on respective capabilities of each of the first computing device and the at least one other computing device; and

initiating bidirectional synchronization of the user data between the first instance of the automated assistant on the first computing device and the at least one other instance of the automated assistant on the at least one other computing device, wherein the bidirectional synchronization occurs at the first computing device and the at least one other computing device, the user data comprising data that is based on one or more interactions with the user at the first computing device, the one or more interactions occurring prior to the receiving of the audio data.

2. The method according to claim 1 , further comprising, prior to initiating bidirectional synchronization of the user data, determining that permission has been received from the user to perform synchronization of the user data between the first instance of the automated assistant on the first computing device and the at least one other instance of the automated assistant on the at least one other computing device.

3. The method according to claim 1 , further comprising, prior to initiating bidirectional synchronization of the user data, determining that there is a match between registered user profiles stored on each of the first computing device and the at least one other computing device.

4. The method according to claim 1 , further comprising, prior to initiating bidirectional synchronization of the user data, determining that there is a match between an attribute of the user that is identified as a joint secret and stored on each of the first computing device and the at least one other computing device.

5. The method according to claim 4 , wherein the joint secret is based on a date of birth of the user, an email address of the user, a phone number of the user, or preferences of the user.

6. The method according to claim 1 , wherein the user data that is synchronized comprises a personalized hotword model, a personalized speech recognition model, or a personalized query interpretation model.

7. The method according to claim 1 , wherein the user data that is synchronized comprises recently issued queries of the user.

8. The method according to claim 1 , wherein the user data that is synchronized comprises preferences of the user.

9. The method according to claim 1 , wherein the user data that is synchronized comprises a private knowledge graph of the user.

10. The method according to claim 1 , further comprising, in response to performing arbitration with the at least one other computing device, initiating synchronization of configuration data, the configuration data comprising settings of the first computing device or settings of the at least one other computing device.

11. A computer program product comprising one or more non-transitory computer-readable storage media having program instructions collectively stored on the one or more non-transitory computer-readable storage media, the program instructions executable to:

execute a first instance of an automated assistant in an inactive state at least in part on a first computing device operated by a user and execute a second instance of the automated assistant in the inactive state at least in part on a second computing device operated by the user;

while in the inactive state, receive, via one or more microphones of the first computing device, first audio data and receive, via one or more microphones of the second computing device, second audio data, the first audio data and the second audio data each capturing a spoken utterance of the user;

process, at the first computing device, the first audio data received via the one or more microphones of the first computing device to generate a first predicted output that indicates a probability of one or more synchronization hotwords being present in the first audio data received via the one or more microphones of the first computing device;

process, at the second computing device, the second audio data received via the one or more microphones of the second computing device to generate a second predicted output that indicates a probability of the one or more synchronization hotwords being present in the second audio data received via the one or more microphones of the second computing device;

determine that the first predicted output satisfies a first threshold that is indicative of the one or more synchronization hotwords being present in the first audio data and that the second predicted output satisfies a second threshold that is indicative of the one or more synchronization hotwords being present in the second audio data;

in response to determining that the first predicted output satisfies the first threshold and the second predicted output satisfies the second threshold, perform arbitration between the first instance of the automated assistant on the first computing device and the second instance of the automated assistant on the second computing device; and

in response to performing arbitration between the first instance of the automated assistant on the first computing device and the second instance of the automated assistant on the second computing device:

select user data for synchronization based on respective capabilities of each of the first computing device and the second computing device; and

initiate bidirectional synchronization of the user data between the first instance of the automated assistant on the first computing device and the second instance of the automated assistant on the second computing device, wherein the bidirectional synchronization occurs at the first computing device and the second computing device, the user data comprising data based on one or more interactions with the user at the first computing device prior to the receiving of the first audio data and data based on one or more interactions with the user at the second computing device prior to the receiving of the second audio data.

12. The computer program product according to claim 11 , wherein the program instructions are further executable to transition the first instance of the automated assistant on the first computing device and the second instance of the automated assistant on the second computing device into an active state in response to determining that the first predicted output satisfies the first threshold and the second predicted output satisfies the second threshold.

13. The computer program product according to claim 12 , wherein the program instructions are further executable to, prior to initiating bidirectional synchronization of the user data, determine that permission has been received from the user to perform synchronization of the user data between the first instance of the automated assistant on the first computing device and the second instance of the automated assistant on the second computing device.

14. The computer program product according to claim 12 , wherein the program instructions are further executable to, prior to initiating bidirectional synchronization of the user data, determine that there is a match between registered user profiles stored on each of the first computing device and the second computing device.

15. The computer program product according to claim 12 , wherein the program instructions are further executable to, prior to initiating bidirectional synchronization of the user data, determine that there is a match between an attribute of the user that is identified as a joint secret and stored on each of the first computing device and the second computing device.

16. A system comprising:

a processor, a computer-readable memory, one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, the program instructions executable to:

execute a first instance of an automated assistant in an inactive state at least in part on a first computing device operated by a user;

while in the inactive state, receive, via one or more microphones of the first computing device, audio data that captures a spoken utterance of the user;

process the audio data using a machine learning model to generate a predicted output that indicates a probability of one or more synchronization hotwords being present in the audio data;

determine that the predicted output satisfies a threshold that is indicative of the one or more synchronization hotwords being present in the audio data;

in response to determining that the predicted output satisfies the threshold, identify at least one other computing device executing at least in part at least one other instance of the automated assistant, the at least one other computing device also having received the audio data; and

in response to identifying the at least one other computing device:

select user data for synchronization based on respective capabilities of each of the first computing device and the at least one other computing device; and

initiate bidirectional synchronization of the user data between the first instance of the automated assistant on the first computing device and the at least one other instance of the automated assistant on the at least one other computing device, wherein the bidirectional synchronization occurs at the first computing device and the at least one other computing device, the user data comprising data based on one or more interactions with the user at the first computing device prior to the receiving of the audio data.

17. The system according to claim 16 , wherein the user data that is synchronized comprises a personalized hotword model, a personalized speech recognition model, or a personalized query interpretation model.

18. The system according to claim 16 , wherein the user data that is synchronized comprises recently issued queries of the user.

19. The system according to claim 16 , wherein the user data that is synchronized comprises preferences of the user.

20. The system according to claim 16 , wherein:

the at least one other computing device includes a new device, and

the one or more synchronization hotwords comprise a hotword used to initiate setup for the new device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2020
From: SHARIFI, MATTHEW; CARBUNE, VICTOR
To: GOOGLE LLC
Reel/Frame 054582/0388 →
Continuity (2)
Provisional Application 63091299 · Oct 13, 2020
Related Publication 20220115009A1 · Apr 14, 2022
Cited By (2)
US 12,230,266 US 12,272,360