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}
This commit is contained in:
Hanna Silen 2024-04-08 15:54:44 +03:00 committed by WebRTC LUCI CQ
parent 79b9c7e889
commit 7000b99384
4 changed files with 11 additions and 9 deletions

View file

@ -93,10 +93,12 @@ TEST(GainController2AdaptiveDigitalGainControllerTest, MaxGainApplied) {
GetMaxGainChangePerFrameDb( GetMaxGainChangePerFrameDb(
kDefaultConfig.max_gain_change_db_per_second)) + kDefaultConfig.max_gain_change_db_per_second)) +
kNumExtraFrames; kNumExtraFrames;
constexpr AdaptiveDigitalConfig kConfig = AdaptiveDigitalConfig{
GainApplierHelper helper(kDefaultConfig, kAdjacentSpeechFramesThreshold); // 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 = AdaptiveDigitalGainController::FrameInfo info =
GetFrameInfoToNotAdapt(kDefaultConfig); GetFrameInfoToNotAdapt(kConfig);
info.speech_level_dbfs = -60.0f; info.speech_level_dbfs = -60.0f;
float applied_gain; float applied_gain;
for (int i = 0; i < kNumFramesToAdapt; ++i) { for (int i = 0; i < kNumFramesToAdapt; ++i) {

View file

@ -152,7 +152,7 @@ TEST(GainController2SpeechLevelEstimator, ConvergenceSpeedAfterConfidence) {
level_estimator.initial_speech_level_dbfs); level_estimator.initial_speech_level_dbfs);
ASSERT_TRUE(level_estimator.estimator->is_confident()); ASSERT_TRUE(level_estimator.estimator->is_confident());
// After confidence. // After confidence.
constexpr float kConvergenceTimeAfterConfidenceNumFrames = 600; // 6 seconds. constexpr float kConvergenceTimeAfterConfidenceNumFrames = 700; // 7 seconds.
static_assert( static_assert(
kConvergenceTimeAfterConfidenceNumFrames > kNumFramesToConfidence, ""); kConvergenceTimeAfterConfidenceNumFrames > kNumFramesToConfidence, "");
RunOnConstantLevel( RunOnConstantLevel(

View file

@ -450,7 +450,7 @@ TEST(GainController2, CheckFinalGainWithAdaptiveDigitalController) {
const float applied_gain_db = const float applied_gain_db =
20.0f * std::log10(audio_buffer.channels_const()[0][0]); 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; constexpr float kToleranceDb = 0.3f;
EXPECT_NEAR(applied_gain_db, kExpectedGainDb, kToleranceDb); EXPECT_NEAR(applied_gain_db, kExpectedGainDb, kToleranceDb);
} }

View file

@ -361,10 +361,10 @@ class RTC_EXPORT AudioProcessing : public RefCountInterface {
return !(*this == rhs); return !(*this == rhs);
} }
bool enabled = false; bool enabled = false;
float headroom_db = 6.0f; float headroom_db = 5.0f;
float max_gain_db = 30.0f; float max_gain_db = 50.0f;
float initial_gain_db = 8.0f; float initial_gain_db = 15.0f;
float max_gain_change_db_per_second = 3.0f; float max_gain_change_db_per_second = 6.0f;
float max_output_noise_level_dbfs = -50.0f; float max_output_noise_level_dbfs = -50.0f;
} adaptive_digital; } adaptive_digital;