From eacbd972ab7e85e9d61851ced57aba1eb194de3d Mon Sep 17 00:00:00 2001 From: Alessio Bazzica Date: Mon, 5 Oct 2020 16:54:41 +0200 Subject: [PATCH] AGC2 logs - Now every 10s - Also logging estimated speech+noise level - Also logging via RTC_LOG Bug: webrtc:7494 Change-Id: Ib60a74d319d29c8f6ae4ea6dae8f2bca687c4c25 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186780 Reviewed-by: Sam Zackrisson Commit-Queue: Alessio Bazzica Cr-Commit-Position: refs/heads/master@{#32316} --- .../agc2/adaptive_digital_gain_applier.cc | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc b/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc index e7999c0d5c..36ef9be561 100644 --- a/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc +++ b/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc @@ -16,6 +16,7 @@ #include "modules/audio_processing/agc2/agc2_common.h" #include "modules/audio_processing/logging/apm_data_dumper.h" #include "rtc_base/checks.h" +#include "rtc_base/logging.h" #include "rtc_base/numerics/safe_minmax.h" #include "system_wrappers/include/metrics.h" @@ -122,16 +123,6 @@ void AdaptiveDigitalGainApplier::Process(const FrameInfo& info, << "`frame` does not look like a 10 ms frame for an APM supported sample " "rate"; - // Log every second. - calls_since_last_gain_log_++; - if (calls_since_last_gain_log_ == 100) { - calls_since_last_gain_log_ = 0; - RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.Agc2.DigitalGainApplied", - last_gain_db_, 0, kMaxGainDb, kMaxGainDb + 1); - RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.Agc2.EstimatedNoiseLevel", - -info.input_noise_level_dbfs, 0, 100, 101); - } - const float target_gain_db = LimitGainByLowConfidence( LimitGainByNoise(ComputeGainDb(std::min(info.input_level_dbfs, 0.f)), info.input_noise_level_dbfs, @@ -167,5 +158,22 @@ void AdaptiveDigitalGainApplier::Process(const FrameInfo& info, // Remember that the gain has changed for the next iteration. last_gain_db_ = last_gain_db_ + gain_change_this_frame_db; apm_data_dumper_->DumpRaw("agc2_applied_gain_db", last_gain_db_); + + // Log every 10 seconds. + calls_since_last_gain_log_++; + if (calls_since_last_gain_log_ == 1000) { + calls_since_last_gain_log_ = 0; + RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.Agc2.DigitalGainApplied", + last_gain_db_, 0, kMaxGainDb, kMaxGainDb + 1); + RTC_HISTOGRAM_COUNTS_LINEAR( + "WebRTC.Audio.Agc2.EstimatedSpeechPlusNoiseLevel", + -info.input_level_dbfs, 0, 100, 101); + RTC_HISTOGRAM_COUNTS_LINEAR("WebRTC.Audio.Agc2.EstimatedNoiseLevel", + -info.input_noise_level_dbfs, 0, 100, 101); + RTC_LOG(LS_INFO) << "AGC2 adaptive digital" + << " | speech_plus_noise_dbfs: " << info.input_level_dbfs + << " | noise_dbfs: " << info.input_noise_level_dbfs + << " | gain_db: " << last_gain_db_; + } } } // namespace webrtc