1. A computer-implemented process for speeding up typing, comprising: inputting text in the form of a phonetic string received from a user; determining a context of the input phonetic string; generating a list of candidates to replace the phonetic string using the determined context of the input phonetic string, while performing spelling correction, word auto-completion, next word prediction and automatic script changing based on the context of the input string; ranking the candidates in the list of candidates; sending the ranked list of candidates back to the user; the user selecting one of the candidates on the ranked list of candidates to replace the input phonetic string; and replacing the input phonetic string with the user-selected candidate in the text the user is typing.