Determining whether to automatically resume the first automated assistant session upon termination of the interrupting second session.
The described techniques in standalone multimodal assistant devices optimize session management by selectively resuming or transitioning sessions based on properties, addressing resource wastage and enhancing interaction efficiency in tasks like smart device configuration.
Patent Information
- Application Number
- JP2023191862
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-05-07
- Filing Date
- 2023-11-09
- Publication Date
- 2025-01-15
- Estimated Expiration
- 2039-05-01
AI Technical Summary
Standalone multimodal assistant devices face challenges in managing multiple overlapping sessions efficiently, leading to resource wastage and unclear decisions on whether to automatically resume or expire previous sessions when interrupted by new sessions.
Embodiments provide techniques to selectively decide whether to automatically resume or transition to an alternate state for previous sessions based on session properties, such as content permanence and user interaction, reducing resource wastage and enhancing interaction efficiency.
This approach optimizes resource allocation and interaction protocols by minimizing unnecessary session resumption, improving user interaction with automated assistants in tasks like smart device configuration and installation.
Smart Images

Figure 0007614296000001 
Figure 0007614296000002 
Figure 0007614296000003
Abstract
Description
[Technical field]
[0001] and determining whether to automatically resume the first automated assistant session upon termination of the interrupting second session. [Background technology]
[0002] Humans may engage in human-computer interactions with interactive software applications referred to herein as "automated assistants" (also referred to as "chatbots," "interactive personal assistants," "intelligent personal assistants," "personal voice assistants," "conversational agents," etc.). For example, humans, who may be referred to as "users" when interacting with an automated assistant, may provide commands, queries, and / or requests using free-form natural language input. The free-form natural language input may include voice utterances converted to text using automatic speech recognition and / or typed free-form natural language input.
[0003] Standalone voice response speakers that provide users with the ability to verbally interact with automated assistants are becoming common. These devices typically contain few hardware input mechanisms other than a microphone, a mute button, a touch-sensitive interface for adjusting volume, etc. The goal of these speakers is to allow users to easily verbally interact with automated assistants without needing to physically interact with specific user interface elements, such as a keyboard or mouse, to perform various tasks.
[0004] Conventional stand-alone voice response speakers do not usually have a full-fledged display. At the most, they tend to include relatively simple visual output mechanisms, such as light-emitting diodes that can utilize basic colors and / or animations to convey simple messages. Next-generation stand-alone voice response speakers may include more robust visual output mechanisms, such as displays or touchscreen displays. These devices, in contrast to stand-alone voice response speakers, are referred to herein as "stand-alone multimodal assistant devices." As with conventional stand-alone interactive speakers, stand-alone multimodal assistant devices may be designed to interact with voice and typically do not include a keyboard, mouse, or other complex physical input components. However, stand-alone multimodal assistant devices typically include a microphone for voice interaction and a touchscreen for interaction via various touch inputs received via the touchscreen. Summary of the Invention [Means for solving the problem]
[0005] A stand-alone multimodal assistant device often allows a user using the device to interact with the device using touch input or voice utterances. Furthermore, a user can use the device when relatively close to the device (e.g., adjacent or within a few feet), when relatively far from the device (e.g., more than 10 feet away), and even when moving around the environment. For example, a user can use a multimodal assistant device to ask for assistance in performing a multi-step task, such as installing and configuring a new smart thermostat. During the performance of the task, the user can interact with the multimodal assistant device via touch and / or voice input to cause the multimodal assistant device to audibly and / or graphically render various steps and / or other guidance related to installing and configuring a new smart thermostat. In providing such input and / or reviewing content rendered by the multimodal assistant device, the user may move throughout the environment. Thus, the user's perspective with respect to the device's display may change, thereby affecting the user's ability to view the content rendered via the display. Additionally, changes in a user's position may affect their ability to hear content that is aurally rendered through the speakers of a multimodal device.
[0006] In view of these and other considerations, the embodiments disclosed herein render only content related to the active session during an active session with a user. For example, in response to a voice utterance of "Tell me about installing Smart Thermostat X," the display of the standalone multimodal assistant device and the speaker of the device can exclusively render content related to the installation and configuration of "Smart Thermostat X." In other words, any previously rendered content can be completely replaced by the content of the active session. For example, assume that in response to a previous voice utterance of "Today's weather forecast," a daily weather forecast was rendered on the display in the previous session. In response to the voice utterance of "Tell me about installing Smart Thermostat X," the display of the weather forecast can be replaced by visual content related to the installation of "Smart Thermostat X" in the newly active session. In these and other ways, rendering of content of an active session can utilize the full range of the multimodal assistant device's display and / or speakers without "splitting" the display to present content from two sessions and without rendering audio from two different sessions simultaneously (e.g., one at a "lower" volume). In addition to conserving resources by preventing the simultaneous rendering of content from two sessions, this can reduce the duration of an active session by allowing a user to more easily and quickly review content in the active session.
[0007] While rendering only content relevant to the active session has various advantages, it can also cause problems if the active session interrupts a previous session before the previous session is completed. For example, it can be unclear at the end of an active session that interrupts a previous session whether the interrupted previous session should be automatically resumed (e.g., resumed at the end of the active session and without requiring further user interface input), not automatically resumed but suggested to be resumed (e.g., an interface element that can be touched to resume the previous session is displayed), not automatically resumed or suggested to be resumed but resumable upon explicit user request (e.g., a voice utterance of "resume previous session"), or not automatically resumed and expired entirely (e.g., data is cleared from memory to resume the previous session and it is not possible without extensive user interaction to recreate the state of the previous session in the state it was in when it was interrupted).
[0008] Techniques that exclusively completely expire the previous session may directly waste computer and network resources. For example, assume that the previous session is in a state that is the result of multiple human-automated assistant interaction turns, and the user wants to return to the previous session after the interrupted session ends. Techniques that exclusively completely expire the previous session may not allow the previous session to be resumed without performing multiple resource-intensive human-automated assistant interaction turns again to recreate the state of the previous session. Techniques that always exclusively return to the previous session may also directly waste computer and network resources. For example, if the user does not want to return to the previous session after the interrupted session ends, re-rendering the content from the previous session and / or storing its state in memory may unnecessarily consume various resources.
[0009] In general, challenges are presented in assistant devices in ensuring efficient management of multiple overlapping sessions and the resources provided to them. In particular, when one or more aspects of the interface presented by the assistant are implemented as voice (e.g., via voice utterances), presenting parallel session information in an environment that includes linear presentation aspects is challenging. Multimodal assistant devices, such as those that include displays, may provide opportunities for additional interface information to be conveyed, but also provide many opportunities for interaction with multiple sessions. Managing the use of resources applied to overlapping tasks in an assistant environment presents challenges that are not amenable to solutions previously used in alternative interfaces.
[0010] In light of these and other considerations, the embodiments disclosed herein relate to determining, upon termination of a second automated assistant session that has interrupted and replaced a previous first automated assistant session, whether to (1) automatically resume the previous first session or (2) transition to an alternative state in which the previous first session is not automatically resumed. In some embodiments, if it is determined to transition to an alternative state in which the previous first session is not automatically resumed, the alternative state may be an alternative state in which the previous session is not automatically resumed and expires entirely, an alternative state in which the previous session is not automatically resumed but is proposed to be resumed via a user interface output (e.g., via rendering of a graphic element), or an alternative state in which the previous session is not automatically resumed or proposed to be resumed but may be resumed in response to an explicit user request. Some of those embodiments may always transition to the same alternative state if it is determined to transition to an alternative state in which the first session is not automatically resumed. Other embodiments may select from one or more of those alternative states when determining to transition to an alternative state in which the first session is not automatically resumed.
[0011] The embodiments described herein further relate to selectively causing either an automatic resumption of the interrupted prior first session or a transition to a state in which the first session is not automatically resumed upon termination of the second session. These embodiments selectively cause one of those two actions to occur based on a decision of whether to (1) automatically resume the prior first session or (2) transition to an alternative state in which the prior first session is not automatically resumed. As described in detail herein, various techniques may be utilized in making such a decision, such as techniques that take into account one or more properties of the prior first session and / or the interrupting second session. Making such a decision and selectively performing only one of the two actions may directly result in various advantages. In particular, improved resource allocation may be achieved by providing alternative techniques for managing transitions between sessions. For example, selective automatic resumption of the prior first session may reduce (e.g., to zero) the amount of input a user needs to make to resume the prior first session, but only selectively and based on various considerations to mitigate the risk of automatic resumption when undesired. Also, for example, selectively transitioning to a state where the previous first session is not automatically resumed may prevent automatic rendering of content from the first session and / or may cause the assistant device to transition to a lower power state more quickly, and is performed only selectively and based on various considerations to mitigate the risk of non-automatic resumption when undesired. Furthermore, selectively performing one of the two actions improves interaction protocols that facilitate human interaction with automated assistants in performing various tasks such as controlling a smart device, configuring a smart device, installing a smart device, etc.
[0012] In some embodiments, upon termination of a second session that interrupts and replaces a previous first session, determining whether to (1) automatically resume the previous first session or (2) transition to an alternative state in which the previous first session is not automatically resumed is based at least in part on one or more properties of the previous first session and / or one or more properties of the second session. In some of those embodiments, the utilized property of the first session can include a partition assigned to the first content and / or the utilized property of the second session can include a partition assigned to the second content. The partition can indicate, for example, whether the corresponding content is temporary or persistent. In this manner, it can be recognized that sessions of different partitions may be treated differently when included in a multiple session environment, such that resources are appropriately allocated to needed or desired content.
[0013] Persistent content may include, for example, content that is rendered across multiple dialogue turns and / or content that is dynamically rendered depending on user interface input during a dialogue turn. For example, content rendered in guiding a user installation and configuration of a smart device may be persistent in that it is rendered across multiple dialogue turns and / or in a dynamic manner (e.g., if a user selects wiring option A in a dialogue turn, further content A is provided, but if the user instead selects wiring option B in a dialogue turn, further content B is provided). Persistent content may additionally or alternatively include, for example, content whose entire rendering takes at least a threshold duration and / or a particular type of content. For example, many (or all) videos may be classified as persistent, such as a music video that includes at least a threshold duration of visually and aurally rendered content. In contrast, ephemeral content may include static content and / or content that is rendered only in one dialogue turn, such as an audible and / or visual weather forecast, definitions of terms, answers to questions, etc. In some embodiments, content may be classified as persistent or ephemeral based at least in part on the source of the content. For example, all content from an agent providing video content may be classified as permanent, while content from an agent providing weather information may be classified as temporary. In some embodiments, content may be classified as permanent or temporary based at least in part on an intent determined based on a voice utterance or notification to which the content is responsive.For example, as described herein, voice utterances can be processed to derive intents and / or notifications can be associated with corresponding intents, and some intents can be associated with persistent content and other intents can be associated with ephemeral content. Additional and / or alternative techniques for classifying content as transient or persistent can be provided.
[0014] In some embodiments, automatically resuming the previous first session can be based on the content of the previous first session being classified as permanent and the content of the second session being classified as temporary. In some additional or alternative embodiments, determining to transition to an alternative state in which the previous first session is not automatically resumed can be based on the content of the previous first session being classified as temporary. In some of those embodiments, the alternative state is a state in which the previous first session is not automatically resumed and expires completely. In some additional or alternative embodiments, determining to transition to an alternative state in which the previous first session is not automatically resumed can be based on the content of the previous first session being classified as permanent and the content of the second session also being classified as permanent. In some versions of those embodiments, the alternative state is a state in which the previous first session is not automatically resumed but is offered to be resumed via a user interface output (e.g., via rendering of a graphical element on a "home" screen, as described in more detail herein). In some other versions of those embodiments, the alternative state is a state in which the previous session is not automatically resumed or offered to be resumed but is resumable upon explicit user request. In some additional or alternative embodiments, automatically resuming the previous first session may be based on a further determination that the content of the previous first session is classified as persistent, the content of the second session is classified as persistent, the content of the previous first session embodies an entity, and a defined relationship exists between the content of the entity of the second session.
[0015] In various embodiments described herein, the interruption data is received during rendering of the first content of the first session, and in response to receiving the interruption data, the alternative content is rendered during the second session. In some of those embodiments, the interruption data is a user's voice input and is determined to be interruption data based on the voice input including a request for alternative content and alternative content different from the first content of the first session. For example, the first content of the first session can be related to configuring a smart device, and the voice input can be "how to make a mint julep" and can be determined to be interruption data based on including a request for content (guidance related to making a mint julep) unrelated to the smart device configuration content of the first session. In contrast, if the first content displayed during the first session is one of a plurality of steps related to configuring a smart device and the voice input is "next," the voice input is not determined to be interruption data, but is instead determined to be a request to render a next portion of the first content.
[0016] In some additional or alternative embodiments, the interruption data may be a user interface input indicating a desire to interact with a notification that is received during the first session and that is to be visually and / or audibly rendered during rendering of the first content during the first session. For example, the notification may be an incoming voice and / or visual call, and an interactive graphical interface element may be overlaid on top of the visually rendered content of the first session. An affirmative selection of a notification graphical interface element may be the interruption data, and the alternative content rendered during the second session may be an audio and / or visual call. The affirmative selection may be, for example, a specific affirmative touch selection (e.g., a right swipe or double tap) or an affirmative voice utterance (e.g., "OK," "accept notification"). In contrast, a negative selection of a graphical interface element (e.g., a specific negative touch selection such as a swipe down) may close the notification without interrupting the first session. Interruption data, as used herein, refers to data indicating a desire to have alternative content rendered as part of an alternative session, and may be contrasted with user interface input that only seeks to cause the current termination (e.g., a voice command for "stop" or "pause," touching an interactive "X," or other termination graphical element).
[0017] In various embodiments, first session data of the interrupted first session may be stored and utilized to automatically resume the first session in the state of the first session when the interruption data is received. In some of those embodiments, the first session data is optionally persisted only in response to a decision to resume the first session. The first session data may be stored in various ways. In some embodiments, for example, a full transcript of the human-computer interaction of the first session may be saved such that the state of the first session may be reconstructed or resumed on the fly and / or as needed, for example, by detecting intents, slot values, entities, etc. in the saved transcript. Additionally or alternatively, in some embodiments, only core elements of the state, such as detected intents, slot values, mentioned entities, etc., may be saved in various formats, such as JavaScript Object Notation ("JSON") or other similar formats. The first session data may be saved in various locations. In some embodiments, the first session data may be persisted in a memory that is local to the computing device operated by the user to interact with the automated assistant. This may provide various technical advantages, such as reducing delays when resuming the first session. Additionally or alternatively, in some embodiments, the first session data may be persisted remotely from the user's computing device, for example, in the memory of one or more computing systems that collectively operate what are often referred to as "cloud-based services."
[0018] The above description is provided only as a summary of the various embodiments described herein. Additional descriptions of these various embodiments, as well as additional embodiments, are provided herein.
[0019] In some embodiments, a method executed by one or more processors is provided, comprising receiving user input data indicative of a user input detected via a user interface input component of a client device. The method further comprises identifying a first content responsive to the user input based on the user input data. The method further comprises, in response to receiving the user input data, causing the client device to render at least a portion of the first content during the first session. The method further comprises receiving interruption data during the rendering of the first content by the client device during the first session. The interruption data is received in response to further user interface input of the user detected during the rendering of the first content during the first session. The method further comprises, in response to receiving the interruption data, causing the client device to render alternative content during a second session that at least temporarily replaces the first session. The alternative content is different from the first content, and causing the client device to render the alternative content during the second session comprises causing the client device to render the alternative content in place of the first content. The method further includes determining, upon termination of the second session, whether to cause the client device to automatically resume the first session or to cause the client device to transition to an alternate state in which the client device does not automatically resume the first session. The determining step is based on at least one or more properties of the first session. The method further includes, upon termination of the second session and in response to the determination, selectively causing the client device to automatically resume the first session or to transition to an alternate state in which the first session is not automatically resumed.
[0020] These and other embodiments of the technology described herein may include one or more of the following features.
[0021] In some embodiments, the user input data includes voice utterance data indicative of a user's voice utterances detected via one or more microphones of the client device.
[0022] In some embodiments, the at least one property of the first session on which the determination is based includes a partition assigned to the first content. In some versions of those embodiments, the partition assigned to the first content indicates whether the first content is temporary or permanent. In some versions of those embodiments, the determining step includes determining, based on the partition assigned to the content indicating that the first content is temporary, to cause the client device to transition to an alternate state in which the client device does not automatically resume the first session.
[0023] In some embodiments, the at least one property of the first session on which the determination is based indicates whether the first content is temporary or persistent, and the determining step is further based on one or more properties of the second session. In some of those embodiments, the at least one property of the second session indicates whether the alternative content is temporary or persistent. In some versions of those embodiments, the determining step includes determining to cause the client device to automatically resume the first session based on the classification assigned to the first content indicating that the first content is persistent and the at least one property of the second session indicating that the alternative content is temporary. In some other versions of those embodiments, the determining step includes determining to cause the client device to transition to an alternative state in which the client device does not automatically resume the first session based on the classification assigned to the first content indicating that the content is persistent and the at least one property of the second session indicating that the alternative content is persistent.
[0024] In some embodiments, the further user interface input is a further voice utterance of the user. In some of these embodiments, the method further includes determining that the further voice input is interruption data based on the further voice input including a request for alternative content and the alternative content different from the first content of the first session.
[0025] In some embodiments, the at least one property of the first session on which the determining step is based includes an entity embodied by the first content, and the determining step includes determining to cause the client device to automatically resume the first session based on determining a relationship between the alternative content and the entity embodied by the first content.
[0026] In some embodiments, the method further includes receiving a notification to be rendered at the client device during rendering of the first content by the client device during the first session, and causing the client device to render the notification in response to receiving the notification. In some of those embodiments, the further user interface input is a touch or speech input indicating a user's affirmative provided in response to the client device rendering the notification, the input indicating the user's affirmative indicating a user's desire to interact with the notification, and the alternative content is based on the notification.
[0027] In some embodiments, the method further includes storing first session state data for the first session indicating a state of the first session when the interruption data was received. In those embodiments, causing the client device to automatically resume the first session may include using the first session state data to resume the first session in a state of the first session when the interruption data was received.
[0028] In some embodiments, the determining step includes determining to cause the client device to transition to a state in which the client device does not automatically resume the first session. In some of those embodiments, the method further includes, in response, erasing session data for the first session from a memory of the client device or a remote server in network communication with the client device.
[0029] In some embodiments, the client device includes a display and at least one speaker, and rendering the content includes rendering the content via the display and the at least one speaker.
[0030] In some embodiments, the alternative state in which the client device does not automatically resume the first session includes displaying a home screen or an ambient screen. In some versions of those embodiments, the home screen or ambient screen display does not have any reference to the first session. In some other versions of those embodiments, the home screen or ambient screen display includes a selectable graphical interface element that can be selected to resume the first session.
[0031] Additionally, some embodiments include one or more processors of one or more computing devices operable to execute instructions stored in associated memory, the instructions configured to cause performance of any of the aforementioned methods. Some embodiments also include one or more non-transitory computer-readable storage media storing computer instructions executable by the one or more processors to perform any of the aforementioned methods. [Brief description of the drawings]
[0032] [Figure 1] 1 is a block diagram of an exemplary environment in which embodiments disclosed herein may be implemented. [Diagram 2] FIG. 2 illustrates an example state machine that may be implemented in accordance with various embodiments. [Diagram 3] 1 is a flow chart illustrating an exemplary method according to embodiments disclosed herein. [Figure 4] FIG. 1 illustrates an example of rendering a first content during a first session, rendering alternative content during a second session in response to receiving interruption data during the rendering of the first content during the first session, and automatically resuming the first session upon termination of the second session. [Diagram 5] FIG. 1 illustrates an example of rendering a first content during a first session, rendering an alternative content during a second session in response to receiving interruption data during the rendering of the first content during the first session, and transitioning to an alternative state upon termination of the second session where resumption of the first session is proposed but not automatically resumed. [Figure 6] FIG. 13 illustrates another example of rendering a first content during a first session, rendering alternative content during a second session in response to receiving interruption data during the rendering of the first content during the first session, and automatically resuming the first session upon termination of the second session. [Figure 7] FIG. 1 illustrates an example of rendering a first content during a first session, rendering alternative content during a second session in response to receiving interruption data while rendering the first content during the first session, and, upon termination of the second session, transitioning to an alternative state where the first session is not automatically resumed and resumption is not offered. [Figure 8]FIG. 13 illustrates another example of rendering a first content during a first session, rendering alternative content during a second session in response to receiving interruption data during the rendering of the first content during the first session, and automatically resuming the first session upon termination of the second session. [Figure 9] FIG. 1 is a block diagram of an exemplary computing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0033] 1, an exemplary environment in which the techniques disclosed herein may be implemented is shown. The exemplary environment includes multiple client computing devices 1061-N. Each client device 106 may run a respective instance of an automated assistant client 118. One or more cloud-based automated assistant components 119, such as a natural language understanding engine 135, may be implemented in one or more computing systems (collectively referred to as "cloud" computing systems) communicatively coupled to the client devices 1061-N via one or more local and / or wide area networks (e.g., the Internet), generally shown at 110.
[0034] In some embodiments, an instance of an automated assistant client 118, through interaction with one or more cloud-based automated assistant components 119, may form what appears from a user's perspective to be a logical instance of an automated assistant 120 with which the user can engage in human-computer interaction. Two such instances of an automated assistant 120 are shown in FIG. 1. A first automated assistant 120A, enclosed by dashed lines, serves a first user (not shown) operating a first client device 1061 and includes an automated assistant client 1181 and one or more cloud-based automated assistant components 119. A second automated assistant 120B, enclosed by dashed lines, serves a second user (not shown) operating another client device 106N and includes an automated assistant client 118N and one or more cloud-based automated assistant components 119.
[0035] Thus, it should be understood that each user interacting with an automated assistant client 118 running on a client device 106 can in effect interact with his or her own logical instance of the automated assistant 120. For brevity and simplicity, the term "automated assistant" as used herein as "serving" a particular user refers to the combination of an automated assistant client 118 running on a client device 106 operated by the user and one or more cloud-based automated assistant components 119 (which may be shared among multiple automated assistant clients 118). It should also be understood that in some embodiments, the automated assistant 120 may respond to requests from any user, regardless of whether the user is actually "served" by that particular instance of the automated assistant 120.
[0036] The client devices 1061-N may include, for example, one or more of a desktop computing device, a laptop computing device, a tablet computing device, a mobile phone computing device, a computing device in a user's vehicle (e.g., an in-vehicle communication system, an in-vehicle entertainment system, an in-vehicle navigation system), a standalone interactive speaker, a smart appliance such as a smart television, and / or a user's wearable device that includes a computing device (e.g., a user's watch having a computing device, a user's glasses having a computing device, a virtual or augmented reality computing device). Additional and / or alternative client computing devices may be provided.
[0037] For purposes of this disclosure, in FIG. 1, the first client device 1061 takes the form of a standalone multimodal assistant device with speaker 1091 and display 1111 and may lack complex hardware input components such as a keyboard or mouse (except for display 111, which in some embodiments is a touch screen). The techniques described herein are described in the context of being performed using a standalone multimodal assistant device such as 1061, but this is not meant to be limiting. The techniques described herein may be implemented in client devices having other form factors (but still lacking a standard keyboard and mouse), such as vehicle computing devices intended to be interacted with primarily via voice and / or touch interaction. The second client device 106N is a standalone voice response speaker including speaker 109N through which the automated assistant 120A may provide natural language output. The techniques described herein may additionally or alternatively be implemented via the second client device 106N in conjunction with audio content of a session rendered via the second client device 106N.
[0038] As described in more detail herein, the automated assistant 120 engages in a human-computer interaction session with one or more users via the user interface input and output devices of one or more client devices 1061-N. In the case of a standalone multimodal assistant device such as the client device 1061, these input devices may be limited to a microphone (not shown) and a display 111 (in embodiments where the display 111 is a touch screen), as well as other sensors (e.g., PIR, camera) that may optionally be used to detect the presence of a nearby person. In some embodiments, the automated assistant 120 may engage in a human-computer interaction session with a user in response to user interface input provided by the user via one or more user interface input devices of one of the client devices 1061-N. In some of those embodiments, the user interface input is explicitly directed to the automated assistant 120. For example, a particular user interface input may be a user interaction with a hardware button and / or a virtual button (e.g., tap, long tap), a verbal command (e.g., "Hey, automated assistant"), and / or other particular user interface input.
[0039] In some embodiments, the automated assistant 120 may engage in a human-computer interaction session in response to a user interface input, even if that user interface input is not explicitly directed to the automated assistant 120. For example, the automated assistant 120 may examine the content of the user interface input and engage in an interaction session in response to specific terms present in the user interface input, and / or based on other cues. In many embodiments, the user may utter a command, search, or the like, and the automated assistant 120 may utilize speech recognition to convert the utterance to text and respond to the text accordingly, for example, by providing search results, general information, and / or by performing one or more response actions (e.g., playing media, launching a game, ordering food, etc.). In some embodiments, the automated assistant 120 may additionally or alternatively respond to the utterance without converting the utterance to text. For example, the automated assistant 120 may embed and convert the speech input into entity representations (indicating entities present in the speech input), and / or other "non-text" representations, and act on such non-text representations. Thus, embodiments described herein as operating based on text converted from speech input may additionally and / or alternatively operate directly on speech input and / or on other non-textual representations of speech input.
[0040] Each of the client computing devices 1061-N, and the computing devices operating the cloud-based automated assistant component 119, may include one or more memories for storage of data and software applications, one or more processors for accessing data and executing applications, and other components that facilitate communication over a network. Operations performed by one or more of the client computing devices 1061-N and / or the automated assistant 120 may be distributed across multiple computer systems. The automated assistant 120 may be implemented, for example, as a computer program running on one or more computers at one or more locations coupled together through a network.
[0041] As noted above, in various embodiments, each of the client computing devices 1061-N may operate an automated assistant client 118. In various embodiments, each automated assistant client 118 may include a corresponding voice capture / text-to-speech ("TTS") / speech-to-speech ("STT") module 114. In other embodiments, one or more aspects of the voice capture / TTS / STT module 114 may be implemented separately from the automated assistant client 118. Each voice capture / TTS / STT module 114 may be configured to perform one or more functions, such as capturing a user's voice via a microphone (voice capture), converting the captured audio to text and / or other representations or embeddings (STT), and / or converting text to speech (TTS). For example, in some embodiments, the client devices 106 may be relatively constrained in terms of computing resources (e.g., processor cycles, memory, batteries, etc.), so that the STT module 114, which is local to each client device 106, may be configured to convert a finite number of different spoken words into text (or other formats, such as low-dimensional embeddings). Other voice inputs may be sent to a cloud-based automated assistant component 119, which may include a cloud-based STT module 117.
[0042] The cloud-based STT module 117 may be configured to leverage the virtually unlimited resources of the cloud to convert audio data captured by the voice capture / TTS / STT module 114 into text (which may then be provided to the natural language processor 122). The cloud-based TTS module 116 may be configured to leverage the virtually unlimited resources of the cloud to convert text data (e.g., natural language responses formulated by the automated assistant 120) into computer-generated voice output. In some embodiments, the TTS module 116 may provide the computer-generated voice output to the client device 106, e.g., for direct output using one or more speakers. In other embodiments, text data (e.g., natural language responses) generated by the automated assistant 120 may be provided to the voice capture / TTS / STT module 114, which may then convert the text data into computer-generated voice that is output locally.
[0043] The automated assistant 120 (specifically, the cloud-based automated assistant component 119) may include a natural language understanding engine 135, the aforementioned TTS module 116, the aforementioned STT module 117, and other components described in more detail below. In some embodiments, one or more engines and / or modules of the automated assistant 120 may be omitted, combined, and / or implemented in a component separate from the automated assistant 120. In some embodiments, one or more of the components of the automated assistant 120, such as the natural language understanding engine 135, the voice capture / TTS / STT module 114, etc., may be implemented at least partially on the client device 106 (e.g., off the cloud).
[0044] In some embodiments, the automated assistant 120 generates response content in response to various inputs generated by a user of one of the client devices 1061-N during a human-computer interaction with the automated assistant 120. The automated assistant 120 may provide the response content (e.g., over one or more networks if separate from the user's client device) for presentation to a user as part of an interaction session. For example, the automated assistant 120 may generate response content in response to free-form natural language input provided via one of the client devices 1061-N. As used herein, free-form natural language input is input that is formulated by a user and is not constrained to a group of options presented for selection by the user.
[0045] The natural language processor 122 of the natural language understanding engine 135 may process natural language input generated by a user via the client devices 1061-N and generate annotated output (e.g., in text format) for use by one or more other components of the automated assistant 120. For example, the natural language processor 122 may process natural language free-form input generated by a user via one or more user interface input devices of the client device 1061. The generated annotated output includes one or more annotations of the natural language input and, optionally, one or more (e.g., all) of the terms of the natural language input.
[0046] In some embodiments, the natural language processor 122 is configured to identify and annotate various types of grammatical information in the natural language input. For example, the natural language processor 122 may include a morphological engine that can separate individual words into morphemes and / or annotate the morphemes, for example, with their classes. The natural language processor 122 may also include a portion of a part-of-speech tagger configured to annotate terms with their grammatical roles. Also, for example, in some embodiments, the natural language processor 122 may additionally and / or alternatively include a dependency parser configured to determine syntactic relationships between terms in the natural language input.
[0047] In some embodiments, the natural language processor 122 may additionally and / or alternatively include an entity tagger configured to annotate entity references in one or more segments, such as references to people (e.g., including literary figures, celebrities, public figures, etc.), organizations, places (real and fictional), etc. In some embodiments, data about the entities may be stored in one or more databases, such as a knowledge graph (not shown). In some embodiments, the knowledge graph may include nodes representing known entities (and possibly entity attributes), as well as edges connecting the nodes to represent relationships between the entities. For example, a "banana" node may be connected (e.g., as a child) to a "fruit" node, which in turn may be connected (e.g., as a child) to "produce" and / or "food" nodes. As another example, a restaurant called "fictional cafe" may be represented by a node that also includes attributes such as its address, the types of food served, hours of operation, contact information, etc. The "fictional cafe" node may, in some embodiments, be connected by edges (e.g., representing child-parent relationships) to one or more other nodes, such as a "restaurant" node, a "business" node, nodes representing the city and / or state in which the restaurant is located, etc.
[0048] The entity tagger of the natural language processor 122 may annotate references to entities at a high level of granularity (e.g., to enable identification of all references to an entity class, such as person) and / or at a low level of granularity (e.g., to enable identification of all references to a particular entity, such as a particular person). The entity tagger may rely on the content of the natural language input to resolve particular entities, and / or may optionally communicate with a knowledge graph or other entity database to resolve particular entities.
[0049] In some embodiments, the natural language processor 122 may additionally and / or alternatively include a coreference resolver configured to group or "cluster" references to the same entity based on one or more contextual cues. For example, a coreference resolver may be utilized to resolve the term "there" in the natural language input "I liked the fictional cafe the last time I ate there" to "fictional cafe."
[0050] In some embodiments, one or more components of the natural language processor 122 may rely on annotations from one or more other components of the natural language processor 122. For example, in some embodiments, the named entity tagger may rely on annotations from the coreference resolver and / or the dependency parser in annotating all references to a particular entity. Also, for example, in some embodiments, the coreference resolver may rely on annotations from the dependency parser in clustering references to the same entity. In some embodiments, when processing a particular natural language input, one or more components of the natural language processor 122 may use relevant prior input and / or other relevant data external to the particular natural language input to determine one or more annotations.
[0051] The natural language understanding engine 135 may also include an intent matcher 136 configured to determine a user's intent to engage in a human-computer interaction session with the automated assistant 120 based on the annotated output of the natural language processor 122. Although depicted separately from the natural language processor 122 in FIG. 1, in other embodiments, the intent matcher 136 may be an integral part of the natural language processor 122 (or more generally, a pipeline that includes the natural language processor 122). In some embodiments, the natural language processor 122 and the intent matcher 136 may collectively form the aforementioned "natural language understanding" engine 135.
[0052] The intent matcher 136 may use a variety of techniques to determine the user's intent. In some embodiments, the intent matcher 136 may access one or more databases 137 that include, for example, multiple mappings between grammars and response actions (or, more generally, intents). Additionally or alternatively, in some embodiments, the one or more databases 137 may store one or more machine learning models trained to generate output indicative of the user's intent based on the user's input.
[0053] Grammars may be selected, formulated (e.g., manually), and / or learned over time, for example, to represent the most common intents of users. For example, one grammar, "play <artist>", may be mapped to an intent that invokes a response action that causes music by <artist> to be played on a client device 106 operated by the user. Another grammar, "Today's [weather|forecast]", may match user queries such as "What's the weather today?" or "What's the weather forecast today?". As seen in the "play <artist>" example grammar, some grammars have slots (e.g., <artist>) that can be filled with slot values (or "parameters"). Slot values may be determined in a variety of ways. Often, the user actively provides a slot value. For example, for the grammar "order <toppings> pizza", the user may speak the phrase "order sausage pizza", in which case the slot <toppings> is filled automatically. Additionally or alternatively, if the user invokes a grammar that contains slots to be filled with slot values without the user actively providing those slot values, the automated assistant 120 can ask the user for those slot values (e.g., "What type of crust would you like on your pizza?").
[0054] In contrast to many grammars (which may be created manually), machine learning models may be trained automatically, for example, using logs of interactions between a user and an automated assistant. Machine learning models may take various forms, such as neural networks. They may be trained in various ways to predict a user's intent from user input. For example, in some embodiments, training data including individual training examples may be provided. Each training example may include, for example, free-form input from a user (e.g., textual or non-textual) and may be labeled (e.g., manually) with an intent. The training examples may be applied as inputs to an entire machine learning model (e.g., a neural network) to generate an output. The output may be compared to the label to determine an error. This error may be used to train the model, for example, using techniques such as gradient descent (e.g., stochastic, batch, etc.) and / or backpropagation to adjust weights associated with the model's hidden layer. Once such a model is trained with (usually many) training examples, it may be used to generate an output that predicts an intent from unlabeled free-form natural language input.
[0055] In some embodiments, the automated assistant 120 may facilitate (or "mediate") transactions between a user and an application (also called an agent), such as a third-party application. These applications may or may not run on a computing system separate from the one that runs the cloud-based automated assistant component 119, for example. Thus, one type of user intent that may be identified by the intent matcher 136 is to use an application, such as a third-party application. For example, the automated assistant 120 may provide access to an application programming interface ("API") to a pizza delivery service. A user may invoke the automated assistant 120 and provide a command such as "I would like to order a pizza." The intent matcher 136 may map this command to a grammar (possibly added to the database 137 by a third party) that triggers the automated assistant 120 to interact with the third-party pizza delivery service. The third-party pizza delivery service may provide the automated assistant 120 with a minimal list of slots that need to be filled to fulfill the pizza delivery order. The automated assistant 120 may generate and provide to the user (via the client device 106) a natural language output that asks for the parameters of the slots.
[0056] The fulfillment engine 124 may be configured to receive the intent output by the intent matcher 136, as well as the associated slot value (whether actively provided or requested by the user), and fulfill the intent. In various embodiments, the fulfillment of the user's intent may, for example, cause the fulfillment engine 124 to generate / obtain various fulfillment information. As described below, in some embodiments, the fulfillment information may be provided to a natural language generator 126, which may generate a natural language output based on the fulfillment information.
[0057] Since intents can be fulfilled in various ways, fulfillment information can take various forms. Assume a user requests pure information such as "Where were the exterior shots in The Shining filmed?" The user's intent can be determined as being a search query, for example, by intent matcher 136. The intent and content of the search query can be provided to fulfillment engine 124, which may be in communication with one or more search engines 150 configured to search a corpus of documents and / or other data sources (e.g., knowledge graphs, etc.) for response information, as shown in FIG. 1. Fulfillment engine 124 can provide data indicative of the search query (e.g., text of the query, dimensionality-reduced embeddings, etc.) to search engine 150. Search engine 150 can provide response information such as "Timberline Lodge, Mt. Hood, Oregon." This response information can form part of the fulfillment information generated by fulfillment engine 124.
[0058] Additionally or alternatively, the fulfillment engine 124 may be configured to receive, e.g., from the natural language understanding engine 135, the user's intent and any slot values provided by the user or determined using other means (e.g., the user's GPS coordinates, user preferences, etc.) to trigger a responsive action. The responsive action may include, e.g., ordering a product / service, engaging in an interactive dialogue to perform a task, starting a timer, setting a reminder, initiating a phone call, playing media, sending a message, etc. In some such embodiments, the fulfillment information may include a slot value associated with the fulfillment, an acknowledgment response (which may in some cases be selected from predefined responses), etc.
[0059] As described above, the natural language generator 126 may be configured to generate and / or select natural language output (e.g., spoken words / phrases designed to mimic human speech) based on data obtained from various sources. In some embodiments, the natural language generator 126 may be configured to receive as input fulfillment information associated with the fulfillment of an intent by the fulfillment engine 124 and generate a natural language output based on the fulfillment information. Additionally or alternatively, the natural language generator 126 may receive information from other sources, such as third-party applications (e.g., required slots) and use it to formulate a natural language output for the user. Furthermore, as described herein, content provided for rendering as output to the user may include graphical content, optionally along with corresponding audible content.
[0060] The session engine 138 can be configured to identify an active automated assistant session occurring via the first client device 1061 or via the second client device 106N. The session engine 138 can cause only content associated with the active session to be rendered during the active session. Furthermore, in response to receiving interruption data during an active first session, the session engine 138 can be configured to cause the respective client device to render alternative content during the second session that at least temporarily replaces the second session. The alternative content rendered during the second session is different from the content of the first session, and causing the client device to render the alternative content includes causing the client device to render the alternative content instead of the content of the first session.
[0061] The session engine 138 can determine that some instances of user interface input provided by the user constitute interruption data based on the instances requesting that alternative content be provided in place of the content provided during the first session. In making such a determination, the session engine 138 can rely on output from the natural language understanding engine 135, such as an output indicating speech input and / or other natural language input of the user indicating a change from a current intent to a new intent. When such speech input that is interruption data is received, the session engine 138 can respond to the new intent and cause the alternative content determined by the fulfillment engine 124 to replace the content rendered for the first session. The session engine 138 can additionally or alternatively determine that a user interaction indicating an affirmation that a notification was provided during the first session is interruption data. When such an affirmative user interaction is received, the session engine 138 can cause the alternative content corresponding to the notification to replace the content rendered for the first session.
[0062] The session engine 138 can be further configured to determine, upon termination of the second session, whether to (1) automatically resume the prior first session or (2) transition to an alternate state in which the prior first session is not automatically resumed. The session engine 138 can be further configured to selectively cause either an automatic resumption of the interrupted prior first session or a transition to a state in which the first session is not automatically resumed, upon termination of the second session. The session engine 138 can selectively cause one of those two actions to occur based on a determination of (1) automatically resume the prior first session or (2) transition to an alternate state in which the prior first session is not automatically resumed. As described herein, when session engine 138 determines to transition to an alternative state in which the previous, first session is not automatically resumed, the alternative state may be an alternative state in which the previous session is not automatically resumed and expires completely, an alternative state in which the previous session is not automatically resumed but is suggested to be resumed via user interface output (e.g., via rendering of graphical elements), or an alternative state in which the previous session is not automatically resumed or suggested to be resumed, but is resumable in response to an explicit user request.
[0063] Session engine 138 may further be configured to cause selective transitions between various states in accordance with embodiments described herein, such as display off, ambient, home, and session states described herein. For example, session engine 138 may selectively transition from an interrupted session state to either an automatic resumption of the previous session state or a state in which the previous session state is not automatically resumed. Additionally, in embodiments in which session engine 138 transitions to a home state in which the previous session state is not automatically resumed, session engine 138 may optionally determine whether to adapt the home state (e.g., whether to include interactive elements to resume the previous session state) based on various considerations described herein. Additional descriptions of these and other aspects of session engine 138 are described herein (e.g., in the Abstract and with respect to FIGS. 2-8 below). Note that while in FIG. 1, session engine 138 is shown as being implemented as part of the cloud-based automated assistant component 119, in various embodiments, all or part of session engine 138 may be implemented by the respective automated assistant client 118.
[0064] 2 illustrates one exemplary state diagram that may be implemented, for example, by session engine 138, according to various embodiments. The depicted state diagram includes five states: display off 181, ambient 183, home 185, first session 187, and second session 189. Although five states are depicted, fewer or more states may be provided. For example, as described herein, second session 189 is not always in an active state, but may be created on demand in response to interruption data received while content is being rendered in first session 187. Also, an additional, third session state may be created on demand by session engine 138, for example, in response to further interruption data received while content is being rendered in second session 189. Once such a third session state is created, a transition from the third session state may be handled in a similar manner as described herein for a transition from a second session (e.g., the second session 189 may be automatically resumed or an alternate state may transition to a state in which the second session 189 is not automatically resumed).
[0065] Display off 181 may be, for example, a default state in which the display 111 remains asleep, using little or no power. A standalone multimodal assistant device 1061 may remain in its current state while remaining alone with no one nearby. In some embodiments, while the current state is display off 181, a user (not yet detected as present) may still request an activity from the automated assistant 120, for example by speaking an invocation phrase followed by a specific request, and transition the current state directly to the first session 187 state.
[0066] In some embodiments, when one or more people are detected nearby (i.e., "OCCUPANCY"), the current state may be transitioned to an ambient 183 state. In the ambient 183 state, the automated assistant 120 may cause the display 1111 of the client device 1061 to render ambient content, which may be selected, for example, based on its aesthetic appeal. For example, one or more digital images and / or videos of scenery or other similar content may be visually displayed, optionally along with an audible rendering of relaxing nature sounds. Note that although content is rendered in the ambient 183 state, the ambient 183 state is not considered a session as that term is used herein. For example, content rendered in the ambient 183 state is not identified and is not rendered in response to a voice utterance or in response to the acceptance of a notification by the user, and therefore may not be considered a session. In some embodiments, for example, if it is determined that the occupant is no longer co-present with the standalone multimodal assistant device for at least a predetermined period of time, the current state can be reverted from ambient 183 to display off 181.
[0067] 2, in some embodiments, while the current state is ambient 183, the user may still request an activity from the automated assistant 120, for example by speaking an invocation phrase followed by a specific request, and transition the current state to a first session 187 state. In other embodiments, the ambient 183 state may not exist, and the current state may transition from display off 181 directly to home 185 in response to detection of human co-presence (occupancy).
[0068] In the home 185 state, various graphical elements may be rendered, such as suggested actions for the user to perform through interaction with the automated assistant, the current time, current weather conditions, a brief summary of the user's calendar, etc. In some embodiments, data items may be displayed as cards or tiles, which may or may not be interactive (e.g., depending on whether the display 111 is a touch screen). Data items may possibly be ranked based on various criteria, such as a priority assigned to the data item (automatically or manually), the identity of co-residents (if determined), the time of day, the season, etc. When data items are presented as cards, e.g., in a stack, the ranking may be reflected, e.g., by the top card having the highest priority and lower cards having relatively lower priority. When data items are presented as tiles, e.g., occupying a portion of the display 111, the ranking may be reflected, e.g., in the placement of the tiles (e.g., the top left or top right may have the highest priority) and / or the size of the tiles (e.g., the larger the tile, the higher the priority). As described in more detail herein, in various embodiments, when the Home 185 state is transitioned prior to completion of a session that includes persistent content, the data item optionally includes a selectable graphical element that can be selected to resume the session. Note that although content is rendered in the Home 185 state, the Home 185 state is not considered a session as that term is used herein. For example, content rendered in the Home 185 state is not identified and is not rendered in response to a voice utterance or in response to the acceptance of a notification by the user, and therefore may not be considered a session.
[0069] While in the Home 185 state, if the user engages with one or more of the graphical elements representing the data items, for example by tapping a tile or card, the current state may transition to the First Session 187 state and render content responsive to the graphical elements interacted with by the user. For example, if one of the graphical elements is a music video suggestion that may be of interest to the user, the First Session 187 state may render audible and graphical content for the music video. Similarly, if the user issues a voice request to the automated assistant 120 (e.g., "OK, Assistant, what's...?"), the current state may transition to the First Session 187 state and render content responsive to the voice request. In some embodiments, if the co-present user does not vocally engage with the automated assistant 120 and interact with the data items rendered on the display 111 for at least a predefined time interval (i.e., a timeout), the current state may transition from Home 185 back to Ambient 183, or back to Display Off 181 if there is no Ambient 183 state. Other events that may trigger a transition from the Home 185 state to the Ambient 183 (or Display Off 181) state include, but are not limited to, a specific request from the user (e.g., tapping an end button on the display), a back gesture (e.g., waving a hand in front of a camera or other sensor) that may signal a coexisting user intent to return to Ambient 183, etc.
[0070] In the first session 187, status content related to the requested activity or task may be rendered exclusively on the display 111 and, optionally, via the speaker 191. For example, assume that the co-present user issues a voice request for guidance on installing a smart device. In response, the entire display 111 and the speaker 191 may be dedicated to multiple dialogue turn interactions to guide the user through the smart device installation process. As another example, assume that the co-present user issues a voice request for information about a celebrity. In some embodiments, the response content may be provided audibly through the speaker 109 and / or rendered on the display 111 as natural language output by the automated assistant 120. In some embodiments, the automated assistant 120 provides the response content audibly while other content responsive to the user's request (but not necessarily specifically requested by the user) may be displayed. For example, if a user requests a celebrity's birthday, the celebrity's birthday may be audibly output and other information about the celebrity (e.g., deep links to view movie times starring the celebrity, photos of the celebrity, etc.) may be rendered on display 111.
[0071] The current state can revert from the first session 187 state to the Home 185 state (or Ambient 183, or Display Off 181) in response to the termination of the first session 187. The termination of the first session 187 can occur in response to completion of rendering of the persistent content of the first session state 187 (e.g., a music video has completed playing), completion of rendering of the temporary content, and optionally after a timeout after completion. Other events may be considered termination events but do not constitute completion of the first session 187, such as an explicit user input to cancel the first session 187 (e.g., a voice utterance of "exit", a touch input of "back", a touch input of an "X" or other cancel interactive graphic element), or a specific request to return to the Home 185 state.
[0072] In some embodiments, the activities and / or tasks of the first session 187 may not be completed and / or remain open (e.g., not explicitly canceled) when there is an end that causes a transition to the Home 185 state. For example, the user may pause a song or video in the middle of rendering. As another example, the user may start to request a task that requires several slots to fill activity parameters, but may not be able to fill all the required slots. For example, the user may start to order a pizza, but may stop and leave the room to ask the other person which toppings they want, request payment information from the other person, etc. In some of those embodiments, a new tile or card may be rendered on the display 111 in the Home state 185 representing the incomplete first session 187. In some cases, this new tile or card may be tapped by the user to continue the first session 187. In many embodiments, this new tile or card may only be generated for incomplete tasks classified as persistent tasks (whereas no tile or card is generated for incomplete tasks classified as temporary tasks).
[0073] As also shown in FIG. 2, the current state may be transitioned from a first session 187 state to a second session 189 state in response to receiving interruption data. This may occur when the first session 187 is still active and the content of the first session 187 is being rendered exclusively via the display 111 and / or speaker 109. As described herein, the interruption data may be a voice utterance provided by a user when the voice utterance requests the provision of alternative content in place of the content provided during the first session 187. The interruption data may additionally or alternatively be a user interaction indicating an affirmation with a notification to be provided during the first session 187. Regardless of the interruption data, receipt of the interruption data transitions to a second session 189 state and the alternative content corresponding to the interruption data replaces the content rendered during the first session 187 state.
[0074] When termination of the second session 189 occurs, the first session 187 transitions to either the Home 185 state, where rendering of the first session 187 content automatically resumes, or to the Home 185 or Ambient 183 state, where rendering of the first session 187 state content does not automatically resume. As described herein, whether a transition to the first session 187 state, or to the Home 185 or Ambient 183 state, should occur may be dynamically determined based on one or more properties of the first session 187 and / or the second session 189. Such properties may include, for example, whether the first session 187 renders persistent or temporary content and / or whether the second session renders persistent or temporary content. In a situation where a transition to the Home 185 state occurs and the first session 187 state renders persistent content, a selectable tile, card, or other graphical element may optionally be rendered in the Home 185 state, and upon selection, a transition back to the first session 187 state occurs, and the first session 187 is then resumed.
[0075] The termination of the second session 189 state may occur in response to completion of rendering of the persistent content of the second session 189 (e.g., a video has completed playing), or completion of rendering of the temporary content, and optionally after a timeout after completion. Other events may be considered termination events of the second session 189, but do not constitute completion of the second session 189, such as an explicit user input to cancel the second session 189 (e.g., a voice utterance of "exit", a touch input of "back", a touch input of an "X" or other cancel interactive graphic element). In many cases, the termination of the second session 189 occurs without a user input directly indicating whether the user wants to return to the first session 187. Thus, the embodiments described herein address such situations and can selectively, dynamically, and in a context-dependent manner determine whether to return to and automatically resume the first session 187 upon termination of the second session 189.
[0076] 3 is a flow chart illustrating an example method 300 according to embodiments disclosed herein. For convenience, the operations of the flow chart are described with reference to a system that performs the operations. The system may include various components of various computer systems, such as one or more components of a computing system that implements the automated assistant 120. Additionally, although the operations of the method 300 are shown in a particular order, this is not meant to be limiting. One or more operations may be reordered, omitted, or added.
[0077] In block 302, the system identifies content responsive to a user interface input at the assistant device. For example, the user interface input can be an audio utterance, and the system can identify content responsive to the audio utterance. For example, in response to "play video X," a video corresponding to "video X" can be identified. As another example, the user interface input can be a touch interaction with a graphical element rendered on a touch-sensitive display of the assistant device, and the responsive content can be responsive to the graphical element. For example, the graphical element can be a recommendation for "video X," and "video X" is identified in response to the interaction with the graphical element.
[0078] In block 304, the system renders content during the first session (304). The system can render the content through a user interface output device of the assistant device, such as a display and / or speaker of the assistant device. In various embodiments, the system renders the content exclusively. That is, the system renders the content without rendering content unrelated to the first session (which may be rendered briefly (optionally while pausing the content of the first session) so that the user can affirmatively accept the notification, since there is no content related to the received notification). Rendering of the content during the first session (304) can occur over one or more dialogue turns and / or over an extended period of time.
[0079] During rendering of the content in the first session, the system monitors for the end of the first session in block 306. If the first session ends in block 306, the system can proceed to block 316 and transition the display of the assistant device to a home screen or an ambient screen as described herein. If the display is a home screen and the end of the first session detected in block 306 is not completion or cancellation, block 316 can include an optional repetition of block 317, where a suggestion to resume the first session is rendered on the home screen. For example, if the end is detected in block 306 in response to the user saying "pause" and a timeout occurring, a selectable graphic element can be rendered on the home screen, which, when selected, resumes the first session and continues the performance of blocks 304, 306, and 308.
[0080] If there is no end of the first session at block 306, the system may proceed to block 308 to determine whether interruption data has been received. Although depicted sequentially in FIG. 3, in various embodiments, blocks 306 and 308 may execute in parallel and / or "on demand" in response to corresponding inputs being received. Additionally, blocks 304, 306, and 308 may all execute in parallel. For example, block 304 may execute continuously while blocks 306 and 308 execute in the background. If no interruption data is received at block 308, the system returns to block 304 and rendering (304) of the content for the first session continues (e.g., without interruption).
[0081] If, in an iteration of block 308, interruption data is received, the system proceeds to block 310 and renders alternative content in the second session replacing the first session. The alternative content can be responsive to the interruption data. For example, the alternative content can be responsive to a voice utterance associated with the interruption data or can be responsive to a notification associated with the interruption data. In various embodiments, the system renders the alternative content exclusively in block 310. That is, the system renders the alternative content without rendering content unrelated to the second session (which may be rendered briefly (optionally while pausing the content of the first session) so that the user can affirmatively accept the notification since there is no content associated with the received notification). The rendering of the alternative content during the second session 310 may occur over one or more dialogue turns and / or over an extended period of time.
[0082] In some embodiments of block 310, rendering of the alternative content in the second session may be substituted for the first session in response to determining that at least one required output modality of the alternative content (e.g., audible and / or visual) conflicts with at least one output modality used to render the first content in the first session. In some of those embodiments, if the modalities do not conflict (e.g., if only one of the alternative content and the first content is audible and the other of the alternative content and the first content is visual only), block 314 may be skipped since the first session is not terminated since both the first session and the second session may occur simultaneously through different output modalities.
[0083] During rendering of the alternative content during the second session, the system monitors for the end of the second session in block 312. If the end of the second session is detected in an iteration of block 312, the system proceeds to block 314 to determine whether to resume the first session.
[0084] If the system determines to resume the first session in block 314, the system returns to block 304 and, optionally, automatically resumes rendering of content during the first session from the state of the first session corresponding to that state with the interruption data detected in block 308.
[0085] If the system determines not to resume the first session in block 314, the system proceeds to block 316 and transitions the display of the assistant device to a home screen or an ambient screen, as described herein. If the display is a home screen, block 316 can include an iteration of optional block 317, where a first session resume offer and / or a second session resume offer is rendered on the home screen. For example, if the first session includes persistent content, a selectable graphic element can be rendered on the home screen, which, when selected, resumes the first session and continues the performance of blocks 304, 306, and 308. Also, for example, if the second session includes persistent content and the second session termination of block 312 was not completed or canceled, a selectable graphic element can be rendered on the home screen, which, when selected, resumes the second session.
[0086] In various embodiments, determining whether to resume the first session in block 314 may be based at least in part on one or more properties of the first session and / or one or more properties of the second session, such as whether the content of the first session is persistent or temporary content and / or whether the substitute content of the second session is persistent or temporary content. Note that although depicted sequentially in FIG. 3, in various embodiments, blocks 310, 312, and 314 may execute in parallel. For example, block 310 may execute continuously while block 312 executes continuously in the background, and the determination of block 314 may be determined preemptively in one iteration before block 312 occurs.
[0087] FIG. 4 illustrates an example of rendering a first content 491 during a first session, rendering an alternative content 493 during a second session in response to receiving interruption data while rendering the first content during the first session, and automatically resuming the first session upon termination of the second session.
[0088] As represented in FIG. 4 by the top first client device 1061, the first content 491 may be rendered on the display of the first client device 1061 in response to a user request for the automated assistant 120 to facilitate wiring a smart thermostat. The first content 491 is rendered during a first session for such user request and represents only a portion of the first content rendered during one of the multiple dialogue turns of the first session. Although not shown, it should be noted that the corresponding audible content of the first session may also be rendered by the speaker of the first client device 1061. Before the first session ends and while the first content 491 is being rendered, the user provides a voice utterance 492 of "What's the weather forecast today?" Such voice utterance 492 constitutes interruption data because it is a request for alternative content unrelated to the first session.
[0089] In response to the voice utterance, the automated assistant, as represented by the first client device 1061 in the center, replaces the rendering of the first content 491 with alternative content 493 in the second session. The alternative content 493, in response to the voice utterance 492, replaces the first content 491 and is rendered exclusively by the display. Note that in various embodiments, the audible alternative content of the second session may also be rendered by the speaker of the first client device 1061.
[0090] When the second session is terminated, as represented by the first client device 1061 at the bottom, the first session is automatically resumed. The termination of the second session may occur, for example, in response to a timeout or in response to the user indicating completion through a user interface input (e.g., speaking "Done," swiping "Back," etc.). In some embodiments, the first session may be automatically resumed based at least in part on the first content 491 of the first session being classified as persistent content and the second content 493 of the second session being classified as temporary content.
[0091] FIG. 5 illustrates an example of rendering a first content 591 during a first session, rendering an alternative content 592 during a second session in response to receiving interruption data while rendering the first content during the first session, and transitioning to an alternative state 595 at the end of the second session where resumption of the first session is proposed but not automatically resumed.
[0092] 5, as represented by the top first client device 1061, first content 591 may be rendered on a display of the first client device 1061 in response to a user request for the automated assistant 120 to facilitate wiring a smart thermostat. The first content 591 may be similar to the first content 491 of FIG. 4. Before the first session ends and while the first content 591 is being rendered, the user provides a voice utterance 592 of "Show me a video for making a mint julep." Such voice utterance 592 constitutes interruption data because it is a request for alternative content unrelated to the first session.
[0093] In response to the voice utterance, as represented by the first client device 1061 in the center, the automated assistant replaces the rendering of the first content 591 with alternative content 593 in the second session. The alternative content 593, in response to the voice utterance 592, replaces the first content 591 and is rendered exclusively by the display. In the example of FIG. 5, the alternative content 593 is a persistent video related to making a mint julep, which is automatically played in response to the voice utterance 592 that constitutes the interruption data.
[0094] When the second session ends, as represented by the first client device 1061 at the bottom, the first session is not automatically resumed. Instead, the display of the client device 1061 is transitioned to an alternative "home" state 595, in which the first session is offered to be resumed via the graphic element 5951, but is not automatically resumed. The graphic element 5951 can be selected with a touch input to resume the first session. In some embodiments, the first session cannot be automatically resumed based at least in part on the alternative content 593 of the second session being classified as persistent content. In some embodiments, the graphic element 5951 can be provided based at least in part on the first session content 591 of the first session being classified as persistent content. Note that in the home state 595, other graphic elements 5952 and 5953 are also provided that display upcoming events tailored to the user, and a local weather forecast, respectively.
[0095] FIG. 6 illustrates another example of rendering first content 691 during a first session, rendering alternative content 692 during a second session in response to receiving interruption data while rendering the first content during the first session, and automatically resuming the first session upon termination of the second session.
[0096] In FIG. 6, as represented by the top first client device 1061, the first content 691 can be rendered on the display of the first client device 1061 in response to a user request for the automated assistant 120 to facilitate wiring of a smart thermostat. The first content 691 can be similar to the first content 491 of FIG. 4. Before the first session ends and while the first content 691 is being rendered, the user provides a voice utterance 692 of "Show me a video to distinguish between earthed and neutral." Such a voice utterance 692 constitutes interruption data because it is a request for alternative content unrelated to the first session. For example, it does not cause a continuation of the presentation of the first content from the first session, but rather constitutes a request for alternative content not included in the first content.
[0097] In response to the voice utterance, as represented by the first client device 1061 in the center, the automated assistant replaces the rendering of the first content 691 with alternative content 693 in the second session. The alternative content 693, in response to the voice utterance 692, replaces the first content 691 and is rendered exclusively by the display. In the example of FIG. 6, the alternative content 693 is a persistent video related to the distinction between earth and neutral wires, which is automatically played in response to the voice utterance 692 that constitutes the interruption data.
[0098] When the second session ends, the first session is automatically resumed, as represented by the first client device 1061 at the bottom. In the example of FIG. 6, the first session is automatically resumed even though the alternative content of the second session is classified as persistent content. In some embodiments, if the alternative content of the second session is classified as persistent content, the first session is not automatically resumed unless one or more other conditions exist. Such an additional condition is present in the example of FIG. 6. That is, the additional condition may be that the content of the previous first session embodies one or more entities, such as an "electrical wiring" entity and / or a more detailed "earth wire" and / or "neutral wire" entity, and that a relationship defined exists between the entities of the first session and the alternative content of the second session. For example, the relationship may be that the video of the second session also embodies an "electrical wiring" entity and / or a more detailed "earth wire" and / or "neutral wire" entity. Determining that such entities are embodied by the first content in the first session and / or the alternative content in the second session can be based on terms, titles, and / or other properties of the content and the alternative content, and optionally based on a reference to a knowledge graph, such as the knowledge graph described above. For example, an entity tagger in the natural language processor 122 (FIG. 1) can tag such entities based on text associated with the first content and the alternative content.
[0099] FIG. 7 illustrates an example of rendering a first content 791 during a first session, rendering an alternative content 793 during a second session in response to receiving interruption data while rendering the first content during the first session, and, upon termination of the second session, transitioning to an alternative state in which the first session is not automatically resumed and resumption is not suggested.
[0100] As represented in FIG. 7 by the top first client device 1061, first content 791 may be rendered on the display of the first client device 1061 in response to a user's voice utterance of "height of the Empire State Building." The first content 791 is temporary content and represents the entirety of the first content rendered during the first session (without corresponding audio content that may optionally be rendered simultaneously). Before the first session ends and while the first content 791 is being rendered, the user provides a voice utterance 792 of "What's the weather forecast today?" Such voice utterance 792 constitutes interruption data, as it is a request for alternative content unrelated to the first session.
[0101] In response to the voice utterance, as represented by the first client device 1061 in the center, the automated assistant replaces the rendering of the first content 791 with alternative content 793 in the second session. The alternative content 793, in response to the voice utterance 792, replaces the first content 791 and is rendered exclusively by the display.
[0102] When the second session ends, as represented by the first client device 1061 at the bottom, the first session is not automatically resumed. Instead, the display of the client device 1061 is transitioned to an alternative "home" state 795, in which the first session is not automatically resumed and resumption is not suggested via the graphical elements. In some embodiments, the first session cannot be automatically resumed and resumption is not suggested, based at least in part on the first session content 791 of the first session being classified as temporary content. Note that in the home state 795, graphical elements 7951 and 7952 are provided that display upcoming events tailored to the user and a local weather forecast, respectively.
[0103] FIG. 8 illustrates another example of rendering first content 891 during a first session, rendering alternative content 893 during a second session in response to receiving interruption data while rendering the first content during the first session, and automatically resuming the first session upon termination of the second session.
[0104] As represented in FIG. 8 by the top first client device 1061, a first content 891 may be rendered on a display of the first client device 1061 in response to a user request for the automated assistant 120 to facilitate wiring a smart thermostat. A notification 897 is briefly rendered over the first content 891 during the first session prior to the end of the first session and while the first content 891 is being rendered. The notification 897 informs the user of available sports score updates. As shown in FIG. 8, the user "tap" on the notification 897, which constitutes the interruption data.
[0105] In response to the interruption data, the automated assistant, as represented by the center first client device 1061, replaces the rendering of the first content 891 with alternative content 893 in the second session. The alternative content 893 is responsive to the notification 897 and includes additional visual and optional content related to the sports score update of the notification. The alternative content 893 replaces the first content 891 and is rendered exclusively by the display.
[0106] When the second session is terminated, the first session is automatically resumed, as represented by the first client device 1061 at the bottom. The termination of the second session may occur, for example, in response to a timeout, in response to a user indicating completion through a user interface input (e.g., speaking "Done," swiping "Back"), etc. In some embodiments, the first session may be automatically resumed based at least in part on the first content 891 of the first session being classified as persistent content and the second content 893 of the second session being classified as temporary content.
[0107] 9 is a block diagram of an example computing device 910 that may optionally be utilized to perform one or more aspects of the techniques described herein. In some embodiments, one or more of the client computing devices, the user controlled resource engine 130, and / or other components may comprise one or more components of the example computing device 910.
[0108] The computing device 910 typically includes at least one processor 914 that communicates with a number of peripheral devices via a bus subsystem 912. These peripheral devices may include, for example, a storage subsystem 924, including a memory subsystem 925 and a file storage subsystem 926, user interface output devices 920, user interface input devices 922, and a network interface subsystem 916. The input and output devices enable user interaction with the computing device 910. The network interface subsystem 916 provides an interface to external networks and is coupled to corresponding interface devices in other computing devices.
[0109] The user interface input devices 922 may include a keyboard, a pointing device such as a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touch screen integrated into a display, a voice recognition system, an audio input device such as a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and methods for inputting information into the computing device 910 or a communications network.
[0110] The user interface output devices 920 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 flat panel device such as a cathode ray tube (CRT), 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, such as through an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and methods for outputting information from the computing device 910 to a user or to another machine or computing device.
[0111] Storage subsystem 924 stores programming and data structures that provide the functionality of some or all of the modules described herein. For example, storage subsystem 924 may include logic for performing selected aspects of the method of FIG. 3 and for implementing various components shown in the figures and / or described herein.
[0112] These software modules are generally executed by the processor 914 alone or in combination with other processors. The memory 925 used in the storage subsystem 924 can include a number of memories including a main random access memory (RAM) 930 for storing instructions and data during program execution, and a read-only memory (ROM) 932 in which fixed instructions are stored. The file storage subsystem 926 can provide persistent storage for program and data files and can include a hard disk drive, removable media associated with a floppy disk drive, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules implementing the functionality of certain embodiments can be stored by the file storage subsystem 926, in the storage subsystem 924, or in other machines accessible by the processor 914.
[0113] The bus subsystem 912 provides a mechanism for the various components and subsystems of the computing device 910 to communicate with each other as intended. Although the bus subsystem 912 is shown diagrammatically as a single bus, alternative embodiments of the bus subsystem may use multiple buses.
[0114] The computing device 910 can be of various types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of the computing device 910 shown in Figure 9 is intended only as a specific example to illustrate some embodiments. Many other configurations of the computing device 910 can have more or fewer components than the computing device shown in Figure 9.
[0115] In situations where certain embodiments discussed herein may collect or use personal information about users (e.g., user data extracted from other electronic communications, information about the user's social network, the user's location, the user's time, the user's biometric information, and user activity and demographic information, relationships between users, etc.), the user is provided with one or more opportunities to control whether information is collected, whether the personal information is stored, whether the personal information is used, and how information about the user is collected, stored, and used. That is, the systems and methods discussed herein collect, store, and / or use a user's personal information only if they receive explicit permission to do so from the associated user.
[0116] For example, a user may control whether a program or feature collects user information about that particular user, or about other users associated with the program or feature. Each user about whom personal information is collected is presented with one or more options to allow them to control the collection of information associated with that user to provide permission or approval as to whether and what portions of the information are collected. For example, a user may be provided with one or more such control options over a communications network. Additionally, certain data may be processed in one or more ways before being stored or used, such that personally identifiable information is removed. As one example, a user's identity may be treated in such a way that personally identifiable information cannot be identified. As another example, a user's geographic location may be generalized to a larger area, such that the user's specific location cannot be identified. [Explanation of symbols]
[0117] 106 client devices 1061 First Client Device 106N Client Device 1061-N Client Computing Devices 109 Speaker 1091 Speaker 109N Speaker 111 Display 1111 Display 114 Voice Capture / Text to Speech ("TTS") / Speech to Speech ("STT") Module 116 TTS Module 117 Cloud-based STT module 118 Automated Assistant Client 1181 Automated Assistant Client 118N Automated Assistant Client 119 Automated Assistant Components 120 Automated Assistants 120A First Automated Assistant 120B Second Automated Assistant 122 Natural Language Processors 124 Fulfillment Engine 126 Natural Language Generator 130 User-controlled resource engine 135 Natural Language Understanding Engine 136 Intent Matcher 137 Database 138 Session Engine 150 Search Engines 181 Display Off 183 Ambient 185 Home 187 First Session 189 Second Session 191 Speaker 300 ways 491 First Content 492 Voice utterances 493 Alternative Content 591 First Content 592 Alternative Content 595 Alternate State 5951 Graphic Elements 5952 Graphic Elements 5953 Graphic Elements 691 First Content 692 Alternative Content 693 Alternative Content 791 First Content 793 Alternative Content 795 Home State 7951 Graphic Elements 7952 Graphic Elements 891 1st Content 893 Alternative Content 897 Notification 910 Computing Devices 912 Bus Subsystem 914 Processor 916 Network Interface Subsystem 920 User Interface Output Device 922 User Interface Input Devices 924 Storage Subsystem 925 Memory Subsystem 926 File Storage Subsystem 930 Main Random Access Memory (RAM) 932 Read-Only Memory (ROM)
Claims
1. 1. A method implemented using one or more processors, comprising: Receiving spoken utterance data indicating a plurality of spoken utterances of the user detected via one or more microphones of the client device through a plurality of dialogue turns of a first dialogue session between the user and the automated assistant; identifying a plurality of instances of a first content, each responsive to a corresponding one of the plurality of spoken utterances of the user based on the spoken utterance data; causing the client device to render the first content during the first interactive session; receiving interruption data during the rendering of at least a portion of the first content by the client device during the first interactive session, the interruption data being received in response to further user interface input of the user detected during the rendering of the at least a portion of the first content during the first interactive session; In response to receiving the interrupt data, storing session data of the first interactive session in a local memory of the client device or in a remote memory of a remote server in network communication with the client device, the session data indicating a state of the first interactive session at the time the interruption data was received; and causing the client device to render alternative content during a second interactive session that at least temporarily replaces the first interactive session, the alternative content being different from the first content, and causing the client device to render the alternative content during the second interactive session comprising causing the client device to render the alternative content in place of the first content; determining whether to cause the client device to automatically resume the first interactive session; in response to determining to cause the client device to automatically resume the first interactive session, retrieving the stored session data of the first interactive session; automatically resuming the first interactive session in the state indicated by the session data; in response to determining not to cause the client device to resume the first interactive session, causing the client device to transition to an alternative state in which the client device does not automatically resume the first interactive session; A method comprising:
2. The method of claim 1 , wherein determining whether to cause the client device to resume the first interactive session is based on one or more properties of the first interactive session.
3. The method of claim 2 , wherein the one or more properties of the first interactive session comprise a classification assigned to the first content.
4. The method of claim 3 , wherein the classification assigned to the first content indicates whether the first content is temporary or permanent.
5. 2. The method of claim 1, wherein determining whether to cause the client device to resume the first interactive session is based on one or more properties of the first interactive session and further based on one or more properties of the second interactive session.
6. The method of claim 1 , wherein storing the session data of the first interactive session comprises storing the session data in the local memory without storing the session data in the remote memory.
7. The method of claim 1 , wherein the alternate state in which the client device does not automatically resume the first interactive session comprises a display of a home screen or an ambient screen.
8. The method of claim 7 , wherein the display of the home screen or the ambient screen is free of reference to the first interactive session.
9. The method of claim 7 , wherein the display of the home screen or the ambient screen includes a selectable graphical interface element that can be selected to resume the first interaction session.
10. one or more processors; a memory operatively coupled to the one or more processors; wherein the memory, in response to execution of instructions by one or more processors, provides to the one or more processors: Receiving spoken utterance data indicating a plurality of spoken utterances of the user detected via one or more microphones of the client device over a plurality of dialogue turns of a first dialogue session between the user and the automated assistant; identifying a plurality of instances of a first content, each responsive to a corresponding one of the plurality of spoken utterances of the user based on the spoken utterance data; causing the client device to render the first content during the first interactive session; receiving interruption data during the rendering of at least a portion of the first content by the client device during the first interactive session, the interruption data being received in response to a further user interface input of the user detected during the rendering of the at least a portion of the first content during the first interactive session; In response to receiving the interrupt data, storing session data of the first interactive session in a local memory of the client device or in a remote memory of a remote server in network communication with the client device, the session data indicating a state of the first interactive session at the time the interruption data was received; and causing the client device to render alternative content during a second interactive session that at least temporarily replaces the first interactive session, the alternative content being different from the first content, and in causing the client device to render the alternative content during the second interactive session, the one or more processors cause the client device to render the alternative content in place of the first content; determining whether to cause the client device to automatically resume the first interactive session; in response to determining to cause the client device to automatically resume the first interactive session, retrieving the stored session data of the first interactive session; and automatically resuming the first interactive session in the state indicated by the session data; and in response to determining not to cause the client device to resume the first interactive session, causing the client device to transition to an alternative state in which the client device does not automatically resume the first interactive session; and storing the instructions to cause the system to:
11. 11. The system of claim 10, wherein, in determining whether to cause the client device to resume the first interactive session, the one or more processors determine whether to cause the client device to resume the first interactive session based on one or more properties of the first interactive session.
12. The system of claim 11 , wherein the one or more properties of the first interactive session comprise a classification assigned to the first content.
13. 13. The system of claim 12, wherein the classification assigned to the first content indicates whether the first content is temporary or permanent.
14. 11. The system of claim 10, wherein in determining whether to cause the client device to resume the first interactive session, the one or more processors determine whether to cause the client device to resume the first interactive session based on one or more properties of the first interactive session and further based on one or more properties of the second interactive session.
15. 11. The system of claim 10, wherein when storing the session data for the first interactive session, one or more of the processors store the session data in the local memory without storing the session data in the remote memory.
16. The system of claim 10 , wherein the alternate state in which the client device does not automatically resume the first interactive session comprises a display of a home screen or an ambient screen.
17. 17. The system of claim 16, wherein the display of the home screen or the ambient screen is free of reference to the first interactive session.
18. 17. The system of claim 16, wherein the display of the home screen or the ambient screen includes a selectable graphical interface element that can be selected to resume the first interactive session.
Citation Information
Patent Citations
Output arbitration program and device
JP2008191074A
System and methods for virtual assistant networks
US20140244712A1