I'm trying to detect and classify non-speech sounds. Currently, I'm using a series of moving overlapped power spectrums from training sounds as the features I am looking for.

When I do analysis, I'm just computing the same amount of overlapped spectrums so that the number of features are the same. Right now the performance is not very good, it can only detect silence vs non-silence.

What techniques are there for this type of signal detection? One of my concerns is that for sounds of different lengths in the time domain would result in different lengths of feature vectors which so I can't use the same classifier, I'm stuck on this.


2 Answers 2


Are you trying to detect speech vs non-speech, or are there classes of non-speech sounds you are trying to discriminate from? I'm not clear from your question.

I think a decent first approach would be to block your signal into frames and compute the Mel-Frequency Cepstral Coefficients (MFCCs), as well as the delta-MFCCs (differences between adjacent frames' MFCCs) and delta-delta MFCCs (differences between MFCCs in frames that are two frames apart). This isn't the only way to do it, but without more specific knowledge of the problem domain, this is probably a good place to start.

Just googling should give you some good reference on how to compute the MFCCs if you are not already familiar with them. Basically you take the DFT, take the magnitudes, compute the energies inside triangular windows corresponding to human hearing, take the DCT of these coefficients, essentially as a compression step, and then discard the high order coefficients, usually only taking about the first twelve coefficients. I have an explanation of the meaning of the DCT step in this post: How do I interpret the DCT step in the MFCC extraction process?

You could then, say, use these coefficients as features for an SVM.


I think you're generally looking at a problem of speech detection, which has been around forever, and there myriads of methods to do this developed by now. It looks like this paper, for example, also uses spectral techniques, so you might want to start there. A good old Google search will return many results with links to papers and articles.

Generally there are two somewhat distinct approaches to speech detection. One allows for the assumption of a good speech-to-noise ratio (voice is louder than ambient noise, music, other irrelevant content), and the other makes no such assumptions and tries to identify speech presence in very noisy signals (speech buried in noise). Depending on which one you're trying to do, you'll end up looking at very different papers. Perhaps if you clarify your question a little and elaborate on the types of speech signals you're working with, this site could be of more help.


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.