1. A method comprising: receiving, via a processor, a speech input; dynamically constructing an unweighted grammar permitting all letter sequences that map to the speech input; generating keypad constraints using the unweighted grammar and a statistical letter model trained on a database of words; receiving non-speech input constrained by the keypad constraints; and recognizing the speech input and the non-speech input using the unweighted grammar and the statistical letter model.