| Index: webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment_export.py
|
| diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment_export.py b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment_export.py
|
| index 66a5a50543dfb5b6bd6b26dd9a47597893078b79..8d6777a0fb434c131705768fe2d6b67d3705206e 100755
|
| --- a/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment_export.py
|
| +++ b/webrtc/modules/audio_processing/test/py_quality_assessment/apm_quality_assessment_export.py
|
| @@ -26,7 +26,7 @@ import quality_assessment.export as export
|
| # Regular expressions used to derive score descriptors from file paths.
|
| RE_CONFIG_NAME = re.compile(r'cfg-(.+)')
|
| RE_INPUT_NAME = re.compile(r'input-(.+)')
|
| -RE_NOISE_NAME = re.compile(r'noise-(.+)')
|
| +RE_TEST_DATA_GEN_NAME = re.compile(r'gen-(.+)')
|
| RE_SCORE_NAME = re.compile(r'score-(.+)\.txt')
|
|
|
|
|
| @@ -52,9 +52,9 @@ def _InstanceArgumentsParser():
|
| help=('regular expression to filter the probing signal '
|
| 'names'))
|
|
|
| - parser.add_argument('-n', '--noise_generators', type=re.compile,
|
| - help=('regular expression to filter the noise generator '
|
| - 'names'))
|
| + parser.add_argument('-t', '--test_data_generators', type=re.compile,
|
| + help=('regular expression to filter the test data '
|
| + 'generator names'))
|
|
|
| parser.add_argument('-e', '--eval_scores', type=re.compile,
|
| help=('regular expression to filter the evaluation score '
|
| @@ -71,29 +71,32 @@ def _GetScoreDescriptors(score_filepath):
|
|
|
| Returns:
|
| A tuple of strings (APM configuration name, input audio track name,
|
| - noise generator name, noise generator parameters name, evaluation score
|
| - name).
|
| + test data generator name, test data generator parameters name,
|
| + evaluation score name).
|
| """
|
| - config_name, input_name, noise_name, noise_params, score_name = (
|
| - score_filepath.split(os.sep)[-5:])
|
| + (config_name, input_name, test_data_gen_name, test_data_gen_params,
|
| + score_name) = score_filepath.split(os.sep)[-5:]
|
| config_name = RE_CONFIG_NAME.match(config_name).groups(0)[0]
|
| input_name = RE_INPUT_NAME.match(input_name).groups(0)[0]
|
| - noise_name = RE_NOISE_NAME.match(noise_name).groups(0)[0]
|
| + test_data_gen_name = RE_TEST_DATA_GEN_NAME.match(
|
| + test_data_gen_name).groups(0)[0]
|
| score_name = RE_SCORE_NAME.match(score_name).groups(0)[0]
|
| - return config_name, input_name, noise_name, noise_params, score_name
|
| + return (config_name, input_name, test_data_gen_name, test_data_gen_params,
|
| + score_name)
|
|
|
|
|
| -def _ExcludeScore(config_name, input_name, noise_name, score_name, args):
|
| +def _ExcludeScore(config_name, input_name, test_data_gen_name, score_name,
|
| + args):
|
| """Decides whether excluding a score.
|
|
|
| - Given a score descriptor, encoded in config_name, input_name, noise_name, and
|
| - score_name, use the corresponding regular expressions to determine if the
|
| - score should be excluded.
|
| + Given a score descriptor, encoded in config_name, input_name,
|
| + test_data_gen_name and score_name, use the corresponding regular expressions
|
| + to determine if the score should be excluded.
|
|
|
| Args:
|
| config_name: APM configuration name.
|
| input_name: input audio track name.
|
| - noise_name: noise generator name.
|
| + test_data_gen_name: test data generator name.
|
| score_name: evaluation score name.
|
| args: parsed arguments.
|
|
|
| @@ -103,7 +106,7 @@ def _ExcludeScore(config_name, input_name, noise_name, score_name, args):
|
| value_regexpr_pairs = [
|
| (config_name, args.config_names),
|
| (input_name, args.input_names),
|
| - (noise_name, args.noise_generators),
|
| + (test_data_gen_name, args.test_data_generators),
|
| (score_name, args.eval_scores),
|
| ]
|
|
|
| @@ -143,32 +146,34 @@ def main():
|
|
|
| # Find score files in the output path.
|
| src_path = os.path.join(
|
| - args.output_dir, 'cfg-*', 'input-*', 'noise-*', '*', 'score-*.txt')
|
| + args.output_dir, 'cfg-*', 'input-*', 'gen-*', '*', 'score-*.txt')
|
| logging.debug(src_path)
|
| for score_filepath in glob.iglob(src_path):
|
| # Extract score descriptors from the path.
|
| - config_name, input_name, noise_name, noise_params, score_name = (
|
| - _GetScoreDescriptors(score_filepath))
|
| + (config_name, input_name, test_data_gen_name, test_data_gen_params,
|
| + score_name) = _GetScoreDescriptors(score_filepath)
|
|
|
| # Ignore the score if required.
|
| - if _ExcludeScore(config_name, input_name, noise_name, score_name, args):
|
| + if _ExcludeScore(
|
| + config_name, input_name, test_data_gen_name, score_name, args):
|
| logging.info('ignored score: %s %s %s %s',
|
| - config_name, input_name, noise_name, score_name)
|
| + config_name, input_name, test_data_gen_name, score_name)
|
| continue
|
|
|
| # Get metadata.
|
| score_path, _ = os.path.split(score_filepath)
|
| audio_in_filepath, audio_ref_filepath = (
|
| - data_access.Metadata.LoadAudioInRefPaths(score_path))
|
| + data_access.Metadata.LoadAudioTestDataPaths(score_path))
|
| audio_out_filepath = os.path.abspath(os.path.join(
|
| score_path, audioproc_wrapper.AudioProcWrapper.OUTPUT_FILENAME))
|
|
|
| # Add the score to the nested dictionary.
|
| - scores[score_name][config_name][input_name][noise_name][noise_params] = {
|
| - 'score': data_access.ScoreFile.Load(score_filepath),
|
| - 'audio_in_filepath': audio_in_filepath,
|
| - 'audio_out_filepath': audio_out_filepath,
|
| - 'audio_ref_filepath': audio_ref_filepath,
|
| + scores[score_name][config_name][input_name][test_data_gen_name][
|
| + test_data_gen_params] = {
|
| + 'score': data_access.ScoreFile.Load(score_filepath),
|
| + 'audio_in_filepath': audio_in_filepath,
|
| + 'audio_out_filepath': audio_out_filepath,
|
| + 'audio_ref_filepath': audio_ref_filepath,
|
| }
|
|
|
| # Export.
|
|
|