A method and apparatus are provided for automatically recognizing words of
spoken speech using a computer-based speech recognition system according
to a dynamic semantic model. In an embodiment, the speech recognition
system recognizes speech and generates one or more word strings, each of
which is a hypothesis of the speech, and creates and stores a probability
value or score for each of the word strings. The word strings are ordered
by probability value. The speech recognition system also creates and
stores, for each of the word strings, one or more keyword-value pairs
that represent semantic elements and semantic values of the semantic
elements for the speech that was spoken. One or more dynamic semantic
rules are defined that specify how a probability value of a word string
should be modified based on information about external conditions, facts,
or the environment of the application in relation to the semantic values
of that word string. A speech recognition application, upon receiving the
keyword-value pairs, instructs the speech recognizer to modify one or
more of the probability values, according to the dynamic semantic rules.
The dynamic semantic rules are applied to the word strings and the
keyword-value pairs. The speech recognizer modifies one or more of the
probability values, re-orders the word strings, and returns control to
the application. As a result, the speech recognizer may adjust
dynamically to a changing likelihood that a speaker uttered a particular
utterance, as the application executes, depending on the context of the
application and the external factors.