[Speex-dev] AGC on a phone conversation

Andras Kadinger bandit at surfnonstop.com
Tue Aug 23 07:17:57 PDT 2011

2011.08.23. 15:38 keltezéssel, Yanick Bourbeau írta:
> Since I don't have access to different channels as I record a phone call
> using a man in the middle approach, there is something else I can use
> to equalize the sound ?
What I would do then probably is try to manually separate the two 
channels/talkers; say channel 1 goes from 0 seconds to 13 seconds, 
channel 2 goes from 13 seconds to 27 seconds, then channel 1 again goes 
from 27 seconds to ... you understand. Then you have two channels, one 
channel is always silent/mute, the other contains the current talker. 
Then you can AGC them separately.

As described here, this is a manual process. So if you have a lot of 
audio you need to process, manual might not make sense anymore, and you 
could then try to create an algorithm to do this automatically. I would 
make some statistics about the loudness (signal level) of the sides, and 
the pauses they make, and try to come up with an algorithm that analyzes 
the whole call, and tries to segment it into the two sides, based on the 
high probability that signal level usually stays the same or only 
changes slowly within the same channel, but it is considerably different 
between the two channels/talkers.

Alternatively, you could just try to adjust the parameters of the AGC to 
provide for a faster adjustment so that it catches up relatively quickly 
whenever the participants change roles (one stops talking and the other 
one starts talking - much louder/quieter) - you might be able to find a 
set of AGC settings that work acceptably for your calls.

More information about the Speex-dev mailing list