Update GainController2 adaptive digital default parameters
Update the default parameters to match with the Chromium parameters in
https://chromium-review.googlesource.com/c/chromium/src/+/5272859.
Bug: webrtc:7494
Change-Id: Id405109cca4adaa6d21945ed89f84d7e27ad361b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/345923
Commit-Queue: Hanna Silen <silen@webrtc.org>
Reviewed-by: Per Ã…hgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42048}
diff --git a/modules/audio_processing/agc2/adaptive_digital_gain_controller_unittest.cc b/modules/audio_processing/agc2/adaptive_digital_gain_controller_unittest.cc
index e95cbb5..cff9b4e 100644
--- a/modules/audio_processing/agc2/adaptive_digital_gain_controller_unittest.cc
+++ b/modules/audio_processing/agc2/adaptive_digital_gain_controller_unittest.cc
@@ -93,10 +93,12 @@
GetMaxGainChangePerFrameDb(
kDefaultConfig.max_gain_change_db_per_second)) +
kNumExtraFrames;
-
- GainApplierHelper helper(kDefaultConfig, kAdjacentSpeechFramesThreshold);
+ constexpr AdaptiveDigitalConfig kConfig = AdaptiveDigitalConfig{
+ // Increase from the default in order to reach the maximum gain.
+ .max_output_noise_level_dbfs = -40.0f};
+ GainApplierHelper helper(kConfig, kAdjacentSpeechFramesThreshold);
AdaptiveDigitalGainController::FrameInfo info =
- GetFrameInfoToNotAdapt(kDefaultConfig);
+ GetFrameInfoToNotAdapt(kConfig);
info.speech_level_dbfs = -60.0f;
float applied_gain;
for (int i = 0; i < kNumFramesToAdapt; ++i) {
diff --git a/modules/audio_processing/agc2/speech_level_estimator_unittest.cc b/modules/audio_processing/agc2/speech_level_estimator_unittest.cc
index e1c5f85..2e627a4 100644
--- a/modules/audio_processing/agc2/speech_level_estimator_unittest.cc
+++ b/modules/audio_processing/agc2/speech_level_estimator_unittest.cc
@@ -152,7 +152,7 @@
level_estimator.initial_speech_level_dbfs);
ASSERT_TRUE(level_estimator.estimator->is_confident());
// After confidence.
- constexpr float kConvergenceTimeAfterConfidenceNumFrames = 600; // 6 seconds.
+ constexpr float kConvergenceTimeAfterConfidenceNumFrames = 700; // 7 seconds.
static_assert(
kConvergenceTimeAfterConfidenceNumFrames > kNumFramesToConfidence, "");
RunOnConstantLevel(
diff --git a/modules/audio_processing/gain_controller2_unittest.cc b/modules/audio_processing/gain_controller2_unittest.cc
index 5023bab..71642dc 100644
--- a/modules/audio_processing/gain_controller2_unittest.cc
+++ b/modules/audio_processing/gain_controller2_unittest.cc
@@ -450,7 +450,7 @@
const float applied_gain_db =
20.0f * std::log10(audio_buffer.channels_const()[0][0]);
- constexpr float kExpectedGainDb = 5.6f;
+ constexpr float kExpectedGainDb = 7.0f;
constexpr float kToleranceDb = 0.3f;
EXPECT_NEAR(applied_gain_db, kExpectedGainDb, kToleranceDb);
}
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index dd484be..02fb497 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -361,10 +361,10 @@
return !(*this == rhs);
}
bool enabled = false;
- float headroom_db = 6.0f;
- float max_gain_db = 30.0f;
- float initial_gain_db = 8.0f;
- float max_gain_change_db_per_second = 3.0f;
+ float headroom_db = 5.0f;
+ float max_gain_db = 50.0f;
+ float initial_gain_db = 15.0f;
+ float max_gain_change_db_per_second = 6.0f;
float max_output_noise_level_dbfs = -50.0f;
} adaptive_digital;