AGC2 limiter stats + config ToString missing param
Bug: webrtc:7494 Change-Id: Icb6a164882af5c15c9400eb869dccbfda20b3da7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194324 Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32653}
This commit is contained in:

committed by
Commit Bot

parent
f46723c8aa
commit
08d2a703fc
@ -16,6 +16,7 @@
|
||||
#include "modules/audio_processing/logging/apm_data_dumper.h"
|
||||
#include "rtc_base/atomic_ops.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/strings/string_builder.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -27,7 +28,8 @@ GainController2::GainController2()
|
||||
new ApmDataDumper(rtc::AtomicOps::Increment(&instance_count_))),
|
||||
gain_applier_(/*hard_clip_samples=*/false,
|
||||
/*initial_gain_factor=*/0.f),
|
||||
limiter_(static_cast<size_t>(48000), data_dumper_.get(), "Agc2") {
|
||||
limiter_(static_cast<size_t>(48000), data_dumper_.get(), "Agc2"),
|
||||
calls_since_last_limiter_log_(0) {
|
||||
if (config_.adaptive_digital.enabled) {
|
||||
adaptive_agc_.reset(new AdaptiveAgc(data_dumper_.get()));
|
||||
}
|
||||
@ -43,6 +45,7 @@ void GainController2::Initialize(int sample_rate_hz) {
|
||||
limiter_.SetSampleRate(sample_rate_hz);
|
||||
data_dumper_->InitiateNewSetOfRecordings();
|
||||
data_dumper_->DumpRaw("sample_rate_hz", sample_rate_hz);
|
||||
calls_since_last_limiter_log_ = 0;
|
||||
}
|
||||
|
||||
void GainController2::Process(AudioBuffer* audio) {
|
||||
@ -54,6 +57,18 @@ void GainController2::Process(AudioBuffer* audio) {
|
||||
adaptive_agc_->Process(float_frame, limiter_.LastAudioLevel());
|
||||
}
|
||||
limiter_.Process(float_frame);
|
||||
|
||||
// Log limiter stats every 30 seconds.
|
||||
++calls_since_last_limiter_log_;
|
||||
if (calls_since_last_limiter_log_ == 3000) {
|
||||
calls_since_last_limiter_log_ = 0;
|
||||
InterpolatedGainCurve::Stats stats = limiter_.GetGainCurveStats();
|
||||
RTC_LOG(LS_INFO) << "AGC2 limiter stats"
|
||||
<< " | identity: " << stats.look_ups_identity_region
|
||||
<< " | knee: " << stats.look_ups_knee_region
|
||||
<< " | limiter: " << stats.look_ups_limiter_region
|
||||
<< " | saturation: " << stats.look_ups_saturation_region;
|
||||
}
|
||||
}
|
||||
|
||||
void GainController2::NotifyAnalogLevel(int level) {
|
||||
|
@ -46,6 +46,7 @@ class GainController2 {
|
||||
GainApplier gain_applier_;
|
||||
std::unique_ptr<AdaptiveAgc> adaptive_agc_;
|
||||
Limiter limiter_;
|
||||
int calls_since_last_limiter_log_;
|
||||
int analog_level_ = -1;
|
||||
|
||||
RTC_DISALLOW_COPY_AND_ASSIGN(GainController2);
|
||||
|
@ -153,7 +153,9 @@ std::string AudioProcessing::Config::ToString() const {
|
||||
<< gain_controller2.fixed_digital.gain_db
|
||||
<< "}, adaptive_digital: { enabled: "
|
||||
<< gain_controller2.adaptive_digital.enabled
|
||||
<< ", level_estimator: { type: "
|
||||
<< ", level_estimator: { vad_probability_attack: "
|
||||
<< gain_controller2.adaptive_digital.vad_probability_attack
|
||||
<< ", type: "
|
||||
<< GainController2LevelEstimatorToString(
|
||||
gain_controller2.adaptive_digital.level_estimator)
|
||||
<< ", adjacent_speech_frames_threshold: "
|
||||
|
Reference in New Issue
Block a user