Method, system, and apparatus for understanding and generating human conversation cues - Patents.com

The CI manager module in VDAs addresses the limitations of current VDAs by dynamically managing the conversation floor and incorporating prosodic cues, resulting in more natural and efficient human-like interactions.

JP7617015B2Active Publication Date: 2025-01-17SRI INTERNATIONAL
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2021556316
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-05-09
Filing Date
2020-05-07
Publication Date
2025-01-17
Estimated Expiration
2040-05-07

AI Technical Summary

Technical Problem

Current voice-based digital assistants (VDAs) lack the ability to understand and generate human-like conversational cues, leading to robotic interactions and unsatisfying user experiences due to oversimplified conversation models that fail to incorporate nonverbal cues, fixed timers, and limited use of prosodic information.

Method used

A conversational intelligence (CI) manager module with a rules-based engine that analyzes and generates prosodic conversational cues, allowing the VDA to dynamically manage the conversation floor by understanding and responding to non-lexical sounds, pitch, and timing, ensuring seamless human-like interactions.

Benefits of technology

Enhances user interaction by allowing VDAs to maintain natural conversation flow, acknowledge user inputs, and establish mutual understanding through dynamic floor management, improving user experience and interaction efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617015000001
    Figure 0007617015000001
  • Figure 0007617015000002
    Figure 0007617015000002
  • Figure 0007617015000003
    Figure 0007617015000003
Patent Text Reader

Abstract

The voice-based digital assistant (VDA) uses a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence to process information from one or more modules and determine both i) understanding of human conversational cues and ii) generating human conversational cues, including understanding and generating at least backchannels, for at least one of seizing or relinquishing the conversational floor between the user and the VDA in human communication flows and exchanges. The CI manager module uses the rule-based engine to analyze and determine at least prosodic conversational cues in the user's speech stream and generate backchannels to convey either i) understanding, ii) correction, iii) acknowledgment, and iv) questioning of verbal communication conveyed by the user in the speech stream during a time frame in which the user still holds the conversational floor.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Incorporation by Reference This application claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 62 / 845,604, entitled "Method for understanding and generating human-like conversational cues," filed May 9, 2019. All publications mentioned herein are incorporated by reference in their entirety to the same extent as if each individual publication was specifically and individually indicated to be incorporated by reference. [Background technology]

[0002] Some current voice-based digital assistants (VDAs) are limited in that their conversational models are vastly oversimplified, making interactions with the VDA seem very robotic in nature. While humans use non-verbal conversational cues to establish trust and understanding while navigating complex conversations, most VDAs currently ignore such cues, such as utterances like "Uhmm," that are used to calibrate the dialogue itself (important for long interactions), "ground" the conversation to establish common ground, maintain trust through calibrated knowledge states, take turns, correct miscommunications (and establish trust), and communicate transitions. The limitations of VDAs' current models force users to adapt or restrict their behavior, often providing an unsatisfying experience. Open-domain VDAs are commercially available from entities including Google, Amazon, Apple, and Microsoft. Some of the available commercial systems require strictly turn-by-turn interaction controlled by something like a fixed timer to wait for a response, but such fixed timers may be slower than necessary and may be incorrect, i.e., may inaccurately determine when a response is complete or incomplete. Some systems may not be able to output appropriate prosodic cues or may not be able to use prosodic cues in user input. Some VDAs may require visual interaction to acknowledge that information has been successfully exchanged, limiting the situations in which the VDA can be used. Some commercial VDAs have interaction APIs that operate mostly on text and cannot take advantage of prosodic information. Currently, some common requests for VDAs are very simple (playing music, managing alarms, checking the weather, or calling phone numbers, "fun questions," playing voicemails, etc.). Summary of the Invention [Means for solving the problem]

[0003] The machine, process, and system discuss a voice-based digital assistant (VDA) including a plurality of modules for understanding and generating human conversational cues. A conversational intelligence (CI) manager module has a rule-based engine for conversational intelligence for the VDA. The CI manager module has one or more inputs for receiving information from one or more other modules to determine both i) understanding human conversational cues and ii) generating human conversational cues, including backchannels, for at least one of acquiring, seizing, or relinquishing a conversational floor between a user and the VDA in a human communication flow and exchange. The CI manager module is configured to use the rule-based engine to analyze and determine prosodic conversational cues in at least the user's speech flow and generate backchannels to convey any of i) understanding, ii) corrections, iii) acknowledgments, and iv) questions about a verbal communication conveyed by the user in the speech flow during a time frame in which the user still holds the conversational floor. For example, the user may utter one or more sentences without indicating that the user is letting go of the conversation floor, but the system may simply utter a short "Uh Huh" response, thereby allowing the user to still retain the conversation floor and prompting additional input from the user without interrupting the natural flow of conversation coming from the user. [Brief description of the drawings]

[0004] [Figure 1] FIG. 1 is a block diagram of one embodiment of a conversation engagement microservices platform that includes a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the dialogue flow between a user and a VDA.

[0005] [Figure 2A] 1 is a flow diagram of an embodiment of a conversation engagement microservices platform that includes a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the dialogue flow between a user and a VDA. [Figure 2B] 1 is a flow diagram of an embodiment of a conversation engagement microservices platform that includes a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the dialogue flow between a user and a VDA. [Figure 2C] 1 is a flow diagram of an embodiment of a conversation engagement microservices platform that includes a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the dialogue flow between a user and a VDA.

[0006] [Diagram 3] FIG. 1 is a block diagram of multiple electronic systems and devices communicating with each other in a network environment according to an embodiment of a conversational engagement microservices platform that includes a CI manager module with a rule-based engine.

[0007] [Figure 4] FIG. 1 is a block diagram of an embodiment of one or more computing devices that can be part of a conversation assistant for an embodiment of the present design discussed herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0008] While the design is subject to various modifications, equivalents, and alternatives, specific embodiments of the invention are shown by way of example in the drawings and will now be described in detail. It is to be understood that the design is not limited to the particular embodiments disclosed, but rather, the intent is to cover all modifications, equivalents, and alternatives using the specific embodiment.

[0009] In the following description, numerous specific details may be described, such as examples of specific data signals, named components, and the number of memories, to provide a thorough understanding of the design. However, it will be apparent to one of ordinary skill in the art that the design can be practiced without these specific details. In other examples, well-known components or methods are not described in detail but are shown in block diagrams to avoid unnecessarily obscuring the design. Furthermore, specific numerical references may be made, such as a first memory. However, the specific numerical references should not be interpreted as a literal order, and the first memory should be interpreted as different from the second memory. Thus, the specific details described may be merely exemplary. This disclosure describes the inventive concept with reference to specific examples. However, the intention is to encompass all modifications, equivalents, and alternatives of the inventive concept consistent with this disclosure. However, it will be apparent to one of ordinary skill in the art that the approach can be practiced without these specific details. Thus, the specific details described are merely exemplary and are not intended to limit the contents of the disclosure. It is contemplated that the specific details may vary from the design and still be within the spirit and scope of the design. The term "coupled" is defined to mean directly connected to a component or indirectly connected to a component through one or more other components. Features implemented in one embodiment can also be implemented in another embodiment where this is logically possible.

[0010] Generally, machines, processes, and systems are discussed that use a Conversational Intelligence (CI) manager module having a rule-based engine for conversational intelligence to process information from one or more modules to determine both i) understanding of human conversational cues and ii) generation of human conversational cues, including backchannels, in human communication flows and exchanges for at least one of acquiring, seizing, or relinquishing the conversational floor between a user and a platform hosting the CI manager module. The CI manager module can use the rule-based engine to analyze and determine at least prosodic conversational cues in the user's speech stream and generate backchannels to convey either i) understanding, ii) correction, iii) acknowledgment, and iv) questioning of the verbal communication conveyed by the user in the speech stream during a time frame in which the user still holds the conversational floor.

[0011] terminology

[0012] Speech disfluencies can be any of a variety of breaks, irregularities, repetitions, or non-lexical sounds that occur in an otherwise fluent speech stream. Speech disfluencies can also be nonsensical responses such as "um, I, I, um, I, well..." by a user who was not prepared to reply and / or respond to a question or other utterance that solicits a response from the user.

[0013] Prosody can refer to those speech elements that are not individual phonetic segments (vowels and consonants) but properties of syllables and larger speech units, including linguistic features such as intonation, loudness, tone, stress, timing, and rhythm.

[0014] The conversational floor can refer to a conversational turn in the flow of speech and who currently has the right to speak during this turn. The conversational floor is said to belong to the person whose turn it is to speak.

[0015] Backchannels can typically be short utterances used in the communication of two primary channels operating simultaneously during a conversation. All backchannels convey affirmation. The primary channel is the channel of the speaking entity that has the conversational floor, and thus generates the primary speech stream during a speaking turn. The secondary communication channel is the channel of the listener that is verbally conveying backchannels about the primary speech stream of the entity that has the conversational floor, or the listener's state, which may or may not be related to the primary speech stream. Backchannels in a conversation can occur when one participant is speaking and another participant interjects a quick response into the speech from the speaker. Backchannel responses do not convey substantive information, but can be used for social or meta-conversational purposes, such as to express the listener's attention, understanding or lack thereof, support / agreement, need for clarification, surprise, sympathy, or other purposes, to what the user is saying. Some examples of backchannels may include "uh-huh," "um," "mm-hm," "um-hm," "okay," "yeah," "hmm," and expressions such as "right," "really?", and "wow!".

[0016] Non-lexical backchannels can be vocal sounds that have little or no referential meaning but still verbalize the listener's attention, understanding, agreement, surprise, anger, etc., to the speaker's idea. For example, in English, sounds like "uh-huh," "mm-hm," "um-hm," and "hmm" fill this role as non-lexical backchannels.

[0017] Conversational grounding is about being on the same page about what is going on in a conversation. Conversational grounding can be a "mutual knowledge and mutual belief" of a set of familiar information and items that have been previously stated or alluded to in the current conversation, and the current conversation is grounded by establishing mutual knowledge and mutual belief about what the speakers are saying.

[0018] Micro-interactions can be small, focused user interactions that are content- or domain-independent and attempt to solve a specific problem or accomplish a specific task.

[0019] The response may include things such as a direct response to the user's last utterance, or other things such as a system request for more information.

[0020] 1 shows a block diagram of an embodiment of a conversational engagement microservices platform including a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the flow of dialogue between a user and a VDA. The multiple modules contained and cooperating within the container architecture of the conversational engagement microservices platform 100 can function and cooperate as follows:

[0021] The conversation assistant for the conversational engagement platform 100 can include various modules: a text-to-speech module 112, a dialogue management module 108, a CI manager module 106, an automatic speech processing module 102, a natural language generation module 110, an oral language understanding module 104, an environment module 114, and other modules. The CI manager module 106 communicates information to and from the user, establishes appropriate grounding, and allows the user to control the flow of information. The CI manager module 106 can use information from speech activity detection, prosodic analysis, and dialogue management module 108 to determine when to speak and what is appropriate to do in response. The CI manager module 106 can use the text-to-speech module 112 to generate prosodic and conversationally appropriate responses, which can be backchannels or other. The CI manager module 106 is configured to be able to generate backchannels, as well as to be able to identify and understand backchannels generated by the user.

[0022] Conversational Intelligence (CI) Manager Module

[0023] The CI manager module 106 is configured to connect in a hub-and-spoke architecture to exchange and coordinate information bilaterally (input and output) with two or more modules in this architecture rather than in a linear pipeline architecture. Each module has its own detector or set of detectors to detect and collaborate with the CI manager module 106 to analyze and determine its CI micro-interactions. The CI manager module 106 is configured to digest information from the two or more modules regarding these linguistic micro-interactions, including i) tone of voice, ii) timing, iii) speech, iv) transition words, and v) other human cues that signal transitions of the conversation floor, to determine how to proceed with regard to whether to gain, seize, or relinquish the conversation floor between the user and the VDA. In one embodiment, other architectures can also be implemented, as a fully connected architecture or another module collects all the information and interacts with the CI manager module 106.

[0024] The CI manager module 106 may seize and obtain the conversational floor. The CI manager module 106 seizes the conversational floor when the user has not relinquished it, e.g., the system interrupts the user when he or she is speaking, the user stops speaking at least momentarily, or during a multi-party interaction where it is unclear whose turn it is, the system begins speaking even when it is not clear that the other speaker has relinquished the floor. A VDA can have the conversational floor, the user interrupts (but without a backseat) or seizes the floor, and the system generally relinquishes it to the user. Also, a VDA can have the conversational floor, the user issues a quick backseat, and the system recognizes it but maintains the conversational floor.

[0025] The CI manager module 106 can individually analyze both spoken language, complete sentences, and manage conversational cues in human communication flows and exchanges, at least for processing the conversational floor within a hub-and-spoke architecture.

[0026] The CI manager module 106 enables the VDA to implement fluid alternations, such as using and recognizing backchannels and non-lexical sounds, recognizing conversational floor-taking or offering and relinquishing the floor, and relinquishing the floor to allow the user and the VDA to use prosody as a communication channel.

[0027] In the conversation assistant for conversational engagement platform 100, the VDA uses conversational cues beyond fixed timers and lexical words to dynamically adapt conversational aspects, such as those related to handling the conversation floor and establishing or re-establishing conversational grounding, for both informal and controlled conversations. The conversation assistant for conversational engagement platform 100 is also capable of understanding human conversational cues and appropriately generating human-like conversational cues in interactions with the user.

[0028] The CI manager module 106 also enables the VDA to manage everyday conversations using mechanisms that humans use every day to successfully achieve and ensure mutual understanding. Conversational intelligence involves using information that is typically present in human conversations, including the use of prosody, backchanneling, etc., to seize or hold the conversational floor, which the VDA exploits in a new dialogue architecture that reflects the true complexity of human conversation. The CI manager module 106 controls many aspects of the conversation. Taking or holding the floor is an action controlled by the CI manager module 106. Backchanneling is a means of communication used and understood by the CI manager module 106. Prosody is another means humans use to communicate, used and understood by the CI manager module 106. The CI manager module 106 digests information from multiple modules, including tone of voice, timing, words, and understanding, and determines how to proceed.

[0029] The CI manager module 106 has at least a rule-based engine for conversational intelligence for the VDA. The CI manager module 106 has one or more inputs for receiving information from a set of modules to determine both i) understanding human conversational cues and ii) generating human conversational cues to at least seize and / or relinquish the conversational floor handling between the user and the VDA and other conversational aspects discussed herein in human communication flows and exchanges. It should be noted that the CI manager module 106 does not use the rule-based engine to determine the topic or content of lexical words spoken by the user, but rather to analyze and determine the speech flow to and from the user. The CI manager module 106 uses the rule-based engine to analyze and determine the speech flow to and from the user, for example, via analysis of non-lexical sounds, speech pitch and / or prosody, pauses, and grammatical completeness of syntax. The rule-based engine uses this analysis to determine which backchannel should be generated to convey a response, such as, for example, an understanding of the conveyed meaning of the words spoken by the user, an acknowledgment, or a question, importantly while the user still holds the conversation floor. Thus, the user can utter a linguistic communication, such as a sentence, and the VDA can generate a quick backchannel via the text-to-speech module 112 while the user still holds the conversation floor, thus keeping it the user's turn to speak during this interaction. For example, the user can verbally utter, "Find me a hotel in Rome by Trevi Fountain." Based on the prosody and pitch of those words, and optionally a pause after the last word, "Trevi Fountain," the CI manager module 106 uses the rule-based engine to analyze and determine.For example, does the fast-paced prosody and pitch of those words, as well as the timed period after the final word, "Trevi Fountain," indicate that the user intends to communicate additional information after this initial utterance to complete their thought? Or does the drop in pitch at the end of the final word, "Trevi Fountain," and / or the abrupt flow of that sentence with its final deceleration indicate that the user is completing their current thought and intends to abandon the conversational floor and await a full response from the VDA?

[0030] Again, the CI manager module 106 uses the rule-based engine to analyze and make an exemplary determination as to whether to issue a backstab such as "Uh-mm" or "Okay," generating this short backstab while the user still has the conversation floor, without the VDA attempting to acquire the floor, quickly indicating that the VDA's module understands both the words and the conveyed meaning behind the initial thought, "Find me a hotel in Rome by Trevi Fountain." The flow of speech from the user and its conversational cues indicate that the user intends to continue to convey additional information after this initial thought, and thus an affirmative backstab is appropriate.

[0031] Alternatively, the CI manager module 106 may use the rule-based engine to analyze and make an exemplary determination of when the user utters a single utterance that forms a complete thought, and then the CI manager module 106 may take over the conversation floor in the ongoing dialogue between the user and the VDA. For example, the VDA may then refer to the dialogue manager module 108 and repeat the current topic of the dialogue to the user with a complete utterance. For example, rather than simply uttering a back-channel such as "uh-mm" in an attempt to quickly prompt more information from the user, the VDA may say, "So then you want to make a reservation for a hotel room in Rome near walking distance within Trevi Fountain?" to acknowledge the conversational grounding of the current dialogue topic and problem. As will be explained later, the CI manager module 106 may rely on the confidence level of the conversational engagement platform 100 regarding the understanding of the meaning behind what the user recently communicated when using the rule-based engine's selection between i) a complete sentence response and ii) a back-channel response. Note that a complete sentence response can occur when the system determines that the user has given sufficient information (e.g., booking a hotel in Rome near the Trevi Fountain), and the CI manager module 106 directs a search for hotels that meet the criteria and simply responds with the information the user is looking for. The user-seeking information response implicitly conveys a conversation-grounded acknowledgment of the topic and problem of the current dialogue.

[0032] The CI manager module 106 analyzes and generates system utterances that can indicate affirmation as backchannels, or alternatively other things, such as acknowledgements, corrections, and / or backchannels that allow the user to maintain the floor. The system is said to have a floor when it is correcting the user's understanding or in some way seeking more information.

[0033] The CI manager module 106 uses a rule-based engine to analyze and determine the factors of the conversational cues. The rule-based engine has rules to analyze and determine two or more of the conversational cues: i) non-lexical items, ii) speech pitch, iii) speech prosody, iv) grammatical completeness of the syntax in the user's speech stream, and v) duration of pauses, vi) degree of semantic condition of the user's utterance. Note that speech pitch can be part of the prosody. Also, in the degree of semantic condition of the user's utterance, when the user is looking for a restaurant and then pauses a little, the system may simply provide a large number of restaurant options. However, when the user is looking for an expensive Chinese restaurant, which is more semantically constrained, the system has more information and should probably respond with three options.

[0034] After making these determinations and analyses, the CI manager module can determine whether to generate an utterance during the time frame in which the user still holds the conversation floor to at least one of: 1) prompt for more information from the user, 2) tell the user to keep the conversation floor and continue speaking, or 3) indicate that the VDA is seeking to seize the conversation floor, as opposed to simply waiting for a pause of fixed duration and then assuming that the user has abandoned the conversation floor. Thus, the CI manager module 106 can obtain the conversation floor and query the user or respond to the user's request, or provide a backchannel if the user has not relinquished the conversation floor. Note that when the user has finished speaking (mostly as the system can tell by prosody), it indicates that the user is about to relinquish the floor.

[0035] The CI manager module 106 has a rule-based engine for conversational intelligence for the VDA that mediates the takeover and / or abandonment of conversational floor handling due to lexical words or conversational cues beyond a fixed timer. It is noted that the CI manager module 106 can also use a timer of fixed duration and then decide to further prompt the user to also look at other conversational cues such as at least i) non-lexical items, ii) spoken prosody, and iii) grammatical completeness of syntax in the user's speech stream for floor handling. It is also noted that the CI manager module 106 is configured to monitor and assist the speech stream in the dialogue with the user, without the obligation that the dialogue management module 108 is configured to perform current topic understanding and tracking, etc. in the dialogue.

[0036] The dialogue management module 108 can have several instances created. Each dialogue management module 108 can be a set of trained models for a particular domain, such as travel, medicine, finance, etc., trained on identifying topics and a set of template appropriate questions and responses, and has slots for storing various facts from the current dialogue within that particular domain. However, the CI manager module 106 is configured to monitor and assist speech flow in dialogues between users and VDAs, which generally applies to all domains of human topics.

[0037] The dialogue capabilities in the conversation assistant for the conversational engagement platform 100 are enhanced through dialogue rules in a rule-based engine to accommodate most human-to-human interactions utilizing multi-modal inputs such as back-channel responses from the user, pitch / tone of words from the user, understanding of emotions from the user, etc., and utilizing these inputs in subsequent interactions.

[0038] Automatic audio processing input / output module

[0039] The automatic speech processing input / output module in the CI manager module 106 has one or more interfaces from the automatic speech processing module 102 to i) status data for the speech recognition process, ii) links to status data for the completion of the speech recognition process, and iii) any combination of both. These links and / or interfaces exchange information with the automatic speech processing module 102 to detect the user's voice input and convert it into text and / or waveform format. The automatic speech processing module 102 receives speech input from the user via one or more microphones. The links and / or interfaces exchange information with the automatic speech processing module 102 to detect and capture the user's voice input from one or more microphones.

[0040] The CI manager module 106 has a timer for the flow of speech coming from the user. For example, a timer can be used for spoken system output (i.e., the system says something and then waits less than X seconds for a response).

[0041] The CI manager module 106 has a disfluency detector for micro-interactions for analysis of timing information on the flow of speech emanating from the user. The timing information can be used for prosodic analysis. The timing information can also be used for timers to determine a duration, such as a 0.75 second pause after receiving the last word in a complete thought from the user, that indicates the user is about to relinquish the conversation floor. The timing information can also be used for fixed time delay determination. Similarly, prosodic timing information can convey a complete thought from the user.

[0042] The automatic speech processing module 102 includes components of automatic speech recognition including speech activity detection and performs such functions of automatic speech recognition. The CI manager module 106 has a prosody detector for micro-interactions for prosody analysis on the rhythm and melody of speech from the user as conversational cues. The CI manager module 106 receives input data for prosody analysis from the automatic speech processing module 102. The prosody detector is also configured to first check and detect if any speech activity is occurring from the automatic speech processing module 102, e.g., via a timer that tracks speech activity, and then apply prosody analysis at the "end" and / or "middle" of the user's utterance using a prosody detector that uses speech analytics. The first check helps reduce the time and amount of processing for applying prosody analysis. In one embodiment, the prosody detector is separate from the speech activity detector.

[0043] The CI manager module 106 uses input from the prosody detector to determine whether i) the user has actually abandoned the conversation floor, or ii) the user is inserting pauses into the speech stream to convey additional information. Note that the additional information can include 1) speaking with pauses to aid in the conveyance and understanding of a long list of information, 2) speaking with pauses between two or more user utterances such that the user initially responds incompletely with a first utterance, followed by a pause, and then a later utterance to complete the idea the user is trying to convey in the speech activity, and 3) any combination of the two.

[0044] Spoken Language Understanding (SLU) Input / Output Module

[0045] The SLU I / O module in the CI manager module 106 has one or more interfaces to i) state data for analysis and understanding of words including speech for oral language processes, ii) links to state data for oral language processes, and iii) any combination of both from the SLU module 104. These links and / or interfaces exchange information with the SLU module 104 to detect and capture the user's voice input from one or more microphones.

[0046] The CI manager module 106 cooperates with the oral language understanding module 104 to provide input information for micro-interactions when analyzing the input data from the oral language understanding module 104 to indicate the user's attitude towards what the user is saying: i) the user's emotion in the response, ii) the user's acoustic tone of the utterance via character sequence to token sequence conversion, iii) any discourse markers, and iv) any combination of the three. The oral language understanding module 104 can provide input regarding the emotional aspects of the verbal communication, the acoustic aspects of the verbal communication, the lexical word analysis of the verbal communication, and the discourse markers in the verbal communication. Thus, the CI manager module 106 is configured to consider and determine the emotional response from the oral language understanding module 104, the acoustic tone of the utterance, and the discourse markers, and then issue a response via the natural language generation module 110 in cooperation with the text-to-speech module 112 to 1) give up the conversation floor, 2) encourage the user to express their thoughts via backchanneling, or take the conversation floor and at least ask if the user wants to communicate anything else.

[0047] Some example discourse markers to indicate a user's attitude towards what the speaker is saying can be "oh!", "well now!", "thennn...", "you know", "I mean...", "so!!", "because!", and "but!!".

[0048] In one embodiment, the oral language understanding input / output module is configured to use at least the user state analysis from the oral language understanding module 104 to extract metrics that can be linked to the user through conversations with the user in multiple different periods of interaction. The oral language understanding input / output module has one or more interfaces and / or links to state data from a user emotional state module such as SenSay and J-miner. The user emotional state module estimates user states including emotions, affect, cognition, mental health, and communication quality within the final scope, and the interface from the user state analysis input / output module can pull or push the estimations and data from the user emotional state module.

[0049] Natural language generation input / output module

[0050] The natural language generation (NLG) input / output module in the CI manager module 106 has one or more interfaces for i) generating linguistic communications (i.e., utterances) in standard and / or dialects for a given human spoken language. As discussed, the CI manager module 106 and the TTS module 112 can cooperate with the NLG module 110 and a given human spoken language model to generate vocabulary and speech in the given human language.

[0051] The CI manager module 106 is configured to digest information from the oral language understanding module 104 regarding at least the micro-interactions including i) tone or pitch of voice, ii) timing information, iii) utterances, iv) transition words, and v) other human cues signaling a shift in the conversational floor to determine how to proceed with regard to whether to gain, seize, or relinquish the conversational floor between the user and the VDA.

[0052] When the CI manager module 106 determines that mutual understanding is not occurring between the user and the VDA, the CI manager module 106 has input from the conversation grounding detector for the micro-interaction. The CI manager module 106 can refer to the dialogue manager module 108 to see what the dialogue manager module 108 thinks the current topic being tracked is, and possibly what the previous topic was, and whether the idea communicated by the speaker makes sense in that topic. When the CI manager module 106 determines that mutual understanding is not occurring, the CI manager module 106, the natural language generation module 110, and the text-to-speech module 112 are configured to cooperate to ask one or more questions to re-establish mutual understanding for the current conversation. The rule-based engine has rules for determining that mutual understanding is not occurring between the user and the VDA, for example, based on a trust level. When the timer exceeds a set duration, indicating that a long pause in the conversation has occurred, the CI manager module 106 causes the text-to-speech module 112 to issue questions to establish mutual understanding, such as "Did you understand?" or "Should I repeat something?", and instructs the natural language generation module 110, in cooperation with the text-to-speech module 112, to issue responses to prompt additional information from the user rather than indicating a request to seize the conversation floor.

[0053] Text-to-Speech (TTS) Input / Output Module

[0054] The TTS input / output module in the CI manager module 106 has i) one or more interfaces to state data for the text-to-speech process, ii) links to state data for the text-to-speech process, and iii) any combination of both from the text-to-speech component. These links and / or interfaces i) exchange information with the TTS module 112 to generate audio output from text or waveform formats, and ii) work with the natural language generation module 110 to generate audio responses and queries from the CI manager module 106. The TTS module 112 generates audio output for the user to hear using one or more speakers.

[0055] In one embodiment, the CI manager module 106 and the text-to-speech module 112 work together to determine when the output from the text-to-speech synthesis should produce non-lexical events and control the output timing of spoken phonemes. The text-to-speech module 112 and the CI manager module 106 can be configured to determine speech-related information beyond phonemes (i.e., paralanguage) through the use of neural network models trained using deep learning for the extraction of phonemes, such phonemes being long in duration (e.g., 90th percentile) relative to the class, and annotating phrase-final prosody using pitch trajectories from a fundamental frequency (f0) tracker. The text-to-speech module 112 can reference models for non-lexical sounds for each human language to assist in the production of non-lexical sounds.

[0056] The natural language generation module 110 is configured to use prosody, including pitch, when the text-to-speech module 112 generates speech to the user, allowing the CI manager module 106 and the user to establish conversational grounding through prosody. If there is ambiguity or uncertainty, the VDA and the user must resolve it to arrive at the best path toward the user.

[0057] There are several types of situations where there is ambiguity or uncertainty. For example, (a) the CI manager module 106 issues instructions to generate a word (in text form) but is not sure what the correct pronunciation is that the text-to-speech module 112 will issue; (b) the user verbally requests something from the oral language understanding module, but the user does not provide enough information to uniquely specify the request and is not aware that the request is ambiguous (e.g., the user asks for an appliance store by name but does not realize that there are several branches of the store within a reasonable distance); and (c) the user verbally requests something from the oral language understanding module and does not uniquely specify it, but is aware or can be made aware by the CI manager module 106 that something requested was not uniquely specified enough (e.g., the user asks for a bank by name and knows that there are several branches but does not think to say which branch he is asking for). In all three of these scenarios, the user and the CI manager module 106 disambiguate and establish conversational grounding through prosody. Similarly, the automatic speech processing module 102 is configured to analyze prosody, including pitch, from the user's speech to enable the CI manager module 106 and the user to establish conversational grounding via detecting prosodic changes in distinctive information in the user's speech. In either case, an entity hearing the prosodic change in distinctive information with uncertain status establishes conversational grounding via i) using it as a target for the distinctive information with uncertain status, or ii) using it as a target for a logical substitute for the distinctive information with uncertain status to generate an utterance, sentence, or other utterance.

[0058] When ambiguity exists, the CI manager module 106 and the natural language generation module 110 work together to present the most likely solution via speech, without the need to display other possible solutions on a display screen. The natural language generation module 110 is configured to use prosody as a side channel to the main speech channel so that the natural language generation module 110 can prosodically mark the uncertain information. The natural language generation module 110 uses prosody to highlight the prosodically marked specific information in the linguistic communication so that the user notices the uncertainty state of the specific information, via prosodically marking the specific information that is uncertain in the linguistic communication. The text-to-speech module 112 generates speech to the user that changes the prosody with the specific information that is uncertain in the linguistic communication. Furthermore, no additional visual channel is required for the user to hear the prosodically marked uncertain information and understand that the prosodically marked uncertain information is implicitly at issue in the larger linguistic communication. When a user wants to correct and / or change prosodic marked uncertain information, the user and the CI manager module 106 implicitly understand what the uncertain information at issue is due to the prosodic side channel.

[0059] For example, assume that the user says, "what hours is Wells Fargo open?" After a quick search, the CI manager module 106 determines that there are two nearby Wells Fargo branches. One Wells Fargo branch is on 5th Avenue and the other Wells Fargo branch is on Main Street. However, the supplemental information also conveys that the Wells Fargo branch on 5th Avenue is the larger and more frequently requested branch. The natural language generation module 110, the CI manager module 106, and the text-to-speech module 112 work together to say, for example, "The Wells Fargo on 5th Avenue is open from 9 until 6," with a slower cadence on "5th Avenue" and a drop in pitch after "Avenue," conversationally conveying to the user that the Wells Fargo on 5th Avenue is not the only possible Wells Fargo branch. In general, the user can proceed in one of two possible ways. The user can generally accept this prosodic emphasis information, for example saying "yes-5th Avenue." Alternatively, the user can respond to the prosodic emphasis section of the linguistic communication from the VDA with a logical alternative to the specific information that has an uncertain status. For example, the user could respond with "Sorry, I meant the one on Main Street," or "How about the branch on Main Street?" or "Is there a branch that's open later?"An entity that hears a prosodic change in distinctive information with uncertain status establishes conversational grounding by producing an utterance, sentence, or other utterance using i) it as a target for the distinctive information with uncertain status, or ii) it as a target for a logical alternative to the distinctive information with uncertain status.

[0060] Thus, the VDA can understand prosodic changes in distinctive information to establish conversational grounding, as well as use prosodic changes in distinctive information to establish conversational grounding.

[0061] Dialogue Management Module

[0062] The dialogue management module 108 receives metrics associated with the user from other modules, understands the current topic from the oral language understanding input / output module 104, and the user's sentiment regarding the current topic, and then adapts the dialogue from the dialogue management module 108 to the user based on dialogue rules, taking into account these different metrics. The conversational content of the conversation assistant can be specified in a declarative, domain-specific dialogue specification language, which allows for rapid and expressive context-aware modeling of the conversational content for the end user in a textual language.

[0063] The dialogue management module 108 uses rules codified by the dialogue specification language (or again, alternatively, implemented by decision trees and / or trained artificial intelligence models) to detect when a user-initiated topic change occurs and when the conversation assistant should try a topic change, and then generates adapted user-state-aware responses based on the conversation context. The dialogue workflow in the dialogue specification language enables expressive, context-aware modeling of the conversation content for the end user in a textual language. Note that in one embodiment, the rules codified by the dialogue specification language (or again, alternatively, implemented by decision trees and / or trained artificial intelligence models) are dialogue guidelines, dialogue instructions, dialogue prescriptions, dialogue factors, etc. that guide the results from either the decision trees or ML or reinforcement learning and / or all three.

[0064] The dialogue manager module 108 is connected to both the input and output to the CI manager module 106. The dialogue manager module 108 is configured to analyze and track the dialogue state, including at least the current topic, for speech and response cycles.

[0065] The topic understanding input / output module detects and tracks topic IDs to accurately identify a set of topics discussed in a free-form conversation (as opposed to a structured menu tree type of interaction with a user). The topic understanding input / output module can store the topic IDs. The hierarchical classifier and co-clustering pipeline utilizes deep learning (e.g., CNN) techniques, including co-clustering and hierarchical classifiers, to identify topics.

[0066] Environmental Input / Output Module

[0067] In some situations, the voice-based digital assistant has one or more environment modules 114 communicatively coupled to the CI manager module 106, such environment modules 114 configured to provide information about the world context in which the user is interacting. For example, when the user is driving and the VDA is integrated into or currently has a wireless communication link with the car, the VDA's environment module can obtain information about the driving environment or the user's driving from the car's sensors. In another example, the VDA's environment module 114 can listen for background noise and gather information about the user's surrounding activity or changes in that activity. The CI manager module 106 can use that information to help determine that the user is currently distracted and has a reduced ability to process speech from the VDA. The rule-based engine can incorporate rules similar to those observed when passengers in a car stop speaking or convey at most brief communication when they realize that the driver must pay more attention to the request regarding the driving. Another way that the VDA's CI manager module 106 can determine that the user is distracted is by analyzing disfluency input from the module, analyzing pauses in the user's speech, and the number of times the user suddenly stops speaking without finishing a sentence.

[0068] There are two example scenarios that the rules may similarly consider for analysis: (1) the user has a conversational floor and stops speaking, and the VDA may consider that the user is likely distracted based on i) external factors (e.g., input from sensors) and / or ii) the user's behavior, in accordance with the described rules, and (2) the VDA has a conversational floor and the VDA may conclude that the user is likely distracted at this point, based on external factors.

[0069] When the VDA's CI manager module 106 has the conversation floor and is uncertain as to whether the user is distracted, the CI manager module 106 uses a set of rules to attempt to increase its certainty by pausing once a quick back-channel from the user would be appropriate. Whether the user back-channels (or says something like "hang on") and how long it takes the user to back-channel can provide evidence of whether the user is distracted at this point, thus increasing the CI manager module's 106 certainty as to the user's state.

[0070] When the VDA's CI manager module 106 determines that the user may be distracted, the CI manager module 106 takes action to adjust its behavior to the user's attention level. (a) When the VDA has a conversational floor, such actions can include slowing down the output speech from the text-to-speech module, pausing for a longer period, waiting longer for a back-channel from the user, or stopping speech for a period of time to avoid overloading the user. When the CI manager module 106 issues a command to stop speech because it believes the user is distracted, the CI manager module 106 can communicate that it stopped to avoid overloading the user and that the VDA is not stopping because of some error or failure in the system. The CI manager module 106 can issue commands to say things like "should I wait?", "should I keep going?", "let me know when you're ready," and "I'll wait." When the VDA stops speaking, it is useful to communicate to the user that it is an intentional stop and not some system error, possibly by using a TTS module to generate a more human way of stopping speech rather than simply stopping abruptly. In one embodiment, the VDA can use other methods to communicate that it has stopped (without actually speaking a word) to avoid overloading the user. Also, when the user has the conversation floor, the VDA can take the exemplary action of waiting longer for input from the user before prompting the user to continue.

[0071] The CI manager module 106 uses rules that depend on the user's familiarity with the VDA. When the user first experiences the VDA, the VDA can say explicit things like "take your time" (when the user has the floor) or "I'll wait" (when the VDA has the floor), both of which are meant to teach the user that the VDA can sense when the user is distracted and to prevent the user from thinking that the VDA is experiencing some system glitch. When the user becomes more familiar with the VDA and should no longer be surprised by its capabilities, the VDA can remain silent rather than saying things like "should I wait." The VDA can learn over time how often the user wants to pause when they are paying attention to other things, which is a form of customization since the user's ability to handle simultaneous tasks may change.

[0072] The VDA stores the last few minutes of interaction and remembers it when it pauses in order to reduce the user's overall workload. The CI manager module 106 generates a summary of the recent interaction so that when interaction with the VDA resumes, the CI manager module 106 delivers the summary of the recent interaction.

[0073] The user's overall workload is reduced by not expecting the user to repeat anything from what was previously said.

[0074] Rule-Based Engine with Additional Details

[0075] Conversational intelligence (CI) encoded into a rule-based engine allows the VDA to manage everyday conversations using mechanisms that humans use every day to successfully achieve and ensure mutual understanding. The CI Manager module 106 looks for information already available in human conversation, including the use of prosody and backchannels, to seize or hold the conversational floor, etc., to reflect the true complexity of human conversation.

[0076] The CI manager module 106 uses a rule-based engine for conversational intelligence to understand and generate i) non-lexical vocal cues such as saying "Uhmm" and ii) non-verbal conversational cues such as pitches like "Right!!" or "Right??" to smooth out complex conversations while building trust, which are used to regulate the dialogue itself, iii) "ground" the conversation and establish common ground, iv) take turns to hold the conversational floor, v) correct miscommunications (and build trust) by allowing users to correct slip-ups, and deliver transitions. The rule-based engine is configured to enforce linguistically motivated rules for each micro-interaction.

[0077] The CI Manager module 106 uses a rules-based engine for conversational intelligence that exploits the same non-verbal information that SenSay (STAR ​​speech analysis platform) uses for emotion detection to extract conversational cues. In one embodiment, the design targets modeling only a few frequent conversational phenomena that have a significant impact on the VDA-user experience.

[0078] The CI manager module 106 can use vocal mechanisms such as 1) single word expressions and / or 2) short, rapid responses of non-lexical utterances during a user's turn to hold the conversation floor in dialogue areas such as i) the conversation floor held to indicate either A) affirmation of understanding, B) misunderstanding, and / or C) questioning of what the user is currently communicating without overtly trying to seize the conversation floor from the user, and ii) conversation grounding to establish mutual understanding of the current topic being discussed.

[0079] The CI manager module 106 has a rule-based engine of conversational intelligence for the VDA to understand and generate human conversational cues. Conversational intelligence allows the VDA to use highly evolved conversational mechanisms. Conversational intelligence allows the VDA to use linguistic knowledge, new information beyond just words that reflects the true complexity of the interaction. The CI manager module 106 allows the VDA to i) use fluid turn-taking, ii) recognize backchannel language, iii) wait for backchannels, iv) recognize floor-taking and relinquish the floor, and v) allow the user to change the list presentation on the fly.

[0080] The rule-based engine has rules for analyzing and determining in two or more of the following conversational cues in the user's speech stream: i) non-lexical words, ii) spoken pitch, iii) spoken prosody, and iv) grammatical completeness of syntax, whether to generate an utterance during a time frame in which the user still holds the conversational floor to at least one of: 1) prompt additional information from the user, 2) tell the user to hold the conversational floor and continue speaking, or 3) indicate that the VDA is seeking to seize the conversational floor, as opposed to simply waiting for a pause of fixed duration and then assuming that the user has abandoned the conversational floor.

[0081] The CI manager module 106 cooperates with the rule-based engine to apply the rules (two or more) to the micro-interactions for conversation floor retention as follows: Each micro-interaction for a conversational intelligence phenomenon can have multiple dialogue paths for multiple conditions. Some example pseudocode is presented for linguistically motivated micro-interactions involving conversational intelligence phenomena.

[0082] Microinteractions: When the user responds while still holding the conversation floor

[0083] The rule-based engine can have rules that cause the CI manager module 106 to react appropriately when a user nods while still holding the conversation floor.

[0084] The CI manager module 106 receives input to evaluate the user's i) tone of voice, ii) timing, iii) utterances, iv) transition words, and v) other human cues that signal a shift in the user's speech flow to gain, seize, or relinquish the conversational floor between the user and the VDA.

[0085] Based on the absence of prosody, pitch, transition words, and other human cues conveying a transition, it is determined that the user intended to hold the conversational floor but communicated one or more complete thoughts. The text-to-speech module 112 announces backchannels to convey any of i) understanding, ii) correction, iii) acknowledgment, and iv) questions about the verbal communication communicated by the user in the speech stream during the time frame in which the user still holds the conversational floor.

[0086] Microinteractions: User doesn't complete an utterance / thought

[0087] The rule-based engine can have rules to cause the CI manager module 106 to react appropriately when the user pauses when the user has not completed an utterance / thought, via:

[0088] i) Trigger: Does speech activity detection indicate that the user has stopped talking?

[0089] ii) Is the sentence or other linguistic idea syntactically complete or incomplete?

[0090] iii) Determine if the user is paralinguistically holding the conversation floor, e.g., via prosody (e.g., was a prosodic end pointer uttered? or was there such a pitch?).

[0091] iv) Additionally, determine if the user is holding the conversation floor by lexical or non-lexical events (e.g., taking a breath, lexical or non-lexical units uttered? Dental clicks?).

[0092] v) When none of these are detected and a fixed duration occurs without speech, determine that the user has relinquished the conversation floor.

[0093] The rule-based engine has rules for analyzing and determining the appropriate reaction when a user pauses but does not complete an utterance.

[0094] Possible actions:

[0095] If the user holds the floor prosody- ically , If none of the semantic content and / or user utterances are incomplete, set the wait time to a long fixed setting and then take over the conversation floor. ● If not, set the wait time to a short fixed setting and provide some back-channeling.

[0096] In parallel, it determines whether the user utterance was a statement, a question, or an incomplete utterance. Then, if it is still waiting after the configured waiting time, it issues an appropriate response to i) a statement (e.g., "okay"), or ii) an incomplete utterance (e.g., "mm-hmm"), or iii) a pitched question (e.g., the question "Am I right?" with the response "Of course"), all of which prompt for further information from the user.

[0097] In parallel, determine if the user holds the floor lexically or by non-lexical units. If so, set the wait time to a long fixed setting. If still waiting after the timer, issue an appropriate back-channel such as "mm-hmm."

[0098] Then, in response to the first appropriate response issued by the VDA, it determines whether the user has relinquished the floor, and, upon determining that they have, it goes ahead and takes over the conversational floor, issuing some syntactically complete content on the topic of the user's last complete thought during the VDA's turn.

[0099] Microinteractions: An illustrative case of conversation grounding - User self-correction

[0100] The rule-based engine can have rules for the CI manager module 106 to establish conversation grounding. An exemplary user self-correction illustrates the principles utilized. Self-correction can include slip-ups or mispronunciations. For example, the user changes their mind or expands on a concept about what they were going to say.

[0101] The rule-based engine may have rules to cause the CI manager module 106 to identify the user's self-correction by i) detecting that a condition exists, ii) determining a trust level regarding the content that the user intends to correct when the user issues the user's self-correction, and iii) taking an action to establish mutual understanding. When the trust level regarding the content that the user intends to correct falls below a threshold amount set by the user, the rule requires a specific action to be taken to re-establish conversation grounding. The rule establishes conversation grounding to form mutual understanding between the user and the VDA by taking an action integrated with parts of the last exchange of communication between the VDA and the user, such as one or more questions and / or utterances regarding the topic being tracked.

[0102] An example of a user self-correcting is the following: A user is having a conversation and says, "The first step, I mean the second, should be..."

[0103] The tracked topics are tracked by the dialogue manager module 108. The dialogue manager module 108 cooperates with the CI manager module 106 to identify when mutual understanding conditions do not exist, e.g., the user's self-correction. The CI manager module 106 can refer to the dialogue manager module 108 and other modules to determine the confidence level for what the user intends to correct. Thus, the dialogue manager module 108 in cooperation with the CI manager module 106 can identify / detect when mutual understanding conditions do not exist, e.g., the user's self-correction, and then the CI manager module 106 can determine the confidence level for what the user intends to correct. The CI manager module 106 can determine the confidence level for what the user intends to correct and choose which action to take to i) issue a backchannel or other quick word to reinforce the actual point, or ii) take over the conversation floor to establish mutual understanding.

[0104] Thus, the CI manager module 106 takes one of two possible actions to establish conversation grounding: Depending on the confidence level of understanding, the CI manager module 106 issues an instruction to bring about a possible action such as a back-channel, a correction, a question, or a statement.

[0105] The VDA can i) issue a questioning tone back-channel, ii) issue a few words to re-establish the word that was really meant, or iii) take over the conversation floor and issue a questioning voice saying what the CI manager module 106 thinks is the current topic. The VDA can i) issue a questioning tone back-channel such as "Hmmm?" to encourage the user to actively state the correction. The VDA can also ii) issue a few words such as "Okay, the second step" instead. In another example, the VDA can take over the conversation floor and ask what word was really meant in this case "Sorry, did you mean a first step, a second step, or something else?"

[0106] Again, in the exemplary case of a user self-correction, when the CI manager module 106 detects that the user has self-corrected an utterance, the CI manager module 106 determines a confidence level for what the user intends to correct. After consulting the dialogue manager module 108 and other modules, the CI manager module 106 determines a confidence level for what the user intends to correct. When there is a high confidence level (e.g., greater than 90%) that the correction was understood by the VDA, the CI manager module 106 issues a quick back-channel or a portion of the current communication exchange incorporating a quick acknowledgment word / phrase such as "Yes, the second step."

[0107] However, when there is a low confidence level (e.g., above 40%) that the correction was understood by the VDA, the CI manager module 106 can emit some words or sounds to take over the conversation floor. The CI manager module 106 and natural language generation module 110 work together to 1) acknowledge the CI manager module's current understanding of what the CI manager module understands / what the user means, and 2) generate sentences to convey what the user intended to say.

[0108] After the VDA issues a response, the VDA takes the following set of actions: The CI manager module 106 waits for a response from the user. When the user responds with positive acknowledgment (explicit grounding that the correction is complete), the CI manager module 106 responds with an acknowledging back-channel. When the user continues the conversation with new information (implicit grounding that the correction is complete), the CI manager module 106 passes that information to the dialogue manager module 108. When additional corrections are needed, the CI manager module 106 reverts to the previous information that may require correction.

[0109] In addition, the CI manager module 106 uses a rule-based engine to analyze and determine instances where a user corrects their slip-ups or mispronunciations, and then compensates for the user's corrections when interpreting what the user is trying to communicate through verbal communication. The VDA can memorize patterns of how users correct and which mechanisms work best to establish mutual understanding. The CI manager module 106 also updates the system's internal representation / understanding accordingly.

[0110] The CI manager module 106 can use handwritten grammar or statistically based rule sets that recognize patterns such as "not X,Y" (stress on Y and possibly on X).

[0111] Micro-interaction: Pronunciation Approval by VDA

[0112] The rule-based engine has rules for analyzing and determining whether a pronunciation is acceptable to the VDA.

[0113] Trigger: The TTS module 112 informs the CI manager module 106 that the correct pronunciation of a word to be spoken is unknown.

[0114] Conduct / Rules:

[0115] It instructs the TTS module 112 to produce an utterance of the word with a questioning intonation, a slow speech rate, followed by a pause, and then to continue in one of two ways.

[0116] If the user corrects the pronunciation, the following steps are taken. Generate affirmation by repeating the final utterance, The pronunciation is stored for future use by the TTS module 112.

[0117] Continue outputting. When the user simply acknowledges the pronunciation with "Yes" or continues speaking the content and does not attempt to pronounce it correctly, the TTS module 112 updates and stores a higher confidence for that pronunciation.

[0118] Microinteraction A1: Long and / or Complex List Items

[0119] The rule-based engine can have rules that allow the CI manager module 106 to determine how the VDA should communicate long list items and / or complex information to the user. The CI manager module 106 exchanges input and output with the natural language generation module 110 and the text-to-speech module 112 to generate human conversation cues with the user by the VDA that utilize prosodic conversation cues for the flow and exchange of human communication between the user and the VDA.

[0120] VDAs are able to convey long lists of information and / or complex information by breaking this information into individual chunks that are separated by intentional pauses to allow for full comprehension of each individual chunk. Intentionally inserted pauses are useful in aiding human comprehension when communicating a long list or complex set of information being communicated.

[0121] When the CI manager module 106 has a long list of items / complex information to communicate,

[0122] A) Output a short, simple introduction (e.g., "sure," "sure, there are a few of them")

[0123] A1) From the second item to the last item in the list,

[0124] i) Prefaces with discourse markers (e.g., "there's," "then I've got")

[0125] ii) Use TTS to generate a pitch rise / balance at the end of each item.

[0126] iii) Set a timer to pause for a specified amount of time after each item.

[0127] The pause after the first list item may be longer to elicit a backstory from the user and indicate to the user that backstory is available.

[0128] iv) If the user responds within the timer limit,

[0129] It tracks how long it takes the user to respond, and if it is long, reduces the rate of information output from the text-to-speech module 112 for future items.

[0130] Stop waiting and continue with the next list item.

[0131] v) If the user speaks something other than a backchannel, determine which category of speech it belongs to.

[0132] If you are a floor holder,

[0133] Pauses for further input from the user.

[0134] When there is a list navigation command (e.g., "repeat," "what was the first one?"), or a filtering request (e.g., "I need it to be less than $200"),

[0135] Iterate over items, navigate lists, or add filtering / constraints.

[0136] If not, give the complete utterance.

[0137] Pass it to the dialogue manager.

[0138] vi) If the user does not respond,

[0139] Wait until the timer expires and continue with the next list item.

[0140] B) Preface the last item with "and" to produce a falling pitch at the end of the last item.

[0141] Microinteraction A2: Long and / or Complex List Items

[0142] Then, using a similar set of rules, the rule-based engine allows the user to modify the list presentation on the fly. The CI manager module 106 with a detector listens to hear when a long list of information is about to be communicated by a user and controls the timing to i) allow the person listening to the long list of information enough time to process each item in the list to be spoken and / or digested in chunks. Note that the CI manager module 106 has input from the detector to prevent the VDA from interrupting prematurely when the user has the conversation floor. The rule-based engine is configured to use rules to determine when a user is simply pausing temporarily, but has not yet communicated the entire point the user is about to communicate.

[0143] Thus, the rules-based engine can have rules to cause the CI manager module 106 to determine whether the user is communicating a long and / or complex list of items in order to convey that a long pause has been detected in the user's speech stream and / or a change in pitch after the last item in the list has been expressed.

[0144] A) Determine whether the speaker is inserting pauses between pieces of information rather than wanting to give up the conversational floor.

[0145] If the user:

[0146] A1) Check whether the speaker communicates short, simple preamble words (e.g., "sure," "sure, there are a few of them"), then

[0147] A2) From the second item to the last item in the list,

[0148] i) The user can prefix an item with a carrier phrase (eg, "there's," "then I've got").

[0149] ii) The user can generate a pitch rise / balance at the end of each item.

[0150] iii) Setting a timer to check for pauses up to a specified amount of time after each item.

[0151] After the first list item, a prompt is generated to the user to prompt for more information.

[0152] iv) If the user provides more items / information within the timer limit,

[0153] Track how long it takes the user to provide the item / information.

[0154] v) If the user speaks more than just items / information related to the current topic, determine which category of speech it is.

[0155] If you are a floor holder,

[0156] Pauses for further input from the user.

[0157] If others establish conversation grounding,

[0158] Pass it to the dialogue manager.

[0159] B) Verify that the user precedes the last item with a marker such as "and" and / or produces a falling pitch at the end of the last item. Verify that the list of items appears to be complete by using an affirmative response such as "anything else?"

[0160] Microinteractions: Back-channels with pitch to indicate that the VDA is seeking to seize and / or retain the conversation floor

[0161] The rules-based engine can have rules that cause the CI manager module 106 to generate backchannels with pitches to indicate that the VDA is seeking to seize and / or retain the conversation floor.

[0162] The CI manager module 106 can cooperate with the automatic speech processing module 102, the natural language generator module 110, and the text-to-speech module 112 to issue backchannels with pitch to convey meaning beyond just the backchannel itself. The CI manager module 106 has inputs to receive information about when a user is speaking, and the rule-based engine is then configured to apply rules for the CI manager to determine when to instruct the natural language generator module 110 to generate 1) text to backchannel conversational cues, 2) use of pitch in response to marked annotations to the text, and 3) any combination of the two, when the user begins to speak and interrupts the VDA's response to the user to indicate that the VDA has not yet relinquished the conversation floor. The CI manager module 106, in cooperation with the natural language generator module 110 and the text-to-speech module 112, issues conversational cues via the speaker device when a user interrupts the VDA to indicate that the VDA has not yet relinquished the conversation floor, such as 1) an interjection / expression such as "um" and / or 2) the use of pitch in the response, such as a rising pitch.

[0163] Microinteractions: Handling floor collisions when the user and VDA start speaking within "X" milliseconds of each other after a pause in the current conversation

[0164] The rule-based engine can have rules that cause the CI manager module 106 to handle floor collisions between a user and a VDA when both start speaking in a sentence (not a backchannel) within a short period of time after a pause in the current conversation. Note that floor collisions can occur in many situations and are handled differently depending on the context.

[0165] Trigger: The user and the VDA start speaking within X milliseconds of each other after a pause, such as 0.50 seconds, and both utterances have semantic content.

[0166] Action:

[0167] The CI manager module 106 determines the length of the overlap while both the VDA and the user are attempting to speak. Did the user quickly relinquish the conversation floor by stopping speaking or otherwise actively communicating that they are relinquishing the conversation floor? The CI manager module 106 determines the dialogue state.

[0168] The CI manager module 106 determines what happened during the pause and then what happens after the pause: i) If the user continues to speak, the VDA stops speaking and allows the user to continue. ii) If the user stops speaking, the VDA says "sorry, go ahead" and waits for the user to continue.

[0169] Microinteraction: Wait Direction

[0170] The rule-based engine can have rules that cause the CI manager module 106 to handle the "hang on" direction.

[0171] Trigger: The CI manager module 106 detects the direction from the user to the VDA to "hang on" or otherwise pause talk.

[0172] Action:

[0173] The CI manager module 106 works in conjunction with the natural language generator module 110 and the text-to-speech module 112 to generate affirmations (e.g., "sure," "sure, let me know when you're ready," etc.).

[0174] The CI manager module 106 cooperates with the automatic speech recognition module 102 and the oral language understanding module 104 to enable system-directed / non-system-directed speech discrimination functionality.

[0175] When speech is directed to the VDA to wait or otherwise pause (likely), the rule-based engine instructs the VDA to: a) Determine whether the speech has semantic content. If the speech has semantic content, the dialogue management module 108 directs the system to proceed to a normal dialogue system. If the speech has no semantic content, a timer is started. If a system developer specified period of time has elapsed without further input from the user, the Conversational Intelligence Manager module 106 generates a command ("are you ready?") to acknowledge that the user has begun speaking again to the VDA. b) Determine the state of the dialogue. If the VDA was speaking, the conversation intelligence manager module 106 can summarize / repeat what it was trying to communicate when the wait command came from the user and / or generate commands to take other actions, including: If the user is in the middle of speaking, the VDA will prompt again with what they know so far. If little information has been communicated so far on the current topic, we assume the user remembers and skip the step of summarizing / repeating what was going to be communicated when the user gave the command to wait. By default, if the VDA is not sure whether the user remembers the state of the information it has communicated so far (grounding), or if it is quick to review the dialogue state, it will perform steps to review the state of the dialogue with the user and summarize / repeat what the VDA was trying to communicate when the user commanded it to wait.

[0176] Further details

[0177] prosodic analysis

[0178] In one embodiment, the VDA can make prosody-related decisions as follows: The VDA finds speech endpoints by utilizing information contained in a speech prosody model. Prosody describes how speakers vary the timing, pitch, and volume of phones, syllables, words, and phrases to convey certain aspects of meaning; informally, prosody includes what is perceived as the "rhythm" and "melody" of speech. Because users use prosody to communicate units of speech other than words to listeners, the method and apparatus perform endpoint detection by extracting and interpreting relevant prosodic features of speech.

[0179] The speech signal input to the VDA is captured as a speech waveform associated with a user's spoken utterance. The speech data processing subsystem creates speech data corresponding to the voice input captured from the person in the speech waveform. The acoustic front end computes non-word analyses of phone and phrase timing, pitch, and volume to convey prosody across frames of the speech waveform. The acoustic front end includes multiple analysis engines, each comprising multiple algorithms configured to compute different types of user state analyses, including phone and phrase timing, pitch, and volume to convey prosody across frames of the speech waveform. The VDA computes and compares data from frames of the speech waveform to a database and a subsequent classification module. It should be noted that each sample of the speech signal is processed to generate an end signal, and then the next sample is processed. The new sample is used to update the end signal. The acoustic front end can include a pause analysis engine, a duration pattern analysis engine, a volume analysis engine, and a pitch processing analysis engine. Each of these analysis engines can have executable software, particularly using algorithms to perform its specific function. For example, the pause analysis engine may utilize a traditional "speech / non-speech" algorithm that detects when a pause in speech occurs. The output is a binary value that indicates whether the current speech signal sample is part of speech or not. This output and the decision information may be used to identify the end point. Similarly, the duration pattern analysis engine analyzes whether a sound is getting longer relative to the average sound duration of the user. A longer sound indicates that the user has not finished speaking. The output of this analysis engine may be a binary signal (e.g., if the sound is longer than average, the output is 1, otherwise the output is 0) or a probability indicating that the user may have finished speaking in terms of the duration of the sound. Similarly, a pitch processing analysis engine may be used to extract a specific pitch parameter from the speech signal that indicates that the user has finished speaking.The pitch processing analysis engine extracts the fundamental pitch frequency from the speech signal and stylizes the "pitch movement" of the speech signal (i.e., tracks the pitch variations over time). Within the pitch processing analysis engine, a pitch contour is generated as a sequence of correlated pitch values. The speech signal is sampled at an appropriate rate, e.g., 8 kHz, 16 kHz, etc. Pitch parameters are extracted and calculated (modeled). This sequence can be modeled with a piecewise linear model or with a polynomial of a given degree as a spline. From the pitch contour, a pitch movement model can be created using a finite state automaton or a Markov probability model. This model estimates the sequence of pitch movements. The pitch processing analysis engine extracts pitch features from the model, in that the pitch features convey whether the user intended to stop, pause, continue speaking, or ask a question. The features include the slope of the pitch movement from the baseline pitch and the pitch translation.

[0180] After analyzing a speaker's typical prosody, the VDA can determine long pauses between completed thoughts from the speaker and incomplete thoughts from the speaker.

[0181] The CI manager module 106 can detect long pauses in a conversation, for example, using a timer from an ASR in communication with the CI manager module 106. In combination, the CI manager module 106 has rules described to understand whether a user has abandoned the conversation floor or is simply inserting a long pause in the flow of speech to convey additional information, including a long list of information, speech pauses inserted to aid in the conveyance and understanding of complex information, and pauses inserted between two or more user utterances, so that the user can initially respond incompletely with a first utterance, followed by a short pause, and then a second utterance to complete the idea that the user is trying to convey in the speech.

[0182] Reinforcement learning

[0183] As discussed, the CI manager module can use rules and parameters for conversational intelligence for a voice-based digital assistant (VDA). The CI manager module has one or more inputs for receiving information as parameters from one or more modules to determine both i) understanding human conversational cues and ii) generating human-like conversational cues, including understanding and / or generating backchannels, for at least one of 1) acquiring, seizing, or relinquishing the conversational floor between the user and the VDA, and 2) establishing conversational grounding without acquiring the conversational floor, in at least human communication flows and exchanges.

[0184] The CI manager module can use reinforcement learning using the rules and parameters to analyze and determine at least prosodic conversational cues in the user's speech stream. When the CI manager module determines to generate a backchannel, the CI manager module is configured to generate a command to emit a backchannel to convey any of i) understanding, ii) a request for further information, iii) acknowledgment, and iv) a question about the verbal communication conveyed by the user in the user's speech stream. The CI manager module can use reinforcement learning and can use at least the parameters of the user's emotional state as a reward function for the reinforcement learning.

[0185] Disfluency information

[0186] The CI manager module 106 is configured to i) operate in conjunction with the automatic speech processing module 102 and / or the oral language understanding module 104 to detect disruptive disfluency information in otherwise fluent speech from a user, and then ii) operate in conjunction with the rule-based engine to apply rules for both i) recording the disruptions that cause the disfluency information, and ii) compensating for the disfluency information.

[0187] The CI manager module 106 has input from a disfluency detector to trigger micro-interactions regarding speech correction to detect disfluency information of i) words and sentences interrupted in the middle of an utterance, and / or ii) various interruptions of non-lexical sounds uttered while the user is speaking and holding the conversation floor. The oral language understanding module 104 can indicate that the current speech stream does not contain a completed thought. The CI manager module 106 cooperates with the oral language understanding module 104 to look for grammatical completeness of the syntax in the speech stream from the user. If the user initially responds with "Yeah that looks good but...", the CI manager module 106 is configured to understand that this is a human incomplete sentence. The user may then say, after a long pause, "I am not sure on Tuesday, maybe Wednesday!" Thus, when the CI manager module 106 pairs this first speech stream with the next speech stream from the user, it can send possibly grammatically complete sentences to the oral language understanding module 104 to get a correct interpretation of the speech from the user without getting the conversation floor from the user, and then completely communicate the concept in the speech stream that was intended to be communicated by those two broken phrases. By not getting the conversation floor, the CI manager module 106 allowed the broken phrase to be uttered by the user completing his or her thought. The CI manager module 106 also notices the tone, pitch, and / or prosody for the phrase "maybe Wednesday". The CI manager module 106 applies conversational intelligence to combine the two broken sentences, which are reprocessed by the SLU, and then the module understands the user's intent. All of the above regarding the reservation is correct except for the start date on Tuesday, which should actually be Wednesday.

[0188] Additional details about the Dialogue Manager module

[0189] The topic understanding input / output module in the CI manager module 106 is configured to receive and track topic IDs derived from the hierarchical classifier for topics and the co-clustering of related topics to accurately identify a set of topics discussed in a free-form conversation between a user and the conversational assistant platform for conversational engagement 100. The topic understanding input / output module has an interface that works with the voice-based digital assistant, the hierarchical classifier, and the co-clustering pipeline to identify topics and intent related to the topics. The information extraction and topic understanding input / output module can also have one or more links to state data from the voice-based digital assistant (VDA) pipeline. The topic understanding input / output module tracks input from the VDA pipeline, including the hierarchical classifier and the co-clustering portion of the pipeline to identify topics, and provides this to the dialogue management module 108.

[0190] The topic understanding input / output module detects and tracks topic IDs to accurately identify a set of topics discussed in a free-form conversation (as opposed to a structured menu tree type of interaction with a user). The topic understanding input / output module can store the topic IDs. The hierarchical classifier and co-clustering pipeline utilizes deep learning (e.g., CNN) techniques, including co-clustering and hierarchical classifiers, to identify topics.

[0191] The dialogue manager module 108 can be configured to 1) analyze and determine the dialogue state including the current topic and track the appropriate speech and response cadence using a hybrid approach of a rule-based engine within the dialogue manager module 108 and a trained machine learning model portion.

[0192] The dialogue manager module 108 is configured to determine if the user knows what subject / topic the user wants to talk about and then, once on that topic, listen and / or ask questions to determine what items of information need to be detailed about that subject in order to "finalize the discussion" / "resolve the discussion."

[0193] Similarly, the CI manager module 106 can be configured to analyze and determine the conversational intelligence problems discussed herein using a hybrid approach of 1) a rule-based engine within the CI manager module 106, as well as a trained machine learning model portion.

[0194] The conversational assistant platform 100 for conversational engagement can be a set of software microservices working with a rule-based engine and a hybrid rule and machine learning engine that can perform tasks or services for individual linguistic commands that take into account human conversational cues beyond just spoken words. The VDA is capable of interpreting human speech, including human conversational cues beyond just spoken words, and responding via synthesized voice.

[0195] Note that microservices can be a variation of the Service Oriented Architecture (SOA) architectural style, which structures applications as a set of loosely coupled services. In a microservices architecture, services can be fine-grained and protocols are lightweight. The benefit of decomposing an application into different smaller services is to improve modularity. Services in a microservices architecture (MSA) can communicate over a local network using technology-agnostic protocols such as HTTP.

[0196] Again, the conversational assistant for conversational engagement tracks both conversation topic awareness and user state awareness to create long conversations with the user. Long conversations reveal the user's interests, emotional state, and health. Long conversations may also potentially suppress early-onset dementia and loneliness.

[0197] 2A-2C show a flow diagram of one embodiment of a conversation engagement microservices platform that includes a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for the dialogue flow between a user and a VDA.

[0198] In step 202, the voice-based digital assistant (VDA) can use a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence to process information from one or more modules and have the module determine both i) understanding human conversational cues, including backchannel understanding and / or generation, and ii) generating human-like conversational cues, in human communication flows and exchanges, for at least one of 1) acquiring, seizing, or giving up the conversational floor between the user and the VDA, or 2) establishing a conversational grounding without acquiring the conversational floor. The VDA can also use a CI manager module having a rule-based engine for conversational intelligence to process information from one or more modules and have the module determine both i) understanding human conversational cues, including backchannel understanding, and ii) generating human conversational cues, in human communication flows and exchanges, for at least one of acquiring, seizing, or giving up the conversational floor between the user and the VDA.

[0199] In step 204, the CI manager module can use the rule-based engine to analyze and determine at least prosodic conversational cues in the user's speech stream and generate backchannels to convey any of i) understanding, ii) correction, iii) acknowledgment, and iv) questions about the verbal communication conveyed by the user in the speech stream during the time frame in which the user still holds the conversational floor.

[0200] In step 206, the CI manager module employs the automatic voice processing module and the text-to-speech module in conjunction with the CI manager module. The CI manager module has an input for receiving information regarding when a user is speaking, and the rule-based engine is then configured to apply rules to the CI manager module to determine when the user begins to speak and interrupts the VDA's response to the user to instruct the text-to-speech module to generate conversational cues: 1) a backchannel, 2) the use of pitch in the response, and 3) any combination of the two, to indicate that the VDA has not yet relinquished the conversational floor.

[0201] In step 208, the rule-based engine analyzes and determines two or more of the following conversational cues: i) non-lexical items (e.g., words, sounds, etc.); ii) spoken prosody, including pitch and timing; iii) grammatical completeness of syntax in the user's speech stream; iv) duration of pauses relative to set durations; and v) degree of semantic conditionality of the user's utterance. After making these determinations and analyses, the CI manager module can determine whether to generate an utterance to at least one of: 1) prompt additional information from the user; 2) convey the VDA's agreement and understanding that the user continues to have the conversational floor; or 3) indicate that the VDA is seeking to seize the conversational floor, as opposed to simply waiting for a pause of fixed duration and then assuming that the user has given up the conversational floor. The CI manager module can determine whether to generate this utterance during a time frame in which the user still holds the conversational floor.

[0202] In step 210, the CI manager module uses a prosody analyzer for prosodic analysis of the speech from the user, such as the rhythm of the speech stream from the user. The CI manager module receives input data for prosodic analysis from the automatic speech processing module. The prosody detector first checks and detects whether any speech activity is occurring from the automatic speech processing module, and then uses the prosody detector to apply prosodic analysis at the "end" and / or "middle" of the user's utterance to determine whether i) the user has actually abandoned the conversation floor, or ii) the user is inserting pauses in the speech stream to convey additional information. The additional information can include any of the following: 1) speaking with pauses to aid in the conveyance and understanding of a long list of information, 2) speaking with pauses between two or more user utterances so that the user can initially respond incompletely with a first utterance, followed by a pause, and then a second utterance to complete the thought the user is trying to convey in the speech activity, and 3) speaking with pauses to solicit a backchannel from the system, and 4) any combination of these three.

[0203] In step 212, the CI manager module uses a dialogue manager module connected to both the input and output to the CI manager module, the dialogue manager module being configured to analyze and track at least the dialogue state, including the current topic, for the speech and response cycle.

[0204] In step 214, the CI manager module digests information from at least the oral language understanding module regarding the micro-interaction including i) tone or pitch of voice, ii) timing information, iii) utterances, iv) transition words, and v) other human cues signaling a shift in the conversational floor to determine how to proceed with regard to whether to at least one of acquire, seize, or relinquish the conversational floor between the user and the VDA.

[0205] In step 216, the CI manager module uses the conversation grounding detector to determine that mutual understanding has not occurred between the user and the VDA. When the CI manager module determines that mutual understanding has not occurred, the CI manager module, the natural language generation module, and the text-to-speech module cooperate to issue one or more utterances to re-establish mutual understanding. The rule-based engine uses rules to determine that mutual understanding has not occurred between the user and the VDA.

[0206] In step 218, the CI manager module triggers micro-interactions regarding speech correction using the disfluency detector to detect disfluency information of i) words and sentences interrupted in the middle of an utterance, and / or ii) various interruptions of non-lexical sounds uttered while the user is speaking and holding the conversation floor. The CI manager module is configured to i) operate with the automatic speech processing module to detect disfluency information in speech within an otherwise fluent speech from the user, and then ii) operate with the rule-based engine to record the disfluency information and apply rules to i) use the disfluency information to correct the speech, or ii) conversationally ground and acknowledge by the user that the system's understanding is correct, or iii) both.

[0207] In step 220, the CI manager module cooperates with the oral language understanding module to provide input information for the micro-interaction related to analyzing the user's i) emotional state during the response, ii) acoustic tone of the speech, iii) prosody, iv) any discourse markers, and v) any combination thereof from the input data to indicate the user's attitude conveyed in what the user is saying. The CI manager module considers and determines the emotional response from the oral language understanding module, the acoustic tone of the speech, or the discourse markers, and then issues a response or adjusts the state, and when it issues the response, uses the text-to-speech module to 1) abandon the conversation floor, 2) ask for more information from the user, 3) change the dialogue state to change the system response to the user, or 4) prompt the user to express his / her thoughts, or at least ask if the user wants to communicate something.

[0208] In step 222, the CI manager module uses a rule-based engine to analyze and determine instances where the user corrects his or her slip-ups or mispronunciations, and then compensates for the user's corrections when interpreting what the user is trying to communicate through verbal communication.

[0209] In step 224, the CI manager module uses information about the world context in which the user is interacting to assist in determining that the user is currently distracted and has a reduced ability to process speech from the VDA.

[0210] network

[0211] FIG. 3 shows a block diagram of multiple electronic systems and devices communicating with each other in a network environment according to one embodiment of the present design.

[0212] The network environment includes a communication network 320 that connects the server computing systems 304A-304B and at least one or more customer computing systems 302A-302G. As shown, the many server computing systems 304A-304B and the many customer computing systems 302A-302G can be connected to each other via the network 320, which can be, for example, the Internet. It should be noted that the network 320 can alternatively be or include one or more of an optical network, a cellular network, the Internet, a local area network (LAN), a wide area network (WAN), a satellite link, a fiber network, a cable network, or any combination thereof and / or other. Each server computing system 304A-304B can have circuitry and software for communicating with the other server computing systems 304A-304B and customer computing systems 302A-302G via the network 320. Each server computing system 304A-304B may be associated with one or more databases 306A-306B. Each server 304A-304B may have one or more instances of a virtual server running on its physical server, and multiple virtual instances may be implemented by this design. A firewall may be established between a customer computing system, such as 302D, and the network 320 to protect the integrity of the data on the customer computing system 302D.

[0213] Cloud provider services can deploy and run application software in the cloud, and users can access the software services from customer devices. Cloud users who have sites in the cloud cannot independently manage the cloud infrastructure and platform on which their applications run. Thus, servers and databases can be shared hardware where users are given dedicated use of a certain amount of these resources. A user's cloud-based site is given dedicated space and bandwidth of virtual amounts in the cloud. Cloud applications can differ from other applications in terms of scalability, which can be achieved by cloning tasks to multiple virtual machines at run time to meet changing work demands. A load balancer distributes the work across a set of virtual machines. This process is transparent to the cloud users, who see only a single access point.

[0214] The cloud-based remote access is coded to involve a request and response cycle by both mobile device applications resident on the customer devices 302A-302G as well as web browser applications resident on the customer devices 302A-302G utilizing protocols such as HyperText Transfer Protocol (HTTP). In some circumstances, the cloud-based remote access to the wearable electronic device 302C can be accessed via a mobile device, desktop, or tablet device cooperating with the wearable electronic device 302C. The cloud-based remote access between the customer devices 302A-302G and the cloud-based provider site 304A is coded to involve one or more of: 1) a request and response cycle from all web browser-based applications; 2) an exchange of SMS / Twitter-based request and response messages; 3) a request and response cycle from a dedicated online server; 4) a direct request and response cycle between native mobile applications resident on the customer devices and the cloud-based remote access to the wearable electronic device; and 5) a combination thereof.

[0215] In one embodiment, the server computing system 304A may include a server engine, a web page management component or online services or online apps component, a content management component, and a database management component. The server engine performs basic processing and operating system level tasks. The web page management component, online services, or online apps component handles the creation and display or routing of web pages or screens associated with receiving and serving digital content and digital advertisements. Users can access the server computing device by a URL associated with the server computing device. The content management component handles most of the functionality in the embodiments described herein. The database management component includes storage and retrieval tasks for the database, queries to the database, and storage of data.

[0216] Computing Devices

[0217] FIG. 4 shows a block diagram of one embodiment of one or more computing devices that can be part of a conversation assistant for one embodiment of the present design discussed herein.

[0218] The computing device may include one or more processors or processing units 420 for executing instructions, one or more memories 430-432 for storing information, one or more data input components 460-463 for receiving data input from a user of the computing device 400, one or more modules including a management module, a network interface communication circuitry 470 for establishing a communication link to communicate with other computing devices external to the computing device, one or more sensors where the output from the sensors is used to sense a particular trigger condition and then generate one or more preprogrammed actions in response thereto, a display screen 491 for displaying at least some of the information stored in the one or more memories 430-432, and other components. It should be noted that some portions of this design embodied in software 444, 445, 446 are stored in one or more memories 430-432 and executed by one or more processors 420. The processing unit 420 may have one or more processing cores that couple to a system bus 421 that couples various system components including system memory 430. The system bus 421 may be any of several types of bus structures selected from a memory bus, an interconnect fabric, a peripheral bus, and a local bus using any of a variety of bus architectures.

[0219] The computing device 402 typically includes a variety of computing machine-readable media. Machine-readable media can be any available media that can be accessed by the computing device 402, including both volatile and non-volatile media and removable and non-removable media. By way of example and not limitation, use of computing machine-readable media includes storage of information such as computer-readable instructions, data structures, other executable software, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disks (DVDs), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other tangible medium that can be used to store desired information and that can be accessed by the computing device 402. Transient media, such as wireless channels, are not included as machine-readable media. Machine-readable media typically embodies computer-readable instructions, data structures, and other executable software.

[0220] In one example, a volatile memory drive 441 is shown for storing an operating system 444 , application programs 445 , other executable software 446 , and some portions of program data 447 .

[0221] A user can input commands and information into the computing device 402 through input devices such as a keyboard, touch screen, or software or hardware input buttons 462, a microphone 463, a pointing device such as a mouse, trackball, or touchpad, and / or a scrolling input component 461. The microphone 463 can work with speech recognition software. These other input devices are often connected to the processing unit 420 through a user input interface 460 coupled to the system bus 421, but can also be connected by other interface and bus structures such as a writing port, a game port, or a universal serial bus (USB). A display monitor 491 or other type of display screen device is also connected to the system bus 421 through an interface such as a display interface 490. In addition to the monitor 491, the computing device can also include other peripheral output devices such as speakers 497, a vibrating device 499, and other output devices that can be connected through an output peripheral interface 495.

[0222] The computing device 402 can operate in a network environment using logical connections to one or more remote computers / customer devices, such as a remote computing system 480. The remote computing system 480 can be a personal computer, a mobile computing device, a server, a router, a network PC, a peer device, or other common network node, and typically includes many or all of the elements described above with respect to the computing device 402. The logical connections can include a personal area network (PAN) 472 (e.g., Bluetooth), a local area network (LAN) 471 (e.g., Wi-Fi), and a wide area network (WAN) 473 (e.g., cellular network). Such networking environments are common in offices, enterprise-wide computer networks, intranets, and the Internet. A browser application and / or one or more local apps can reside on the computing device and can be stored in memory.

[0223] When used in a LAN networking environment, the computing device 402 is connected to the LAN 471 via a network interface 470, which may be, for example, a Bluetooth or Wi-Fi adapter. When used in a WAN networking environment (e.g., the Internet), the computing device 402 typically includes some means of establishing communications over the WAN 473. For mobile communication technologies, for example, a wireless interface, which may be internal or external, may be connected to the system bus 421 via the network interface 470 or other appropriate mechanism. In a network environment, other software depicted with respect to the computing device 402, or portions thereof, may be stored in a remote memory storage device. By way of example and not limitation, remote application programs 485 reside on the remote computing device 480. It will be appreciated that the illustrated network connections are exemplary and other means of establishing a communications link between computing devices may be used.

[0224] It should be noted that the design may be implemented in a computing device such as that described with respect to this figure, but the design may also be implemented in a server, a computing device dedicated to message processing, or in a distributed system where different parts of the design are implemented in different parts of the distributed computing system.

[0225] It should be noted that applications described herein include, but are not limited to, software applications, mobile applications, and programs that are part of an operating system application. Some portions of this description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is generally conceived herein to be a self-consistent sequence of steps leading to a desired result. These steps require physical manipulations of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, primarily for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These algorithms can be written in a number of different software programming languages, such as C, C++, HTTP, Java, or other similar languages. Also, the algorithms can be implemented by software code, by hardware configured logic gates, or a combination of both. In one embodiment, the logic is comprised of electronic circuitry that follows the rules of Boolean logic, software containing patterns of instructions, or any combination of both. Modules can be implemented in hardware electronic components, software components, and combinations of both.

[0226] Generally, applications include programs, routines, objects, widgets, plug-ins, and other similar structures that perform particular tasks or implement particular abstract data types. Those skilled in the art can implement the descriptions and / or figures herein as computer-executable instructions that may be embodied in any form of computer machine-readable media discussed herein.

[0227] Many functions performed by electronic hardware components can be replicated through software emulation. Thus, software programs written to achieve those same functions can emulate the functions of the hardware components in the input / output circuitry.

[0228] Although the above designs and embodiments thereof have been provided in considerable detail, it is not the applicant's intention that the designs and embodiments provided herein be limiting. Additional adaptations and / or modifications are possible, and the broader aspects encompass these adaptations and / or modifications. Thus, departures may be made from the above designs and embodiments without departing from the scope provided by the following claims, which, when properly interpreted, are limited only by the scope of the claims.

Claims

1. 1. An apparatus for understanding and generating human conversational cues, comprising: a conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for a voice-based digital assistant (VDA), the CI manager module having one or more inputs for receiving information from one or more modules to determine both i) understanding the human conversational cues and ii) generating human-like conversational cues, including at least understanding and / or generating backchannels, in human communication flows and exchanges for at least one of: 1) acquiring, seizing, or relinquishing a conversational floor between a user and the VDA; or 2) establishing a conversational grounding without acquiring the conversational floor; The CI manager module is configured to use the rule-based engine to analyze and determine at least prosodic conversational cues in the user's speech stream, and when the CI manager module determines to generate the backchannel, the CI manager module is configured to generate a command to emit the backchannel to convey any of: i) understanding, ii) a request for further information, iii) acknowledgment, and iv) a question about the verbal communication communicated by the user in the user's speech stream.

2. the CI manager module is configured to use the rule-based engine to analyze and determine factors of conversation cues; the rule-based engine has rules for analyzing and determining any two or more of the following discourse cues: i) non-lexical items, ii) spoken prosody, iii) grammatical completeness of syntax in the user's speech stream, iv) pause duration, and v) degree of semantic conditionality of the user's utterance; 2) communicate the VDA's agreement and understanding that the user continues to have the conversation floor; or 3) indicate that the VDA is seeking to seize the conversation floor.

3. 2. The apparatus of claim 1, wherein the CI manager module has a prosody analyzer that enables micro-interactions requiring prosodic information of the user's speech, the CI manager module being configured to receive input data for prosody analysis from an automatic speech processing module, the automatic speech processing module being configured to first verify and detect whether any speech activity is occurring, and then apply the prosody analysis to the user's utterance using the prosody analyzer to determine whether i) the user has actually abandoned the conversation floor, or ii) the user is inserting pauses in the speech flow to convey additional information, the additional information being selected from the group consisting of: 1) speaking with pauses to help convey a long list of information; 2) speaking with pauses between two or more user utterances so that the user can initially speak incompletely with a first utterance, followed by a pause, and then a second utterance to complete a thought that the user is trying to convey in the speech activity; 3) speaking with pauses to solicit the backchannel from the CI manager module; and 4) any combination of these three.

4. When portions of the CI manager module are implemented in software, instructions are stored in one or more non-transitory machine-readable storage media in a manner that, when executed by the CI manager module, causes the CI manager module to perform the functions listed for the apparatus of claim 1; The CI manager module has an input from a conversation grounding detector to determine that mutual understanding has not occurred between the user and the VDA, and when the CI manager module determines that the mutual understanding has not occurred, the CI manager module, the natural language generation module, and the text-to-speech module are configured to cooperate to issue one or more utterances to re-establish the mutual understanding, and the rule-based engine is configured to use rules to determine that the mutual understanding has not occurred between the user and the VDA.

2. The apparatus of claim 1.

5. 2. The apparatus of claim 1, wherein the CI manager module has an input from a disfluency detector to trigger micro-interactions related to speech correction to detect disfluency information of i) words and sentences truncated in the middle of an utterance, and / or ii) various truncations of non-lexical sounds uttered while the user is speaking and holding the conversation floor, and the CI manager module is configured to: 1) in conjunction with an automatic speech processing module, detect the disfluency information in speech within an otherwise fluent speech from the user, and then 2) in conjunction with the rule-based engine, record the disfluency information and apply rules to i) correct the speech using the disfluency information, or ii) conversationally ground and acknowledge by the user that the system's understanding is correct, or iii) both.

6. 2. The apparatus of claim 1, wherein the CI manager module is configured to cooperate with an oral language understanding module to provide input information for analyzing from input data a user's i) emotional state during a response, ii) acoustic tone of an utterance, iii) prosody, iv) any discourse markers, and v) any combination thereof to indicate the user's attitude conveyed in what the user is saying, and the CI manager module is configured to take into account the emotional state, the acoustic tone of the utterance, or the discourse markers from the oral language understanding module to determine, and then issue a response or adjust state, and upon issuing the response, use a text-to-speech module to: 1) abandon the conversation floor; 2) seek additional information from the user; or 3) change a dialogue state to change a system response to the user.

7. a dialogue manager module connected to both the input and the output of the CI manager module, the dialogue manager module configured to analyze and track at least a dialogue state, including a current topic, for one or more associated utterances; The CI manager module is configured to digest information from at least an oral language understanding module including i) tone or pitch of voice, ii) timing information, iii) utterances, iv) transition words, and v) other human cues signaling a transition of the conversational floor to determine how to proceed with respect to whether to acquire, seize, or relinquish the conversational floor between the user and the VDA.

2. The apparatus of claim 1.

8. 2. The apparatus of claim 1, wherein the CI manager module is configured to exchange inputs and outputs with a natural language generation module and a text-to-speech module to generate the human-like conversational cues utilizing prosodic conversational cues for the flow and exchange of human communication between the user and the VDA.

9. and one or more environmental modules communicatively coupled to the CI manager module, the environmental modules configured to provide information regarding a world context in which the user is interacting, the CI manager module of the VDA configured to use the information to assist in determining that the user is currently distracted and has a reduced ability to process speech from the VDA, and the CI manager module configured to take action to adjust a behavior of the VDA upon determining that the user is distracted.

2. The apparatus of claim 1.

10. Further comprising a natural language generation module, a text-to-speech module, and an automatic voice processing module, The natural language generation module is configured to use prosody including pitch when the text-to-speech module generates speech to the user to enable the CI manager module and the user to establish the conversation grounding through prosody, and the natural language generation module is configured to use the prosody to highlight prosodically marked specific information in the linguistic communication so that the user is aware of an uncertainty state of the specific information through prosodic marking specific information that is uncertain in the linguistic communication, such that the user is aware of an uncertainty state of the specific information; The automatic speech processing module is configured to analyze prosody, including pitch, from the user's speech to enable the CI manager module and the user to establish the conversation grounding through detecting prosodic changes related to specific information in the user's speech.

2. The apparatus of claim 1.

11. 1. A method for understanding and generating human conversation cues, comprising: A conversational intelligence (CI) manager module having a rule-based engine for conversational intelligence for a voice-based digital assistant (VDA) processes information from one or more modules to determine both i) understanding of the human conversational cues and ii) generating human-like conversational cues, including understanding and / or generating backchannels, in human communication flows and exchanges for at least one of: 1) acquiring, seizing, or relinquishing the conversational floor between a user and the VDA; or 2) establishing a conversational grounding without acquiring the conversational floor; and utilizing the rule-based engine, by the CI manager module, to analyze and determine at least prosodic conversational cues in the user's speech stream and generate the backchannel to convey any of i) understanding, ii) correction, iii) acknowledgment, and iv) question of verbal communication conveyed by the user in the speech stream.

12. The CI manager module utilizes a rule based engine to analyze and determine two or more of the following conversational cues: i) non-lexical items, ii) spoken prosody, iii) grammatical completeness of syntax in the user's speech stream, iv) duration of pauses, and v) degree of semantic conditionality of the user's utterance, and after making such determination and analysis, determines whether to generate an utterance to at least one of: 1) prompt for further information from the user, 2) convey the VDA's agreement and understanding that the user continues to have the conversational floor, or 3) indicate that the VDA is seeking to seize the conversational floor, as opposed to simply waiting for a pause of fixed duration and then assuming the user has abandoned the conversational floor. The method of claim 11 further comprising:

13. The method further includes utilizing a prosody analyzer in the CI manager module for prosody analysis of the user's speech, the CI manager module receiving input data for the prosody analysis from an automatic speech processing module, the prosody analyzer first verifying and detecting whether any speech activity is occurring, and then applying the prosody analysis to the user's utterance using the prosody analyzer to determine i) whether the user has actually abandoned the conversation floor, or ii) whether the user has inserted pauses in the speech flow to convey additional information, the additional information being selected from the group consisting of: 1) speaking with pauses to help convey a long list of information; 2) speaking with pauses between two or more user utterances such that the user initially speaks incompletely with a first utterance, followed by a pause, and then a second utterance to complete the thought the user is trying to convey in the speech activity; 3) speaking with pauses to solicit the backchannel from the CI manager module; and 4) any combination of these three. The method of claim 11.

14. The method further includes determining, by the CI manager module, using a conversation grounding detector within the CI manager module, that mutual understanding has not occurred between the user and the VDA, and when the CI manager module determines that mutual understanding has not occurred, the CI manager module, the natural language generation module, and the text-to-speech module are configured to cooperate to emit one or more utterances to re-establish the mutual understanding, and the rule-based engine is configured to use rules to determine that mutual understanding has not occurred between the user and the VDA. The method of claim 11.

15. The method further includes utilizing a disfluency detector in the CI manager module for speech correction relating to disfluency information for i) words and sentences interrupted mid-utterance, and / or ii) various interruptions in non-lexical phonemes uttered while the user is speaking and holding the conversation floor, the CI manager module being configured to: 1) operate in conjunction with an automatic speech processing module to detect the disfluency information in speech within an otherwise fluent speech from the user, and then 2) operate in conjunction with the rule based engine to record the disfluency information and apply rules to i) correct the speech using the disfluency information, or ii) conversationally ground and acknowledge by the user that the system's understanding is correct, or iii) both. The method of claim 11.

16. The invention further includes providing input information by the CI manager module utilizing an oral language understanding module to analyze, in cooperation with the CI manager module, from input data to indicate the user's attitude as conveyed in what the user is saying, i) the user's emotional state during the response, ii) the acoustic tone of the utterance, iii) prosody, iv) any discourse markers, and v) any combination thereof, wherein the CI manager module is configured to take into account the emotional state, the acoustic tone of the utterance, or the discourse markers from the oral language understanding module to determine, and then issue a response or adjust state, and upon issuing the response, use a text-to-speech module to: 1) abandon the conversation floor; 2) seek additional information from the user; or 3) change the dialogue state to change the system response to the user. The method of claim 11.

17. analyzing and tracking at least a dialogue state, including a current topic, for one or more related utterances by a dialogue manager module connected to both an input and an output of said CI manager module; digesting information from the oral language understanding module regarding at least micro-interactions including i) tone or pitch of voice, ii) timing information, iii) speech, iv) transition words, and v) other human cues signaling a transition of the conversation floor, by the CI manager module to determine how to proceed with respect to whether to at least one of acquire, seize, or relinquish the conversation floor between the user and the VDA; The method of claim 11 further comprising:

18. A non-transitory computer-readable medium comprising instructions that, when executed by a computing device having one or more processors, cause the computing device to perform the method of claim 11.

19. 1. An apparatus for understanding and generating human conversational cues, comprising: A conversational intelligence (CI) manager module configured to use rules and parameters related to conversational intelligence for a voice-based digital assistant (VDA), the CI manager module having one or more inputs for receiving information as the parameters from one or more modules to determine both i) understanding the human conversational cues and ii) generating human-like conversational cues, including at least understanding and / or generating backchannels, in human communication flows and exchanges for at least one of: 1) acquiring, stealing, or relinquishing a conversational floor between a user and the VDA; and 2) establishing a conversational grounding without acquiring the conversational floor; The CI manager module is configured to analyze and determine prosodic conversational cues in at least the user's speech stream using reinforcement learning using the rules and the parameters, and when the CI manager module determines to generate the backchannel, the CI manager module is configured to generate a command to emit the backchannel to convey any of: i) understanding, ii) a request for further information, iii) acknowledgment, and iv) a question about verbal communication communicated by the user in the user's speech stream.

20. 20. The apparatus of claim 19, wherein the CI manager module is configured to use reinforcement learning and to use at least a parameter of the user's emotional state as a reward function for the reinforcement learning.

Citation Information

Patent Citations

  • Natural language processor and its method

    JP1995191687A

  • Method, device, and program for voice interaction control

    JP2004325848A

  • Information processing device, information processing method and computer program

    JP2010020273A

  • Voice interaction device and automatic interaction method employing voice interaction device

    JP2018040897A

  • Server, information processing method, network system, and terminal

    JP2018106224A