Index: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py |
diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py |
index e44ae225c3948a94f6e27d60bc5288e09c987e8d..ce73e65709e3ee47df9bad6b5a7cc7dfb90276b4 100644 |
--- a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py |
+++ b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation.py |
@@ -48,10 +48,18 @@ class ApmModuleSimulator(object): |
self._config_filepaths = None |
self._input_filepaths = None |
- def run(self, config_filepaths, input_filepaths, noise_generator_names, |
+ def Run(self, config_filepaths, input_filepaths, noise_generator_names, |
eval_score_names, output_dir): |
- """ |
+ """Runs the APM simulation. |
+ |
Initializes paths and required instances, then runs all the simulations. |
+ |
+ Args: |
+ config_filepaths: set of APM configuration files to test. |
+ input_filepaths: set of input audio track files to test. |
+ noise_generator_names: set of noise generator names to test. |
+ eval_score_names: set of evaluation score names to test. |
+ output_dir: base path to the output directory for wav files and outcomes. |
""" |
self._base_output_path = os.path.abspath(output_dir) |
@@ -67,15 +75,16 @@ class ApmModuleSimulator(object): |
name) in eval_score_names] |
# Set APM configuration file paths. |
- self._config_filepaths = self._get_paths_collection(config_filepaths) |
+ self._config_filepaths = self._CreatePathsCollection(config_filepaths) |
# Set probing signal file paths. |
- self._input_filepaths = self._get_paths_collection(input_filepaths) |
+ self._input_filepaths = self._CreatePathsCollection(input_filepaths) |
- self._simulate_all() |
+ self._SimulateAll() |
+ |
+ def _SimulateAll(self): |
+ """Runs all the simulations. |
- def _simulate_all(self): |
- """ |
Iterates over the combinations of APM configurations, probing signals, and |
noise generators. |
""" |
@@ -98,7 +107,7 @@ class ApmModuleSimulator(object): |
self._base_output_path, |
'_cache', |
'input_{}-noise_{}'.format(input_name, noise_generator.NAME)) |
- data_access.make_directory(input_noise_cache_path) |
+ data_access.MakeDirectory(input_noise_cache_path) |
logging.debug('input-noise cache path: <%s>', input_noise_cache_path) |
# Full output path. |
@@ -107,21 +116,29 @@ class ApmModuleSimulator(object): |
'cfg-{}'.format(config_name), |
'input-{}'.format(input_name), |
'noise-{}'.format(noise_generator.NAME)) |
- data_access.make_directory(output_path) |
+ data_access.MakeDirectory(output_path) |
logging.debug('output path: <%s>', output_path) |
- self._simulate(noise_generator, input_filepath, |
+ self._Simulate(noise_generator, input_filepath, |
input_noise_cache_path, output_path, config_filepath) |
- def _simulate(self, noise_generator, input_filepath, input_noise_cache_path, |
+ def _Simulate(self, noise_generator, input_filepath, input_noise_cache_path, |
output_path, config_filepath): |
- """ |
- Simulates a given combination of APM configurations, probing signals, and |
- noise generators. It iterates over the noise generator internal |
+ """Runs a single set of simulation. |
+ |
+ Simulates a given combination of APM configuration, probing signal, and |
+ noise generator. It iterates over the noise generator internal |
configurations. |
+ |
+ Args: |
+ noise_generator: NoiseGenerator instance. |
+ input_filepath: input audio track file to test. |
+ input_noise_cache_path: path for the noisy audio track files. |
+ output_path: base output path for the noise generator. |
+ config_filepath: APM configuration file to test. |
""" |
# Generate pairs of noisy input and reference signal files. |
- noise_generator.generate( |
+ noise_generator.Generate( |
input_signal_filepath=input_filepath, |
input_noise_cache_path=input_noise_cache_path, |
base_output_path=output_path) |
@@ -133,11 +150,11 @@ class ApmModuleSimulator(object): |
# APM input and output signal paths. |
noisy_signal_filepath = noise_generator.noisy_signal_filepaths[ |
noise_generator_config_name] |
- evaluation_output_path = noise_generator.output_paths[ |
+ evaluation_output_path = noise_generator.apm_output_paths[ |
noise_generator_config_name] |
# Simulate a call using the audio processing module. |
- self._audioproc_wrapper.run( |
+ self._audioproc_wrapper.Run( |
config_filepath=config_filepath, |
input_filepath=noisy_signal_filepath, |
output_path=evaluation_output_path) |
@@ -147,18 +164,25 @@ class ApmModuleSimulator(object): |
noise_generator_config_name] |
# Evaluate. |
- self._evaluator.run( |
+ 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) |
@classmethod |
- def _get_paths_collection(cls, filepaths): |
- """ |
- Given a list of file paths, makes a collection with one pair for each item |
- in the list where the key is the file name without extension and the value |
- is the path. |
+ def _CreatePathsCollection(cls, filepaths): |
+ """Creates a collection of file paths. |
+ |
+ Given a list of file paths, makes a collection with one item for each file |
+ path. The value is absolute path, the key is the file name without |
+ extenstion. |
+ |
+ Args: |
+ filepaths: list of file paths. |
+ |
+ Returns: |
+ A dict. |
""" |
filepaths_collection = {} |
for filepath in filepaths: |