Index: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/input_signal_creator.py |
diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/input_signal_creator.py b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/input_signal_creator.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e2a720c796f58d21c4ec0fcb217390cbbdeac64a |
--- /dev/null |
+++ b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/input_signal_creator.py |
@@ -0,0 +1,57 @@ |
+# Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. |
+# |
+# Use of this source code is governed by a BSD-style license |
+# that can be found in the LICENSE file in the root of the source |
+# tree. An additional intellectual property rights grant can be found |
+# in the file PATENTS. All contributing project authors may |
+# be found in the AUTHORS file in the root of the source tree. |
+ |
+"""Input signal creator module. |
+""" |
+ |
+from . import exceptions |
+from . import signal_processing |
+ |
+ |
+class InputSignalCreator(object): |
+ """Input signal creator class. |
+ """ |
+ |
+ @classmethod |
+ def Create(cls, name, params): |
+ """Creates a input signal. |
+ |
+ Args: |
+ name: Input signal creator name. |
+ params: Tuple of parameters to pass to the specific signal creator. |
+ |
+ Returns: |
+ AudioSegment instance. |
+ """ |
+ try: |
+ if name == 'pure_tone': |
+ return cls._CreatePureTone(float(params[0]), int(params[1])) |
+ except (TypeError, AssertionError) as e: |
+ raise exceptions.InputSignalCreatorException( |
+ 'Invalid signal creator parameters: {}'.format(e)) |
+ |
+ raise exceptions.InputSignalCreatorException( |
+ 'Invalid input signal creator name') |
+ |
+ @classmethod |
+ def _CreatePureTone(cls, frequency, duration): |
+ """ |
+ Generates a pure tone at 48000 Hz. |
+ |
+ Args: |
+ frequency: Float in (0-24000] (Hz). |
+ duration: Integer (milliseconds). |
+ |
+ Returns: |
+ AudioSegment instance. |
+ """ |
+ assert 0 < frequency <= 24000 |
+ assert 0 < duration |
+ template = signal_processing.SignalProcessingUtils.GenerateSilence(duration) |
+ return signal_processing.SignalProcessingUtils.GeneratePureTone( |
+ template, frequency) |