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

Unified Diff: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py

Issue 2715233003: APM Quality Generator, noise generator and evaluation score workers factory + echo noise generator (Closed)
Patch Set: rebase + style fix Created 3 years, 9 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: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py
diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py
index 55fd1fd2a8a7e775e475c48d6df08b5527cfec20..2b750913acb660a7e64988c37f0e5cf25c3a2488 100644
--- a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py
+++ b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/noise_generation_unittest.py
@@ -6,14 +6,19 @@
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
+"""Unit tests for the noise_generation module.
+"""
+
import os
import shutil
import tempfile
import unittest
from . import noise_generation
+from . import noise_generation_factory
from . import signal_processing
+
class TestNoiseGen(unittest.TestCase):
def setUp(self):
@@ -36,6 +41,13 @@ class TestNoiseGen(unittest.TestCase):
self.assertIsInstance(registered_classes, dict)
self.assertGreater(len(registered_classes), 0)
+ # Instance noise generator factory.
+ noise_generator_factory = noise_generation_factory.NoiseGeneratorFactory(
+ aechen_ir_database_path='')
+ # TODO(alessiob): Replace with a mock of NoiseGeneratorFactory that takes
+ # no arguments in the ctor. For those generators that need parameters, it
+ # will return a mock generator (see the first comment in the next for loop).
+
# Use a sample input file as clean input signal.
input_signal_filepath = os.path.join(
os.getcwd(), 'probing_signals', 'tone-880.wav')
@@ -47,9 +59,17 @@ class TestNoiseGen(unittest.TestCase):
# Try each registered noise generator.
for noise_generator_name in registered_classes:
+ # Exclude EchoNoiseGenerator.
+ # TODO(alessiob): Mock EchoNoiseGenerator, the mock should rely on
+ # hard-coded impulse responses. This requires a mock for
+ # NoiseGeneratorFactory. The latter knows whether returning the actual
+ # generator or a mock object (as in the case of EchoNoiseGenerator).
+ if noise_generator_name == 'echo':
+ continue
+
# Instance noise generator.
- noise_generator_class = registered_classes[noise_generator_name]
- noise_generator = noise_generator_class()
+ noise_generator = noise_generator_factory.GetInstance(
+ registered_classes[noise_generator_name])
# Generate the noisy input - reference pairs.
noise_generator.generate(
@@ -78,8 +98,14 @@ class TestNoiseGen(unittest.TestCase):
def _CheckNoiseGeneratorPairsSignalDurations(
self, noise_generator, input_signal):
- """Checks that the noisy input and the reference tracks are audio files
- with duration >= to that of the input signal.
+ """Check duration of the signals generated by a noise generator.
+
+ Checks that the noisy input and the reference tracks are audio files
+ with duration equal to or greater than that of the input signal.
+
+ Args:
+ noise_generator: NoiseGenerator instance.
+ input_signal: AudioSegment instance.
"""
input_signal_length = (
signal_processing.SignalProcessingUtils.count_samples(input_signal))
@@ -111,6 +137,9 @@ class TestNoiseGen(unittest.TestCase):
def _CheckNoiseGeneratorPairsOutputPaths(self, noise_generator):
"""Checks that the output path created by the generator exists.
+
+ Args:
+ noise_generator: NoiseGenerator instance.
"""
# Iterate over the noisy signal - reference pairs.
for noise_config_name in noise_generator.config_names:

Powered by Google App Engine
This is Rietveld 408576698