DescriptionThe auto gain control test plays a file into the fake microphone. Then it
sets up a one-way WebRTC call with audio only and records Chrome's output on
the receiving side using the audio loopback provided by the quality test
(see the class comments for more details).
Then both the recording and reference file are split on silence. This creates
a number of segments with speech in them. The reason for this is to provide
a kind of synchronization mechanism so the start of each speech segment is
compared to the start of the corresponding speech segment. This is because we
will experience inevitable clock drift between the system clock (which runs
the fake microphone) and the sound card (which runs play-out). Effectively
re-synchronizing on each segment mitigates this.
The silence splitting is inherently sensitive to the sound file we run on.
Therefore the reference file must have at least 500 ms of pure silence
between speech segments; the test will fail if the output produces more
segments than the reference.
The test reports the difference in dBFS units between the reference and
output file per 10 ms interval in each speech segment. A value of 6 means the
output was 6 dBFS units louder than the reference, presumably because the
AGC applied gain to the signal.
We record in CD format here (44.1 kHz) because that's what the fake input
device currently supports, and we want to be able to compare directly.
This test is currently Linux only. It should work on the other platforms
too but I'll try to get this running first. It will run on the WebRTC
internal bots and report results to the perf dashboard, so we can look at
the data it produces and see if the data on the bots is as consistent as
on my workstation.
BUG=303259
Committed: https://crrev.com/fd442ed0421ff475ed3db26ec6d5ab61de7021f0
Cr-Commit-Position: refs/heads/master@{#309196}
Patch Set 1 #Patch Set 2 : Temporary patch set which happens to crash clang #Patch Set 3 : Finalizing #Patch Set 4 : Fixing a bug in the AQ test. #
Total comments: 1
Patch Set 5 : Clarified fake device only plays the file once. #Patch Set 6 : More cleanup #
Total comments: 6
Patch Set 7 : Now computing a whole segment at a time, simplified code. #
Total comments: 12
Patch Set 8 : Addressing henrika's comments. #Patch Set 9 : Fixed win compile #
Messages
Total messages: 24 (5 generated)
|