Form for authorizing access when operating automated assistant-enabled vehicle
By allowing other users to provide authorization through input in the vehicle, overcoming the limitations of the automation assistant, solving the problem that restricted users cannot access restricted data, realizing resource retention and efficient response of the automation assistant.
Patent Information
- Application Number
- CN202411410018.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2019-02-28
- Publication Date
- 2025-02-21
AI Technical Summary
When using automation assistants in vehicles, restricted users cannot directly access restricted data or execute restricted commands, resulting in waste of computing resources and network bandwidth.
By allowing other users to provide authorization through input, overcoming limitations, the automation assistant can continue to execute the user's commands without further input. The authorization may be provided by oral discourse or other input forms, such as through an interface of a vehicle computing device.
Reduces the number of interactions between vehicle computing devices and servers, retains computing resources and network bandwidth, and improves the responsiveness and efficiency of automation assistants.
Smart Images

Figure CN119489766A_ABST
Abstract
Description
Description of the case
[0001] This application is a divisional application of Chinese invention patent application No. 201980085066.6, with a filing date of February 28, 2019. Technical Field
[0002] The present disclosure relates to modalities for authorizing access when operating a vehicle with an automated assistant enabled. Background Art
[0003] A human may engage in a human-machine conversation with an interactive software application, referred to herein as an "automated assistant" (also referred to as a "digital agent," "chatbot," "interactive personal assistant," "intelligent personal assistant," "assistant application," "conversational agent," etc.). For example, a human (who may be referred to as a "user" when they interact with an automated assistant) may provide commands and / or requests to the automated assistant using spoken natural language input (i.e., utterances) that may in some cases be converted to text and then processed and / or by providing textual (e.g., typed) natural language input.
[0004] Automated assistants may be integrated into a variety of electronic devices, including vehicles. Unlike other computing devices, such as mobile phones, vehicles are typically moved over a large area and are therefore more susceptible to bandwidth limitations during communications with external servers. This may be caused in part by the vehicle moving through areas that do not provide adequate network coverage. This may negatively impact automated assistant operations, which may involve multiple round trips between the vehicle computing device and the remote server.
[0005] The automated assistant may access publicly available data as well as user-specific data, which may be associated with an individual user account served by the automated assistant. An automated assistant that provides services to multiple users may have multiple accounts, each with different data available. Furthermore, while the automated assistant is providing services to one account, the automated assistant may not be able to access user-specific data for another account. Thus, if one user makes a request to the automated assistant, and a response to the request involves accessing a second user account, the automated assistant may not be able to complete the request and repeat the request without prompting the second user to log into their account. As a result, computing resources and communication resources, such as network bandwidth and channel usage time, may be consumed by increasing the number of interactions between the vehicle computing device and the server. Summary of the invention
[0006] Implementations described herein involve limiting the responsiveness of a vehicle automated assistant based on one or more restrictions that are used to determine whether certain input commands and / or certain users are restricted in certain vehicle environments. In addition, implementations described herein allow other users to overcome certain restrictions by providing authorization via input from a vehicle computing device or other computing device. Allowing other users to overcome such restrictions can preserve computing resources because fewer processing resources and network bandwidth will be consumed when restricted users do not have to rewrite and resubmit certain inputs in a manner that makes the input permissible. For example, a passenger who provides verbal input to a vehicle automated assistant (e.g., "Assistant, send a message to Karen") may be denied because the passenger is not the owner of the vehicle or is allowed to access contacts accessible to the vehicle automated assistant. As a result, the vehicle automated assistant may provide a response such as “I'm sorry, you are not authorized for such commands,” and the passenger will have to rephrase and resubmit the verbal input, e.g., “Ok, Assistant, send a message to 971-555-3141.” Such a conversational session between the passenger and the vehicle automated assistant may waste computing resources because subsequent verbal input must be converted to audio data, transmitted over the network, and subsequently processed. This may be particularly undesirable in situations where available bandwidth is limited or variable, such as, for example, in a moving vehicle, because the channel for communicating data from the assistant device over the network may be used longer than is desirable. The length of time such a channel is used may affect not only the operation of the automated assistant, but also other software applications that rely on the network to transmit and receive information. For example, such software applications may exist in the same device as the automated assistant (e.g., other in-vehicle software applications). However, implementations provided herein may eliminate this waste of computing and communication resources by at least allowing other users to authorize execution of certain input commands from a user without requiring the user to resubmit the command.
[0007] In some implementations, the vehicle computing device and / or the automated assistant may operate according to one or more different restrictions for limiting access to commands and / or data that would otherwise be accessible via the vehicle computing device and / or the automated assistant. Restrictions may characterize one or more specific commands, data, data types, and / or any other input and / or output that may be associated with the automated assistant, thereby limiting certain information available to other users via the automated assistant and / or the vehicle computing device. When a user provides a spoken utterance corresponding to a specific command characterized by a restriction, the automated assistant may respond according to any restrictions associated with the user and / or the specific command. For example, when a user provides a spoken utterance corresponding to data originating at a computing device owned by another user, the spoken utterance may meet criteria for limiting access to such data. However, in response to receiving the spoken utterance, the automated assistant may determine that the criteria are met and wait for authorization from other users. The authorization may be provided to the vehicle computing device and / or a separate computing device by other users via another spoken utterance and / or any other input that can be received at the computing device. In some implementations, a vehicle including a vehicle computing device may include an interface, such as a button (e.g., on a steering wheel of the vehicle), with which the other user may interact (e.g., press the button) to indicate authorization to the automated assistant. In response to the automated assistant receiving the authorization from the other user, the automated assistant may continue to execute the command provided by the user without requesting further input from the user.
[0008] In some implementations, while the other user and the passenger are riding in the vehicle, the other user can restrict the passenger from accessing certain data. Specifically, while the vehicle is navigating along a specific route and / or navigating to a specific destination, the other user can restrict access to certain data. Therefore, when the vehicle completes the route and / or arrives at the specific destination, the restrictions on access to specific data and / or passengers can be lifted, allowing the passenger to access these data subsequently. For example, while the other user is driving the vehicle and the passenger is riding in the vehicle, the passenger can provide a verbal utterance to the automated assistant interface of the vehicle. The verbal utterance can be "Assistant, call Aunt Lucy". In response, and because the verbal utterance includes a request to access the user's contact information, the automated assistant can wait for authorization from the user before fulfilling the request. However, in order to eliminate the need to repeatedly authorize or not authorize a request from a passenger, the user can provide another verbal utterance, such as "Assistant, do not respond to the passenger for theremainder of this trip (Assistant, do not respond to the passenger for the rest of this trip)". In response, the automated assistant may cause restriction data to be generated to restrict access to one or more services that would otherwise be available via the automated assistant (e.g., making a phone call). In this way, the user will not have to repeatedly authorize or unauthorize the automated assistant to respond to requests from the passenger, thereby eliminating waste of computing resources and network resources. In addition, because the access restrictions can be set to "reset" at the end of the trip or upon arrival at the destination, the user does not have to explicitly request to reset the restrictions, thereby further eliminating waste of computing resources and network resources.
[0009] Additionally or alternatively, a user may restrict a passenger's access to certain data indefinitely and / or during the operational life of the vehicle. For example, after a passenger provides the spoken utterance "Assistant, call Aunt Lucy," and while the automated assistant is awaiting authorization from the user, the user may provide a separate spoken utterance (such as "Assistant, never respond to the user"). In response, the automated assistant may cause restriction data to be generated to restrict access to one or more services otherwise available to the particular user via the automated assistant indefinitely (or during the operational life of the vehicle, vehicle computing device, and / or automated assistant).
[0010] In some implementations, depending on the occupancy of the vehicle, the automated assistant and / or the vehicle computing device may operate according to an operating mode that limits access to the automated assistant and / or the vehicle computing device by certain passengers. For example, when the user is the only person occupying the vehicle, the vehicle computing device and / or the automated assistant accessible via the vehicle computing device may operate according to a first operating mode. The occupancy may be determined based on the output of one or more sensors of the vehicle, the vehicle computing device, and / or any other device that can provide outputs based on which the occupancy can be estimated. The first operating mode may be selected based on the occupancy and may provide access to a first set of services, data, and / or commands associated with the automated assistant. When the occupancy is determined to include more than the user, such as when the user is driving with one or more passengers (e.g., a parent driving with multiple children as passengers), a second operating mode may be selected. According to the second operating mode, the user may still access the first set of services, data, and / or commands—however, one or more passengers will only have access to the second set of services, data, and / or commands. In some implementations, the second set may be different from the first set, and / or the second set may be a reduced subset relative to the first set. For example, if a "call" button is pressed on the head unit while only the driver (e.g., a non-restricted user) is in the vehicle, the response can be made using private data without any further authorization. However, if a "call" button is pressed on the head unit while a passenger (e.g., a restricted user) is in the vehicle with the driver, the automated assistant requests further authorization to respond to someone (e.g., a passenger) pressing the "call" button on the head unit.
[0011] While the second operating mode (e.g., shared operating mode) is active, a passenger may attempt to access services, data, and / or commands that are exclusively provided in the first set and not in the second set. To allow such access, a user (e.g., a driver) may provide one or more inputs to the automated assistant and / or the vehicle computing device to authorize such access. For example, a user may provide inputs, such as an interface, such as a button and / or a touch display panel, that may be substantially within the reach of the driver of the vehicle (e.g., a button on a steering wheel, a touch display panel integrated into a dashboard, and / or a console). In some implementations, an authorization input may be provided in response to the automated assistant soliciting authorization from the user (e.g., “Sorry, I need authorization to do that… [authorizing input subsequently received]”). Alternatively, the automated assistant may bypass soliciting authorization from the user and passively wait for a response to a request from the passenger until the user provides an authorization input. However, if the user chooses to have their automated assistant and / or their vehicle computing device operate according to the third operating mode. In a third operating mode in which no option to provide such authorization is available, the automated assistant and / or vehicle computing device may operate such that the availability of certain operations, data, and / or services is limited to certain passengers (at least relative to users who are primary and / or "master" users with respect to the automated assistant and / or vehicle computing device).
[0012] In some implementations, the automated assistant may execute one or more automated assistant routines. An automated assistant routine may correspond to a collection and / or sequence of actions performed and / or initialized by the automated assistant in response to a user providing a specific input. For example, when a user enters their vehicle, the user may provide a verbal utterance such as "Assistant, let's go to work" to cause the automated assistant to execute the "Going to Work" routine. The "Going to Work" routine may involve the automated assistant causing the vehicle computing device to present graphical data corresponding to the user's schedule, presenting audio data corresponding to a podcast selected by the user, and generating a message to the user's spouse indicating that the user is going to work (e.g., "Hi Billy, I'm headed to work"). However, in some cases, a passenger of the vehicle may provide a verbal utterance "Assistant, let's go to work". Depending on the mode in which the vehicle computing device and / or the automated assistant is operating, the automated assistant may request the driver or other authorized user to provide permission for one or more actions to execute the requested route.
[0013] For example, in response to a passenger invoking a "Going to Work" routine, the automated assistant may initiate the execution of presenting audio data corresponding to a particular podcast, and also prompt the driver to authorize other actions of the initialization routine. Specifically, the vehicle computing device and / or the server device may identify the actions of the routine involving access to restricted data. In this case, the vehicle computing device and / or the server device may determine that the user's schedule and the user's contacts (for sending messages) are restricted data. As a result, during the execution of the routine, the driver may be prompted one or more times to give permission to perform any actions involving access to restricted data. If the driver gives authorization by saying an invocation phrase (e.g., "Ok, Assistant") or interacting with an interface (e.g., pressing a button) (e.g., invoking a task via an assistant), the routine may be completed. For example, and in furtherance of the foregoing example, a message may be sent to a spouse and / or the driver's schedule may be audibly presented.
[0014] However, if the driver does not provide authorization (e.g., the driver does not perform the assistant-invoking task), the automated assistant may bypass performing such an action. In some implementations, an alternative action may be provided to the passenger as an option when the driver does not provide authorization to complete the action. For example, instead of audibly presenting the driver's schedule, the automated assistant may audibly present public information about events occurring in a nearby geographic area. Additionally or alternatively, instead of sending a message to the driver's spouse, the automated assistant may audibly prompt the passenger as to whether they want the message to be transmitted via their own account (e.g., "Would you like to login, in order to send a message?"). In this way, restrictions on the driver's data will be enforced while providing assistance to passengers who may be in the vehicle due to, for example, participating in a carpooling activity.
[0015] The above description is provided as an overview of some implementations of the present disclosure. Further descriptions of those implementations and other implementations are described in more detail below.
[0016] Other implementations may include a non-transitory computer-readable storage medium storing instructions executable by one or more processors (e.g., a central processing unit (CPU), a graphics processing unit (GPU), and / or a tensor processing unit (TPU)) to perform a method such as one or more of the methods described below and / or elsewhere herein. Still other implementations may include a system of one or more computers and / or one or more robots including one or more processors operable to execute stored instructions to perform a method such as one or more of the methods described below and / or elsewhere herein.
[0017] It should be appreciated that all combinations of the foregoing concepts and additional concepts described in greater detail herein are contemplated as being part of the subject matter disclosed herein. For example, all combinations of the claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1A A view showing a user authorizing the continuation of a routine initiated by another user after the other user has initiated the routine involving access restricted data.
[0019] Figure 1B A view showing a user setting contextual restrictions on access to data, services, automated assistants, and / or any other information or modules accessible via a computing device.
[0020] Figure 1C A view showing a user establishing restrictions on certain types of requests that may be provided by passengers and / or other persons that may occupy a vehicle.
[0021] Figure 2 A system for allowing a user to implement restrictions on certain interactions between an occupant of a vehicle and an automated assistant and / or authorize such interactions using one or more different modalities is shown.
[0022] Figure 3A and Figure 3B A method for establishing and enforcing access restrictions to an automated assistant based on one or more different factors is illustrated.
[0023] Figure 4 is a block diagram of an example computer system. DETAILED DESCRIPTION
[0024] Figure 1A The view 100 shows a user 108 authorizing the continuation of a routine initiated by another user 110 after the other user 110 has initiated the routine involving access to restricted data. Restricted data may refer to any data associated with the account of the user 108 and accessible by providing credentials to log into the account of the user 108. By allowing the user 108 to authorize such interactions through one or more different modalities, network bandwidth and other computing resources may be conserved by at least reducing the number of interactions between the client device and the server device 126.
[0025] In some implementations, user 108 may be an unrestricted user with respect to access to restricted data and / or automated assistant 116 accessible via computing device 114 of vehicle 112. Computing device 114 may be a vehicle computing device connected to one or more different interfaces through which user 108 and / or another user 110 may provide input to computing device 114 and receive output from computing device 114. For example, user 108 and / or other user 110 may perform an assistant invocation task for invoking automated assistant 116 and / or automated assistant 128 accessible by computing device 114 via a network 122 such as the Internet. The assistant invocation task may include speaking a specific invocation phrase, such as, but not limited to, “Ok, Assistant” and / or a voice characteristic of a user that is authenticated as a response. For example, a user may provide a specific or any spoken utterance to an automated assistant interface, and audio data corresponding to the spoken utterance may be processed to determine whether one or more voice characteristics of an authorized and / or unrestricted user are embodied in the audio data. Authorization may be deemed to have been received when one or more voice characteristics of an authorized and / or unrestricted user are present in the audio data.
[0026] Additionally or alternatively, the assistant invocation task may include a user interacting with the interface of the computing device 114 by performing gestures such as, but not limited to, pressing a button, tapping a touch interface, providing a fingerprint, looking at a camera for performing facial recognition, and / or any other gesture that may invoke an automated assistant. The automated assistant 116 may access the client data 120 and / or the server data 130 when performing certain actions requested by a particular user. Furthermore, depending on the requested action, the automated assistant 116 may access one or more applications 118 to facilitate performing the action. In some implementations, the applications and / or data accessible to the automated assistant may be third-party applications and / or third-party data at least relative to the party or entity providing the automated assistant.
[0027] In some implementations, a user can invoke an automated assistant and / or provide authorization to an automated assistant via one or more different interfaces of the vehicle. In addition, the effect of interacting with a particular interface can depend on the occupancy of the vehicle. For example, when multiple people are in the vehicle, a button on the steering wheel of the vehicle can be designated by the vehicle computing device as a dedicated touch interface for invoking an automated assistant and / or providing authorization to the automated assistant. Additionally or alternatively, when only one person is in the vehicle, the vehicle computing device can designate a button on the steering wheel and / or one or more other buttons (e.g., buttons of a touch interface attached to a rear seat and / or a display panel) for invoking an automated assistant and / or providing authorization to the automated assistant.
[0028] The automated assistant 116 can perform routines, which can be configured by the user 108, another user 110, and / or reconfigurable by the entity providing the automated assistant. In addition, the routine can include one or more actions involving access to restricted data or any data corresponding to one or more specific access rights. For example, when another user 110 provides a spoken utterance 102 such as "Assistant, perform the drivers morning commute routine," the automated assistant can perform a series of actions previously specified by the user 108. One or more actions for the requested routine can involve accessing restricted data, such as calendar data stored in association with the account of the user 108. For example, a series of actions corresponding to the morning commute routine can include playing a podcast and / or presenting audio and / or visual content based on the calendar data of the day.
[0029] In response to receiving the spoken utterance 102, the computing device 114 and / or the server device 126 may determine the occupancy of the vehicle 112. The occupancy may be determined based on sensor data from one or more sensors connected to the vehicle 112 and / or the computing device 114. For example, with permission from the user 108 and / or another user 110, certain sensors, such as one or more of a microphone, a camera, a motion sensor, a weight sensor, a heat sensor, a tactile sensor, and / or any other sensor, may be used to detect the occupancy of an area. When the determined occupancy indicates that more than one person is located in the vehicle 112, the computing device 114 and / or the server device 126 may determine whether the routine includes one or more actions involving access to restricted data. For example, the computing device 114 may determine whether the morning commute routine involves access to restricted data. Because if the morning commute routine involves accessing calendar data corresponding to the user 108, the computing device 114 may determine with certainty that the morning commute routine involves access to restricted data.
[0030] When computing device 114 and / or server device 126 have identified one or more actions of the routine that involve access to restricted data, computing device 114 and / or server device 126 may cause automated assistant 116 to initiate performance of one or more actions of the routine that do not involve access to restricted data. For example, the action of presenting podcast audio may involve access to non-restricted data and thus may be initiated by automated assistant 116 to provide output 104 via vehicle computing device 114. While computing device 114 is presenting output 104 including podcast audio, automated assistant 116 may provide another output 104 via a speaker of vehicle 112 and / or a display panel of vehicle 112 to indicate that another user 110 is not authorized to cause certain actions to be performed. For example, automated assistant 116 may provide an output such as “You are not authorized for some actions.”
[0031] The user 108 may confirm the output 104 from the automated assistant 116 and provide authorization via the interface of the vehicle computing device 114. In other words, the user 108 may provide input to cause the automated assistant 116 to continue to perform the restricted actions of the routine, whether or not prompted by the automated assistant 116. For example, the user 108 may provide the interface authorization 106 by pressing a button on the steering wheel of the vehicle 112, tapping a touch interface of the vehicle 112, providing a spoken word to a microphone or peripheral device of the vehicle 112, and / or otherwise providing authorization input to the computing device 114 and / or the server device 126.
[0032] Automated assistant 116 may continue to perform the requested routine in response to computing device 114 and / or server device 126 receiving interface authorization 106 from user 108. In other words, because automated assistant 116 has stopped performing an action involving accessing calendar data of user 108, automated assistant 116 may continue the action in response to user 108 providing interface authorization 106. Thus, in response to interface authorization 106, automated assistant 116 may provide output 104 such as “Your schedule for the day is as follows…”
[0033] By allowing user 108 to provide authorization without further input from another user 110, network bandwidth of network 122 and / or any other communication channel involved in the interaction between the user and automated assistant 116 can be preserved. In addition, other computing resources, such as processing resources that would otherwise be spent on processing natural language input from other users 110, can be preserved. In some implementations, verification of the identity of user 108 can be performed prior to interface authorization 106. For example, based on one or more sensors of vehicle 112, computing device 114 and / or server device 126 can determine that user 108 is a non-restricted user with respect to automated assistant 116. Such verification can be based on a voice signature of a previous spoken utterance provided by user 108, facial recognition previously performed while user 108 and another user 110 were in vehicle 112, fingerprint sensing, and / or any other process that can verify the identity of user 108 with prior permission from user 108.
[0034] Figure 1BA view showing a user 108 setting contextual restrictions on access to data, services, automated assistants, and / or any other information or modules accessible via a computing device 114 is shown. The user 108 can establish contextual restrictions by providing input to the automated assistant 116. When the user 108 provides input, the voice signature of the user 108 can be verified, and one or more accounts associated with the user 108 can be identified based on the voice signature. In addition, when the input corresponds to a request to apply contextual restrictions, the automated assistant 116 can cause certain settings to be generated and / or modified to facilitate the establishment of access restrictions. In some implementations, when a particular context is temporary, such as when the user 108 and another user 110 are riding in a vehicle 112, the user 108 can request that certain access restrictions be enforced. Such restrictions can be helpful in order to eliminate distractions generated by passengers in the vehicle who may be trying to communicate with the automated assistant 116. In addition, such restrictions can help eliminate safety risks that are apparent when an inexperienced user, such as a child, provides a request to the automated assistant 116 that can affect the operation of the vehicle 112.
[0035] As an example, another user 110 may provide a spoken utterance 142 such as “Assistant, turn off cruise control.” In response to receiving the spoken utterance, the automated assistant 116 may determine, based on audio data characterizing the spoken utterance 142, that the spoken utterance 142 was not provided by a restricted user and / or was provided by an unrestricted user. In response, the automated assistant 116 may cause an interface of the computing device 114 to provide an output 144 such as “You are not authorized for that request.” In light of this denial of the request, and in order to eliminate further waste of computing resources in processing input from another user 110, the user 108 may provide a separate spoken utterance 146 requesting that a contextual restriction be established. Specifically, the user 108 may provide a spoken utterance 146 such as “Assistant, do not respond to Luke for the remainder of this trip.”
[0036] In response to receiving the spoken utterance 146 from the user 108, the automated assistant 116 can initiate generation of one or more access restrictions, which can be characterized by restriction data. In some implementations, the first time the other user 110 provides the spoken utterance to the automated assistant 116, the automated assistant 116 can generate a guest entry corresponding to the other user 110. The guest entry can correspond to a guest account, which the automated assistant 116 can also associate with the restriction data. In some implementations, an identifier for the guest account can be determined using one or more inputs from the user 108, such as the spoken utterance 146 (which specifies the name of the other user 110 (e.g., Luke)), a typed input that can be provided at a touch display panel of the vehicle 112, and / or any other input that can be used to identify a user's name.
[0037] In some implementations, the restriction data may characterize the context of one or more restricted applications. For example, because the user 108 specifies that the automated assistant 116 should not respond to other users 110 for the remainder of the trip, the computing device 114 and / or the server device 126 may identify navigation data characterizing the current trip of the vehicle 112. In some implementations, with permission from the user 108, client data 120 corresponding to one or more applications 118 may be accessed to determine the current context of the user 108, the vehicle 112, and / or another user 110. For example, the client data 120 may specify the destination of the vehicle 112, as specified by the user 108 via the navigation application. Thus, while the vehicle 112 is navigating and / or otherwise driving to the destination, the restriction data may characterize restrictions on access to the automated assistant 116. As an example, starting from the current time after the user 108 provides the speech 146 and from the time when the vehicle 112 arrives at the destination, the automated assistant 116 may not respond to one or more requests and / or other inputs from another user 110. In this manner, computing resources may be preserved by not requesting authorization during the remainder of the trip and instead following the user 108's instructions to not respond to another user 110. In addition, by allowing the user 108 to establish contextual restrictions with the automated assistant, the efficiency of the interaction between the passenger and the automated assistant may be increased based on the preferences of the non-restricted user. For example, instead of constantly requesting authorization from the user 108 or waiting for authorization, the automated assistant 116 may process certain inputs from another user according to the restrictions specified by the user 108. This may result in a reduced frequency of interaction with the automated assistant 116 during the vehicle's travel, thereby preserving stored energy that is available to the vehicle 112 and may not be immediately recharged.
[0038] Figure 1CA view 160 is shown in which a user 108 establishes restrictions on certain types of requests that may be provided by passengers and / or other persons who may occupy a vehicle 112. Specifically, the user 108 and / or any other non-restricted user may provide a verbal utterance to the automated assistant 116 to specify certain restrictions that the automated assistant 116 will abide by. In some implementations, the user 108 may provide a request to the automated assistant 116 to prevent the automated assistant 116 from responding to certain types of requests from other persons within the vehicle 112. For example, where the user 108 is operating their vehicle 112 to facilitate participation in a carpooling activity, the user 108 may establish certain restrictions that will be specifically implemented when the user 108 is operating their vehicle for a carpooling service. In some implementations, the automated assistant 116 may determine that the user 108 is operating the vehicle 112 to facilitate a carpooling activity by accessing one or more applications 118 of the computing device 114, the server device 126, and / or any other computing device that may be associated with the user 108.
[0039] For example, user 108 may operate a ride-sharing application during a particular trip of vehicle 112. Client data 120 of computing device 114 may characterize the activity, and automated assistant 116 may access client data 120 to determine that user 108 is engaging in such an activity. As a result, automated assistant 116 and / or automated assistant 128 may operate in accordance with one or more restrictions established to govern interactions with automated assistant 116 and / or automated assistant 128 while user 108 is engaging in the ride-sharing activity.
[0040] In some implementations, to establish a particular restriction, the user 108 may provide a spoken utterance 166 during an attempted interaction between the other user 110 and the automated assistant 116. For example, while the user 108 is participating in a carpool activity in which the other user 110 is also participating, the other user 110 may provide a spoken utterance 162 such as, “Assistant, what is going ontoday?” In response to receiving the spoken utterance 162, the computing device 114 and / or a remote computing device 124, such as a server device 126, may process audio data corresponding to the spoken utterance 162. Based on the processing, the computing device 114 and / or the server device 126 may determine that the other user 110 is not a non-restricted user like the user 108. Thus, in response to receiving the spoken utterance 162, the automated assistant 116 may provide a spoken utterance such as, “You are not authorized for that information.”
[0041] To generate restrictions for limiting access and / or otherwise limiting the response of automated assistant 116 in such circumstances, user 108 may provide a request to automated assistant 116. Specifically, user 108 may provide spoken utterance 166, such as, "Assistant, do not respond to anyone else for those types of requests." Audio data corresponding to spoken utterance 166 may be processed at computing device 114 and / or server device 126. Based on the processing, restriction data may be generated to characterize restrictions on one or more specific types of requests that may be responded to by automated assistant 166 when one or more specific types of requests are provided by a restricted user and / or any other user who is not a non-restricted user.
[0042] In some implementations, to characterize the type of request embodied by the spoken utterance 162, the context of the spoken utterance 162 may be determined based on one or more data sources. For example, the type of request may be characterized as a request from a passenger during a carpooling activity. Thus, when generating restriction data, the restriction data may characterize restrictions on what passengers may request while riding in the vehicle 112 and facilitating the carpooling activity. Alternatively or additionally, the type of request may be determined based on data that will have been accessed in order to fulfill the request. For example, as provided in FIG. 1C, another user 110 requests information about what is going to happen today, but if such a request has been provided by user 108, fulfilling the request will involve accessing calendar data associated with user 108. Thus, the restriction data may characterize restrictions on requests related to calendar data, as well as restrictions on such requests provided by passengers during a carpooling activity.
[0043] In some implementations, the restriction data may characterize restrictions based on occupancy and whether the vehicle is being operated to facilitate a carpool activity. For example, when one or more sensors indicate that the vehicle is occupied by multiple people and the carpool application indicates that the vehicle is currently being used for a carpool activity, more restrictions on the automated assistant may be enforced at least relative to when the vehicle is occupied by multiple people but is not currently being used for a carpool activity. In this way, for example, stricter restrictions on access to restricted data may be enforced when multiple people are in the car and the vehicle is being operated to facilitate a carpool activity than if the user is only driving with their family or friends (e.g., not carpool customers). Additionally, this may prevent the user from having to provide a restriction request to the automated assistant every time a new person enters their car while their carpool application indicates that they are operating their vehicle to facilitate a carpool activity.
[0044] In some implementations, and based on the restriction data, the automated assistant 116 may operate to make the calendar data unavailable to the other user 110, and choose to respond to the other user 110 using publicly available data. For example, the automated assistant 116 may present an output 164 such as "There is music at the Concert Venue, and a basketball game." In this manner, assume that another user 110 and / or another passenger provides a similar type of request to the automated assistant 116. The computing device 114 and / or server device 126 will not have to provide an output 164 indicating a lack of authorization, nor will the computing device 114 and / or server device 126 have to process input from the user 108. Instead, the available restriction data may be processed along with any subsequent spoken utterance to determine certain restrictions that are currently in effect. Based on such restrictions, the automated assistant 116 may present a response to any subsequent user or passenger without providing an output denying the request and / or a prompt to request authorization from the user 108.
[0045] Figure 2 A system 200 is shown for enabling authorization of certain automated assistant functions via one or more modalities available within a vehicle. The automated assistant 204 may operate as part of an assistant application provided at one or more computing devices, such as a computing device 218 and / or a server device 202. The user may interact with the automated assistant 204 via an assistant interface 220, which may be one or more of a microphone, a camera, a touch screen display, a user interface, and / or any other device capable of providing an interface between a user and an application. For example, a user may initialize the automated assistant 204 by providing verbal, textual, or graphical input to the assistant interface 220 to cause the automated assistant 204 to perform a function (e.g., provide data, control peripherals, access an agent, generate input and / or output, etc.). The computing device 218 may include a display device, which may be a display panel including a touch interface for receiving touch input and / or gestures for allowing a user to control an application of the computing device 218 via the touch interface. In some implementations, the computing device 218 may lack a display device, thereby providing an audible user interface output without providing a graphical user interface output. In addition, computing device 218 may provide a user interface, such as a microphone, for receiving spoken natural language input from a user. In some implementations, computing device 218 may include a touch interface and may not have a camera, but may optionally include one or more other sensors.
[0046] Computing device 218 and / or other computing devices 234 can communicate with server device 202 via a network 240, such as the Internet. In addition, computing device 218 and other computing devices 242 can communicate with each other via a local area network (LAN), such as a Wi-Fi network. Computing device 218 can offload computing tasks to server device 202 to save computing resources at computing device 218. For example, server device 202 can host automated assistant 204, and computing device 218 can transmit input received at one or more assistant interfaces 220 to server device 202. However, in some implementations, automated assistant 204 can be hosted at computing device 218 as a client automated assistant 236.
[0047] In various implementations, all or less than all aspects of automated assistant 204 may be implemented on computing device 218. In some of those implementations, various aspects of automated assistant 204 are implemented via client automated assistant 236 of computing device 218 and interface with server device 202 that implements other aspects of automated assistant 204. Server device 202 may optionally serve multiple users and their associated assistant applications via multiple threads. In implementations where all or less than all aspects of automated assistant 204 are implemented via client automated assistant 236 at computing device 218, client automated assistant 236 may be an application separate from the operating system of computing device 218 (e.g., installed “on top” of the operating system)—or may alternatively be implemented directly by the operating system of computing device 218 (e.g., considered an application of the operating system, but integrated with the operating system).
[0048] In some implementations, automated assistant 204 and / or client automated assistant 236 may include input processing engine 206, which may employ a number of different modules to process input and / or output for computing device 218 and / or server device 202. For example, input processing engine 206 may include speech processing module 208, which may process audio data received at assistant interface 220 to identify text embodied in the audio data. The audio data may be transmitted from, for example, computing device 218 to server device 202 in order to preserve computing resources at computing device 218.
[0049] The process for converting audio data into text can include a speech recognition algorithm, which can use a neural network and / or a statistical model to identify an audio data group corresponding to a word or phrase. The text converted from the audio data can be parsed by a data parsing module 210 and can be used to generate and / or identify text data from a command phrase from a user and available to an automated assistant. In some implementations, the output data provided by the data parsing module 210 can be provided to a parameter module 212 to determine whether the user has provided an input corresponding to a specific action and / or routine that can be performed by an automated assistant 204 and / or an application or agent that can be accessed by an automated assistant 204. For example, assistant data 216 can be stored in a server device 202 and / or a computing device 218 as client data 238, and can include data defining one or more actions that can be performed by an automated assistant 204 and / or a client automated assistant 236 and the parameters required to perform these actions.
[0050] In some implementations, the system 200 may allow one or more users to utilize restrictions on specific interactions between passengers of the vehicle and the automated assistant, and / or use one or more different modalities to authorize such interactions. The system 200 may include a variety of different engines that may be embodied as executable data at one or more computing devices. The computing device 218 may be incorporated into a vehicle, such as, but not limited to, a car, a truck, an airplane, an aerospace vehicle, a commercial vehicle, and / or any other device that may be associated with a computing device. A vehicle including the computing device 218 may provide space for one or more people riding in the vehicle. In addition, while one or more people are riding in the vehicle, one or more users may interact with the client automated assistant 236 and / or the automated assistant 204 via one or more assistant interfaces 220. However, in some implementations, the computing device 218 and / or the server device 202 may be limited according to various contexts in which one or more people are interacting with the computing device 218 and / or the server device 202.
[0051] In some implementations, the computing device 218, the automated assistant, and / or the server device 202 may operate according to different operating modes. The operating mode may be selected by the mode engine 228, which may determine the appropriate operating mode depending on the context in which the computing device 218, the automated assistant, and / or the server device 202 are operating. For example, the context engine 230 may determine that the user is accessing the carpooling application via the computing device 218 while driving the vehicle. The context engine 230 may generate context data and share the context data with the mode engine 228. The mode engine 228 may determine to operate the computing device 218 and / or the automated assistant according to the first operating mode based on the context data. The first operating mode may be, for example, a restricted operating mode in which any passenger in the vehicle will not be able to access services, actions, and / or information based on restricted data stored in the client data 238 and / or the assistant data 216. In addition, the first operating mode may be, for example, a restricted operating mode in which the driver will be able to access services, actions, and / or information based on restricted data and otherwise accessible by the driver when not driving the vehicle to facilitate carpooling activities. In this manner, if a passenger or other guest of the vehicle attempts to invoke client-side automated assistant 236, client-side automated assistant 236 can respond without providing an error message and / or otherwise involving an undo interaction. For example, by allowing mode engine 228 to select a first mode of operation without direct input such as spoken words, computing resources can be conserved because fewer inputs will be processed (e.g., the user will not have to provide a request to restrict access to the passenger each time a new passenger attempts to invoke the automated assistant).
[0052] In some implementations, the assistant invocation task can implement different operations of the automated assistant depending on the occupancy of the vehicle. For example, when the vehicle is exclusively occupied by a person sitting in the driver's seat, any button and / or other interface in the vehicle can provide unrestricted access to the automated assistant. However, when more than one person is in the vehicle, an interface (e.g., a button) on the steering wheel of the vehicle can provide unrestricted access to the automated assistant, while other interfaces near the passenger's seat can provide restricted access to the automated assistant. In this way, if a passenger invokes the automated assistant by performing an assistant invocation task, such as pressing a button on the passenger's side door, the passenger will not be able to enable the automated assistant to access restricted data. Instead, the passenger will have to wait for the unrestricted user to provide authorization and / or the driver to interact with an interface on the steering wheel or other interface accessible to the driver of the vehicle while the driver is driving the vehicle.
[0053] In some implementations, one or more users of the automated assistant can request restrictions associated with their own specific accounts and / or their own specific data. As an example, while the user is driving a vehicle including a computing device 218, the user can provide a verbal utterance and / or any other input to request the generation of a restriction. The verbal utterance can be processed at the input processing engine 206, and the output generation engine 214 can communicate with the restriction engine 232. The restriction engine 232 can determine one or more restrictions to be established based on the processing of the verbal utterance. For example, in some implementations, when more than one person is in the vehicle, the user can request the automated assistant to limit the supply of restricted data. The occupancy of the vehicle can be determined by the occupancy engine 234, which can receive sensor data from one or more sensors 224 of the vehicle. The sensor 224 can include one or more of a touch interface, a microphone, a video camera, a tactile sensor, a weight sensor, an infrared sensor, a motion sensor, and / or any other sensor that can be used to detect the occupancy of an area or volume.
[0054] Based on the occupancy determined by the occupancy engine 234, the restriction engine 232 can select one or more restrictions to be executed in order to restrict the interaction between one or more occupants of the vehicle and the computing device 218, the automated assistant, and / or the server device 202. For example, to facilitate the foregoing example, when the user is riding in the vehicle with another passenger, the occupancy engine 234 can determine that multiple people are in the vehicle and the restriction engine 232 can execute restrictions on providing restricted data when multiple people are in the vehicle based on the occupancy. In this way, each time the user is in the vehicle with another passenger, they do not need to repeat the restriction request. Instead, the user can be dependent on the occupancy being detected and one or more restrictions being executed based on the occupancy. For example, if the user has set a private reminder about an event and the user is in the vehicle with another person when the reminder is set to trigger, the reminder can be provided at least with respect to the restricted data restrictions that may be revealed. Therefore, instead of the computing device 218 presenting audio or visual data representing the reminder, the computing device 218 can present audio data representing the notification sound, or present display data representing the graphical notification. If the user wishes to bypass restrictions that they have previously proposed, the user may provide authorization via computing device 218 and / or one or more other computing devices 242 .
[0055] For example, when the user is not driving the vehicle but is a passenger in the vehicle, the user can access another computing device 242 and provide input to the input device 244 of the other computing device 242 to indicate authorization for providing restricted data. In some implementations, the other computing device 242 can transmit authorization data to the computing device 218, which can be processed by the authorization engine 226 to confirm that the user has provided authorization. In response to the authorization engine 226 confirming that the authorization is received from the user, the authorization engine 226 can generate confirmation data, which can be transmitted to the other computing device 242. In response to the other computing device 242 receiving the confirmation data, the other computing device 242 can provide an indication via the output device 246 of the other computing device 242. The indication can confirm to the user that their authorization is accepted and that the recent notification will bypass the restrictions in response to the notification. Alternatively and / or additionally, the context engine 230 can determine the context in which the user provides authorization and allow bypassing restrictions as long as the context does not change. For example, if a user is traveling to a specific destination and / or traveling with one or more specific passengers, the destination and / or passengers may be characterized as a specific context. Thus, when the user arrives and leaves the specific destination, and / or the passenger exits the vehicle, or a different passenger enters the vehicle, restrictions may be enforced again, at least until the user provides separate authorization.
[0056] Figure 3A and Figure 3B Methods 300 and 320 for establishing and executing access restrictions for an automated assistant based on one or more different factors are shown. Methods 300 and 320 may be performed by one or more computing devices, applications, and / or any other device or module capable of providing access to an automated assistant. Method 300 may include an operation 302 of determining whether a spoken utterance is detected at an automated assistant interface of a computing device. In some implementations, the automated assistant interface may be connected to a vehicle computing device located in a vehicle and / or otherwise attached to the vehicle. One or more passengers of the vehicle may interact with the automated assistant via the vehicle computing device using one or more different inputs provided to one or more different input modalities available in the vehicle. The vehicle may be a vehicle owned by a user who also owns a plurality of different computing devices that can access the automated assistant. Alternatively, the vehicle may be owned by a third-party entity that allows the user to operate the vehicle through a paid service. Alternatively or additionally, the vehicle may be utilized by a user engaged in a carpooling activity that may be tracked by an application accessible via the vehicle computing device and / or a separate computing device owned by the user.
[0057] The method 300 may also include an optional operation 304 of determining occupancy of the vehicle. Occupancy may refer to a number of persons located within and / or riding in the vehicle. Occupancy may be determined based on one or more sensor outputs of one or more sensors that are responsive to environmental changes within the vehicle. Thus, as one or more persons enter and / or exit the vehicle, occupancy may change and be characterized by the one or more sensor outputs. The sensors may communicate with a vehicle computing device and / or a remote server device that is also in communication with the vehicle computing device. Additionally, the user owning the vehicle and / or any other occupant occupying the vehicle may grant or revoke permission to determine occupancy.
[0058] Method 300 may also include an operation 306 of determining whether the spoken utterance was provided by a restricted user. A restricted user may be a person who interacts with the automated assistant but is not permitted to access restricted data via the automated assistant. For example, when a passenger of a vehicle owned by the user provides the spoken utterance, the passenger may be considered a restricted user because the passenger does not own the vehicle. Alternatively or additionally, the passenger may be a restricted user because the passenger is not listed on an account accessible via the vehicle computing device or otherwise associated with the vehicle computing device.
[0059] When the spoken utterance is not provided by a restricted user or is otherwise provided by an unrestricted user, method 300 may proceed from operation 306 to operation 314. Operation 314 may include identifying one or more requests embodied by the spoken utterance. For example, audio data corresponding to the spoken utterance may be processed at the vehicle computing device and / or the server device to determine a natural language understanding of the spoken utterance. Data representing the natural language understanding may be further processed to identify one or more requests embodied in the spoken utterance. For example, the content of the spoken utterance may correspond to a request for the automated assistant to perform one or more actions, one or more routines, and / or any other operations capable of being performed by the automated assistant.
[0060] When the spoken utterance is provided by the restricted user, the method 300 may proceed from operation 306 to operation 308. Operation 308 may include determining whether the vehicle is occupied by multiple people. In some implementations, determining whether the vehicle is occupied by multiple people may be based on the occupancy determined at operation 304. Alternatively or additionally, determining whether the vehicle is occupied by multiple people may be determined using other information (e.g., voice characteristics of one or more people in the vehicle, client data provided via one or more client devices carried by one or more people in the vehicle, schedule data corresponding to one or more people and indicating whether the one or more people plan to ride in the vehicle, and / or any other information that can be used to determine the occupancy of the vehicle).
[0061] When the vehicle is not occupied by multiple people, method 300 may proceed from operation 308 to operation 314. When the vehicle is occupied by multiple people, method 300 may proceed from operation 308 to operation 310. Operation 310 may include an operation to facilitate receiving authorization from an unrestricted user. The unrestricted user may be a user associated with data that is to be accessed in order to fulfill one or more requests that have been provided via the detected spoken utterance. Alternatively or additionally, the unrestricted user may be a user that is allowed to access the restricted data that the user providing the spoken utterance is attempting to access. In some implementations, operation 310 may include causing the vehicle computing device to wait for authorization from the unrestricted user. Alternatively or additionally, operation 310 may include causing the vehicle computing device to present a prompt requesting authorization from the unrestricted user.
[0062] From operation 310, method 300 may proceed to operation 312, which may include determining whether authorization is received from an unrestricted user. Upon receiving authorization from an unrestricted user, method 300 may proceed from operation 312 to operation 314. Upon completing operation 314, method 300 may proceed from operation 314 to operation 316. Operation 316 may include performing one or more actions to facilitate fulfillment of one or more requests. For example, a restricted user may provide a verbal utterance, and the verbal utterance may implement a request for an automated assistant to perform a routine that includes multiple different actions. Thus, upon receiving authorization at operation 312 and identifying a request to perform a routine at operation 314, the automated assistant may operate to facilitate execution of one or more actions for fulfilling the request to perform the routine.
[0063] If authorization is not received and / or one or more actions have been completed, method 300 may proceed from continuation element "A" to method 320 at operation 322. In other words, continuation element A links method 300 to method 320, such as Figure 3A and Figure 3B As shown. Figure 3B , method 320 may proceed from continuation element "A" to operation 322. Operation 322 may include determining whether the unrestricted user provides other instructions. The other instructions may include, but are not limited to, one or more requests for setting restrictions on access to services, data, and / or any other features that may be accessed via the vehicle computing device and / or any other computing device associated with the unrestricted user. For example, if the unrestricted user does not provide authorization, the unrestricted user may still provide one or more requests for other restrictions to be enforced. Such restrictions may be based on context, the type of request, the particular user making the request, and / or any other attributes that may be associated with the interaction with the automated assistant.
[0064] When it is determined that the non-restricted user has provided other instructions, method 320 may proceed from operation 322 to operation 326. Operation 326 may include modifying one or more access settings based on the other instructions. When it is determined that the non-restricted user has not provided other instructions, method 320 may proceed from operation 322 to operation 324. Operation 324 may include bypassing recognition of one or more requests embodied in the spoken utterance. In other words, because the user who provided one of my requests is not authorized to make such a request, method 320 may include bypassing further processing of the spoken utterance and / or subsequent input from the user. Method 320 may proceed from operation 324 and / or operation 326 to operation 302 via continuation element "B". As shown in FIG. Figure 3B and Figure 3A As shown. The continuation element "B" may provide a link between the method 320 and the method 300. In addition, and via the continuation element "B", the method 320 may return to determining whether a subsequent spoken utterance has been received at operation 302.
[0065] Figure 4 4 is a block diagram of an example computing device 410. The computing device 410 typically includes at least one processor 414 that communicates with a number of peripheral devices via a bus subsystem 412. These peripheral devices may include a storage subsystem 424 including, for example, a memory 425 and a file storage subsystem 426, a user interface input device 420, a user interface input device 422, and a network interface subsystem 416. Input and output devices allow a user to interact with the computer system 410. The network interface subsystem 416 provides an interface to an external network and couples to corresponding interface devices in other computer systems.
[0066] User interface input devices 422 may include a keyboard, a pointing device such as a mouse, trackball, touchpad or graphic tablet, a scanner, a touch screen incorporated into a display, an audio input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, the use of the term "input device" is intended to include all possible types of devices and ways to input information into the computer system 410 or on a communication network.
[0067] The user interface output device 420 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide a non-visual display, for example, via an audio output device. In general, the use of the term "output device" is intended to include all possible types of devices and ways to output information from the computer system 410 to a user or to another machine or computer system.
[0068] The storage subsystem 424 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 424 may include logic to perform selected aspects of the methods 300 and 320 and / or implement one or more of the computing device 114, the vehicle 112, the server device 126, the system 200, the server device 202, the computing device 218, the other computing device 242, and / or any other apparatus, module, and / or engine discussed herein.
[0069] These software modules are typically executed by the processor 414 alone or in combination with other processors. The memory 425 used in the storage subsystem 424 may include many memories, including a main random access memory (RAM) 430 for storing instructions and data during program execution and a read-only memory (ROM) 432 storing fixed instructions. The file storage subsystem 426 may provide persistent storage for program and data files, and may include a hard drive, a floppy disk drive and associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules that implement the functionality of certain implementations may be stored in the storage subsystem 426 by the file storage subsystem 424, or in other machines accessible by the processor 414.
[0070] The bus subsystem 412 provides a mechanism for the various components and subsystems of the computer system 410 to communicate with each other as intended. Although the bus subsystem 412 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.
[0071] Computer system 410 can be of various types, including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the Figure 4 The description of the computer system 410 depicted in FIG. 4 is intended only as a specific example for the purpose of illustrating some implementations. Many other configurations of the computer system 410 may have more Figure 4 The computer system depicted in FIG.
[0072] In cases where the systems described herein collect personal information about users (or "participants," as they are often referred to herein) or may utilize personal information, users may be provided with the opportunity to control whether a program or feature collects user information (e.g., information about the user's social network, social activities or events, occupation, the user's preferences, or the user's current geographic location), or to control whether and / or how content more relevant to the user is received from content servers. Similarly, certain data may be processed in one or more ways prior to storage or use in order to remove personally identifiable information. For example, the identity of a user may be processed so that no personally identifiable information can be determined for the user, or the user's geographic location may be summarized where geographic location information is available (e.g., to a city, zip code, or state level) so that the user's specific geographic location cannot be determined. Thus, users may have control over how information about the user is collected and / or used.
[0073] In some implementations, a method implemented by one or more processors is set forth as including operations such as receiving input data from a vehicle computing device in response to a spoken utterance received at an automated assistant interface of the vehicle computing device, wherein the vehicle computing device is located in a vehicle having a first user and a second user. The method may also include: to facilitate a response to the spoken utterance, determining whether the second user has performed an assistant invocation task to overcome a restriction on access by the first user to restricted data otherwise accessible to the second user via the automated assistant, wherein the vehicle computing device causes the automated assistant to be invoked in response to the second user performing one or more assistant invocation tasks including the assistant invocation task. The method may also include: when the assistant invocation task is not performed by the second user: in response to determining that the assistant invocation task is not performed by the second user, causing the vehicle computing device to operate to facilitate receiving authorization from the second user to present an output based on the restricted data, wherein the second user provides authorization to present the output by performing a particular assistant invocation task of the one or more assistant invocation tasks. The method may also include determining whether authorization is received from the second user after causing the vehicle computing device to operate to facilitate receiving authorization to present the output. The method may also include, upon determining that authorization has been received from the second user: causing the vehicle computing device to present an output based on the restricted data and the input data.
[0074] In some implementations, the method may further include, before causing the vehicle computing device to present the output: determining the occupancy of the vehicle based on vehicle data accessible to the vehicle computing device. In some implementations, the method may further include causing the automated assistant and / or the vehicle computing device to operate according to an operating mode selected from two or more operating modes based on the occupancy. In some implementations, determining whether the assistant invocation task is performed by the second user is performed in response to the vehicle computing device being in the operating mode. In some implementations, the vehicle data is based on output from one or more sensors connected to the vehicle and responsive to changes in the occupancy of the vehicle. In some implementations, the vehicle data is provided by an application accessible via the vehicle computing device, and the vehicle data indicates whether the occupancy within the vehicle is to facilitate a carpooling activity. In some implementations, the method may further include, when the assistant invocation task is performed by the second user: providing access to the restricted data via the vehicle computing device based on the second user performing the assistant invocation task, and causing the vehicle computing device to present an output based on the restricted data.
[0075] In some implementations, determining whether authorization is received from the second user includes determining whether the second user provides a separate spoken utterance to the automated assistant interface and / or whether the second user provides input to a separate interface connected to the vehicle computing device. In some implementations, the method may also include, upon determining that the authorization has not been received from the second user: causing the vehicle computing device to present a separate output indicating a restriction on the automated assistant for responding to the spoken utterance. In some implementations, the method may also include, upon determining that the authorization has not been received from the second user: generating response data representing a request for the second user to provide another spoken utterance different from the spoken utterance previously provided by the first user, and causing the vehicle computing device to present the request to the second user. In some implementations, the method may also include, upon determining that the authorization has not been received from the second user: determining that the second user has provided a restriction request to the automated assistant, wherein the restriction request specifies one or more restrictions on the interaction between the first user and the automated assistant, and in response to determining that the second user has provided the restriction request to the automated assistant, generating restriction data representing the one or more restrictions on the interaction between the first user and the automated assistant.
[0076] In some implementations, the one or more restrictions represented by the restriction data include restrictions on accessibility of the automated assistant to the first user during a current route that the vehicle is traveling or until the vehicle reaches a specific destination. In some implementations, the one or more restrictions represented by the restriction data include restrictions on accessibility of one or more types of data to the first user during the current route that the vehicle is traveling or until the vehicle reaches a specific destination. In some implementations, the one or more restrictions represented by the restriction data include restrictions on one or more types of commands that the automated assistant can respond to when the first user provides one or more types of commands during the current route that the vehicle is traveling or until the vehicle reaches a specific destination. In some implementations, the input data represents a request for the automated assistant to perform an automated assistant routine, the automated assistant routine corresponding to two or more actions performed by the automated assistant in response to the one or more users providing the request to the automated assistant interface.
[0077] In some implementations, the first response data and the second response data are generated in response to the automated assistant initiating the execution of a first action of the two or more actions corresponding to the automated assistant routine. In addition, the method may also include, after causing the vehicle computing device to present the output: causing the vehicle computing device to present a separate output according to a second action of the two or more actions to facilitate completion of the automated assistant routine. In some implementations, the method may also include: generating response data based on the input data, and upon determining that the assistant-invoking task has been performed by the second user: causing the vehicle computing device to present the separate output using the response data.
[0078] In other implementations, a method implemented by one or more processors is described as including operations such as processing input data corresponding to a spoken utterance received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located in a vehicle and the spoken utterance is received while the vehicle is traveling to reach a destination. The method may also include determining the occupancy of the vehicle while the vehicle is traveling to reach a destination, wherein the occupancy is determined based on outputs of one or more sensors in communication with the vehicle computing device. The method may also include determining, based on processing the input data, whether the spoken utterance includes a request for the automated assistant to perform at least one action involving access to restricted data accessible to an unrestricted user via the vehicle computing device. The method may also include determining, based on the occupancy of the vehicle, whether the vehicle is currently occupied by the unrestricted user. The method may also include, when the spoken utterance includes a request for the automated assistant to perform at least one action involving access to the restricted data and the vehicle is occupied by the unrestricted user: operating to facilitate receiving authorization from the unrestricted user. In some implementations, the method may further include, upon receiving the authorization from the non-restricted user via an authorization input to the vehicle computing device and / or another computing device: causing the automated assistant to perform at least one action involving access to the restricted data. In some implementations, the method may further include, when the spoken utterance includes a request for the automated assistant to perform at least one action involving access to the restricted data and the vehicle is not occupied by the non-restricted user: identifying at least one other action that does not involve access to the restricted data, and causing the automated assistant to perform the at least one other action to facilitate execution of the request.
[0079] In some implementations, the method may further include, when the spoken utterance includes a request for the automated assistant to perform at least one action involving access to the restricted data and the vehicle is occupied by the non-restricted user, and when the authorization is not received from the user by the vehicle computing device and / or another computing device: identifying at least one other action that does not involve access to the restricted data, and causing the automated assistant to perform the at least one other action to facilitate fulfillment of the request. In some implementations, identifying the at least one other action includes identifying a specific action involving access to non-restricted data, and the request is a routine request corresponding to an automated assistant routine involving two or more actions performed by the automated assistant.
[0080] In yet another implementation, a method implemented by one or more processors is described as including operations such as processing input data corresponding to a spoken utterance received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located within a vehicle and the spoken utterance is received from a user while the vehicle is traveling to reach a destination. In some implementations, the method may also include determining whether restriction data accessible to the vehicle computing device represents a context restriction corresponding to a current context in which the spoken utterance is received at the automated assistant interface based on processing the input and while the vehicle is traveling to reach the destination. In some implementations, the method may also include, when the restriction data does not represent the context restriction corresponding to the current context in which the spoken utterance is received: causing the automated assistant to operate to facilitate fulfillment of one or more requests specified by the user via the spoken utterance. In some implementations, the method may also include, when the restriction data represents the context restriction corresponding to the current context in which the spoken utterance is received: determining whether an authorization input is received from a non-restricted user to authorize the automated assistant to operate to facilitate fulfillment of one or more requests specified via the spoken utterance. In some implementations, the method may further include, upon determining that the authorization input has not been received from the non-restricted user: causing the automated assistant to deny the user access to restricted data.
[0081] In some implementations, determining whether the authorization input is received from the unrestricted user includes determining whether a touch input is received at an interface of the vehicle computing device by the unrestricted user, wherein the interface of the vehicle computing device is located within the vehicle.
[0082] In yet another implementation, a method implemented by one or more processors is described as including operations such as processing input data corresponding to a spoken utterance received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located within a vehicle and the spoken utterance is received from a user while the vehicle is traveling to reach a destination. The method may also include determining, based on processing the input and while the vehicle is traveling to reach the destination, whether restriction data accessible to the vehicle computing device represents a context restriction corresponding to a current context in which the spoken utterance is received at the automated assistant interface. The method may also include, when the restriction data represents the context restriction corresponding to the current context in which the spoken utterance is received: determining whether an authorization input is received from a non-restricted user to authorize the automated assistant to operate to facilitate fulfillment of one or more requests specified via the spoken utterance. In some implementations, the method may also include, when it is determined that the authorization input has been received from the non-restricted user: causing the automated assistant to operate to facilitate fulfillment of one or more requests specified via the spoken utterance.
[0083] In some implementations, the method may further include: when the restriction data represents the context restriction corresponding to the current context in which the spoken utterance is received, and when it is determined that the authorization input has been received from the non-restricted user, causing the automated assistant to operate to allow access to the restricted data by the user while at least the current context satisfies the context restriction. In some implementations, the method may also include, when the restriction data represents the context restriction corresponding to the current context in which the spoken utterance is received, and when it is determined that the authorization input has been received from the non-restricted user: causing the automated assistant to respond to one or more subsequent spoken utterances from the user while at least the current context satisfies the context restriction, wherein the automated assistant accesses the restricted data in response to the one or more spoken utterances from the user.
[0084] Although several implementations have been described and illustrated herein, various other means and / or structures for performing functions and / or obtaining results and / or one or more of the advantages described herein may be utilized, and each of such changes and / or modifications is considered to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and actual parameters, dimensions, materials, and / or configurations will depend on one or more specific applications for which these teachings are used. Those skilled in the art will recognize or be able to use more than routine experiments to ascertain many equivalents of the specific implementations described herein. Therefore, it should be understood that the foregoing implementations are given only as examples, and within the scope of the appended claims and their equivalents, implementations may be practiced in a manner different from that specifically described and claimed. The implementations disclosed herein are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure when such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent.
Claims
1. A method implemented by one or more processors, the method comprising: processing input data corresponding to a spoken utterance of a user received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located within a vehicle and the spoken utterance is received from the user while the vehicle is traveling toward a destination location; determining whether the user is a restricted user or a non-restricted user located in the vehicle based on processing the input data and while the vehicle is traveling toward the destination location; In response to determining that the user is a restricted user: causing the automated assistant to refrain from fulfilling one or more requests specified via the spoken utterance; and causing the automated assistant to provide an output indicating that the automated assistant has refrained from fulfilling the one or more requests specified via the spoken utterance; processing additional input data received at the automated assistant interface of the vehicle computing device corresponding to additional spoken utterances of the unrestricted user; generating, based on processing the additional input data, constraint data representative of context constraints corresponding to a current context in which the spoken utterance of the user at the automated assistant interface is received; and In response to determining the restriction data characterizing the context restriction corresponding to the current context in which the spoken utterance is received: determining whether the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance, and In response to determining that the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance: The automated assistant is caused to further operate to fulfill the one or more requests specified via the spoken utterance.
2. The method according to claim 1, wherein: The unrestricted user is driving the vehicle.
3. The method according to claim 2, wherein: The restricted user is a passenger of the vehicle who is not driving the vehicle.
4. The method according to claim 3, wherein: The restricted user providing the spoken utterance is participating in a carpooling activity.
5. The method according to claim 4, wherein: The contextual restrictions are enforced throughout the rideshare activity and until the vehicle arrives at the destination location.
6. A system, comprising: at least one processor; as well as A memory storing instructions, wherein when the instructions are executed, the at least one processor performs operations, the operations comprising: processing input data corresponding to a spoken utterance of a user received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located within a vehicle and the spoken utterance is received from the user while the vehicle is traveling toward a destination location; determining whether the user is a restricted user or a non-restricted user located in the vehicle based on processing the input data and while the vehicle is traveling toward the destination location; In response to determining that the user is a restricted user: causing the automated assistant to refrain from fulfilling one or more requests specified via the spoken utterance; and causing the automated assistant to provide an output indicating that the automated assistant has refrained from fulfilling the one or more requests specified via the spoken utterance; processing additional input data received at the automated assistant interface of the vehicle computing device corresponding to additional spoken utterances of the unrestricted user; generating, based on processing the additional input data, constraint data representative of context constraints corresponding to a current context in which the spoken utterance of the user at the automated assistant interface is received; and In response to determining the restriction data characterizing the context restriction corresponding to the current context in which the spoken utterance is received: determining whether the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance, and In response to determining that the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance: The automated assistant is caused to further operate to fulfill the one or more requests specified via the spoken utterance.
7. The system according to claim 6, wherein: The unrestricted user is driving the vehicle.
8. The system according to claim 7, wherein: The restricted user is a passenger of the vehicle who is not driving the vehicle.
9. The system according to claim 8, wherein: The restricted user providing the spoken utterance is participating in a carpooling activity.
10. The system according to claim 9, wherein: The contextual restrictions are enforced throughout the rideshare activity and until the vehicle arrives at the destination location.
11. A non-transitory computer-readable storage medium storing instructions that, when executed, cause at least one processor to perform operations comprising: processing input data corresponding to a spoken utterance of a user received at an automated assistant interface of a vehicle computing device, wherein the vehicle computing device is located within a vehicle and the spoken utterance is received from the user while the vehicle is traveling toward a destination location; determining whether the user is a restricted user or a non-restricted user located in the vehicle based on processing the input data and while the vehicle is traveling toward the destination location; In response to determining that the user is a restricted user: causing the automated assistant to refrain from fulfilling one or more requests specified via the spoken utterance; and causing the automated assistant to provide an output indicating that the automated assistant has refrained from fulfilling the one or more requests specified via the spoken utterance; processing additional input data received at the automated assistant interface of the vehicle computing device corresponding to additional spoken utterances of the unrestricted user; generating, based on processing the additional input data, constraint data representative of context constraints corresponding to a current context in which the spoken utterance of the user at the automated assistant interface is received; and In response to determining the restriction data characterizing the context restriction corresponding to the current context in which the spoken utterance is received: determining whether the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance, and In response to determining that the contextual constraints authorize the automated assistant to further operate to fulfill the one or more requests specified via the spoken utterance: The automated assistant is caused to further operate to fulfill the one or more requests specified via the spoken utterance.
12. The non-transitory computer-readable storage medium of claim 11, wherein: The unrestricted user is driving the vehicle.
13. The non-transitory computer-readable storage medium of claim 12, wherein: The restricted user is a passenger of the vehicle who is not driving the vehicle.