New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 779057 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

105.2% 'improvement' in browser_tests at 503499:510069

Project Member Reported by aleloi@chromium.org, Oct 27 2017

Issue description

Except it's not an improvement. The gain varies by a lot after the alert. Locally, SOX splits the recorded signal into more pieces than the reference signals causing the test to crash.
 
Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Oct 27 2017

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=779057

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=643aaf99b71fb0f689fe1b10660aa3191d235bd343387ae7d19f3862c0e3e9e5


Bot(s) for this bug's original alert(s):

chromium-webrtc-rel-7

Comment 2 by aleloi@chromium.org, Oct 30 2017

Cc: phoglund@webrtc.org
The gain varies a lot both after the change and before. The test is brittle and often fails for me locally when I try to reproduce.

Attaching prel results of investigation:
* recorded audio before and after alert (I can't notice any big difference)
* logs from 10 runs each before and after the change
* waveform diagrams of the result before the alert (shows wildly varying gains during speech)
before.zip
5.9 MB Download
after.zip
8.0 MB Download
3_of_10_passed_before_change
14.6 KB View Download
2_of_10_passed_test_after_change
15.2 KB View Download
wildly_varying_gain_curves.png
62.3 KB View Download

Comment 3 by aleloi@chromium.org, Oct 30 2017

I hacked Chrome to always start aecdumps. Result of digging: the fast gain change and resulting bad experience seems to be the fault of webrtc. AECdump attached.
after_55Am40.aecdump
27.4 MB Download

Comment 4 by aleloi@chromium.org, Oct 30 2017

I think I have found the cause for the test brittleness, at least for my attempts of reproducing it locally: the AEC is on, and it changes the output in an unintended way.

The test makes two tabs, records sound from one of them, and sends to the other. The APM of the first tab is fed the playout of the second. Since that playout is the processed input, there is strong correlation, and the AEC tries to compensate.

For reference: here is how I run the test

./out/debug/browser_tests --gtest_filter=WebRtcAudioQualityBrowserTest.MANUAL_TestAutoGainControlOnLowAudio --single-process 2> log_file

Here is how I run it offline with AEC switched off (the output is reasonable):

~/webrtc/src/out/debug/audioproc_f -dump_input /tmp/aecdump_dir/after_55Am40.aecdump -o running_offline.wav --aec 0 --agc 1 --agc_mode 2  --agc_limiter 1 --experimental_agc 1 --hpf 1 --ns 1 --ns_level 2 --ts 1 --ie 0


Project Member

Comment 5 by bugdroid1@chromium.org, Nov 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a81a99f7d5f6307e0117f210826790dcb220708

commit 5a81a99f7d5f6307e0117f210826790dcb220708
Author: Alex Loiko <aleloi@chromium.org>
Date: Wed Nov 01 00:45:24 2017

AGC test shouldn't enable AEC.

The test
WebRtcAudioQualityBrowserTest.MANUAL_TestAutoGainControlOnLowAudio
sets up a WebRTC audio-only one-way connection between two Chrome
tabs. The first tab receives recorded audio from a fake microphone and
sends it to the second tab. The second tab plays the audio which is
then recorded.

The WebRTC connection is negotiated with constraints "{audio: true}",
which enable the AEC. The AEC affects audio levels, and changes in it
potentially cause alerts such as this one:
https://chromeperf.appspot.com/group_report?bug_id=779057

On some test settings (with '--single-process'), the AEC of one tab
sees the playout stream (reverse) of the other tab, causing it to
cancel the 'echo'. That leads to heavy speech distortion and often
test failure (see the  bug chromium:779057 ).

This change disables AEC in the AGC tests.

Bug:  chromium:779057 
Change-Id: Ie774e2faba41f057e47fb2ed4ee402217da8aaf3
Reviewed-on: https://chromium-review.googlesource.com/746641
Reviewed-by: Patrik Höglund <phoglund@chromium.org>
Commit-Queue: Alex Loiko <aleloi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513028}
[modify] https://crrev.com/5a81a99f7d5f6307e0117f210826790dcb220708/chrome/browser/media/webrtc/webrtc_audio_quality_browsertest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment