Example #1
0
    def test_spectrogram(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'))

        mel_spectrogram = LoadUtil.load_mel_spectrogram(sample_wav_file, n_mels=128)

        flow = naf.Sequential([
            nas.FrequencyMaskingAug(mask_factor=50),
            nas.TimeMaskingAug(mask_factor=20),
            nas.TimeMaskingAug(mask_factor=30)])

        augmented_mel_spectrogram = flow.augment(mel_spectrogram)

        for aug in flow:
            if aug.name == 'FrequencyMasking_Aug':
                self.assertEqual(len(mel_spectrogram[aug.model.f0]), np.count_nonzero(mel_spectrogram[aug.model.f0]))
                self.assertEqual(0, np.count_nonzero(augmented_mel_spectrogram[aug.model.f0]))
            elif aug.name == 'TimeMasking_Aug':
                self.assertEqual(len(mel_spectrogram[:, aug.model.t0]),
                                 np.count_nonzero(mel_spectrogram[:, aug.model.t0]))
                self.assertEqual(0, np.count_nonzero(augmented_mel_spectrogram[:, aug.model.t0]))
            else:
                # Unexpected flow
                self.assertFalse(True)

        self.assertTrue(len(flow) > 0)
Example #2
0
    def test_n_output_spectrogram(self):
        audio, sampling_rate = librosa.load(self.sample_wav_file)
        mel_spectrogram = LoadUtil.load_mel_spectrogram(self.sample_wav_file, n_mels=128)
    #
        flows = [
            naf.Sequential([
                nas.FrequencyMaskingAug(mask_factor=80),
                nas.TimeMaskingAug(mask_factor=80)
            ]),
            naf.Sometimes([
                nas.FrequencyMaskingAug(mask_factor=80),
                nas.TimeMaskingAug(mask_factor=80)
            ], pipeline_p=0.9),
            naf.Sequential([
                naf.Sequential([
                    nas.FrequencyMaskingAug(mask_factor=80),
                    nas.TimeMaskingAug(mask_factor=80)
                ]),
                naf.Sometimes([
                    nas.FrequencyMaskingAug(mask_factor=80),
                    nas.TimeMaskingAug(mask_factor=80)
                ], pipeline_p=0.9)
            ])
        ]

        for flow in flows:
            augmented_mel_spectrograms = flow.augment(mel_spectrogram, n=3)
            self.assertGreater(len(augmented_mel_spectrograms), 1)
            for augmented_mel_spectrogram in augmented_mel_spectrograms:
                self.assertFalse(np.array_equal(mel_spectrogram, augmented_mel_spectrogram))

        self.assertLess(0, len(flows))
Example #3
0
    def test_multi_thread(self):
        mel_spectrogram = LoadUtil.load_mel_spectrogram(self.sample_wav_file, n_mels=128)
        n = 3
        augs = [
            nas.FrequencyMaskingAug(mask_factor=80),
            nas.TimeMaskingAug(mask_factor=80)
        ]

        for num_thread in [1, 3]:
            for aug in augs:
                augmented_data = aug.augment(mel_spectrogram, n=n, num_thread=num_thread)
                self.assertEqual(len(augmented_data), n)
Example #4
0
    def test_substitute(self):
        freq_mask_para = 80

        mel_spectrogram = LoadUtil.load_mel_spectrogram(self.sample_wav_file,
                                                        n_mels=128)
        aug = FrequencyMaskingAug(mask_factor=freq_mask_para)

        augmented_mel_spectrogram = aug.augment(mel_spectrogram)

        self.assertEqual(len(mel_spectrogram[aug.model.f0]),
                         np.count_nonzero(mel_spectrogram[aug.model.f0]))
        self.assertEqual(
            0, np.count_nonzero(augmented_mel_spectrogram[aug.model.f0]))
Example #5
0
    def test_substitute(self):
        time_mask_para = 80

        mel_spectrogram = LoadUtil.load_mel_spectrogram(
            self.sample_wav_file, n_mels=self.num_of_freq_channel)
        aug = TimeMaskingAug(mask_factor=time_mask_para)

        augmented_mel_spectrogram = aug.augment(mel_spectrogram)

        self.assertEqual(len(mel_spectrogram[:, aug.model.t0]),
                         np.count_nonzero(mel_spectrogram[:, aug.model.t0]))
        self.assertEqual(
            0, np.count_nonzero(augmented_mel_spectrogram[:, aug.model.t0]))