1. A method of performing distributed voice recognition, the method comprising: (a) receiving speech utterance signals representing utterances of a user, the speech utterance signals comprising one or more words; (b) generating, via a processing circuit of a client device, speech data values from the utterance signals during an utterance evaluation time frame corresponding to each utterance signal, wherein the speech data values comprise compressed mel-frequency cepstral coefficient vectors (MFCC vectors) further comprising MFCC delta parameters and MFCC acceleration parameters automatically determined based on at least an amount of computational resources available on the client device and a speed of a transceiver used to transmit data between the client device and a server; (c) encoding the speech data values into a transmission format suitable for transmission over a communications channel to the server; and (d) communicating user context information over the communications channel to the server, wherein the server uses the context information to dynamically select a grammar to use for recognizing the speech data values.