Gain too high in WebRTC adaptive digital gain controller 2 |
|||||||
Issue descriptionCopied from https://webrtc-review.googlesource.com/c/src/+/102922: The AdaptiveAgc often boosts the signal outside of Float S16 range. It is expected, which is why we have a limiter after it in the process chain. But it turns out that this happens regularly even for simple input examples. The output signal peaks can be as high as +4 dBFs for a single speaker example (which should be easy). It leads to excessive gain modulation by the limiter. What steps will reproduce the problem? 1. Take a low-noise speech file like the ones in https://webrtc.googlesource.com/src.git/+/master/resources/audio_processing/conversational_speech 2. compile audioproc_f with 'apm_debug_dump=true' 3. Run audioproc_f -agc2 1 -i <speech file> What is the expected result? The limiter of AGC2 should hardly ever kick in. What do you see instead? In the beginning of a call, the limiter is active more that it's not.
,
Oct 4
[Triage] This doesn't seem to be a Chromium bug. Should it be a WebRTC bug?
,
Oct 4
,
Oct 4
#2, grunell@: I want to make a merge request when it's fixed. I think that's easier with a Chrome bug.
,
Oct 5
The following revision refers to this bug: https://webrtc.googlesource.com/src.git/+/4bb1e4a1d50fbae6043ca73a83117a18d81f755e commit 4bb1e4a1d50fbae6043ca73a83117a18d81f755e Author: Alex Loiko <aleloi@webrtc.org> Date: Fri Oct 05 09:55:25 2018 Lower gain parameters for AGC2. The AdaptiveAgc often boosts the signal outside of Float S16 range. It is expected, which is why we have a limiter after it in the process chain. But it turns out that this happens regularly even for simple input examples. The output signal peaks can be as high as +4 dBFs for a single speaker example (which should be easy). It leads to excessive gain modulation by the limiter. This CL is a new tuning designed to produce a safer gain. After this, we shouldn't hit the saturation region of the limiter as often. But we will still maintain a high gain. We have a 'configurable kill-switch': the settings can be changed via field trials WebRTC-Audio-Agc2Force(Initial|Extra)SaturationMargin. Bug: webrtc:7494, chromium:892043 Change-Id: I5014377050c74c32ae8998282991141eae31cf58 Reviewed-on: https://webrtc-review.googlesource.com/c/102922 Commit-Queue: Alex Loiko <aleloi@webrtc.org> Reviewed-by: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25006} [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/BUILD.gn [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/adaptive_mode_level_estimator_unittest.cc [add] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/agc2_common.cc [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/agc2_common.h [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/saturation_protector.cc [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/saturation_protector.h [modify] https://crrev.com/4bb1e4a1d50fbae6043ca73a83117a18d81f755e/modules/audio_processing/agc2/saturation_protector_unittest.cc
,
Oct 5
Requesting merge for M-70. This is a bugfix for code behind the WebRtcHybridAgc experiment which is currently in M-70 beta. The change consists of a new tuning and is covered by a kill switch. It's not yet in canary, but will be out in the next one (I think 71.0.3572). Given that the code change is behind a finch experiment and a kill switch, we consider this merge to be safe.
,
Oct 5
This bug requires manual review: We are only 10 days from stable. Please contact the milestone owner if you have questions. Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c0d32cef1fc97e8145dcc7a80f6adc03f8bf75bd commit c0d32cef1fc97e8145dcc7a80f6adc03f8bf75bd Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Date: Fri Oct 05 13:14:10 2018 Roll src/third_party/webrtc 78cdde3df652..4bb1e4a1d50f (2 commits) https://webrtc.googlesource.com/src.git/+log/78cdde3df652..4bb1e4a1d50f git log 78cdde3df652..4bb1e4a1d50f --date=short --no-merges --format='%ad %ae %s' 2018-10-05 aleloi@webrtc.org Lower gain parameters for AGC2. 2018-10-05 sprang@webrtc.org Hide libvpx vp8 encoder behind an interface and add mock for testing. Created with: gclient setdep -r src/third_party/webrtc@4bb1e4a1d50f The AutoRoll server is located here: https://autoroll.skia.org/r/webrtc-chromium-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_archive_rel_ng;luci.chromium.try:mac_chromium_archive_rel_ng BUG= chromium:892043 TBR=webrtc-chromium-sheriffs-robots@google.com Change-Id: I1c344b233a72919ef2cfa09d34ea7f3adb194e41 Reviewed-on: https://chromium-review.googlesource.com/c/1264619 Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#597088} [modify] https://crrev.com/c0d32cef1fc97e8145dcc7a80f6adc03f8bf75bd/DEPS
,
Oct 5
Change is behind finch.
,
Oct 9
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 12
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 31
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by aleloi@chromium.org
, Oct 4