A method for automatically recognizing speech matching grammars in audio, comprising: loading, by a processor, a grammar specification defining at least one parameterizable grammar, the at least one parameterizable grammar comprising a plurality of rules; setting, by the processor, an initial state of a grammar processor as a current state, the current state comprising parameters supplied to the rules, wherein each of the rules comprises a corresponding matching condition, the matching conditions having different levels of narrowness, the rules being ordered in accordance with corresponding levels of narrowness; selecting, by the processor, a narrowest rule of the plurality of rules matching the parameters of the current state of the grammar processor as a current rule; wherein the selecting the narrowest rule from the plurality of rules further comprises: iteratively: determining if the matching condition of the current rule is met; in response to determining that the matching condition is met, applying the current rule; and in response to determining that matching condition is not met, setting a next rule of the rules, in order of narrowness, as the current rule; applying, by the processor, the selected rule to the audio and updating the current state; determining, by the processor, whether termination conditions have been met; in response to determining the termination conditions are not met, selecting, by the processor, from the plurality of rules in accordance with parameters of the updated state; and in response to determining the termination conditions are met, outputting, by the processor, a recognizer result of the current state. loading, by a processor, a grammar specification defining at least one parameterizable grammar, the at least one parameterizable grammar comprising a plurality of rules; setting, by the processor, an initial state of a grammar processor as a current state, the current state comprising parameters supplied to the rules, wherein each of the rules comprises a corresponding matching condition, the matching conditions having different levels of narrowness, the rules being ordered in accordance with corresponding levels of narrowness; selecting, by the processor, a narrowest rule of the plurality of rules matching the parameters of the current state of the grammar processor as a current rule; wherein the selecting the narrowest rule from the plurality of rules further comprises: iteratively: determining if the matching condition of the current rule is met; in response to determining that the matching condition is met, applying the current rule; and in response to determining that matching condition is not met, setting a next rule of the rules, in order of narrowness, as the current rule; determining if the matching condition of the current rule is met; in response to determining that the matching condition is met, applying the current rule; and in response to determining that matching condition is not met, setting a next rule of the rules, in order of narrowness, as the current rule; applying, by the processor, the selected rule to the audio and updating the current state; determining, by the processor, whether termination conditions have been met; in response to determining the termination conditions are not met, selecting, by the processor, from the plurality of rules in accordance with parameters of the updated state; and in response to determining the termination conditions are met, outputting, by the processor, a recognizer result of the current state.