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))
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))
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)
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)
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)
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(), ]
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)
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
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(), ]
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
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))
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)
def crop_audio(data, sr): aug = naa.CropAug(sampling_rate=sr) return aug.augment(data)