1. A method, comprising: receiving, at a server, a representation of a voice utterance received by an application program executing on a client device; recognizing, using an automated speech recognition (ASR) engine executing at the server, the voice utterance to obtain a recognition result, the recognizing comprising: obtaining, based on the voice utterance, a language segment sequence comprising one or more language segments in a vocabulary of language segments; accessing an unnormalized neural network language model having a normalizer node and an output layer comprising a plurality of output nodes, each of the plurality of output nodes associated with a respective language segment in the vocabulary, wherein the plurality of output nodes includes a first output node associated with the first language segment in the vocabulary; determining the recognition result at least in part by determining, using the unnormalized neural network language model, a first likelihood that a first language segment in the vocabulary follows the language segment sequence, wherein determining the first likelihood comprises: determining, based at least in part on features derived from the language segment sequence, an output score for the first output node; determining, based at least in part on the features, an output score for the normalizer node; and determining the first likelihood based on the output score for the first output node and the output score for the normalizer node, wherein determining the first likelihood that the first language segment in the vocabulary follows the language segment sequence is performed independently of output scores of any output nodes, other than the first output node, in the plurality of output nodes; and providing, by the server, the recognition result to the application program executing on the client device.