def test_flanger_sine_quad(self): """ Test flanger effect with sine modulation and quadratic interpolation, compare to SoX implementation """ delay = 0.9 depth = 0.9 regen = 4.0 width = 0.23 speed = 1.3 phase = 25 noise_filepath = common_utils.get_asset_path('whitenoise.wav') E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(noise_filepath) E.append_effect_to_chain( "flanger", [delay, depth, regen, width, speed, "sine", phase, "quadratic"]) sox_output_waveform, sr = E.sox_build_flow_effects() waveform, sample_rate = torchaudio.load(noise_filepath, normalization=True) output_waveform = F.flanger(waveform, sample_rate, delay, depth, regen, width, speed, phase, modulation='sinusoidal', interpolation='quadratic') torch.testing.assert_allclose(output_waveform, sox_output_waveform, atol=1e-4, rtol=1e-5)
def test_flanger_triangle_linear(self): """ Test flanger effect with triangle modulation and linear interpolation, compare to SoX implementation """ delay = 0.6 depth = 0.87 regen = 3.0 width = 0.9 speed = 0.5 phase = 30 noise_filepath = common_utils.get_asset_path('whitenoise.wav') E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(noise_filepath) E.append_effect_to_chain( "flanger", [delay, depth, regen, width, speed, "triangle", phase, "linear"]) sox_output_waveform, sr = E.sox_build_flow_effects() waveform, sample_rate = torchaudio.load(noise_filepath, normalization=True) output_waveform = F.flanger(waveform, sample_rate, delay, depth, regen, width, speed, phase, modulation='triangular', interpolation='linear') torch.testing.assert_allclose(output_waveform, sox_output_waveform, atol=1e-4, rtol=1e-5)
def test_flanger_sine_quad(self): """ Test flanger effect with sine modulation and quadratic interpolation, compare to SoX implementation """ delay = 0.9 depth = 0.9 regen = 4.0 width = 0.23 speed = 1.3 phase = 25 E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(self.noise_filepath) E.append_effect_to_chain( "flanger", [delay, depth, regen, width, speed, "sine", phase, "quadratic"]) sox_output_waveform, sr = E.sox_build_flow_effects() output_waveform = F.flanger(self.noise_waveform, self.NOISE_SAMPLE_RATE, delay, depth, regen, width, speed, phase, modulation='sinusoidal', interpolation='quadratic') torch.testing.assert_allclose(output_waveform, sox_output_waveform, atol=1e-4, rtol=1e-5)
def test_flanger_triangle_linear(self): """ Test flanger effect with triangle modulation and linear interpolation, compare to SoX implementation """ delay = 0.6 depth = 0.87 regen = 3.0 width = 0.9 speed = 0.5 phase = 30 E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(self.noise_filepath) E.append_effect_to_chain( "flanger", [delay, depth, regen, width, speed, "triangle", phase, "linear"]) sox_output_waveform, sr = E.sox_build_flow_effects() output_waveform = F.flanger(self.noise_waveform, self.NOISE_SAMPLE_RATE, delay, depth, regen, width, speed, phase, modulation='triangular', interpolation='linear') torch.testing.assert_allclose(output_waveform, sox_output_waveform, atol=1e-4, rtol=1e-5)
def func(tensor): delay = 0.8 depth = 0.88 regen = 3.0 width = 0.23 speed = 1.3 phase = 60. sample_rate = 44100 return F.flanger(tensor, sample_rate, delay, depth, regen, width, speed, phase, modulation='sinusoidal', interpolation='linear')
def test_flanger_sine_quad(self): delay = 0.9 depth = 0.9 regen = 4.0 width = 0.23 speed = 1.3 phase = 25 sample_rate = 8000 data, path = self.get_whitenoise(sample_rate) result = F.flanger( data, sample_rate, delay, depth, regen, width, speed, phase, modulation='sinusoidal', interpolation='quadratic') self.assert_sox_effect( result, path, ['flanger', delay, depth, regen, width, speed, 'sine', phase, 'quadratic'])
def test_flanger_sine_linear(self): delay = 0.8 depth = 0.88 regen = 3.0 width = 0.23 speed = 1.3 phase = 60 sample_rate = 8000 data, path = self.get_whitenoise(sample_rate) result = F.flanger( data, sample_rate, delay, depth, regen, width, speed, phase, modulation='sinusoidal', interpolation='linear') self.assert_sox_effect( result, path, ['flanger', delay, depth, regen, width, speed, 'sine', phase, 'linear'])
def test_flanger_triangle_quad(self): delay = 0.8 depth = 0.88 regen = 3.0 width = 0.4 speed = 0.5 phase = 40 sample_rate = 8000 data, path = self.get_whitenoise(sample_rate) result = F.flanger( data, sample_rate, delay, depth, regen, width, speed, phase, modulation='triangular', interpolation='quadratic') self.assert_sox_effect( result, path, ['flanger', delay, depth, regen, width, speed, 'triangle', phase, 'quadratic'])