Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Unified Diff: modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py

Issue 3010413002: Total Harmonic Distorsion plus noise (THD+n) score in APM-QA. (Closed)
Patch Set: merge Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py
diff --git a/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py b/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py
index 544ad97ffcd1e28351e2da6b7fd5e27ad5699ddf..33ee92190cd41f47c2f1c8be28c3dfefc68cfa97 100644
--- a/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py
+++ b/modules/audio_processing/test/py_quality_assessment/quality_assessment/simulation_unittest.py
@@ -9,6 +9,7 @@
"""Unit tests for the simulation module.
"""
+import logging
import os
import shutil
import sys
@@ -33,8 +34,9 @@ class TestApmModuleSimulator(unittest.TestCase):
"""
def setUp(self):
- """Create temporary folder and fake audio track."""
+ """Create temporary folders and fake audio track."""
self._output_path = tempfile.mkdtemp()
+ self._tmp_path = tempfile.mkdtemp()
silence = pydub.AudioSegment.silent(duration=1000, frame_rate=48000)
fake_signal = signal_processing.SignalProcessingUtils.GenerateWhiteNoise(
@@ -46,6 +48,7 @@ class TestApmModuleSimulator(unittest.TestCase):
def tearDown(self):
"""Recursively delete temporary folders."""
shutil.rmtree(self._output_path)
+ shutil.rmtree(self._tmp_path)
def testSimulation(self):
# Instance dependencies to inject and mock.
@@ -87,3 +90,39 @@ class TestApmModuleSimulator(unittest.TestCase):
min_number_of_simulations)
self.assertGreaterEqual(len(evaluator.Run.call_args_list),
min_number_of_simulations)
+
+ def testPureToneGenerationWithTotalHarmonicDistorsion(self):
+ logging.warning = mock.MagicMock(name='warning')
+
+ # Instance simulator.
+ simulator = simulation.ApmModuleSimulator(
+ aechen_ir_database_path='',
+ polqa_tool_bin_path=os.path.join(
+ os.path.dirname(__file__), 'fake_polqa'),
+ ap_wrapper=audioproc_wrapper.AudioProcWrapper(),
+ evaluator=evaluation.ApmModuleEvaluator())
+
+ # What to simulate.
+ config_files = ['apm_configs/default.json']
+ input_files = [os.path.join(self._tmp_path, 'pure_tone-440_1000.wav')]
+ eval_scores = ['thd']
+
+ # Should work.
+ simulator.Run(
+ config_filepaths=config_files,
+ capture_input_filepaths=input_files,
+ test_data_generator_names=['identity'],
+ eval_score_names=eval_scores,
+ output_dir=self._output_path)
+ self.assertFalse(logging.warning.called)
+
+ # Warning expected.
+ simulator.Run(
+ config_filepaths=config_files,
+ capture_input_filepaths=input_files,
+ test_data_generator_names=['white_noise'], # Not allowed with THD.
+ eval_score_names=eval_scores,
+ output_dir=self._output_path)
+ logging.warning.assert_called_with('the evaluation failed: %s', (
+ 'The THD score cannot be used with any test data generator other than '
+ '"identity"'))

Powered by Google App Engine
This is Rietveld 408576698