1. A method for providing data to train a speech recognition engine performed on at least one processor, the method comprising: displaying to a trainer text from an audio file that has been transcribed by a speech recognition engine that is adapted to be trained and uses a user profile; playing to the trainer the audio file that was used by the speech recognition engine to generate the text being displayed; correcting the text on the display by the trainer based on discrepancies between the audio being played and the text being displayed; and transmitting the corrections to the speech to text engine to train the speech recognition engine to update the user profile, training the speech recognition engine based on the corrections, wherein training the speech recognition engine comprises: identifying a user profile of a user to be trained; designating the user profile as the initial user profile; saving the initial user profile; training the initial user profile as the interim user profile; using the interim user profile to transcribe an audio file of the user; determining a performance metric of the speech recognition engine using the interim user profile; comparing the performance metric using the interim user profile to a performance metric using the initial user profile; if the performance metric using the interim user profile is better than the performance metric using the initial user profile, replace the user profile with the interim user profile; and if the performance metric using the interim user profile is worse than the performance metric using the initial user profile, discard the interim user profile.
4. The method of claim 1 wherein the performance metric is accuracy.