EP-4354840-B1 - DISTRIBUTED PERSONAL ASSISTANT
Inventors
- ZEITLIN, NICOLAS
Dates
- Publication Date
- 20260506
- Application Date
- 20160531
Claims (8)
- A method (980), comprising: at an electronic device configured to transmit and receive data: receiving (982) a user request for a service from a virtual assistant at the electronic device; determining (984) a plurality of tasks to perform in response to the user request; estimating (986) at least one performance characteristic for completion of at least one task of the plurality of tasks with the electronic device and with a server, based on at least one heuristic, wherein: at least one heuristic is: a network availability at the electronic device; and/or a network speed available to the electronic device; and/or an available memory space at the electronic device; and/or a processing speed of the electronic device; and/or an operating system of the electronic device; and/or a type of the electronic device; and/or a location of the electronic device; and/or a characteristic of the at least one task; and estimating the at least one performance characteristic includes: determining (988), based on the at least one heuristic, a speed with which each of the electronic device and the server is able to execute the at least one task; and determining (990) whether a difference between the speed with which the electronic device is able to execute the at least one task and the speed with which the server is able to execute the at least one task is less than a threshold; in response to determining that the difference is less than the threshold: causing (1018) both the electronic device and the server to execute the at least one task; utilizing (1020), at the electronic device, results of a first of the electronic device and the server to execute the at least one task; and discarding, at the electronic device, results of a second of the electronic device and the server to execute the at least one task; and in response to determining that the difference is not less than the threshold: determining, based on the at least one performance characteristic, whether to execute the at least one task at one of the electronic device and the server; in accordance with a determination to execute the at least one task at the electronic device, causing (998) execution of the at least one task at the electronic device; and in accordance with a determination to execute the at least one task at the server, causing (1008) execution of the at least one task at the server.
- The method of claim 1, wherein causing the execution of the at least one task at the server includes: generating executable code for carrying out the at least one task; and transmitting the executable code from the electronic device to the server.
- The method of claims 1-2, wherein the speed with which the server is able to execute the at least one task is determined based at least in part on previous interaction with the server.
- The method of any of claims 1-3, further comprising: after causing the execution of the at least one task at the server, receiving, at the electronic device, information associated with the execution of the at least one task at the server.
- The method of claim 4, wherein the information associated with the execution of the at least one task includes a speed with which the server executed the at least one task.
- The method of any of claims 4-5, wherein the information associated with the execution of the at least one task at the server includes results of the execution of the at least one task at the server.
- A computer-readable storage medium comprising one or more programs, the one or more programs comprising instructions, which when executed by an electronic device, cause the electronic device to perform the methods of any one of claims 1-6.
- An electronic device, comprising: one or more processors; a memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any of claims 1-6.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application Serial No. 62/215,647, entitled "DISTRIBUTED PERSONAL ASSISTANT," filed on September 8, 2015 and U.S. Patent Application Serial No. 15/166,090, entitled "DISTRIBUTED PERSONAL ASSISTANT," filed on May 26, 2016. FIELD The present disclosure relates generally to a virtual assistant, and more specifically to executing tasks with a virtual assistant. BACKGROUND Intelligent automated assistants (or digital assistants) provide a beneficial interface between human users and electronic devices. Such assistants allow users to interact with devices or systems using natural language in spoken and/or text forms. For example, a user can access the services of an electronic device by providing a spoken user request to a digital assistant associated with the electronic device. The digital assistant can interpret the user's intent from the spoken user request and operationalize the user's intent into tasks. The tasks can then be performed by executing one or more services of the electronic device and a relevant output can be returned to the user in natural language form. US 2006/184626 Al describes an approach for allocating application tasks between a server and/or a client based upon available client resources. US 2014/143784 Al describes a wearable computing device having processors for determining whether to delegate a task to be processed by a local computing device. Niroshinie Fernando ET AL: "Mobile cloud computing: A survey", Future Generation Computer Systems, 29(1), pp. 84-106 (2013) describes an architecture whereby mobile applications can be executed on external resource providers. WO 2015/001850 A1 describes a distributed task allocation system. BRIEF SUMMARY To the extent that tasks that are handled by a virtual assistant are performed at a server remote to the electronic device, the speed of task execution may become undesirably slow for a number of reasons. To the extent that tasks that are handled by a virtual assistant are performed at the electronic device itself, the speed of executing tasks also may become undesirably slow. Accordingly, the present technique provides electronic devices with faster, more efficient methods for performing tasks with a digital assistant. Such methods and interfaces optionally complement or replace other methods for performing tasks with a digital assistant. Such methods and interfaces reduce the cognitive burden on a user and produce a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces may conserve power, increase the time between battery charges, and decrease the time required to perform tasks. Executable instructions for performing these functions are, optionally, included in a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors. Executable instructions for performing these functions are, optionally, included in a transitory computer-readable storage medium or other computer program product configured for execution by one or more processors. Thus, devices are provided with faster, more efficient methods and interfaces for task execution by a virtual assistant, thereby increasing the effectiveness, efficiency, and user satisfaction with such devices. Such methods and interfaces may complement or replace other methods for task execution by a virtual assistant. DESCRIPTION OF THE FIGURES For a better understanding of the various described embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures. FIG. 1 is a block diagram illustrating a system and environment for implementing a digital assistant according to various examples.FIG. 2A is a block diagram illustrating a portable multifunction device implementing the client-side portion of a digital assistant according to various examples.FIG. 2B is a block diagram illustrating exemplary components for event handling according to various examples.FIG. 3 illustrates a portable multifunction device implementing the client-side portion of a digital assistant according to various examples.FIG. 4 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface according to various examples.FIG. 5A illustrates an exemplary user interface for a menu of applications on a portable multifunction device according to various examples.FIG. 5B illustrates an exemplary user interface for a multifunction device with a touch-sensitive surface that is separate from the display according to various examples.FIG. 6A illustrates a personal electronic device according to various examples.FIG. 6B is a block diagram illustrating a personal electronic device according to various examples.FIG. 7A is a block diagram illustrating