[Speex-dev] Voice activity detection

Evgueni Tsygankov eugenet at rusmex.com
Mon Feb 18 03:40:10 PST 2008


That was a user error (mine). Please disregard the previous question. Everything is working now.

Evgueni Tsygankov
www.sqlanswers.com


-----Original Message-----
From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org] On Behalf Of Evgueni Tsygankov
Sent: Sunday, February 17, 2008 5:05 PM
To: Jean-Marc Valin
Cc: speex-dev at xiph.org
Subject: RE: [Speex-dev] Voice activity detection

Thanks for your reply. I changed my code to:

if (speex_preprocess_run(preprocess_state, shortPointer) == 1)
{
	speex_encode_int(enc_state, shortPointer, &enc_bits);
}

In the mobile version of the software, compiled against the mobile build of Speech, I get 1 and 0 based on whether the speech is detected. In the version of the software compiled against the Win32 version of Speex, speex_preprocess_run always returns 0. If I remove the IF statement, then I get voice transmission, so the mic is working. Is it something to do with VAD sensitivity?

Thanks,

Evgueni Tsygankov
www.sqlanswers.com


-----Original Message-----
From: Jean-Marc Valin [mailto:jean-marc.valin at usherbrooke.ca] 
Sent: Friday, February 15, 2008 6:16 AM
To: Evgueni Tsygankov
Cc: speex-dev at xiph.org
Subject: Re: [Speex-dev] Voice activity detection

Just use the return value of speex_preprocess_run()

Cheers,

	Jean-Marc

Evgueni Tsygankov a écrit :
> This must be a simple issue, but I cannot figure it out.
> 
> I want to use VAD, but I don't know how to check if the actual frame has
> voice in it or not.
> 
> So, in my code, I do:
> 
> int tmp = 1;
> speex_preprocess_ctl(preprocess_state, SPEEX_PREPROCESS_SET_VAD, &tmp);
> speex_preprocess_ctl(preprocess_state, SPEEX_PREPROCESS_SET_DENOISE,
> &tmp);
> 
> then later, for each frame
> 
> speex_preprocess_run(preprocess_state, shortPointer);
> 
> but how do I know if the frame contained voice? I tried 
> 
> if (preprocess_state->was_voice == 1)
> {
> 	...Do voice present code...
> }
> 
> But the compiler complains that was_voice is not defined, which, I
> assume, comes from the fact that preprocess_state is declared in
> speech_preprocess.h as struct SpeexPreprocessState_;
> 
> How do I check the preprocessor for the presence of voice in a frame? 
> 
> Thanks,
> 
> Evgueni
> 
> 
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev
> 
> 
_______________________________________________
Speex-dev mailing list
Speex-dev at xiph.org
http://lists.xiph.org/mailman/listinfo/speex-dev


More information about the Speex-dev mailing list