Patent Description:
In addition to replicating the experience of in-person group conversations, some meeting services or applications also allow recording of the meetings and post-processing of the recorded meetings. For example, some meeting services allow the meeting participants to download the recorded meetings to their local devices. Some meeting services transcribe the recorded meetings into text data.

Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein are practiced.

<CIT> discloses techniques for real-time processing of meeting content data using artificial intelligence. For example, a meeting intelligence apparatus may monitor, collect, and/or analyze all data transmissions during an electronic meeting. The meeting intelligence apparatus may analyze meeting content data using any of a number of tools, such as speech or text recognition, voice or face identification and the like. Based on analyzing the meeting content data and/or in response to requests, for example, from electronic meeting applications, the meeting intelligence apparatus, either alone or in combination with one or more electronic meeting applications, performs any of a number of automated tasks, including performing one or more actions with respect to an electronic meeting, such as creating an electronic meeting, providing a translation, responding to an information request, determining suggested agenda items and suggested meeting participants, or performing various types of real-time processing with respect to an electronic meeting, such as managing the flow of an electronic meeting, processing agenda items, creating actions items, etc..

<CIT> discloses techniques for managing meeting agendas in a meeting or conference via a virtual agenda participant. The system maintains, prior to a communication session, a conference agenda associated with the communication session. During the communication session, the system identifies, via a virtual entity, communication items associated with the communication session to yield identified communication items, wherein the virtual entity dynamically monitors the communication session and processes data associated with the communication session to identify the communication items. The system then compares, via the virtual entity, the conference agenda with the identified communication items to determine which items from the conference agenda have been addressed during the communication session.

The invention is defined by the independent claim. Preferred embodiments are recited in the dependent claims. This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description.

In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not, therefore, to be considered to be limiting in scope, embodiments will be described and explained with additional specificity and details through the use of the accompanying drawings in which:.

Existing meeting services or applications allow recording of the meetings and post-processing of the recorded meetings. However, such meeting services or applications generally are not capable of real-time processing or analyzing the currently received communication data.

The embodiments described herein are related to a conversational artificial intelligence (AI) engine that is implemented at a computing system (e.g., a server) that provides an intelligent meeting service. The intelligent meeting service provides real-time analysis of communication received from the participants' computers and generates real-time feedback to the participants' computers. In some embodiments, based on the analysis, the intelligent meeting service is capable of real-time transcribing the audio content into text data, identifying an agenda item that is the most relevant to the current discussion, and displaying the agenda item at the participants' computers via a user-friendly graphic user interface. In particular, the AI engine performs the real-time processing of the meeting data using machine learning, including (but not limited to) neural networks, logic decision trees, and confidence assessment, improving the functionality of the computing system and providing a technical contribution.

Further, when users participate in an online meeting via an existing meeting service, users often have to open an agenda document in a separate window, and constantly scroll through the agenda document during the meeting to follow the agenda items. When a participant joins a meeting late, or comes back from a break, the participant then has to search the agenda document for the agenda item that is currently being discussed. The intelligent meeting service described herein provides a specific solution to the above described technological problems in computers and prior art meeting services. The specific solution includes real-time identifying an agenda item that is the most relevant to the current communication and causing the agenda item to be displayed at the meeting participant's device via a user-friendly graphic user interface, such that users do not have to navigate through the agenda document constantly and search for and/or memorize the agenda items. The intelligent meeting service described herein allows meeting participants' computers, for the first time, to display and provide instant access to an agenda item that is the most relevant to the current discussion.

Additionally, in some embodiments, the user-friendly graphical user interface described herein also allows users to interact with the displayed agenda items and tasks. For example, a participant is allowed to manually change the automatically identified agenda items or the tasks, and the participant's input can also be used as additional training data for improving the AI engine, which provides an additional technical contribution.

Generally, artificial intelligence (AI) includes using computing systems to solve problems intelligently, including (but not limited to) natural language processing, knowledge representation, automated reasoning, machine learning, computer vision, and/or robotics. Some or all these AI techniques are implemented at the AI engine described herein. In particular, the AI engine is capable of performing natural language processing, using machine-learned models to identify agenda items and other objects based on the raw communication data (e.g., audio data, visual data, etc.). Different machine learning techniques are used to train these machine learned models, such as (but not limited to) automatic speech recognition, different learning decision trees, linear or non-linear regressions and/or classifications, supervised/unsupervised learnings, artificial neural networks, parametric/nonparametric models, support vector machines, and/or ensemble learning. In some embodiments, training data used in training an automatic speech recognition model include speech samples performed by different speakers reading a same passage. In some embodiments, these different speakers include participants from different countries and have different language backgrounds. These speech samples are then fed into a deep neural network to train the speech recognition model. In some embodiments, training data used in training a natural language model or a text language model include different phrases that are tagged as a decision and/or a task. In some embodiments, a learning decision tree is implemented to determine a similarity between current communication with each agenda item.

<FIG> illustrates an environment <NUM> in which a server computing system <NUM> is configured to provide intelligent meeting service to multiple client computing systems <NUM> and <NUM> via a computer network <NUM>. Each of the client computing systems <NUM>, <NUM> corresponds to a meeting participant <NUM>, <NUM>. Hereinafter, the server computing system <NUM> is also referred to as "the server system," and the client computing systems <NUM>, <NUM> are also referred to as "the client systems.

The server system <NUM> includes a meeting server <NUM>, and each of the client systems <NUM>, <NUM> includes a client meeting application <NUM>, <NUM>. The meeting server <NUM> is configured to establish a meeting communication channel that facilitates a meeting among the multiple client systems <NUM>, <NUM> via the client meeting application <NUM>, <NUM>. The client meeting application <NUM>, <NUM> includes a user interface <NUM>, <NUM> configured to allow each participant to interact with the client meeting application <NUM>, <NUM>. In some embodiments, the client meeting application <NUM>, <NUM> is a dedicated meeting application. In some embodiments, the client meeting application <NUM>, <NUM> is a chat or a video call application that allows multiple parties to join a same chat session or a same video call. In yet some embodiments, the client meeting application <NUM>, <NUM> is a browser having an add-on component or be part of the operating system of the client systems <NUM>, <NUM>. In some embodiments, the establishing of the meeting communication channel includes having each participant <NUM>, <NUM> to click a particular URL and/or requiring each participant <NUM>, <NUM> to login to an account associated with the meeting service.

As illustrated, the server system <NUM> also includes an AI engine <NUM> configured to analyze communications transmitted from the multiple client systems <NUM>, <NUM> in substantially real time. After the meeting communication channel is established, the meeting server <NUM> is configured to receive communication from the multiple client systems <NUM>, <NUM>. Currently received communication is then passed to the AI engine <NUM>, which in turn analyzes, in substantially real time, the currently received communication to generate one or more outputs or results. In some embodiments according to the claimed invention, the "currently received communication" is the communication received within a rolling time window up to a current time. In some embodiments, the rolling time window has a predetermined size and a predetermined shift amount. In some embodiments, depending on the computing system's processing capabilities, the rolling time window and the shift amount is adjustable, and each rolling windows is set to overlap or not overlap a previous or a following window. For example, when the predetermined size is <NUM> minute, and a shift amount is <NUM> seconds, the currently received communication is the communication received within <NUM> minute up to the current time. Since the shift amount is <NUM> seconds, each window overlaps with its previous and following window by <NUM> seconds. In some embodiments, the "currently received communication" is a most recently identified sentence that was said by one of the participants <NUM>, <NUM>. In any case, the "currently received communication" is the communication received fairly recently.

The server system <NUM> then causes, in substantially real time, at least one of the client systems to perform one or more actions in response to the one or more results. For example, in some embodiments, the one or more actions include (but are not limited to) displaying an agenda item that is the most relevant to the currently received communication, a list of decisions made during the meeting, a list of tasks assigned to participants during the meeting, and/or adding a task to a task list of a particular participant.

For example, as illustrated, each client system <NUM> also includes a task application <NUM>, <NUM> and/or another communication application <NUM>, <NUM> (e.g., an email application, a text messaging application). Base on the analysis results of the AI engine <NUM>, a new task is added to the task application <NUM>, <NUM> of the corresponding participant <NUM>, <NUM>, and/or a decision made during the meeting is sent to at least one of the participants <NUM>, <NUM> via the communication application <NUM>, <NUM>. Note, even though the task application <NUM>, <NUM> and the communication application <NUM>, <NUM> are shown as being separate from the client meeting application <NUM>, <NUM>, in some embodiments, the task application <NUM>, <NUM> and/or the communication application <NUM>, <NUM> are components of the client meeting application <NUM>, <NUM>.

<FIG> further illustrates an example of an architecture of the server system <NUM> that corresponds to the server system <NUM> of <FIG>. The server system <NUM> includes a meeting server <NUM> (that corresponds to the meeting server <NUM> of <FIG>) and an AI engine <NUM> (that corresponds to the AI engine <NUM> of <FIG>). The meeting server <NUM> is configured to receive communications <NUM> from each of the client systems <NUM>, <NUM> to generate one or more results <NUM>. For example, in some embodiments, the one or more results include (but are not limited to) correlations <NUM> between the current communication and multiple agenda items, a decision <NUM> made during the meeting, a task <NUM> assigned to a participant during the meeting, and/or a current interest level <NUM> of each participant at the meeting.

The communication <NUM> from the client systems <NUM>, <NUM> includes (<NUM>) audio communication <NUM>, (<NUM>) visual communication <NUM>, (<NUM>) audiovisual communication <NUM>, and/or (<NUM>) text communication <NUM>. In some embodiments, the client system <NUM>, <NUM> is also allowed to upload an agenda <NUM> to the meeting server <NUM>. The AI engine <NUM> includes at least one of (<NUM>) an audio data processor <NUM> configured to process audio data associated with the audio communication <NUM> and/or audiovisual communication <NUM>, (<NUM>) a natural language processor <NUM> configured to process text data associated with the text communication <NUM> and/or text data transcribed from the audio communication <NUM> or the audiovisual communication <NUM>, or (<NUM>) a visual data processor <NUM> configured to process visual data associated with the visual communication <NUM> and/or audiovisual communication <NUM>.

In some embodiments, the audio data processor <NUM> includes a transcriber <NUM> configured to transcribe, in substantially real time, audio data associated with the currently received communication into text data. In some embodiments, the transcriber <NUM> is a speech-to-text engine that merely converts audio data into text data. In some embodiments, the transcriber <NUM> is a speech recognition engine that not only converts audio data into text data, but also performs additional text processing. The natural language processor <NUM> is configured to extract one or more textual features from the text data received from text communication <NUM> or transcribed from the audio data associated with the currently received communication. In some embodiments, the transcriber <NUM> and the natural language processor <NUM> is an integrated module configured to perform a combination of functions of the transcriber <NUM> and the natural language processor <NUM>. Alternatively, in some embodiments, the transcriber <NUM> performs some of the text processing, and the natural language processor <NUM> performs additional text processing. The visual data processor <NUM> is configured to extract one or more visual features from the video data associated with the currently received communication.

In some embodiments, the meeting server <NUM> is further configured to receive an agenda <NUM> of the meeting. The meeting agenda <NUM> includes multiple agenda items. The natural language processor <NUM> includes an agenda parser <NUM> configured to analyze text data associated with the agenda <NUM> to extract one or more textual features for each of the agenda items. The natural language processor <NUM> is also configured to analyze text data associated with the current communication to extract one or more features corresponding to the current communication. The natural language processor <NUM> or the agenda parser <NUM> is also configured to determine a correlation between currently received communication with each of the plurality of agenda items based on the textual corresponding to the currently received communication and the textual feature corresponding to each of the agenda items.

Various algorithms are implemented to determine the correlations. For example, in some embodiments, a correlation is a distance between a vector of the textual features extracted from the currently received communication and a vector of the textual features extracted from the agenda item. The closer the determined distance, the more correlated the currently received communication is with the agenda item. Based on the determined correlations between the currently received communication and the multiple agenda items, a particular agenda item that has a highest correlation with the currently received communication can be identified.

In some embodiments, the meeting server <NUM> sends the determined correlations to one or more client systems <NUM>, <NUM> directly. In some embodiments, the server system <NUM> further processes the determined correlations and visualize them. For example, in some embodiments, the server system <NUM> is configured to generate a heatmap or a Venn diagram, representing the correlation between each agenda item and the current communication, and cause the generated heatmap or Venn diagram to be presented at the client system <NUM>, <NUM>.

<FIG> illustrates an example of a user interface 300A of a client meeting application that corresponds to the user interface <NUM>, <NUM> of <FIG>. The user interface 300A includes an agenda area 310A that shows a Venn diagram, indicating the correlation of the currently received communication with each of the plurality of agenda items. The Venn diagram includes multiple circles 312A, 314A, 316A, and 318A. One of the circles 312A represents the currently received communication, and each of the rest of the circles 314A, 316A, 318A represents a separate agenda item, namely, agenda item A, agenda item B, and agenda item C. The amounts of overlap between the circles 312A, 314A, 316A, and 318A represent the correlation between the agenda items and the currently received communication.

As illustrated, the circle 316A (representing agenda item B) has the largest overlap area that overlaps the circle 312A (representing the currently received communication). Thus, the agenda item B is identified to have the highest correlation with the currently received communication.

<FIG> illustrates another example of a user interface 300B of a client meeting application that corresponds to the user interface <NUM>, <NUM> of <FIG>. As illustrated, the user interface 300B also includes an agenda area 310B, and the agenda area 310B shows each of the agenda items as a heatmap. For example, in some embodiments, each agenda item is displayed in a particular color based on the correlation of the currently received communication therewith. For example, in some embodiments, the most relevant agenda item is colored in a first color (e.g., green), and the least relevant agenda item is colored in a second color (e.g., red); or the most relevant agenda item is colored in a darker color, and the least relevant agenda item is colored in a lighter color. In some embodiments, the participants <NUM>, <NUM> are allowed to define their own color themes for the heatmap.

Further, as illustrated in <FIG> and <FIG>, the identified agenda item (e.g., agenda item B) that is the most relevant to the currently received communication is also presented in the user interface 300A or 300B, notifying the participants <NUM>, <NUM> of the current topic that is being discussed. In some embodiments, an input field, such as a thumb up and/or a thumb down icons, is displayed next to the identified agenda item (e.g., agenda item B), and a participant <NUM>, <NUM> can click on the thumb up or thumb down icon to confirm or reject the identified current agenda item. In some embodiments, a drop-down list including other agenda items is presented next to the currently identified agenda item, and a participant <NUM>, <NUM> is allowed to select a different agenda item from the drop-down list. In some embodiments, an input field is a text input field, and a participant <NUM>, <NUM> can freely type in any text to replace the currently identified agenda item. In some embodiments, the user's feedbacks are further used as training data to continue to train the AI model, such that the AI model continuously improves as time goes on, and in a next meeting, more agenda items can be identified correctly.

Alternatively, or in addition, a combination of thumb up/ thumb down icons, a drop-down list, and/or a text field is implemented. For example, after a participant clicks the thumb down icon, another input field, such as a drop-down list including other agenda items, is presented to the participant, allowing the participant to select a different agenda item. In some embodiments, the input field is a text input field that allowing a participant to freely type in any text to replace the currently identified agenda item.

Notably, since the communication is ongoing, and the content of the currently received communication is constantly changing, the heatmap 310B and/or the Venn diagram 310A are dynamic and constantly changing.

Further, in some embodiments, the server system <NUM> causes the multiple agenda items to be displayed at the client systems <NUM>, <NUM> as a list. When the server system <NUM> identifies the particular agenda item that has the highest correlation with the current communication, the server system <NUM> sends the particular agenda item to the client systems <NUM>, <NUM>, causing the particular agenda item to be displayed in a different format on the list. For example, the particular agenda item is displayed in a different size, color, font, and/or be highlighted, moving, and/or flashing.

<FIG> illustrates another example of a user interface 300C of a client meeting application that corresponds to the user interface <NUM>, <NUM> of <FIG>. As illustrated, the user interface 300C includes an agenda area 310C that displays the agenda of the meeting. The agenda includes multiple agenda items (such as, agenda item A, agenda item B, agenda item C). In some cases, each agenda item includes one or more subitems. For example, there are multiple subitems, namely, subitem AA, subitem AB, subitem AC, under the agenda item A.

The AI engine <NUM> and/or the agenda parser <NUM> has identified that agenda item B and its subitem BB are the most relevant items to the currently received communication, and sent the client system <NUM>, <NUM> the identified agenda item B and/or subitem BB. In response to receiving the identified agenda item B and its subitem BB, the client system <NUM>, <NUM> causes the agenda item B and the subitem BB to be displayed in a different format than the rest of the agenda items. As illustrated, the agenda item B and the subitem BB are displayed in a bold and underlined font. Similarly, an input field, such as a thumb up, and/or a thumb down, a drop down list, and/or a text field, is displayed next to the identified agenda item (e.g., subitem BB), and a participant <NUM>, <NUM> enters an input via the input field to accept, reject, and/or modify the identified agenda item.

In some embodiments, the natural language processor <NUM> also includes a task finder <NUM> configured to identify that a task is assigned to a particular participant <NUM>, <NUM> based on the textural features extracted from the text data associated with the currently received communication. The identified task is then sent to at least one of the client systems <NUM>, <NUM> corresponding to the particular participant. In some embodiments, the sending of the task to the client system of the particular participant <NUM>, <NUM> causes the task to be added to a task list of the client system <NUM>, <NUM>.

For example, as illustrated in <FIG>, each client system <NUM>, <NUM> includes a task application <NUM>, <NUM> configured to organize and manage users' tasks. Alternatively, the task application <NUM>, <NUM> is a component of the client meeting application <NUM> or a cloud application that is stored at a cloud service. In either case, in embodiments, when a task for a particular participant <NUM>, <NUM> is identified, the meeting server <NUM> causes the client meeting application <NUM> to add the task to the particular participant's task application <NUM>, <NUM>.

In some embodiments, the natural language processor <NUM> also includes a decision finder <NUM> configured to identify that a decision is made based on the textural features extracted from the text data associated with the currently received communication. In some embodiments, the decision finder <NUM> is configured to append a newly identified decision to a list of decisions that are previously identified during the meeting and send the list of decisions to the client systems <NUM>, <NUM> at the end of the meeting.

<FIG> illustrates another example of a user interface 300D of a client meeting application that corresponds to the client meeting application <NUM>, <NUM> of <FIG>. As illustrated in <FIG>, the user interface 300D includes an area 320D displaying a list of decisions made during the meeting and an area 330D displaying a list of tasks assigned during the meeting. An input field is displayed at the most recently identified decision(e.g., decision C) or task (e.g., task C) to allow participants to confirm, reject, or modify it.

In some embodiments, the AI engine <NUM> is further configured to determine an amount of communication (e.g., time of speaking, number of words spoke) received from each of the client systems <NUM>, <NUM> for each of the agenda items. In some embodiments, the visual data processor includes a facial expression finder <NUM> configured to determine a current facial expression of each participant based on the visual features extracted from the visual data associated with the currently received communication. The facial expressions of each participant is then used to determine the interest level of the participant. In some embodiments, other communication data (such as tone of voice, amount of communication received) is also used in combination with visual data to determine the interest level.

In some embodiments, the AI engine <NUM> is further configured to generate a heatmap representing the amount of communication received from each of the multiple client systems for each of the agenda items. Alternatively, or in addition, the AI engine <NUM> is configured to generate a heatmap representing the current level of interest of each participant. The server system <NUM> then causes the heatmap(s) to be displayed at the client systems <NUM>, <NUM>.

<FIG> illustrates another example of a user interface 300E of a client meeting application that corresponds to the user interface <NUM>, <NUM> of <FIG>. The user interface 300E includes an area 310E displaying a heatmap indicating an interest level and/or communication amount of each participant A-F. In some embodiments, the heatmap 310E indicates an amount of communication that each participant has communicated. In some embodiments, the heatmap 310E indicates an interest level of each participant. In some embodiments, an overall interest level and/or an average communication amount is also generated and displayed in the user interface 300E. As such, the meeting organizers, as well as the participants, can better understand an overall interest of a particular agenda item or a current topic.

In some embodiments, the AI engine <NUM> is further configured to send a notification to a particular client system based on the amount of communication received from the particular client system. For example, when a participant has not been communicating for a predetermined period of time, a notification is generated at the client system corresponding to the participant, prompting the participant to talk more. As another example, when a participant has been having an interest level less than a predetermined threshold for a predetermined period of time, a notification is generated at the client system corresponding to the participant, asking whether the participant has any concern or question.

In some embodiments, the natural language processor <NUM> is further configured to identify that a task is assigned to a particular participant based on the textual features extracted from the text data associated with the received communication. The task is then sent to at least one client system <NUM>, <NUM> corresponding to the particular participant <NUM>, <NUM>. In some embodiments, the sending of the task to the client system <NUM>, <NUM> of the particular participant <NUM>, <NUM> causes the task to be displayed at the client system of the particular participant <NUM>, <NUM> and causes an input field to be displayed next to the displayed task. The input field is configured to (<NUM>) receive a confirmation or rejection from the client system of the particular participant <NUM>, <NUM>, or (<NUM>) receive a manual input modifying the task. In some embodiments, the sending of the task to the client system of the particular participant causes the task to be added to a task list of the client system <NUM>, <NUM>.

In some embodiments, the AI engine <NUM> is further configured to allocate a time period for each of the plurality of the agenda items and track a time spent on each agenda item and a time left in the meeting. In response to determining that a particular agenda item has taken longer than the allocated time period, the computing system is configured to send a notification to at least one of the client systems. In response to receiving the notification, a participant <NUM>, <NUM> is allowed to reallocate a time for the currently discussed agenda item and/or the agenda items that are not yet discussed.

In some embodiments, the real-time analysis of the current meeting communication also includes analyzing the currently received communication against content in previously recorded meetings. For example, in some embodiments, when one of the meeting participants <NUM>, <NUM> asks about a decision that has been made in a previous meeting, the AI engine <NUM> retrieves and send the previous decision to the client systems <NUM>, <NUM>, reminding the participants <NUM>, <NUM> about the previous decision. As another example, when a participant <NUM>, <NUM> asks about a status of a task that is previously assigned to one of the participants <NUM>, <NUM>, the client system of the particular participant is caused to display their task list and show the progress of the task. Furthermore, in some embodiments, the currently received communication is analyzed with the content on the public Internet or a private intranet. For example, when a participant asks a question related to a company policy, the AI engine <NUM> retrieves the relevant section of the company policy from the company's intranet, and causes the relevant section of the company policy to be displayed at the client system of the participant.

Furthermore, in some embodiments, a portion of the tasks handled by the AI engine <NUM> is distributed to each of the client systems <NUM>, <NUM>. For example, in some embodiments, a part of the real-time visual data processing is implemented at each of the client systems <NUM>, <NUM>, and each client system <NUM>, <NUM> includes a custom machine-learning module to identify the particular participant's facial expressions. As another example, the heatmaps and/or Venn diagrams are generated by the client system <NUM>, <NUM> based on the raw data received from the server system <NUM>, and each participant <NUM>, <NUM> is allowed to select what type of diagrams they prefer to see.

The following discussion now refers to a number of methods and method acts that are performed. Although the method acts are discussed in a certain order or illustrated in a flow chart as occurring in a particular order, no particular ordering is required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.

<FIG> illustrates a flowchart of an example method <NUM> for real-time analyzing meeting conversations using conversational artificial intelligence, which is implemented at the server system <NUM> of <FIG>. The method <NUM> includes establishing a meeting communication channel that facilitates a meeting among multiple client systems (act <NUM>). In some embodiments, the method <NUM> also includes receiving an agenda of the meeting having multiple agenda items (act <NUM>). When communication from the plurality of client systems is received (act <NUM>), currently received communication is analyzed, in substantially real time, via an AI engine (act <NUM>). In some embodiments, the currently received communication includes communication received within a predetermined time window ending at a current time, such as <NUM> minute, <NUM> minutes, <NUM> minutes, etc..

In some embodiments, the real-time analysis of the currently received communication includes (but are not limited to) determining a correlation between currently received communication with each agenda item (act <NUM>) and determining a particular agenda item that has a highest correlation with the currently received communication (act <NUM>). In some embodiments, the generating of the one or more results also include generating a Venn diagram and/or a heatmap representing the correlations between the currently received communication with each of the agenda items.

Different methods are used to determine a correlation between the currently received communication and each of the agenda items. In some embodiments, text data associated with each of the agenda items is analyzed by a natural language processor (e.g., natural language processor <NUM>) to extract one or more textual features; and text data associated with the currently received communication is also analyzed by the natural language processor to extract one or more textual features. The textual features corresponding to each of the agenda items are compared with the textual features corresponding to the currently received communication to determine a correlation, and a particular agenda item that has the highest correlation with the currently received communication is then identified.

Alternatively, or in addition, the real-time analysis of the received communication further includes identifying that a decision is made (act <NUM>) and/or identifying that a task is assigned to a particular participant (act <NUM>).

In response to the results of the real-time analysis, at least one of the client systems is caused to perform an action (act <NUM>). In some embodiments, the action includes displaying the particular agenda item, the decision, and/or the task to a corresponding participant (act <NUM>). In some embodiments, the displaying the particular agenda items, decision, and/or the task include displaying a Venn diagram and/or a heatmap, representing the correlation between the currently received communication and each agenda item. In some embodiments, the action includes adding the task to a task list of the client system(act <NUM>).

Finally, because the principles described herein is performed in the context of a computing system (for example, the server system <NUM>, each of the client systems <NUM>-<NUM> is a computing system), some introductory discussion of a computing system will be described with respect to <FIG>.

In some embodiments, computing systems are handheld devices, appliances, laptop computers, desktop computers, mainframes, distributed computing systems, data centers, or even devices that have not conventionally been considered a computing system, such as wearables (e.g., glasses). In this description and in the claims, the term "computing system" is defined broadly as including any device or system (or a combination thereof) that includes at least one physical and tangible processor, and a physical and tangible memory capable of having thereon computer-executable instructions that are executed by a processor. In some embodiments, the memory takes a particular form and depends on the nature and form of the computing system. In some embodiments, a computing system is distributed over a network environment and includes multiple constituent computing systems.

As illustrated in <FIG>, in its most basic configuration, a computing system <NUM> typically includes at least one hardware processing unit <NUM> and memory <NUM>. In some embodiments, the processing unit <NUM> include a general-purpose processor. Alternatively, or in addition, the processing unit <NUM> also includes a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other specialized circuit. The memory <NUM> is a physical system memory, which is volatile, non-volatile, or some combination of the two. The term "memory" is also used herein to refer to non-volatile mass storage such as physical storage media. If the computing system is distributed, the processing, memory and/or storage capability is distributed as well.

The computing system <NUM> also has thereon multiple structures often referred to as an "executable component". For instance, memory <NUM> of the computing system <NUM> is illustrated as including executable component <NUM>. The term "executable component" is the name for a structure that is well understood to one of ordinary skill in the art in the field of computing as being a structure that can be software, hardware, or a combination thereof. For instance, when implemented in software, one of ordinary skill in the art would understand that the structure of an executable component includes software objects, routines, methods, and so forth, that are executed on the computing system, whether such an executable component exists in the heap of a computing system, or whether the executable component exists on computer-readable storage media.

In such a case, one of ordinary skill in the art will recognize that the structure of the executable component exists on a computer-readable medium such that, when interpreted by one or more processors of a computing system (e.g., by a processor thread), the computing system is caused to perform a function. Such a structure is computer-readable directly by the processors (as is the case if the executable component were binary). Alternatively, the structure is structured to be interpretable and/or compiled (whether in a single stage or in multiple stages) so as to generate such binary that is directly interpretable by the processors. Such an understanding of example structures of an executable component is well within the understanding of one of ordinary skill in the art of computing when using the term "executable component".

The term "executable component" is also well understood by one of ordinary skill as including structures, such as hardcoded or hard-wired logic gates, that are implemented exclusively or near-exclusively in hardware, such as within a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or any other specialized circuit. In this description, when the terms "component", "agent", "manager", "service", "engine", "module", "virtual machine" or the like are used, these terms (whether expressed with or without a modifying clause) are also intended to be synonymous with the term "executable component", and thus also have a structure that is well understood by those of ordinary skill in the art of computing.

In the description above, embodiments are described with reference to acts that are performed by one or more computing systems. For example, in some embodiments, such computer-executable instructions are embodied in one or more computer-readable media that form a computer program product. In some embodiments, if such acts are implemented exclusively or near-exclusively in hardware, such as within an FPGA or an ASIC, some of the computer-executable instructions are hardcoded or hard-wired logic gates. The computer-executable instructions (and the manipulated data) are stored in the memory <NUM> of the computing system <NUM>. In some embodiments, computing system <NUM> also contains communication channels <NUM> that allow the computing system <NUM> to communicate with other computing systems over, for example, network <NUM>.

While not all computing systems require a user interface, in some embodiments, the computing system <NUM> includes a user interface system <NUM> for use in interfacing with a user. In some embodiments, the user interface system <NUM> include output mechanisms 512A as well as input mechanisms 512B. The principles described herein are not limited to the precise output mechanisms 512A or input mechanisms 512B as such will depend on the nature of the device. However, output mechanisms 512A might include, for instance, speakers, displays, tactile output, holograms and so forth. Examples of input mechanisms 512B might include, for instance, microphones, touchscreens, holograms, cameras, keyboards, mouse or other pointer input, sensors of any type, and so forth.

In some cases, embodiments described herein comprise or utilize a special purpose or general-purpose computing system including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Such computer-readable media can be any available media that can be accessed by a general-purpose or special purpose computing system.

Computer-readable storage media includes RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage, or other magnetic storage devices, or any other physical and tangible storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general-purpose or special purpose computing system.

Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general-purpose or special-purpose computing system.

Computer-executable instructions comprise, for example, instructions and data which, when executed at a processor, cause a general-purpose computing system, special purpose computing system, or special purpose processing device to perform a certain function or group of functions. Alternatively or in addition, the computer-executable instructions configure the computing system to perform a certain function or group of functions. In some embodiments, the computer-executable instructions are, for example, binaries or even instructions that undergo some translation (such as compilation) before direct execution by the processors, such as intermediate format instructions such as assembly language, or even source code.

Those skilled in the art will appreciate that the invention can be practiced in network computing environments with many types of computing system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, data centers, wearables (such as glasses) and the like. The invention can also be practiced in distributed system environments where local and remote computing system, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules can be located in both local and remote memory storage devices.

Those skilled in the art will also appreciate that the invention can be practiced in a cloud computing environment. Cloud computing environments can be distributed, although this is not required. When distributed, cloud computing environments can be distributed internationally within an organization and/or have components possessed across multiple organizations.

The previously discussed figures discuss various computing system which corresponds to the computing system <NUM> previously described. The computing systems of the remaining figures include various components or functional blocks that implement the various embodiments disclosed herein. In some embodiments, the various components or functional blocks are implemented on a local computing system, or implemented on a distributed computing system that includes elements resident in the cloud or that implement aspect of cloud computing. The various components or functional blocks are implemented as software, hardware, or a combination of software and hardware. The computing systems of the remaining figures include more or less than the components illustrated in the figures and some of the components can be combined as circumstances warrant. Although not necessarily illustrated, the various components of the computing systems access and/or utilize a processor and memory, such as processor <NUM> and memory <NUM>, as needed to perform their various functions.

Claim 1:
A computing system (<NUM>, <NUM>) that hosts a meeting service having an artificial intelligence, AI, engine (<NUM>, <NUM>) comprising:
one or more processors (<NUM>); and
one or more computer-readable media (<NUM>, <NUM>) having stored thereon computer-executable instructions that are structured such that, when the computer-executable instructions are executed by the one or more processors (<NUM>), the computer-executable instructions configure the computing system (<NUM>, <NUM>) to at least:
establish (<NUM>) a meeting communication channel that facilitates a meeting among a plurality of client systems (<NUM>, <NUM>), each of the client systems corresponds to a meeting participant;
after the meeting is started, receive (<NUM>) communication from the plurality of the client systems (<NUM>, <NUM>);
while the meeting remains active,
analyze (<NUM>) currently received communication by an artificial intelligence, AI, engine (<NUM>, <NUM>), the currently received communication being communication received within a rolling time window up to a current time, the rolling time window having a predetermined size and a predetermined shift amount, wherein the predetermined shift amount defines an overlap of the rolling time window with its previous and its following window and the predetermined shift amount is adjustable depending on the computing system's processing capabilities;
identify (<NUM>) an agenda item that has a highest correlation with the currently received communication (<NUM>) or (<NUM>) a task that is assigned to at least one of the participants (<NUM>, <NUM>) based on the analysis (<NUM>); and
cause (<NUM>), in substantially real time, at least one of the plurality of the client systems (<NUM>, <NUM>) to (<NUM>) display (<NUM>) the agenda item, or (<NUM>) add (<NUM>) the task to a task list.