The algorithm used is not so great and could stand to be replaced
by a better one if we get the chance.

basically we decode the audio to signed linear 16bit samples
for each packet we receive and iterate the samples and add up the
absolute values then compute the average and compare it to the
acceptable level considered "talking" then we use a counter to make
sure it's in the same state several times in a row before actually
changing the status of the channel to talking or not talking.


A real vad algorithm would also be able to filter out the voice from
the background noise and judge the energy based only on that.






 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400


----- Original Message ----
From: KMTDBOURSE <kmtdbourse@free.fr>
To: freeswitch-dev@lists.freeswitch.org
Sent: Thursday, February 14, 2008 1:51:55 PM
Subject: Re: [Freeswitch-dev] VAD, TALK and NOTALK events

Hi,

   I ma interested in the VAD algorithm used where where is the code exactly? maybe a link any document support about the vad alogorithm used therein?
  
   thanks,


Zelda
 

At 01:47 14/02/2008, Anthony Minessale wrote:
They are enabled by the vad params in the sofia profile xml
<param name="vad">

 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400


----- Original Message ----
From: Cesar Cepeda <cesar@auronix.com>
To: freeswitch-dev@lists.freeswitch.org
Sent: Wednesday, February 13, 2008 10:17:23 AM
Subject: Re: [Freeswitch-dev] VAD, TALK and NOTALK events

Please correct me if I’m wrong. 

 

The events are indeed fired, but only if the SWITCH_VAD_FLAG_EVENTS_TALK or NOTALK flags are set for an rtp_session.   I found no place in the code where those flags are set.  That is what I meant by not  being “enabled”.

 

I subscribed to the events and received nothing.  Then I set the flags on switch_rtp_enable_vad function, and then I started receiving the events.  Perhaps there is another way of doing it that I’m missing.

 

Cesar Cepeda.

 

 

 

De: freeswitch-dev-bounces@lists.freeswitch.org [ mailto:freeswitch-dev-bounces@lists.freeswitch.org] En nombre de Anthony Minessale
Enviado el: Miércoles, 13 de Febrero de 2008 08:17
Para: freeswitch-dev@lists.freeswitch.org
Asunto: Re: [Freeswitch-dev] VAD, TALK and NOTALK events

 

The events are fired.
I don't know what you mean by "enabled"

You can either bind an event to a callback
in the load function of your custom module.

or connect to mod_event_socket on tcp
and request "events talk notalk"

void my_event_handler(switch_event_t *event)
{

}

if (switch_event_bind(modname, SWITCH_EVENT_TALK, SWITCH_EVENT_SUBCLASS_ANY, my_event_handler, NULL)
        != SWITCH_STATUS_SUCCESS) {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't bind!\n");
        return SWITCH_STATUS_GENERR;
    }

if (switch_event_bind(modname, SWITCH_EVENT_NOTALK, SWITCH_EVENT_SUBCLASS_ANY, my_event_handler, NULL)
        != SWITCH_STATUS_SUCCESS) {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't bind!\n");
        return SWITCH_STATUS_GENERR;
    }

 

Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch


FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400

 

----- Original Message ----
From: Cesar Cepeda <cesar@auronix.com>
To: freeswitch-dev@lists.freeswitch.org
Sent: Tuesday, February 12, 2008 6:53:03 PM
Subject: [Freeswitch-dev] VAD, TALK and NOTALK events

Hi,

>From looking at the code of switch_rtp.c  I can see that VAD is done if
enabled in the sip profile in order to not send packets when there is no
noise. There are also two events {TALK, NOTALK} which can be fired when VAD
kicks in, nevertheless these two events are enabled nowhere (or at least I
didn't find a place in the code where they were enabled), so no matter if
you ask for them you don't receive them.  My questions are the following:

Is there some particular reason for not enabling these two events? 
Is the event queue easily overflowed if these two events are enabled?

Thanks.

Cesar Cepeda.


_______________________________________________
Freeswitch-dev mailing list
Freeswitch-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org

 

 

Never miss a thing. Make Yahoo your homepage.


-----Inline Attachment Follows-----

_______________________________________________
Freeswitch-dev mailing list
Freeswitch-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



Looking for last minute shopping deals? Find them fast with Yahoo! Search.
_______________________________________________
Freeswitch-dev mailing list
Freeswitch-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org


-----Inline Attachment Follows-----

_______________________________________________
Freeswitch-dev mailing list
Freeswitch-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



Never miss a thing. Make Yahoo your homepage.