I wonder if n-grams could solve this automatically?
If we consider the actual words to be a latent variable, then we can use an n-gram model to compute the maximum likelihood estimate (sorry Bayesians) using dynamic programming.
There is also the Bayesian approach where you treat it as a Bayesian network and use belief propagation to compute the marginal posteriors over each letter.
EDIT: took a while to figure out the ML approach.