IPP AEC double - talk

IPP AEC double - talk

Hi,

I have any question about IPP AEC.

in the document of IPP, description of ippsSubbandController_EC function follow:

IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)

These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.

If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.

If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.

the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?

Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?

Thank you very much!

15 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Quoting - soimattrang
Hi,

I have any question about IPP AEC.

in the document of IPP, description of ippsSubbandController_EC function follow:

IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)

These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.

If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.

If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.

the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?

Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?

Thank you very much!

Hi,
-coefficientsmay divergein the case of NO DT as well.
-sGainwas designed for NLP but currently doesn't used as NLP has another logic now.
Thanks you,
Ivan

Quoting - Ivan Ryzhachkin (Intel)

Hi,
-coefficientsmay divergein the case of NO DT as well.
-sGainwas designed for NLP but currently doesn't used as NLP has another logic now.
Thanks you,
Ivan

Hi,

So, How to detect double talk state with IPP. is there possibility to detect double talk with IPP AEC?

No answer for a long time. This forum is very poor

No answer for a long time. This forum is very poor :(

No answer for a long time. This forum is very poor :-(

Quoting - soimattrang
Hi,

I have any question about IPP AEC.

in the document of IPP, description of ippsSubbandController_EC function follow:

IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)

These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.

If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.

If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.

the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?

Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?

Thank you very much!

Yes, really poor. As I'm subscribed to the thread but didn't receive no one post. Sorry.
IPP doesn't show the DT state. You may try using the condition described above forDT detection and uncomment ownSubbandController_EC_32f() and comment ippsSubbandController_EC_32f
and uncoomment
// 0.35 * fixed_pwr[i] > adaptive_pwr[i]) {
and comment
fixed_pwr[i] > adaptive_pwr[i] && (!dtFlag)) {
Regards,
Ivan

Quoting - Ivan Ryzhachkin (Intel)
Yes, really poor. As I'm subscribed to the thread but didn't receive no one post. Sorry.
IPP doesn't show the DT state. You may try using the condition described above forDT detection and uncomment ownSubbandController_EC_32f() and comment ippsSubbandController_EC_32f
and uncoomment
// 0.35 * fixed_pwr[i] > adaptive_pwr[i]) {
and comment
fixed_pwr[i] > adaptive_pwr[i] && (!dtFlag)) {
Regards,
Ivan

Thanks for answer,

So, are there any differences between ippsSubbandController_EC_32f and ownSubbandController_EC_32f?

internal of ippsSubbandController_EC function detected double - talk state, is this right? If right, so, Why performance of ippsSubbandController_EC is very poor when double talk state occurs

Quoting - soimattrang
Hi,

I have any question about IPP AEC.

in the document of IPP, description of ippsSubbandController_EC function follow:

IppStatus ippsSubbandController_EC_32f(const Ipp32fc* pSrcAdaptiveFilterErr, const Ipp32fc* pSrcFixedFilterErr, Ipp32fc** ppDstAdaptiveCoefs, Ipp32fc** ppDstFixedCoefs, Ipp32f* pDstSGain, IppsSubbandControllerState_EC_32f* pState)

These functions compare powers of adaptive filter error and fixed filter error and track changes of adaptive filter coefficients power.

If the adaptive filter has a significantly smaller error and is stable (which is indicated by coefficients power changing slowly), its coefficients are copied to the fixed filter. This case corresponds to no double-talk mode.

If the fixed filter has a significantly smaller error, its coefficients are copied to the adaptive filter. This case corresponds to the double-talk mode.

the description above indicate that, internal of ippsSubbandController_EC function detected double - talk mode, is this right?

Send gain coefficient calculation (non-linear processor technology) is based on presence of the double-talk mode and changes of receive-in and send-in signal powers. So, to rely on value of pDstSGain parameter could i know presence of double-talk mode? if double-talk is presence how is value of pDstSGain?

Thank you very much!

Hi,
with the changes suggested the content becames similar. Really some simple implementations of DT were tried with no big effect. Seems it's the area of improvements.
best regards,
Ivan

Quoting - Ivan Ryzhachkin (Intel)

Hi,
with the changes suggested the content becames similar. Really some simple implementations of DT were tried with no big effect. Seems it's the area of improvements.
best regards,
Ivan

Hi,

Does AEC(ver. 6.1.1) has using residual echo canceller?

best regards,
Duongdx

Quoting - soimattrang

Hi,

Does AEC(ver. 6.1.1) has using residual echo canceller?

best regards,
Duongdx

Hi Duongdx,
Yes, if you mean NLP (non-linear processing). NLP mitigates the residual echo after NLMS block. The nlp option usedin the sample.
Ivan

Quoting - Ivan Ryzhachkin (Intel)

Hi Duongdx,
Yes, if you mean NLP (non-linear processing). NLP mitigates the residual echo after NLMS block. The nlp option usedin the sample.
Ivan

Hi,
I mean NLP, was it implemented in the cnr_32f function? do I have to set parameter Ec_Info.params.modes.cng = 1 to enable this feature?

Currently, I set AEC's parameters follow:

Ec_Info.params.pcmType.sample_frequency=16000;
Ec_Info.params.pcmType.bitPerSample=16;
Ec_Info.params.pcmType.nChannels=1;
Ec_Info.params.algType=EC_SUBBAND;
Ec_Info.params.modes.adapt=AD_FULADAPT;
Ec_Info.params.modes.zeroCoeff=1;
Ec_Info.params.echotail=200;
Ec_Info.params.modes.nlp=1;
Ec_Info.params.modes.ah=1;
Ec_Info.params.modes.td=1;
Ec_Info.params.modes.cng=0;
Ec_Info.params.modes.nr=4;
Ec_Info.params.modes.nr_smooth=0;
Ec_Info.params.modes.ap=1;
Ec_Info.params.modes.dcFlag = 1;

did Parameters set above the best for performance of AEC?

Best Reply

Quoting - soimattrang

Hi,
I mean NLP, was it implemented in the cnr_32f function? do I have to set parameter Ec_Info.params.modes.cng = 1 to enable this feature?

Hi,
Sure,

pInfo->params.modes.nlp = 1

state->nlp=1 for sb in cnr_32f.
cng stay for comfort noise generation.
regards,
Ivan

Quoting - Ivan Ryzhachkin (Intel)

Hi,
Sure,

pInfo->params.modes.nlp = 1

state->nlp=1 for sb in cnr_32f.
cng stay for comfort noise generation.
regards,
Ivan

By the way...

Does any one knows what Ec_Info.params.modes.zeroCoeff=1; does ?

If you look at the code sample there is a big "/ ???" beside it, so even the sample developper have no clue about it...

Personally I had bad results with it and now I set it to 0.

Quoting - jhr

By the way...

Does any one knows what Ec_Info.params.modes.zeroCoeff=1; does ?

If you look at the code sample there is a big "/ ???" beside it, so even the sample developper have no clue about it...

Personally I had bad results with it and now I set it to 0.

Hi,
zeroCoeff = 1 orders both adaptation and fixed filter coefficients zeroingwhile init() and reinit().
The comment ///? - reflects the situation of some ambiguitybetweenexternal and internal option (internally zero means zeroing).
Theoretically in thesituation ofstable echo path and environment the better resultcould be obtainedwhen pre-trained coefficientsused (not zeroed in reinit for ex. when the newcall estableshed).
regards,
Ivan

Leave a Comment

Please sign in to add a comment. Not a member? Join today