示例#1
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))
示例#2
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))
示例#3
0
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)
示例#4
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))
示例#5
0
    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))
示例#6
0
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)
示例#8
0
            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()
示例#9
0
def add_pitch(data, sr):
    aug = naa.PitchAug(sampling_rate=sr, pitch_range=(2, 3))
    return aug.augment(data)