# Patent

## Title
System and method for analysis and adjustment of speech-enabled systems

## Abstract

A method for analyzing and adjusting the performance of a speech-enabled application includes selecting a number of user utterances that were previously received by the speech-enabled application. The speech-enabled application receives such user utterances and associates each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object. The method further includes associating one of a number of action-objects with each of the selected user utterances. Furthermore, for each action-object, the percentage of the utterances associated with the action-object that include at least one of the salient terms associated with the action-object is determined. If the percentage does not exceed a selected threshold, the method also includes adjusting the one or more salient terms associated with the action-object.

## Background
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to speech-enabled systems and, more particularly, to a system and method for analysis and adjustment of speech-enabled systems.
BACKGROUND OF THE INVENTION
Developments in speech recognition technologies support more natural language interaction between services, systems and customers than previously supported. One of the most promising applications of speech recognition technology, Automatic Call Routing (ACR), seeks to determine why a customer has called a service center and to route the customer to an appropriate service agent for customer request servicing. Speech recognition technology generally allows an ACR application to recognize natural language statements from the customer, thus minimizing reliance on conventional menu systems. This permits a customer to state the purpose of their call “in their own words”.
In order for an ACR application to properly route calls, the ACR generally must interpret the intent of the customer, identify the type or category of customer call, and identify the correct routing destination for the call type. An ACR application may attempt to match one or words in a statement by a customer to a particular pre-defined action to be taken by the ACR application. The techniques used to defined such actions and to associate particular words spoken by the customer with such actions affect the performance of the ACR application.
SUMMARY OF THE INVENTION
In accordance with a particular embodiment of the present invention, a method for analyzing and adjusting the performance of a speech-enabled application includes selecting a number of user utterances that were previously received by the speech-enabled application. The speech-enabled application receives such user utterances and associates each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object. The method further includes associating one of a number of action-objects with each of the selected user utterances. Furthermore, for each action-object, the percentage of the utterances associated with the action-object that include at least one of the salient terms associated with the action-object is determined. If the percentage does not exceed a selected threshold, the method also includes adjusting the one or more salient terms associated with the action-object.
Technical advantages of particular embodiments of the present invention include a method and system for analysis and adjustment of speech-enabled systems that improves the operation of such systems. For example, particular embodiments may evaluate the words used by a speech-enabled system (such as a service center with an ACR) to match a statement received from a user of the system with an appropriate action to take on behalf of the user. Furthermore, based on the determined effectiveness of the evaluated words, certain embodiments can adjust these words used by the speech-enabled system to enhance performance of the application and to better achieve the result desired by the user.
Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some or none of the enumerated advantages.



BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
FIG. 1 is a block diagram depicting an example embodiment of a service center system according to one embodiment of the present invention;
FIG. 2 is a flow diagram depicting an example automatic call routing method according to one embodiment of the present invention;
FIG. 3 is a diagram depicting an example embodiment of an automatic call router action-object matrix according to one embodiment of the present invention;
FIG. 4 is a graph showing an example relationship between a match rate for matching user utterances with salient terms and a performance rate for correctly directing a user to the appropriate destination of a service center; and
FIG. 5 is a flow diagram depicting an example method for analyzing and adjusting the performance of a speech-enabled application according to one embodiment of the present invention.



DETAILED DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram depicting an example embodiment of a service center system 100 according to one embodiment of the present invention. System 100 enables users to conduct transactions via a service center 102. For example, as referred to herein, service center 102 may be a customer service call center for a telephone services company. However, as described below, the present invention may be used in conjunction with any other types of call centers, as well as with any systems that use speech recognition to perform an action or otherwise facilitate an action in response to speech input of a user. As used herein, the term “transaction” or it variants refers to any action that a user desires to perform in conjunction with or have performed by service center 102.
The example service center 102 includes one or more computing apparatuses 104 that are operably coupled to one or more transaction processing service solutions 106. Included in computing apparatus 104 is a processor 108. Operably coupled to processor 108 of computing apparatus 104 is a memory 110. Computing apparatus 104 employs processor 108 and memory 110 to execute and store, respectively, one or more instructions of a program of instructions (i.e., software).
Also included in computing apparatus 104 is communication interface 112. Communication interface 112 is preferably operable to couple computing apparatus 104 and/or service center 102 to an internal and/or external communication network 114. Communication network 114 may be the public-switched telephone network (PSTN), a cable network, an internet protocol (IP) network, a wireless network, a hybrid cable/PSTN network, a hybrid IP/PSTN network, a hybrid wireless/PSTN network, the Internet, and/or any other suitable communication network or combination of communication networks.
Communication interface 112 preferably cooperates with communication network 114 and one or more user communication devices 116 to permit a user associated with each user communication device 116 to conduct transactions via service center 102. User communication device 116 may be a wireless or wireline telephone, dial-up modem, cable modem, DSL modem, phone sets, fax equipment, answering machines, set-top boxes, televisions, POS (point-of-sale) equipment, PBX (private branch exchange) systems, personal computers, laptop computers, personal digital assistants (PDAs), other nascent technologies, or any other appropriate type or combination of communication equipment available to a user. Communication device 116 may be equipped for connectivity to communication network 114 via a PSTN, DSL, cable network, wireless network, or any other appropriate communications channel.
In operation, service center 102 permits a user to request, using speech, processing or performance of one or more transactions by service solutions 106. To enable such processing, computing apparatus 104 may include or have access to one or more storage devices 118 including one or more programs of instructions operable to interpret user intent from the user's speech, identify a solution sought by the user, and route the user to an appropriate service solution 106.
To aid in the interpretation, identification and routing operations of service center 102, storage 118 includes an action-object matrix 120, a look-up table 122, utterance storage 124, a prompt library 126, one or more speech recognition modules (such as a statistical language modeling engine 128), and a dialog module 129. Furthermore, to analyze the performance of statistical language modeling engine 128 and the action-objects in action-object matrix 120, storage 118 also includes an utterance transcription module 144, transcribed utterance storage 146, and a salient coverage analysis module 148. Additional detail regarding the operation and cooperation of the various components included in storage 118 will be discussed in greater detail below.
In the illustrated embodiment, computing apparatus 104 is communicatively coupled to one or more connection switches or redirect devices 130. Connection switch or redirect device 130 enables computing apparatus 104, upon determining an appropriate destination for the processing of a user-selected transaction, to route the user via communication network 132 and, optionally, one or more switches 134, to an appropriate service agent or module of service solutions 106.
Service solutions 106 preferably include a plurality of service agents or modules operable to perform one or more operations in association with the processing of a selected user transaction. For example, if service center 102 is a telephone services call center, service solutions 106 may include one or more service agents or modules operable to perform billing service solutions 136, repair service solutions 138, options service solutions 140, how-to-use service solutions 142, as well as any other appropriate service solutions. The service agents or modules implemented in or associated with service solutions 106 may include, but are not limited to, automated or self-service data processing apparatuses, live technician support (human support), or combinations thereof.
FIG. 2 illustrates an example method 150 for a speech-enabled call routing using an action-object matrix according to one embodiment of the present invention. Method 150 of FIG. 2 may be implemented in one or more computing apparatuses 104 of one or more service centers 102. As such the method will be described with reference to the operation of service center 102 of FIG. 1.
Upon initialization of service center 102 at step 152, method 150 proceeds to step 154 where service center 102 provides for and awaits an incoming communication from a user communication device 116 via communication network 114. However, a user may connect with service center 102 in any other suitable manner.
Upon detection of an incoming contact at step 154, method 150 preferably proceeds to step 156 where a communication connection with the user communication device 116 is established. As suggested above, establishing a communication connection with an incoming contact from a user at step 156 may include, but is not limited to, receiving a user phone call via a PSTN or other wireline network, a wireless network, or any of numerous other communication networks.
Once a communication connection has been established at step 156, method 150 proceeds to step 158 where one or more prompts are communicated to the user of user communication device 116. In particular embodiments, the communication of one or more prompts is aimed at eliciting a request from the user for the processing of one or more transactions or operations. For example, at step 158, computing apparatus 104 may access prompt library 126 of storage 118 to generate a user transaction selection prompt such as, “Thank you for calling our service center. Please tell me how we may help you today.” Furthermore, any other suitable prompts designed to elicit a response from the user regarding a transaction that the user desires to be performed may be used.
At step 160 of method 150, service center 102 awaits a user response to the communicated prompt. Upon detection of a user response at step 160, method 150 preferably proceeds to 162 where a natural language response (a user “utterance”) from the user responsive to the communicated prompt is preferably received. Receipt of an utturance from a user may include storage of the user's utterance in utterance storage 124 of computing apparatus storage 118. Permanent or temporary storage of a user utterance may enable and/or simplify the performance of speech recognition analysis thereon and may provide for analysis of the performance of service center 102, as described in greater detail below.
Following receipt of a user utterance at step 162, method 150 proceeds to step 164 where the user utterance is evaluated to interpret or identify an intent of the user and a requested transaction to be performed. In particular embodiments, evaluation of a user utterance at step 164 may include the use of one or more speech recognition technologies, such as that available from statistical language modeling engine 128 of computing apparatus 104. As suggested above, statistical language modeling engine 128 may cooperate with utterance storage 124 in the evaluation of the user utterance.
Statistical language modeling engine 128 may evaluate the user utterance received at step 162 in cooperation with action-object matrix 120, which defines a number of different action-objects (and which is described in greater detail below in conjunction with FIG. 3). In the evaluation of a user utterance at step 164, the speech recognition technology preferably employed by computing apparatus 104 seeks to identify an action, an object or an action-object combination from the user utterance. By creating a finite number of transaction options (i.e., action-objects) via action-object matrix 120, proper routing of a user to a service agent or module 136, 138, 140 or 142, may be accomplished with improved efficiency (for example, substantially eliminating user routing errors and, therefore, user re-routing).
Each action-object in action-object matrix 120 defines a particular action to be taken and an object that is the subject of the action (in other words, a transaction to be performed). For example, the action-object “pay/bill” defines an action “pay” to be carried out on an object “bill.” As described below, the assignment of an action-object to a user utterance enables efficient routing of the user to enable performance of a desired transaction.
To assist in assigning a particular action-object to a user utterance, statistical language modeling engine 128 may store and associate one or more salient action terms and one or more salient object terms with each action-object. The statistical language modeling engine 128 can then search for these salient terms in a user utterance to assign the user utterance to a particular action-object. The salient terms may be the actual action and object of the action-object and/or the salient terms may be different from the action and object. For example, the action-object “pay/bill” may be associated with the salient action term “pay” and the salient object term “bill.” In addition, the “pay/bill” action-object may be associated with the salient object terms “account” and “invoice.” Therefore, any user utterance including the term “pay” and at least one of the terms “bill,” “account” or “invoice” would preferably be associated with the “pay/bill” action-object. Multiple salient action terms could also or alternatively be associated with this action-object. At least a portion of the user utterance evaluation performed at step 164 preferably includes determining whether the user utterance includes a salient action term, a salient object term, or both a salient action term and a salient object term.
If it is determined that the user utterance contains only a salient action term(s) 168, method 150 proceeds to step 176 where one or more additional prompts may be communicated to the user by dialog module 129 or any other suitable component. The prompts presented at step 176 are preferably designed to elicit the selection of an object (via a salient object term) in a subsequent user utterance. For example, referring to the action-object matrix depicted in FIG. 3, it may have been determined from the initial user utterance that the user desires to “inquire” about something. Having identified that the user wishes to make an “inquiry” (the action), computing apparatus 104 may cooperate with dialog module 129, prompt library 126 and action-object matrix 120 to prompt the user for selection of an object associated with the “inquire” action. As illustrated in FIG. 3, examples of objects associated with the “inquire” action include, in one embodiment, optional services, basic service, billing, cancellation, repair, payment, specials, and name and number. It should be understood that the action-object matrix depicted generally in FIG. 3 is included primarily for purposes of illustration. As such, alternate embodiments of an action-object matrix may be implemented without departing from the spirit and scope of teachings of the present invention.
Similarly, if it is determined that the user utterance contains only a salient object term 170, method 150 preferably proceeds to step 178 where one or more prompts designed to elicit the selection of an action (via a salient action term) in a subsequent user utterance. For example, referring again to the action-object matrix generally depicted in FIG. 3, if it is determined from the initial user utterance that the user desires some sort of action associated with a “bill”, computing apparatus 104 may cooperate with dialog module 129, action-object matrix 120 and prompt library 126 to generate one or more prompts directed to eliciting user selection of an “action” associated with the bill “object”. As shown in FIG. 3, examples of actions associated with a “bill” object may include, in one embodiment, inquiry, information, fixing or repairing, and paying.
Method 150 may loop through steps 176 or 178 one or more times in an attempt to illicit an appropriate salient action term or an appropriate salient object term, respectively, for any desired number of loops. If evaluation of the user utterances does not lead to the utterance of a salient action term 168 nor a salient object term 170 after a predetermined number of loops, if neither a salient action term 168 or a salient object term 170 are identified (an “other” utterance 174), or if salient action terms 168 and/or salient object terms 170 associated with multiple action-objects are identified, then method 150 proceeds to step 180 where a disambiguation dialogue may be initiated and performed by dialog module 129. In such an event, method 150 preferably provides for additional appropriate dialogue to be performed with the user in an effort to elicit a usable “action-object” combination from the user (for example, asking the user to be more specific in his or her request).
Following prompting for an “object” at step 176, prompting for an “action” at step 178, or initiation and performance of disambiguation dialogue at 180, method 150 preferably returns to step 160 where a response may be awaited as described above. Method 150 then preferably proceeds through the operations at steps 162 and 164 until an “action-object” combination 172 has been elicited from the user in a user utterance. An escape sequence may also be included in method 150 where it has been determined that a user requires human assistance, for example.
After identification of an “action-object” combination 172 (either from the initial utterance or from the repeated prompting described above), method 150 preferably proceeds to step 182. At step 182, computing apparatus 104 preferably cooperates with action-object matrix 120 and look-up table 122 to identify a preferred or proper routing destination for processing the user-selected transaction. As suggested above, the routing destinations identified at step 182 may include routing destinations associated with the service agents or modules available in service solutions 106. As mentioned above, service agents or modules 136, 138, 140 and 142 may include automated transaction processing available via computing apparatus 104 or a similar device, live support, or combinations thereof, as well as other suitable transaction processing options.
Following identification of a preferred or proper routing destination at step 182, method 150 preferably proceeds to step 184 where the user connection is preferably routed to the appropriate destination indicated in look-up table 122. Following the routing of the user connection, method 150 preferably proceeds to step 186 where one or more aspects of the user utterance or utterances are optionally forwarded to the service agent or module destination to which the caller and/or user connection is routed. For example, in particular embodiments, method 150 provides for the identified action-object to be forwarded to the service agent associated with the selected routing destination. In yet other embodiments, no information is forwarded and the user is simply routed to the appropriate destination. Following the routing of the user connection (and any forwarding of information), method 150 preferably returns to step 154 where another user connection is awaited.
It should be understood that some of the steps illustrated in FIG. 2 may be combined, modified or deleted where appropriate, and additional steps may also be added to the method. Additionally, as indicated above, the steps may be performed in any suitable order without departing from the scope of the present invention.
Referring again to FIG. 3, an action-object matrix 120 according to one embodiment of the present invention is shown. The example action-object matrix 120 shown in FIG. 3 includes a number of columns of actions 202 and a number of rows of objects 204. The intersection of an action column with an object row generally defines an action-object pair identifying a transaction available via service center 102 (for example, using one or more service modules or agents 136, 138, 140 and 142).
As described above, action-object matrix 120 is used in association with other components of service center 102 to interpret user intent and identify a desired transaction from a user utterance. For example, using actions 202 and objects 204 of action-object matrix 120, in conjunction with the method 150 described above, a user utterance such as “How much do I owe on my bill?” may be evaluated to relate to the action-object “inquire/bill” 206. In a further example, the user utterance, “I have a problem with a charge on my bill” may be associated with the action-object “fix-repair/bill” 208. In still another example, the user utterance, “Where can I go to pay my phone bill?” may be associated with the action-object “where/payment” 210. In yet another example, the user utterance, “How do I set up Call Forwarding?” may be associated with the action-object “how-to-use/option” services 212. In a further example, the user utterance, “I'd like to get CallNotes” may be associated with the action-object “acquire/optional services” 214.
As mentioned above, service center 102 uses one or more salient action terms and one or more salient object terms associated with each action-object to associate a user utterance with the action-object. The salient terms may be stored in association with action-object matrix 120 or elsewhere in service center 102 (or at a location remote to service center 102). If stored in association with action-object matrix 120, the salient terms may be linked to particular action-objects, to particular actions (for salient action terms), or to particular objects (for salient object terms).
After an action-object has been identified through the user of action-object matrix 120 and other components of service center 102, look-up table 122 is used to identify the routing destination associated with an identified action-object. For example, upon identifying action-object “inquire/bill” 206 from a user utterance, computing apparatus 104 may utilize action-object matrix 120 and look-up table 122 to determine that the appropriate routing destination for the “inquire/bill” action-object 206 is “Bill” service agent or module 136. In another example, upon identifying action-object “fix-repair/bill” 208 from a user utterance, computing apparatus 104 cooperating with action-object matrix storage 120 and look-up table 122 may determine that an appropriate routing destination for the user connection includes “Repair” service agent or module 138. Additional implementations of associating a look-up table with an action-object matrix may be utilized without departing from the spirit and scope of teachings of the present invention.
FIG. 4 illustrates a graph 300 showing an example relationship between a match rate for matching user utterances with salient terms and a performance rate for correctly directing a user to the appropriate destination of a service center. As described above, user utterances may be associated with a particular action-object by matching particular words in the user utterance with one or more salient action terms and one or more salient objects terms. The way in which salient terms are associated with particular action-objects will often have a significant effect on the performance of a service center. For example, the more salient terms that are associated with an action-object, the more chance that a user desiring to perform a transaction associated with that action-object will speak at least one of the associated salient action terms and at least one the associated salient objects terms (referred to herein as the “match rate”).
However, the more salient terms that are associated with a particular action-object, the more potential for overlap of salient terms associated with different action-objects. Such overlap can cause user utterances to be associated with the wrong action-object and thus cause the user to be directed to the wrong destination. In other words, the “performance rate” is lowered. On the other hand, if a small number of salient terms are associated with an action-object (for example, one salient action term and one salient object term), the match rate may be low, but the performance rate when there is a salient term match will be high.
Graph 300 illustrated in FIG. 4 illustrates this relationship between the salient term match rate 302 and the performance rate 304. As described above, the match rate 302 increases (as measured by the percentage 306 of matches of words in user utterances with salient terms of an action-object) as the number of salient terms 308 per action-object increases. Conversely, the performance rate 304 decreases (as measured by the percentage 306 of user connections that are assigned to the correct action-object) as the number of salient terms 308 per action-object increases. The intersection point 310 of the match rate curve 302 and the performance rate curve 304 may be a point of optimal performance of the service center in many cases. Therefore, it may be desirable to determine the percentage 312 at which the intersection point occurs and adjust the assignment of salient words to an action-object using this percentage 312 as a goal. As described below, embodiments of the present invention may be used to adjust the assignment of salient words to action-objects in this manner.
In addition to the number of salient terms that are associated with an action-object, the “quality” of the particular terms used also obviously affects the match rate and the performance rate. For example, a “pay/account” action-object may be created in a call center and may be initially associated with the salient action term “pay” and the salient object term “account.” However, if most users refer to a “bill” instead of an “account,” then the associated salient object term should be changed. As described in the following method, embodiments of the present invention may be used to tune the performance of a service center by adjusting the number and/or quality of salient terms associated with the action-objects used by the service center.
FIG. 5 illustrates a flow diagram depicting an example method 400 for analysis and adjustment of a speech-enabled system according to one embodiment of the present invention. Some or all of method 400 may be implemented in one or more computing apparatuses 104 of one or more service centers 102, may be implemented manually, or may be implemented through any combination of the two. Upon initialization at step 402, method 400 proceeds to step 404 where a selected number of samples of actual user utterances are collected. For example, a selected number of utterances (for example, all utterances received in response to the initial prompt from service center 102 during a particular week of operation of service center 102 or the last one thousand utterances received by service center 102) may be retrieved from utterance storage 124 of service center 102. At step 406, the selected utterances may be transcribed into text for analysis. This transcription may be performed manually, automatically, or using a combination of both. For example, utterance transcription module 144 (which may comprise a speech-to-text engine) of service center 102 may be used. The transcribed utterances may be stored in transcribed utterance storage 146 of service center 102 or in any other suitable location.
At step 408, a particular action-object (for example, from action-object matrix 120) is associated with each transcribed utterance. For example, a person can manually view the transcribed utterances and associate an appropriate action-object with each utterance. Alternatively, service center 102 can store a record of the action-object that was ultimately associated with the utterance when the user connected with service center 102 (for example, either directly after the utterance was made or after further dialog with the user making the utterance using dialog module 129). At step 410, a table may then be generated that includes each transcribed utterance and the associated action-object, and the table can be sorted by action-object. This table may be stored in transcribed utterance storage 146 or in any other suitable location.
Method 400 continues at step 412 where a particular action-object, and the utterances associated with the action-object, are selected to be analyzed. At step 414, the number of these selected utterances that contain at least one salient action term associated with the selected action-object is determined. For example, salient coverage analysis module 148 of service center 102 may access the salient action term(s) that are associated with the selected action-object and stored in service center 102 and may search (for example, a text search of transcribed utterances) for the salient action term(s) associated with the action-object being analyzed. For each utterance that is found to include a salient action term, a salient action term counter in salient coverage analysis module 148 or elsewhere is incremented by one. Similarly at step 416, the number of the utterances associated with the selected action-object that contain at least one salient object term associated with the selected action-object is determined. This step may be performed using the same technique used to determine the number of utterances that contain at least one salient action term. As with that technique, a separate counter may be incremented for each utterance containing a salient object term.
After analyzing all the utterances associated with the selected action-object, at step 418 salient coverage analysis module 148 (or any other suitable component or person) determines a match rate for the action and for the object of the selected action-object. The match rate for the action is determined by dividing the number of utterances containing a salient action term (i.e., the value of the counter) by the total number of utterances associated with the selected action-object. Similarly, the match rate for the object is determined by dividing the number of utterances containing a salient object term (i.e., the value of the counter) by the total number of utterances associated with the selected action-object. The match rate for the action and for the object each may be expressed as a percentage. For example, if seventy utterances out of a total of one hundred utterances associated with the selected action-object include a salient action term, the action match rate will be 0.70 or 70%.
At step 420, the action match rate and the object match rate are each compared to a match rate threshold (the same or a different threshold may be used for each). The threshold may vary depending on the particular application for which the action-objects are being implemented. In particular embodiments, the match rate threshold is the percentage 312 at which the match rate curve 302 and performance rate curve 304 for the particular application cross (as illustrated in FIG. 4). This percentage may only be able to be estimated and not precisely calculated in many cases. Any other appropriate percentage may alternatively be used for the match rate threshold.
In particular embodiments, a small number of salient terms (for example, one salient action term and one salient object term) may be initially assigned to an action-object at the beginning of method 400. At step 420, it can then be determined whether this minimum number of salient terms causes the match rate for that action-object to exceed the selected match rate threshold. If both the action match rate and the object match rate exceed the threshold, then method 400 proceeds to step 422 where it is determined whether additional action-objects remain to be analyzed. If some remain, the method returns to step 412. If none remain, method 400 ends. Method 400 may be repeated as often as desired to analyze and/or adjust the salient terms associated with the various action-objects used in a service center.
Although in some cases the use of a small number of initially assigned salient terms may cause the match rate threshold to be exceeded and thus require no adjustment of the salient terms assigned to the action-object, in other cases more salient terms will need to be added (or the existing salient terms will need to be replaced) to exceed the threshold. If it is determined at step 420 that the action match rate and/or the object match rate do not exceed the associated threshold, then method 400 proceeds to step 424 where a count is made of the different words used in the utterances associated with the action-object being analyzed. This count may be performed manually or automatically (for example, by salient coverage analysis module 148). In particular embodiments, certain words or types of words may be ignored in such a count (for example, prepositions, conjunctions, articles, pronouns, etc.).
This word count may then be used at step 426 to determine how to adjust the salient action terms and/or the salient object terms associated with the action-object being analyzed. This adjustment may include adding one or more salient terms and/or removing one or more salient terms. The determination of which salient terms to adjust may be performed manually after reviewing the word counts, although in some embodiments the determination may be performed automatically using appropriate computer software or firmware embodied in a computer-readable medium (such as software included as part of salient coverage analysis module 148). For example, software may be used that analyzes the occurrence of words in the user utterances and that suggests or implements new salient terms to associate with the action-object based on a high number of occurrences of the terms. Furthermore, the software could also suggest the disassociation of particular salient terms based on a low number of occurrences.
As an example of step 426, suppose that an example word count of one hundred utterances associated with a “pay/account” action-object indicates that the most frequently used action terms are “pay” (75 occurrences) and “settle” (10 occurrences) (with all other object terms having a lower number of occurrences). Furthermore, in the same example, suppose that the word count indicates that the most frequently used object terms are “bill” (55 occurrences), “invoice” (25 occurrences), and “account” (10 occurrences) (with all other action terms having a lower number of occurrences). If the initial salient action term was “pay,” then the word count results indicate that this is the best (most often used) salient action term. This example will also assume that this 75% match rate (75 occurrences out of 100 utterances) for the salient action term “pay” meets an example 70% action match rate threshold at step 420. Therefore, no adjustment is needed for the salient action term. However, if the action match rate threshold were even higher, then “settle” could be added as a salient action term.
Furthermore, this example will assume that the initial salient object term for the “pay/account” action-object was “account” and that the object match rate threshold was also 70%. In this case, the object match rate would be 10% and thus not meet the object match rate threshold. Therefore, at step 426, a determination is made to adjust the salient object term for this action-object. In particular embodiments, the salient object term(s) for the action-object are adjusted so that the object match rate threshold is exceeded using the minimum number of salient object terms. In this example, a determination would be made that using the salient object terms “bill” and “invoice” (and not the term “account”) will cause the threshold to be exceeded.
Therefore, at step 428, the salient object terms for the example “pay/account” action-object would be adjusted by adding the salient object terms “bill” and “invoice” and by removing the salient object term “account” (since the 10% that this term adds to the match rate is unnecessary to exceed the threshold. In other examples, the initially assigned salient terms may be kept while new salient terms are added. Furthermore, in some cases both the salient object terms and the salient action terms will need to be adjusted. After any appropriate adjustments are complete, method 400 proceeds to step 422, as described above.
It should be understood that some of the steps illustrated in FIG. 5 may be combined, modified or deleted where appropriate, and additional steps may also be added to the method. Additionally, as indicated above, the steps may be performed in any suitable order without departing from the scope of the present invention. Method 400 may be repeated as often as desired during the operation of a service center or other speech-enabled application to which the method might apply. For example, a particular sample of utterances might not be representative of typical user utterances and thus repeating method 400 periodically may be beneficial. Alternatively, user utterances may change over time as users become experienced with a service center or other application (and/or as the prompts used in the system change), and thus periodic updating of salient terms would be beneficial.
Although the present invention has been described in detail with reference to particular embodiments, it should be understood that various other changes, substitutions, and alterations may be made hereto without departing from the spirit and scope of the present invention. For example, although the present invention has been described with reference to a number of components included within service center 102, other and different components may be utilized to accommodate particular needs. The present invention contemplates great flexibility in the arrangement of these elements as well as their internal components. Moreover, speech-enabled applications or systems other than service centers may also be used in conjunction with embodiments of the present invention.
Furthermore, numerous other changes, substitutions, variations, alterations and modifications may be ascertained by those skilled in the art and it is intended that the present invention encompass all such changes, substitutions, variations, alterations and modifications as falling within the spirit and scope of the appended claims. Moreover, the present invention is not intended to be limited in any way by any statement in the specification that is not otherwise reflected in the claims.

## Claims

1. A method for analyzing and adjusting the performance of a speech-enabled application, the speech-enabled application receiving user utterances and associating each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object, comprising:
selecting a plurality of user utterances that were previously received by the speech-enabled application;
associating one of a plurality of action-objects with each of the selected user utterances;
for each action-object, determining a first percentage of the utterances associated with the action-object that include at least one of the salient action terms associated with the action-object and a second percentage of the utterances associated with the action-object that include at least one of the salient object terms associated with the action-object; and
if the first percentage does not exceed a selected threshold, adjusting the one or more salient action terms associated with the action-object; and
if the second percentage does not exceed a selected threshold, adjusting the one or more salient object terms associated with the action-object.

2. The method of claim 1, wherein selecting a plurality of user utterances that were previously received by the speech-enabled application comprises selecting all user utterances that were received by the speech-enabled application during a selected period of time.

3. The method of claim 1, wherein selecting a plurality of user utterances that were previously received by the speech-enabled application comprises selecting the last X user utterances received by the speech-enabled application, wherein X comprises an integer.

4. The method of claim 1, further comprising transcribing the selected user utterances to allow for text searching for salient terms.

5. The method of claim 1, wherein associating one of a plurality of action-objects with each selected user utterance comprises manually associating an action-object with each user utterance.

6. The method of claim 1, wherein associating one of a plurality of action-objects with each selected user utterance comprises determining the action-object that was ultimately associated with each user utterance when the user utterance was received by the speech-enabled application.

7. The method of claim 1, wherein associating one of a plurality of action-objects with each selected user utterance comprises:
generating a table including the selected user utterances and the action-object associated with each user utterance; and
sorting the table by action-object.

8. The method of claim 1, wherein adjusting the one or more salient action terms associated with the action-object comprises:
determining what words most frequently occur in the user utterances associated with the action-object;
selecting a new salient action term to associate with the action-object based on the determination of the most frequently occurring words.

9. The method of claim 8, further comprising disassociating one or more salient action terms previously associated with the action-object based on the determination of the most frequently occurring words.

10. The method of claim 1, wherein the speech-enabled application comprises a call center.

11. Software for analyzing and adjusting the performance of a speech-enabled application, the speech-enabled application receiving user utterances and associating each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object, the software embodied in computer-readable media and when executed operable to:
receive a selection of a plurality of user utterances that were previously received by the speech-enabled application;
associate one of a plurality of action-objects with each of the selected user utterances;
for each action-object, determine a first percentage of the utterances associated with the action-object that include at least one of the salient action terms associated with the action-object and a second percentage of the utterances associated with the action-object that include at least one of the salient object terms associated with the action-object;
if the first percentage does not exceed a selected threshold, adjust one or more salient action terms associated with the action-object; and
if the second percentage does not exceed a selected threshold, adjust one or more salient object terms associated with the action-object.

12. The software of claim 11, wherein receiving a selection of a plurality of user utterances that were previously received by the speech-enabled application comprises receiving a selection of all user utterances that were received by the speech-enabled application during a selected period of time.

13. The software of claim 11, wherein receiving a selection of user utterances that were previously received by the speech-enabled application comprises receiving a selection of the last X user utterances received by the speech-enabled application, wherein X comprises an integer.

14. The software of claim 11, further operable to transcribe the selected user utterances to allow for text searching for salient terms.

15. The software of claim 11, wherein associating one of a plurality of action-objects with each selected user utterance comprises receiving a manual association of an action-object with each user utterance.

16. The software of claim 11, wherein associating one of a plurality of action-objects with each selected user utterance comprises determining the action-object that was ultimately associated with each user utterance when the user utterance was received by the speech-enabled application.

17. The software of claim 11, wherein associating one of a plurality of action-objects with each selected user utterance comprises:
generating a table including the selected user utterances and the action-object associated with each user utterance; and
sorting the table by action-object.

18. The software of claim 11, further operable to:
determine what words most frequently occur in the user utterances associated with the action-object; and
suggest one or more new salient action or object terms to associate with the action-object based on the determination of the most frequently occurring words.

19. The software of claim 18, further operable to suggest one or more salient action or object terms previously associated with the action-object to disassociate with the action-object based on the determination of the most frequently occurring words.

20. The software of claim 11, wherein adjusting one or more salient action or object terms associated with the action-object comprises receiving instructions from a user of the software and adjusting one or more salient action or object terms associated with the action-object based on the instructions.

21. The software of claim 11, wherein the speech-enabled application comprises a call center.

22. A method for analyzing and adjusting the performance of a speech-enabled call center, the speech-enabled call center receiving user utterances and associating each user utterance with an action-object based on one or more salient action terms and one or more salient object terms in the user utterance that are associated with the action-object, comprising:
selecting a plurality of user utterances that were previously received by the speech-enabled call center;
transcribing the selected user utterances;
associating one of a plurality of action-objects with each of the selected user utterances;
for each action-object, determining a first percentage of the utterances associated with the action-object that include at least one of the salient action terms associated with the action-object and a second percentage of the utterances associated with the action-object that include at least one of the salient object terms associated with the action-object;
if the first percentage does not exceed a selected threshold, adjusting the one or more salient action terms associated with the action-object; and
if the second percentage does not exceed a selected threshold, adjusting the one or more salient object terms associated with the action-object.

23. A method for analyzing and adjusting the performance of a speech-enabled application, the speech-enabled application receiving user utterances and associating each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object, comprising:
selecting a plurality of user utterances that were previously received by the speech-enabled application;
associating one of a plurality of action-objects with each of the selected user utterances;
for each action-object, determining the percentage of the utterances associated with the action-object that include at least one of the salient terms associated with the action-object; and
if the percentage does not exceed a selected threshold, adjusting the one or more salient terms associated with the action-object;
wherein the threshold is selected to maximize both the percentage of utterances associated with an action-object that include at least one of the salient terms associated with the action-object and the accuracy with which the speech-enabled application associates the user utterances with the action-object.

24. Software for analyzing and adjusting the performance of a speech-enabled application, the speech-enabled application receiving user utterances and associating each user utterance with an action-object based on one or more salient terms in the user utterance that are associated with the action-object, the software embodied in computer-readable media and when executed operable to:
receive a selection of a plurality of user utterances that were previously received by the speech-enabled application;
associate one of a plurality of action-objects with each of the selected user utterances;
for each action-object, determine the percentage of the utterances associated with the action-object that include at least one of the salient terms associated with the action-object; and
if the percentage does not exceed a selected threshold, adjust one or more salient terms associated with the action-object;
wherein the threshold is selected to maximize both the percentage of utterances associated with an action-object that include at least one of the salient terms associated with the action-object and the accuracy with which the speech-enabled application associates the user utterances with the action-object.

25. The method of claim 1, wherein adjusting the one or more salient object terms associated with the action-object comprises:
determining what words most frequently occur in the user utterances associated with the action-object;
selecting a new salient object term to associate with the action-object based on the determination of the most frequently occurring words.

26. The method of claim 9, further comprising disassociating one or more salient object terms previously associated with the action-object based on the determination of the most frequently occurring words.