the phrase: “I'd like to fly to Miami from Chicago at eight AM on Jan. 1, 1998, in first class.” Only the words necessary to make a reservation on the airline to one of its destinations is included in the system's vocabulary. This invention also provides for the treatment of incomplete utterances, and input ambiguity caused by homonyms or by input errors.
Once a determination is made that the input speech is understood, at least insofar as the system determines the meaning, a situational-coherent response 2-6 is preferably produced to let the customer or user know that his or her input speech has been understood and acted upon. For the example set forth above, the response from a speech synthesis module might be an oral confirmation that the customer's reservation has been accepted, flight arrangements are played back to him, and a reservation confirmation number has been created and enunciated to the caller.
The present invention overcomes a limitation that is currently inherent in all computer-based speech processing systems. Because of finite computational resources, and finite memory capabilities, the present system as well as all prior art systems, contemplate a limited vocabulary of recognizable words.
The recognizable words are determined in advance to have associative relationships between each other. The relationships between these words define for the system a language. The language is therefore a limited number of possible input strings of recognizable words. The invention herein, however, has a finite amount of intelligence by which it can recognize simple sentences formed from a limited number of words that are strung together in random order. Unlike prior art system, this system seeks to clarify incomplete or ambiguous inputs.
What the system does not attempt to recognize and in fact filters out, are certain words that carry no information or have little meaning such as prepositions in spoken text. Words that are not recognized are discarded and not processed. If an utterance is comprised of unrecognizable words, the system cannot produce n intelligible output.
As set forth more fully below, the natural language processing system makes use of three different types of queries to facilitate user interaction and in the process of determining which query the user's utterance corresponds to:
1) intelligent queries, constructed at nodes on incomplete paths by making use of all keywords that lie on that particular path from the root to the lowest node, i.e., the node with the highest level on the aforementioned incomplete path;
2) confirmation queries, prompt a user for a yes or no response to confirm a determination;
3) ordinary queries, which are simple fixed queries such as “Please be more specific in your input. Try again.”
This invention's querying a user for additional input offers a significant performance improvement over prior art speech processing systems.
FIG. 3 shows a tree graph that graphically represents the syntactical relationships between the keywords that comprise the pre-determined, well-defined language that the system can recognize. FIG. 3 also shows the associative array of keywords (identified by reference numeral 3-3) the individual elements of which are enumerated 4-1 through 4-12 inclusive. As set forth below, the detection of the recognizable keywords in an utterance, which can be mapped into the tree graph (70) and that lie on a path formed by a set of edges uniquely and singly linking the root node (3-2) and a leaf node, (i.e., the nodes identified by reference numerals 3-4; 3-6; 3-8; 3-10; 3-12 and nodes that are numbered 4, 11, 19, 15) identifies an utterance formed by the recognized keywords that the system considers to be understood. When an incomplete path is mapped or more than one complete path between the root (3-2) and a leaf (3-4; 3-6; 3-8; 3-10; 3-12) is mapped, the system attempts to resolve the ambiguity and uses probability theory to determine the most likely input utterance. For purposes of this disclosure, a complete path is a path that has a leaf node marked, but may 