Some API deprecation -- ExperimentalAgc and ExperimentalNs are gone. We're continuing to carry iSAC even though it's gone upstream, but maybe we'll want to drop that soon.
63 lines
2.4 KiB
C++
63 lines
2.4 KiB
C++
/*
|
|
* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_PROCESSING_AGC2_AGC2_COMMON_H_
|
|
#define MODULES_AUDIO_PROCESSING_AGC2_AGC2_COMMON_H_
|
|
|
|
namespace webrtc {
|
|
|
|
constexpr float kMinFloatS16Value = -32768.0f;
|
|
constexpr float kMaxFloatS16Value = 32767.0f;
|
|
constexpr float kMaxAbsFloatS16Value = 32768.0f;
|
|
|
|
// Minimum audio level in dBFS scale for S16 samples.
|
|
constexpr float kMinLevelDbfs = -90.31f;
|
|
|
|
constexpr int kFrameDurationMs = 10;
|
|
constexpr int kSubFramesInFrame = 20;
|
|
constexpr int kMaximalNumberOfSamplesPerChannel = 480;
|
|
|
|
// Adaptive digital gain applier settings.
|
|
|
|
// At what limiter levels should we start decreasing the adaptive digital gain.
|
|
constexpr float kLimiterThresholdForAgcGainDbfs = -1.0f;
|
|
|
|
// Number of milliseconds to wait to periodically reset the VAD.
|
|
constexpr int kVadResetPeriodMs = 1500;
|
|
|
|
// Speech probability threshold to detect speech activity.
|
|
constexpr float kVadConfidenceThreshold = 0.95f;
|
|
|
|
// Minimum number of adjacent speech frames having a sufficiently high speech
|
|
// probability to reliably detect speech activity.
|
|
constexpr int kAdjacentSpeechFramesThreshold = 12;
|
|
|
|
// Number of milliseconds of speech frames to observe to make the estimator
|
|
// confident.
|
|
constexpr float kLevelEstimatorTimeToConfidenceMs = 400;
|
|
constexpr float kLevelEstimatorLeakFactor =
|
|
1.0f - 1.0f / kLevelEstimatorTimeToConfidenceMs;
|
|
|
|
// Saturation Protector settings.
|
|
constexpr float kSaturationProtectorInitialHeadroomDb = 20.0f;
|
|
constexpr int kSaturationProtectorBufferSize = 4;
|
|
|
|
// Number of interpolation points for each region of the limiter.
|
|
// These values have been tuned to limit the interpolated gain curve error given
|
|
// the limiter parameters and allowing a maximum error of +/- 32768^-1.
|
|
constexpr int kInterpolatedGainCurveKneePoints = 22;
|
|
constexpr int kInterpolatedGainCurveBeyondKneePoints = 10;
|
|
constexpr int kInterpolatedGainCurveTotalPoints =
|
|
kInterpolatedGainCurveKneePoints + kInterpolatedGainCurveBeyondKneePoints;
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_PROCESSING_AGC2_AGC2_COMMON_H_
|