EP-4152315-B1 - CROSS-DEVICE HANDOFFS
Inventors
- VAN SCHELTINGA, ANDREA TERWISSCHA
- SABUR, ZAHEED
- REUTOV, MICHAEL
- GILDA, PRATIK
Dates
- Publication Date
- 20260506
- Application Date
- 20180515
Claims (6)
- A method implemented using one or more processors, the method comprising: receiving (406, 502) an indication of an assistant query received by a first computing device (110A) from a user, wherein the assistant query forms at least part of a conversation (132) between the user and a first assistant executing at the first computing device (110A); determining (412, 504), based on the assistant query, to handoff the conversation from the first assistant executing at the first computing device (110A) to a second assistant executing at a second computing device (110B), wherein; determining to handoff the conversation to the second assistant executing at the second computing device comprises: determining the physical proximity of a plurality of computing devices to the first computing device (110A), wherein the plurality of computing devices are computing devices associated with the user that are available to receive handoff of the conversation and are capable of presenting a response to the assistant query, and selecting the second computing device (110B) from the plurality of devices based on it being physically nearest to the first computing device; and providing (424, 506), in response to determining to handoff the conversation and based on selecting the second computing device (110B), an indication of the conversation to the second computing device (110B).
- The method of claim 1, wherein determining the physical proximities comprises determining the physical proximities based on short-range communications between the plurality of computing devices and the first computing device.
- The method of claim 1, wherein determining the physical proximities comprises determining the physical proximities based on querying the plurality of computing devices for their current location.
- A system (100), comprising: memory storing instructions; one or more processors operable to execute the instructions to cause the one or more processors to: receive (406, 502) an indication of an assistant query received by a first computing device (110A) from a user, wherein the assistant query forms at least part of a conversation (132) between the user and a first assistant executing at the first computing device (110A); determine (412, 504), based on the assistant query, to handoff the conversation from the first assistant executing at the first computing device (110A) to a second assistant executing at a second computing device (110B), wherein; determine to handoff the conversation to the second assistant executing at the second computing device (110B) comprises: determine the physical proximity of a plurality of computing devices to the first computing device (110A), wherein the plurality of computing devices are computing devices associated with the user that are available to receive handoff of the conversation and are capable of presenting a response to the assistant query, and select the second computing device (110B) from the plurality of devices based on it being physically nearest to the first computing device (110A); and provide (424, 506), in response to determining to handoff the conversation and based on selecting the second computing device (110B), an indication of the conversation to the second computing device (110B).
- The system of claim 4, wherein in determining the physical proximities one or more of the processors are to determine the physical proximities based on short-range communications between the plurality of computing devices and the first computing device.
- The system of claim 4, wherein in determining the physical proximities one or more of the processors are to determine physical proximities based on querying the plurality of computing devices for their current location.
Description
BACKGROUND Some computing platforms may provide a user interface from which a user can chat, speak, or otherwise communicate with a virtual, computational assistant (e.g., also referred to as "an intelligent personal assistant," "an interactive assistant," "an assistant module," or simply as an "assistant") to cause the assistant to output information, respond to a user's requests, or otherwise perform certain operations to help the user complete a task. Some assistants may execute on a variety of different computing platforms having different capabilities. For example, some computing platforms may only provide an audio-based user interface for communicating between the user and the assistant while other computing platforms may provide both an audio-based user interface (e.g., microphones and speakers) as well as a visually-based user interface (e.g., a graphical user interface) for communicating between the user and the assistant. US 2015/169284 A1 describes a system comprising at least one processor configured to perform: receiving a first request to access a first user profile of a first user from a first device configured to execute a first virtual assistant to interact with the first user; in response to receiving the first request, providing the first device with access to information in the first user profile so that the first virtual assistant is able to customize, based on the accessed information, its behavior when interacting with the first user; receiving a second request to access the first user profile from a second device configured to execute a second virtual assistant to interact with the first user; and in response to receiving the second request, providing the second device with access to the information so that the second virtual assistant is able to customize, based on the accessed information, its behavior when interacting with the first user. US 2014/245140 A1 describes techniques for transferring an interaction with a virtual assistant from a smart device to another smart device. The virtual assistant may act as an interface between an end user and content stored locally or remotely. The techniques may include outputting the virtual assistant on the smart device to facilitate an interaction of the virtual assistant with a user. Thereafter, the virtual assistant may be output on the other smart device to continue the interaction of the virtual assistant with the user on the other smart device. In some instances, one or more pieces of context of the interaction of the virtual assistant with the user are transferred with the virtual assistant to the other smart device. SUMMARY The invention is set out in the appended set of claims. BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a conceptual diagram illustrating an example system that executes one or more example virtual assistants, in accordance with one or more aspects of the present disclosure.FIG. 2 is a block diagram illustrating an example computing device that is configured to execute an example virtual assistant, in accordance with one or more aspects of the present disclosure.FIG. 3 is a block diagram illustrating an example digital assistant server that is configured to execute an example virtual assistant, in accordance with one or more aspects of the present disclosure.FIG. 4 is a flowchart illustrating example operations performed by one or more processors executing one or more example virtual assistants, in accordance with one or more aspects of the present disclosure.FIG. 5 is a flow diagram illustrating example operations of a computing system for performing a handoff of a conversation between a user and an example virtual assistant, in accordance with one or more techniques of the present disclosure. DETAILED DESCRIPTION FIG. 1 is a conceptual diagram illustrating an example system that executes one or more example virtual assistants, in accordance with one or more aspects of the present disclosure. System 100 of FIG. 1 includes digital assistant server 160 in communication, via network 130, with computing devices 11 OA and HOB (collectively, computing devices 110). Although system 100 is shown as being distributed amongst digital assistant server 160 and computing devices 110, in other examples, the features and techniques attributed to system 100 may be performed internally, by local components of computing devices 110. Similarly, digital assistant server 160 may include certain components and perform various techniques that are otherwise attributed in the below description to computing devices 110. Although FIG. 1 illustrates two computing devices 110A and HOB, any suitable number of two or more computing devices 110 may be used. Computing devices 110 may communicate with digital assistant server 160 via network 130 to access the virtual assistant service provided by digital assistant server 160. Network 130 represents any public or private communications network, for instance, cellular, Wi-Fi, and/or other types of networks