A computer program product comprising a computer-readable storage medium storing instructions that, when executed by a computing system comprising at least one programmable processor, cause the computing system to perform operations comprising: receiving, at a recipient computing device, a speech utterance to be processed by speech recognition; segmenting the speech utterance into two or more speech utterance segments, the segmenting comprising initially analyzing the speech utterance, the initially analyzing using an acoustic model implemented on one or more processors at the recipient computing device, which acoustic model is dynamically adapted based on locally-available data at the recipient computing device, including time and location data for the recipient device, the initially analyzing identifying features of the received speech utterance that can be more efficiently processed by a separate computing device than the recipient computing device, the initially analyzing comprising determining a confidence score and an audio quality metric for each of the two or more speech utterance segments; assigning each of the two or more speech utterance segments to one or more of a plurality of available speech recognizers, the assigning comprising: designating a first segment of the two or more speech utterance segments for processing by a first speech recognizer of the plurality of available speech recognizers that is implemented on a separate computing device than the recipient computing device if the determined confidence score for the first segment is lower than a first predetermined threshold; and designating a second segment of the two or more speech utterance segments for processing by a second speech recognizer of the plurality of available speech recognizers that is implemented on the recipient computing device if the determined confidence score and audio quality metric for the second segment are higher than their respective second predetermined thresholds; sending the first segment from the recipient computing device to the separate computing device for processing; receiving first segment processing results back from the separate computing device, the sending and the receiving occurring via a data network; processing the second segment at the recipient computing device to generate second segment processing results; and returning a completed speech recognition result assembled from the first segment processing results and the second processing results. receiving, at a recipient computing device, a speech utterance to be processed by speech recognition; segmenting the speech utterance into two or more speech utterance segments, the segmenting comprising initially analyzing the speech utterance, the initially analyzing using an acoustic model implemented on one or more processors at the recipient computing device, which acoustic model is dynamically adapted based on locally-available data at the recipient computing device, including time and location data for the recipient device, the initially analyzing identifying features of the received speech utterance that can be more efficiently processed by a separate computing device than the recipient computing device, the initially analyzing comprising determining a confidence score and an audio quality metric for each of the two or more speech utterance segments; assigning each of the two or more speech utterance segments to one or more of a plurality of available speech recognizers, the assigning comprising: designating a first segment of the two or more speech utterance segments for processing by a first speech recognizer of the plurality of available speech recognizers that is implemented on a separate computing device than the recipient computing device if the determined confidence score for the first segment is lower than a first predetermined threshold; and designating a second segment of the two or more speech utterance segments for processing by a second speech recognizer of the plurality of available speech recognizers that is implemented on the recipient computing device if the determined confidence score and audio quality metric for the second segment are higher than their respective second predetermined thresholds; designating a first segment of the two or more speech utterance segments for processing by a first speech recognizer of the plurality of available speech recognizers that is implemented on a separate computing device than the recipient computing device if the determined confidence score for the first segment is lower than a first predetermined threshold; and designating a second segment of the two or more speech utterance segments for processing by a second speech recognizer of the plurality of available speech recognizers that is implemented on the recipient computing device if the determined confidence score and audio quality metric for the second segment are higher than their respective second predetermined thresholds; sending the first segment from the recipient computing device to the separate computing device for processing; receiving first segment processing results back from the separate computing device, the sending and the receiving occurring via a data network; processing the second segment at the recipient computing device to generate second segment processing results; and returning a completed speech recognition result assembled from the first segment processing results and the second processing results.