| Index: modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py
|
| diff --git a/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py b/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py
|
| index 7023b6a8c54e811d47b57bffb8d9fa7d147c0761..b25694025b6d2de4393c8ddd519a0ac8baa752e9 100644
|
| --- a/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py
|
| +++ b/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py
|
| @@ -17,6 +17,7 @@ from . import echo_path_simulation
|
| from . import echo_path_simulation_factory
|
| from . import eval_scores
|
| from . import eval_scores_factory
|
| +from . import exceptions
|
| from . import input_mixer
|
| from . import test_data_generation
|
| from . import test_data_generation_factory
|
| @@ -248,9 +249,20 @@ class ApmModuleSimulator(object):
|
| test_data_cache_path=test_data_cache_path,
|
| base_output_path=output_path)
|
|
|
| + # Extract metadata linked to the clean input file (if any).
|
| + apm_input_metadata = None
|
| + try:
|
| + apm_input_metadata = data_access.Metadata.LoadFileMetadata(
|
| + clean_capture_input_filepath)
|
| + except IOError as e:
|
| + apm_input_metadata = {}
|
| + apm_input_metadata['test_data_gen_name'] = test_data_generators.NAME
|
| + apm_input_metadata['test_data_gen_config'] = None
|
| +
|
| # For each test data pair, simulate a call and evaluate.
|
| for config_name in test_data_generators.config_names:
|
| logging.info(' - test data generator config: <%s>', config_name)
|
| + apm_input_metadata['test_data_gen_config'] = config_name
|
|
|
| # Paths to the test data generator output.
|
| # Note that the reference signal does not depend on the render input
|
| @@ -278,23 +290,28 @@ class ApmModuleSimulator(object):
|
| render_input_filepath=render_input_filepath,
|
| output_path=evaluation_output_path)
|
|
|
| - # Evaluate.
|
| - self._evaluator.Run(
|
| - evaluation_score_workers=self._evaluation_score_workers,
|
| - apm_output_filepath=self._audioproc_wrapper.output_filepath,
|
| - reference_input_filepath=reference_signal_filepath,
|
| - output_path=evaluation_output_path)
|
| -
|
| - # Save simulation metadata.
|
| - data_access.Metadata.SaveAudioTestDataPaths(
|
| - output_path=evaluation_output_path,
|
| - clean_capture_input_filepath=clean_capture_input_filepath,
|
| - echo_free_capture_filepath=noisy_capture_input_filepath,
|
| - echo_filepath=echo_path_filepath,
|
| - render_filepath=render_input_filepath,
|
| - capture_filepath=apm_input_filepath,
|
| - apm_output_filepath=self._audioproc_wrapper.output_filepath,
|
| - apm_reference_filepath=reference_signal_filepath)
|
| + try:
|
| + # Evaluate.
|
| + self._evaluator.Run(
|
| + evaluation_score_workers=self._evaluation_score_workers,
|
| + apm_input_metadata=apm_input_metadata,
|
| + apm_output_filepath=self._audioproc_wrapper.output_filepath,
|
| + reference_input_filepath=reference_signal_filepath,
|
| + output_path=evaluation_output_path)
|
| +
|
| + # Save simulation metadata.
|
| + data_access.Metadata.SaveAudioTestDataPaths(
|
| + output_path=evaluation_output_path,
|
| + clean_capture_input_filepath=clean_capture_input_filepath,
|
| + echo_free_capture_filepath=noisy_capture_input_filepath,
|
| + echo_filepath=echo_path_filepath,
|
| + render_filepath=render_input_filepath,
|
| + capture_filepath=apm_input_filepath,
|
| + apm_output_filepath=self._audioproc_wrapper.output_filepath,
|
| + apm_reference_filepath=reference_signal_filepath)
|
| + except exceptions.EvaluationScoreException as e:
|
| + logging.warning('the evaluation failed: %s', e.message)
|
| + continue
|
|
|
| def _SetTestInputSignalFilePaths(self, capture_input_filepaths,
|
| render_input_filepaths):
|
|
|