1. A method for recognizing speech, the method comprising: capturing speech input in an environment by a physical sensor on a device; determining a value for an environment variable related to the environment in which the speech was captured; receiving the speech input and the value of the environment variable as inputs into a variable component deep neural network (VCDNN) having one or more weighting matrices, one or more biases, at least one hidden layer having a one or more outputs, and one or more activation functions of one or more nodes, wherein at least one of the one or more weighting matrices, the one or more biases, the one or more outputs of the hidden layer, and the one or more activation functions are modeled as a function of the environment variable; executing the function based on the speech input and the value of the environment variable; generating an output vector from the VCDNN for speech input based on executing the function; and producing an output of recognized speech, by the device, based on the function generated output vector for the speech input.