[Pidgin] #13180: Simple silence suppression for voice

Pidgin trac at pidgin.im
Sat Jan 8 10:24:29 EST 2011


#13180: Simple silence suppression for voice
---------------------------------------+------------------------------------
 Reporter:  haakon                     |     Owner:  Maiku
     Type:  enhancement                |    Status:  new  
Component:  Voice and Video            |   Version:  2.7.9
 Keywords:  voice silence suppression  |  
---------------------------------------+------------------------------------
 During a voice call, Pidgin now sends constant audio traffic, even when
 there is silence. Especially on slower connections, this can waste
 considerable amount of bandwidth by transmitting nothing but ambient
 noise.

 I used peak level data from GstLevel in the input branch of media pipeline
 to control a GstValve put between audio source and Farsight confbin.
 Whenever the peak drops below defined threshold, the valve gets closed,
 when sound level reaches above the threshold, valve opens again. This
 effectively blocks sending data over network in the silent periods and in
 my tests this simple method worked quite well.

 Silence threshold might need to be fine tuned (or switched off at all)
 depending on microphone hardware and/or the noisiness of surrounding
 environment. I will propose an user interface for this in a separate
 ticket.

 Future improvement can be adding support for comfort noise (RFC3389), as
 the line now stays completely mute when suppression is active, which can
 be a bit distracting.

 I made a tiny change in level parameter that is passed to PurpleMedia's
 "level" signal handlers. The value converted from dB to percent was
 multiplied by five. Searching through source code history seems this was
 done to make the value variation displayed on call dialog level meter
 widgets look bigger. I think it is better not to confuse future developers
 and pass the unmodified percent value to the handler and multiply only in
 gtkmedia.c: level_message_cb() where it has reason.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/13180>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list