def test_mu_law_encoding(self): def func(tensor): qc = 256 return F.mu_law_encoding(tensor, qc) waveform = common_utils.get_whitenoise() self._assert_consistency(func, waveform)
def test_contrast(self): waveform = common_utils.get_whitenoise() def func(tensor): enhancement_amount = 80. return F.contrast(tensor, enhancement_amount) self._assert_consistency(func, waveform)
def test_dcshift(self): waveform = common_utils.get_whitenoise() def func(tensor): shift = 0.5 limiter_gain = 0.05 return F.dcshift(tensor, shift, limiter_gain) self._assert_consistency(func, waveform)
def test_overdrive(self): waveform = common_utils.get_whitenoise() def func(tensor): gain = 30. colour = 50. return F.overdrive(tensor, gain, colour) self._assert_consistency(func, waveform)
def test_riaa(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise(sample_rate=44100) def func(tensor): sample_rate = 44100 return F.riaa_biquad(tensor, sample_rate) self._assert_consistency(func, waveform)
def test_highpass(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise(sample_rate=44100) def func(tensor): sample_rate = 44100 cutoff_freq = 2000. return F.highpass_biquad(tensor, sample_rate, cutoff_freq) self._assert_consistency(func, waveform)
def test_bandreject(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise(sample_rate=44100) def func(tensor): sample_rate = 44100 central_freq = 1000. q = 0.707 return F.bandreject_biquad(tensor, sample_rate, central_freq, q) self._assert_consistency(func, waveform)
def test_equalizer(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise(sample_rate=44100) def func(tensor): sample_rate = 44100 center_freq = 300. gain = 1. q = 0.707 return F.equalizer_biquad(tensor, sample_rate, center_freq, gain, q) self._assert_consistency(func, waveform)
def test_spectrogram(self): def func(tensor): n_fft = 400 ws = 400 hop = 200 pad = 0 window = torch.hann_window(ws, device=tensor.device, dtype=tensor.dtype) power = 2. normalize = False return F.spectrogram(tensor, pad, window, n_fft, hop, ws, power, normalize) tensor = common_utils.get_whitenoise() self._assert_consistency(func, tensor)
def test_perf_biquad_filtering(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise() def func(tensor): a = torch.tensor([0.7, 0.2, 0.6], device=tensor.device, dtype=tensor.dtype) b = torch.tensor([0.4, 0.2, 0.9], device=tensor.device, dtype=tensor.dtype) return F.lfilter(tensor, a, b) self._assert_consistency(func, waveform)
def test_lfilter(self): if self.dtype == torch.float64: raise unittest.SkipTest("This test is known to fail for float64") waveform = common_utils.get_whitenoise() def func(tensor): # Design an IIR lowpass filter using scipy.signal filter design # https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirdesign.html#scipy.signal.iirdesign # # Example # >>> from scipy.signal import iirdesign # >>> b, a = iirdesign(0.2, 0.3, 1, 60) b_coeffs = torch.tensor( [ 0.00299893, -0.0051152, 0.00841964, -0.00747802, 0.00841964, -0.0051152, 0.00299893, ], device=tensor.device, dtype=tensor.dtype, ) a_coeffs = torch.tensor( [ 1.0, -4.8155751, 10.2217618, -12.14481273, 8.49018171, -3.3066882, 0.56088705, ], device=tensor.device, dtype=tensor.dtype, ) return F.lfilter(tensor, a_coeffs, b_coeffs) self._assert_consistency(func, waveform)
def test_phaser(self): waveform = common_utils.get_whitenoise(sample_rate=44100) def func(tensor): gain_in = 0.5 gain_out = 0.8 delay_ms = 2.0 decay = 0.4 speed = 0.5 sample_rate = 44100 return F.phaser(tensor, sample_rate, gain_in, gain_out, delay_ms, decay, speed, sinusoidal=True) self._assert_consistency(func, waveform)
def test_Vol(self): waveform = common_utils.get_whitenoise() self._assert_consistency(T.Vol(1.1), waveform)
def test_Fade(self): waveform = common_utils.get_whitenoise() fade_in_len = 3000 fade_out_len = 3000 self._assert_consistency(T.Fade(fade_in_len, fade_out_len), waveform)
def test_MuLawEncoding(self): tensor = common_utils.get_whitenoise() self._assert_consistency(T.MuLawEncoding(), tensor)
def test_Resample(self): sr1, sr2 = 16000, 8000 tensor = common_utils.get_whitenoise(sample_rate=sr1) self._assert_consistency(T.Resample(float(sr1), float(sr2)), tensor)
def test_dither_GPDF(self): def func(tensor): return F.dither(tensor, 'GPDF') tensor = common_utils.get_whitenoise(n_channels=2) self._assert_consistency(func, tensor, shape_only=True)