1. A method comprising: using at least one computer hardware processor to perform: (A) obtaining language data comprising training data and associated values for one or more metadata attributes, the language data comprising a plurality of instances of language data, an instance of language data comprising an instance of training data and one or more metadata attribute values associated with the instance of training data; (B) identifying, by processing the language data, a set of one or more of the metadata attributes to use for clustering the instances of training data, the set of metadata attributes comprising a first set of metadata attributes and a second set of metadata attributes; (C) clustering, using an automated clustering technique, the training data instances based on their respective values for the first set of metadata attributes into a first plurality of clusters; (D) generating a basis language model for each of the first plurality of clusters to obtain a plurality of basis language models and storing the plurality of basis language models in at least one computer hardware memory; (E) clustering the training data instances based on their respective values for the second set of metadata attributes into a second plurality of clusters different from the first plurality of clusters, the second plurality of clusters comprising a first cluster of training data instances and a second cluster of training data instances; (F) generating a language model for each of the second plurality of clusters as a respective mixture of the plurality of basis language models at least in part by: generating a first language model for the first cluster of training data instances as a first mixture of basis language models in the plurality of basis language models, the first mixture of basis language models comprising at least a first basis language model weighted by a first mixture weight and a second basis language model weighted by a second mixture weight, wherein generating the first language model comprises using an expectation-maximization technique to estimate the first mixture weight and the second mixture weight using data in the first cluster of training data instances; and generating a second language model for the second cluster of training data instances as a second mixture of basis language models in the plurality of basis language models by estimating mixture weights of basis language models in the second mixture using data in the second cluster of training data instances; and (G) receiving a voice utterance and recognizing the voice utterance using the generated first language model to obtain text corresponding to the voice utterance.