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}
175 lines
4.7 KiB
Plaintext
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}}",
|
|
]
|
|
}
|