A language input architecture converts input strings of phonetic text to
an output string of language text. The language input architecture has a
search engine, typing models, a language model, and one or more lexicons
for different languages. Each typing model is trained on real data, and
learns probabilities of typing errors. The typing model is configured to
generate a list of probable typing candidates that may be substituted for
the input string based on probabilities of how likely each of the
candidate strings was incorrectly entered as the input string. The
language model provides probable conversion strings for each of the
typing candidates based on probabilities of how likely a probable
conversion output string represents the candidate string. The search
engine combines the probabilities of the typing and language models to
find the most probable conversion string that represents a converted form
of the input string.