delay estrimator: Enable looking for early reverberation

Enable by default the look for the first echo.

Bug: webrtc:14205
Change-Id: Iae904679c1432f3a0766263907cf376903685b97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/278043
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Lionel Koenig <lionelk@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38452}
This commit is contained in:
Lionel Koenig 2022-10-21 14:51:30 +02:00 committed by WebRTC LUCI CQ
parent b3b140d94b
commit 9707f579ae
2 changed files with 4 additions and 2 deletions

View File

@ -59,7 +59,7 @@ struct RTC_EXPORT EchoCanceller3Config {
}; };
AlignmentMixing render_alignment_mixing = {false, true, 10000.f, true}; AlignmentMixing render_alignment_mixing = {false, true, 10000.f, true};
AlignmentMixing capture_alignment_mixing = {false, true, 10000.f, false}; AlignmentMixing capture_alignment_mixing = {false, true, 10000.f, false};
bool detect_pre_echo = false; bool detect_pre_echo = true;
} delay; } delay;
struct Filter { struct Filter {

View File

@ -71,7 +71,6 @@ TEST(EchoPathDelayEstimator, DelayEstimation) {
constexpr int kSampleRateHz = 48000; constexpr int kSampleRateHz = 48000;
constexpr size_t kNumBands = NumBandsForRate(kSampleRateHz); constexpr size_t kNumBands = NumBandsForRate(kSampleRateHz);
Random random_generator(42U);
Block render(kNumBands, kNumRenderChannels); Block render(kNumBands, kNumRenderChannels);
Block capture(/*num_bands=*/1, kNumCaptureChannels); Block capture(/*num_bands=*/1, kNumCaptureChannels);
ApmDataDumper data_dumper(0); ApmDataDumper data_dumper(0);
@ -82,6 +81,9 @@ TEST(EchoPathDelayEstimator, DelayEstimation) {
config.delay.down_sampling_factor = down_sampling_factor; config.delay.down_sampling_factor = down_sampling_factor;
config.delay.num_filters = 10; config.delay.num_filters = 10;
for (size_t delay_samples : {30, 64, 150, 200, 800, 4000}) { for (size_t delay_samples : {30, 64, 150, 200, 800, 4000}) {
// Random generator become periodic after a while. To avoid issue in the
// unittest we ensure to seed it for every case.
Random random_generator(42U);
SCOPED_TRACE(ProduceDebugText(delay_samples, down_sampling_factor)); SCOPED_TRACE(ProduceDebugText(delay_samples, down_sampling_factor));
std::unique_ptr<RenderDelayBuffer> render_delay_buffer( std::unique_ptr<RenderDelayBuffer> render_delay_buffer(
RenderDelayBuffer::Create(config, kSampleRateHz, kNumRenderChannels)); RenderDelayBuffer::Create(config, kSampleRateHz, kNumRenderChannels));