6. A non-transitory computer-readable storage medium having stored thereon instructions, which when executed by a processor, causes the processor to perform a method of detecting a user's voice activity, the method comprising: generating probabilistic models that respectively model features of speech dynamically over time, wherein the probabilistic models model each feature dependent on a past feature and a current state, wherein the features of speech include a nonstationary signal presence feature, a periodicity feature, and a sparsity feature; performing noise suppression on an acoustic signal to generate a nonstationary signal presence signal and a noise suppressed acoustic signal; performing residual analysis on the noise suppressed data signal to generate a periodicity signal and a sparsity signal; receiving the probabilistic models and in real-time, the nonstationary signal presence signal, the periodicity signal, and the sparsity signal; and generating in real time an estimate of voice activity based on the probabilistic models, the nonstationary signal presence signal, the periodicity signal, and the sparsity signal.
8. The non-transitory computer-readable storage medium in claim 6 , wherein generating in real time the estimate of voice activity comprises generating in real time a posterior distribution of voice activity by applying a Viterbi algorithm that has been modified to function in real time.