Patent Description:
Users that interact with automated assistants may inevitably invoke their respective automated assistant under circumstances in which a modality for receiving user input experiences interference. Such circumstances can include crowded public venues and/or other areas where background noise is apparent. An input modality that is affected by the interference may therefore not be a reliable interface for the automated assistant at that time. As a result, a user that provides an input to an interface that is temporarily unreliable may have to repeat their input. In some instances, when the user is intending to control an automated assistant with their input, the automated assistant may request that the user repeat the input and/or initialize performance of an incorrect action. Repeating inputs and/or performing incorrect actions can result in a wasting of computational resources-given that the repeated inputs and/or unintended actions would be processed at a client computing device and/or communicated over a network to a server. <CIT> relates to a data input method and a data input device, which include text data input means and voice data input means, of selecting optimal input means from the two input means and controlling a data input operation, thereby inputting data. <CIT> describes a method for providing an alternate modality of input for filling a form field in response to a failure of voice recognition, including prompting the user for information corresponding to a field of a form, generating speech data by capturing a spoken response of the user to the prompt using at least one input device, attempting to convert the speech data to text, determining that the attempted conversion has failed, evaluating the failure using at least one speech rule, selecting, based on the evaluation, an alternate input modality to be used for receiving the information corresponding to the field of the form, receiving the information corresponding to the field of the form from the alternate input modality, and injecting the received information into the field of the form.

Implementations set forth herein relate to an automated assistant that can determine whether an ongoing or anticipated interaction between a user and an automated assistant, via a particular interface, is expected to be affected by interference. When the automated assistant determines that the interaction at the particular interface is determined to be affected by the interference, the automated assistant can provide an indication that the user should interact with the automated assistant via a separate interface. In this way, the automated assistant can preserve computational resources by reducing a quantity of times that a user would have to repeat an input that may have been affected by some amount of environmental interference. Furthermore, this can reduce a quantity of instances in which the automated assistant initializes an incorrect action, as a result of an interaction being affected by certain interferences.

<FIG> and <FIG> illustrate a view <NUM> and a view <NUM>, respectively, of a user <NUM> receiving a suggestion to type an input to an automated assistant instead of speaking an input in an environment <NUM> that may interfere with spoken inputs. For example, the user <NUM> can be in an environment <NUM>, such as outside their apartment building, and have a query that they would like to ask their automated assistant. In order to access the automated assistant, the user <NUM> can have a computing device <NUM> that allows the user <NUM> to interact with the automated assistant via one or more interfaces. For example, the computing device <NUM> can include a display interface <NUM>, which can be touch-enabled display panel, and an audio interface <NUM>, which can include a speaker and/or a microphone. In some implementations, the computing device <NUM> can also include a camera for providing another interface with which to interact with the automated assistant.

In some implementations, and with prior permission from the user <NUM>, the automated assistant can determine whether one or more features of the environment <NUM> will affect an interaction between the user <NUM> and the automated assistant. For example, the automated assistant can determine that the user <NUM> is on a crowded sidewalk based on audio data and/or image data that is available to the computing device <NUM>. In some implementations, data from one or more sources can be processed in order to determine whether an input to a particular interface of the computing device <NUM> would experience interference from the environment <NUM> and/or other sources. Based on this processing, the automated assistant can elect to provide an indication to the user <NUM> that an input to a particular interface will experience interference while in the environment <NUM>. For example, initially the display interface <NUM> can be void of any indication that a particular interface will be affected by interference, such as background noise (e.g., multiple people talking, as indicated in <FIG> and <FIG>) and/or other interference. However, as provided in view <NUM> of <FIG>, based on determining that a particular interface will be affected by certain interference, the automated assistant and/or other application can cause a keyboard <NUM> to be rendered at the display interface <NUM>.

In some implementations, one or more characteristics of the keyboard <NUM> can be at least partially based on a degree to which interference is expected to affect an input to a particular interface (e.g., a microphone) of the computing device <NUM>. For example, a size of the keyboard <NUM> can be adjusted according to a degree to which the interference is expected to affect an input to the particular interface. In some implementations, when interference is not expected to affect a spoken input to the automated assistant, the automated assistant can optionally cause an input field <NUM> to be rendered at the display interface <NUM>. However, when interference is expected to affect an input to the automated assistant, the automated assistant can cause the keyboard <NUM> to be rendered at the display interface <NUM>, while either keeping or removing the input field <NUM> from the display interface <NUM>. This can allow the user <NUM> to use their hand <NUM> to type inputs to the automated assistant, without risking having a spoken input being affected by audible interference.

<FIG> illustrates a system <NUM> for suggesting an alternate interface modality when an automated assistant and/or a user is expected to not understand a particular interaction between the user and the automated assistant. The automated assistant <NUM> can operate as part of an assistant application that is provided at one or more computing devices, such as a computing device <NUM> and/or a server device. A user can interact with the automated assistant <NUM> via assistant interface(s) <NUM>, which can be a microphone, a camera, a touch screen display, a user interface, and/or any other apparatus capable of providing an interface between a user and an application. For instance, a user can initialize the automated assistant <NUM> by providing a verbal, textual, and/or a graphical input to an assistant interface <NUM> to cause the automated assistant <NUM> to initialize one or more actions (e.g., provide data, control a peripheral device, access an agent, generate an input and/or an output, etc.). Alternatively, the automated assistant <NUM> can be initialized based on processing of contextual data <NUM> using one or more trained machine learning models. The contextual data <NUM> can characterize one or more features of an environment in which the automated assistant <NUM> is accessible, and/or one or more features of a user that is predicted to be intending to interact with the automated assistant <NUM>. The computing device <NUM> can include a display device, which can be a display panel that includes a touch interface for receiving touch inputs and/or gestures for allowing a user to control applications <NUM> of the computing device <NUM> via the touch interface. In some implementations, the computing device <NUM> can lack a display device, thereby providing an audible user interface output, without providing a graphical user interface output. Furthermore, the computing device <NUM> can provide a user interface, such as a microphone, for receiving spoken natural language inputs from a user. In some implementations, the computing device <NUM> can include a touch interface and can be void of a camera, but can optionally include one or more other sensors.

The computing device <NUM> and/or other third party client devices can be in communication with a server device over a network, such as the internet. Additionally, the computing device <NUM> and any other computing devices can be in communication with each other over a local area network (LAN), such as a Wi-Fi network. The computing device <NUM> can offload computational tasks to the server device in order to conserve computational resources at the computing device <NUM>. For instance, the server device can host the automated assistant <NUM>, and/or computing device <NUM> can transmit inputs received at one or more assistant interfaces <NUM> to the server device. However, in some implementations, the automated assistant <NUM> can be hosted at the computing device <NUM>, and various processes that can be associated with automated assistant operations can be performed at the computing device <NUM>.

In various implementations, all or less than all aspects of the automated assistant <NUM> can be implemented on the computing device <NUM>. In some of those implementations, aspects of the automated assistant <NUM> are implemented via the computing device <NUM> and can interface with a server device, which can implement other aspects of the automated assistant <NUM>. The server device can optionally serve a plurality of users and their associated assistant applications via multiple threads. In implementations where all or less than all aspects of the automated assistant <NUM> are implemented via computing device <NUM>, the automated assistant <NUM> can be an application that is separate from an operating system of the computing device <NUM> (e.g., installed "on top" of the operating system) - or can alternatively be implemented directly by the operating system of the computing device <NUM> (e.g., considered an application of, but integral with, the operating system).

In some implementations, the automated assistant <NUM> can include an input processing engine <NUM>, which can employ multiple different modules for processing inputs and/or outputs for the computing device <NUM> and/or a server device. For instance, the input processing engine <NUM> can include a speech processing engine <NUM>, which can process audio data received at an assistant interface <NUM> to identify the text embodied in the audio data. The audio data can be transmitted from, for example, the computing device <NUM> to the server device in order to preserve computational resources at the computing device <NUM>. Additionally, or alternatively, the audio data can be exclusively processed at the computing device <NUM>.

The process for converting the audio data to text can include a speech recognition algorithm, which can employ neural networks, and/or statistical models for identifying groups of audio data corresponding to words or phrases. The text converted from the audio data can be parsed by a data parsing engine <NUM> and made available to the automated assistant <NUM> as textual data that can be used to generate and/or identify command phrase(s), intent(s), action(s), slot value(s), and/or any other content specified by the user. In some implementations, output data provided by the data parsing engine <NUM> can be provided to a parameter engine <NUM> to determine whether the user provided an input that corresponds to a particular intent, action, and/or routine capable of being performed by the automated assistant <NUM> and/or an application or agent that is capable of being accessed via the automated assistant <NUM>. For example, assistant data <NUM> can be stored at the server device and/or the computing device <NUM>, and can include data that defines one or more actions capable of being performed by the automated assistant <NUM>, as well as parameters necessary to perform the actions. The parameter engine <NUM> can generate one or more parameters for an intent, action, and/or slot value, and provide the one or more parameters to an output generating engine <NUM>. The output generating engine <NUM> can use the one or more parameters to communicate with an assistant interface <NUM> for providing an output to a user, and/or communicate with one or more applications <NUM> for providing an output to one or more applications <NUM>.

In some implementations, the automated assistant <NUM> can be an application that can be installed "on-top of" an operating system of the computing device <NUM> and/or can itself form part of (or the entirety of) the operating system of the computing device <NUM>. The automated assistant application includes, and/or has access to, on-device speech recognition, on-device natural language understanding, and on-device fulfillment. For example, on-device speech recognition can be performed using an on-device speech recognition module that processes audio data (detected by the microphone(s)) using an end-to-end speech recognition machine learning model stored locally at the computing device <NUM>. The on-device speech recognition generates recognized text for a spoken utterance (if any) present in the audio data. Also, for example, on-device natural language understanding (NLU) can be performed using an on-device NLU module that processes recognized text, generated using the on-device speech recognition, and optionally contextual data, to generate NLU data.

NLU data can include intent(s) that correspond to the spoken utterance and optionally parameter(s) (e.g., slot values) for the intent(s). On-device fulfillment can be performed using an on-device fulfillment module that utilizes the NLU data (from the on-device NLU), and optionally other local data, to determine action(s) to take to resolve the intent(s) of the spoken utterance (and optionally the parameter(s) for the intent). This can include determining local and/or remote responses (e.g., answers) to the spoken utterance, interaction(s) with locally installed application(s) to perform based on the spoken utterance, command(s) to transmit to internet-of-things (IoT) device(s) (directly or via corresponding remote system(s)) based on the spoken utterance, and/or other resolution action(s) to perform based on the spoken utterance. The on-device fulfillment can then initiate local and/or remote performance/execution of the determined action(s) to resolve the spoken utterance.

In various implementations, remote speech processing, remote NLU, and/or remote fulfillment can at least selectively be utilized. For example, recognized text can at least selectively be transmitted to remote automated assistant component(s) for remote NLU and/or remote fulfillment. For instance, the recognized text can optionally be transmitted for remote performance in parallel with on-device performance, or responsive to failure of on-device NLU and/or on-device fulfillment. However, on-device speech processing, on-device NLU, on-device fulfillment, and/or on-device execution can be prioritized at least due to the latency reductions they provide when resolving a spoken utterance (due to no client-server roundtrip(s) being needed to resolve the spoken utterance). Further, on-device functionality can be the only functionality that is available in situations with no or limited network connectivity.

In some implementations, the computing device <NUM> can include one or more applications <NUM> which can be provided by a third-party entity that is different from an entity that provided the computing device <NUM> and/or the automated assistant <NUM>. An application state engine of the automated assistant <NUM> and/or the computing device <NUM> can access application data <NUM> to determine one or more actions capable of being performed by one or more applications <NUM>, as well as a state of each application of the one or more applications <NUM> and/or a state of a respective device that is associated with the computing device <NUM>. A device state engine of the automated assistant <NUM> and/or the computing device <NUM> can access device data <NUM> to determine one or more actions capable of being performed by the computing device <NUM> and/or one or more devices that are associated with the computing device <NUM>. Furthermore, the application data <NUM> and/or any other data (e.g., device data <NUM>) can be accessed by the automated assistant <NUM> to generate contextual data <NUM>, which can characterize a context in which a particular application <NUM> and/or device is executing, and/or a context in which a particular user is accessing the computing device <NUM>, accessing an application <NUM>, and/or any other device or module.

While one or more applications <NUM> are executing at the computing device <NUM>, the device data <NUM> can characterize a current operating state of each application <NUM> executing at the computing device <NUM>. Furthermore, the application data <NUM> can characterize one or more features of an executing application <NUM>, such as content of one or more graphical user interfaces being rendered at the direction of one or more applications <NUM>. Alternatively, or additionally, the application data <NUM> can characterize an action schema, which can be updated by a respective application and/or by the automated assistant <NUM>, based on a current operating status of the respective application. Alternatively, or additionally, one or more action schemas for one or more applications <NUM> can remain static, but can be accessed by the application state engine in order to determine a suitable action to initialize via the automated assistant <NUM>.

The computing device <NUM> can further include an assistant invocation engine <NUM> that can use one or more trained machine learning models to process application data <NUM>, device data <NUM>, contextual data <NUM>, and/or any other data that is accessible to the computing device <NUM>. The assistant invocation engine <NUM> can process this data in order to determine whether or not to wait for a user to explicitly speak an invocation phrase to invoke the automated assistant <NUM>, or consider the data to be indicative of an intent by the user to invoke the automated assistant-in lieu of requiring the user to explicitly speak the invocation phrase. For example, the one or more trained machine learning models can be trained using instances of training data that are based on scenarios in which the user is in an environment where multiple devices and/or applications are exhibiting various operating states. The instances of training data can be generated in order to capture training data that characterizes contexts in which the user invokes the automated assistant and other contexts in which the user does not invoke the automated assistant.

When the one or more trained machine learning models are trained according to these instances of training data, the assistant invocation engine <NUM> can cause the automated assistant <NUM> to detect, or limit detecting, spoken invocation phrases from a user based on features of a context and/or an environment. Additionally, or alternatively, the assistant invocation engine <NUM> can cause the automated assistant <NUM> to detect, or limit detecting for one or more assistant commands from a user based on features of a context and/or an environment. In some implementations, the assistant invocation engine <NUM> can be disabled or limited based on the computing device <NUM> detecting an assistant suppressing output from another computing device. In this way, when the computing device <NUM> is detecting an assistant suppressing output, the automated assistant <NUM> will not be invoked based on contextual data <NUM>-which would otherwise cause the automated assistant <NUM> to be invoked if the assistant suppressing output was not being detected.

In some implementations, the automated assistant <NUM> can include an environmental feature engine <NUM>, which can detect one or more features of an environment in which the computing device <NUM> and/or another computing device are operating. The environmental feature engine <NUM> can process data characterizing the one or more features in order to determine whether an interaction between the user and the automated assistant <NUM> will be affected by the environment. This determination can be based on one or more heuristic processes and/or one or more trained machine learning models, which can be trained based on prior instances in which one or more users interacted with an automated assistant in a similar environment. For example, data characterizing prior instances in which users interacted with an automated assistant in a crowded environment can be used to identify a threshold for an interference score. The interference score can be generated for a particular environment using one or more trained machine learning models. When the interference score threshold is satisfied by a particular interference score, the environmental feature engine <NUM> can communicate with an interference indication engine <NUM> of the automated assistant <NUM>.

The interference indication engine <NUM> can be employed by the automated assistant <NUM> to provide an indication to a user that an interaction between the user and the automated assistant <NUM> may be affected by one or more features of the environment they are in. In some implementations, the type of indication that is provided to a user can be based on one or more scores generated by the environmental feature engine <NUM>. For instance, when a score is generated for indicating that audio interference will affect an audio interface, the interference indication engine <NUM> can cause a visual indication to be rendered for the user. In some implementations, characteristics of an indication can also be selected by the interference indication engine <NUM>. For example, the interference indication engine <NUM> can cause a size, shape, brightness, content, and/or other characteristic of an indication to be adjusted according to a degree of interference expected to affect an interaction between a user and an automated assistant <NUM>.

In some implementations, the automated assistant <NUM> can include an interface selection engine <NUM>, which can select an interface to promote to a user when interference is expected to affect a different interface. For example, when the computing device <NUM> is determined to be experiencing an amount of glare that would make typing at a touch interface to be difficult, the interface selection engine <NUM> can score the touch interface below other available interfaces. In some instances, the interface selection engine <NUM> can designate the touch interface as a less optimal interface in certain environments than, for example, an audio interface. In some implementations, the interference indication engine <NUM> can be notified of the rankings from the interface selection engine <NUM> and generate an indication that identifies a most optimal interface for a particular environment. For instance, an indication provided by the interference indication engine <NUM> can include a rendering of a keyboard that the user can provide touch inputs to in order to type an input directly to the automated assistant.

<FIG> illustrates a method <NUM> for providing an indication of whether a particular input to an automated assistant will be affected by interference in an environment, and providing a separate interface for providing input to the automated assistant. The method <NUM> can be performed by one or more computing devices, applications, and/or any other apparatus or module that can be associated with an automated assistant. The method <NUM> can include an operation <NUM> of determining whether a user is available for providing input to the automated assistant. In some implementations, a determination of whether the user is available can be based on data from one or more sensors and/or any other interfaces of one or more computing devices. For example, the automated assistant can determine that one or more users are within a threshold distance of an automated assistant interface based on audio data and/or image data. When the automated assistant determines that a user is available to provide an input to the automated assistant, the method <NUM> can proceed to an operation <NUM>. Otherwise, the automated assistant can continue to determine whether a user is available to provide input to the automated assistant.

The operation <NUM> can include determining whether one or more features of the environment are expected to affect an input from the user. In some implementations, the one or more features of the environment can include audio characteristics of the environment. The audio characteristics can include a quantity of persons that are speaking, a source of a particular sound, a volume and/or frequency of a particular sound, ambient sound, overall volume level, a distance of a source of the sound to the particular interface, and/or any other audio characteristic that can interfere with an input to a computing device. In some implementations, the one or more features of the environment can include objects, persons, location, available power, weather, motion, lighting, distance between certain objects, layout of an area, temperature, and/or any other feature of an environment that can affect an interaction between a user and an automated assistant. In some implementations, the one or more features of the environment can be determined and used to generate a score. The automated assistant can determine whether the score satisfies one or more different thresholds. Alternatively, or additionally, one or more different scores can be generated for each respective interface of a computing device that is in the environment. When a score for a particular interface does not satisfy a threshold for the particular interface, the automated assistant can provide an indication that the particular interface may experience interference during an interaction between the user and the automated assistant. For example, a score for an audio interface can fail to satisfy a threshold for the audio interface and, as a result, the automated assistant can cause a keyboard interface to be rendered at the computing device.

When the automated assistant determines that one or more features of the environment are expected to affect an interaction between the user and the automated assistant, the method <NUM> can proceed from operation <NUM> to an operation <NUM>. Otherwise, the automated assistant can continue to determine whether a user has provided an input to the particular interface, or another interface, in furtherance of interacting with the automated assistant. The operation <NUM> can include causing the automated assistant to provide an indication that an input that is provided, or is being provided, via a particular interface may be affected by the environment. In some implementations, the indication can be provided via an audio interface, graphical interface, haptic interface, wireless interface, and/or any other interface that can be used to provide an indication to a user. In some implementations, when the computing device includes a touch display panel, the indication can be rendered at a keyboard interface at the touch display panel. In this way, when the user is about to provide a spoken utterance that is determined to be affected by interference within an environment, the user can see the keyboard interface and elect to provide a touch input to the touch display panel instead of the spoken utterance.

The method <NUM> can proceed from operation <NUM> to an optional operation <NUM>, which can include receiving, by the automated assistant, a separate input from the user via another interface (i.e., another interface that is separate from the particular interface that is determined to be affected by interference within the environment). For example, instead of the user providing a spoken utterance such as, "Assistant, good morning," in order to initialize performance of a "good morning" routine, the user can type a shorter input such as "good morning" into the keyboard interface as an input to the automated assistant. The method <NUM> can proceed from operation <NUM> to an optional operation <NUM>, which can include causing the automated assistant to initialize performance one or more actions based on the separate input. For example, the separate input can include natural language content that is typed by the user using the keyboard interface that was rendered at the operation <NUM>. The natural language content can be, "good morning," which can cause the automated assistant to perform one or more actions in furtherance of completing a "good morning" routine (e.g., reading calendar entries for the day, turning on lights in the house, playing relaxing music). By providing an indication regarding whether a spoken input, or other type of input, is likely to experience interference, the automated assistant can reduce a quantity of misinterpreted inputs from a user. This can preserve computational resources that might otherwise be consumed performing incorrect actions and/or processing duplicate inputs.

<FIG> is a block diagram <NUM> of an example computer system <NUM>.

Storage subsystem <NUM> stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem <NUM> may include the logic to perform selected aspects of method <NUM>, and/or to implement one or more of system <NUM>, computing device <NUM>, and/or any other application, device, apparatus, and/or module discussed herein.

In some implementations, a method implemented by one or more processors is set forth as including operations such as processing first data that characterizes audio characteristics of an environment in which a computing device is present, wherein the computing device provides access to an automated assistant via one or more interfaces of the computing device. The method can further include an operation of determining, based on the first data, whether the audio characteristics correspond to an interference that is expected to affect an interaction between a user and an automated assistant, wherein the interaction occurs via an audio interface of the one or more interfaces. The method can further include an operation of processing second data that indicates that the user is providing, or is expected to provide, a spoken utterance to the automated assistant in furtherance of the interaction. The method can further include an operation of, when the interference is determined to affect the interaction: causing, based on the first data and the second data, the computing device or another computing device to render a keyboard interface, receiving, at the keyboard interface, a user input in furtherance of the interaction between the user and the automated assistant, and causing, in response to receiving the user input at the keyboard interface, the automated assistant to initialize performance of one or more actions.

In some implementations, the method can further include an operation of, when the interference is determined to not affect the interaction: receiving, via the audio interface, a separate user input in furtherance of the interaction between the user and the automated assistant. In some implementations, determining whether the audio characteristics correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining a quantity of persons that are located within a threshold distance of the one or more interfaces. In some implementations, determining whether the audio characteristics correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining a score that indicates whether the automated assistant is expected to correctly interpret the spoken utterance that the user is providing, or expected to provide, in furtherance of the interaction, wherein the interference is expected to affect the interaction when the score satisfies a threshold.

In some implementations, determining whether the audio characteristics correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining an additional score that characterizes a convenience of accessing the keyboard interface in the environment in which the computing device is present, wherein the rendering of the keyboard interface is further based on the additional score. In some implementations, causing the computing device to render the keyboard interface is performed simultaneously to the user providing the spoken utterance to the automated assistant in furtherance of the interaction. In some implementations, causing the computing device to render the keyboard interface is performed before the user provides the spoken utterance to the automated assistant in furtherance of the interaction.

In other implementations, a method implemented by one or more processors is set forth as including operations such as processing first data that characterizes one or more features of an environment in which a computing device is present, wherein the computing device provides access to an automated assistant via one or more interfaces of the computing device. The method can further include an operation of determining, based on the first data, whether the one or more features correspond to an interference that is expected to affect an interaction between a user and an automated assistant, wherein the interaction occurs via the one or more interfaces of the computing device. The method can further include an operation of processing second data that indicates that the user is providing, or is expected to provide, an input to the automated assistant in furtherance of the interaction. The method can further include an operation of, when the interference is determined to affect the interaction: causing, based on the first data and the second data, the computing device or another computing device to render an indication that the interaction between the user and the automated assistant will be affected by the interference, receiving, at one or more other interfaces of the computing device or the other computing device, a user input in furtherance of the interaction between the user and the automated assistant, and causing, in response to receiving the user input at the one or more other interfaces, the automated assistant to initialize performance of one or more actions.

In some implementations, the method can further include an operation of, when the interference is determined to not affect the interaction: receiving, at the one or more interfaces of the computing device, a separate user input in furtherance of the interaction between the user and the automated assistant. In some implementations, the one or more interfaces include an audio interface, and the indication is rendered at a graphical user interface of the computing device or the other computing device. In some implementations, determining whether the one or more features correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining a quantity of persons that are located within a threshold distance of the one or more interfaces. In some implementations, determining whether the one or more features correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining a quantity of persons that are speaking within a threshold distance of the one or more interfaces.

In some implementations, determining whether the one or more features correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining a score that indicates whether the automated assistant is expected to correctly interpret the input that the user is providing, or expected to provide, in furtherance of the interaction, wherein the interference is expected to affect the interaction when the score satisfies a threshold. In some implementations, determining whether the one or more features correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes: determining an additional score that characterizes a convenience of accessing the one or more other interfaces in the environment in which the computing device is present, wherein the indication is further based on the additional score. In some implementations, causing the computing device to render the indication is performed simultaneously to the user providing the input to the automated assistant in furtherance of the interaction. In some implementations, causing the computing device to render the indication is performed before the user provides the input to the automated assistant in furtherance of the interaction. In some implementations, the one or more interfaces includes a keyboard interface, and the indication includes the keyboard interface that is rendered at a graphical user interface of the computing device. In some implementations, the indication further includes a text field that includes suggested content that is based on content that is embodied in the input and affected by the interference.

Claim 1:
A method implemented by one or more processors, the method comprising:
processing first data that characterizes audio characteristics of an environment in which a
computing device is present,
wherein the computing device provides access to an automated assistant via one or more interfaces of the computing device;
determining, based on the first data, whether the audio characteristics correspond to an interference that is expected to affect an interaction between a user and the automated assistant,
wherein the interaction occurs via an audio interface of the one or more interfaces, and wherein determining whether the audio characteristics correspond to the interference that is expected to affect the interaction between the user and the automated assistant includes determining a score that indicates whether the automated assistant is expected to correctly interpret the spoken utterance that the user is providing, or expected to provide, in furtherance of the interaction,
wherein the interference is expected to affect the interaction when the score satisfies a threshold, and
wherein the score is based at least on a determination of a quantity of persons that are speaking within a threshold distance of the one or more interfaces;
processing second data that indicates that the user is providing, or is expected to provide, a spoken utterance to the automated assistant in furtherance of the interaction;
when the interference is determined to affect the interaction:
causing, based on the first data and the second data, the computing device or another computing device to render a keyboard interface,
receiving, at the keyboard interface, a user input in furtherance of the interaction between the user and the automated assistant, and
causing, in response to receiving the user input at the keyboard interface, the automated assistant to initialize performance of one or more actions, and
when the interference is determined to not affect the interaction:
receiving, via the audio interface, a separate user input in furtherance of the interaction between the user and the automated assistant.