My problem is that I don't know the energy of the background noise, so I can't just threshold the energy. The processing is done in real time, and I have about 500msec to decide. Ideally, I'd want quiet consonants considered non-silence.

  • 7
    $\begingroup$ I don't have enough information to give a full answer, but your problem is referred to as voice activity detection. There isn't a single agreed-upon best way to do it, and if you look you will probably come across many different approaches. Perhaps some others can flesh it out a bit more. $\endgroup$
    – Jason R
    Oct 26, 2011 at 11:33
  • $\begingroup$ @Michael Litvin, there is a class of non-linear filters (used in 'energy detection' by the name of 'Teager-Kaiser'. I think it is subset of what are known as 'voltera kernels'. Sorry I cant provide any more information, but if you search around for those words you might find what you are looking for. I know that the Teager-Kaiser method is used to 'when' whale sounds begin VS just background noise. $\endgroup$
    – Spacey
    Oct 27, 2011 at 22:26

1 Answer 1


There are a bunch of parameters that you can look at:

  1. Overall energy
  2. Short term spectrum: Speech has a fairly distinctive "pink-like" spectrum and noise (which is happening during the non-speech parts) tends to be white if it's electrically dominated or "red" (i.e. low frequency heavy) if it's acoustic background noise or microphone noise
  3. Amplitude statistics. Most noise signals have a Gaussian distribution, speech is closer to a Laplace distribution

I think a combination of these three should give a fairly robust detection scheme.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.