Пример #1
0
    def test_n_output_audio(self):
        audio, sampling_rate = AudioLoader.load_audio(self.sample_wav_file)

        flows = [
            naf.Sequential(
                [naa.CropAug(sampling_rate=sampling_rate),
                 naa.LoudnessAug()]),
            naf.Sometimes(
                [naa.CropAug(sampling_rate=sampling_rate),
                 naa.LoudnessAug()],
                pipeline_p=0.9),
            naf.Sequential([
                naf.Sequential([
                    naa.CropAug(sampling_rate=sampling_rate),
                    naa.LoudnessAug()
                ]),
                naf.Sometimes([
                    naa.CropAug(sampling_rate=sampling_rate),
                    naa.LoudnessAug()
                ],
                              pipeline_p=0.9)
            ])
        ]

        for flow in flows:
            augmented_audios = flow.augment(audio, n=3)
            self.assertGreater(len(augmented_audios), 1)
            for augmented_audio in augmented_audios:
                self.assertFalse(np.array_equal(audio, augmented_audio))

        self.assertLess(0, len(flows))
Пример #2
0
    def test_subsitute(self):
        audio, sampling_rate = librosa.load(self.sample_wav_file)

        aug = naa.CropAug(sampling_rate=sampling_rate)
        augmented_audio = aug.augment(audio)

        self.assertNotEqual(len(audio), len(augmented_audio))
Пример #3
0
    def test_coverage(self):
        aug = naa.CropAug(sampling_rate=self.sampling_rate, coverage=0.1)
        augmented_data = aug.augment(self.audio)
        audio_size = len(self.audio)
        augmented_size = len(augmented_data)
        expected_crop_size = len(
            self.audio) * (aug.model.zone[1] - aug.model.zone[0]) * 0.1

        self.assertTrue(
            -1 <= audio_size - augmented_size - expected_crop_size <= 1)
Пример #4
0
    def test_multi_thread(self):
        n = 3
        augs = [
            naa.CropAug(sampling_rate=self.sampling_rate),
            naa.PitchAug(sampling_rate=self.sampling_rate)
        ]

        for num_thread in [1, 3]:
            for aug in augs:
                augmented_data = aug.augment(self.audio, n=n, num_thread=num_thread)
                self.assertEqual(len(augmented_data), n)
Пример #5
0
    def test_multi_thread(self):
        audio, sampling_rate = AudioLoader.load_audio(self.sample_wav_file)
        n = 3
        augs = [
            naa.CropAug(sampling_rate=sampling_rate),
            naa.PitchAug(sampling_rate=sampling_rate)
        ]

        for num_thread in [1, 3]:
            for aug in augs:
                augmented_data = aug.augment(audio, n=n, num_thread=num_thread)
                self.assertEqual(len(augmented_data), n)
Пример #6
0
    def setUpClass(cls):
        env_config_path = os.path.abspath(os.path.join(
            os.path.dirname(__file__), '..', '..', '.env'))
        load_dotenv(env_config_path)
        # https://freewavesamples.com/yamaha-v50-rock-beat-120-bpm
        cls.sample_wav_file = os.path.join(
            os.environ.get("TEST_DIR"), 'res', 'audio', 'Yamaha-V50-Rock-Beat-120bpm.wav'
        )
        cls.audio, cls.sampling_rate = AudioLoader.load_audio(cls.sample_wav_file)

        cls.audio_augs = [
            naa.CropAug(sampling_rate=cls.sampling_rate),
            naa.SpeedAug(),
        ]
Пример #7
0
    def test_duration(self):
        duration = 1
        audio_size = len(self.audio)

        for _ in range(10):
            aug = naa.CropAug(sampling_rate=self.sampling_rate,
                              duration=duration,
                              stateless=False)
            aug_data = aug.augment(self.audio)
            aug_size = len(aug_data)
            expected_crop_size = self.sampling_rate * duration

            self.assertGreater(audio_size, aug_size)
            self.assertEqual(len(self.audio[aug.start_pos:aug.end_pos]),
                             expected_crop_size)
Пример #8
0
def process_audio_files_with_aug(filename, dirpath):
    sr = 16000
    audio_array, sample_rate = librosa.load(os.path.join(dirpath, 'flac', filename), sr=sr)
    aug_crop = naa.CropAug(sampling_rate=sr)
    audio_array_crop = aug_crop.augment(audio_array)
    aug_loud = naa.LoudnessAug(loudness_factor=(2, 5))
    audio_array_loud = aug_loud.augment(audio_array)
    aug_noise = naa.NoiseAug(noise_factor=0.03)
    audio_array_noise = aug_noise.augment(audio_array)

    audio_array_list= [audio_array,audio_array_crop,audio_array_loud,
                       audio_array_noise ]

    out_list = convert_audio_to_processed_list(audio_array_list, filename, dirpath)

    return out_list
Пример #9
0
    def setUpClass(cls):
        env_config_path = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..', '..', '.env'))
        load_dotenv(env_config_path)
        # https://freewavesamples.com/yamaha-v50-rock-beat-120-bpm
        cls.sample_wav_file = os.environ.get(
            "DATA_DIR") + 'Yamaha-V50-Rock-Beat-120bpm.wav'
        cls.audio, cls.sampling_rate = librosa.load(cls.sample_wav_file)

        cls.textual_augs = [
            nac.RandomCharAug(),
            naw.ContextualWordEmbsAug(),
            nas.ContextualWordEmbsForSentenceAug()
        ]

        cls.audio_augs = [
            naa.CropAug(sampling_rate=cls.sampling_rate),
            naa.SpeedAug(),
        ]
Пример #10
0
    def process_audio_files_with_aug(self, audio_path):
        sr = 16000
        audio_array, sample_rate = librosa.load(audio_path, sr=sr)
        aug_crop = naa.CropAug(sampling_rate=sr)
        audio_array_crop = aug_crop.augment(audio_array)
        aug_loud = naa.LoudnessAug(loudness_factor=(2, 5))
        audio_array_loud = aug_loud.augment(audio_array)
        aug_noise = naa.NoiseAug(noise_factor=0.03)
        audio_array_noise = aug_noise.augment(audio_array)

        mel_spec_array_load = melspectrogram(audio_array_loud, hparams=hparams)
        mel_spec_array_noise = melspectrogram(audio_array_noise,
                                              hparams=hparams)

        audio_array_list = [mel_spec_array_load, mel_spec_array_noise]

        # audio_array_list= [audio_array_crop,audio_array_loud,
        #                    audio_array_noise ]

        return audio_array_list
Пример #11
0
    def test_substitute(self):
        aug = naa.CropAug(sampling_rate=self.sampling_rate)
        augmented_audio = aug.augment(self.audio)

        self.assertNotEqual(len(self.audio), len(augmented_audio))
Пример #12
0
    def test_empty_input(self):
        audio = np.array([])
        aug = naa.CropAug(sampling_rate=self.sampling_rate)
        augmented_audio = aug.augment(audio)

        self.assertTrue(np.array_equal(audio, augmented_audio))
def crop(data, sampling_rate):
    aug = naa.CropAug(sampling_rate=sampling_rate)
    return aug.augment(data)
Пример #14
0
def crop_audio(data, sr):
    aug = naa.CropAug(sampling_rate=sr)
    return aug.augment(data)