980 Commits

Author SHA1 Message Date
alessiob
93cda2ebde APM-QA tool, renaming noise generators into input-reference generators.
This CL changes the name of classes, methods and variables making using "noise generator".
This naming is replaced with "input-reference generator" which is more descriptive of the actual role.
Comments, CSS class and HTML item names have also been changed.
Consistency for variable names has been verified and the style checked with pylint.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2805653002
Cr-Commit-Position: refs/heads/master@{#17639}
2017-04-11 08:06:28 +00:00
peah
6799553a2c Add information about microphone gain changes to AEC3
Changes in the microphone gain are effecting the AEC in the sense
that each change in the microphone gain is a change in the echo
path seen by the AEC. This CL utilizes the ability of AEC3 to
leverage information about known changes in the analog microphone
gain.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2808073002
Cr-Commit-Position: refs/heads/master@{#17625}
2017-04-10 21:12:41 +00:00
peah
6d822adac4 Added forced zero AEC output after call startup and echo path changes
During the first few capture frames, there is no way for the AEC
to tell whether there is echo in the capture signal as the echo
removal functionality in the AEC has not yet seen any render
signal. To avoid initial echo bursts due to this, this CL adds
functionality for forcing the echo suppression gain to zero during
the first 50 blocks (200 ms) after call start and after a reported
echo path change.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2808733002
Cr-Commit-Position: refs/heads/master@{#17624}
2017-04-10 20:52:14 +00:00
peah
925e9d762c Removed workaround for the WARN_UNUSED_RESULT issue.
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2810533003
Cr-Commit-Position: refs/heads/master@{#17615}
2017-04-10 11:18:38 +00:00
alessiob
36e6a8f1bd WavReaderAdaptor is a simple adaptor of the existing class WavReader from webrtc/common_audio/wav_file.h. The adaptor was mainly needed to use dependency injection and easily test the MultiEndCall class (see https://codereview.webrtc.org/2761853002/).
The unit test ConversationalSpeechTest.MultiEndCallWavReaderAdaptorSine uses CreateSineWavFile() and writes temporary wav files that are used for test (deleted only if the test passes).

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2774423005
Cr-Commit-Position: refs/heads/master@{#17608}
2017-04-10 07:53:53 +00:00
alessiob
8d23c050f2 MultiEndCall::CheckTiming() verifies that a set of audio tracks and timing information is valid to simulate conversational speech. Unordered turns are rejected. Self cross-talk and cross-talk with 3 or more speakers are not permitted since it would require mixing at the simulation step.
This CL includes extensive tests to match accept or reject decisions on several different timing setups. The setups are simulated using mocks (by far more light-weight than using actual timing and audio track files).

The client code, the unit tests in this case, passes information about the fake audio tracks to MockWavReaderFactory. MockWavReader instances are then created using the parameters defined in the client code. To improve the readability of the tests, generator_unittest.cc includes a docstring explaining how each MultiEndCallSetup* test is documented.

Run tests as follows:
$ out/Default/modules_unittests --gtest_filter=ConversationalSpeechTest.*

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2781573002
Cr-Commit-Position: refs/heads/master@{#17592}
2017-04-07 19:05:08 +00:00
peah
89420459d1 Adding support for handling highly reverberant echoes in AEC3.
This CL adds support for handling highly reverberant echoes in
AEC3. The functionality is hardcoded to be have no effect (via
a decay factor of 0), but this CL will be followed by other CLs
for which nonzero decay factors will be allowed.

Apart from this change, this CL also refactors the residual
echo estimation code to make it shorter and more readable.

The changes introduced herein are bitexact (for a decay factor
of 0).

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2804223002
Cr-Commit-Position: refs/heads/master@{#17589}
2017-04-07 13:13:39 +00:00
peah
2ce640fada Fixing sample-rate dependent band-split filter issues in AEC3
This CL ensures that the number of bands
for the render side matches that for the capture side
when AEC3 is active. Without this, there was problems
when the render rate is different from the capture rate.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2800033003
Cr-Commit-Position: refs/heads/master@{#17586}
2017-04-07 10:57:48 +00:00
mbonadei
7c2c8438f1 Reland of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #1 id:1 of https://codereview.webrtc.org/2786363002/ )
Reason for revert:
Trying to re-land after solving some related issues.

There are no changes compared to the original CL.

Original issue's description:
> Revert of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #16 id:300001 of https://codereview.webrtc.org/2747863003/ )
>
> Reason for revert:
> I will try to reland next week because it is causing some problems.
>
> Original issue's description:
> > To accommodate some downstream WebRTC users we need to loosen
> > the coupling between our code and the //third_party/protobuf.
> >
> > This includes using typedefs to define strings instead of
> > assuming std::string.
> >
> > After this refactoring it will be possible to link with other
> > protobuf implementations than the current one.
> >
> > We moved the PRESUBMIT check to another CL [1]. The goal of this
> > presubmit is to avoid the direct usage of google::protobuf outside
> > of the webrtc/base/protobuf_utils.h header file.
> >
> > [1] - https://codereview.webrtc.org/2753823003/
> >
> > BUG=webrtc:7340
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2747863003
> > Cr-Commit-Position: refs/heads/master@{#17466}
> > Committed: 16ab93b952
>
> TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7340
>
> Review-Url: https://codereview.webrtc.org/2786363002
> Cr-Commit-Position: refs/heads/master@{#17483}
> Committed: d00aad5eb2

TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7340
NOTRY=True

Review-Url: https://codereview.webrtc.org/2791963003
Cr-Commit-Position: refs/heads/master@{#17584}
2017-04-07 07:59:12 +00:00
henrik.lundin
77492860a9 Make AudioProcessing::GetConfig() pure virtual
BUG=chromium:708475
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2796223004
Cr-Commit-Position: refs/heads/master@{#17581}
2017-04-07 06:28:09 +00:00
peah
4b572d048a Correction of the AEC3 underrun behavior and minor other corrections
This CL corrects the behavior during buffer underruns.

Furthermore, it increases the tolerance for API call jitter, and
removes the minimum value for the comfort noise.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2787123003
Cr-Commit-Position: refs/heads/master@{#17576}
2017-04-06 23:33:06 +00:00
peah
86afe9d661 Major updates to the echo removal functionality in AEC3
This CL adds fairly significant changes to the echo removal
functionality, the main ones being.
-More centralized control over the echo removal.
-Updated echo suppression gain behavior.
-Significantly increased usage of the linear adaptive filter.
-New echo removal functionality when the linear filter is not usable.

This CL is chained to the CL https://codereview.webrtc.org/2784023002/

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2782423003
Cr-Commit-Position: refs/heads/master@{#17575}
2017-04-06 22:45:32 +00:00
nisse
639d46a7ab Delete system_wrappers logging facility.
BUG=webrtc:5118

Review-Url: https://codereview.webrtc.org/2796353002
Cr-Commit-Position: refs/heads/master@{#17561}
2017-04-06 10:53:06 +00:00
guidou
f6a4f37685 Reland of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2803933002/ )
Reason for revert:
The revert did not fix the issue. Apparently this was actually the fix.

Original issue's description:
> Revert of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2799813002/ )
>
> Reason for revert:
> Causes compile error on iOS.
> export DEVELOPER_DIR=/b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app;  /b/build/slave/cache/goma_client/gomacc clang++ -MMD -MF obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o.d -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_AUDIOPROC_DEBUG_DUMP -DWEBRTC_INTELLIGIBILITY_ENHANCER=0 -DWEBRTC_NS_FIXED -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"298539-1\" -DCR_XCODE_VERSION=0821 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNS_BLOCK_ASSERTIONS=1 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DWEBRTC_IOS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party -I../../third_party/webrtc/modules/audio_coding/codecs/isac/main/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/webrtc/common_audio/resampler/include -I../../third_party/webrtc/common_audio/signal_processing/include -I../../third_party/webrtc/common_audio/vad/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wundeclared-selector -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Os -gdwarf-2 -isysroot /b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility-inlines-hidden -std=c++11 -fno-rtti -fno-exceptions -c ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc -o obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o
> ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc:20:15: error: constructor for 'webrtc::RenderBuffer' must explicitly initialize the const member 'fft_'
> RenderBuffer::RenderBuffer(Aec3Optimization optimization,
>               ^
> ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.h:75:17: note: 'fft_' declared here
>   const Aec3Fft fft_;
>                 ^
>
> See https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.mac%2Fios-device-xcode-clang%2F70027%2F%2B%2Frecipes%2Fsteps%2Fcompile__with_patch_%2F0%2Fstdout
>
> Original issue's description:
> > Fixed error for missing explicit class initialization error on iOS buildbots
> >
> > TBR=henrik.lundin@webrtc.org
> >
> > BUG=webrtc:6018
> >
> > Review-Url: https://codereview.webrtc.org/2799813002
> > Cr-Commit-Position: refs/heads/master@{#17549}
> > Committed: 5ac18af71b
>
> TBR=henrik.lundin@webrtc.org,peah@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6018
>
> Review-Url: https://codereview.webrtc.org/2803933002
> Cr-Commit-Position: refs/heads/master@{#17550}
> Committed: 854e507853

TBR=henrik.lundin@webrtc.org,peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2798913003
Cr-Commit-Position: refs/heads/master@{#17551}
2017-04-06 05:06:36 +00:00
guidou
854e507853 Revert of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2799813002/ )
Reason for revert:
Causes compile error on iOS.
export DEVELOPER_DIR=/b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app;  /b/build/slave/cache/goma_client/gomacc clang++ -MMD -MF obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o.d -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_AUDIOPROC_DEBUG_DUMP -DWEBRTC_INTELLIGIBILITY_ENHANCER=0 -DWEBRTC_NS_FIXED -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"298539-1\" -DCR_XCODE_VERSION=0821 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNS_BLOCK_ASSERTIONS=1 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DWEBRTC_IOS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party -I../../third_party/webrtc/modules/audio_coding/codecs/isac/main/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/webrtc/common_audio/resampler/include -I../../third_party/webrtc/common_audio/signal_processing/include -I../../third_party/webrtc/common_audio/vad/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wundeclared-selector -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Os -gdwarf-2 -isysroot /b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility-inlines-hidden -std=c++11 -fno-rtti -fno-exceptions -c ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc -o obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o
../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc:20:15: error: constructor for 'webrtc::RenderBuffer' must explicitly initialize the const member 'fft_'
RenderBuffer::RenderBuffer(Aec3Optimization optimization,
              ^
../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.h:75:17: note: 'fft_' declared here
  const Aec3Fft fft_;
                ^

See https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.mac%2Fios-device-xcode-clang%2F70027%2F%2B%2Frecipes%2Fsteps%2Fcompile__with_patch_%2F0%2Fstdout

Original issue's description:
> Fixed error for missing explicit class initialization error on iOS buildbots
>
> TBR=henrik.lundin@webrtc.org
>
> BUG=webrtc:6018
>
> Review-Url: https://codereview.webrtc.org/2799813002
> Cr-Commit-Position: refs/heads/master@{#17549}
> Committed: 5ac18af71b

TBR=henrik.lundin@webrtc.org,peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2803933002
Cr-Commit-Position: refs/heads/master@{#17550}
2017-04-06 04:28:05 +00:00
peah
5ac18af71b Fixed error for missing explicit class initialization error on iOS buildbots
TBR=henrik.lundin@webrtc.org

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2799813002
Cr-Commit-Position: refs/heads/master@{#17549}
2017-04-05 22:10:34 +00:00
peah
cf02cf13a7 Major AEC3 render pipeline changes
This CL adds major render pipeline changes to the AEC3 code. The reason
for these are that
1) It allows the echo removal unit to receive information about the content
in bands beyond band 0, thereby allowing removal of high-frequency
echoes
2) It allows more controlled handling of the render buffers, allowing proper
buffer behaviour during capture glitches and clock-drift.

Unfortunately, the render pipeline caused a lot of related changes in much
of the rest of the AEC3 files. Most of these are, however, caused by
a change of class name.

Another unfortunate effect of this CL, is that a number of unittest cease to
compile. I chose to temporarily solve that by removing them from the
build using #if/#endif. The reason for that is that those will anyway again
need to be changed in the next review, and doing like this avoids them
having to be reviewed twice.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2784023002
Cr-Commit-Position: refs/heads/master@{#17547}
2017-04-05 21:18:07 +00:00
alessiob
dea682d25b This CL fixes the following:
- snake_case -> CapWords
- compulsory docstring added
- style

A followup CL will fix remaining issues as raised by the next version of the WebRTC Python linter (update in progress).

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2793903006
Cr-Commit-Position: refs/heads/master@{#17543}
2017-04-05 14:25:33 +00:00
henrik.lundin
adf0635ed5 Make GetConfig() part of the AudioProcessing interface
BUG=chromium:708475
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2802603003
Cr-Commit-Position: refs/heads/master@{#17540}
2017-04-05 12:48:24 +00:00
nisse
368f5cf27e Replace use of system_wrappers/include/logging.h by base/logging.h.
BUG=webrtc:5118

Review-Url: https://codereview.webrtc.org/2781343002
Cr-Commit-Position: refs/heads/master@{#17539}
2017-04-05 12:00:33 +00:00
alessiob
baf9b58cb4 README.md with deps, build, usage, troubleshooting
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2722823002
Cr-Commit-Position: refs/heads/master@{#17531}
2017-04-04 14:27:03 +00:00
alessiob
fbd4f85f2d Javascript audio player for the exported HTML file.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2721023002
Cr-Commit-Position: refs/heads/master@{#17529}
2017-04-04 13:59:14 +00:00
alessiob
aa7d935cd5 Evaluation scores export library and CSS file for the exported HTML file
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2723703002
Cr-Commit-Position: refs/heads/master@{#17526}
2017-04-04 09:58:09 +00:00
alessiob
8edb8397f8 Reland of Export library that generates an HTLM file with the scores organized in tables. (patchset #1 id:1 of https://codereview.webrtc.org/2791293002/ )
Reason for revert:
Relanding https://codereview.webrtc.org/2717973006

BUG=webrtc:7218

Original issue's description:
> Revert of Export library that generates an HTLM file with the scores organized in tables. (patchset #3 id:40001 of https://codereview.webrtc.org/2717973006/ )
>
> Reason for revert:
> Issue with rebasing from depending CL
>
> Original issue's description:
> > Export library that generates an HTLM file with the scores organized in tables.
> >
> > BUG=webrtc:7218
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2717973006
> > Cr-Commit-Position: refs/heads/master@{#17512}
> > Committed: 29e3330139
>
> TBR=aleloi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7218
>
> Review-Url: https://codereview.webrtc.org/2791293002
> Cr-Commit-Position: refs/heads/master@{#17513}
> Committed: 880c85ba7e

TBR=aleloi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2798553002
Cr-Commit-Position: refs/heads/master@{#17525}
2017-04-04 09:36:24 +00:00
alessiob
880c85ba7e Revert of Export library that generates an HTLM file with the scores organized in tables. (patchset #3 id:40001 of https://codereview.webrtc.org/2717973006/ )
Reason for revert:
Issue with rebasing from depending CL

Original issue's description:
> Export library that generates an HTLM file with the scores organized in tables.
>
> BUG=webrtc:7218
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2717973006
> Cr-Commit-Position: refs/heads/master@{#17512}
> Committed: 29e3330139

TBR=aleloi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2791293002
Cr-Commit-Position: refs/heads/master@{#17513}
2017-04-03 15:46:58 +00:00
alessiob
29e3330139 Export library that generates an HTLM file with the scores organized in tables.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2717973006
Cr-Commit-Position: refs/heads/master@{#17512}
2017-04-03 15:39:06 +00:00
alessiob
eb4662a64d Single simulation runner.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2720203003
Cr-Commit-Position: refs/heads/master@{#17510}
2017-04-03 15:34:46 +00:00
alessiob
0deb594b25 POLQA evaluation score.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718063003
Cr-Commit-Position: refs/heads/master@{#17509}
2017-04-03 15:29:09 +00:00
alessiob
c533df203c Audio level evaluation score.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2720233002
Cr-Commit-Position: refs/heads/master@{#17508}
2017-04-03 15:20:18 +00:00
alessiob
54ad3df1d2 I added two factory classes to address an important comment I got in another CL from kjellander@webrtc.org.
This CL also includes the implementation of the echo noise generator.
I added comments in the diff to help the reviewers.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715233003
Cr-Commit-Position: refs/heads/master@{#17507}
2017-04-03 15:12:44 +00:00
alessiob
8a1b3c9d11 Environmental noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718133002
Cr-Commit-Position: refs/heads/master@{#17506}
2017-04-03 13:54:46 +00:00
mbonadei
d00aad5eb2 Revert of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #16 id:300001 of https://codereview.webrtc.org/2747863003/ )
Reason for revert:
I will try to reland next week because it is causing some problems.

Original issue's description:
> To accommodate some downstream WebRTC users we need to loosen
> the coupling between our code and the //third_party/protobuf.
>
> This includes using typedefs to define strings instead of
> assuming std::string.
>
> After this refactoring it will be possible to link with other
> protobuf implementations than the current one.
>
> We moved the PRESUBMIT check to another CL [1]. The goal of this
> presubmit is to avoid the direct usage of google::protobuf outside
> of the webrtc/base/protobuf_utils.h header file.
>
> [1] - https://codereview.webrtc.org/2753823003/
>
> BUG=webrtc:7340
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2747863003
> Cr-Commit-Position: refs/heads/master@{#17466}
> Committed: 16ab93b952

TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7340

Review-Url: https://codereview.webrtc.org/2786363002
Cr-Commit-Position: refs/heads/master@{#17483}
2017-03-31 10:08:07 +00:00
mbonadei
16ab93b952 To accommodate some downstream WebRTC users we need to loosen
the coupling between our code and the //third_party/protobuf.

This includes using typedefs to define strings instead of
assuming std::string.

After this refactoring it will be possible to link with other
protobuf implementations than the current one.

We moved the PRESUBMIT check to another CL [1]. The goal of this
presubmit is to avoid the direct usage of google::protobuf outside
of the webrtc/base/protobuf_utils.h header file.

[1] - https://codereview.webrtc.org/2753823003/

BUG=webrtc:7340
NOTRY=True

Review-Url: https://codereview.webrtc.org/2747863003
Cr-Commit-Position: refs/heads/master@{#17466}
2017-03-30 08:24:20 +00:00
nisse
0ffdcc51bc Delete unneeded includes of deprecated system_wrappers include files.
Deletes left-over includes of trace.h and critical_section_wrapper.h.

BUG=webrtc:7035

Review-Url: https://codereview.webrtc.org/2784873002
Cr-Commit-Position: refs/heads/master@{#17460}
2017-03-30 07:31:15 +00:00
aleloi
0e4a685542 Added licence boilerplate to our MATLAB files.
The command

tools/checklicenses/checklicenses.py --ignore-suppressions ./webrtc

previously produced this output:
'webrtc/modules/audio_processing/test/apmtest.m' has non-whitelisted license 'UNKNOWN'
'webrtc/modules/audio_processing/transient/test/readDetection.m' has non-whitelisted license 'UNKNOWN'
'webrtc/modules/audio_processing/transient/test/readPCM.m' has non-whitelisted license 'UNKNOWN'
...

This CL adds the WebRTC licence with appropriate year to all our
MATLAB files. All these files were contributed by WebRTC project
members hlundin@, pbos@, niklase@.

BUG=chromium:98592
NOTRY=True

Review-Url: https://codereview.webrtc.org/2781663005
Cr-Commit-Position: refs/heads/master@{#17428}
2017-03-28 17:18:58 +00:00
alessiob
3339743878 MultiEndCall is responsible for analyzing and validating timing information and audiotracks with which a multi-end call can be simulated.
The class creates one WavReaderInterface object for each unique audiotrack and builds the set of speaker names.
Validating if the audiotrack lengths and the timing information are compatible (and hence valid) is not implemented yet.

MultiEndCall is designed using dependency injection. This allows to use mock objects with which we can quickly simulate different timings and track lengths without needing actual wav files.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2761853002
Cr-Commit-Position: refs/heads/master@{#17421}
2017-03-28 12:39:59 +00:00
alessiob
4b6463c0c9 Conversational Speech tool, rtc_test target replaced with entry in modules_unittests
The ConversationalSpeechTest.* unit tests are now part of modules_unittests.
The rtc_test target has been replaced with an rtc_source_set one.
The latter is included as dependency in audio_processing_unittests.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2769863005
Cr-Commit-Position: refs/heads/master@{#17360}
2017-03-23 12:17:06 +00:00
alessiob
ce302b82c9 Conversational speech tool: timing model with data access.
The conversational_speech::Timing class models a list of turns.
Each turn, is identified by a speaker, the audiotrack name, and an offset in milliseconds.
The unit test checks that an instance of Timing is correctly populated and that save/reload leads to the same data.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2750353002
Cr-Commit-Position: refs/heads/master@{#17346}
2017-03-22 15:23:46 +00:00
ivoc
1973ba6ef4 Improve stability of the echo detector complexity perf tests.
The results of the echo detector complexity tests are currently notoriously spiky and unreliable. The following improvements are made in this CL:
- Significantly longer warmup time before starting the test
- More iterations and larger batches
- Different number of iterations for slow and fast tests
- Use the echo likelihood in the test so it cannot get optimized out

BUG=webrtc:7353

Review-Url: https://codereview.webrtc.org/2750413002
Cr-Commit-Position: refs/heads/master@{#17303}
2017-03-20 10:03:16 +00:00
alessiob
3b51065c55 Conversational Speech generator, adding unit test.
Test for the conversational_speech::Config class and renaming.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2749573002
Cr-Commit-Position: refs/heads/master@{#17301}
2017-03-18 10:45:31 +00:00
alessiob
5f32aca85e Reland "C++ porting of the initial python script for conversational speech
generation."

This CL removes the Python script and adds its C++ porting.
The former was in its early stage and it has permanently been removed.

This is a reland of https://codereview.webrtc.org/2740063004/ which
was reverted. Now the build errors are fixed.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2752793002
Cr-Commit-Position: refs/heads/master@{#17300}
2017-03-18 09:29:13 +00:00
ivoc
9c192b2b06 Added locking when getting echo likelihood stats.
Currently no lock is taken when returning echo likelihood stats, which causes a race condition between the thread getting the stats and the thread running the echo detector. This CL resolves the issue by adding locking.

BUG=webrtc:7346

Review-Url: https://codereview.webrtc.org/2749973003
Cr-Commit-Position: refs/heads/master@{#17270}
2017-03-16 11:22:14 +00:00
alessiob
dbbaa2ad66 Revert of C++ porting of the initial python script for conversational speech generation. (patchset #2 id:100001 of https://codereview.webrtc.org/2740063004/ )
Reason for revert:
Even if the conversational speech tool is external and not a core part of webrtc, there are too many trybots failing.

Original issue's description:
> C++ porting of the initial python script for conversational speech generation.
>
> This CL removes the Python script and adds its C++ porting.
> The former was in its early stage and it has permanently been removed.
>
> BUG=webrtc:7218
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2740063004
> Cr-Commit-Position: refs/heads/master@{#17254}
> Committed: 0cf3aa6d0d

TBR=henrik.lundin@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2753843002
Cr-Commit-Position: refs/heads/master@{#17257}
2017-03-15 15:19:25 +00:00
alessiob
0cf3aa6d0d C++ porting of the initial python script for conversational speech generation.
This CL removes the Python script and adds its C++ porting.
The former was in its early stage and it has permanently been removed.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2740063004
Cr-Commit-Position: refs/heads/master@{#17254}
2017-03-15 14:56:26 +00:00
kthelgason
c7daea8d6a Make AudioBuffer::InterleaveTo const
The only non-const operation was a one-time initialization of a member only used in this function. I've moved it to the ctor.

BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/2741733002
Cr-Commit-Position: refs/heads/master@{#17223}
2017-03-14 10:10:07 +00:00
alessiob
1d395dfb36 Conversational Speech generator, main script with shell arguments
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2733863002
Cr-Commit-Position: refs/heads/master@{#17117}
2017-03-08 14:12:23 +00:00
alessiob
1e9681549a White noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718073002
Cr-Commit-Position: refs/heads/master@{#17049}
2017-03-06 07:03:52 +00:00
alessiob
4610ec7ddd Noise generator abstract class and identity noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2717243003
Cr-Commit-Position: refs/heads/master@{#17048}
2017-03-06 06:55:59 +00:00
alessiob
21debb3ae8 APM quality assessment tool, signal processing tools.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715763003
Cr-Commit-Position: refs/heads/master@{#17047}
2017-03-06 06:33:12 +00:00
alessiob
446fb136dc APM configuration files generator.
It generates json files to be used as APM configuration presets.
Useful to avoid manual editing of such files.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2719853006
Cr-Commit-Position: refs/heads/master@{#17013}
2017-03-03 16:20:19 +00:00