Patent ID: 9674328
Date: 2017-06-06
CPC Classifications: G10L,H04L,H04M

Claim:
1. A computer program product comprising a non-transitory 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; determining an amount of an available bandwidth between the recipient computing device and a separate computing device; segmenting, upon determining that the available bandwidth is sufficient, the speech utterance into two or more speech utterance segments, the segmenting comprising initially analyzing the speech utterance by identifying features of the speech utterance that can be more efficiently processed by the separate computing device than the recipient computing device, wherein initially analyzing comprises applying a dynamically adaptable acoustic model implemented at the recipient computing device, with the dynamically adaptable acoustic model adjusted based on locally available data at the recipient computing device including a user location and time, to determine a confidence score, and an audio quality metric for the two or more speech utterance segments; dynamically determining a confidence threshold value and an audio quality threshold value based on environmental conditions at which the recipient computing device is located, the environmental conditions comprising one or more of: a type of environment in which the recipient computing device is located, availability of noise cancelling devices at the recipient computing device, and number of microphones used by the recipient computing device; assigning each of the two or more speech utterance segments to one or more of a plurality of available speech recognizers, the assigning comprising: 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 segment processing results.