Alex Loiko 10dd7ed81a Support for external VAD program in APM-QA
There is now an 'ExternalVad' class in the AnnotationsExtractor. The
Extractor takes an extra list of these in addition to the other
VADs. The external VAD runs an external program to generate the
annotations. Annotations are loaded and saved to a compressed Numpy format.

Also made a small fix to name a mixed file in a way so that files will not
be overwritten.

Also did some minor changes to the unittests.
TBR=alessiob@webrtc.org

Bug: webrtc:7494
Change-Id: I7816b04466be16cd635ac6ceab18cd7aad5325a4
Reviewed-on: https://webrtc-review.googlesource.com/23623
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20819}
2017-11-21 16:44:19 +00:00

175 lines
4.7 KiB
Plaintext

# Copyright (c) 2017 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.
import("../../../../webrtc.gni")
group("py_quality_assessment") {
testonly = true
deps = [
":scripts",
":unit_tests",
]
}
copy("scripts") {
testonly = true
sources = [
"README.md",
"apm_quality_assessment.py",
"apm_quality_assessment.sh",
"apm_quality_assessment_boxplot.py",
"apm_quality_assessment_export.py",
"apm_quality_assessment_gencfgs.py",
"apm_quality_assessment_optimize.py",
]
outputs = [
"$root_build_dir/py_quality_assessment/{{source_file_part}}",
]
deps = [
":apm_configs",
":lib",
":output",
"../..:audioproc_f",
"../../../../resources/audio_processing/test/py_quality_assessment:probing_signals",
]
}
copy("apm_configs") {
testonly = true
sources = [
"apm_configs/default.json",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
outputs = [
"$root_build_dir/py_quality_assessment/apm_configs/{{source_file_part}}",
]
} # apm_configs
copy("lib") {
testonly = true
sources = [
"quality_assessment/__init__.py",
"quality_assessment/annotations.py",
"quality_assessment/audioproc_wrapper.py",
"quality_assessment/collect_data.py",
"quality_assessment/data_access.py",
"quality_assessment/echo_path_simulation.py",
"quality_assessment/echo_path_simulation_factory.py",
"quality_assessment/eval_scores.py",
"quality_assessment/eval_scores_factory.py",
"quality_assessment/evaluation.py",
"quality_assessment/exceptions.py",
"quality_assessment/export.py",
"quality_assessment/export_unittest.py",
"quality_assessment/external_vad.py",
"quality_assessment/input_mixer.py",
"quality_assessment/input_signal_creator.py",
"quality_assessment/results.css",
"quality_assessment/results.js",
"quality_assessment/signal_processing.py",
"quality_assessment/simulation.py",
"quality_assessment/test_data_generation.py",
"quality_assessment/test_data_generation_factory.py",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
outputs = [
"$root_build_dir/py_quality_assessment/quality_assessment/{{source_file_part}}",
]
deps = [
"../../../../resources/audio_processing/test/py_quality_assessment:noise_tracks",
]
}
copy("output") {
testonly = true
sources = [
"output/README.md",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
outputs = [
"$root_build_dir/py_quality_assessment/output/{{source_file_part}}",
]
}
group("unit_tests") {
testonly = true
visibility = [ ":*" ] # Only targets in this file can depend on this.
deps = [
":apm_vad",
":fake_polqa",
":lib_unit_tests",
":scripts_unit_tests",
":vad",
]
}
rtc_executable("fake_polqa") {
testonly = true
sources = [
"quality_assessment/fake_polqa.cc",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
output_name = "py_quality_assessment/quality_assessment/fake_polqa"
deps = [
"../../../..:webrtc_common",
"../../../../rtc_base:rtc_base_approved",
]
}
rtc_executable("vad") {
sources = [
"quality_assessment/vad.cc",
]
deps = [
"../../../..:webrtc_common",
"../../../../common_audio",
"../../../../rtc_base:rtc_base_approved",
]
}
rtc_executable("apm_vad") {
sources = [
"quality_assessment/apm_vad.cc",
]
deps = [
"../..",
"../../../..:webrtc_common",
"../../../../common_audio",
"../../../../rtc_base:rtc_base_approved",
]
}
copy("lib_unit_tests") {
testonly = true
sources = [
"quality_assessment/annotations_unittest.py",
"quality_assessment/echo_path_simulation_unittest.py",
"quality_assessment/eval_scores_unittest.py",
"quality_assessment/fake_external_vad.py",
"quality_assessment/input_mixer_unittest.py",
"quality_assessment/signal_processing_unittest.py",
"quality_assessment/simulation_unittest.py",
"quality_assessment/test_data_generation_unittest.py",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
outputs = [
"$root_build_dir/py_quality_assessment/quality_assessment/{{source_file_part}}",
]
}
copy("scripts_unit_tests") {
testonly = true
sources = [
"apm_quality_assessment_unittest.py",
]
visibility = [ ":*" ] # Only targets in this file can depend on this.
outputs = [
"$root_build_dir/py_quality_assessment/{{source_file_part}}",
]
}