A script for producing boxplots by parsing data generated by the apm_quality_assessment.py tool. The script groups data by the values of one or several audioproc_f parameters. For every such subgroup it draws a boxplot. All boxplots are shown next to each other with the parameter value as the x axis. It is similar to this matplotlib example: https://matplotlib.org/mpl_examples/pylab_examples/boxplot_demo_06.png The script 1. reads config file names from the pandas dataframe generated by quality_assurance.collect_data 2. parses the (JSON) config files to read the parameter values 3. groups data with matching param values together 4. draws a boxplot for each group using matplotlib TBR=alessiob@webrtc.org # reviewed already in old gerrit https://chromium-review.googlesource.com/c/external/webrtc/+/660559 BUG: webrtc:7218 Change-Id: I380a1363d26721feb975fad1506835c622e9d926 Reviewed-on: https://webrtc-review.googlesource.com/6340 Reviewed-by: Alex Loiko <aleloi@webrtc.org> Commit-Queue: Alex Loiko <aleloi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20139}
145 lines
4.1 KiB
Plaintext
145 lines
4.1 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/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/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 = [
|
|
":fake_polqa",
|
|
":lib_unit_tests",
|
|
":scripts_unit_tests",
|
|
]
|
|
}
|
|
|
|
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",
|
|
]
|
|
}
|
|
|
|
copy("lib_unit_tests") {
|
|
testonly = true
|
|
sources = [
|
|
"quality_assessment/echo_path_simulation_unittest.py",
|
|
"quality_assessment/eval_scores_unittest.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}}",
|
|
]
|
|
}
|