1. A non-transitory computer-implemented method of recognizing speech using a pronunciation model, the method comprising: receiving user speech; identifying a user dialect in the received user speech; selecting a set of phoneme alternatives representing the user dialect from a pronunciation model generated by the steps of: (i) identifying a generic model of speech composed of phonemes; (ii) identifying a family of interchangeable phonemic alternatives for a phoneme in the generic model of speech; (iii) labeling each interchangeable phonemic alternative in the family as referring to the phoneme; and (iv) generating a pronunciation model which substitutes the family of interchangeable phonemic alternatives for the phoneme; recognizing, via a processor, the user speech using the selected set of phoneme alternatives in the pronunciation model.