From d64f470078056e1a0e3828ef30c6127596caa30c Mon Sep 17 00:00:00 2001 From: chrisxu2016 <823254351@qq.com> Date: Tue, 20 Jun 2017 18:19:43 +0800 Subject: [PATCH] add augmentor class --- data_utils/augmentor/augmentation.py | 2 +- tests/test_augmentor.py | 60 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100755 tests/test_augmentor.py diff --git a/data_utils/augmentor/augmentation.py b/data_utils/augmentor/augmentation.py index bfe7075e..08788008 100755 --- a/data_utils/augmentor/augmentation.py +++ b/data_utils/augmentor/augmentation.py @@ -83,7 +83,7 @@ class AugmentationPipeline(object): return SpeedPerturbAugmentor(self._rng, **params) if augmentor_type == "resample": return ResampleAugmentor(self._rng, **params) - if augmentor_type == "baysian_normal": + if augmentor_type == "bayesian_normal": return OnlineBayesianNormalizationAugmentor(self._rng, **params) else: raise ValueError("Unknown augmentor type [%s]." % augmentor_type) diff --git a/tests/test_augmentor.py b/tests/test_augmentor.py new file mode 100755 index 00000000..76fd321a --- /dev/null +++ b/tests/test_augmentor.py @@ -0,0 +1,60 @@ +"""Test augmentor class.""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import unittest +from data_utils import audio +from data_utils.augmentor.augmentation import AugmentationPipeline +import random +import numpy as np + +random_seed=0 +#audio instance +audio_data=[3.05175781e-05, -8.54492188e-04, -1.09863281e-03, -9.46044922e-04,\ + -1.31225586e-03, -1.09863281e-03, -1.73950195e-03, -2.10571289e-03,\ + -2.04467773e-03, -1.46484375e-03, -1.43432617e-03, -9.46044922e-04,\ + -1.95312500e-03, -1.86157227e-03, -2.10571289e-03, -2.31933594e-03,\ + -2.01416016e-03, -2.62451172e-03, -2.07519531e-03, -2.38037109e-03] +audio_data = np.array(audio_data) +samplerate = 10 + +class TestAugmentor(unittest.TestCase): + def test_volume(self): + augmentation_config='[{"type": "volume","params": {"min_gain_dBFS": -15, "max_gain_dBFS": 15},"prob": 1.0}]' + augmentation_pipeline = AugmentationPipeline(augmentation_config=augmentation_config, + random_seed=random_seed) + audio_segment = audio.AudioSegment(audio_data, samplerate) + augmentation_pipeline.transform_audio(audio_segment) + original_audio = audio.AudioSegment(audio_data, samplerate) + self.assertFalse(np.any(audio_segment.samples == original_audio.samples)) + + def test_speed(self): + augmentation_config='[{"type": "speed","params": {"min_speed_rate": 1.2,"max_speed_rate": 1.4},"prob": 1.0}]' + augmentation_pipeline = AugmentationPipeline(augmentation_config=augmentation_config, + random_seed=random_seed) + audio_segment = audio.AudioSegment(audio_data, samplerate) + augmentation_pipeline.transform_audio(audio_segment) + original_audio = audio.AudioSegment(audio_data, samplerate) + self.assertFalse(np.any(audio_segment.samples == original_audio.samples)) + + def test_resample(self): + augmentation_config='[{"type": "resample","params": {"new_sample_rate":5},"prob": 1.0}]' + augmentation_pipeline = AugmentationPipeline(augmentation_config=augmentation_config, + random_seed=random_seed) + audio_segment = audio.AudioSegment(audio_data, samplerate) + augmentation_pipeline.transform_audio(audio_segment) + self.assertTrue(audio_segment.sample_rate == 5) + + def test_bayesial(self): + augmentation_config='[{"type": "bayesian_normal","params": {"target_db": -20, "prior_db": -4, "prior_samples": -8, "startup_delay": 0.0},"prob": 1.0}]' + augmentation_pipeline = AugmentationPipeline(augmentation_config=augmentation_config, + random_seed=random_seed) + audio_segment = audio.AudioSegment(audio_data, samplerate) + augmentation_pipeline.transform_audio(audio_segment) + original_audio = audio.AudioSegment(audio_data, samplerate) + self.assertFalse(np.any(audio_segment.samples == original_audio.samples)) + +if __name__ == '__main__': + unittest.main() +