The geometric slowdown is going to be largely due to the optional repetitions – it’s the reason they had to be cut from RuleORama. They create a really big search space. JSGF grammars without optional repetitions are also a lot slower than language models, and RuleORama can help with that kind of grammar, but there is little to be done about unbounded repetitions causing slowdowns in a grammar.
OpenEars also has an easy system for creating probabilistic language models instead of grammars (it’s even easier to use than the grammar system). Just check out the sample app or tutorial’s example of creating a language model, or the docs about LanguageModelGenerator’s method:
- (NSError *) generateLanguageModelFromArray:(NSArray *)languageModelArray withFilesNamed:(NSString *)fileName forAcousticModelAtPath:(NSString *)acousticModelPath;