>What happens if you make SPEEX_PREPROCESS_SET_ECHO_SUPPRESS_ACTIVE less >aggressive. Does it end up with too much echo or it just doesn't realise >that it's in double-talk conditions?My impression is that it does not make much difference on the timing to set this parameter less aggressive. Depending on the how loud the near end is talking it may detect double talk but most often it does not detect double talk and near end is suppressed by amount of ECHO_SUPRESS.>> The important parameter for the speech switching is the Pframe. >> Pframe is as you know based on the SNR estimation. However when the >> near-end signal is low compared to the far-end signal (coming from >> the close speaker element) the SNR is not distinctly increased when >> near-end talks. > >Yes, Pframe estimation is one of the main problems I was having and I'm >not entirely sure how to solve that. I suspect that the residual echo >estimation also doesn't help.I think the residual echo estimation is fairly reliable but I do not know how to use this to improve Pframe and in that way solve our main problem with the gain during near end talk.>> Our main problem is that it is hard to have good reliance on a high >> "gain2" when near-end is talking, resulting in missing conversation >> in one direction. Some improvement can be made by modifying the >> Qcurve function but it is very sensitive. >> >> A secondary problem we also have is that the residual echo during >> decay of far-end talk is not suppressed very well. This is probably >> caused by the strong echo coupling plus a fairly reverberant room. We >> have been able to solve this by adding a weighting factor and some >> accumulation on the residual_echo and echo_noise. This modification >> works perfect on the far-end-problem but worsen the main problem even >> more. > >This is probably the effect of reverberation and can probably be solved >by tuning/improving the current recursive averaging of the echo estimate.Yes, I have basically solved this. Our main problem with the poor reliability during near end talk is what we need to find a solution to now. Best Regards Johan
Johan Nilsson a ?crit :>> What happens if you make SPEEX_PREPROCESS_SET_ECHO_SUPPRESS_ACTIVE less >> aggressive. Does it end up with too much echo or it just doesn't realise >> that it's in double-talk conditions? > > My impression is that it does not make much difference on the timing to > set this parameter less aggressive. Depending on the how loud the > near end is talking it may detect double talk but most often it does not > detect double talk and near end is suppressed by amount of ECHO_SUPRESS.The only thing it *could* have help for is making the clipping less severe, but apparently the proprocessor thinks there's no double-talk.> I think the residual echo estimation is fairly reliable but I do not know > how to use this to improve Pframe and in that way solve our main problem > with the gain during near end talk.How can you tell that the residual echo estimation is reliable? in any case, I suspect that the whole Pframe idea might have to be revised (i.e. computing it completely differently or even not having a Pframe at all).> Our main problem with the poor reliability during near end talk is what we > need to find a solution to now.OK, I'll have to think about it. At this point I'm not sure what to do here. If you find anything, I'm definitely interested. Cheers, Jean-Marc
>> I think the residual echo estimation is fairly reliable but I do not know >> how to use this to improve Pframe and in that way solve our main problem >> with the gain during near end talk. > > How can you tell that the residual echo estimation is reliable? in any > case, I suspect that the whole Pframe idea might have to be revised > (i.e. computing it completely differently or even not having a Pframe at > all).My impression when simulating in matlab is that the noise estimate which is based on the residual echo is correlating well with the far-end activity.>> Our main problem with the poor reliability during near end talk is what we >> need to find a solution to now. > > OK, I'll have to think about it. At this point I'm not sure what to do > here. If you find anything, I'm definitely interested.The one idea I have is to have a default gain2 of 0dB and only when the residual echo goes high we reduce the gain2. This could be implemented similar to eq. (3) and (4) in this paper: http://research.microsoft.com/pubs/69504/diegobenderskyhdres.pdf The idea would be to use your estimation of the residual echo and noise But to modify the calculation of the gain2. This would probably offer a more robust solution since we do not have to rely on the SNR. However we would lose the noise suppression functionality I guess (which probably is ok). Are you familiar with any other RES-algorithm that might be more robust to weak near-end signals? Best regards /Johan