A distributed automated speech recognition, ASR, system comprising: a computer-readable memory storing executable instructions; and one or more processors in communication with the computer-readable memory, wherein the one or more processors are programmed by the executable instructions to: process a plurality of speech recognition sessions; record usage data regarding the plurality of speech recognition sessions; determine, based on the usage data, a predicted time at which a user is predicted to initiate a speech recognition session subsequent to the plurality of speech recognition sessions; proactively assign the user to a particular ASR server before the user initiates an ASR session; pre-cache, in a cache, a speech recognition model shortly before the predicted time, wherein the speech recognition model is pre-cached at the assigned particular ASR server; and determine, following initiation of the ASR session by the user, that the user has already been associated with the particular ASR server for the session and send utterance data to the proactively assigned ASR server if the cache has not expired, wherein the speech recognition model that has been pre-cached is used for the speech recognition session. a computer-readable memory storing executable instructions; and one or more processors in communication with the computer-readable memory, wherein the one or more processors are programmed by the executable instructions to: process a plurality of speech recognition sessions; record usage data regarding the plurality of speech recognition sessions; determine, based on the usage data, a predicted time at which a user is predicted to initiate a speech recognition session subsequent to the plurality of speech recognition sessions; proactively assign the user to a particular ASR server before the user initiates an ASR session; pre-cache, in a cache, a speech recognition model shortly before the predicted time, wherein the speech recognition model is pre-cached at the assigned particular ASR server; and determine, following initiation of the ASR session by the user, that the user has already been associated with the particular ASR server for the session and send utterance data to the proactively assigned ASR server if the cache has not expired, wherein the speech recognition model that has been pre-cached is used for the speech recognition session. process a plurality of speech recognition sessions; record usage data regarding the plurality of speech recognition sessions; determine, based on the usage data, a predicted time at which a user is predicted to initiate a speech recognition session subsequent to the plurality of speech recognition sessions; proactively assign the user to a particular ASR server before the user initiates an ASR session; pre-cache, in a cache, a speech recognition model shortly before the predicted time, wherein the speech recognition model is pre-cached at the assigned particular ASR server; and determine, following initiation of the ASR session by the user, that the user has already been associated with the particular ASR server for the session and send utterance data to the proactively assigned ASR server if the cache has not expired, wherein the speech recognition model that has been pre-cached is used for the speech recognition session.