1. A system for processing natural language utterances, comprising: a computing device having access to a plurality of domain agents associated with a plurality of different domains, and programmed to execute one or more computer program instructions which, when executed, cause the computing device to: receive a first natural language utterance; determine that the first natural language utterance contains one or more words that were unrecognized or incorrectly recognized in response to a recognition associated with the first natural language utterance having a confidence level below a predetermined value; obtain a phonetic alphabet spelling associated with the one or more unrecognized or incorrectly recognized words in response to the determination; look up the one or more unrecognized or incorrectly recognized words in one or more dictionary and phrase tables based on the phonetic alphabet spelling; update the one or more dictionary and phrase tables based on a pronunciation associated with the one or more unrecognized or incorrectly recognized words; receive a second natural language utterance that comprises a question; generate a digitized speech signal from the second natural language utterance; recognize one or more words in the second natural language utterance based on a pronunciation associated with the one or more words using the one or more dictionary and phrase tables; tag the one or more words in the second natural language utterance with a user identity determined from voice characteristics associated with the digitized speech signal and one or more user profiles; determine a context of the question in the second natural language utterance; select one of the plurality of domain agents based on the context of the question; generate a request associated with the second natural language utterance based on the one or more words in the second natural language utterance and a grammar used by the selected domain agent, wherein the request includes the question; invoke the selected domain agent to cause the selected domain agent to process the request; and receive a response to the request from the selected domain agent.