[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