def augment_audio(data, sampling_rate, loudness_factor, speed_range, pitch_range, shift_max, noise_factor):

    """

    OPTIONS:

    LOUDNESS AUGMENTER: naa.LoudnessAug()
    MASK AUGMENTER: naa.MaskAug()
    SPEED AUGMENTER: naa.SpeedAug()
    SHIFT AUGMENTER: naa.ShiftAug()
    NOISE AUGMENTER: naa.NoiseAug()
    CROP AUGMENTER: naa.CropAug()
    PITCH AUGMENTER_ naa.PitchAug()

    """

    flow = naf.Sequential([naa.LoudnessAug(loudness_factor),
                           naa.SpeedAug(speed_range),
                           naa.PitchAug(sampling_rate = sampling_rate, pitch_range = pitch_range),
                           naa.ShiftAug(sampling_rate = sampling_rate, shift_max = shift_max),
                           naa.NoiseAug(noise_factor),
                           ])

    augmented_audio = flow.augment(data)

    return augmented_audio
Exemplo n.º 2
0
    def testSubsitute(self):
        audio, sampling_rate = librosa.load(self.sample_wav_file)

        aug = naa.SpeedAug(speed_factor=1.5)
        augmented_audio = aug.augment(audio)

        self.assertFalse(np.array_equal(audio, augmented_audio))
        self.assertTrue(len(audio), len(augmented_audio))
Exemplo n.º 3
0
    def test_substitute(self):
        for _ in range(10):
            aug = naa.SpeedAug(stateless=False)
            aug_data = aug.augment(self.audio)

            if aug.aug_factor < 1:
                self.assertGreater(len(aug_data), len(self.audio))
            else:
                self.assertLess(len(aug_data), len(self.audio))
Exemplo n.º 4
0
    def test_audio(self):
        audio, sampling_rate = AudioLoader.load_audio(self.sample_wav_file)

        flow = naf.Sequential([
            naa.NoiseAug(),
            naa.PitchAug(sampling_rate=sampling_rate, factor=(0.2, 1.5)),
            naa.ShiftAug(sampling_rate=sampling_rate, duration=2),
            naa.SpeedAug(factor=(1.5, 3))
        ])

        augmented_audio = flow.augment(audio)

        self.assertFalse(np.array_equal(audio, augmented_audio))
        self.assertTrue(len(audio), len(augmented_audio))
Exemplo n.º 5
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(),
        ]
Exemplo n.º 6
0
def gen_augmented(original, sample_rate):
    # list of augmentors available from the nlpaug library
    augment_list = [
        #naa.CropAug(sampling_rate=sample_rate)
        naa.NoiseAug(),
        naa.SpeedAug(),
        naa.LoudnessAug(factor=(0.5, 2)),
        naa.VtlpAug(sampling_rate=sample_rate, zone=(0.0, 1.0)),
        naa.PitchAug(sampling_rate=sample_rate, factor=(-1, 3))
    ]
    # sample augmentation randomly
    aug_idx = random.randint(0, len(augment_list) - 1)
    augmented_data = augment_list[aug_idx].augment(original)
    return augmented_data
Exemplo n.º 7
0
    def test_zone(self):
        zone = (0, 1)
        coverage = 1.

        for _ in range(10):
            aug = naa.SpeedAug(zone=zone, coverage=coverage)
            aug.model.stateless = False
            aug.augment(self.audio)

            if aug.model.aug_factor < 1:
                self.assertGreater(
                    len(aug.model.aug_data),
                    len(self.audio[aug.model.start_pos:aug.model.end_pos]))
            else:
                self.assertLess(
                    len(aug.model.aug_data),
                    len(self.audio[aug.model.start_pos:aug.model.end_pos]))
Exemplo n.º 8
0
    def test_audio(self):
        # https://freewavesamples.com/yamaha-v50-rock-beat-120-bpm
        sample_wav_file = os.path.abspath(os.path.join(
            os.path.dirname(__file__), '..', '..', 'data', 'Yamaha-V50-Rock-Beat-120bpm.wav'))

        audio, sampling_rate = librosa.load(sample_wav_file)

        flow = naf.Sequential([
            naa.NoiseAug(),
            naa.PitchAug(sampling_rate=sampling_rate, factor=(0.2, 1.5)),
            naa.ShiftAug(sampling_rate=sampling_rate, duration=2),
            naa.SpeedAug(factor=(1.5, 3))
        ])

        augmented_audio = flow.augment(audio)

        self.assertFalse(np.array_equal(audio, augmented_audio))
        self.assertTrue(len(audio), len(augmented_audio))
Exemplo n.º 9
0
    def test_audio(self):
        # https://freewavesamples.com/yamaha-v50-rock-beat-120-bpm
        sample_wav_file = os.path.join(os.environ.get("TEST_DIR"), 'res',
                                       'audio',
                                       'Yamaha-V50-Rock-Beat-120bpm.wav')

        audio, sampling_rate = AudioLoader.load_audio(sample_wav_file)

        flow = naf.Sequential([
            naa.NoiseAug(),
            naa.PitchAug(sampling_rate=sampling_rate, factor=(0.2, 1.5)),
            naa.ShiftAug(sampling_rate=sampling_rate, duration=2),
            naa.SpeedAug(factor=(1.5, 3))
        ])

        augmented_audio = flow.augment(audio)

        self.assertFalse(np.array_equal(audio, augmented_audio))
        self.assertTrue(len(audio), len(augmented_audio))
Exemplo n.º 10
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(),
        ]
Exemplo n.º 11
0
    def test_coverage_and_zone(self):
        params = [
            ((0.3, 0.7), 1),
            ((0, 1), 1)
        ]

        for zone, coverage in params:
            augs = [
                naa.LoudnessAug(zone=zone, coverage=coverage, stateless=False),
                naa.MaskAug(zone=zone, coverage=coverage, stateless=False),
                naa.NoiseAug(zone=zone, coverage=coverage, stateless=False),
                naa.PitchAug(zone=zone, coverage=coverage, stateless=False, sampling_rate=self.sampling_rate),
                naa.SpeedAug(zone=zone, coverage=coverage, stateless=False),
                naa.VtlpAug(zone=zone, coverage=coverage, stateless=False, sampling_rate=self.sampling_rate),
                naa.NormalizeAug(zone=zone, coverage=coverage, stateless=False),
                naa.PolarityInverseAug(zone=zone, coverage=coverage, stateless=False)
            ]

            for aug in augs:
                aug_data = aug.augment(self.audio)
                self.assertTrue(len(aug_data[aug.start_pos:aug.end_pos]), int(len(self.audio) * (zone[1] - zone[0]) * coverage))
Exemplo n.º 12
0
def aug_speed(data, speed_range=(0.9, 1.1)):
	aug = naa.SpeedAug(speed_range=speed_range)
	augmented_data = aug.augment(data)
	return augmented_data
def speed(data):
    aug = naa.SpeedAug()
    return aug.augment(data)
Exemplo n.º 14
0
            try:
                os.makedirs(path)
            except OSError:
                print("Creation of the directory %s failed" % path)
            else:
                print("Creation of the directory %s success" % path)
            if os.path.exists(csv_file_path):
                input_directory = Path(csv_file_path)
                for my_filename in input_directory.glob("*_AUDIO_*.wav"):
                    audio, sampling_rate = librosa.load(my_filename)
                    VisualWave.visual('Original', audio, sampling_rate)

                    flow = naf.Sequential([
                        naa.NoiseAug(),
                        naa.PitchAug(sampling_rate=sampling_rate,
                                     pitch_factor=1.5),
                        naa.ShiftAug(sampling_rate=sampling_rate, shift_max=2),
                        naa.SpeedAug(speed_factor=1.5)
                    ])
                    augmented_audio = flow.augment(audio)
                    VisualWave.visual('augment', augmented_audio,
                                      sampling_rate)
                    my_filename = my_filename.stem
                    librosa.output.write_wav(path + my_filename + '.wav',
                                             augmented_audio,
                                             sampling_rate,
                                             norm=False)
        except ValueError:
            print("Skipping the following line: ", row[0])
csvFile.close()
Exemplo n.º 15
0
def add_speed(data, sr):
    aug = naa.SpeedAug()
    return aug.augment(data)