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))
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))
def augmentation(): doss = 0 for dossier in os.listdir( '.'): # on parcourt tous les dossiers du répertoire courant if os.path.isdir(dossier): # si c'est bien un dossier cpt = 0 doss += 1 print("Dossier " + str(doss) + " sur 28") if doss >= 14: for file in os.listdir( './' + dossier + '/' ): # on parcours tous les fichiers .wav de ce repertoire if not os.path.isdir( file): # si c'est bien un fichier .wav path = './' + dossier + '/' + file audio, sampling_rate = librosa.load(path) freq = sampling_rate """ Noise injection It simply add some random value into data. """ liste_factor = [0.03, 0.02, 0.01] for fact in liste_factor: cpt += 1 aug = naa.NoiseAug(nosie_factor=fact) augmented_audio = aug.substitute(audio) path = './' + dossier + '/' + str(cpt) + '_' + file out_f = path wavf.write(out_f, freq, augmented_audio) liste_factor = [0.5, 2, 5] for fact in liste_factor: cpt += 1 aug = naa.PitchAug(sampling_rate=sampling_rate, pitch_factor=fact) augmented_audio = aug.substitute(audio) path = './' + dossier + '/' + str(cpt) + '_' + file out_f = path wavf.write(out_f, freq, augmented_audio)
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))
def test_substitute(self): aug = naa.PitchAug(sampling_rate=self.sampling_rate) augmented_audio = aug.augment(self.audio) self.assertFalse(np.array_equal(self.audio, augmented_audio)) self.assertEqual(len(self.audio), len(augmented_audio))
def aug_pitch(data, pitch_factor=(-2,3)): aug = naa.PitchAug(sampling_rate=sr, pitch_factor=pitch_factor) augmented_data = aug.augment(data) return augmented_data
def get_random_pitch(self): return naa.PitchAug(self.sample_rate, crop=(0, 1), coverage=1)
path = 'C:/Users/yobitrust/Desktop/DAIC_augmented/' + participant_ID + '_P/split/Participant/' 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()
def add_pitch(data, sr): aug = naa.PitchAug(sampling_rate=sr, pitch_range=(2, 3)) return aug.augment(data)