mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
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:
parent
79b9c7e889
commit
7000b99384
4 changed files with 11 additions and 9 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue