he present invention is to provide a computer-based method and apparatus for understanding natural language input from a user, regardless of the sequence in which words are uttered. This results in a speed up achieved by loosening the rigid constraints of rigorous input language and by better handling input errors.
There is provided herein a method and apparatus for understanding natural language utterances that have been obtained and processed by an input device such as a speech recognition system. To practice the invention, a language must be defined. First, a finite set of key words with possible synonyms and homonyms is specified. A digital representation of each of these recognizable keywords comprising a language is stored within the computer. The defined keyword usages are considered to be the set of possible syntactical relationships between keywords as they might be used to constitute sentences formed by strings of the keywords, i.e. the sentences that can be formed from the keywords.
Input strings of speech are first analyzed to identify recognizable words. Such input preprocessed words are “tokens” or “keyword candidates”. (The recognizable words might be vocabulary words of the pre-specified, well-defined language, or they might not, i.e. they are candidates.) Keyword candidates are then tested to determine if they are words within the vocabulary of words that comprise the language. Keyword candidates that are within the set of defined keywords that comprise the language are identified for additional processing. Keyword candidates that are not within the set of words forming the language are discarded for being unrecognizable and incapable of providing any meaningful information. When a sufficient number of keywords have been collected to form a specified sentence of keywords within the language, a decision is made that the sentence formed by the identified keywords is identified as the sentence the user intended.
FIG. 1 shows a block diagram of a typical prior art speech-recognition system.
FIG. 2 shows a block diagram of a speech-recognition system combined with the invention disclosed herein in a speech synthesis system to form an automated natural-language-based control system.
FIG. 3 shows a graphical representation of the predetermined relationships between recognizable words which form the language and which the system is capable of recognizing.
FIG. 4 shows an array of data elements that comprise the dictionary of keywords of the pre-specified, well-defined language. Each of the data elements points to an element in a linked list.
FIG. 5 shows how the array of data elements shown in FIG. 4 can be stored in the memory of a computer.
FIGS. 6, 7, and 8 show flowcharts depicting the steps of the method of the prefeffed embodiment.
FIG. 9A, 9B and 9C show a source code implementation of data structures used to practice the invention.
The present invention contemplates that input from a user has already been recognized by an input device, such as a speech recognition system. The prior art speech recognition system depicted in FIG. 1 is briefly described herein for purposes of completeness and to facilitate an understanding for the invention described hereinafter.
Referring to FIG. 1, input speech (1-2) is subject to spectral analysis (1-4) the result of which is a numerical representation of frequency components, duration, etc. of speech components all of which is well known in the art. Spectral analysis is a numerical method of analyzing speech, however, other methods that might be accomplished by a digital signal processor, single chip computer, or other appropriate computational device could be used as well. The result of the spectral analysis (1-4) processing is a numerical representation (1-6) of the speech that is pattern matched (1-8) to determine if the processed speech (1-6) is recognizable.
Pattern matching (1-8) essentially compares numerical representations of recognized speech (1-6) to stored numerical representations, or models, (1-8) of words that are to be recognized. If the stored models (1