A method of speech recognition that uses hierarchical data structures that
include a top level grammar and various related subgrammars, such as
word, phone, and state subgrammars. A speech signal is acquired, and a
probabilistic search is performed using the speech signal as an input,
and using the (unexpanded) grammars and subgrammars as possible inputs.
Memory is allocated to a subgrammar when a transition to that subgrammar
is made during the probabilistic search. The subgrammar may then be
expanded and evaluated, and the probability of a match between the speech
signal and an element of the subgrammar for which memory has been
allocated may be computed. Because unexpanded grammars and subgrammars
take up very little memory, this method enables systems to recognize and
process a larger vocabulary that would otherwise be possible. This method
also permits grammars and subgrammars to be added, deleted, or selected
by a remote computer while the speech recognition system is operating,
allowing speech recognition systems to have a nearly unlimited
vocabulary.