Systems and methods for managing interactions from multiple speech-enabled applications
First Claim
1. A speech system, comprising:
- a master grammar table having a specific grammar for each control that is registered with the speech system where a control corresponds to an application and where a control is a set of code modules that performs functions, wherein a grammar identifier is associated with each specific grammar and uniquely identifies the particular specific grammar;
an interaction manager that prevents more than one application from interacting at any given time;
a speech server;
a speech application programming interface (API);
a speech engine configured to communicate with the speech server through the speech API;
the interaction manager configured to;
prioritize a plurality of interactions submitted to the speech server by ordering the plurality of interactions into a prioritized interaction list, the interaction list having a front and an end, wherein a first interaction that is closer to the front of the interaction list relative to a second interaction that is closer to the end of the interaction list has a higher priority than the second interaction such that the first interaction having the higher priority is processed before the second interaction having a lower priority;
provide a pre-determined grace period after processing the first interaction and before beginning to process the second interaction, wherein in an event the speech system receives a third interaction chained to the first interaction during the grace period, the speech system is configured to process the third interaction prior to processing the second interaction; and
place a received interaction at the end of the interaction list unless;
in an event the interaction manager detects an indication to elevate the priority of the received interaction, the interaction manager is configured to place the received interaction at the front of the interaction list ahead of other interactions previously placed in the interaction list; and
in an event the interaction manager detects an interruption flag in the received interaction, the interaction manager is configured to place the received interaction at the front of the interaction list; and
the speech server configured to identify a speech-enabled application associated with an interaction at the front of the interaction list by recognizing a specific grammar;
in an event the identified speech-enabled application associated with the interaction at the front of the interaction list is not previously loaded into a memory associated with the speech system, the speech server loads the speech-enabled application into a memory associated with the speech system.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for speech systems that utilize an interaction manager to manage interactions—also known as dialogues—from one or more applications. The interactions are managed properly even if multiple applications use different grammars. The interaction manager maintains an interaction list. An application wishing to utilize the speech system submits one or more interactions to the interaction manager. Interactions are normally processed in the order in which they are received. An exception to this rule is an interaction that is configured by an application to be processed immediately, which causes the interaction manager to place the interaction at the front of the interaction list of interactions. If an application has designated an interaction to interrupt a currently processing interaction, then the newly submitted application will interrupt any interaction currently being processed and, therefore, it will be processed immediately.
-
Citations
13 Claims
-
1. A speech system, comprising:
-
a master grammar table having a specific grammar for each control that is registered with the speech system where a control corresponds to an application and where a control is a set of code modules that performs functions, wherein a grammar identifier is associated with each specific grammar and uniquely identifies the particular specific grammar; an interaction manager that prevents more than one application from interacting at any given time; a speech server; a speech application programming interface (API); a speech engine configured to communicate with the speech server through the speech API; the interaction manager configured to; prioritize a plurality of interactions submitted to the speech server by ordering the plurality of interactions into a prioritized interaction list, the interaction list having a front and an end, wherein a first interaction that is closer to the front of the interaction list relative to a second interaction that is closer to the end of the interaction list has a higher priority than the second interaction such that the first interaction having the higher priority is processed before the second interaction having a lower priority; provide a pre-determined grace period after processing the first interaction and before beginning to process the second interaction, wherein in an event the speech system receives a third interaction chained to the first interaction during the grace period, the speech system is configured to process the third interaction prior to processing the second interaction; and place a received interaction at the end of the interaction list unless;
in an event the interaction manager detects an indication to elevate the priority of the received interaction, the interaction manager is configured to place the received interaction at the front of the interaction list ahead of other interactions previously placed in the interaction list; and
in an event the interaction manager detects an interruption flag in the received interaction, the interaction manager is configured to place the received interaction at the front of the interaction list; andthe speech server configured to identify a speech-enabled application associated with an interaction at the front of the interaction list by recognizing a specific grammar;
in an event the identified speech-enabled application associated with the interaction at the front of the interaction list is not previously loaded into a memory associated with the speech system, the speech server loads the speech-enabled application into a memory associated with the speech system. - View Dependent Claims (2, 3, 4, 5, 11, 12, 13)
-
-
6. A method for processing speech interactions associated with multiple speech-enabled applications as part of a speech system, the method comprising:
-
receiving a first interaction; determining if the first interaction is an interrupting interaction; placing the first interaction in an interaction list having a front and a back and containing from one to several interactions to be processed in order from the front to the back, wherein the first interaction is placed at the back of the interaction list unless the first interaction is an interrupting interaction, in which case the first interaction is placed at the front of the interaction list; processing the first interaction when it is at the front of the list, including identifying one of the speech-enabled applications associated with the first interaction at the front of the list and if the speech-enabled application is not loaded, then loading the speech-enabled application and loading a specific grammar for the speech-enabled application into the speech system, wherein the specific grammar has a grammar identifier associated with the specific grammar and which uniquely identifies the specific grammar, and wherein the grammar identifier is used with the first interaction to identify the specific grammar corresponding to the speech-enabled application; waiting a pre-determined grace period after the first interaction is processed before beginning processing of a second interaction; receiving a third interaction chained to the first interaction; and processing the third interaction prior to processing the second interaction provided that the third interaction is received during the grace period. - View Dependent Claims (7, 8)
-
-
9. One or more computer storage media containing computer executable instructions that, when executed in a speech computer system, perform the following acts:
-
maintaining an interaction list that includes multiple speech interactions; identifying a front of the interaction list and a back of the interaction list, the interactions in the interaction list to be processed in order from front to back; processing a first interaction when the first interaction is located at the front of the interaction list; receiving a second interaction from a second speech-enabled application; determining if the second interaction is an interrupting interaction; if the second interaction is not an interrupting interaction, placing the second interaction at the back of the interaction list; if the second interaction is an interrupting interaction, placing the second interaction at the front of the interaction list and processing the second interaction; receiving a third interaction from the first speech-enabled application; if the third interaction is received during a pre-determined grace period after processing of the first interaction, processing the third interaction prior to processing the second interaction; and identifying a speech-enabled application associated with each interaction at the front of the interaction list by using a grammar identifier that identifies the speech-enabled application and corresponding application grammar, and if the associated speech-enabled application is not loaded, then loading the speech-enabled application and loading a specific application grammar for the speech-enabled application into a master grammar table of the speech computer system. - View Dependent Claims (10)
-
Specification