Index: webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.py |
diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.py b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.py |
index b495a74f3c5bda26081b546b09721eeac0194f44..ee08ff7b7f701b1b100ecf63b8234826284f036c 100755 |
--- a/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.py |
+++ b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment.py |
@@ -23,11 +23,14 @@ import os |
import sys |
import quality_assessment.audioproc_wrapper as audioproc_wrapper |
+import quality_assessment.echo_path_simulation as echo_path_simulation |
import quality_assessment.eval_scores as eval_scores |
import quality_assessment.evaluation as evaluation |
import quality_assessment.test_data_generation as test_data_generation |
import quality_assessment.simulation as simulation |
+_ECHO_PATH_SIMULATOR_NAMES = ( |
+ echo_path_simulation.EchoPathSimulator.REGISTERED_CLASSES) |
_TEST_DATA_GENERATOR_CLASSES = ( |
test_data_generation.TestDataGenerator.REGISTERED_CLASSES) |
_TEST_DATA_GENERATORS_NAMES = _TEST_DATA_GENERATOR_CLASSES.keys() |
@@ -53,8 +56,20 @@ def _InstanceArgumentsParser(): |
'called'), |
default=[_DEFAULT_CONFIG_FILE]) |
- parser.add_argument('-i', '--input_files', nargs='+', required=True, |
- help='path to the input wav files (one or more)') |
+ parser.add_argument('-i', '--capture_input_files', nargs='+', required=True, |
+ help='path to the capture input wav files (one or more)') |
+ |
+ parser.add_argument('-r', '--render_input_files', nargs='+', required=False, |
+ help=('path to the render input wav files; either ' |
+ 'omitted or one file for each file in ' |
+ '--capture_input_files (files will be paired by ' |
+ 'index)'), default=None) |
+ |
+ parser.add_argument('-p', '--echo_path_simulator', required=False, |
+ help=('custom echo path simulator name; required if ' |
+ '--render_input_files is specified'), |
+ choices=_ECHO_PATH_SIMULATOR_NAMES, |
+ default=echo_path_simulation.NoEchoPathSimulator.NAME) |
parser.add_argument('-t', '--test_data_generators', nargs='+', required=False, |
help='custom list of test data generators to use', |
@@ -87,6 +102,15 @@ def main(): |
parser = _InstanceArgumentsParser() |
args = parser.parse_args() |
+ if args.capture_input_files and args.render_input_files and ( |
+ len(args.capture_input_files) != len(args.render_input_files)): |
+ parser.error('--render_input_files and --capture_input_files must be lists ' |
+ 'having the same length') |
+ sys.exit(1) |
+ if args.render_input_files and not args.echo_path_simulator: |
+ parser.error('when --render_input_files is set, --echo_path_simulator is ' |
+ 'also required') |
+ sys.exit(1) |
simulator = simulation.ApmModuleSimulator( |
aechen_ir_database_path=args.air_db_path, |
@@ -95,7 +119,9 @@ def main(): |
evaluator=evaluation.ApmModuleEvaluator()) |
simulator.Run( |
config_filepaths=args.config_files, |
- input_filepaths=args.input_files, |
+ capture_input_filepaths=args.capture_input_files, |
+ render_input_filepaths=args.render_input_files, |
+ echo_path_simulator_name=args.echo_path_simulator, |
test_data_generator_names=args.test_data_generators, |
eval_score_names=args.eval_scores, |
output_dir=args.output_dir) |