Displaying 15 results from an estimated 15 matches for "agc_gain".
2005 Jun 20
1
Speech detection in preprocessor with echo
...e AGC to prevent
it from 1) exceeding a specified level of amplification and 2) enable
and disable adaptation, so I can freeze it at a certain level while
speech is not detected. It's mostly just a matter of doing this at the
end of speex_compute_agc():
if (!st->agc_frozen)
{
agc_gain = st->agc_level/st->loudness2;
/*fprintf (stderr, "%f %f %f %f\n", active_bands, st->loudness, st->loudness2, agc_gain);*/
if (agc_gain>st->agc_max_gain) /* was 200 */
agc_gain = st->agc_max_gain; /* was 200*/
}
else
agc_gain = st->agc_gain;...
2005 Jun 22
1
Speech detection in preprocessor with echo
agc_gain seemed to fit with the idea of what I wanted to do, it was
easy to understand its units and behavior, and freezing it produced
the desired results. Also I wanted to cap it, so that's done at the
same place, and that definitely works.
All I want to do is be able to freeze AGC adaptation and...
2004 Aug 06
1
Proposed AGC additions
...g as it listens for something useful. For example,
as I tested this today, the faint sound of birds chirping
outside was enough to prevent the AGC from spazzing out!
Anyway, what I propose are the following commands to let
an application interface a little more with the AGC:
SPEEX_PREPROCESS_GET_AGC_GAIN
SPEEX_PREPROCESS_GET_AGC_MAX_GAIN
SPEEX_PREPROCESS_SET_AGC_MAX_GAIN
I've implemented these and use them for the following:
1) I display the current AGC gain to the user.
2) If the AGC gain has reached its maximum, I don't transmit
any audio. This condition indicates to me that the AGC ha...
2007 May 29
2
Noise suppression less than AGC gain
...ou speak, does the level of the
> noise start going up again?
>
Ah, apologies, I should have mentioned that. This is against current SVN
(rev 12997), built on Win32 with mingw gcc 3.4.5 using SSE.
Yes, after I stop speaking, the noise slowly starts climbing again, and
if I peek at st->agc_gain, that's slowly climbing too. I think part of
the trouble is that the noise in here isn't uniform white noise; there's
traffic outside the window and people walking in the hallway outside my
door. Each little event is enough to cause the AGC to increase a little bit.
If I understood...
2007 May 03
3
iaxclient & speex
...easons, so I tried just making
SpeexPreprocessState visible again, but it turns out neither of these
members are present in the new SpeexPreprocessState_ structure anyway.
I was able to re-create the speech_prob member by setting it from Pframe
before speex_preprocess_run returns, and I've used agc_gain as the basis
for adjusting the mixer (i.e. if agc_gain is high, the input is low, so
turn the mixer up and v.v.). This appears to be effective.
So is there a way to make these items available to speex clients? The
speex_preprocess_ctl interface could be extended, but it's not really
what it...
2007 May 29
0
Noise suppression less than AGC gain
> Yes, after I stop speaking, the noise slowly starts climbing again, and
> if I peek at st->agc_gain, that's slowly climbing too. I think part of
> the trouble is that the noise in here isn't uniform white noise; there's
> traffic outside the window and people walking in the hallway outside my
> door. Each little event is enough to cause the AGC to increase a little
> bit....
2007 May 29
2
Noise suppression less than AGC gain
>> Yes, after I stop speaking, the noise slowly starts climbing again, and
>> if I peek at st->agc_gain, that's slowly climbing too. I think part of
>> the trouble is that the noise in here isn't uniform white noise; there's
>> traffic outside the window and people walking in the hallway outside my
>> door. Each little event is enough to cause the AGC to increase a littl...
2008 Feb 21
0
st->nb_loudness_adapt removal patch
...==========================================================
--- libspeex/preprocess.c (revision 14530)
+++ libspeex/preprocess.c (working copy)
@@ -236,7 +236,6 @@
float *loudness_weight; /**< Perceptual loudness curve */
float loudness; /**< Loudness estimate */
float agc_gain; /**< Current AGC gain */
- int nb_loudness_adapt; /**< Number of frames used for loudness adaptation so far */
float max_gain; /**< Maximum gain allowed */
float max_increase_step; /**< Maximum increase in gain from one frame to another */
float ma...
2008 Mar 18
1
Patch to make SPEEX_PREPROCESS_GET_AGC_GAIN use dB, and _SET_AGC_LEVEL use a int32
Hi,
The attached patch fixes an incistency in my earlier patch. Whereas the
rest of the AGC ctls are in dB, GET_AGC_GAIN was linear. This patch fixes
that.
It also changes the API for _GET and _SET_AGC_LEVEL to use a int32
instead of a float, meaning we don't need to do a API change when we get
a fixed point AGC.
Best regards,
Thorvald
-------------- next part --------------
--- speex/libspeex/preprocess.c 2...
2007 May 03
0
Re: [Iaxclient-devel] iaxclient & speex
...ust making
> SpeexPreprocessState visible again, but it turns out neither of these
> members are present in the new SpeexPreprocessState_ structure anyway.
> I was able to re-create the speech_prob member by setting it from Pframe
> before speex_preprocess_run returns, and I've used agc_gain as the basis
> for adjusting the mixer (i.e. if agc_gain is high, the input is low, so
> turn the mixer up and v.v.). This appears to be effective.
>
> So is there a way to make these items available to speex clients? The
> speex_preprocess_ctl interface could be extended, but it...
2006 Feb 03
0
Leaking audio and AGC/VAD
Hi,
The leakage problem you describe is very, very common and you will need
to do something to address it. I modified the version of Speex I use to
implement an adjustable max gain. If you look at speex_compute_agc in
preprocess.c, you will see:
if (agc_gain>200)
agc_gain = 200;
This max of 200 is usually more than enough to amplify leakage which
occurs either in the sound hardware or in a headset to the point where
it is as loud as normal speech.
You can replace this max of 200 with a configurable max gain, which is
what I've done....
2007 May 29
2
Noise suppression less than AGC gain
Hi,
I've had a small case with noise suppression and AGC. I have a fairly
noisy environment here, and with the default parameters, noise
suppression works fairly well while I talk. However, when I shut up, AGC
starts slowly increasing the gain until it has amplified whatever noise
is left to levels about equal to having no filtering at all. As soon as
I talk, AGC backs down fairly quick
2008 May 25
3
FFTW3 for libspeexdsp
Hi,
Attached is a patch which enables FFTW3 to be used by libspeexdsp. Using
SSE, the FFT code is more than twice as fast, and it's 50% faster even
without SSE. To enable the library, you'll need to call configure with
'--with-gpl-fftw3'.
Based on the benchmarking we did, this also changes the default FFT to
smallft for floating point implementations when not using FFTW3.
2008 Feb 12
0
Second part of data export patch
Hi,
Here are the next two patches for the data export.
speex_get_psd should be applied after speex_get_agc_gain (sent in previous
mail). It allows applications to get the power spectrum for the signal and
the noise estimate.
speex_get_prob should be applied last. It allows fetching the speech
probability of the current frame (the value that the _PROB_START and
_PROB_CONTINUE parameters are compared to i...
2008 Feb 02
0
Patch to make analysis data available.
...=====
--- include/speex/speex_preprocess.h (revision 14443)
+++ include/speex/speex_preprocess.h (working copy)
@@ -182,6 +182,26 @@
/** Get loudness */
#define SPEEX_PREPROCESS_GET_AGC_LOUDNESS 33
+/* Can't get gain */
+/** Get current gain (int32 percent) */
+#define SPEEX_PREPROCESS_GET_AGC_GAIN 35
+
+/* Can't set spectrum size */
+/** Get spectrum size for power and noise spectrum (int32) */
+#define SPEEX_PREPROCESS_GET_SPECTRUM_SIZE 37
+
+/* Can't set power spectrum */
+/** Get power spectrum (int32[] of squared values) */
+#define SPEEX_PREPROCESS_GET_POWER_SPECTRUM 39
+
+/*...