I have a huge labeled dataset of several thousand sound events, including human voice, dish washing, things falling to the ground, among others.
I need to report when a human voice event takes place. Notice that it's not a simple voice activity detection (VAD), since there are other sound events competing with voice (in VAD, they normally only concern about well behaved noise).
My approach so far has been to train a binary SVM classifier (voice and non-voice classes) with MFCC features. Even after parameter optimization and tinkering about with different number of MFCC coefficients, the performance is awful for such a simple task...
Is there any heuristic or any thing that may help distinguish voice from non-voice events that I'm missing out on?
(This related question is similar, but I don't need to "eliminate" other sounds completely, and I'm looking, first, for possible heuristics to improve the classification. This article would be my last resort.)