From 3d7a6e35edb6ab05442f4f0d2e61abf5fd1469de Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 9 Sep 2019 20:09:06 -0400 Subject: [PATCH 01/28] Add basic low pass filtering --- examples/filter_file.py | 14 +++++ test/assets/whitenoise.mp3 | Bin 0 -> 57136 bytes test/test_functional_filtering.py | 44 +++++++++++++++ torchaudio/functional.py | 4 ++ torchaudio/functional_filtering.py | 86 +++++++++++++++++++++++++++++ 5 files changed, 148 insertions(+) create mode 100644 examples/filter_file.py create mode 100644 test/assets/whitenoise.mp3 create mode 100644 test/test_functional_filtering.py create mode 100644 torchaudio/functional_filtering.py diff --git a/examples/filter_file.py b/examples/filter_file.py new file mode 100644 index 0000000000..eb829551b4 --- /dev/null +++ b/examples/filter_file.py @@ -0,0 +1,14 @@ +import os +import sys +import torchaudio + +if __name__ == '__main__': + + AUDIO_PATH = sys.argv[1] + OUTPUT_PATH = sys.argv[2] + N_FFT = 512 + THRESHOLD_HZ = 3000 + + audio, sample_rate = torchaudio.load(AUDIO_PATH, normalization=False) + lowpassed_audio = torchaudio.functional.lowpass(audio, sample_rate, N_FFT, THRESHOLD_HZ) + torchaudio.save(OUTPUT_PATH, lowpassed_audio, sample_rate) \ No newline at end of file diff --git a/test/assets/whitenoise.mp3 b/test/assets/whitenoise.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d6fe9f44b90bb0e03d7b3ebfb8f46858f888bc3a GIT binary patch literal 57136 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 literal 0 HcmV?d00001 diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py new file mode 100644 index 0000000000..89cb76a0f2 --- /dev/null +++ b/test/test_functional_filtering.py @@ -0,0 +1,44 @@ +from __future__ import absolute_import, division, print_function, unicode_literals +import math +import os +import torch +import torchaudio +import torchaudio.functional as F +import unittest +import common_utils + + +class TestFunctionalFiltering(unittest.TestCase): + test_dirpath, test_dir = common_utils.create_temp_assets_dir() + + """ + Open up a file of white noise. + Compute ratio of power in high band vs low bands, should be approximately equal + Perform a low pass filter at half Nyquist + Recompute ratio, should be very skewed + """ + def test_band_energy_reduction(self): + + def compute_ratio_high_vs_low(signal, n_fft): + dft = torch.stft(signal, n_fft) + psd = torch.sqrt(dft[:,:,:,0] * dft[:,:,:,0] + dft[:,:,:,1] * dft[:,:,:,1]) + upper_indices = [slice(None), torch.arange(n_fft//4, n_fft//2+1).long(), slice(None)] + lower_indices = [slice(None), torch.arange(0, n_fft//4).long(), slice(None)] + + higher_bands_avg_energy = torch.mean(psd[upper_indices]).item() + lower_bands_avg_energy = torch.mean(psd[lower_indices]).item() + return (higher_bands_avg_energy / lower_bands_avg_energy) + + white_noise_path = os.path.join(os.path.join(self.test_dirpath, "assets"), 'whitenoise.mp3') + audio, sample_rate = torchaudio.load(white_noise_path, normalization=False) + high_to_low_pre_lowpass = compute_ratio_high_vs_low(audio, 512) + self.assertTrue(0.25 < high_to_low_pre_lowpass < 4) + CUTOFF_FREQ = sample_rate // 4 # half of nyquist + lowpassed_audio = torchaudio.functional.lowpass(audio, sample_rate, 512, CUTOFF_FREQ) + high_to_low_post_lowpass = compute_ratio_high_vs_low(lowpassed_audio, 512) + + print(high_to_low_pre_lowpass, high_to_low_post_lowpass) + self.assertTrue( high_to_low_post_lowpass * 10 < high_to_low_pre_lowpass ) + +if __name__ == '__main__': + unittest.main() diff --git a/torchaudio/functional.py b/torchaudio/functional.py index e33cc702c7..0b2e7122ff 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -15,6 +15,7 @@ 'angle', 'magphase', 'phase_vocoder', + 'lowpass', ] @@ -466,3 +467,6 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): complex_specgrams_stretch = torch.stack([real_stretch, imag_stretch], dim=-1) return complex_specgrams_stretch + + +from torchaudio.functional_filtering import lowpass1 as lowpass \ No newline at end of file diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py new file mode 100644 index 0000000000..a925b1a154 --- /dev/null +++ b/torchaudio/functional_filtering.py @@ -0,0 +1,86 @@ +from __future__ import absolute_import, division, print_function, unicode_literals +import math +import torch +import torchaudio + + +__all__ = [ + 'lowpass1', +] + +# Should we name this low pass filter? +def lowpass1(waveform, # type: Tensor + sample_rate, # type: int + n_fft, # type: int + f_thresh, # type: int + hop_length=None, # type: Optional[int] + win_length=None, # type: Optional[int] + window=None, # type: Optional[Tensor] + center=True, # type: Optional[bool] + pad_mode='reflect', # type: Optional[str] + normalized=False, # type: Optional[bool] + onesided=True, # type: Optional[bool] + ): + # type: (...) -> Tensor + r"""Simple low pass filter. Performs Short Time Fourier Transform, zeros out elements + above a threshold requency, and inverts Fourier Transform. + + Args: + waveform (torch.Tensor): Audio waveform that has a size of (channel, n_frames) + sample_rate (int): Audio waveform sampling rate in frames / sec (Hz) + n_fft (int): Size of Fourier transform in frames + f_thresh (int): Threshold above which signal will be filtered out (Hz) + hop_length (Optional[int]): See STFT documentation + win_length (Optional[int]): See STFT documentation + window (Optional[torch.Tensor]): See STFT documentation + center (Optional[bool]): See STFT documentation + pad_mode (Optional[str]): See STFT documentation + normalized (Optional[bool]): See STFT documentation + onesided (Optional[bool]): See STFT documentation + + Returns: + torch.Tensor: Audio waveform that has been denoised of size (channel, n_frames) + """ + + assert(f_thresh < sample_rate // 2) + assert(f_thresh >= 0) + + # Convert threshold frequency cutoff to index + # Depends on the sampling rate + i_thresh = math.ceil(f_thresh * n_fft / sample_rate) + + assert(i_thresh < n_fft // 2) + + waveform_stft = torch.stft( waveform, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided + ) + + + # Zero out elements above the CUTOFF + (n_channels, fft_size, n_windows, n_real_complex) = waveform_stft.size() + assert(2 == n_real_complex) + assert(1 == n_channels or 2 == n_channels) # audio is mono or stereo + + # Set all components above threshold to zero + i_thresh_end = fft_size if onesided else fft_size - i_thresh - 1 + waveform_stft[[slice(None), torch.arange(i_thresh, i_thresh_end).long(), slice(None), slice(None)]] = 0 + + denoised_audio = torchaudio.functional.istft(waveform_stft, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided, + waveform.size()[1]) + + return denoised_audio From 5202837510598726069148320162c3d4939410a3 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 9 Sep 2019 21:03:49 -0400 Subject: [PATCH 02/28] Naive first implementation of biquad per SoX implementation --- test/test_functional_filtering.py | 26 ++++++++++++++++++++ torchaudio/functional.py | 4 +++- torchaudio/functional_filtering.py | 38 +++++++++++++++++++++++++++++- 3 files changed, 66 insertions(+), 2 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 89cb76a0f2..a90b920903 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -40,5 +40,31 @@ def compute_ratio_high_vs_low(signal, n_fft): print(high_to_low_pre_lowpass, high_to_low_post_lowpass) self.assertTrue( high_to_low_post_lowpass * 10 < high_to_low_pre_lowpass ) + def test_biquad_sox_compliance(self): + + """ + Run a file through SoX biquad with randomly chosen coefficients + Then run a file through our biquad method. + Should match + """ + b0 = 0.4 + b1 = 0.2 + b2 = 0.9 + a0 = 0.7 + a1 = 0.2 + a2 = 0.6 + + fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") + + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(fn_sine) + E.append_effect_to_chain("biquad", [b0, b1, b2, a0, a1, a2]) + sox_signal_out, sr = E.sox_build_flow_effects() + + audio, sample_rate = torchaudio.load(fn_sine, normalization=True) + signal_out = torchaudio.functional.biquad(audio, b0, b1, b2, a0, a1, a2) + + assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + if __name__ == '__main__': unittest.main() diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 0b2e7122ff..a8924025da 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -16,6 +16,7 @@ 'magphase', 'phase_vocoder', 'lowpass', + 'biquad', ] @@ -469,4 +470,5 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch -from torchaudio.functional_filtering import lowpass1 as lowpass \ No newline at end of file +from torchaudio.functional_filtering import lowpass1 as lowpass +from torchaudio.functional_filtering import biquad \ No newline at end of file diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index a925b1a154..83b96321cc 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -6,9 +6,45 @@ __all__ = [ 'lowpass1', + 'biquad', ] -# Should we name this low pass filter? + +""" +Biquad filtering approach based on SoX + +Given coefficients of a biquad filter, return the output + +TBD Need to do performance profile, very slow +""" +def biquad(input, b0, b1, b2, a0, a1, a2): + + n_channels, n_samples = input.size() + output = torch.zeros_like(input) + + # Normalize the coefficients + b2 = b2 / a0 + b1 = b1 / a0 + b0 = b0 / a0 + a2 = a2 / a0 + a1 = a1 / a0 + + # Initial Conditions set to zero + pi1 = torch.zeros(n_channels, 1) + pi2 = torch.zeros(n_channels, 1) + po1 = torch.zeros(n_channels, 1) + po2 = torch.zeros(n_channels, 1) + + for i in range(input.size()[1]): + o0 = input[:, i] * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2 + pi2 = pi1 + pi1 = input[:, i] + po2 = po1 + po1 = o0 + output[:, i] = o0 + + return output + def lowpass1(waveform, # type: Tensor sample_rate, # type: int n_fft, # type: int From b98522ea34dbe99e561a9a8bd589f36d19470ff0 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 9 Sep 2019 21:50:21 -0400 Subject: [PATCH 03/28] Add highpass filtering --- test/test_functional_filtering.py | 53 ++++++++++++++++++++++++++++-- torchaudio/functional.py | 4 +++ torchaudio/functional_filtering.py | 48 ++++++++++++++++++++++++--- 3 files changed, 97 insertions(+), 8 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index a90b920903..49f7e8893a 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -34,7 +34,7 @@ def compute_ratio_high_vs_low(signal, n_fft): high_to_low_pre_lowpass = compute_ratio_high_vs_low(audio, 512) self.assertTrue(0.25 < high_to_low_pre_lowpass < 4) CUTOFF_FREQ = sample_rate // 4 # half of nyquist - lowpassed_audio = torchaudio.functional.lowpass(audio, sample_rate, 512, CUTOFF_FREQ) + lowpassed_audio = F.lowpass(audio, sample_rate, 512, CUTOFF_FREQ) high_to_low_post_lowpass = compute_ratio_high_vs_low(lowpassed_audio, 512) print(high_to_low_pre_lowpass, high_to_low_post_lowpass) @@ -55,16 +55,63 @@ def test_biquad_sox_compliance(self): a2 = 0.6 fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") - E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(fn_sine) E.append_effect_to_chain("biquad", [b0, b1, b2, a0, a1, a2]) sox_signal_out, sr = E.sox_build_flow_effects() audio, sample_rate = torchaudio.load(fn_sine, normalization=True) - signal_out = torchaudio.functional.biquad(audio, b0, b1, b2, a0, a1, a2) + signal_out = F.biquad(audio, b0, b1, b2, a0, a1, a2) assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + def test_lowpass_sox_compliance(self): + + """ + Run a file through SoX lowpass filter + Then run through our lowpass filter + Should match + """ + + CUTOFF_FREQ = 3000 + + noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(noise_filepath) + E.append_effect_to_chain("lowpass", [CUTOFF_FREQ]) + sox_signal_out, sr = E.sox_build_flow_effects() + + noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) + signal_out = F.lowpass_biquad(noise, sample_rate, CUTOFF_FREQ) + + print(sox_signal_out, signal_out) + + assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + + def test_highpass_sox_compliance(self): + + """ + Run a file through SoX highpass filter + Then run through our highpass filter + Should match + """ + + CUTOFF_FREQ = 1000 + + noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(noise_filepath) + E.append_effect_to_chain("highpass", [CUTOFF_FREQ]) + sox_signal_out, sr = E.sox_build_flow_effects() + + noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) + signal_out = F.highpass_biquad(noise, sample_rate, CUTOFF_FREQ) + + print(sox_signal_out, signal_out) + + assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + + + if __name__ == '__main__': unittest.main() diff --git a/torchaudio/functional.py b/torchaudio/functional.py index a8924025da..f19371d5b4 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -16,6 +16,8 @@ 'magphase', 'phase_vocoder', 'lowpass', + 'lowpass_biquad', + 'highpass_biquad', 'biquad', ] @@ -471,4 +473,6 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): from torchaudio.functional_filtering import lowpass1 as lowpass +from torchaudio.functional_filtering import lowpass_biquad +from torchaudio.functional_filtering import highpass_biquad from torchaudio.functional_filtering import biquad \ No newline at end of file diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 83b96321cc..1ca01c79b7 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -1,22 +1,60 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch +import math import torchaudio +""" +Biquad filtering approach based on SoX implementation 14.4.2 + +Performance is currently very slow +""" __all__ = [ 'lowpass1', 'biquad', + 'lowpass_biquad', + 'highpass_biquad', ] -""" -Biquad filtering approach based on SoX +def _dB2Linear(x): + return math.exp(x * math.log(10) / 20.0) + +def highpass_biquad(input, sr, cutoff_freq, Q = 0.707): + + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sr + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 + math.cos(w0))/2 + b1 = -1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(input, b0, b1, b2, a0, a1, a2) + + +def lowpass_biquad(input, sr, cutoff_freq, Q = 0.707): + + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sr + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 - math.cos(w0))/2 + b1 = 1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(input, b0, b1, b2, a0, a1, a2) -Given coefficients of a biquad filter, return the output -TBD Need to do performance profile, very slow -""" def biquad(input, b0, b1, b2, a0, a1, a2): n_channels, n_samples = input.size() From 55a904c1e1209dde219ca37e7971570f3f2b2e41 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sat, 14 Sep 2019 20:39:37 -0400 Subject: [PATCH 04/28] added cpp implementation of filtering --- setup.py | 8 ++ test/test_functional_filtering.py | 117 ++++++++++------ torchaudio/filtering.cpp | 73 ++++++++++ torchaudio/filtering.h | 21 +++ torchaudio/functional_filtering.py | 216 +++++++++++++++++++++-------- 5 files changed, 334 insertions(+), 101 deletions(-) create mode 100644 torchaudio/filtering.cpp create mode 100644 torchaudio/filtering.h diff --git a/setup.py b/setup.py index 9ed91f2468..4822a6e9d0 100644 --- a/setup.py +++ b/setup.py @@ -113,6 +113,14 @@ def check_env_flag(name, default=''): extra_compile_args=eca, extra_objects=extra_objects, extra_link_args=ela), + CppExtension( + '_torch_filtering', + ['torchaudio/filtering.cpp'], + libraries=libraries, + include_dirs=include_dirs, + extra_compile_args=eca, + extra_objects=extra_objects, + extra_link_args=ela), ], cmdclass={'build_ext': BuildExtension}, install_requires=[pytorch_package_dep] diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 49f7e8893a..0102bf5dd4 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -17,54 +17,43 @@ class TestFunctionalFiltering(unittest.TestCase): Perform a low pass filter at half Nyquist Recompute ratio, should be very skewed """ - def test_band_energy_reduction(self): + @unittest.skip + def test_band_energy_reduction(self): def compute_ratio_high_vs_low(signal, n_fft): dft = torch.stft(signal, n_fft) - psd = torch.sqrt(dft[:,:,:,0] * dft[:,:,:,0] + dft[:,:,:,1] * dft[:,:,:,1]) - upper_indices = [slice(None), torch.arange(n_fft//4, n_fft//2+1).long(), slice(None)] - lower_indices = [slice(None), torch.arange(0, n_fft//4).long(), slice(None)] + psd = torch.sqrt( + dft[:, :, :, 0] * dft[:, :, :, 0] + dft[:, :, :, 1] * dft[:, :, :, 1] + ) + upper_indices = [ + slice(None), + torch.arange(n_fft // 4, n_fft // 2 + 1).long(), + slice(None), + ] + lower_indices = [ + slice(None), + torch.arange(0, n_fft // 4).long(), + slice(None), + ] higher_bands_avg_energy = torch.mean(psd[upper_indices]).item() lower_bands_avg_energy = torch.mean(psd[lower_indices]).item() - return (higher_bands_avg_energy / lower_bands_avg_energy) + return higher_bands_avg_energy / lower_bands_avg_energy - white_noise_path = os.path.join(os.path.join(self.test_dirpath, "assets"), 'whitenoise.mp3') + white_noise_path = os.path.join( + os.path.join(self.test_dirpath, "assets"), "whitenoise.mp3" + ) audio, sample_rate = torchaudio.load(white_noise_path, normalization=False) high_to_low_pre_lowpass = compute_ratio_high_vs_low(audio, 512) self.assertTrue(0.25 < high_to_low_pre_lowpass < 4) - CUTOFF_FREQ = sample_rate // 4 # half of nyquist + CUTOFF_FREQ = sample_rate // 4 # half of nyquist lowpassed_audio = F.lowpass(audio, sample_rate, 512, CUTOFF_FREQ) high_to_low_post_lowpass = compute_ratio_high_vs_low(lowpassed_audio, 512) - - print(high_to_low_pre_lowpass, high_to_low_post_lowpass) - self.assertTrue( high_to_low_post_lowpass * 10 < high_to_low_pre_lowpass ) - - def test_biquad_sox_compliance(self): - - """ - Run a file through SoX biquad with randomly chosen coefficients - Then run a file through our biquad method. - Should match - """ - b0 = 0.4 - b1 = 0.2 - b2 = 0.9 - a0 = 0.7 - a1 = 0.2 - a2 = 0.6 - - fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") - E = torchaudio.sox_effects.SoxEffectsChain() - E.set_input_file(fn_sine) - E.append_effect_to_chain("biquad", [b0, b1, b2, a0, a1, a2]) - sox_signal_out, sr = E.sox_build_flow_effects() - - audio, sample_rate = torchaudio.load(fn_sine, normalization=True) - signal_out = F.biquad(audio, b0, b1, b2, a0, a1, a2) - assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + print(high_to_low_pre_lowpass, high_to_low_post_lowpass) + self.assertTrue(high_to_low_post_lowpass * 10 < high_to_low_pre_lowpass) + @unittest.skip def test_lowpass_sox_compliance(self): """ @@ -84,10 +73,59 @@ def test_lowpass_sox_compliance(self): noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) signal_out = F.lowpass_biquad(noise, sample_rate, CUTOFF_FREQ) - print(sox_signal_out, signal_out) + assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) - assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) + def test_biquad_filtering(self): + """ + Try three implementations of biquad filtering and test speed + - 1.) Call to SoX + - 2.) Call to cpp biquad function + - 3.) Call to Python biquad function + + Current results: 1 ~20x faster than 2 ~ 15x faster than 3 + """ + + import time, _torch_filtering + + b0 = 0.4 + b1 = 0.2 + b2 = 0.9 + a0 = 0.7 + a1 = 0.2 + a2 = 0.6 + + # SoX method + fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(fn_sine) + _timing_sox = time.time() + E.append_effect_to_chain("biquad", [b0, b1, b2, a0, a1, a2]) + waveform_sox_out, sr = E.sox_build_flow_effects() + _timing_sox_run_time = time.time() - _timing_sox + + # CPP Filtering with Biquad + audio, sample_rate = torchaudio.load(fn_sine, normalization=True) + waveform_cpp_out = torch.zeros_like(audio) + _timing_cpp_filtering = time.time() + _torch_filtering.biquad(audio, waveform_cpp_out, b0, b1, b2, a0, a1, a2) + _timing_cpp_run_time = time.time() - _timing_cpp_filtering + + # Native Python Implementation + _timing_python = time.time() + waveform_python_out = F.biquad(audio, b0, b1, b2, a0, a1, a2) + _timing_python_run_time = time.time() - _timing_python + + assert torch.allclose(waveform_sox_out, waveform_python_out, atol=1e-5) + assert torch.allclose(waveform_sox_out, waveform_cpp_out, atol=1e-5) + + print("SoX Run Time : ", round(_timing_sox_run_time, 3)) + print("CPP Run Time : ", round(_timing_cpp_run_time, 3)) + print("Python Run Time: ", round(_timing_python_run_time, 3)) + + assert( 1== 0) + + @unittest.skip def test_highpass_sox_compliance(self): """ @@ -107,11 +145,8 @@ def test_highpass_sox_compliance(self): noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) signal_out = F.highpass_biquad(noise, sample_rate, CUTOFF_FREQ) - print(sox_signal_out, signal_out) - - assert(torch.allclose(sox_signal_out, signal_out, atol=1e-4)) - + assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) -if __name__ == '__main__': +if __name__ == "__main__": unittest.main() diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp new file mode 100644 index 0000000000..6ed701db82 --- /dev/null +++ b/torchaudio/filtering.cpp @@ -0,0 +1,73 @@ +#include + +#include + +#include +#include +#include +#include + +namespace torch { +namespace audio { + + void biquad( + at::Tensor& input_waveform, + at::Tensor& output_waveform, + double b0, + double b1, + double b2, + double a0, + double a1, + double a2 + ) { + + int64_t n_channels = input_waveform.size(0); + int64_t n_frames = input_waveform.size(1); + + //assert(output_waveform.size(0) == n_channels); + //assert(output_waveform.size(1) == n_frames); + + b0 = b0 / a0; + b1 = b1 / a0; + b2 = b2 / a0; + a1 = a1 / a0; + a2 = a2 / a0; + + for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { + + double pi1 = 0; + double pi2 = 0; + double po1 = 0; + double po2 = 0; + double o0, i0; + + for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { + i0 = input_waveform[i_channel][i_frame].item(); + o0 = (i0 * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2); + + // increment time forward + pi2 = pi1; + pi1 = i0; + po2 = po1; + po1 = o0; + if (o0 > 1) { + o0 = 1; + } else if (o0 < -1) { + o0 = -1; + } + output_waveform[i_channel][i_frame] = o0; + } + } + } + + +}} + + +PYBIND11_MODULE(_torch_filtering, m) { + m.def( + "biquad", + &torch::audio::biquad, + "Executes biquad"); + +} diff --git a/torchaudio/filtering.h b/torchaudio/filtering.h new file mode 100644 index 0000000000..908cf691ff --- /dev/null +++ b/torchaudio/filtering.h @@ -0,0 +1,21 @@ +#include + +namespace at { +struct Tensor; +} // namespace at + +namespace torch { namespace audio { + +/// Takes a tensor and performs a biquad difference function + +int biquad( + at::Tensor& input_waveform, + at::Tensor output_waveform, + float a0, + float a1, + float a2, + float b0, + float b1, + float b2 +); +}} // namespace torch::audio diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 1ca01c79b7..00a20076bf 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -7,21 +7,18 @@ """ Biquad filtering approach based on SoX implementation 14.4.2 -Performance is currently very slow +Performance needs to be evaluated against SoX + """ -__all__ = [ - 'lowpass1', - 'biquad', - 'lowpass_biquad', - 'highpass_biquad', -] +__all__ = ["lowpass1", "biquad", "lowpass_biquad", "highpass_biquad"] def _dB2Linear(x): return math.exp(x * math.log(10) / 20.0) -def highpass_biquad(input, sr, cutoff_freq, Q = 0.707): + +def highpass_biquad(input, sr, cutoff_freq, Q=0.707): GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr @@ -29,7 +26,7 @@ def highpass_biquad(input, sr, cutoff_freq, Q = 0.707): alpha = math.sin(w0) / 2 / Q mult = _dB2Linear(max(GAIN, 0)) - b0 = (1 + math.cos(w0))/2 + b0 = (1 + math.cos(w0)) / 2 b1 = -1 - math.cos(w0) b2 = b0 a0 = 1 + alpha @@ -38,15 +35,15 @@ def highpass_biquad(input, sr, cutoff_freq, Q = 0.707): return biquad(input, b0, b1, b2, a0, a1, a2) -def lowpass_biquad(input, sr, cutoff_freq, Q = 0.707): - +def lowpass_biquad(input, sr, cutoff_freq, Q=0.707): + GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr A = math.exp(GAIN / 40.0 * math.log(10)) alpha = math.sin(w0) / 2 / Q mult = _dB2Linear(max(GAIN, 0)) - b0 = (1 - math.cos(w0))/2 + b0 = (1 - math.cos(w0)) / 2 b1 = 1 - math.cos(w0) b2 = b0 a0 = 1 + alpha @@ -55,17 +52,79 @@ def lowpass_biquad(input, sr, cutoff_freq, Q = 0.707): return biquad(input, b0, b1, b2, a0, a1, a2) + + +def diff_eq_calculate(waveform, a_coeffs, b_coeffs): + """ + waveform is the input audio tensor of size [n_channels, n_frames] + + expresses general difference equation of the form: + + a0 * o[n] + a1 * o[n-1] + a2 * o[n-2] + ... = + b0 * i[n] + b1 * i[n-1] + b2 * i[n-2] + ... + + a_coeffs input list of length and [a0, a1, a2, ...] + b_coeffs input list length and [b0, b1, b2, ...] + + """ + + def clip(v): + return max(-1.0, min(1.0, v)) + + [n_channels, n_frames] = waveform.size() + n_a_coeffs = len(a_coeffs) + n_b_coeffs = len(b_coeffs) + n_order = max([n_a_coeffs, n_b_coeffs]) + assert(n_order > 0 and n_a_coeffs > 0) + a0 = a_coeffs[0] + + coeff_matrix = torch.zeros(2, n_order, dtype=torch.float) + # fill in the output coefficients + for i_a, a in enumerate(a_coeffs): + if i_a > 0: + coeff_matrix[0, n_order - i_a - 1] = -1.0 * a / a0 + # fill in the input coefficients + for i_b, b in enumerate(b_coeffs): + coeff_matrix[1, n_order - i_b - 1] = float(b) / a0 + + print("Coefficients matrix", coeff_matrix) + + # pad waveform by the order of the filter + pad = torch.zeros(n_channels, n_order - 1) + + padded_waveform = torch.cat([pad, waveform], dim = 1) + print("padded waveform", padded_waveform, padded_waveform.size()) + + dat = torch.stack([torch.zeros_like(padded_waveform), padded_waveform]) + #print("padded data", dat.size(), dat) + coeff_flattened = coeff_matrix.view(-1) + for i in range(n_frames): + for i_channel in range(n_channels): + sub = dat[ + [ + slice(None), + i_channel, + torch.arange(i, i + n_order).long(), + ] + ] + dat[0, i_channel, i + n_order - 1] = clip(torch.dot(sub.view(-1), coeff_flattened)) + + return dat[[0, slice(None), torch.arange(n_order - 1, n_frames + n_order-1)]] + def biquad(input, b0, b1, b2, a0, a1, a2): + def clip(v): + return max(-1.0, min(1.0, v)) + n_channels, n_samples = input.size() output = torch.zeros_like(input) # Normalize the coefficients - b2 = b2 / a0 - b1 = b1 / a0 - b0 = b0 / a0 - a2 = a2 / a0 - a1 = a1 / a0 + b2 = float(b2) / a0 + b1 = float(b1) / a0 + b0 = float(b0) / a0 + a2 = float(a2) / a0 + a1 = float(a1) / a0 # Initial Conditions set to zero pi1 = torch.zeros(n_channels, 1) @@ -74,7 +133,7 @@ def biquad(input, b0, b1, b2, a0, a1, a2): po2 = torch.zeros(n_channels, 1) for i in range(input.size()[1]): - o0 = input[:, i] * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2 + o0 = clip(input[:, i] * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2) pi2 = pi1 pi1 = input[:, i] po2 = po1 @@ -83,18 +142,19 @@ def biquad(input, b0, b1, b2, a0, a1, a2): return output -def lowpass1(waveform, # type: Tensor - sample_rate, # type: int - n_fft, # type: int - f_thresh, # type: int - hop_length=None, # type: Optional[int] - win_length=None, # type: Optional[int] - window=None, # type: Optional[Tensor] - center=True, # type: Optional[bool] - pad_mode='reflect', # type: Optional[str] - normalized=False, # type: Optional[bool] - onesided=True, # type: Optional[bool] - ): +def lowpass1( + waveform, # type: Tensor + sample_rate, # type: int + n_fft, # type: int + f_thresh, # type: int + hop_length=None, # type: Optional[int] + win_length=None, # type: Optional[int] + window=None, # type: Optional[Tensor] + center=True, # type: Optional[bool] + pad_mode="reflect", # type: Optional[str] + normalized=False, # type: Optional[bool] + onesided=True, # type: Optional[bool] +): # type: (...) -> Tensor r"""Simple low pass filter. Performs Short Time Fourier Transform, zeros out elements above a threshold requency, and inverts Fourier Transform. @@ -114,47 +174,83 @@ def lowpass1(waveform, # type: Tensor Returns: torch.Tensor: Audio waveform that has been denoised of size (channel, n_frames) - """ + """ - assert(f_thresh < sample_rate // 2) - assert(f_thresh >= 0) + assert f_thresh < sample_rate // 2 + assert f_thresh >= 0 # Convert threshold frequency cutoff to index # Depends on the sampling rate i_thresh = math.ceil(f_thresh * n_fft / sample_rate) - assert(i_thresh < n_fft // 2) - - waveform_stft = torch.stft( waveform, - n_fft, - hop_length, - win_length, - window, - center, - pad_mode, - normalized, - onesided - ) + assert i_thresh < n_fft // 2 + waveform_stft = torch.stft( + waveform, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided, + ) # Zero out elements above the CUTOFF (n_channels, fft_size, n_windows, n_real_complex) = waveform_stft.size() - assert(2 == n_real_complex) - assert(1 == n_channels or 2 == n_channels) # audio is mono or stereo - + assert 2 == n_real_complex + assert 1 == n_channels or 2 == n_channels # audio is mono or stereo + # Set all components above threshold to zero i_thresh_end = fft_size if onesided else fft_size - i_thresh - 1 - waveform_stft[[slice(None), torch.arange(i_thresh, i_thresh_end).long(), slice(None), slice(None)]] = 0 - - denoised_audio = torchaudio.functional.istft(waveform_stft, - n_fft, - hop_length, - win_length, - window, - center, - pad_mode, - normalized, - onesided, - waveform.size()[1]) + waveform_stft[ + [ + slice(None), + torch.arange(i_thresh, i_thresh_end).long(), + slice(None), + slice(None), + ] + ] = 0 + + denoised_audio = torchaudio.functional.istft( + waveform_stft, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided, + waveform.size()[1], + ) return denoised_audio + + +if __name__ == '__main__': + + import _torch_filtering + x = torch.rand(1, 8000 * 10, dtype=torch.float) + + + b0 = 0.3 + b1 = 0.2 + b2 = 0.4 + a0 = 1.0 + a1 = 0.2 + a2 = 0.4 + print(_torch_filtering.biquad(x, x, a0, a1, a2, b0,b1, b2)) + + + """startdiff = time.time() + v = diff_eq_calculate(x, [a0, a1, a2], [b0, b1, b2]) + enddiff = time.time() + y = biquad(x, b0, b1, b2, a0, a1, a2) + end2 = time.time() + print(y.size()) + print(v.size()) + print(v, y) + print("time1", enddiff - startdiff) + print("time2", end2 - enddiff)""" \ No newline at end of file From 575339b50457b4fe10659cde707a14ac0351501f Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sat, 14 Sep 2019 22:48:33 -0400 Subject: [PATCH 05/28] More tests of IIR vs FIR --- test/test_functional_filtering.py | 246 +++++++++++++++++++---------- torchaudio/filtering.cpp | 66 +++++++- torchaudio/functional.py | 21 +-- torchaudio/functional_filtering.py | 119 +++----------- 4 files changed, 254 insertions(+), 198 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 0102bf5dd4..4d658dec7b 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -6,54 +6,12 @@ import torchaudio.functional as F import unittest import common_utils +import time class TestFunctionalFiltering(unittest.TestCase): test_dirpath, test_dir = common_utils.create_temp_assets_dir() - """ - Open up a file of white noise. - Compute ratio of power in high band vs low bands, should be approximately equal - Perform a low pass filter at half Nyquist - Recompute ratio, should be very skewed - """ - - @unittest.skip - def test_band_energy_reduction(self): - def compute_ratio_high_vs_low(signal, n_fft): - dft = torch.stft(signal, n_fft) - psd = torch.sqrt( - dft[:, :, :, 0] * dft[:, :, :, 0] + dft[:, :, :, 1] * dft[:, :, :, 1] - ) - upper_indices = [ - slice(None), - torch.arange(n_fft // 4, n_fft // 2 + 1).long(), - slice(None), - ] - lower_indices = [ - slice(None), - torch.arange(0, n_fft // 4).long(), - slice(None), - ] - - higher_bands_avg_energy = torch.mean(psd[upper_indices]).item() - lower_bands_avg_energy = torch.mean(psd[lower_indices]).item() - return higher_bands_avg_energy / lower_bands_avg_energy - - white_noise_path = os.path.join( - os.path.join(self.test_dirpath, "assets"), "whitenoise.mp3" - ) - audio, sample_rate = torchaudio.load(white_noise_path, normalization=False) - high_to_low_pre_lowpass = compute_ratio_high_vs_low(audio, 512) - self.assertTrue(0.25 < high_to_low_pre_lowpass < 4) - CUTOFF_FREQ = sample_rate // 4 # half of nyquist - lowpassed_audio = F.lowpass(audio, sample_rate, 512, CUTOFF_FREQ) - high_to_low_post_lowpass = compute_ratio_high_vs_low(lowpassed_audio, 512) - - print(high_to_low_pre_lowpass, high_to_low_post_lowpass) - self.assertTrue(high_to_low_post_lowpass * 10 < high_to_low_pre_lowpass) - - @unittest.skip def test_lowpass_sox_compliance(self): """ @@ -71,21 +29,155 @@ def test_lowpass_sox_compliance(self): sox_signal_out, sr = E.sox_build_flow_effects() noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) - signal_out = F.lowpass_biquad(noise, sample_rate, CUTOFF_FREQ) + signal_out = F.lowpass_biquad_python(noise, sample_rate, CUTOFF_FREQ) assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) - def test_biquad_filtering(self): + def test_diff_eq(self): + """ + Design a lowpass filter using scipy.signal filter design + https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirdesign.html#scipy.signal.iirdesign + + from scipy.signal import iirdesign + b, a = iirdesign(0.2, 0.3, 1, 60) + + Test is that this runs + """ + + b_coeffs = torch.tensor( + [ + 0.00299893, + -0.0051152, + 0.00841964, + -0.00747802, + 0.00841964, + -0.0051152, + 0.00299893, + ] + ) + a_coeffs = torch.tensor( + [ + 1.0, + -4.8155751, + 10.2217618, + -12.14481273, + 8.49018171, + -3.3066882, + 0.56088705, + ] + ) + + noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") + audio, sample_rate = torchaudio.load(noise_filepath, normalization=True) + + waveform_diff_eq_out = torch.zeros_like(audio) + F.diffeq_cpp(audio, waveform_diff_eq_out, a_coeffs, b_coeffs) + + def test_low_pass_perf_iir_vs_fir(self): + """ + Try two low pass filters to compare performance + - 10th order IIR + - 40th order FIR + """ + + fir_impulse_response = [ + -0.00040463742194593165, + -0.0011997613323707066, + -0.0018908492870125047, + -0.00207654308585229, + -0.001096110046662624, + 0.0015056218536868779, + 0.005330573111949219, + 0.008753080180802494, + 0.009251376850303583, + 0.004551586188930009, + -0.00579865949432587, + -0.01919960191734472, + -0.029922330203954777, + -0.03058886187399114, + -0.014900805267782886, + 0.019382291456268037, + 0.06852266400807679, + 0.12297037769851049, + 0.16984408705548223, + 0.19696650152723372, + 0.19696650152723374, + 0.16984408705548223, + 0.12297037769851049, + 0.06852266400807679, + 0.01938229145626804, + -0.014900805267782887, + -0.03058886187399115, + -0.029922330203954784, + -0.01919960191734472, + -0.00579865949432587, + 0.004551586188930011, + 0.009251376850303588, + 0.008753080180802494, + 0.005330573111949219, + 0.0015056218536868779, + -0.001096110046662626, + -0.0020765430858522907, + -0.0018908492870125056, + -0.0011997613323707066, + -0.00040463742194593165, + ] + + iir_b_coeffs = torch.tensor( + [ + 4.14176942e-05, + -6.74168865e-05, + 1.28894969e-04, + -7.60724730e-05, + 6.18923831e-05, + 6.18923831e-05, + -7.60724730e-05, + 1.28894969e-04, + -6.74168865e-05, + 4.14176942e-05, + ] + ) + iir_a_coeffs = torch.tensor( + [ + 1.0, + -7.51701965, + 25.93753044, + -53.79433042, + 73.79210968, + -69.36257588, + 44.65306696, + -18.98130961, + 4.83553413, + -0.56282822, + ] + ) + + noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") + noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) + + waveform_diff_eq_out = torch.zeros_like(noise) + _diffeq_start_time = time.time() + F.diffeq_cpp(noise, waveform_diff_eq_out, iir_a_coeffs, iir_b_coeffs) + _diffeq_run_time = time.time() - _diffeq_start_time + + # TBD + + print("Diff Eq Low Pass Run Time:", _diffeq_run_time) + # print("FIR Low Pass Run Time :", _fir_run_time) + + def test_perf_biquad_filtering(self): """ - Try three implementations of biquad filtering and test speed + Try implementations of biquad filtering and test speed - 1.) Call to SoX - 2.) Call to cpp biquad function - - 3.) Call to Python biquad function + - 3.) Call to cpp general difference equation function + - 4.) Call to Python biquad function - Current results: 1 ~20x faster than 2 ~ 15x faster than 3 + Current results: 1 ~20x faster than 2, 2 ~ 2x faster than 3, 3 ~8x faster than 4 """ - import time, _torch_filtering + fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") + audio, sample_rate = torchaudio.load(fn_sine, normalization=True) b0 = 0.4 b1 = 0.2 @@ -95,57 +187,43 @@ def test_biquad_filtering(self): a2 = 0.6 # SoX method - fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(fn_sine) _timing_sox = time.time() E.append_effect_to_chain("biquad", [b0, b1, b2, a0, a1, a2]) waveform_sox_out, sr = E.sox_build_flow_effects() _timing_sox_run_time = time.time() - _timing_sox - + # CPP Filtering with Biquad - audio, sample_rate = torchaudio.load(fn_sine, normalization=True) waveform_cpp_out = torch.zeros_like(audio) _timing_cpp_filtering = time.time() - _torch_filtering.biquad(audio, waveform_cpp_out, b0, b1, b2, a0, a1, a2) + F.biquad_cpp(audio, waveform_cpp_out, b0, b1, b2, a0, a1, a2) _timing_cpp_run_time = time.time() - _timing_cpp_filtering + # Diff Eq Filter + waveform_diff_eq_out = torch.zeros_like(audio) + _timing_cpp_filtering = time.time() + F.diffeq_cpp( + audio, + waveform_diff_eq_out, + torch.tensor([a0, a1, a2]), + torch.tensor([b0, b1, b2]), + ) + _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering + # Native Python Implementation _timing_python = time.time() - waveform_python_out = F.biquad(audio, b0, b1, b2, a0, a1, a2) - _timing_python_run_time = time.time() - _timing_python - + waveform_python_out = F.biquad_python(audio, b0, b1, b2, a0, a1, a2) + _timing_python_run_time = time.time() - _timing_python + assert torch.allclose(waveform_sox_out, waveform_python_out, atol=1e-5) assert torch.allclose(waveform_sox_out, waveform_cpp_out, atol=1e-5) + assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-5) - print("SoX Run Time : ", round(_timing_sox_run_time, 3)) - print("CPP Run Time : ", round(_timing_cpp_run_time, 3)) - print("Python Run Time: ", round(_timing_python_run_time, 3)) - - assert( 1== 0) - - - @unittest.skip - def test_highpass_sox_compliance(self): - - """ - Run a file through SoX highpass filter - Then run through our highpass filter - Should match - """ - - CUTOFF_FREQ = 1000 - - noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") - E = torchaudio.sox_effects.SoxEffectsChain() - E.set_input_file(noise_filepath) - E.append_effect_to_chain("highpass", [CUTOFF_FREQ]) - sox_signal_out, sr = E.sox_build_flow_effects() - - noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) - signal_out = F.highpass_biquad(noise, sample_rate, CUTOFF_FREQ) - - assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) + print("SoX Run Time : ", round(_timing_sox_run_time, 3)) + print("CPP Biquad Run Time : ", round(_timing_cpp_run_time, 3)) + print("CPP Diff Eq Run Time : ", round(_timing_diff_eq_run_time, 3)) + print("Python Run Time : ", round(_timing_python_run_time, 3)) if __name__ == "__main__": diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 6ed701db82..c527f9b8db 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -1,15 +1,64 @@ #include -#include - -#include -#include -#include -#include +//#include +//#include +//#include +//#include namespace torch { namespace audio { + + void diff_eq( + at::Tensor& input_waveform, + at::Tensor& output_waveform, + at::Tensor& a_coeffs, + at::Tensor& b_coeffs + ) { + + int64_t n_channels = input_waveform.size(0); + int64_t n_frames = input_waveform.size(1); + + assert(output_waveform.size(0) == n_channels); + assert(output_waveform.size(1) == n_frames); + + int n_order = a_coeffs.size(0); // n'th order filter + assert(a_coeffs.size(0) == b_coeffs.size(0)); + + for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { + + // allocate a temporary data structure of size 2 x n_order + double i_s[n_order]= { }; + double o_s[n_order]= { }; + + for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { + + // populate the output + i_s[n_order-1] = input_waveform[i_channel][i_frame].item(); + double o0 = 0; + for (int i = 0; i < n_order; ++i) { + o0 += i_s[i] * b_coeffs[n_order - i - 1].item(); + if (i != n_order - 1) { + o0 -= o_s[i] * a_coeffs[n_order - i - 1].item(); + } + } + o0 = o0 / a_coeffs[0].item(); + if (o0 > 1) o0 = 1; + if (o0 < -1) o0 = -1; + o_s[n_order-1] = o0; + output_waveform[i_channel][i_frame] = o0; + + // shift everything over + for (int i = 0; i < (n_order - 1); ++i) { + i_s[i] = i_s[i+1]; + o_s[i] = o_s[i+1]; + } + } + } + } + + + void biquad( at::Tensor& input_waveform, at::Tensor& output_waveform, @@ -69,5 +118,8 @@ PYBIND11_MODULE(_torch_filtering, m) { "biquad", &torch::audio::biquad, "Executes biquad"); - + m.def( + "diff_eq", + &torch::audio::diff_eq, + "Executes difference equation"); } diff --git a/torchaudio/functional.py b/torchaudio/functional.py index f19371d5b4..98a13fab23 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -15,13 +15,14 @@ 'angle', 'magphase', 'phase_vocoder', - 'lowpass', - 'lowpass_biquad', - 'highpass_biquad', - 'biquad', + 'lowpass_depr', + 'lowpass_biquad_python', + 'highpass_biquad_python', + 'biquad_python', + 'biquad_cpp', + 'diffeq_cpp', ] - # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @torch.jit.ignore def _stft(waveform, n_fft, hop_length, win_length, window, center, pad_mode, normalized, onesided): @@ -472,7 +473,9 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch -from torchaudio.functional_filtering import lowpass1 as lowpass -from torchaudio.functional_filtering import lowpass_biquad -from torchaudio.functional_filtering import highpass_biquad -from torchaudio.functional_filtering import biquad \ No newline at end of file +from torchaudio.functional_filtering import lowpass_depr +from torchaudio.functional_filtering import lowpass_biquad_python +from torchaudio.functional_filtering import highpass_biquad_python +from torchaudio.functional_filtering import biquad_python +from torchaudio.functional_filtering import biquad_cpp +from torchaudio.functional_filtering import diffeq_cpp diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 00a20076bf..07a4dc3fe5 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -1,24 +1,27 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -import math import torchaudio -""" -Biquad filtering approach based on SoX implementation 14.4.2 - -Performance needs to be evaluated against SoX - -""" +__all__ = [ + "lowpass_depr", + "biquad_python", + "lowpass_biquad_python", + "highpass_biquad_python", + "biquad_cpp", + "diffeq_cpp", +] -__all__ = ["lowpass1", "biquad", "lowpass_biquad", "highpass_biquad"] +from _torch_filtering import biquad as biquad_cpp +from _torch_filtering import diff_eq as diffeq_cpp def _dB2Linear(x): + return math.exp(x * math.log(10) / 20.0) -def highpass_biquad(input, sr, cutoff_freq, Q=0.707): +def highpass_biquad_python(input, sr, cutoff_freq, Q=0.707): GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr @@ -32,10 +35,10 @@ def highpass_biquad(input, sr, cutoff_freq, Q=0.707): a0 = 1 + alpha a1 = -2 * math.cos(w0) a2 = 1 - alpha - return biquad(input, b0, b1, b2, a0, a1, a2) + return biquad_python(input, b0, b1, b2, a0, a1, a2) -def lowpass_biquad(input, sr, cutoff_freq, Q=0.707): +def lowpass_biquad_python(input, sr, cutoff_freq, Q=0.707): GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr @@ -49,69 +52,10 @@ def lowpass_biquad(input, sr, cutoff_freq, Q=0.707): a0 = 1 + alpha a1 = -2 * math.cos(w0) a2 = 1 - alpha - return biquad(input, b0, b1, b2, a0, a1, a2) - - - - -def diff_eq_calculate(waveform, a_coeffs, b_coeffs): - """ - waveform is the input audio tensor of size [n_channels, n_frames] - - expresses general difference equation of the form: + return biquad_python(input, b0, b1, b2, a0, a1, a2) - a0 * o[n] + a1 * o[n-1] + a2 * o[n-2] + ... = - b0 * i[n] + b1 * i[n-1] + b2 * i[n-2] + ... - a_coeffs input list of length and [a0, a1, a2, ...] - b_coeffs input list length and [b0, b1, b2, ...] - - """ - - def clip(v): - return max(-1.0, min(1.0, v)) - - [n_channels, n_frames] = waveform.size() - n_a_coeffs = len(a_coeffs) - n_b_coeffs = len(b_coeffs) - n_order = max([n_a_coeffs, n_b_coeffs]) - assert(n_order > 0 and n_a_coeffs > 0) - a0 = a_coeffs[0] - - coeff_matrix = torch.zeros(2, n_order, dtype=torch.float) - # fill in the output coefficients - for i_a, a in enumerate(a_coeffs): - if i_a > 0: - coeff_matrix[0, n_order - i_a - 1] = -1.0 * a / a0 - # fill in the input coefficients - for i_b, b in enumerate(b_coeffs): - coeff_matrix[1, n_order - i_b - 1] = float(b) / a0 - - print("Coefficients matrix", coeff_matrix) - - # pad waveform by the order of the filter - pad = torch.zeros(n_channels, n_order - 1) - - padded_waveform = torch.cat([pad, waveform], dim = 1) - print("padded waveform", padded_waveform, padded_waveform.size()) - - dat = torch.stack([torch.zeros_like(padded_waveform), padded_waveform]) - #print("padded data", dat.size(), dat) - coeff_flattened = coeff_matrix.view(-1) - for i in range(n_frames): - for i_channel in range(n_channels): - sub = dat[ - [ - slice(None), - i_channel, - torch.arange(i, i + n_order).long(), - ] - ] - dat[0, i_channel, i + n_order - 1] = clip(torch.dot(sub.view(-1), coeff_flattened)) - - return dat[[0, slice(None), torch.arange(n_order - 1, n_frames + n_order-1)]] - -def biquad(input, b0, b1, b2, a0, a1, a2): +def biquad_python(input, b0, b1, b2, a0, a1, a2): def clip(v): return max(-1.0, min(1.0, v)) @@ -142,7 +86,8 @@ def clip(v): return output -def lowpass1( + +def lowpass_depr( waveform, # type: Tensor sample_rate, # type: int n_fft, # type: int @@ -155,10 +100,11 @@ def lowpass1( normalized=False, # type: Optional[bool] onesided=True, # type: Optional[bool] ): + # type: (...) -> Tensor r"""Simple low pass filter. Performs Short Time Fourier Transform, zeros out elements above a threshold requency, and inverts Fourier Transform. - + Args: waveform (torch.Tensor): Audio waveform that has a size of (channel, n_frames) sample_rate (int): Audio waveform sampling rate in frames / sec (Hz) @@ -230,27 +176,4 @@ def lowpass1( if __name__ == '__main__': - - import _torch_filtering - x = torch.rand(1, 8000 * 10, dtype=torch.float) - - - b0 = 0.3 - b1 = 0.2 - b2 = 0.4 - a0 = 1.0 - a1 = 0.2 - a2 = 0.4 - print(_torch_filtering.biquad(x, x, a0, a1, a2, b0,b1, b2)) - - - """startdiff = time.time() - v = diff_eq_calculate(x, [a0, a1, a2], [b0, b1, b2]) - enddiff = time.time() - y = biquad(x, b0, b1, b2, a0, a1, a2) - end2 = time.time() - print(y.size()) - print(v.size()) - print(v, y) - print("time1", enddiff - startdiff) - print("time2", end2 - enddiff)""" \ No newline at end of file + pass From a7917924f5449c31ab6061b876f25f3b84ca2d7a Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 12:44:43 -0400 Subject: [PATCH 06/28] improved performance by utilizing floats --- test/test_functional_filtering.py | 26 ++++++++++------ torchaudio/filtering.cpp | 50 ++++++++++++++++++------------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 4d658dec7b..23097e56df 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -12,6 +12,7 @@ class TestFunctionalFiltering(unittest.TestCase): test_dirpath, test_dir = common_utils.create_temp_assets_dir() + @unittest.skip def test_lowpass_sox_compliance(self): """ @@ -33,6 +34,7 @@ def test_lowpass_sox_compliance(self): assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) + @unittest.skip def test_diff_eq(self): """ Design a lowpass filter using scipy.signal filter design @@ -73,6 +75,8 @@ def test_diff_eq(self): waveform_diff_eq_out = torch.zeros_like(audio) F.diffeq_cpp(audio, waveform_diff_eq_out, a_coeffs, b_coeffs) + + @unittest.skip def test_low_pass_perf_iir_vs_fir(self): """ Try two low pass filters to compare performance @@ -176,7 +180,7 @@ def test_perf_biquad_filtering(self): Current results: 1 ~20x faster than 2, 2 ~ 2x faster than 3, 3 ~8x faster than 4 """ - fn_sine = os.path.join(self.test_dirpath, "assets", "sinewave.wav") + fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise_1min.mp3") audio, sample_rate = torchaudio.load(fn_sine, normalization=True) b0 = 0.4 @@ -212,18 +216,22 @@ def test_perf_biquad_filtering(self): _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering # Native Python Implementation - _timing_python = time.time() - waveform_python_out = F.biquad_python(audio, b0, b1, b2, a0, a1, a2) - _timing_python_run_time = time.time() - _timing_python - - assert torch.allclose(waveform_sox_out, waveform_python_out, atol=1e-5) - assert torch.allclose(waveform_sox_out, waveform_cpp_out, atol=1e-5) - assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-5) + #_timing_python = time.time() + #waveform_python_out = F.biquad_python(audio, b0, b1, b2, a0, a1, a2) + #_timing_python_run_time = time.time() - _timing_python print("SoX Run Time : ", round(_timing_sox_run_time, 3)) print("CPP Biquad Run Time : ", round(_timing_cpp_run_time, 3)) print("CPP Diff Eq Run Time : ", round(_timing_diff_eq_run_time, 3)) - print("Python Run Time : ", round(_timing_python_run_time, 3)) + + + #assert torch.allclose(waveform_sox_out, waveform_python_out, atol=1e-5) + assert torch.allclose(waveform_sox_out, waveform_cpp_out, atol=1e-4) + #assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-5) + + #print("Python Run Time : ", round(_timing_python_run_time, 3)) + + assert( 1 == 0 ) if __name__ == "__main__": diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index c527f9b8db..0c4049d546 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -25,28 +25,33 @@ namespace audio { int n_order = a_coeffs.size(0); // n'th order filter assert(a_coeffs.size(0) == b_coeffs.size(0)); + auto input_accessor = input_waveform.accessor(); + auto output_accessor = output_waveform.accessor(); + auto a_coeffs_accessor = a_coeffs.accessor(); + auto b_coeffs_accessor = b_coeffs.accessor(); + for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { // allocate a temporary data structure of size 2 x n_order - double i_s[n_order]= { }; - double o_s[n_order]= { }; + float i_s[n_order]= { }; + float o_s[n_order]= { }; for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { // populate the output - i_s[n_order-1] = input_waveform[i_channel][i_frame].item(); - double o0 = 0; + i_s[n_order-1] = input_accessor[i_channel][i_frame]; + float o0 = 0; for (int i = 0; i < n_order; ++i) { - o0 += i_s[i] * b_coeffs[n_order - i - 1].item(); + o0 += i_s[i] * b_coeffs_accessor[n_order - i - 1]; if (i != n_order - 1) { - o0 -= o_s[i] * a_coeffs[n_order - i - 1].item(); + o0 -= o_s[i] * a_coeffs_accessor[n_order - i - 1]; } } - o0 = o0 / a_coeffs[0].item(); + o0 = o0 / a_coeffs_accessor[0]; if (o0 > 1) o0 = 1; if (o0 < -1) o0 = -1; o_s[n_order-1] = o0; - output_waveform[i_channel][i_frame] = o0; + output_accessor[i_channel][i_frame] = o0; // shift everything over for (int i = 0; i < (n_order - 1); ++i) { @@ -62,12 +67,12 @@ namespace audio { void biquad( at::Tensor& input_waveform, at::Tensor& output_waveform, - double b0, - double b1, - double b2, - double a0, - double a1, - double a2 + float b0, + float b1, + float b2, + float a0, + float a1, + float a2 ) { int64_t n_channels = input_waveform.size(0); @@ -82,16 +87,19 @@ namespace audio { a1 = a1 / a0; a2 = a2 / a0; + auto input_accessor = input_waveform.accessor(); + auto output_accessor = output_waveform.accessor(); + for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { - double pi1 = 0; - double pi2 = 0; - double po1 = 0; - double po2 = 0; - double o0, i0; + float pi1 = 0; + float pi2 = 0; + float po1 = 0; + float po2 = 0; + float o0, i0; for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - i0 = input_waveform[i_channel][i_frame].item(); + i0 = input_accessor[i_channel][i_frame]; o0 = (i0 * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2); // increment time forward @@ -104,7 +112,7 @@ namespace audio { } else if (o0 < -1) { o0 = -1; } - output_waveform[i_channel][i_frame] = o0; + output_accessor[i_channel][i_frame] = o0; } } } From b8b9eff032b292a37068befe6aaec5223f68c169 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 15:01:06 -0400 Subject: [PATCH 07/28] remove extraneous Python implementations --- test/assets/whitenoise_1min.mp3 | Bin 0 -> 666705 bytes test/test_functional_filtering.py | 40 ++----- torchaudio/filtering.cpp | 79 +++----------- torchaudio/functional.py | 20 ++-- torchaudio/functional_filtering.py | 164 ++++++----------------------- 5 files changed, 60 insertions(+), 243 deletions(-) create mode 100644 test/assets/whitenoise_1min.mp3 diff --git a/test/assets/whitenoise_1min.mp3 b/test/assets/whitenoise_1min.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..07b1198820aa3e8cebc985d49a231d10e88d6c09 GIT binary patch literal 666705 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 z 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

yHBe|3x;dhNk!n@ft$& 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 zex�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 kUKe_)H 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�vL~pKG$I5-o zMimI(o5VM1lWyj*83t9SV~5GfQj2r<4=j9@=aAWfGA0T-haOd|?ra`h-{8SvCi}Qgc)J#0tK){us7aX`~8m*v3OZTbz z4lzwJWe~=+G!2v^G*L5>e42g3>g2>4UHMAvZs0>BLD+Cm5VL^2B8B}Tt?){^nnb!y zaw(xDFF2HbC+WP3YGOxB5mTX5hNC>&HPIsLb$fTs=rOLKhWa>twaibfy_4iS#xfpn zi)|wR#a1X1u_!{2W}=Ero1DyYnqXX8FDv!J`rTqG8|i*Jq!FSnKP<;Vl5njPAFwTc zICsiwuy98GPfY9UW^&@rG|GVxjKSdT)J{Cg zoMhvSi2`H?Q~HX!{+&lnfaL#Y+91`$muuIHk?brCf3*8JP{MU`222vO384IQ8fMJ?5v9~Fv4Fr1hq6y=AI zjI3zXp$b_0!try`iP#c#>bive>QqOK@w5X#;1}({0*+rR`Ox@LHWQl79yZ+t7_lqi zxcliCd5#};1xpxoGnpuHOUID8wzWT0<9fw)w3+W6x%&oU8cPJ?y^}XS z8J`ATsX^&yrkT_Q-vM5t=NJJbEd0_a6Qlialm6IhS&XOxGuv49gd)#h#!&cEAxYbU zZLc9x;@i5q2?bMOqO-k+U*MH*9eI*pJ{*ouv>53-uC(UbD#GioHIV>vpqEKyRHv*RIz@6~^UHM&u zzyiGtz0OnfEVH~xsn_t>m^sBG-p_WdDj$KEcV?V%Tq9UKC(AAAZri) z&X2iy^hv*ub*yS}Bv_sJ*B;O%{2lJ@n>*0a!WRvA;0`in@3My<6_P=9dqNjA<^JB9i>uf14&j=?4L<;s;6$H5*v&= z-rpYL@40F`cQ&s^x3!+_V9C{%)+%wzVad6P%5-fm&SV;1t#-%p`>W4goz0s1cEreO z6d$ftA)LlEVm}dCI{-<|ZUPgs{m~;CfX^uJC;@nA3&7z1DhzMffGqEVZTNELYdKRz zS&4N=q~0GjC_w6XsP$Wa(A8wTnRoBXRj|8HKJ~H@%wmo!D*Z|0YpE=y1(uFT`>+5r zr59=nEWsK7<=QR4Ya3JUD0_;|g#!qc}XhDt(2wFnfA z?4RI)0E>PU{6S7^HNl|!J?E7wxdO6!q5F^h(qQrT4Iel-AgIqG{mG^JZ_Dr09_m!f z2@~n7Xsiv0G^g?}uP5!~W&P{XPy&*J`y0jk4^VnC5M9Ptsj%5eIbr)U^~K@!M3qw1 z`0r^1cZvmr04A9>7MKjz&$~AYV@)mn(+VqK5mA*3{aHgC=C(#9fiJ|Vjn>4=F4P)| zLqyzSB7L{XjN#Yn*_NR8Vk3jMZ@5g~7FQ^9nkHl_MnRrSn>4y=lX*iJ>_0MW82nBjXenuVoSvnYZjH5$XlZJ=6PPlNM4c% z9KmJyPZzV`M1^sDX`B)m+*#GLAut8JtuH8Vatf zDqj12TwJO^VzV>(nitc7%+qX8{T+P|X;Z+4$QBAdifTp}0AeX!&Q+%DnX)3Ao69o8 z%+U8^7`P}6Fwzi0VQ*qMs@jr{dW~0LqS*D8oiW*t_xg+DpVhvW6y5}x4LxZ8D;C8- zESeO?hOwfQ3dh%Fy7b(@lniJVi3a0pH&vSp3>W~m;*f&;440OOV$wD8_6=LTjkTYn zuyQnUdAUMxoZwD7e8xV3giHP+xZ{{>SQKt0s{WX?H%P6m6^P`Xc)yB|g;c5Y#wPcj zejcj)k!$aA@uX2ztEGyv*3t1c>+`eU)T8I~<JH$XU2Z5-lm>|dTuHnd3f;5G)>Lk8Or@b)vPn_?R;Q=IT{GQahE6lTK<>FzlG zZKNJqe^sa*`u6}UywRuULea{v9xp8R?19y8x4C7Ibc^9@Z0Dh5UE7?0HVjmC^v#EL zGv7X@NEP+FSi=QTEb25u5`>t5LH5sh;GtG93oD9e4j?!(Fh}Ldiea8sVrW(cWtoxq z=PqGPK?-Fps;>D58qLgiqrU4t$}N7!zDJ>FenMQZSY7_<%sm3FsLUNLg}d|}`Uch# zv~@TG_P^*sK7lVrITV1?IfTQ~b#eXq%hXdbz!splc12$Vx4(6TqNZQgP91$YGxK}S zhFAAXo`&$hdT2>~-~eh~hp0$-Thn({<=`5hyrOWWmI0`ywykRLvuR3mE220sqsytBMcFrhl@|m9dWa8*pTM z^h@-dAmDz2Pb#3!wp;~u@CVpgUXGjnj^5mQ_(Lm^Ld?_L!HyuJm6s%B@fEHx5Uya4GVo^mJioP0Jxsn{3C;u|aLgg)-i{wQJ z7>q-*v@TaeG;&o^*u(e}M&nxm7T;}fc|5vk$Izh#%&O8s#8zdRR1r#D6UVBt$%CWz zHYjCb^o4vz@%vJ_(e^)4R1RicjB+@Mqrz}exh^Ye9PX{sGO#irJ)%QKwmmMV^msys zcy`qZ(n^td=rEsnqPAA?WRqH-xz)$JR;34hN*ciUFT!?kz$r=i+^+MrujGKW@z`#d zAj{HwTT#N)984;C3ECU78&4DDDITP9u8mPlD^7QvS+~A}Hffz{wuH&Btk~^OOYKvj28r|BY|D+}*a`r;Qr`c6Ex5pAc40*MF7S6}L!)_s)hW zvLPf5B2#jpfK&|SbnUQ|o8?>}>mU{m{4r2gQd~*ouf`=TUM+hL;OEKAM#rS0#Qbx$ zjcq>~T-}tM60zo{yX6>{vSRMHO-CGa#lm*;*^J+!=MDQ;4y7vYiakY#__xvG;?h`s zcaWl82#285?BCt$x_)F2KNnWQalw}+*A3jVVmd@r`2Hm-yCE9rc~k%~Vq(u_%#2O0 z(vv&HP*T}g%@kE&@3eyRZgKVTiE@IHiWHBXur@8PzsxWeNjmbUPu~|<3sE*-uH88T z?)OEw{AscP%6S3LnwvOdAT;|nLKiD1gseuUDU6Dcf7EAOql7jhYU$h6XC;PP@z1~4 zFDTZlNl(Sp(<_dTC(BX|PhdsC8G)id`7NOZ*uQ_3CpowzL2Zq=`UZvY=cbz7#n|+$|&Xa*Ib*+4!K_g>F(vimoqNMnywDvuh%N7B1OjEcT zH3BLC5}42COpq)C3FN3uQkQ}Hsa+F@e!p%DeQ$Q}|Fy@^yV|rdVeQS}1FjyxA<<2e zrD)I`ec>2W3P>`9+$B_w)M~)cPMYz^fGn_IzfaF;t8ME8j8o@qrS{;Lh9`{hyvH9z zj0bP*j|V(vzWnk}7i3?{BmMSP+b6v}IYNRa<)hfb!r~;P90;Nktw*v0en@;26W!Htgwy&FT~VAPooQyR9$;U4@}^*QZ*u38hU-oDx_{I^odE8!=~Vz}M% z&oVh*+>#zbkHV#5ZL%HbDn>P*k5}8uqN?kg#s^qs9Tau|ukb{S!#PgQ2-SFeYGMf|X2C$2$kkDg8NuY_j zt)&mHZy61nt09OyJXUNQYGc97E}-(jRnfo1c6>BCc@X+{yaZW=jC0pv2(0;3$Z1DvzNe27!syx%Ecce`_k19$>?DuK!t#7Hx;Y z>E)xqx_aRh>^jm>f`1c@^0=JuuW}rVSWfX~Pgw>q2%UF{5tX9P^1?5g-B+Le+Mgca zbOzgp)vmHn@^GW$m;hdm0KoVEW9cgVnsA>#-7z`^1|y|Q2^Gd@kXBN1G)PE`bd8XP z(IDO3sC0LCBV7uJ)OY**e*eO~?zwyJ?i~dvxs;ocI<&NIh01PI&aWo>EuYKUX(%Lr z+TS6bPzI04CuS!`P(_$=_bR&Ocn`2;;%P_Z@h7=eyK4#vyp78hE~&Wxoo%Js zR-OW%e%;R^VY=Fw@z+D*W3q8cU&Y1Hacmv83oNX6Zg{xe;Amv>X?+zgylgwk6pF*k zHqmO0>K7WqE46c~jE<_Sg7$6mWl7JAzMyLpegjI#cN2q~2uaVwSG$81avX(8_6YO4 z|AtjPQzZWs%vOkm)iq2CbmGtsOex^Wnv@pTTw&ke=!6F68!z?hg_qqb*Lv!p%?HR?fW(;Z=FhGHYxPa$Xlk5oFAZ?nG;t-P!ZG9Ab+k3jv znGaJ|)2u-Ljn{0XL>ibmZzJDb;{faxVx3&2_?mFcf1;X1X~T6YWBDV#r3QAH2u2xL z9sRre@uGAyL1~H!tvE!%2xS7ji|A#|WCeqKC^t%TRw3yM>nIIe=SxnT1!|6jci{QDOH%tAW&~3&}czCjt=!7Q{&! zL7w}H=yooh=ZwyXnX5sjC#a7lH8GgNIu3=22~r=6!OP>|FAWQ$=H-}IdFPcW`q)=G ze!tQTRYu(Gr8HEXF$sJKq!udJ%t4MbDOB>P);?Xd1GFZT+-w8-Y%@uG* zG}E<$DSg&$%41%J<`dDdfby3)x@OjHxv@y1wx&HRxdUjpgH-%$E7J+KRppk^a z!}Dwcu<|q48%~-{5n}Q)Clf=BgG=56%d9nE9@znNoHZ(RqJQ!wR7hMkv@DJAFwWS0B0n%2_r&e;godFA+f97kE#m*-4wOo`kaxhJA1QtcaY z*q`;<{8mn%jvofYmgEL7(ITtYB3$+p0t0D%f(tSK(vTKcP-1L z&>*3BO8Df6XGarJ`&&0`M?QPiprdN#Po>t=?=7<5#1iLg>7x~=kevbWD$m~H7cS*Dm zoy!>wTL@vBMFjdc*`lPevs4{*YygK>T_W_iJSPl+ws;W`0zC9Q$SA#2>huU9xpiO3 z%e;kpfnN%&BZ_}&s%i^&Mkp(uxjmhoET{S&$C1a^TWk-!+o&-KtO>z`A5}6K$o??3 zCzSq60$}p2mMQtlVjobvvme65&@~gce5eI~kvq?GWXaxHE*BwF+MXc&;yEi{74HWw z&2W>-wHDzn`KRP<^$)Ah>R_R6q*Ao_k34?gepLRhmsQF8{NY78-M^>0kBxce4)hM7 zb{trDNO&m9HkFO(dmp?+V6SG!^iS%XvU~+rMk#dhfhl3x7paNiIURh_#St#LZltv@ zn9X?TyNF=5WROmv%3w^4R^z0)y0qYgj#)Sg`sOB(GGHKIkOPE^D(w+~%${o$K=l#g zmhaew4tGXm&xUx&5*b5R47so`UT7t@Zahw6GL=x#Lj%|8+I>ry533@|GilNQpr*pm z2MCNLqMb(u3?<4-{Bcr9%5i*O+R<7c2i}^=W22hGsaX{N%qku{TMu7$X3Bcb)ovgg zCy)&#OldHG)AY<^^zc4;r%3?6NIg*J(4pGqaBSVr;qg-SrP4{4tMIo>HmhOgw=@=Z z{U4S3<2?RKI5EeDVZC{pet4Kq(GWje0(D?SC&`d? ztd0vi1&JuDt}!KvhcACy)u|xRO;W-`tBi{Ed78!$4aM1aL>KowD8Sa&{DnOtKZF}i zVJ|P0#h~8YpF!}Xy85`Xl*`l4&ul=iyaEN7=!A zgJ_jYn6cr_?O*?o^$JB=l&3M96pUU%;3EQhQBe7AriwMpT2xF{Qj>m4#L!` zFKeg=@l!W(ne{GxuKz`hcS)x^3Ju4Pp4Pf8G6GQ4cYyUyOxux_j75zznH9}Tr*|;* zPZnXs4FC7%OzqU|eRBye{`@4Xicsy}tB4(o*AI?Pzm(Rbb+8hTn=A-QV71Op9ayN44nf?@TUcw)M z2LDjE`7z7fScvAO3!Lp1YX3&b{OZ~4x4XKrFC@NxpNh(b=9<95H#Z#y+}P6sdaAwK zslUFIp4!s971d)x>*)-13?*S_rY=jsApm3GGBV1(SM0mUd*k${=M8t_c>t=iL;NTD zdObzkcz&3@(tX!{oCh(?J*BmMc(w%ZO@Xb9gm!cVX`mA4AhE_*WcHk*0HBP>+ZY;N zZ7t$J2$GliqQduGweLVzEA$-{KVsmwPk zMTPd{@ipKue69qp;RQk^Y5nA4eTMFCs+RfkpAWg%!nQgVV9Eco2VoMqjd*s$wl74T zULiJ&^$-$N%;{lCHpbrfT-GMq)fc3r1yN);Q6hn&Nmh%M^=l1lXUA9TdGt=m z$~GXfAFRA)_6ZdgBPJddi<}HwfJ`Xn_>7bd(Qkxm{yU7k1%EynES7*j+rz$Jyt4K_BCcpuqsri)c4Rf4X5%w z@OBj^KD&LJNg$+)SG3NOej{(9HMyRKv0mqA1ewy6Qtxo%TD`{V!(tM_o&Ew!;Je;5 zFQ_u8MmcAsHzS6_?4BR%=PEaDm|aYq@JCL=%#tL~HGn2V1Ihs2m z2R-(#>P*KMQFqAPuWeEe!K8oj-PZ*?zM!cExnP=25!2^S&m!z+yhrd{V|g4iw>3u= zUK?&hjRM?rioRLf8&(y`u|u>*x(#b5hDWdJe-u_-)d_Rh(R6$>U`U>PDM_3ip00OZnYY^rm8NM!r z3C~#LLhe>ew|}|ECl@aScdzS+s8|H!lhBIsL*@~DALiv9n{kHMjAqn)H^C@#c))^FMdTq{y$2#7>^eDDO`;{MEC|lT*LU#bWKQmRSM~M~ z3ccskgI&H{1Vk9L8}afVi30@m2`Aj_a5+w%9!ucG|IC0WD5x~*sRA>^Z0VfDKE^y; z7O)+(&{+STd8Xja5ZI%_JL|NH$?%A^*tdVkxlac8Bi{LUIsgEg@wr7U$8p`tOo56F z8I-^DW4O1RCbF)1=!?r{w91q88c9Rqg19DS*^t?TaOrjPL&9Oq2svsx5~Ek_%m8+* zSC&%=d^}@TqFLe6y6|Go()c$^G1Xe=3B|JIy)uW}QmwXvL-N7}kt<=sK`ig|GP+&H zS&NbzgRj_f2fhmK*Riztezb)|ML&)|F2U{W9qN-Hb*$&uoYwKtri4)L(gZft&mc!y zk$Q3W2@^UhHivrD{Dg$%_$UDa(^U&04{0Ywf>JZf*nz%Kgl)$17q@7u7a~DRM?l3w z#hNN(1C|yzL)){Cfxq;*0@RaztjQFF`SECBY4+bLC@C2=_S71BhX1S|x3S#)X!GKK z?2APqTj7Uok~7ve;Dl4>`-9?pHt(g7nc=YGJoV= zQsaD^0kS38m97a|MIi#Q>L!v&JG+A4H=~hYT{k*!%Yh3xY5Vbc+P?ogygz;%4)-Zg z@K;b*VwNsu(v9GjDiXj15ES6r&Lk^yc&&!v^(u#`H2c#V$e6+!)U|l!YQ^$_!=aygP<%c5 z^4U@RLkQ>{0qRRa|DB!RPapsJ`29P~V_xNsV4lb9%CsOveU`+5TMUx&r=*ZxpBp-> zwjoHBQ^CUw(LPs?#25TiQc6-po~n8k`*+Yr}l-_4XC z7>L3wl}k-}>7`?Mi z*qs9DG`z}hBe2k{BC~-E>aTlCwgFHjeFm=GDCIKe8|J5nH+K&yH9QT`Ik=h7Q;~ve zx5z&AysZ`-Ou5@arH=V!XPwsfY8;gTR#hcKlK}1Q|i8;rE1fBt!ALZH9X#u>ZY&+@}~lFwMK1gy(51Gq}DAt zpm}$5&}h2tuP>3oLOV)8$s^&|Q>TRmdG)91xh755gmr-rAA#yjo`p|y}W zP_1+lHnfPql#_(M1)o}ug40-;;KyuSt;|Sx>{e$i=xs@&9hdu-DgH}6_azq`Uk*pJ zXW${VgtLk$KBA$^BpsY2Y6E285D3`S;Q-`c3E^;u_$w8Y2EE`)R)Qm#l-XfnEnS$3 zbT|>`U$>^lD%BIO3$%`YWt);Xt8QCHa)dTIoO9#P@0#A+rd@wMzJIE_yNkI}(|NjE zA8GsA7!@A^?h6P~ZsgU$H`U#i*1-hunhWLX{`3#TRyNu0;;0L4p`xP&=J$~q#Ka!) z@8|AL%I5Vlz#L;Z=b;6Ua+0TP@8%4&y0fRyNp=goG7Q^=R^;#h8b?g5uZp;T`K`w2 z)+=Ew|0a5qoa4+C{ki+Tfx+F2Dz0ZDaRXCe8Buu>uAexs#o60|+ub@k`&;}4;lC90 zMAZp?n@8&e@V%nVC&lPlOEeCq`W7u}(Cq6fex6|?udn9IrNhJ>RjkW7s=^fC2I7Cf zmd3$c*c>6#(%c;B2VxEWR3YE74#oNbJQ^*gj==0uZdVA1NH z@Is-`lP$MYOR<*m``R|UTiL?nA5Uv%H}>nx)$@A} zMm^soXcgkg@gU@c=A@Vrs7g^b)|WXmzM>|Wl^0^Cjeu_4(g4g6rI*F!*`&9Wlkwd9 zg2Q;*+b=7Js^tQ|!I0U5@TB*wLr(d&0({Phal=H56-%9lEDx_iwX|WkzbRNdIZ8KG zUn-hM>o9qFaea{4M(@b7^Um1YD(U^DU_`=4-X4|~;y+g<73=GWJ9>80r?uaI9=|`e zc-ojdgCZ1cP@03&eh%BAz{2sE1DObu*jPNgQIh~$)rk@`w0v&X)yyWcgn>DD-?UBS z;h2#?FsDLVmb_7CFN^Gc4XR8XQR`}do4WeT_}0IV>!+)OMNe~69MzbmANq52cuGSFfp5~{V{N9~y$5K^ z;70i}(v8K2|-Mz!oRc8F>rPYXij3XCQ1u_ zsKX0lx5*QbvY7-jdl15sGffC2$e0q4#tFe20}kdsQ#zHU_FU^{bHf=4FVqQsDXdDo zr)%M%dfBr{%}&@fNilME&=PKBu7H9U1P%^R_eYsDF<>nPf(R-`Ix%W>MrO?Dd^2xf zSuJIuWy*wy@u%il5xSM(qYt%XxnKyO#duB?|61t|6`=|f7$9976xriF4gHW!!vLyd zfAOdo^C?%Z6kN{_uuJ=>R=C7;nYF|q=RH*0RM#?}DAU9CJ{C->UDq%6*5k@=-BG1Y zbV_sy2%!<2iG;OGw>KT(={e;BAbDBkiH@IZ{xng4{hk+-%e=uYo5<0%e@S1d&uZgU zrn0mg(Y3vDar%EnoA?|#r`ZSM7hk?Y90;#4N~Y2T(o}-P=41RH1NzAAEH4I`SQMa~ z5)@>-j<-uaPU8YKu$)9H-WeFa85dQy>qG~+z5JKTwxqFt<*n`rok~)zd?qM`TD>UW zpW^SszL9yQ9r~gMNg;rr6@OOA_0(b75wf=&;5sI;0ejo;#9kjf zurxFU@5oRxOeEqs>!+yZxxkYVOaZ+Ne_sX&GP42}{0n_cs%Ogz0r z_1@k*MKD%8o{hAmL~<+mQ&Q(Bjit)Au$4GbY(uSCD{KUJiD5di{68V@nklORBe(^D z@mBQ<%Q|pYXZTO2y9!+)410l!Q!_8Nj<{r#e_HNR=hVzD9srGS=~nXy;iQ=y+k$?l zap26g#Vm=)WvNKOLtSj$wpBX6pzu`$ESv3}2$vE)n6v3|_04*Vp87BXYNGfEOZDRB zml7PJG^L!ubz)l5=Cjlej|xa^uHI34caKIO6+@yMF4f5%&N5R`4f4iNc+Dd0C1C-` zd^tpq%pL@g)4CU75;+p_2t@9uSpm2(?`ZvKy=OYl$|Wae+-MnJciAX>X2FtSliE~| zumZ#oOLdxkn-d=5#O0b>jaQhV)R-qBr>L$>dCkz2r?|HA(3~7;so)R(sfoi-T``E} zNfb_-Kdl`O`H_-W;8v6G3Q7+4smjI3yJIiQ^xCO!i~syRZS2a-w+`l7{@lj4nMmDO z-0Ws#M@0AQ=h{*Qn!hy8M*LTV4Vfm}B@6cbK&{UwRnq&r>uND{DOy0%ozB4Y6Xg+ZgRZYHPn}bMzo}>I?}ai6woVN$HkLo z@A99kIAY2lRYU%o^Jr3$uHsDT1D#zvr~&A*TY>!(1WHt7>B4dj1RP$1r)bp9e?b;o z!}QKfb#H?S{caAIA3By(d=SX0I0X|kri#6lm!?=yYW&=ZTt)>nPfa<2g?KA)#1UyI ziDrCpLzF^wM>3_DI2Ud8y)}?yml^DAZ};tmQxd`!gCLQ9Hgu@|i#}#v$kpq!`>#^p z_g`<1&@DZxuCJYFJF&ERXpnY3 z3_2uO^Lz-<9V{#5ZC=HCoE=-l{O0x58^MLw*j@Ojx%Og7+FlcOI8(H31Ih%-9n9o? zAsTXdMQGfA?e@Fzr9&t|a6(E_M~CTJnaQZpZHhR)J@34C3~r{hoD~v;mBw~9#)5nP ztvXR68DUIJyKTSxo;CRmt36Y0A6@3TGhWX2Ng@`B0N~~64iOM=;*tpKE?Ynb9jL*9 z>{BcLloCV)5mFP(=;^YEu zL%@JJ;vx{Dwn`#Q$l7CyGgzlWx>B2Ti{F{BUCd2%Y91?~!X#pgnn}ce@YhK$zUyv< z9#Gxdk41jPD^kFB_LO_}c-oqhS*{Xj;3OCsp0>jRKq0u6`vF+AsCXY&)xiGloAtti z)4WPN7D~6rv*Tl)o{o^&gO5@Hoc^gPM7$IXEx5lc55L&Z%30^Lo)&4yb9c2$u}qWi zVl6g){62o-+D-nq+h4f4&Xj6&{;cKlb-&;GzT4A7CE^A(RP=9Qk^@I>%o1OoXQEy` zF=H^sP;;{YPr0_w09Cy%Y)cH#pxGcCyDj-MEZ+oGmSS-4kSon&Gg4bLR_Q!4--z(E zZ62qw4SK4`3k)uMQP4tQTQf8A2V6fyvdi)%d+Lxnp}~B7w&rwj<`~7;yQ*Ha30bre za2N+I#7Wv&2{pqR@nJj`KTLn_-FR}pvS=w!8y-*6egtR@TEgHWAb&Yw!+I$1!UV>H zmb|N^`^CDJxK{LKCvj3d7gs}4GfN_#y{RG~SCHI>Uf|E*5BLjmI|k-=(;n*Ba)rL9 zHVSl&KO~ZWGoP!df1NolQmB+yxTR^oOzyELm^*|V2kPkx%4`Pw_PFB6SNP{O7LL-E zZ8iHoPkoEaS!T^|yyHes{Wz|d7Su4U-aj&@6m44iGkG6POLKpxGyOVvF}M zzqx)aBWwxu&#oUwN7|C@EFdTZ_5hqVQ*u=iGN{VY|&gO=P5XT$EmI`#?E1Jd^XG9d;pE_V7v=RXxuxRi9)ENmPgaLvc7`hcfX^rv zqbNXKe~?izKLw}tq^16M+NFCuN(}QQqwrY!7H*?3ToxNW3E>FZ_rawCc3fN^AD&T% z##(u%oFu!8Y5%)@O(f0hp5j_yuDX1iE-ys;+I%f%!Yk(hjX4h(M2RJN$r{+jpPLIo zT@s6f04H9tSSqoCQwX2-?wUNj9gPnRK*>?)F7I<%C$JLvt^dXEpBHd9kR^#Z(o`E7 z3KP5?aLcu1ZQO|@PUFsZYVFupa~WS7H+$^&*q@WUiW5@Ju(at`5qenw;FQHj1`YwH zYLG_GTxOIYWar{95RbXIFqsKCQMWZFa{R3*6mlN#2jr+OQ&@}8cVPzXofpYH!9KS2 z%QAauRXy7$wVeFn!1XjfxD=+0sLyhS-@zREd)CZgNwmIB5`8q~o+{T5j*_DM`&^B zw`#DN8Z!7%Unzr+-qec+$%d&+`m?$9Y3cd?S9?$Z#TSTf zH|Gn!S< zEm^fYpcUkDL8IHN7Ad@l7=@KpV1G_iH~vOp5p%X~h~L)XsZ7E*r3I63Ugv&Tdl*bj zNvdB`5R=x!+ye_#l0EB?gfiV_TYz8Y_3$PIRE)PxQ#d7$-1mPUH5s`9-%%ZxOAN)rS^OUtx#* zFm*Ex+(^UJPyyEIa#+ZQoat^j#wIrg|FqE*(?&E1bsHAfnlximtOj~6bFAHikG;}W zq6&T2pnma5rqd~kl7n{Qy+g3fUpqokc4s2B6P!$oNDJY=AK`RfaJbikpC2^+msp#8 zzFIbPPgXLSE=vZdDAok9O-KSXi-Zt!fD*`O*yt~n&p%5p$_Wu#_kq(Kv|>dJYboC;){*OCs)&}DWUV~7 zyVI5sE?<_r^5fHs+xen#OeT+XG=`nI)15XSJstV{fZPAu%e=0;8h(DgesuHWBb#YP zG!qK9YGzP8bu4g0!#^loGQYgJasphVS#xh!sg*+TdN!Z?XK+Y8^`|zi00ku%?CrIV zUwdrFeKt-5hyPyZKPl|4r4;6d!Ftp2*i7dG>2l1sBs zPsgoAb|=>H(#kZruA!9#dVzLPa~LJ)tg1}!7mY(k@5(df3AwZNFdi50Kt3S^fu;Fd$guzcO#Hun zk0ep8uJ>W>aM>o0NUeNozH1A@h2 zk=oyh;~L|PY}^n~c)1D%Su7zTy&>r1hfwSLA%wu@P`GiqfLqem4&Wpi zrV)5!BdqfLaGm_0xx3FBXIFwHbtMD7Y%}TT^#=TjeC(UsuXNgeVcPMJ$MM(Y4ftl5 z=IQCj=+R=B``o~?g5ohh7tWGvU}9J2pdu#qhk>PW3XmK_T>X1|(!ibECf2tGTI`oT ziSJdvDK?Tzq-F8yH{PUV$)`M9eD<8yJQL63TrZT?RaZs2R?TQwUiQ&4c z;nD*>q!6-I`(UC*qvh;oOA2;VeU^1ZD%{p(&hjl* zc}Xm&`&`Ve*?L+d5SxiZ-K3b-bFG;9Qvj_4+xSz%>UyRcZyBpfd_-z!8ccX!a1D(d zg-%JmtBz$VeZ~fDTad#g)rt27iG$gZ;q20BX4{_*c=E`ZHcApEI?m4@md{DTTvg?< z_2-1gSq*O;#?+;K%Fn_8YN?G`w5j&#& z!XCzXB{asD88-)s;~N-Mzwu#8rhAe?AF3X%*q?pZX)5=;fw)!kke)gxcxq77@qh=*g}#8Y+HXSh>%G9`36yW~186u)wjWl){k+U*S? zENLk}A`HeeUg&UPsg+nyaXBrsk0w=A?_)tPuGRbda!Um)B|YyfHE%aDxlC4lIo{k* z_z{P#okrVJqqHrW=de!{syCbNm_CFve(pCHhapG|{V+1-OI+ru+ zQY79eyJf+Ajpz{FsGZ^FRMWrwFp>AJ%rasLVsQ!ovf1MVXm^YYjnbSBxrOrmR>vF% z#2AwCNo7=c93sz5`dBN3ghw9AQ^O7Do%3U(a9obdElBV%rTv+$pi4HzM4meSYFDW-5+I4Ek~vZP}gs#RE&F$2@@=->1JPyUuC0hJ9b zGOnXbCNpT_5mE)p3Qj8&y!q>kOVUV_|FHhLWP&K)jh<|+HP z_`})iX-TS`rE`6tO3-5J985Y&ia*%Yd|*{4b%*154YSkAXR}$uh6r?Y?iPB6wBn9$ z5L%ek?M2%8eOv*08X5bNtoyDNS@|(f zC#DsZI!cw~x9{jvon9(VXli&LMdH21UOQ4%WAag(3aL3GXu9(@uq{1%I2kF8HdM&d z+6QRRP}cZ!tTEAcakzxnIZJ(u_bKv~Bua_%@WFc2Ad)rA>l{;v+Ar~+2!~;V$qYU` z)8^Nm?9Q*`)70WlS7`_}9cYTA4nVsvsRP$^G%*Kc%o6pKsuTuWC`=gS{FYX>oii^V zu_~4pB}-2KV(E30?asatj=gyMd>x+TavH~$rjX<<3^B>D+C*n_y*CzKgAU>yaxk0a z3*ndAbD#6zM3Iy7FW+%XC+ZgO2b+%V>|~N2#z-S;&o2}b|JAT#8Zz7~rW#+wws1@k zAY;z{z?qRo3_+t$4Sq>i#$m}#lAQeL{!Aq%tKe;+mmE{LCL1U)W)yOY69|0dx?K|u zy~c_)=7~h@pK-pv4DzEo-nZg)hfu zLptFr)CYwTkxlXpes6!Byd!A1jh}D&@Kux9%l7J<$J$LM2zX68R>yb5Wt2Ry#DQAG zG@U~Z#52sNd5ZxviSXg`TO!vbL(#DiV*NScYUpiRJJj91#CmT!YM7O_6!`1S1o&Tn zCDV)sOo^yPRA#Fj(lGkT02f&IAzkRlLTtjosUtFQh*d{NBvRD26qJX^p6JC@d(9z> zB8U4w?gAAbcF;U(!p#_Ps}k(aC$Vcj@^qwKH7+Hctvr;cM3-Cp>!=I`YpRn60XQ)} zjif5rImA^<#5I~t!NHx*y87T?ECJ+xJNr4WM5Ng-6e8p$}PcEQM3 zUO=w7weznBy}QNqI(&QUcHDtL=Q95MQtOa><=&5uCvjP|SEUnKh1)8-1JC>eewrxW zO_Tp5)y&ldOrEZ^U6gDl%@pnBYy)yBBQ>Sv=wl=~8DBc!WBC-}Dyh9=9aL%d+RBAb z0ZfKafNApRftVk}(BYR|+K>Lk;k}4%H&%-F4XF-OowGOzJurT1 zSYH__4UM*U0HrQ8sN+$P1oQAcGv}vGlpo8Ssux}zYa=t0;pDX9B-uS{~-s>+-j)p}B9>z%rS&*60VKF7gZDSA8Q?7)-Pa~J~>J`z*yF4>)E>h1GWUQ)CqZN}d?Zy-V z1#0-rXQ)DZ-f8a*OuCEKA`E*5i$B_1`x9(}&>fB6Wf0o(rBpj{PE`-lwwd8X@L}Y9 z+HqHK8_8NL(!C{OXPOnRNGNb~RgoZMwDB>@CFd~LC17#nV8HG27nBO^RZSo#$TXtU zw<#&SGznQr6&I#;`*iW|REP$W{tG_3)b+%CJQc^p0v=}8I|x8GF&|J29-TF7^jupX zFDcZiWQ%7)al+{jRjK2{SK|Y~l6hLA(Vp}-Wc~4)17#*%ir~%Gm#{!1ePrrg{T)HS5yws?fiJ$wMvS1gJYyGTk zIn@rNfP#~1^lbw@(orGR_yS;aIGhf>&K+`iCXC;&!Ps+oN}g&7bq@l85&%a&kidw( zw2+L+A~X5z z?-d<=m;W8#RB1gJL}g&P5ig@BqDw0 zv&!ik!Gm&yeYrREw)AT0#&aU`uXKQm z5dCMU6Vk)%M8TQ~L`edhJ7m0$*d6cGB=|*nnaci(-Ag=fDI`gxkj&{1p)`{QIL}1v?x}OUcIw6kZuq!#fblmiDl=QE#!u!HJ&v-fzveLC4aNk zzt)av%}3wwLZ|WMKV~ziOw3dMPQ&UN>K=?Aoo^I7K0dlb4LfRurJh&!VE)0RR!7-P zNgl$^KkP2^E~^slc3XmeJkk%?;NI1C9v1H=VZ_PCgb?T@nu==gKxU_H7e=-MCP--#Gj$GVtUYLLI?kMWk_0)hfSuD=|-7UzG6G-{-E zDp0i}z+foTg1hjbO9gmJ4#gJBw)e-u146RH-44O;kJYTq6_B;=q=aaJgA^@)fcczKr<48r1sFR4PW^R8sOs{Sofs{&G1X zjB@9Y02*96u}<_s2=gO>oFvfyG|H5)vyqq}ds0ZejUOY>-m*_^w8XNG1;CXFQmPyE zB~6gS;WbaVJNg^vxj|R#oUH_qzmdFso@lmnS`}5oW$}0Ti~IZ|;`u)zFr81_KC^)QpFIIVdvN~ZxA5=3P zT}h`NDHv0ApM8A)-Mb%(gTR!p-+0_Wl^vd22U{{?CDW^;$J4XH>=+*!jS5Zn-=Ms zQ;v8C3fUV#)*i&a2cG$#L=FM9Kt~unX^WcrtkJIZz~loMXSt@ zd@D6CM(NCh!j9{wlc({!)?|nBM&W2#D*|;c%zu*LA^&hlzN5)d+^uaiXG5x&Pyk&N zgL3fTkR&-ZKy%Q7QCG5CK#lC}8-at$vej*y0Y%&3Z1phtg!qEzK5FQ5U$kxJ1whhS z-|$%MXB8p~JYaIJOw#lEUg-2cMPx#J6u^9Xkd`wFE_F09jKrj)vyKs1h=F}{UdA~s zTY#l01`4M@&WMIqcp`+2J2Y*MyS_|ihf5ttBs%sv`2xr&nbfu6;)T*6B=`DP&kmOe zt0rt(@xSarbgly=nw5(Hh!oW3;TrA4+Rd$I0MM1}ONPebn`1PYs-y*Fz84~74s#~o znVD0tfIs@Bk17@V37_9@iC_x9?%|;BO4SgWqIX$%{89X6efP)H-?OKc;na_13h@m2 zA7~>?Ws|wnnS=<*vDi#U z(J@aPG~yVWB<&Gc+-a))Sk6N*iWxgK|FX}8LG8vrubo9mywWjvEJl9V96pT@A?%gn z@ZC$ZnWN6d%W_U|d-0@tGQT=qi=cA?uRUZoRWxcQ|M%F0-`$Fmb1Xt?E8Z@kR#!dnk`!J`CRd;#^j!Fr;q~V9 z{(lB)2>O#LF_OE{C6sagkQjX-8@aLD8uU8lL9jO6?afH|qwx1SW)YVL!STNZNq5`9 zlKt3R>+~|4qE4FgO^2e;!czJGt^9)xY$CK6Q9DAeQk;BQ-Wo-l zirl;LQ6gQD9HVujm0c|6?*=&^z%lQ$(LX&mFlbx{%w&i1;d^B7eoa*4H=LN%+r`|H z@bkX3nOn7R5Yod){!JQ8ZZ;DVSXdKFu|Ue&ZsWd$CoNDPprPml>m68p=b*h3PeH4L zxUnPU*a0G{$bF9)R~3@>UHpkoH7GgF$Vd|>NTQs;1hQFOsY4VS&tEORF>oCEo}$6q zfO1!IJx2TM8@D7P=h1wYn5%5|bgHDAUxtHEb)%7E68f#s*;3cd*ti<2SxtA$uZZES+;%Y&a?Z7FioP-SA zg+GbHZ2)5C8p7pu_6?4%Vf}ct>LqjNF^kD~e%Uptka*2^eXmwOn%DjCaYBCZ$KAqP zX*J_-HII)cLj%6o;qed`9q9trQn%;U)WxDJ>KZy!tuK}IC7hx=zLvcX$Wn-hS&5aB z>4ElYZAggHZIvsis+0<+ARNrXD@6YMDhhSsIv-e`xtPt-)OCoK?!zRhfr?Js8pK|N?D06LT)566F%?X>VD_#|-LKse>Mol%A z(r$AxHgy8tt^$MMrZT5T?Pxi|;DM{Qi%e?9{|a-D&y2i>A$O^&i}Jvst2Hix$2VHnLIZOh)-t+{4#$=pkrbi@9V68H8&T z;yG_bp^(575mM%h@36 zgxR+^cpO+ffbPIiBbTJH3T3CC840uDs|(OEhBo`Yw@_4&(N+uSwb~fe+j!?*@C8V6 zjWqYgUS)=YLxhk!TCPuP8v-=X%jf_C#Yzng65{}(@_QXk3NX9c@yo;L69ocxc|!G- z^DB7lb8<)BY+o@Gm~VF1mf;fBjU=M{J0^7WYb~~`h|5d-)LLRs5Q#zhn_uecGZ9;hC2%<6eG zE7JPD2#>FEOXOZ#UkS2QEAV05)5<$Tr_GSZEB2jzZt{J5`FxWnSxwb;Ej|BUu~cxdwB`x8w{rbmg^%iWcZPejei zKS?1$W5$)4EzL_dvfn{|L1oH7mS5?i7(1b7kt$coLhqw&lj`mQHZP*Y38xK|kW2(J z$+rlR_UOvOclzAuXOi&gN1|qi3u-ifOVkZ~k^gl*aOZdErTLssp$&rpnLSVbB#K`V zz$jl(1^TXjIOWIxW(~e-IjfLa?Jq$k-<+T#Uy1ND3UB1!NZ<26b59KJ(%)oxDT{W6ysk( zg+L|hv@*KC6$~9_QRN^wsON31BSbJ&&m$I^tXE5JS;qEjum~d*vltYjixlg@i+jZ@ zCd=wL<8F0+#?$NeEj86WwNNJBq#6~m4^riNGZNE=h%8Q8(xIRWho^_t&U8m7MSucC zfW>U0?;w~IP$_6bht*VL$Rc<$IcLj(H=cF+jU_F_suq?eFzs2@rb%BS`rJYX!Gz%N zh+D`5MqBh-A}#)hsf#0Jc@rgbyAcD8&i8@0B0Q6LqfV%P=!*)*mlFxa4|VbND#|w( z8S+Dn|2*K7{AQI5^hKOV!u%=23GBigm9F6``idV>$rk_AdMP6As?{v#R=boa`GHuo zFbi&!q$N#N02IuktsxaUZ?E2BJ%c_~$g2WRBMg|SoW*@_$Yuq-y7mLN6;GM3o1S9M z0l0m=FeCD{J{p<}dI-K*C;o<5NoVoImZ!BNfZsF~3~u(Ty82^D$>Ycz5b#J+Pn7bRnDBg>uT zl`S!I=~^``HJQHiP>?GT#y0dj=EC6h;F^DQq1GlkrrzwMRMLsMP{n`YjR=fgTKoCu z&w`vDaeXJSE7yw8`|%k!=d)pl`_PAUeME>ZB7T!!y;yDc&s+;I4E~!&_jo!k5dK%& z2a!7Pbp5#g*q!NE;|z)`mmbuUS^!XcCaMl5aDCZ-JsZ}r_)mid*S7o<{XJ~i|4<;1 zxTiswReTUBJB@_7mcIREo0EGdMQmlX-2lNvwCYw8g9T14F_i?N7-ojnWz}Mkqez~p zw>YcA=tg$tK`KE${j|HGPhXD1jlhkQ<*yG>ixs!-ou)L-v%)EaAVWGWNyv*{JT13QY>;lkft;igf%7`nOqZn!B?c1O!Hd`P}YKeFAJp+@BgoFx9n$Plml)d zB10pAqZqsw`UMH43R^|A-`bk`=xJf|`gh;Sf79)N};k>d2lexl>;l=<2{s}$U| zpA}#gzgY0K>xjI=B7!(`!L#0%_r#lu zOAHH&o+|vGJPIAwEbDE_I{`SmkLy_wD7T6_EhoLcFP12f(K^XgFf7h~zebA;1Q!iz z2)gv(WeiOJ3X|{O&-%hx1kf1uu66?`n?+)a$gYf^w=7!9Xu4)$lfc7&Z}Qt>U&?}{ zQ3>28M~3$D>3&l5zaE-(RwJy8l+Yvwa** zqRXWWpznx{x%Flqp{a@~xzUd^8} z2_s{2m2CTzJo%BbqnT*>Lt9+VG_TAlM#0MjDEwEbp9+=UjdNb7)pSu7b5-7e9L40M zymqz@FOPm14$593E)G9A_iZd$3=k&N7~tWe|B*?tM<#!zP5`sM7K7ug9I%jKdFFCF8*6SNZuOBKsU+TO2t(IWaGc`WBd$3w?0KY#U+*L5aUsVLb(hC`{2yt`8|MT$R zKeRLK3S1bUl%e;q+7?>nvhIC1_Nuuzc9!*h@oFEt-D`D0n-fOW++&}-ucG$z-$|dB zyj@QSvyy)kl_srDDH^8~>D7jRG@4%n=P-f|a2U4>V?(lhi}nt8K>c0>sAeC_3SgSn zuz+hyOkV!tsqnC z(SNI;j6{d*Z;aHK4L1KhR{dRn#EnmXm4firyC}=Hu4{=l_*trloSe)($nU`y*N(%k z=z?WaYs0j-T8faUVjI$-q_ERs9tdalSHujG&CfrS@GcG-66jZSf1Msfw6}m{Wp6!ig+X9 z#~9eRb5Tv0Fcg9nrRVetO5ev{H4X``f1 z3*C6#6C%7(e3+H;1A<$KyN}J?tK2x; z5`zA&fX5eG8{v7`oYuO{s@+lxIeh(Ugj|&UMUgZqHMJTEUKKVFj3i69O3Y$yN(eSp zBGx@y@9KX5KxaM~3~kwQ_5;>P0r?JJs@BXwl}H46=($vy=la_G zQ2U$NxjMpkrE#gchaZq=62HzRDwR~#SBp5Oel8%)?*;Zxo(?uQb>Ypi=kB{OYA_n5 z`?Hx2SaqT-3sn2;M~|}wOzpo{Vy zbAk}?R~@4-QkYo5E&gSQfER@^pN$Xb#HbRe2tZ;GS4voXUD8Q^Me>>%R!<+!{EOQ# zW)ue4QurazkMVl|MZ}+iwF6+PQK^SW1h9QP_CCGp8@_z>I)rOOs-b%N$-`-fk3D-j zqy#*PCpH3MbxfjeiNH|3dXI({$%=?-LP zq9+WI+bB~-)=*tyq*rp6T7x&9)|v5R8;uZVm#B?wpA zgY=qIJ->uf#yE3-VKM8T359Q@y^^1r+HRb?ZKAIvXi2}C)l}vsf0!E`VA^+mAcPzyuFm@!-J6lB;4tI zV1{_XZBA)8Ruo5C4d-Pvp~WP`02K4(BotfI9#dOtbco1+UXD~l^lZ~?DpB+5jN$Hl#DGUAa2lh85d*7D&KN9cnvv3s{pv~biyyIg41rJG{pH9L z|5!G~!$o466G`BZZH?Q(Myvmg87u3L0Ufo>aUP=k+s~)@t&@#N)WGUvB0#qFDTrj6 z(_M#$z~UnXWxb8suRBpDY|QcMZ13lTI|~LK5FmEVx==&mhKESpCMJ7U&J~4l*%{3+ zwM7!a2u6Es7z+~FOZPro<}@r6YDi~!NHuq0C~*sUD=^|fxuI?fZ0oSRz31Gv9=F-N zT|oReGS9fzF+QEP)NJ?{9Mtg?_3qzU;?raL+2(OiRjiX!l6)My>>`IgRP(1!NRcve zknBBq*3vJ<)lE5{8QI0<8kt%un~ zM;rV*X+UyoM8axKUT>;rVYO{G=4Kz2B5WL%QfT__(e|zS6n@V43Z`aVptuQ#*jmB7L|9J z)MYh_*JgJ&t{HRCw`a)lW|fqTpAYULn6SeqQPW|{nX4?9RNKR5~0^# zxTco1VKwqJ9WGq4d*pJ0HKhTc!9(1~ve!HrBTBtV$=Wm2^b?ZtB4&D!WuB*d9iQ)K>r&tuS}vKEJfW)k>!RWhprj# zRAlG!WB1l5zc#F9s9H3z)ZCW7IwqNJf0(;zzo-Pwmo?(epcuaMw4Wpv z7t0s!bKmEv218Le$Z*7<$gUcNwU!|ROc~*Y2Ym;`6lh0gXfpZ+79nl9NVN8ZKN>5u zj&QK^pJomoCnl-`-dxWh+^rX5uSoLvp`h3{v_W#;Lx;)X*P>s#>zXh5sc3P+evKYO z{2=N>y?z4gr%Ea_ct9vMLajiFU%Rs$(qw7FIYN#Z0 zt!d_I3$_l5Kr;Ao7mAz-Jt}c1SrPBVBUs6t=hBW|6RxWY`rgWAq(a8x;d1E}wfVG$ zAdo*@oNXM}L>aNgw?wItvcL<&g^=OguJ$k*^RP<7(3bXh80mvZWNCS_bZyuAbDMR7 zD+ft~r_Mn7PvD4XG~>8mb5Ve`0|$Bo6=|)~1?J6c-tT-9yjX01gjFim2PC%yNObC7 z?+?FxRUmjYdHG_idfN1}?)UIj6Q->8r_F*Vd$IM0_Efx86BBzhT7wJCL>%a_07&6O zt{pvT7Y)E#i7j!^fp(rBPqCC9}dWvp91{i*alTqq6A$(kI7%uzNQW-}GgimbX9MJf1ur zR_0$t6Ut+GX-^rsD#q@Imlcyx0*F;{zay#qtOTNfzif~GVmi=;@Xq!MPX2ay%^5;? zIM94IKdyc3-ui8@(ds3h!cWuCm&ke;&ZXA5o!zXvF1QJATWntOhBUi06B|$SWoMYb z-6*i~%Rb`QK{+R}BqiZwTnb4BP+a$OfJxYGW`{1tnw}if z3~R0mJk-3>m%=K{t0{!5`jfBIM#osrMu$W$o5ZPr;$TY7qbdMvO@QpeS( zR{~32#SR_o@f6+vk3@a}z;^>9V4=4VMubHU;*~FaLgUSBqxk;w@6^2-HlEM==V{*t zv^bcNXv?U@7szM~b?oIyc?QQ54jM=w1lBhvJEQC!;~`M~JQQ@hk`NqBv*;NHZM0el zgoyIaqZ1pI=iTj}q4OjEY?Fx^QlPl@wW236 zS5m}_f>l2+oI3?7W_YA1nzjb-Vi-=uc(h$fPI^)ZIO8z4SPeBe=e}_Mx@QDmKEWf*7w6|#VbEX;_4{EA1B zq)AmC6O)g#grzW9QCahAQNd$|Q9c*vz>}%&@zmD_;3FnBMhs8?7AbSj2(ul$OAfWn zxKy9*wUHO=eb>=Qq$9mOvECmF*6l(<8Nh5Qmeo0Go)kKImFBg;4hePp@~D49j3QIG zirp8d(OSj9)n#plxZ(`@Fc%LeHFt}fmR6s$#*9yjghb$^YKKzbjM~SKG?|WU^uH@g zn%gLL1Z8GiAX^qMpbdi?0*begpx zZD5qmDin)oP852=+dM)hZUIJhWYMb1`B=IBW4^&*P>jA;N#;fE_K0*Y0B&_D(x%J& z_{M6iqGjxcL;3mOE&-tRScHJ(EmVM|5%I6o$UTr_a9Ctiv5nVE(aM8*oqUmCG3CKN zdsVT0;Ew9us_=RDz8M^inscB>v-m0z_!y*q%whVZhR#BR-uv==^^~UjUw5UA0z|1; z*`-8|NCrtJ7PUuOqtv0)3R+|w8|VQ0VZF{!v<-u!sVSH0+;_cGG1ms-7=Do5ih7|h%)5ZNj*{=xrj9Kzl%UCKQbg8h{H%@wgj?+k&ABS9=O)@BYOv}G1}9G zB~Z{-PutP-!Zp=B}=0B~S zBvLqiemE>Bd7eFp0Dx;H#NW9a42SbsD((dx6eYzVoiomPqfjTTM}Yz{-1rff_l5Xu zC0&=gryKTO_37d>*|GI`@!cND%EKpkg!)M^PdxyP%=)p(pjMMDUgU*Ew1n{F8-?`` zugn{hBvt5Kfr^Q<;HhTR<)JzmY}WC>8mLs~Ns+U}LfMXXVv3`IM~$4AXcYYie-7^2 zlvDR$G$0M~YmZ=aVv^7`l!T+H7o(Fw9J&`Gip40`rr_CW2wRGleSvxw??V$n&E+A| zaBhWqQ&^KDzfDyv@TtS^HNI6cA(nNN6q=rED~KG9E$0G+ew))wW+zJf&cp=q_>H+_ z^CA6dAoM?E^#BR<>30O;=E8!|awAwB26_g(I;lTLwGG|g@wdHdkguq*Oq8iZ@!a?F zXD_~}gZBGmXAg^!)q3&&s>5-)AR;xm%OMo+O10AzzDN!X{Bt>R>5)s+vI8}1AjQdW z)0U!3mZ}b_dpI4d&U%YT{E>zu6E`zwO+XzW^yQ8FckNX48Ikz9*!V#M%ArzyP0Q@1 zK)hmqQO*RFua0_ES$m#KCT^Xku{b{m6YQWcJOa^_(lwy_KK#bjXm%ntUp&KtAYB9> z1$Uo@>a?;$7uUhBfTbsa=i|eVH$k!5_g6ZdV?Q5kVWEc2S%lptPhWRD4d^%7QM zwcw^Jx-Ms-|K{QOew~lKJElg49GNST758&HWiq14)Pnj zZ)_(ztLoU(?I!eFe|r1Ym&8R_*0HCGZ~Wo(jsL^wqT$BM!^ZSjrXzcNc}zJsJ121; z33ax>B#C|*z@#_!EA+$_vOmJ+7<5lqw4U&(s*d*ubLHYxJ|3Tl?7 zXmV2}UB_&wk8ep^*`l=NEQnNjd6}p2J7fd{JWow!hx^5{DRMgHAcrNhc7IoBbkOWS z6|2R@@iX!g1~7&vZ@&+)d2@UF(FS}o!>i;yv862yM2V@cQpFDrjjZcD3|hXs24!Jj z>@sSm{(`F-b5D|4GtJMN{8&?NS>dWJiiO2Pn5Y`yI|hkG6sX)Ez@58PyuMDri}GX? zYr~G`wnG>V`0hNY?LWfpKX*w{<1!AC0pE~+@C-~FL$(?*Y-S)h3L`bv60i&bc-gWT+cOGLjZE| z8XCwX$~xi_fTfo*nXY}s{Uxt#ugV|B?lZlW7?_igE2R4gP-*aX?o80;q@{nc(>3Zg z<-p9U*worlBvhGD6AV&G$2~xTgM%-MlT(t%DP;-tc9ZDjlm@3e<>Jeq*hk|nJ_XyI z+J(?2$nvaPzNm|ETzWguZ2Db7qe|`-CT-wudSR|ixHUJ7LpyT(KnU3=nw%onuSpLR zrHWdW>b`xRy^hTp0^BrCv0a2MRzSzK^4@EPDA4vmnKK@~;W2WR~5VOUKV33D^ zb)6YtJQgUcOvz&PTZiG_LpJtggde4=gpV$kCuqfP#76Tpf#};l|0BnoBu;& z{{ZmU+MoZlAwTif60 zwwCeWQ|-fz(}(WNx7Tq=$xhV-l-g#@8G6ACR(OQxoR%&f#iIzpg-V}?Rha>dIeONg znV`;^R;i^^pafJjS>bT_m*2*M^%I>GPHCtjHHxPHXX;J!lv#_Ht*KYM5~`E&AK%yS z?0E=|VjpE#QtcYpG}FGxPUB@U>?p`ryAwVsZ_XpjEF9qtdb&0J-nJkZEmNv*o?Q0x zT{t6pp%+^jZuq zL@qSPi!j7H4Vkau#wDpes&=l`bS*{OjGj7pO zrz&^WCoXj?dw1-``xT}G|0B#(ygSJ{@p01WMlBw{sl7~Fd%`K1}IS`OJC9pK0ePL zL@soM&;Rf==I2+wK-UnT#=f0*88tsv9xoCv9ypkO8p36*OR9mkAD}44>_Qza2X(Qn z!@bjeoI1?%c4TmdsA%H_SYk6ISxEt1Dar=rU)N!zxFdVpfQLrTS1q0Ca3HGTeRD76 zcqtmvv57`%K9x6tc5i<1w!lY9^aPWjgNVy*Jy{|CnE-OwT zpv)YBy?y@$8pUJH3FC747x~I#^Ig%mLAHzU8#cwpC)x2ik3r5));+K9O}bWZwWhC| z1(WE|zF7SLw-1za8s5DWaVaZ%8ZDB&z0TXeld+WKZEXD;Qk)ZoaiYqy^T zl2xrj!}Dvh#`oyeeS_d`&VeBVkp=+O2~8`C;uCVlM{0RegW=s`>yL5`gdH5kIo^4} zge-klGd$JAu2L+eldF|%ym*2RSXqqNtRHlPvwvcJBALH{Mt3E9e~287P5fW=5aNx>R`s%wESy$`mkB9k&eY7`5J12uWe$X;>J%eELz1PdB-v&s{}t!C`2 zj41v8vY34@z_VB?M8k z?+kWnO0y#3zyxD*X3F==2!{gqAEQ!jUdw}$aeAi3Q&9NyJq>Q=^hfp+pePhZN7m{U{|Xi5G=U5Hn#&6DhmK@Z5F?(F^$|qT;5pNDxZJ zNZi^B;i3j@fjBFYajyI@rI=LyL0WW5Lgaetjf;q-zaGp6?+GY8J`5Z!P5J9Kr)i$_K2&Yr~ZmDX) zH}qP=wGX=mFRIxfM&5$!rQr8Szr?9QuETrICdXqbZ!uG3wW_ZicL4=A?E)Q=kDn75 z^3w9$aQq_Z?w)444v#+{Nd^_1mOt(I-ZtGMjMl2*&b7&8bhnf9-9#Ux02VLf9p36L2Xge@}1R$kssSedTj)w1FbpM4j{l;X!@ zh~v(u2(7RK#elJ;wy9O3W+Ujxc9k>2Qi7P3mB7;In@W$^Of5Rhh&*CnbSsa7H%~{M zz1bDIinDY86damTf^>jBn-E8c)r>AIIa(KCYMWYh86)&1tzQP~10~T5|GUc3EpN|~ z-BmkQoKZm|)z1U$*Z%Rvta(W~zyv9Ij+L?SqwIs+Hw6C;Z2$qF3o*2(v9PIl5V_F$ zdmRNPWn7Ir*<+^R>RP7jqPUDvHe)LvbG+NjE^>2i|L|AJyYmffjLG_mcy5+=5G{Ay z@GK9m2qnR)yY4%3Y!nEU2(cfVh~h-#=`xzogR7*;p}C<4Xu;y_A7kH1#HWAzNgyC>M9#DtC=O<5(s>VMlO2Gl&B zv)6@m9BV_jNrjri-f!E+)}g`SL1aX7R&jKW-2O*N`c)eNl+XcZ$3%=F=mp; z?@Pw|U+mh>agFlx#hv>~IK>?~LdlC12HWm}mpATZ8UEcmBDUyvtiniW&Zl@eU1mfp z2hz4{Uf2J&UfkBPO!++2-^)Zib+v1m6#Li&_`flhGK9)eZ-P^v4-SEdNGKy+B5oiJz8tjkGHK~=*UYMuy4Va)Jlrq0EdIn~d(t}R{TuvONq=LPzaIu-o{&qf zbZVJ<|PI zh)0fijfWxYYr_3cy*a0*fjUuT>M`+Hdf#LsHuq`Nz@;<|<8)>8xX%fUp`S|26BH}7 z$ext1lRlC{WuXx6^Wxc`w&sj!8jamEvuwj>7HZh|42!1tkJAe8eVpf%$Ejq41+I0W z_8?f%+gRCNqzM^xS3`koLj8dxTt85_`?;jQrOHpxiEi(f1qi8<4?`oZulRli;etzq zmF>#|mK8%P<{@FpiMJ5KG~!kU*17Np|Lh4nL|9vx4PFO>)_MNhD*-8=vsuB}TD<`u zX-l=J?oYN*&hNtjpBnc#uj@{8;TdZhO<%sZyx&M?U0;95j(+RZ)UrTBDw8rpNFhqF zJ@~1e9n~|WP$xHH@t!3_yhchh_HyEop_CGRGEZ}<1sz^dz8vn^PrZ} z9Jcr(kGL{=%nZH&ZeK(n9K$vx2>h!)30Qowib-~-B{8UoHsv(aWccYGk2Am4r%Yxf$%L@eVE!f4Gv{moO8A|}EuUbuABj9IhlN_>&P+W+LE{hfnb^|gr6(qX z+McA?#9~!(w`5*tGJkdM2=$m^C&R--4{ga>D3Z(7sO?sPF6%rdto`d44$o*OU@XJw zG3>`u5r8FDwhYRGxjYmd903z)%Q>wb9V%i96s3u#ER@;?N;4cFBl1`#2jh7~-T=*> z4VLPr9?j1@#Wr`730EiR)k}RW5;U?b9H`ILa~lk*L#Txi{?kNYH;G8x!tZLkI#!PS z`=>j1dK;6gs827Bye~oN~qqF*Sy)45j0Syye@KY4M+XTh(OV#ZFztvPfn;zO{E#pL2J03TEbH#YIJf z?#h??vOV3AJgl#GWe3#83yy0UrfqTtEE)XJ1O>YSRh+YGBG)qM2Mm;fQl8%q{=lQ| z-0j@#>rHPhNQM6@FIZr_ymr=q-^bUCY)dMvNfhU>9UKe$E3B*UDXuy(VfD9!ed#rdcOfx0xEe{X4G5oS{=L0i#KKu;-4AH zfD7}2xEj+#q{JjOtmsmN%+m0YB2|(TccdpZ#i(vc%0&4Vu#dTlzI=$LjY6Lakw@3p zbBV1|zzO}~N&>b+T7nyl`k1KK|M(BfM<^A;zyF7b5ZC^Gey24m_9sf4BY+awihBr!Q{Jgx@KcH zjxZsozSY=>H$n390!Avvmuq#4JY;AyP+Yg#U2 z_c|HW%jq#cUumqMhNa7|ye53E9t2@DJ{?g#2w14_903azDX~$;4sj?=q|l8Lihubt z*&0Ds0ba#R_su?<_3$aQr!e`Yqi>a-dh3&Fzp*$`93yNXgHHn{6gK%80xp}fiKdBO zD=hpGaUeB^WK3&5tjc@w!Wv8K0H*u6`S3YA$TJx-t}zv?1%yc?AvrVr0bwDJ6E{;w z&PmiZ+-OlM_Wx3Gda25sQY;Mzv&*6$g!@VliD3dma4$-2hK|CJh(&?cTGI5<$c76}sK%4iPn#{70>%@?x*W~nY+^o#{lVW@pEguU zHl|OqGmH=mEVVFBI|2FNLTV{=Wz&o*6YgggIe ziI;~l`S{0*=DwxbFi~92oT1lGsj-Xp=#Bm!Trf)=wDR7eLuTnthqwYxUu}IM=#^=` z32j=?!V@0RfF~>S3b6Mp=a(%~^7r0v{_5@Jtu}u>YH3d|&NDKQ2*6M@oCk8QAnU*5 zQ0KI1tY3p;=E)tHz{il73vmi}Gje8S@w^|BU+2}Ad^eQ9ucVxpCqe;h70vKW8`Ejy zet=`Md5I?j`3kSr5sotdxtAl-3K0o+hwS-?d4jV&(dn`}KDhHpR` zY(apsVa87c#S3@FDGG~a$2xDoEPIi-7c`p{M3=mIa)_0|8WAt`m*X0t{};*CRZ zqaIb`@Y;UIF5YeQ{RWkr=t)x zGYb%E5kMG6G`8;kbB94lJTb+dr4FGl3*019@t9>%=cDbx-3q0mD2^arl&bEpa;C8I zug<5Vma%E;qeo-MoL$MnHFojtciY*;h7o$8!e^GIKk1f)z-5)#)>IHSQyh3x4- zqNUBFvxoI=xU)+#Kvj;^z?Sy>oGjS>ByduiC@#4kS=gsBv)M>5+@0q#dp8fheYGl0 zIFf}LBlH`M6sBpWldADWg;7qsP>Rc?o<7OoCNw$bhn*2WB(pa4Z@sdboLs)7d1{_; z6;%kcxOHe|of6@%3Y1B+F*I6?>{3ES=dB|ytw`egpv&6^aL$R7Go6KMIc*FR3>b=6 zl2En4r!KAQI{Wc$iIeyjfZHM`Lnu?I*aWLJlgSJ8PJd}$bL{H{67)2|uV5(ZI&JXq zKNLv9N(>XBFzmVQ5DKGZ{AU7|1DNHvM0osKvS*&=qWt#dE55Ir&Jyge#`?b=oC*k# zw@2 z8cuKCNY}(|Z?gTr{TE}%Hq_As+;Q3RA}N%)AS|G&w1=irh=^>Y2+;^6+BN&9VYs;| z?U^-TI_xk2b6U8WI7W9rs`OeLdYD2Zi#i$F9j2o#B3JPKBC|K|RpPX)ZP3%!4F2ls zzs~gdwqQU^*L!p&e#5B)wj_ae*Iunyc;NI7O3jOR)zNmZnuz z4uLZsb-kca_h#m?$=#z%5Mp3< zAH;zZqbGcV>^-*~LgESEL&S59ZK07h1%}}s@RSS}=pW|ruu?mPz7OkYJ=<8HsCZju z2aqcQl!Guw49kP*D!7wvP|b~-$wJqTXb0}QTv`GpnVjTss7(UR^le4dX+>A zfLUzU#O-#KQ}{|aUs zoMQg-nX4{FB)uT?X#fxb7?JdX(B;2;Ud=jfzpa%#_@pNFE^j!rsrDE9+n}2#ZC!ZQ z*}utYwoRLr%hAMZYXoJkBjSyfeQA!qgo+LrJCKKE2>pvvT&1pwM21W@{-@sr!up;B z!M~`B-QF;Te8|yL-#+Lsd(AJ%_|7vd3g8^1tr1CsMdR?6lH&9GNk%-M@^8NtiRi32 zQvgY5{e0}?0?`_I?gMI0RiCOYswiFTLN~5h0ECPs>Rwp)^;5^aSw63+?Te+E?TcK| zsa>m5%&-Jo(k4kMv%2E&Xgy6vE(qr6_K{`jBt4ZGFR7;;d^OkOWI!UHC+PISfG;1o z`@T95t1>dVW<0mhJ^+-@^(^)UKj!^@h{~o>Buy7lPT5HwOYj&OSW?NRpvrJB!Q|yv z89)XU5vjZ&!^gEa@hx+6n;@s(gOy zqfgKbS_qRrQB}6Ba=2w}kgX~vrPk1>|4gBmXUr#!9Eq#F*`HP4f(Ce}$9vzwY}soZ z3)D`|FBdw_=7M(96ug6OdxbcSjEtBGPSK<~kkAlO#-`Q8vlDdwX(?xZ3rF;JM2)h| zTsR4MbXOvC*|WsE1X1ieRJ^0bU4HR-9+5{KsX3;~gZa*)qXeVrOCHoh8m9&J$cj%{-_&Fd%{vb-tkcUpvp|C zv0Kf6`t2_X>{Zn7b|f6ef1%AgM@)>gfp5`IvdhWi6~O4q3AuGG<;wX&b5qowyFjqG z3K=sP4W8T69@8l2$DhK_nY6M`pKeEiv=VOP@iNzuN5!P{Rlt*AbwMB%9V8ALAg_mo zXYcnlEpfyRPt*SwB!f>mg@f8R%PuN%!hhO*^iP2s;`$bslMr8oT32wHmmK|TXn?O;z``nJb-JCu5|&&< zaK73*M!MtKntVDNA%HI(O5-Gm6h&~uHO8-)CCXnQ~_wkNfZ7B6Ar@KeT$V{ z3wxZZ<8RDT@LE0|ph-(_xs{j&i+(XzE)zBPuKMkv=Qi~@ZmE&|4Ed@OeH~9_<-7u#V5y|;IP_Se&T2-ZMX<79io2Q2 zq*5n;Bo()Nh!U3zoXH2K)7JOc^?ng*y^EaoP$Y#L8?`ER+_&2mHpk`Nf|n^N5A9h! z@b9~xtLGje5Jo{fH{75=@+L&vS&ISdmZo>LH;%O=OI}`Dy96N|l+QLFJF^QA`YP!{ z-neLKv$BiUL;$lZya}y7SSgFccyRT`ewiCs8afD10sPd^vd5fBNg335_it1@rb!kD z+2w>nSx1@XwvS^;DTjFSVI$sj&;jY?&&;FcHj4SZ?Lh3?&p&sS-6t3VBwVWNrmrRB z7QILj6cKSB1eS4o-zz3)e%o3qZHo>m%{ep-{sIT$T7D?B-h*06KPf~Sey>uaS7Dtk zK~^}jI>_+9B@;zU$E9UxHkS+3}K5Od^2>MT@yIa>eS@Jf`$rq!9hZPlZpM>_&@&ccS1G79xsH}?0k7)rj_eWJnEu$hfI8r zPj|cR2qbmMACpRtTE7m9q4qbr+Bz*Nb~kPu)*>O3 z(maQx-B#eKv?du|G+l2S$X0l&<7W0klU445fV~x-THNl%%(c;CBc0rOzIswa^4vmq z0Fa!_^Y!h({t{urO;N^;gbg&3@?!*j+wZz%9|)BOtXhL}`hjNLtp#pHAl_6~yW7y9 z2OQ|X(}^zcpxWf}+K#yW$`JB{Gm_? z8w+}}aaEHQ(QlD)-_Ch4@Edkos`wW~C~4wXHs8o(cnC>Ul53RuFvcegb1m?ntLF$n zK>YK0-vcA3La3y(M}|_2PjeO%E?-j7EWTGmZK;2dU8a@=w}jlRauA7}(o&nZ?8l`= z_^b%e8UvXbdz#&OaLphy4tyk1HX$J82ZPG3;E-N;jy{|OnXwG6krpsyo|OEPMWb%@ zF~ot4@s{(r90C9U+;zyWi#D@Tk}y>ILMEBqp>5Twg~gqDQ@lRFeNQFDTnI03Jh|{N z30Cn(ImB|h9_s=%w($>pxVt%@^?0(7MtO|mXpOqN(VB~uk|I7UD?|xp`nh_pg9%hN zpUG5M$Q*8nwmWVCA56^hk}lZ@CtzgB>uX!#zl^rrCt{C#OA=<6EBQ|&A8f@PI-LV^}^Q9^)< zGayiSWliyTd0wohuRoN$A2pKHLVPN{9QI>)j<9ky&b#OPF5i^HFOUvXr8-YFh(29^ zwz(;H2c_70Ga$YlbEIgI!QI=`sG6wwMJ^e|+rL_?l{PjieiTqQc7!!x@bk}~@o>~} z>01=79v6|?Qf|xA9L{&_PK|{-JYps}LX)QAt@3jO|<`3Rm{EB8Un)R|9 zDf5UmNe;!2hCv+?jf9nS(}u0X>$T5vIE^AKd1TloY-b(h`ka(6OG=f+-Wi&}0oesl zS(ES!^?(hHv77kDJMwa`V>6kj)yEYd|LU}+7!&|@4VFCT~yWmImKT)NZ+!?E4}`Grs5ks zJAYN^Z}>uNN56qvZT4Bp*&(dTY!5ybyE_#D#@l!KbS4 zJ0ra6TcRM}h(pjZzdMw6qBy-oi-!^y1bf~)IWLF$O0NH|!JeE$I{DZUh+O=|E|l zjHR2`i!M`)l=xBF^t6PKnv7B;h%7jy2pkIOGeWuep46fyV4#Ogs623RLRu_F%=YGB#(={5$TK(^s+i^T6N}9vNufE=PB zaa((W>~s6#Bmm!3a_vib_0RI#7A;lCyf{3-Yh{2xsRY1?zOAv+Pytoq<}Q|?g~+SR z03DPtCn-?&=C;o{(%k%0@9G93%lv6UwuOQ$E#IkDorhXgDYTjt`4UB2<{p7@Na_9 z>HhCTZtqmdwo!ykJEZHue_g-NLbi!}?<6Yt@@B%zG=J~`r`LK`qC<}6gx$AKvf83G zy6!%TXe1Wd)rqQ(ri8Msc)e19ENyS}_nh=p1;Fo5+H(mf9#l-Q@QvjjE|}qq{;8)8 z0!s?$sisT|KU}}*ewar^hH#`o;kcZ$<xC!yQ+a%jV>5Mc>v^}FR!Uo8YT9TmV;ZMDGhK~fi z``a=j0>gedJgFg+Yn{Gs_-v7h=t(4OnCMU_{Rj(6$+t*A2iX?x9Ek^~S)zHtVvr85Y&1O{6@cWJvZk8>HKe~FB4gd)ils2AWMkB8Mob)>b9=Yf0*$u=q>UoAb zqMk_V#X@im;tE>zl6z@`kaIlj?|qetItXc;Mog$~{4bSnSUy730~5gtctAcPNP#k! zW3B;77{K|RT*loG_|rsZo4=ziK(CDtd4b~>e&9h10byB;r)pqunKtIiPpy5P6OsCg zvANegLG7Sy#g=8t%GxRaO1JDIb0S>rzEn5eFmC~g4V1UoQF@XLCA*Y2>_07Il9;Ov z#OhwFZN(XU2 z(6}q=WA4dCoS}{^e136lH>q7vAfQ|(t?Ja_gi&NQj}u8?H}ar^0SdLRjl%nWaELwe zk|IZoz>)zudPyto4OHI{KgsKhZeF&_Y2;5qTc2>f!;!*Df4W;WgpB=}LIY%{e>Q)z zXRJK)4~^TJeUKM^0R{-_>?#Ouk_`}tjxsfhmp+blMTW{3K@wj|7=A;VfTEI<0$s;} zc34~5Acu5ZfU8-iFtRt5?SrRfLPKx(uN-KSu>I&UK}edFJIX$nj?TjqltH@!s?}F( zIb*fNw$8%;>WyWNuLu#BYkEiW)sxYB2ztdIZCfufJ#CyG?Sn6KtrhfVkDGt})I4n- z-|qdU+!r-g1xDBjCiZWgoP6!7bSkk-l%^vBV3v*;{|QP^CMb=a>JRh&-+@^WZ3p5+jSEATWl#hegrdF7`Ae8On@jNu;iIFtFFL~7*X6n zkIesRWBC{GugfXi8#_qzl}oG#9E4MIL0^ZOFaDJbOR_z*6D6Eaj&WGat4Ce(8FCqb zgOOR7xrGU>?teTzK91x#(8&X^PnbM#kpvrTJ>_}}Nz>e64P>0HcC!wN<=5G-2HTpf zACp_CtP9Ch>=}a8wG579brjGQ4d^AeiDY=1X_;hkDY8X<40pcGGiBJ5shwQS$EV9s z?b0tMeu3=@M~42+^03k=2(gLEVnQ|`*y9qvpjVc`ikjZ=ereh7#V zqUaW|Md{Vl()QY>2EWN5e3hR4Yt=8ge9~uP`}JH*OpXM-mB(}SzybKZFM<#Ur-;w~ z>_S5|fcz+?!mRc8=ao)|M?uHKE(Usk{6)7Ig7-0T2Y+IDgg6SZQ^VrxvFfAYzdim-8hTjwz^jZVw}>(4Jdt+W&K4y-Hw zo?dpj|5X63ryr+_(b2y66|yx6#X$nKY3`!roJTu>`u_*)9|Z!t5!+ZY_YHhX#7|~6 z{TCabG)47Lj>>)sx3F%|^ecIlzsEhV78v|?ztRo`EZ-Qsxe35FPcncWuYFzgcBx6` z%hRkP{^tIp9XMYt%v_x0Kcmnjw;lU1nEy0ig zv!~i-WUyEtIgF@+-JgQnFSRW4kaSiegu)!mIC8%O%$}>~4uDtr5}|H%T)zO-BNmZ0 zAJiGfRxEn1;IRAgu}mumI@?rDe+=Xpqd(t*Nr(urq$*2{Q*Rv{n)7RzN|j_8UPhp+ z<4jfaRci^)DfuO1&(vdHg{2eYlS>{9pPoA7PxbWi>_3=R>#x;QfO?uZ5s^)XxKM+=2Uj zy{|C|c-F_OJ!X{hRIwG5GKLOIHIs7zB!YJZ&p_V9acqJgNcfVqW`4>FJe?dLMEaFD z5h!60P%^VKY1?WR(Xzb>=3+Molu`DLPDw^Z)&rD9nd~(oeJ^D0l`k+*Nz84xtxcrX zy1K92(}~&Jxf~p{rCchnrrv<3XOkm;7W^I?^|`kbCl>Cx`R)*wW2!^1(sYWA@^ZqI z(9F#oDV3gytH3IHML^W=dw0)$R%g$$5AMReIslET12W{0tZCaN5r|_P1k3&>v1^T` z`}!P-kRa|l=ua_6Oj*YaG-t^(-J?27p)6|@q5S!8z)iAy=1)WEnVwfXZEuT{4t~+G zHjizodp66lk`1Tb<3h4|MrC%ske>ZykKt#={&%8Y3Faq}oV6u}hM;26l9D*&%hc*q zGp=}*7;+FIb3SGXA5HcwMIr#%l9*XWE_0x0mr^}yABX{3Lk4Kl#b+5iXkX@ULnbQ= zUj6qWdC@zO$-*TCdGx9&*shqx&q^U8@jWj33~)@r7Ob02_md8blG8p3*X4kTif~W` z7L1))Vy=l@u#~RX8kGbRO|fcvmb}&8aX&_HEw2jmh5{lb*Ly!G5ceVK6;G>qe`w zSJwJ5vb#}LQ}$vc3DHL{UsQ$6AEKAkK35N7yWx+p;^7(xW0oRBFL8%=thYRso%j!r z=Gihi>E5R|#+imw3A936YqT#hX+6jF?`&g|1ZIk{lE{`n)!y|SEw_c+Z>kjONOuJu z7Wk$nHIE8IpcE85{9$H}Q8yUD6hN-`6>KxaY0wXLD=#yZ%xg(x2xLPFn$bp~Fkdz{ z+K|z~PedZdXKYg%m9*{XED2bjk-26H#*igQP*EU6bK3*u&>Q-1v`S*~9oc~thmmLm z`CdcPgtyWbj6|-#|fu_aahg?xwVkf1Hybz zB3-WJon=X8>e%v`O0w2qq-f_TwS5~qEjj(Wp3v7C4Ij~nq8V2t_t)>ve-MQJT+V=} zsjn%|00O0RO%r+c72L9eV@hU#bG_mqJIA>ouU6SaqoywAO5JPgH!y<7pG>osJdFn$ zh7NVdN3|o)rONta_c96Of4*hyd8+?cJ%Kw!S!0*=X#jiEa36GiNp;*CP>n{QDyTi4K(M)42 zry?y|37$#jrF*tzMqDf#v?YE)KAIi}OLpT+5h4Sf3E8p!0$yuvJ)?o^ z5M+8PR}yOgIt~VR3s^X7{o2|nT0O!jeiLOQ5Rh4Sha3&XB99RnrD=1D zrAN6{$zd1^jlS{L-;~Y^EunGoQY695PPp-_wG?rjq^m5PF8>%#*7e9}}0NpQCGGlmE!N z#iASPK`L}ORtp(jPpNonVTt*uDR|&YnV#Dx1_uM~#$6UWzXX-M(3H2K_Xc)*ZlNq!_DCe^MoYz;2sODYyN0k- z%B4kcY;*{!Y!L;s)>itl&G!HPn(@Xbo*f#H@#&tEeN8X31HQL^2*9x;%t7XI+;#C7 z);b^oBmlyT%80#*hPUq4LqAyGP*ikOsqhyEaK4khfWLdtTA4!FfTTS=F1JUB)FeTI zrtzuc0}~^L_+LYa)vqdAmy>@utC)AAI6ii1H{k$LUEFmyc^2(Jm_%i2EC!SZTa|C6 zg9x-L#TX(M2H4PJMPH*K>r&eg2?l~S34WXY{xecwTy^E!^ zVnid6!|&R}E5$wZqW?Z$J4CYYGYgGtESeU<1PP4?<#5B6KBUpnO-e~tzw#&>{FUzS z#M}L}^Z6;@=w`X&a}#~)UvuKaF+s!zLVg(U;tP?jXNCE>LN(=m)VMVBUC7hy2 z7A@GQ{t(g3%r-tsr@nna;<-=v)_8BZcm>u5o|SnLZ*pL1;3D9#wv8I0=8g>7J7vi~ zO^eE5L1$lR*PBi(Dq?hY@3!z6&3SMiQ_ZSx_ZyW`zA#=O?xQKW@hM{gr4T*U|8u&& ze>Z>lFkj4_NDDwJ*b78Pmkr)!wV=7AXItK=THh zV=BmFau!M2gv+6*K35NdKdnCY49!BZ`2JH#*WkWg7b#=SG}_?jkLLZhe_A10Gao?` zPMl6QPMhrF9Mi0*EJw&-CX(0?hdlAKWT#3gONp8QIdCCpWZ;X**4(X^g>uOfHuo5D zSMpd8Y@Q%^CT0kE-^rjs`+Z*@rfC0(*}yWba~>qoPd+Eb<5-4MJ^ZKWho{4%jx3iN z$Hcfj8i3ID4M#8_8$)~Di>EnERhIS-PbH)7gT0&~b<7*SBwcK+!3vyL1paGa@8#j} zO!48*5N;x>KGI8j^WrQs%?H;}Um`OzOicRUGdwuAw^j=al{l_neR}uPaL9G1;II5U z;7gyO)M-|z_!N+qNPg&A;pf%IpBi{hamiTZsQ8khsZ&+e5QP%B=HCA*l))82t z0R8u8WQ!(z?)Yc37P&R=qMggWFyutg&gv)Nps1@jnKQYblv-@IsCu@4ae-)Uy=*nM zfWN~+HXRadZVi>zd0Odik9gM{*A$|~H?9C3#|$^aA>xFI&yfW6Sj>+nlex3@yOBpp zm?=bkdnH#w^wW;_53QE=g;@p`T(YQ% zhL@H2cC7%eqW1Le*g9Q#QxLAih;Bs4x1Gd|-O4Oqn)-U(#BO^fY8Mk9wIbw$Ny>i; zZ*kPoLz%#)EYAmrz`=3w{>KDid9FAyitM+lR$|~wcL{}QbR&1H5XkBhC2**4Vd8$t zH~t8g-R;rv_k*hYXZYL6i+_49Hi&)c)A3yU0qp1zUKJ6*p3E1F9IuGWqp_Y!Po*^u zE6tqN4oR$CU-;H*;>es+GL}FQC@3k5nr)RDt$Fp{u2XdYTP$TKORoI=99t!C1WHE` z+47e8#PM5AcRtI+$PL04)e0ds|K-dXy3Mn;-^oIJEtRA0pE*GjI$aQG3~COGBI z7zp!ZrFJabp}CeXxcH^uH#+j6cx-}}!o?_92!T^((VOb&P16w!TE``WQ7l-{-RQxW z>~>*#8+&{rgLAv{CjC@=E2b3B&IN6hkBd<_363v+Ag~48}U_5qr5r+a@ zE?TSq=CpqRASz-+$#e@QB73%3tqJtt{bC1aJ!rtS5DCa zGW$z;PkH(ZqUTnJuTcXCKZNYo8sHS=`6oTVkA1G@`<)!!N~*&oU%Ulm2$fd0pQ1mI z03(^&f_({P{eF|uh^Yzx>GV14kQVNZYr9OXY0p|S#E2pqJKo-X&Y~ovq>_IrM1Cr`P=akk_Sd8LmR-1ePq9EN7zDMhgi=PI4d9q-DwD8vNB< zW=j_P8rQDB#Fz{{wNk&5$ktWcZe|C}O+pdk?bpzvFfuY$+Au_+LD#-XOfT3`h+HZPh*pJmCbS>u6|qHc5hv|mI1 z{My|I0-NcdHzH8XqGtk@DN!dPtxWN2qD_bNv>ugP8eHwLZFf_6HM$2){F5Yt3%eZs z1?~~haRNV1gCp{#GXlIK6Jy*(lMAI&(Fmx3e~QtA1Esg2Qf&pXm5Y|_b=YWbxJ0h5 z+XReA9|8RQR>scJoEX0}2hB-=iOl(t3X!xhReoIG?@B6;j zCQ>p}Fyx=a9$G!IudHS&8M*luY|*03VG|sudc6?R&wu;4sKvGPD+z#N3oB-n53HIq zR#JW`CymT)74^#KP}KWHtaKl_$qD)t`=|S1R}!47>_U6jC#;;5AcZVOt4{KPvghhK z0TAE^AO>8wU2c{Q-ItThM)soS9c&1*TK9D;~IFi zMzO;N-`cWd22dwPNFCLyaU78WX-ut?76JQ5@T1mD8#?(wQadArg3B%*fQ&IWNRw3a z8!eutb#WYnB~6hA-8nQZ6^X|)NMm|JhZH6z#di``niD#v6aMoGRK8?6nKYbgFzgvu zs2Q|LLoBQp#z&%njIy7Q^_jMF!yXV1!o`$v1e}PuhJ2|WaWp~aILv*sO&9tDYFFLzChr^{zlNH7f`YUqf>8#v@ z$R?(&^pcWayy~tjJ2;zfNxkfOQfbT}pBeZ}YCwR?ru46DBj3kH^PE6b?#lAHdJv3# zsw+g(b~(V#b@LA=FVP#0`}bbE&e`e3i>mVkJ-G`uaVv(?H?NNes|_py0)*f?D^s1> z;l_}-k{}ejZ+}4S0Ys<^B~-SU3wdf|n4kS#45|y>?MBgfc1&;Fx^djvum73*Ak5}TG%3tz* zS@Ffg=+dTc#BDAn5_sJ+8EGZZ++0Z1W{4&pmSOMxAQp0RGs&bCw2~4WXt~DoR2JB0 z$#d<%3qHGOTQ19bB3VVgzLmF04HZq~!wkH*D5Y}f$5zy+==uU5$i+QIvKF4J=K!(6 zJ$dduELe01m^JPZKkFNOLudci;L0M`U7?VvJgaIyeK^AYtrYlA|Fs+VVHeZ>rT0B& zbZ6I@qoN7?5&m@Y1p9qEnqeilshq3% z2v+*qPN)yLAd-$Nl_%w9Cd=6eyXz^3O0H4IPigUAC*QZZIgg6q#*9Zx)weI^-DKSt zrqfT1r?MZb4}Ou-_%$^$V_U)rUW<6-7v7ED zFHekkJ5|?1vTWJTP33`+o~)Q448M2t9~rUG-ZBef;8sL5G%MFN+_p#&o5^Rc5kNoM zHdRW~yO<5t|7_-ONtZU0`D;SNZCMIt9%yLJ>>M}Z@c27PM`jfgmo1D(CTLlYgc@`e z6@}x_FSX9dW(XqDZhGG)&B{cMUf{5VWcx?x`t{>)pH?`}20ed0Er6XY85w9&cLt&* zlKm9OFb{J7d8S(*#X6?Xq5eXn9#Eq4!0w@$q{px&Pu8*!%`QBYFNHANeeON@j;qfL z!f3Yqdc+}|P0gX>sSL1(OHAN@Q}KL_A&c-6_qL-tvBQ_;DHwZmK6WE0b2?%g`TpX2 zOr#vf0+}ZpNfgFKo5lyj)Y z)S**_PRN{s$zo^e*?XQTrNEW^S+V=&PxGa7KR?|=&7_-6C9&VTMIpRdqC=<4f?}!l z;Mbf1uUYJ=YwCxhDb^h`_manG4MMZoU?%)lQFy&E2v7z`U)RVJ$0$$h=c^KVl|D_g z=(_fOw@0g7yIR3PlJ=@L2?=Z9!H~pyo8_k4c&?6XM$rTb!>Y0EN zfDyEtxI=__{n*YV@+ZAfGHs3Ru!gTS#^)nrE`}-d#d6B*1YWU8GA$c@+RDK@pMIaf z7jrIK;6ooKdT!ez3?NAaL5bntjEyQlSaB)T7J;53B~>H8L%wfZR! z=?)64msU_xkINe7i?XS9EX1(Vs5-jO%S%0ckP1w2I6mA<`FX#Vq2s(Ds}CRuDEzeCHuV>Zo~t?I5=tdz&>f>n!LLm00C*pelhVR)_{1i0oai2&&xieA%l zAwc^2Md$ZST8o^GXg170kL$6#?Qa&J{@R54;L23-r)y)9FD(?Cv^$9hb!ivZa{eaJ zTo%`3t)hM~{qEnrwkfmmlV@&qV!jm-{-(0}v*!RHBhbBNyeP3gkV1|6 z-E?2Vk@vKcRc`4FQ-3L8P5_CtuXx~^-oV5?FX7P@IN6BdDu{)7Ly*5Kkq4L37p$BO zEj<*g`;kp_Q~4AK1nF<%^k1A zqPG2Fy5^OoooRVW>ZLJ-1c{GgiKSC}fe7I?LS+!vuqeOJ%!5TkQp1(HxU(0mi{G#V z-IB`}&L!FMc?uQa;j~|!Dg<`Oxtrg%l3bQq=k93Ti0%`VHelFzPCLI+6cN&w8}u+W zN2n`!4&FJ@$(Okr(hmS^O%uU9sJ669{~j{@<-cIs_$NwfWQxBio&;npaZAr?R`bl! zF$M0`zo?j1Ev?QabEa7NIk#T^<5~w2P8GM0X&Jkx1f+kyb_nOs^(+K3-~tt|I~7XD zsh^NPRZvIh56^s~iSEhqDS2`(+|ATg?f0@w^K#I7m^kMPwGZC%6iwz`=D*aZT&%H& z|DG7BaI$0r;I2^@a5MiV1)CSl@Fz`YPvzjUxdDRNJ%Is?RS~kChV0MhxOWX(jL2 zK7wckP4zDZeLe`xLFZjabL7j${~{TLK8ROEytCC_dr~ zA=!VUCxR5Z|J8X(90gswdEk+zf2qS|fXbO4A3+?g7A}}Z#J-xzt8Nuz!|`{@p~w0| zy$zHF9BP`ND>c1i@12p=?3Z^oUN{=A0JDP=~ zKRZKR4&Crm?PGw?>JN@F2U}@;ic#!oT^<+`#Vwt>8`hSwYP;N|-i*i51w$txQa_f0Dy6y5%9w z{3V``Fw;`_+FHkZzg$}YV2}hzRMYFoU>7u)ik3t-Z6}uE{kks^96#(MdS(r*R;1?aXzYUz!bLvk-InKKgWgZ7eFV#3O+LvjEg%tw11b zey9w}FO*C72n`i=uq+Qr6fi=phC)$yD~ZhIIf|^vq8hm8M~-+bXRtG610|LD(S;61 zoM+Q3lzDZ5nMUH+=kJyu-cc3!gj z%a2Px<_AI-SaBmw`fX%Gj&PDtmTvZ(dVQMB`oZ}Jj|kQ9%HK-ww}y5Q#S;{1)6mRH zSt#;?7CtbNC4r6qlMGdOry&`Ybfj{WMF}Lfdqd}^G4|}BVpXg1RenTm>O|6OA?(VR z==dl*RN__Io1h{&%>{eEuPW|Iz)IqW^Dqmk3yBZc$+@E}0ZF^eTMhYZYj+7LvpXho zUon~4>ezXmZTMR2Jy}n9T^RDjl4X-s02|GzkS65A*m&)t%8K+jF+PI2?i3DBo$3K+ z;j-_jdmGV?`%F>Z;|vovsx(SpVz=+3FS9)m6V3Cr16mn8R}Yw}_zdynUpf?Mxg$Q~ zXEv6zENnQ^bRZnJ|682_*;*f3U6i>2i(BQZdU);%X}2YPS3(xZ5d^aOoG<(C4Ab*p zU6-ri%tirWjqt9gEQ4m)!&t{iq=->{Noe#M+c`_sI(lSqKEm(z)qIaJ7PbA(l_0@m z?@SE-qGRhj2uL*DN-WdhmBT9xbPwYz<%Yq|MT?D zTinBYU}fG7Jc?4qARs*_8-OGjRa!~DKQvg+o}d`$^&K?oZGqQlox#(-#Al%Gpd2YB zkh;o@Zs;?)m8K#P@1$CgqYQNG3v8qOkD`2y5a}VjW=mXqpM#+Ti;bAnB38lkFzqQR=9T3I?h3zKAROr@S)B3n^je8`4x{Qpl8z z(MVn{P0p$G{i?bBR=1@d7K+tPcULK&rSgf%wy*<7JudcF<13nsiAwVG-(!XKNB)0_ zl-k4G&U!J1Tiy}dy-a)mLM_qB@yUYSr}9hDqkXr8YfVi}MX5OGNBq4*XvFEjo27)qs%o%N-))K2l1r9~y+s zL0bNgt3En7HTB5~TtD}Wu-vdiD+$^0eL`y6xACp@J1kUD{Bz5yqwy-;505ueJwpi< zSfp@Zg3ZN5O(3y$4_I1xI@g}Uns-=r{^$SySNiehx%c#ezdR4P4;#Qlt9~AHi3E4S ze2r$t(qgJH1)ca*bHl@_EZ8jDL-?O6VG4H)&z0hq9|o3Ta5yXv@mT!XOymP#DEux#HU|klE>@Nk)h11=J2I@>O`JRA+gx9B4T1j)uDs@ZwOtEfzkM3L zLkU`wJSow+_(6d8F=G}J{6R$OB1Kl@?-Oi%<-Q`qn9i;wOtUY4PF`|GvtX!J5)2?n zi9NS6%NJ1Gni6Zc=d6G@=Gp)`)h(6XEp0@|u9lO>F5d^EYpbwS_R{@*e7C2oqk%G5 zmakXSSDBP8jw^znUC6h<96^H4ff`DDReY%P;q80l_gMeXi0Ydi+8^yN{=JrAQ*DY0 zlsG!KUvTS!x1OHgf4<4$8?j2~OF~Br)h7Rd9ER1*6pVw!0?QU_$t&&EM0YPbB4HKd zBVFlHV8RVPj%FPoz5KECDRDls;6G>5Q)66Hm^Qxz!DlUOk|cjJrLD}uP&+oU zbPijqDwvc-_6yjWrh8posl`(J$9%!D)kCu*|6c~sd(AO~J`yr8^oj&OI!}}gk>yRa zE@NT>>mAjxo&1ne-$YmPijE<4^{0}X$>6^4Bsk|YTY*R<+?==5vq(v>=eyp_=e3`k z@GG^o`_A^HH;x5oY{y<$S^*OB1Sm zOo?=3d&gfiF)>@JFO-yQeT&GOB}D{TZnj*18I@kwtaZ=f zWzYds&L_$^Io*?-Q&ZXO`SQOJ1@AqAZVYh);}$<#XjHiER=cb}o~*94C0Hf~>Il*g zm!!qC**dgoGba|R80#28TCG^rN411516E`$GzV&-((6pLVL(I_eLq=g^B0~S<)tMd zmes6ZWnom?sb!5?SK1-_@0ZoBzbs+7Yf#G{4iuGUEm!Znvw^-b&MD2mX8A!d(m1A) zCew~4y0j6OECAGc1J^w{wpx{Pa!M*ki&55AoW%{U@f$^N*EIV`%5T&fixJ+aDlx^| zLyHI)lNs5h3 zLxI9Y$-^yCHw0fvg*~lQk7gLKI)UZ2UG01EW21IF!(>4$>2wwxlHh%%ZR;*tOF^}Sgdk(tM6+J`D28=7fNz@MO;UrA{64SCpcZr73j$x%rn96Fe^Vm}GvsM{GCLPo=pi2-}rr>*mL^u!KIp5v%fT zchgR{O&21v0dCCC2&(xlV|(~VH!v#6Pi;LK$hsB#w(yq#*O|(_VF!;#zyC%!AwnCK z{wQmovs3bF+T~ZK@6|2Q@j~5q&818MxG8K%P~vc|E%e2P zVDnk4$)8fybqnMg_KGt4389j1&bz4iCBNo&WcRa@zKmK4t>kuMyA><7j|Gw${rv*I zV2yjfIiuCLPhxZfe`m96tOZkes{p~qsDOmYoEAw)NFocP?@7Nz;-pWB8v6IkT30{G zgQMilU|Ra`AoGXGOT!`N>$l!|RDNs!#Af=--w9~ey&~VYoT7ART@7PjV(TG6-#~$ROjduV%lVtfiAEl9*W`FE-TY?b)SLGE2pY)3J8Nuzv%~=CvqRg zQ~fdJKx#v;Fhzu%Ab|ZqydU(4KH>x>EB+5$8%Ze5CPYN_Z8;i)>C2jt1yAp;Ofs)V z1*IbT?!;5TM~{cRU7Z;MtdxghyyL0Gez2a5{&Mpab6~Ina#-N(EZQ ztR~STWPY=m((n>GEm|J+$`2PIhymY>Dj_*hU-g%p1WFJE9};T8Y-bj7 z8AcE~YAT(`<@C1i$59G`g|kR1r|Xq!c!{3&L=eL*q7Qm zL&gxANEhM$@hkFD^i|KPK`G(HQ2-J&`AQTps2_+_0OYcLAi)SA+V(2yC>`0dL#BlY z5UIEM`fe<>-LhD)NBNW!Xt{)zqDFtg$B(2=C_oxf`eNDm)3IozD2pgH>pM*>^-`q0 zY{*0VPU?5b=iYM%zz2yTUM?3Xg!{PxXF9eG9K6L4?x~P|a9^KckGW#FP*3+aJL0&X zJHcy4Bl2?B9C>+qa2j-{g7Tf!j{?062g9DZ)QDib0gdqMwV@ZP6Y|FCxKf#m<&I4T zhS0&B{mJU`sIQ-sTS-)+4mn_Kyam6Fi3BxV0>F!go=~Z6Qcm6k4M-5FM_?a=OPx8oNTsM_1{_=&BJ-)ACsZah{KI{O zT!O$Wm&)rKmJ)!#BHv`?(PHoBgm22hQN5aHTMrx&F4?m>=1<+de0utqH?Ar26INHq zMgxy&GXkFud^V9ICPyq4ouSj+9Jh$P@fYX?I$Vk^jE*Gp1y!1_<@a9lprDA_qZ^7e zrWPfqYZSLL%(dA|q=0{^@(RLT#;?FZAm&)T>a)CZR3`INm_QY?>pynr9qn8%r$P2l%D=lUX9Gm@d>Thd`W}W zk6B;XGG6{yae?@3BZ$||d6bf=?h)av4h@6$vyc&zNVc|o(qR)!ckFuc zQB>YN$*QlY@o7HSj{oEd-jV&eJB}dpkNS>pY^1P?V;2a|Tw(SXKF&n8Mw_)+HWzlt zx1UCA@48st>_jzF5EIkM@r?;dyV>ERIcn6g1SjXcHxUQUM9?C)U96oE)} zMS+5tK43;9s&u}@{2meoj^A8zfGQBe0*J(pR8Jb0U#6zV0?E*m=l-%_%vBD_^)39fKCBP2zUer$wTxj^2D}5z8kUB)!5#Cp3$}WM5$!3h<#|Y!2rJbA8F^S z_ro6Nvy-H0qK<2vbGdQK59i}sRQd+xU+ju8$Wd0B1=7D(W_RpAetl?v?`Px$R=1S_ z_JyIEaJl|awo^q0!~_}6S;5d*snqenxkuZ~a2o02)=ysm>%-_73%HG&zCqBmbZ$K_xd*+-x zDiN~K|4c8L^$-qNF7~Xf&%XTscIBxU@w%?Xaar*PZu~0(z6xM$1&EXW&Et8ecGW3h zToZV)+wnOEe%Tk|bbi+vFn{uNv|sLLshp@D$`gzPvD`xsf`ZQ9RC_1p;%<7#NX^h1 z$)XgnPF+kYes`E1vf^yl+eg6!8K|fPW;c-cqELpqH%&iff0ZvqLyv^^Q|2}O2+j6^ z1}PKLswd_Kp|$sq&!{F^VWfIYVppo+cKz$e;o1Zna7BL8)<+e-nr-dx$a;K(AZOG+ z&;9Bal)^-!u=xyn%{t_W+KqFVbVIDf>#Y7W+L8>Vz&_PBKJ~*Qu=dvlm8lf9h&;RJ z>OllKbu&IU?O-OdI)v0=aUOiHyk&QrrzP;tB9H7$VSHwWp^&J(HFCjH_}9SI-|hqH z0Egt?uW${wsS|$_Nd#ceM0aZXfXh{x7rP#@#L4G+u)M&o!f&$fe*jzlW0 zn9{@9W=UT3mBeh-z%UDegy2Bq)xmPJEPeH$5^Sykh2ddyM!obF1wJPv9ouI6PioCa z=6(HEEAipl)nk|}g2anMxAa7T>%e?7?3l!NnP|y;skp>2FjM^|prJme{kQ|AuRXH(Z zZcQoPN{`f-yqLtHbQN(dZ_6BUh#e;p(@s9T{?WSWg_oE=`a{QPM|%iKz{TZ}+1?~BB;!b!Un3auIiSUQgfGY zKyOrdV70`9(;Y^IRMHX4mh;xZe)Y6xlh_YeTf-x588VdempgEl zP%^PERI={l=2#-Fxg`}T*G)bqM_k!=6d0`p-&PUZX|fjKU;J8n(B*LuH#=`7J_?F&rlgu0o{ z3BLgf_?81l6u|2Vdfc>OX&xn$EXhK;Y{Trr34Mt+acaMXEX$Hvl1u5!d~f?8&({tf zh;Ju@h{JFTMxx;E4#zp-4991dhNxbqzx0SlpW@z`N5M;sAmWehd5rBafj=Ehw8ve= z7KCKRRBUB|2pnH*aWvS3#740fdebPr%yZ~&$`qMAywvTsK;}DNmKb2v4GR~=HIF@w zUVF_ETaZ;AhB|sRs;61jpNG|?ZE91hf?n*pJWJ!a%T}Yjp(zS17H_5UBWW0uLTe72 zzi`h82gS(cpoJMyp!dM<;GO5!&Xj-OD&P~S&}z&_g6LqMH^|;GvV5V>h{5=wm>+aY=nR(!_@ogOeWInTyE&zk2is z5!%@AMSScC52JXpNxt=S1ptaXJ_7;YUM$1urXkkv`|!v~3}dF=KyEj^5^RZi=m8r= zO*`e4o2AamNi{6p>8%}DA`m^3)ha`d+lnb!yJ`NDWE!416N9Bkyb`wG3aQMK0D-Z_ z0;&pwMJz3GweTflvWiZ6#r)!+bAwjZU|>>XDd-ETIIGdM3ZDtuIlm1@%0}r(oKX2H z?^smSx!~>F+xG4(y7Vmfi_2wfwF#v(>W~1R`=_T9_%2O|54@$8`1r>F5<2*avjM4B z;RC^N^hj)~V_b8?FC#(UKM^73>SmK;vQZz>2ESGg=et*&vl`;7FAr;E$6(UV;9k@k zYj93}Ri^8E>cMuVO2jvZGSpQ{JKT*JUa zymsyzDF3lX_NX=ksv)4i#~LB`*4`^MfA?LY5tdKw<$mn80Mh-EZ8!}prZgX6;WrA| zjz^ev`s5#L8P;$M{yd*yOf3VL2a+0Bhs1$&Fsmgl?G8JyFS;iedNg~v3fO4-xHI2_ zn8=I*KRz2Bb?fapl~TTqmH+$QTrEZq%{Y_n9}~B~ug4@Sil}fy%HyJ$KI&r!xYmS0no`2xQ&N%X5b8lsBdU!7$)NzTo%c8^d<<`5|$ErXyo@173<;l7tyifG!d zqnLRJXg2Fe_e=e6A_l7Uq7Hnc_qX`7Q?G~dZv?c4lhqYJ*;H8?3u}cIni%iq{!!<| zia?1Jfw${CJ}nPNBs9bD!Nr6jlAcwV#IsZl8}oO9c#@32yYZ|S(vX^+~vHeI3+c4)V`_s z>(SSPJ~xlqs(?``@?w^7J`ghRkB!vHKC(aMlOX1e4hdK+_1Z%YqX9HgZpOpI_k0TK zxuo>RtmJ9@hE@O;)c$wL-K=PV-Ri(9^#%(S3ni;MhDo(}nGSIkYz(uu#~we4M*p=G zhx1%(>8Z1g(iU9LM;4i$3tr>vHy4D|*n&I>qUGZ*)?9)#_(EFV9HXAK)Q+7f{pC|* zf4l(5;01shwi?Pi)Ol z7Ep1*BrsVp)|y6uhG)w2ZGHSBvs;`kGb4`)Ox_J!3e5NKgV>@Rp0V6Yn3xMdMy5T6gv%4qt_-X|3fagHYWS%H+G%>S(}s1`+i1RY3XYF~ao;=SmTC&dm9hlo4caMTubJU@OeLpjCDxocI0H6eUD6%OESJ zC#1XyC@JXr1_R=%pEI9=hO?+u8P<92p%fb!;%4H%Px2HdkXy8x6L3-E7>NKkXR?!) zl)hq0l_<+&;h}Q;+wh?;Uo&XsT^Vnn9n&#h67bOV7!*L7{31>OY%s5B`t^f@4B0Em z&q^KSclE+?NC03~YoqN4lfC^LPJ{3051BLo*`CR(V3XX95m0yB=u7J0^uG#6{6T9N z{rF(I7>LNWm(}S+5Y1+{qg#=(Tjj_vK%6JgP8il{WBCT+j$C^70By`YxCvTqIBF9cPNtg)us6 z3c=E7UyiHdazX{|^UUx-zT+JXz*0a?)aJN0fwXZ}J?7=Sof{B}N7br>t#3Ci#m(j7 z#?|{a*B)dE$}lB&T}Xj!?2GBk%j=Qc?iv8MVCmo`Cab^w{;L&+VN=$5|W}}grs$hR+_N6=Q}0R{Q0(HPo1;vbCt!C0Wdi*q2m-$)%c-9p3?{fC8uV@ z+x^i0b zptmtEF?ZPCa>M#|r^cr`R{h_520pU9M%d#Psr7p&wX6ybY@!68Bw@KM5hpGir=5G{~6o7DsT`|f}bsF30|X?%!# z__BqfUk=;L7j#O(;~N;j{ALmNpo?Z<&fc~L-DCLB#jOfYdbE6E{ZB|HCKRVTOAXy0 z$n915>z3=Jy_?E$^!4z;kzpw*0PnJ=;r3!DF|<iVQQ z2y?SV&E;zSD7 m>Er)V@b(yd)~v3BYQ#>hfY=)_JE4RO_(v=MKk0w61OEZl$}zzJ literal 0 HcmV?d00001 diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 23097e56df..d98f7d6011 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -171,13 +171,9 @@ def test_low_pass_perf_iir_vs_fir(self): def test_perf_biquad_filtering(self): """ - Try implementations of biquad filtering and test speed - - 1.) Call to SoX - - 2.) Call to cpp biquad function - - 3.) Call to cpp general difference equation function - - 4.) Call to Python biquad function + Compare SoX implementation of biquad filtering with C++ implementation - Current results: 1 ~20x faster than 2, 2 ~ 2x faster than 3, 3 ~8x faster than 4 + Current results: C++ implementation ~5x faster """ fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise_1min.mp3") @@ -198,40 +194,20 @@ def test_perf_biquad_filtering(self): waveform_sox_out, sr = E.sox_build_flow_effects() _timing_sox_run_time = time.time() - _timing_sox - # CPP Filtering with Biquad - waveform_cpp_out = torch.zeros_like(audio) + # C++ Diff Eq Filter _timing_cpp_filtering = time.time() - F.biquad_cpp(audio, waveform_cpp_out, b0, b1, b2, a0, a1, a2) - _timing_cpp_run_time = time.time() - _timing_cpp_filtering - - # Diff Eq Filter - waveform_diff_eq_out = torch.zeros_like(audio) - _timing_cpp_filtering = time.time() - F.diffeq_cpp( + waveform_diff_eq_out = F.lfilter( audio, - waveform_diff_eq_out, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]), ) _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering - # Native Python Implementation - #_timing_python = time.time() - #waveform_python_out = F.biquad_python(audio, b0, b1, b2, a0, a1, a2) - #_timing_python_run_time = time.time() - _timing_python - - print("SoX Run Time : ", round(_timing_sox_run_time, 3)) - print("CPP Biquad Run Time : ", round(_timing_cpp_run_time, 3)) - print("CPP Diff Eq Run Time : ", round(_timing_diff_eq_run_time, 3)) - - - #assert torch.allclose(waveform_sox_out, waveform_python_out, atol=1e-5) - assert torch.allclose(waveform_sox_out, waveform_cpp_out, atol=1e-4) - #assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-5) - - #print("Python Run Time : ", round(_timing_python_run_time, 3)) + print("\n") + print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) + print("CPP Diff Eq Run Time (s): ", round(_timing_diff_eq_run_time, 3)) - assert( 1 == 0 ) + assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-4) if __name__ == "__main__": diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 0c4049d546..74f39b5045 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -16,29 +16,31 @@ namespace audio { at::Tensor& b_coeffs ) { + // assumes waveform is normalized between 1 and -1 + int64_t n_channels = input_waveform.size(0); int64_t n_frames = input_waveform.size(1); assert(output_waveform.size(0) == n_channels); assert(output_waveform.size(1) == n_frames); - int n_order = a_coeffs.size(0); // n'th order filter - assert(a_coeffs.size(0) == b_coeffs.size(0)); - auto input_accessor = input_waveform.accessor(); auto output_accessor = output_waveform.accessor(); auto a_coeffs_accessor = a_coeffs.accessor(); auto b_coeffs_accessor = b_coeffs.accessor(); + int n_order = a_coeffs.size(0); // n'th order - 1 filter + assert(a_coeffs.size(0) == b_coeffs.size(0)); + for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { - // allocate a temporary data structure of size 2 x n_order + // allocate a temporary data structure of size 2 x (n_order + 1) float i_s[n_order]= { }; float o_s[n_order]= { }; for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - // populate the output + // calculate the output at time i_frame i_s[n_order-1] = input_accessor[i_channel][i_frame]; float o0 = 0; for (int i = 0; i < n_order; ++i) { @@ -48,12 +50,15 @@ namespace audio { } } o0 = o0 / a_coeffs_accessor[0]; + + o_s[n_order-1] = o0; + + // clip and drop into output if (o0 > 1) o0 = 1; if (o0 < -1) o0 = -1; - o_s[n_order-1] = o0; output_accessor[i_channel][i_frame] = o0; - // shift everything over + // shift everything over by one time step for (int i = 0; i < (n_order - 1); ++i) { i_s[i] = i_s[i+1]; o_s[i] = o_s[i+1]; @@ -62,70 +67,10 @@ namespace audio { } } - - - void biquad( - at::Tensor& input_waveform, - at::Tensor& output_waveform, - float b0, - float b1, - float b2, - float a0, - float a1, - float a2 - ) { - - int64_t n_channels = input_waveform.size(0); - int64_t n_frames = input_waveform.size(1); - - //assert(output_waveform.size(0) == n_channels); - //assert(output_waveform.size(1) == n_frames); - - b0 = b0 / a0; - b1 = b1 / a0; - b2 = b2 / a0; - a1 = a1 / a0; - a2 = a2 / a0; - - auto input_accessor = input_waveform.accessor(); - auto output_accessor = output_waveform.accessor(); - - for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { - - float pi1 = 0; - float pi2 = 0; - float po1 = 0; - float po2 = 0; - float o0, i0; - - for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - i0 = input_accessor[i_channel][i_frame]; - o0 = (i0 * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2); - - // increment time forward - pi2 = pi1; - pi1 = i0; - po2 = po1; - po1 = o0; - if (o0 > 1) { - o0 = 1; - } else if (o0 < -1) { - o0 = -1; - } - output_accessor[i_channel][i_frame] = o0; - } - } - } - - }} PYBIND11_MODULE(_torch_filtering, m) { - m.def( - "biquad", - &torch::audio::biquad, - "Executes biquad"); m.def( "diff_eq", &torch::audio::diff_eq, diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 98a13fab23..0f53dfaf07 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -15,12 +15,10 @@ 'angle', 'magphase', 'phase_vocoder', - 'lowpass_depr', - 'lowpass_biquad_python', - 'highpass_biquad_python', - 'biquad_python', - 'biquad_cpp', - 'diffeq_cpp', + 'lowpass_biquad', + 'highpass_biquad', + 'biquad', + 'lfilter', ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @@ -473,9 +471,7 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch -from torchaudio.functional_filtering import lowpass_depr -from torchaudio.functional_filtering import lowpass_biquad_python -from torchaudio.functional_filtering import highpass_biquad_python -from torchaudio.functional_filtering import biquad_python -from torchaudio.functional_filtering import biquad_cpp -from torchaudio.functional_filtering import diffeq_cpp +from torchaudio.functional_filtering import lowpass_biquad +from torchaudio.functional_filtering import highpass_biquad +from torchaudio.functional_filtering import biquad +from torchaudio.functional_filtering import lfilter diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 07a4dc3fe5..9189efbf4e 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -4,24 +4,45 @@ import torchaudio __all__ = [ - "lowpass_depr", - "biquad_python", - "lowpass_biquad_python", - "highpass_biquad_python", - "biquad_cpp", - "diffeq_cpp", + "lowpass_biquad", + "highpass_biquad", + "biquad", + "lfilter", ] -from _torch_filtering import biquad as biquad_cpp from _torch_filtering import diff_eq as diffeq_cpp +def lfilter(input_waveform, a_coeffs, b_coeffs): + output_waveform = torch.zeros_like(input_waveform) + assert(input_waveform.dtype == torch.float32) + + diffeq_cpp( + input_waveform, + output_waveform, + a_coeffs, + b_coeffs, + ) + return output_waveform + +def biquad(input_waveform, b0, b1, b2, a0, a1, a2): + output_waveform = torch.zeros_like(input_waveform) + assert(input_waveform.dtype == torch.float32) + + diffeq_cpp( + input_waveform, + output_waveform, + torch.tensor([a0, a1, a2]), + torch.tensor([b0, b1, b2]), + ) + return output_waveform + def _dB2Linear(x): return math.exp(x * math.log(10) / 20.0) -def highpass_biquad_python(input, sr, cutoff_freq, Q=0.707): +def highpass_biquad(input_waveform, sr, cutoff_freq, Q=0.707): GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr @@ -35,10 +56,10 @@ def highpass_biquad_python(input, sr, cutoff_freq, Q=0.707): a0 = 1 + alpha a1 = -2 * math.cos(w0) a2 = 1 - alpha - return biquad_python(input, b0, b1, b2, a0, a1, a2) + return biquad(input_waveform, b0, b1, b2, a0, a1, a2) -def lowpass_biquad_python(input, sr, cutoff_freq, Q=0.707): +def lowpass_biquad(input_waveform, sr, cutoff_freq, Q=0.707): GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sr @@ -52,128 +73,7 @@ def lowpass_biquad_python(input, sr, cutoff_freq, Q=0.707): a0 = 1 + alpha a1 = -2 * math.cos(w0) a2 = 1 - alpha - return biquad_python(input, b0, b1, b2, a0, a1, a2) - - -def biquad_python(input, b0, b1, b2, a0, a1, a2): - - def clip(v): - return max(-1.0, min(1.0, v)) - - n_channels, n_samples = input.size() - output = torch.zeros_like(input) - - # Normalize the coefficients - b2 = float(b2) / a0 - b1 = float(b1) / a0 - b0 = float(b0) / a0 - a2 = float(a2) / a0 - a1 = float(a1) / a0 - - # Initial Conditions set to zero - pi1 = torch.zeros(n_channels, 1) - pi2 = torch.zeros(n_channels, 1) - po1 = torch.zeros(n_channels, 1) - po2 = torch.zeros(n_channels, 1) - - for i in range(input.size()[1]): - o0 = clip(input[:, i] * b0 + pi1 * b1 + pi2 * b2 - po1 * a1 - po2 * a2) - pi2 = pi1 - pi1 = input[:, i] - po2 = po1 - po1 = o0 - output[:, i] = o0 - - return output - - -def lowpass_depr( - waveform, # type: Tensor - sample_rate, # type: int - n_fft, # type: int - f_thresh, # type: int - hop_length=None, # type: Optional[int] - win_length=None, # type: Optional[int] - window=None, # type: Optional[Tensor] - center=True, # type: Optional[bool] - pad_mode="reflect", # type: Optional[str] - normalized=False, # type: Optional[bool] - onesided=True, # type: Optional[bool] -): - - # type: (...) -> Tensor - r"""Simple low pass filter. Performs Short Time Fourier Transform, zeros out elements - above a threshold requency, and inverts Fourier Transform. - - Args: - waveform (torch.Tensor): Audio waveform that has a size of (channel, n_frames) - sample_rate (int): Audio waveform sampling rate in frames / sec (Hz) - n_fft (int): Size of Fourier transform in frames - f_thresh (int): Threshold above which signal will be filtered out (Hz) - hop_length (Optional[int]): See STFT documentation - win_length (Optional[int]): See STFT documentation - window (Optional[torch.Tensor]): See STFT documentation - center (Optional[bool]): See STFT documentation - pad_mode (Optional[str]): See STFT documentation - normalized (Optional[bool]): See STFT documentation - onesided (Optional[bool]): See STFT documentation - - Returns: - torch.Tensor: Audio waveform that has been denoised of size (channel, n_frames) - """ - - assert f_thresh < sample_rate // 2 - assert f_thresh >= 0 - - # Convert threshold frequency cutoff to index - # Depends on the sampling rate - i_thresh = math.ceil(f_thresh * n_fft / sample_rate) - - assert i_thresh < n_fft // 2 - - waveform_stft = torch.stft( - waveform, - n_fft, - hop_length, - win_length, - window, - center, - pad_mode, - normalized, - onesided, - ) - - # Zero out elements above the CUTOFF - (n_channels, fft_size, n_windows, n_real_complex) = waveform_stft.size() - assert 2 == n_real_complex - assert 1 == n_channels or 2 == n_channels # audio is mono or stereo - - # Set all components above threshold to zero - i_thresh_end = fft_size if onesided else fft_size - i_thresh - 1 - waveform_stft[ - [ - slice(None), - torch.arange(i_thresh, i_thresh_end).long(), - slice(None), - slice(None), - ] - ] = 0 - - denoised_audio = torchaudio.functional.istft( - waveform_stft, - n_fft, - hop_length, - win_length, - window, - center, - pad_mode, - normalized, - onesided, - waveform.size()[1], - ) - - return denoised_audio - + return biquad(input_waveform, b0, b1, b2, a0, a1, a2) if __name__ == '__main__': pass From 73ae473b228893a729a8a6c9710904bba97bb2e6 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 17:04:37 -0400 Subject: [PATCH 08/28] Implement convolve function, add tests --- test/assets/dtmf_30s_stereo.mp3 | Bin 0 -> 228984 bytes test/test_functional_filtering.py | 219 ++++++++++++++--------------- torchaudio/functional.py | 2 + torchaudio/functional_filtering.py | 42 ++++-- 4 files changed, 133 insertions(+), 130 deletions(-) create mode 100644 test/assets/dtmf_30s_stereo.mp3 diff --git a/test/assets/dtmf_30s_stereo.mp3 b/test/assets/dtmf_30s_stereo.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6c97835ec0dedc5273f1aeee4d5d4bdd7c541b41 GIT binary patch literal 228984 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%0Dpm;`O%JVx#`VwGdAP%kJv+INes^| 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�o}ou>L#n&!)STAN?mwDlk$4QPHK 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 literal 0 HcmV?d00001 diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index d98f7d6011..d2a3a9f34a 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -12,38 +12,31 @@ class TestFunctionalFiltering(unittest.TestCase): test_dirpath, test_dir = common_utils.create_temp_assets_dir() - @unittest.skip - def test_lowpass_sox_compliance(self): - + def test_lfilter_basic(self): """ - Run a file through SoX lowpass filter - Then run through our lowpass filter - Should match + Create a very basic signal, + Then make a simple 4th order delay + The output should be same as the input but shifted """ - CUTOFF_FREQ = 3000 - - noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") - E = torchaudio.sox_effects.SoxEffectsChain() - E.set_input_file(noise_filepath) - E.append_effect_to_chain("lowpass", [CUTOFF_FREQ]) - sox_signal_out, sr = E.sox_build_flow_effects() - - noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) - signal_out = F.lowpass_biquad_python(noise, sample_rate, CUTOFF_FREQ) + torch.random.manual_seed(42) + input_waveform = torch.rand(2, 1000) + b_coeffs = torch.tensor([0, 0, 0, 1], dtype=torch.float32) + a_coeffs = torch.tensor([1, 0, 0, 0], dtype=torch.float32) + output_waveform = F.lfilter(input_waveform, a_coeffs, b_coeffs) - assert torch.allclose(sox_signal_out, signal_out, atol=1e-4) + assert torch.allclose( + input_waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 + ) - @unittest.skip - def test_diff_eq(self): + def test_lfilter(self): """ - Design a lowpass filter using scipy.signal filter design + 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 from scipy.signal import iirdesign b, a = iirdesign(0.2, 0.3, 1, 60) - Test is that this runs """ b_coeffs = torch.tensor( @@ -69,115 +62,71 @@ def test_diff_eq(self): ] ) - noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") - audio, sample_rate = torchaudio.load(noise_filepath, normalization=True) - - waveform_diff_eq_out = torch.zeros_like(audio) - F.diffeq_cpp(audio, waveform_diff_eq_out, a_coeffs, b_coeffs) + filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") + input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) + output_waveform = F.lfilter(input_waveform, a_coeffs, b_coeffs) + assert len(output_waveform.size()) == 2 + assert output_waveform.size(0) == input_waveform.size(0) + assert output_waveform.size(1) == input_waveform.size(1) + def test_lowpass_sox_compliance(self): - @unittest.skip - def test_low_pass_perf_iir_vs_fir(self): """ - Try two low pass filters to compare performance - - 10th order IIR - - 40th order FIR + Run a biquad lowpass filter using SoX vs torchaudio's lfilter + Results should be very close """ - fir_impulse_response = [ - -0.00040463742194593165, - -0.0011997613323707066, - -0.0018908492870125047, - -0.00207654308585229, - -0.001096110046662624, - 0.0015056218536868779, - 0.005330573111949219, - 0.008753080180802494, - 0.009251376850303583, - 0.004551586188930009, - -0.00579865949432587, - -0.01919960191734472, - -0.029922330203954777, - -0.03058886187399114, - -0.014900805267782886, - 0.019382291456268037, - 0.06852266400807679, - 0.12297037769851049, - 0.16984408705548223, - 0.19696650152723372, - 0.19696650152723374, - 0.16984408705548223, - 0.12297037769851049, - 0.06852266400807679, - 0.01938229145626804, - -0.014900805267782887, - -0.03058886187399115, - -0.029922330203954784, - -0.01919960191734472, - -0.00579865949432587, - 0.004551586188930011, - 0.009251376850303588, - 0.008753080180802494, - 0.005330573111949219, - 0.0015056218536868779, - -0.001096110046662626, - -0.0020765430858522907, - -0.0018908492870125056, - -0.0011997613323707066, - -0.00040463742194593165, - ] - - iir_b_coeffs = torch.tensor( - [ - 4.14176942e-05, - -6.74168865e-05, - 1.28894969e-04, - -7.60724730e-05, - 6.18923831e-05, - 6.18923831e-05, - -7.60724730e-05, - 1.28894969e-04, - -6.74168865e-05, - 4.14176942e-05, - ] + CUTOFF_FREQ = 3000 + + noise_filepath = os.path.join( + self.test_dirpath, "assets", "whitenoise_1min.mp3" ) - iir_a_coeffs = torch.tensor( - [ - 1.0, - -7.51701965, - 25.93753044, - -53.79433042, - 73.79210968, - -69.36257588, - 44.65306696, - -18.98130961, - 4.83553413, - -0.56282822, - ] + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(noise_filepath) + E.append_effect_to_chain("lowpass", [CUTOFF_FREQ]) + sox_output_waveform, sr = E.sox_build_flow_effects() + + input_waveform, sample_rate = torchaudio.load( + noise_filepath, normalization=True ) + output_waveform = F.lowpass_biquad(input_waveform, sample_rate, CUTOFF_FREQ) + + assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-4) - noise_filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") - noise, sample_rate = torchaudio.load(noise_filepath, normalization=True) + def test_highpass_sox_compliance(self): + """ + Run a biquad highpass filter using SoX vs torchaudio's lfilter + Results should be very close + """ + + CUTOFF_FREQ = 2000 - waveform_diff_eq_out = torch.zeros_like(noise) - _diffeq_start_time = time.time() - F.diffeq_cpp(noise, waveform_diff_eq_out, iir_a_coeffs, iir_b_coeffs) - _diffeq_run_time = time.time() - _diffeq_start_time + noise_filepath = os.path.join( + self.test_dirpath, "assets", "whitenoise_1min.mp3" + ) + E = torchaudio.sox_effects.SoxEffectsChain() + E.set_input_file(noise_filepath) + E.append_effect_to_chain("highpass", [CUTOFF_FREQ]) + sox_output_waveform, sr = E.sox_build_flow_effects() - # TBD + input_waveform, sample_rate = torchaudio.load( + noise_filepath, normalization=True + ) + output_waveform = F.highpass_biquad(input_waveform, sample_rate, CUTOFF_FREQ) - print("Diff Eq Low Pass Run Time:", _diffeq_run_time) - # print("FIR Low Pass Run Time :", _fir_run_time) + # TBD - this fails at the 1e-4 level, debug why + assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) def test_perf_biquad_filtering(self): """ Compare SoX implementation of biquad filtering with C++ implementation - Current results: C++ implementation ~5x faster + Test that results are similar and how performance differs + + Current results: C++ implementation approximately same speed """ fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise_1min.mp3") - audio, sample_rate = torchaudio.load(fn_sine, normalization=True) b0 = 0.4 b1 = 0.2 @@ -196,19 +145,59 @@ def test_perf_biquad_filtering(self): # C++ Diff Eq Filter _timing_cpp_filtering = time.time() + input_waveform, sample_rate = torchaudio.load(fn_sine, normalization=True) waveform_diff_eq_out = F.lfilter( - audio, - torch.tensor([a0, a1, a2]), - torch.tensor([b0, b1, b2]), + input_waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) ) _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering print("\n") print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) - print("CPP Diff Eq Run Time (s): ", round(_timing_diff_eq_run_time, 3)) + print("CPP Lfilter Run Time (s): ", round(_timing_diff_eq_run_time, 3)) assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-4) + def test_convolve_basic(self): + + # Create a short signal and filter + # Check results + + input_waveform = torch.tensor( + [[0.0, 1.0, 0.0, 1.0, 0.0, 1.0]], dtype=torch.float32 + ) + filter_impulse_response = torch.tensor([0.33333, 0.33333, 0.33333]) + + output_waveform = F.convolve(input_waveform, filter_impulse_response) + + assert len(output_waveform.size()) == 2 + assert output_waveform.size(0) == input_waveform.size(0) + assert output_waveform.size(1) == ( + input_waveform.size(1) + filter_impulse_response.size(0) - 1 + ) + assert torch.allclose( + output_waveform[0, 0:4], + torch.tensor([0.000, 0.3333, 0.3333, 0.6666]), + atol=1e-4, + ) + + def test_convolve(self): + + # Run a stereo file through convolve, confirm output is of right size + + filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") + input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) + + torch.random.manual_seed(42) + filter_impulse_response = torch.rand(20) + + output_waveform = F.convolve(input_waveform, filter_impulse_response) + + assert len(output_waveform.size()) == 2 + assert output_waveform.size(0) == input_waveform.size(0) + assert output_waveform.size(1) == ( + input_waveform.size(1) + filter_impulse_response.size(0) - 1 + ) + if __name__ == "__main__": unittest.main() diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 0f53dfaf07..8151938b71 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -19,6 +19,7 @@ 'highpass_biquad', 'biquad', 'lfilter', + 'convolve', ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @@ -475,3 +476,4 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): from torchaudio.functional_filtering import highpass_biquad from torchaudio.functional_filtering import biquad from torchaudio.functional_filtering import lfilter +from torchaudio.functional_filtering import convolve diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 9189efbf4e..3aa207c181 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -3,30 +3,41 @@ import torch import torchaudio -__all__ = [ - "lowpass_biquad", - "highpass_biquad", - "biquad", - "lfilter", -] +__all__ = ["lowpass_biquad", "highpass_biquad", "biquad", "lfilter", "convolve"] from _torch_filtering import diff_eq as diffeq_cpp + +def convolve(input_waveform, impulse_response): + + n_channels, n_frames = input_waveform.size() + + # for each audio channel + assert input_waveform.dtype == torch.float32 + assert impulse_response.dtype == torch.float32 + + channel_output_waveforms = [] + for i_channel in range(n_channels): + channel_output_waveforms.append( + torch.nn.functional.conv_transpose1d( + input_waveform[i_channel, :].unsqueeze(0).unsqueeze(0), + impulse_response.unsqueeze(0).unsqueeze(0), + ).squeeze(0).squeeze(0) + ) + return torch.stack(channel_output_waveforms) + + def lfilter(input_waveform, a_coeffs, b_coeffs): output_waveform = torch.zeros_like(input_waveform) - assert(input_waveform.dtype == torch.float32) + assert input_waveform.dtype == torch.float32 - diffeq_cpp( - input_waveform, - output_waveform, - a_coeffs, - b_coeffs, - ) + diffeq_cpp(input_waveform, output_waveform, a_coeffs, b_coeffs) return output_waveform + def biquad(input_waveform, b0, b1, b2, a0, a1, a2): output_waveform = torch.zeros_like(input_waveform) - assert(input_waveform.dtype == torch.float32) + assert input_waveform.dtype == torch.float32 diffeq_cpp( input_waveform, @@ -75,5 +86,6 @@ def lowpass_biquad(input_waveform, sr, cutoff_freq, Q=0.707): a2 = 1 - alpha return biquad(input_waveform, b0, b1, b2, a0, a1, a2) -if __name__ == '__main__': + +if __name__ == "__main__": pass From ca3afebf83dfa4f90efe8afea9271eee61b37076 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 17:38:11 -0400 Subject: [PATCH 09/28] Move lfilter and convolve into functional, more tests --- examples/filter_file.py | 14 ----- test/test_functional_filtering.py | 82 +++++++++++++++--------------- torchaudio/filtering.cpp | 12 +++-- torchaudio/functional.py | 35 +++++++++++-- torchaudio/functional_filtering.py | 30 +---------- 5 files changed, 80 insertions(+), 93 deletions(-) delete mode 100644 examples/filter_file.py diff --git a/examples/filter_file.py b/examples/filter_file.py deleted file mode 100644 index eb829551b4..0000000000 --- a/examples/filter_file.py +++ /dev/null @@ -1,14 +0,0 @@ -import os -import sys -import torchaudio - -if __name__ == '__main__': - - AUDIO_PATH = sys.argv[1] - OUTPUT_PATH = sys.argv[2] - N_FFT = 512 - THRESHOLD_HZ = 3000 - - audio, sample_rate = torchaudio.load(AUDIO_PATH, normalization=False) - lowpassed_audio = torchaudio.functional.lowpass(audio, sample_rate, N_FFT, THRESHOLD_HZ) - torchaudio.save(OUTPUT_PATH, lowpassed_audio, sample_rate) \ No newline at end of file diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index d2a3a9f34a..c0803fe186 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -69,6 +69,47 @@ def test_lfilter(self): assert output_waveform.size(0) == input_waveform.size(0) assert output_waveform.size(1) == input_waveform.size(1) + def test_convolve_basic(self): + + # Create a short signal and filter + # Check results + + input_waveform = torch.tensor( + [[0.0, 1.0, 0.0, 1.0, 0.0, 1.0]], dtype=torch.float32 + ) + filter_impulse_response = torch.tensor([0.33333, 0.33333, 0.33333]) + + output_waveform = F.convolve(input_waveform, filter_impulse_response) + + assert len(output_waveform.size()) == 2 + assert output_waveform.size(0) == input_waveform.size(0) + assert output_waveform.size(1) == ( + input_waveform.size(1) + filter_impulse_response.size(0) - 1 + ) + assert torch.allclose( + output_waveform[0, 0:4], + torch.tensor([0.000, 0.3333, 0.3333, 0.6666]), + atol=1e-4, + ) + + def test_convolve(self): + + # Run a stereo file through convolve, confirm output is of right size + + filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") + input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) + + torch.random.manual_seed(42) + filter_impulse_response = torch.rand(20) + + output_waveform = F.convolve(input_waveform, filter_impulse_response) + + assert len(output_waveform.size()) == 2 + assert output_waveform.size(0) == input_waveform.size(0) + assert output_waveform.size(1) == ( + input_waveform.size(1) + filter_impulse_response.size(0) - 1 + ) + def test_lowpass_sox_compliance(self): """ @@ -157,47 +198,6 @@ def test_perf_biquad_filtering(self): assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-4) - def test_convolve_basic(self): - - # Create a short signal and filter - # Check results - - input_waveform = torch.tensor( - [[0.0, 1.0, 0.0, 1.0, 0.0, 1.0]], dtype=torch.float32 - ) - filter_impulse_response = torch.tensor([0.33333, 0.33333, 0.33333]) - - output_waveform = F.convolve(input_waveform, filter_impulse_response) - - assert len(output_waveform.size()) == 2 - assert output_waveform.size(0) == input_waveform.size(0) - assert output_waveform.size(1) == ( - input_waveform.size(1) + filter_impulse_response.size(0) - 1 - ) - assert torch.allclose( - output_waveform[0, 0:4], - torch.tensor([0.000, 0.3333, 0.3333, 0.6666]), - atol=1e-4, - ) - - def test_convolve(self): - - # Run a stereo file through convolve, confirm output is of right size - - filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") - input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) - - torch.random.manual_seed(42) - filter_impulse_response = torch.rand(20) - - output_waveform = F.convolve(input_waveform, filter_impulse_response) - - assert len(output_waveform.size()) == 2 - assert output_waveform.size(0) == input_waveform.size(0) - assert output_waveform.size(1) == ( - input_waveform.size(1) + filter_impulse_response.size(0) - 1 - ) - if __name__ == "__main__": unittest.main() diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 74f39b5045..16aa9b244f 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -8,12 +8,12 @@ namespace torch { namespace audio { - + // N.B. only handles floating point right now void diff_eq( - at::Tensor& input_waveform, + at::Tensor const & input_waveform, at::Tensor& output_waveform, - at::Tensor& a_coeffs, - at::Tensor& b_coeffs + at::Tensor const & a_coeffs, + at::Tensor const & b_coeffs ) { // assumes waveform is normalized between 1 and -1 @@ -35,12 +35,14 @@ namespace audio { for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { // allocate a temporary data structure of size 2 x (n_order + 1) + // set to 0 because initial conditions are 0 float i_s[n_order]= { }; float o_s[n_order]= { }; for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - // calculate the output at time i_frame + // calculate the output at time i_frame by iterating through + // inputs / outputs at previous time steps and multiplying by coeffs i_s[n_order-1] = input_accessor[i_channel][i_frame]; float o0 = 0; for (int i = 0; i < n_order; ++i) { diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 8151938b71..7097e371ad 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch - +from _torch_filtering import diff_eq as diffeq_cpp __all__ = [ 'istft', @@ -471,9 +471,36 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch +def convolve(input_waveform, impulse_response): + + n_channels, n_frames = input_waveform.size() + + # Perform convolution for each channel + assert input_waveform.dtype == torch.float32 + assert impulse_response.dtype == torch.float32 + + # N.B. - can we do all channels at once? + channel_output_waveforms = [] + for i_channel in range(n_channels): + channel_output_waveforms.append( + + # torch nn conv requires 3D tensor + torch.nn.functional.conv_transpose1d( + input_waveform[i_channel, :].unsqueeze(0).unsqueeze(0), + impulse_response.unsqueeze(0).unsqueeze(0), + ).squeeze(0).squeeze(0) + ) + + return torch.stack(channel_output_waveforms) + + +def lfilter(input_waveform, a_coeffs, b_coeffs): + output_waveform = torch.zeros_like(input_waveform) + assert input_waveform.dtype == torch.float32 + + diffeq_cpp(input_waveform, output_waveform, a_coeffs, b_coeffs) + return output_waveform from torchaudio.functional_filtering import lowpass_biquad from torchaudio.functional_filtering import highpass_biquad -from torchaudio.functional_filtering import biquad -from torchaudio.functional_filtering import lfilter -from torchaudio.functional_filtering import convolve +from torchaudio.functional_filtering import biquad \ No newline at end of file diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_filtering.py index 3aa207c181..412e2e17b1 100644 --- a/torchaudio/functional_filtering.py +++ b/torchaudio/functional_filtering.py @@ -2,37 +2,9 @@ import math import torch import torchaudio - -__all__ = ["lowpass_biquad", "highpass_biquad", "biquad", "lfilter", "convolve"] - from _torch_filtering import diff_eq as diffeq_cpp - -def convolve(input_waveform, impulse_response): - - n_channels, n_frames = input_waveform.size() - - # for each audio channel - assert input_waveform.dtype == torch.float32 - assert impulse_response.dtype == torch.float32 - - channel_output_waveforms = [] - for i_channel in range(n_channels): - channel_output_waveforms.append( - torch.nn.functional.conv_transpose1d( - input_waveform[i_channel, :].unsqueeze(0).unsqueeze(0), - impulse_response.unsqueeze(0).unsqueeze(0), - ).squeeze(0).squeeze(0) - ) - return torch.stack(channel_output_waveforms) - - -def lfilter(input_waveform, a_coeffs, b_coeffs): - output_waveform = torch.zeros_like(input_waveform) - assert input_waveform.dtype == torch.float32 - - diffeq_cpp(input_waveform, output_waveform, a_coeffs, b_coeffs) - return output_waveform +__all__ = ["lowpass_biquad", "highpass_biquad", "biquad"] def biquad(input_waveform, b0, b1, b2, a0, a1, a2): From c19f32d45c604a532ddb144d557e8cbae9cc2a8a Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 19:45:24 -0400 Subject: [PATCH 10/28] Slight reformatting of functional and test --- test/test_functional_filtering.py | 8 ++++---- torchaudio/functional.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index c0803fe186..36eb824cdb 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -13,7 +13,7 @@ class TestFunctionalFiltering(unittest.TestCase): test_dirpath, test_dir = common_utils.create_temp_assets_dir() def test_lfilter_basic(self): - """ + """l Create a very basic signal, Then make a simple 4th order delay The output should be same as the input but shifted @@ -192,9 +192,9 @@ def test_perf_biquad_filtering(self): ) _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering - print("\n") - print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) - print("CPP Lfilter Run Time (s): ", round(_timing_diff_eq_run_time, 3)) + # print("\n") + # print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) + # print("CPP Lfilter Run Time (s): ", round(_timing_diff_eq_run_time, 3)) assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-4) diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 7097e371ad..736a1f2a70 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,6 +1,9 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch +from torchaudio.functional_filtering import lowpass_biquad +from torchaudio.functional_filtering import highpass_biquad +from torchaudio.functional_filtering import biquad from _torch_filtering import diff_eq as diffeq_cpp __all__ = [ @@ -471,6 +474,7 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch + def convolve(input_waveform, impulse_response): n_channels, n_frames = input_waveform.size() @@ -500,7 +504,3 @@ def lfilter(input_waveform, a_coeffs, b_coeffs): diffeq_cpp(input_waveform, output_waveform, a_coeffs, b_coeffs) return output_waveform - -from torchaudio.functional_filtering import lowpass_biquad -from torchaudio.functional_filtering import highpass_biquad -from torchaudio.functional_filtering import biquad \ No newline at end of file From 54e3834c9313c197306d82a995eec2d0148afdb4 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 22:39:40 -0400 Subject: [PATCH 11/28] added additional documentation for convolve and lfilter, renamed functional_filtering to functional_sox_convenience --- torchaudio/functional.py | 33 +++++++++++++++++-- ...ering.py => functional_sox_convenience.py} | 0 2 files changed, 30 insertions(+), 3 deletions(-) rename torchaudio/{functional_filtering.py => functional_sox_convenience.py} (100%) diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 736a1f2a70..a3fdb45bcd 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,9 +1,7 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from torchaudio.functional_filtering import lowpass_biquad -from torchaudio.functional_filtering import highpass_biquad -from torchaudio.functional_filtering import biquad +from torchaudio.functional_sox_convenience import lowpass_biquad, highpass_biquad, biquad from _torch_filtering import diff_eq as diffeq_cpp __all__ = [ @@ -476,6 +474,16 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): def convolve(input_waveform, impulse_response): + r"""Evaluate 1D convolution of impulse response on input waveform by channel + Thin wrapper around torch.nn.functional.conv_transpose1d + + Args: + input_waveform (torch.Tensor): Tensor shape of `(n_channels, n_frames)` + impulse_response (torch.Tensor): Tensor shape of `(n_response_length)` + + Returns: + torch.Tensor: output waveform filtered, shape `(n_channels, n_frames + n_response_length - 1)` + """ n_channels, n_frames = input_waveform.size() @@ -499,6 +507,25 @@ def convolve(input_waveform, impulse_response): def lfilter(input_waveform, a_coeffs, b_coeffs): + r"""Evaluate a difference equation on an input waveform + of form a0 * y[n] = b0 * x[n] + b1 * x[n-1] + ... - a1 * y[n-1] - a2 * y[n-2] .... + All initial inputs / outputs are zero + + Args: + input_waveform (torch.Tensor): Tensor shape of `(n_channels, n_frames)` + a_coeffs (torch.Tensor): difference equation denominator coefficients ordered + by time delay, e.g. [a0, a1, a2, ...], shape `(n_coeffs)` + b_coeffs (torch.Tensor): difference equation numerator coefficients ordered + by time delay, e.g. [b0, b1, b2, ...], shape `(n_coeffs)` + + N.B. a_coeffs and b_coeffs should be the exact same length, padding with 0's + may be required + N.B. all tensors must be of float32 type + + Returns: + torch.Tensor: output waveform filtered, shape `(n_channels, n_frames)` + """ + output_waveform = torch.zeros_like(input_waveform) assert input_waveform.dtype == torch.float32 diff --git a/torchaudio/functional_filtering.py b/torchaudio/functional_sox_convenience.py similarity index 100% rename from torchaudio/functional_filtering.py rename to torchaudio/functional_sox_convenience.py From c5534c28d50419d8ead6e4610debea33a4b48b01 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Sun, 15 Sep 2019 23:00:34 -0400 Subject: [PATCH 12/28] Fix documentation per issue https://github.com/pytorch/audio/issues/98 --- torchaudio/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchaudio/__init__.py b/torchaudio/__init__.py index dd89e45d4f..47c84b0fcf 100644 --- a/torchaudio/__init__.py +++ b/torchaudio/__init__.py @@ -30,7 +30,7 @@ def load(filepath, filepath (str or pathlib.Path): Path to audio file out (torch.Tensor, optional): An output tensor to use instead of creating one. (Default: ``None``) normalization (bool, number, or callable, optional): If boolean `True`, then output is divided by `1 << 31` - (assumes signed 32-bit audio), and normalizes to `[0, 1]`. + (assumes signed 32-bit audio), and normalizes to `[-1, 1]`. If `number`, then output is divided by that number If `callable`, then the output is passed as a parameter to the given function, then the output is divided by From ae5de6a57c2d8165371db7b3111fb63bf2159e26 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 14:38:50 -0400 Subject: [PATCH 13/28] Delete sox_convenience, delete convolve wrapper --- test/test_functional_filtering.py | 41 ---- torchaudio/filtering.cpp | 46 +++-- torchaudio/functional.py | 251 +++++++++++++---------- torchaudio/functional_sox_convenience.py | 63 ------ 4 files changed, 166 insertions(+), 235 deletions(-) delete mode 100644 torchaudio/functional_sox_convenience.py diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 36eb824cdb..af63d462a6 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -69,47 +69,6 @@ def test_lfilter(self): assert output_waveform.size(0) == input_waveform.size(0) assert output_waveform.size(1) == input_waveform.size(1) - def test_convolve_basic(self): - - # Create a short signal and filter - # Check results - - input_waveform = torch.tensor( - [[0.0, 1.0, 0.0, 1.0, 0.0, 1.0]], dtype=torch.float32 - ) - filter_impulse_response = torch.tensor([0.33333, 0.33333, 0.33333]) - - output_waveform = F.convolve(input_waveform, filter_impulse_response) - - assert len(output_waveform.size()) == 2 - assert output_waveform.size(0) == input_waveform.size(0) - assert output_waveform.size(1) == ( - input_waveform.size(1) + filter_impulse_response.size(0) - 1 - ) - assert torch.allclose( - output_waveform[0, 0:4], - torch.tensor([0.000, 0.3333, 0.3333, 0.6666]), - atol=1e-4, - ) - - def test_convolve(self): - - # Run a stereo file through convolve, confirm output is of right size - - filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") - input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) - - torch.random.manual_seed(42) - filter_impulse_response = torch.rand(20) - - output_waveform = F.convolve(input_waveform, filter_impulse_response) - - assert len(output_waveform.size()) == 2 - assert output_waveform.size(0) == input_waveform.size(0) - assert output_waveform.size(1) == ( - input_waveform.size(1) + filter_impulse_response.size(0) - 1 - ) - def test_lowpass_sox_compliance(self): """ diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 16aa9b244f..1b45f4e09d 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -1,36 +1,41 @@ #include - -//#include -//#include -//#include -//#include +#ifdef WITH_CUDA +#include +#endif namespace torch { namespace audio { // N.B. only handles floating point right now - void diff_eq( - at::Tensor const & input_waveform, - at::Tensor& output_waveform, + at::Tensor lfilter( + at::Tensor const & waveform, at::Tensor const & a_coeffs, at::Tensor const & b_coeffs ) { // assumes waveform is normalized between 1 and -1 + assert(waveform.dtype == torch::float32); + assert(a_coeffs.size(0) == b_coeffs.size(0)); + int n_order = a_coeffs.size(0); // n'th order - 1 filter - int64_t n_channels = input_waveform.size(0); - int64_t n_frames = input_waveform.size(1); + int64_t n_channels = waveform.size(0); + int64_t n_frames = waveform.size(1); - assert(output_waveform.size(0) == n_channels); - assert(output_waveform.size(1) == n_frames); + // initialize the output tensor + torch::Tensor output_waveform = torch::zeros({n_channels, n_frames}); - auto input_accessor = input_waveform.accessor(); +#ifdef WITH_CUDA + auto input_accessor = waveform.packed_accessor64(); + auto output_accessor = output_waveform.packed_accessor64(); + auto a_coeffs_accessor = a_coeffs.packed_accessor64(); + auto b_coeffs_accessor = b_coeffs.packed_accessor64(); +#endif +#ifndef WITH_CUDA + auto input_accessor = waveform.accessor(); auto output_accessor = output_waveform.accessor(); auto a_coeffs_accessor = a_coeffs.accessor(); auto b_coeffs_accessor = b_coeffs.accessor(); - - int n_order = a_coeffs.size(0); // n'th order - 1 filter - assert(a_coeffs.size(0) == b_coeffs.size(0)); +#endif for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { @@ -67,6 +72,7 @@ namespace audio { } } } + return output_waveform; } }} @@ -74,7 +80,11 @@ namespace audio { PYBIND11_MODULE(_torch_filtering, m) { m.def( - "diff_eq", - &torch::audio::diff_eq, + "lfilter", + &torch::audio::lfilter, "Executes difference equation"); +#ifdef WITH_CUDA + m.attr("CUDA_VERSION") = CUDA_VERSION; +#endif + } diff --git a/torchaudio/functional.py b/torchaudio/functional.py index a3fdb45bcd..4522fdef91 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,46 +1,65 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from torchaudio.functional_sox_convenience import lowpass_biquad, highpass_biquad, biquad -from _torch_filtering import diff_eq as diffeq_cpp +from _torch_filtering import lfilter __all__ = [ - 'istft', - 'spectrogram', - 'amplitude_to_DB', - 'create_fb_matrix', - 'create_dct', - 'mu_law_encoding', - 'mu_law_decoding', - 'complex_norm', - 'angle', - 'magphase', - 'phase_vocoder', - 'lowpass_biquad', - 'highpass_biquad', - 'biquad', - 'lfilter', - 'convolve', + "istft", + "spectrogram", + "amplitude_to_DB", + "create_fb_matrix", + "create_dct", + "mu_law_encoding", + "mu_law_decoding", + "complex_norm", + "angle", + "magphase", + "phase_vocoder", + "lowpass_biquad", + "highpass_biquad", + "biquad", + "lfilter", ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @torch.jit.ignore -def _stft(waveform, n_fft, hop_length, win_length, window, center, pad_mode, normalized, onesided): +def _stft( + waveform, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided, +): # type: (Tensor, int, Optional[int], Optional[int], Optional[Tensor], bool, str, bool, bool) -> Tensor - return torch.stft(waveform, n_fft, hop_length, win_length, window, center, pad_mode, normalized, onesided) - - -def istft(stft_matrix, # type: Tensor - n_fft, # type: int - hop_length=None, # type: Optional[int] - win_length=None, # type: Optional[int] - window=None, # type: Optional[Tensor] - center=True, # type: bool - pad_mode='reflect', # type: str - normalized=False, # type: bool - onesided=True, # type: bool - length=None # type: Optional[int] - ): + return torch.stft( + waveform, + n_fft, + hop_length, + win_length, + window, + center, + pad_mode, + normalized, + onesided, + ) + + +def istft( + stft_matrix, # type: Tensor + n_fft, # type: int + hop_length=None, # type: Optional[int] + win_length=None, # type: Optional[int] + window=None, # type: Optional[Tensor] + center=True, # type: bool + pad_mode="reflect", # type: str + normalized=False, # type: bool + onesided=True, # type: bool + length=None, # type: Optional[int] +): # type: (...) -> Tensor r"""Inverse short time Fourier Transform. This is expected to be the inverse of torch.stft. It has the same parameters (+ additional optional parameter of ``length``) and it should return the @@ -95,7 +114,7 @@ def istft(stft_matrix, # type: Tensor (channel, signal_length) or (signal_length) """ stft_matrix_dim = stft_matrix.dim() - assert 3 <= stft_matrix_dim <= 4, ('Incorrect stft dimension: %d' % (stft_matrix_dim)) + assert 3 <= stft_matrix_dim <= 4, "Incorrect stft dimension: %d" % (stft_matrix_dim) if stft_matrix_dim == 3: # add a channel dimension @@ -104,9 +123,13 @@ def istft(stft_matrix, # type: Tensor dtype = stft_matrix.dtype device = stft_matrix.device fft_size = stft_matrix.size(1) - assert (onesided and n_fft // 2 + 1 == fft_size) or (not onesided and n_fft == fft_size), ( - 'one_sided implies that n_fft // 2 + 1 == fft_size and not one_sided implies n_fft == fft_size. ' + - 'Given values were onesided: %s, n_fft: %d, fft_size: %d' % ('True' if onesided else False, n_fft, fft_size)) + assert (onesided and n_fft // 2 + 1 == fft_size) or ( + not onesided and n_fft == fft_size + ), ( + "one_sided implies that n_fft // 2 + 1 == fft_size and not one_sided implies n_fft == fft_size. " + + "Given values were onesided: %s, n_fft: %d, fft_size: %d" + % ("True" if onesided else False, n_fft, fft_size) + ) # use stft defaults for Optionals if win_length is None: @@ -132,8 +155,9 @@ def istft(stft_matrix, # type: Tensor # win_length and n_fft are synonymous from here on stft_matrix = stft_matrix.transpose(1, 2) # size (channel, n_frames, fft_size, 2) - stft_matrix = torch.irfft(stft_matrix, 1, normalized, - onesided, signal_sizes=(n_fft,)) # size (channel, n_frames, n_fft) + stft_matrix = torch.irfft( + stft_matrix, 1, normalized, onesided, signal_sizes=(n_fft,) + ) # size (channel, n_frames, n_fft) assert stft_matrix.size(2) == n_fft n_frames = stft_matrix.size(1) @@ -142,18 +166,23 @@ def istft(stft_matrix, # type: Tensor # each column of a channel is a frame which needs to be overlap added at the right place ytmp = ytmp.transpose(1, 2) # size (channel, n_fft, n_frames) - eye = torch.eye(n_fft, requires_grad=False, - device=device, dtype=dtype).unsqueeze(1) # size (n_fft, 1, n_fft) + eye = torch.eye(n_fft, requires_grad=False, device=device, dtype=dtype).unsqueeze( + 1 + ) # size (n_fft, 1, n_fft) # this does overlap add where the frames of ytmp are added such that the i'th frame of # ytmp is added starting at i*hop_length in the output y = torch.nn.functional.conv_transpose1d( - ytmp, eye, stride=hop_length, padding=0) # size (channel, 1, expected_signal_len) + ytmp, eye, stride=hop_length, padding=0 + ) # size (channel, 1, expected_signal_len) # do the same for the window function - window_sq = window.pow(2).view(n_fft, 1).repeat((1, n_frames)).unsqueeze(0) # size (1, n_fft, n_frames) + window_sq = ( + window.pow(2).view(n_fft, 1).repeat((1, n_frames)).unsqueeze(0) + ) # size (1, n_fft, n_frames) window_envelop = torch.nn.functional.conv_transpose1d( - window_sq, eye, stride=hop_length, padding=0) # size (1, 1, expected_signal_len) + window_sq, eye, stride=hop_length, padding=0 + ) # size (1, 1, expected_signal_len) expected_signal_len = n_fft + hop_length * (n_frames - 1) assert y.size(2) == expected_signal_len @@ -169,7 +198,9 @@ def istft(stft_matrix, # type: Tensor # check NOLA non-zero overlap condition window_envelop_lowest = window_envelop.abs().min() - assert window_envelop_lowest > 1e-11, ('window overlap add min: %f' % (window_envelop_lowest)) + assert window_envelop_lowest > 1e-11, "window overlap add min: %f" % ( + window_envelop_lowest + ) y = (y / window_envelop).squeeze(1) # size (channel, expected_signal_len) @@ -179,7 +210,9 @@ def istft(stft_matrix, # type: Tensor @torch.jit.script -def spectrogram(waveform, pad, window, n_fft, hop_length, win_length, power, normalized): +def spectrogram( + waveform, pad, window, n_fft, hop_length, win_length, power, normalized +): # type: (Tensor, int, Tensor, int, int, int, int, bool) -> Tensor r"""Create a spectrogram from a raw audio signal. @@ -206,8 +239,9 @@ def spectrogram(waveform, pad, window, n_fft, hop_length, win_length, power, nor waveform = torch.nn.functional.pad(waveform, (pad, pad), "constant") # default values are consistent with librosa.core.spectrum._spectrogram - spec_f = _stft(waveform, n_fft, hop_length, win_length, window, - True, 'reflect', False, True) + spec_f = _stft( + waveform, n_fft, hop_length, win_length, window, True, "reflect", False, True + ) if normalized: spec_f /= window.pow(2).sum().sqrt() @@ -239,8 +273,9 @@ def amplitude_to_DB(x, multiplier, amin, db_multiplier, top_db=None): x_db -= multiplier * db_multiplier if top_db is not None: - new_x_db_max = torch.tensor(float(x_db.max()) - top_db, - dtype=x_db.dtype, device=x_db.device) + new_x_db_max = torch.tensor( + float(x_db.max()) - top_db, dtype=x_db.dtype, device=x_db.device + ) x_db = torch.max(x_db, new_x_db_max) return x_db @@ -268,17 +303,17 @@ def create_fb_matrix(n_freqs, f_min, f_max, n_mels): freqs = torch.linspace(f_min, f_max, n_freqs) # calculate mel freq bins # hertz to mel(f) is 2595. * math.log10(1. + (f / 700.)) - m_min = 0. if f_min == 0 else 2595. * math.log10(1. + (f_min / 700.)) - m_max = 2595. * math.log10(1. + (f_max / 700.)) + m_min = 0.0 if f_min == 0 else 2595.0 * math.log10(1.0 + (f_min / 700.0)) + m_max = 2595.0 * math.log10(1.0 + (f_max / 700.0)) m_pts = torch.linspace(m_min, m_max, n_mels + 2) # mel to hertz(mel) is 700. * (10**(mel / 2595.) - 1.) - f_pts = 700. * (10**(m_pts / 2595.) - 1.) + f_pts = 700.0 * (10 ** (m_pts / 2595.0) - 1.0) # calculate the difference between each mel point and each stft freq point in hertz f_diff = f_pts[1:] - f_pts[:-1] # (n_mels + 1) slopes = f_pts.unsqueeze(0) - freqs.unsqueeze(1) # (n_freqs, n_mels + 2) # create overlapping triangles zero = torch.zeros(1) - down_slopes = (-1. * slopes[:, :-2]) / f_diff[:-1] # (n_freqs, n_mels) + down_slopes = (-1.0 * slopes[:, :-2]) / f_diff[:-1] # (n_freqs, n_mels) up_slopes = slopes[:, 2:] / f_diff[1:] # (n_freqs, n_mels) fb = torch.max(zero, torch.min(down_slopes, up_slopes)) return fb @@ -306,7 +341,7 @@ def create_dct(n_mfcc, n_mels, norm): if norm is None: dct *= 2.0 else: - assert norm == 'ortho' + assert norm == "ortho" dct[0] *= 1.0 / math.sqrt(2.0) dct *= math.sqrt(2.0 / float(n_mels)) return dct.t() @@ -328,12 +363,11 @@ def mu_law_encoding(x, quantization_channels): Returns: torch.Tensor: Input after mu-law encoding """ - mu = quantization_channels - 1. + mu = quantization_channels - 1.0 if not x.is_floating_point(): x = x.to(torch.float) mu = torch.tensor(mu, dtype=x.dtype) - x_mu = torch.sign(x) * torch.log1p(mu * - torch.abs(x)) / torch.log1p(mu) + x_mu = torch.sign(x) * torch.log1p(mu * torch.abs(x)) / torch.log1p(mu) x_mu = ((x_mu + 1) / 2 * mu + 0.5).to(torch.int64) return x_mu @@ -354,12 +388,12 @@ def mu_law_decoding(x_mu, quantization_channels): Returns: torch.Tensor: Input after mu-law decoding """ - mu = quantization_channels - 1. + mu = quantization_channels - 1.0 if not x_mu.is_floating_point(): x_mu = x_mu.to(torch.float) mu = torch.tensor(mu, dtype=x_mu.dtype) - x = ((x_mu) / mu) * 2 - 1. - x = torch.sign(x) * (torch.exp(torch.abs(x) * torch.log1p(mu)) - 1.) / mu + x = ((x_mu) / mu) * 2 - 1.0 + x = torch.sign(x) * (torch.exp(torch.abs(x) * torch.log1p(mu)) - 1.0) / mu return x @@ -390,7 +424,7 @@ def angle(complex_tensor): return torch.atan2(complex_tensor[..., 1], complex_tensor[..., 0]) -def magphase(complex_tensor, power=1.): +def magphase(complex_tensor, power=1.0): r"""Separate a complex-valued spectrogram with shape `(*, 2)` into its magnitude and phase. Args: @@ -433,13 +467,15 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): ndim = complex_specgrams.dim() time_slice = [slice(None)] * (ndim - 2) - time_steps = torch.arange(0, - complex_specgrams.size(-2), - rate, - device=complex_specgrams.device, - dtype=complex_specgrams.dtype) + time_steps = torch.arange( + 0, + complex_specgrams.size(-2), + rate, + device=complex_specgrams.device, + dtype=complex_specgrams.dtype, + ) - alphas = time_steps % 1. + alphas = time_steps % 1.0 phase_0 = angle(complex_specgrams[time_slice + [slice(1)]]) # Time Padding @@ -473,61 +509,50 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch -def convolve(input_waveform, impulse_response): - r"""Evaluate 1D convolution of impulse response on input waveform by channel - Thin wrapper around torch.nn.functional.conv_transpose1d +def biquad(waveform, b0, b1, b2, a0, a1, a2): - Args: - input_waveform (torch.Tensor): Tensor shape of `(n_channels, n_frames)` - impulse_response (torch.Tensor): Tensor shape of `(n_response_length)` + assert waveform.dtype == torch.float32 - Returns: - torch.Tensor: output waveform filtered, shape `(n_channels, n_frames + n_response_length - 1)` - """ + output_waveform = lfilter( + waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) + ) + return output_waveform - n_channels, n_frames = input_waveform.size() - # Perform convolution for each channel - assert input_waveform.dtype == torch.float32 - assert impulse_response.dtype == torch.float32 +def _dB2Linear(x): - # N.B. - can we do all channels at once? - channel_output_waveforms = [] - for i_channel in range(n_channels): - channel_output_waveforms.append( + return math.exp(x * math.log(10) / 20.0) - # torch nn conv requires 3D tensor - torch.nn.functional.conv_transpose1d( - input_waveform[i_channel, :].unsqueeze(0).unsqueeze(0), - impulse_response.unsqueeze(0).unsqueeze(0), - ).squeeze(0).squeeze(0) - ) - return torch.stack(channel_output_waveforms) +def highpass_biquad(waveform, sr, cutoff_freq, Q=0.707): + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sr + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) -def lfilter(input_waveform, a_coeffs, b_coeffs): - r"""Evaluate a difference equation on an input waveform - of form a0 * y[n] = b0 * x[n] + b1 * x[n-1] + ... - a1 * y[n-1] - a2 * y[n-2] .... - All initial inputs / outputs are zero + b0 = (1 + math.cos(w0)) / 2 + b1 = -1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) - Args: - input_waveform (torch.Tensor): Tensor shape of `(n_channels, n_frames)` - a_coeffs (torch.Tensor): difference equation denominator coefficients ordered - by time delay, e.g. [a0, a1, a2, ...], shape `(n_coeffs)` - b_coeffs (torch.Tensor): difference equation numerator coefficients ordered - by time delay, e.g. [b0, b1, b2, ...], shape `(n_coeffs)` - N.B. a_coeffs and b_coeffs should be the exact same length, padding with 0's - may be required - N.B. all tensors must be of float32 type +def lowpass_biquad(waveform, sr, cutoff_freq, Q=0.707): - Returns: - torch.Tensor: output waveform filtered, shape `(n_channels, n_frames)` - """ + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sr + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) - output_waveform = torch.zeros_like(input_waveform) - assert input_waveform.dtype == torch.float32 - - diffeq_cpp(input_waveform, output_waveform, a_coeffs, b_coeffs) - return output_waveform + b0 = (1 - math.cos(w0)) / 2 + b1 = 1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) diff --git a/torchaudio/functional_sox_convenience.py b/torchaudio/functional_sox_convenience.py deleted file mode 100644 index 412e2e17b1..0000000000 --- a/torchaudio/functional_sox_convenience.py +++ /dev/null @@ -1,63 +0,0 @@ -from __future__ import absolute_import, division, print_function, unicode_literals -import math -import torch -import torchaudio -from _torch_filtering import diff_eq as diffeq_cpp - -__all__ = ["lowpass_biquad", "highpass_biquad", "biquad"] - - -def biquad(input_waveform, b0, b1, b2, a0, a1, a2): - output_waveform = torch.zeros_like(input_waveform) - assert input_waveform.dtype == torch.float32 - - diffeq_cpp( - input_waveform, - output_waveform, - torch.tensor([a0, a1, a2]), - torch.tensor([b0, b1, b2]), - ) - return output_waveform - - -def _dB2Linear(x): - - return math.exp(x * math.log(10) / 20.0) - - -def highpass_biquad(input_waveform, sr, cutoff_freq, Q=0.707): - - GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sr - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 + math.cos(w0)) / 2 - b1 = -1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(input_waveform, b0, b1, b2, a0, a1, a2) - - -def lowpass_biquad(input_waveform, sr, cutoff_freq, Q=0.707): - - GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sr - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 - math.cos(w0)) / 2 - b1 = 1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(input_waveform, b0, b1, b2, a0, a1, a2) - - -if __name__ == "__main__": - pass From ebf3d9e4c951a8a89c77b0fddab2f34604bcec78 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 14:47:48 -0400 Subject: [PATCH 14/28] Unwind other issue to separate PR, clean up --- test/test_functional_filtering.py | 28 ++++++++++++++-------------- torchaudio/__init__.py | 2 +- torchaudio/filtering.cpp | 2 +- torchaudio/functional.py | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index af63d462a6..4c22cf1548 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -13,20 +13,20 @@ class TestFunctionalFiltering(unittest.TestCase): test_dirpath, test_dir = common_utils.create_temp_assets_dir() def test_lfilter_basic(self): - """l + """ Create a very basic signal, Then make a simple 4th order delay The output should be same as the input but shifted """ torch.random.manual_seed(42) - input_waveform = torch.rand(2, 1000) + waveform = torch.rand(2, 1000) b_coeffs = torch.tensor([0, 0, 0, 1], dtype=torch.float32) a_coeffs = torch.tensor([1, 0, 0, 0], dtype=torch.float32) - output_waveform = F.lfilter(input_waveform, a_coeffs, b_coeffs) + output_waveform = F.lfilter(waveform, a_coeffs, b_coeffs) assert torch.allclose( - input_waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 + waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 ) def test_lfilter(self): @@ -63,11 +63,11 @@ def test_lfilter(self): ) filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") - input_waveform, sample_rate = torchaudio.load(filepath, normalization=True) - output_waveform = F.lfilter(input_waveform, a_coeffs, b_coeffs) + waveform, sample_rate = torchaudio.load(filepath, normalization=True) + output_waveform = F.lfilter(waveform, a_coeffs, b_coeffs) assert len(output_waveform.size()) == 2 - assert output_waveform.size(0) == input_waveform.size(0) - assert output_waveform.size(1) == input_waveform.size(1) + assert output_waveform.size(0) == waveform.size(0) + assert output_waveform.size(1) == waveform.size(1) def test_lowpass_sox_compliance(self): @@ -86,10 +86,10 @@ def test_lowpass_sox_compliance(self): E.append_effect_to_chain("lowpass", [CUTOFF_FREQ]) sox_output_waveform, sr = E.sox_build_flow_effects() - input_waveform, sample_rate = torchaudio.load( + waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = F.lowpass_biquad(input_waveform, sample_rate, CUTOFF_FREQ) + output_waveform = F.lowpass_biquad(waveform, sample_rate, CUTOFF_FREQ) assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-4) @@ -109,10 +109,10 @@ def test_highpass_sox_compliance(self): E.append_effect_to_chain("highpass", [CUTOFF_FREQ]) sox_output_waveform, sr = E.sox_build_flow_effects() - input_waveform, sample_rate = torchaudio.load( + waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = F.highpass_biquad(input_waveform, sample_rate, CUTOFF_FREQ) + output_waveform = F.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) # TBD - this fails at the 1e-4 level, debug why assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) @@ -145,9 +145,9 @@ def test_perf_biquad_filtering(self): # C++ Diff Eq Filter _timing_cpp_filtering = time.time() - input_waveform, sample_rate = torchaudio.load(fn_sine, normalization=True) + waveform, sample_rate = torchaudio.load(fn_sine, normalization=True) waveform_diff_eq_out = F.lfilter( - input_waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) + waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) ) _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering diff --git a/torchaudio/__init__.py b/torchaudio/__init__.py index 542b5afc6d..138c2b7458 100644 --- a/torchaudio/__init__.py +++ b/torchaudio/__init__.py @@ -34,7 +34,7 @@ def load(filepath, filepath (str or pathlib.Path): Path to audio file out (torch.Tensor, optional): An output tensor to use instead of creating one. (Default: ``None``) normalization (bool, number, or callable, optional): If boolean `True`, then output is divided by `1 << 31` - (assumes signed 32-bit audio), and normalizes to `[-1, 1]`. + (assumes signed 32-bit audio), and normalizes to `[0, 1]`. If `number`, then output is divided by that number If `callable`, then the output is passed as a parameter to the given function, then the output is divided by diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 1b45f4e09d..8521398363 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -6,7 +6,7 @@ namespace torch { namespace audio { - // N.B. only handles floating point right now + // N.B. TBD - Test with CUDA at::Tensor lfilter( at::Tensor const & waveform, at::Tensor const & a_coeffs, diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 4522fdef91..76a549a5d0 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -511,7 +511,7 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): def biquad(waveform, b0, b1, b2, a0, a1, a2): - assert waveform.dtype == torch.float32 + assert(waveform.dtype == torch.float32) output_waveform = lfilter( waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) From 361a2262a9e5d0aa4e7befdee4649a669801d4c4 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 14:56:06 -0400 Subject: [PATCH 15/28] Follow naming convention for sample rate in functional --- torchaudio/functional.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 76a549a5d0..8e2790156d 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -524,10 +524,10 @@ def _dB2Linear(x): return math.exp(x * math.log(10) / 20.0) -def highpass_biquad(waveform, sr, cutoff_freq, Q=0.707): +def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sr + w0 = 2 * math.pi * cutoff_freq / sample_rate A = math.exp(GAIN / 40.0 * math.log(10)) alpha = math.sin(w0) / 2 / Q mult = _dB2Linear(max(GAIN, 0)) @@ -541,10 +541,10 @@ def highpass_biquad(waveform, sr, cutoff_freq, Q=0.707): return biquad(waveform, b0, b1, b2, a0, a1, a2) -def lowpass_biquad(waveform, sr, cutoff_freq, Q=0.707): +def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sr + w0 = 2 * math.pi * cutoff_freq / sample_rate A = math.exp(GAIN / 40.0 * math.log(10)) alpha = math.sin(w0) / 2 / Q mult = _dB2Linear(max(GAIN, 0)) From 288aedcd026c7ec065b88965f0f264ec0ea403e9 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 15:39:35 -0400 Subject: [PATCH 16/28] use memset instead of implicit initialization --- torchaudio/filtering.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 8521398363..9d811d3124 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -41,8 +41,9 @@ namespace audio { // allocate a temporary data structure of size 2 x (n_order + 1) // set to 0 because initial conditions are 0 - float i_s[n_order]= { }; - float o_s[n_order]= { }; + float i_s[n_order], o_s[n_order]; + memset( i_s, 0, n_order*sizeof(float) ); + memset( o_s, 0, n_order*sizeof(float) ); for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { From 4115a1436f2672bf7e0843342cf783097341fdca Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 17:09:42 -0400 Subject: [PATCH 17/28] fix failing vctk manifest test to account for adding more test audios into assets --- test/test_datasets_vctk.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/test_datasets_vctk.py b/test/test_datasets_vctk.py index 4d3477c338..d650225fe0 100644 --- a/test/test_datasets_vctk.py +++ b/test/test_datasets_vctk.py @@ -23,10 +23,13 @@ def test_is_audio_file(self): def test_make_manifest(self): audios = vctk.make_manifest(self.test_dirpath) files = ['kaldi_file.wav', 'kaldi_file_8000.wav', - 'sinewave.wav', 'steam-train-whistle-daniel_simon.mp3'] + 'sinewave.wav', 'steam-train-whistle-daniel_simon.mp3', + 'dtmf_30s_stereo.mp3', 'whitenoise_1min.mp3', 'whitenoise.mp3'] files = [self.get_full_path(file) for file in files] + files.sort() audios.sort() + self.assertEqual(files, audios, msg='files %s did not match audios %s' % (files, audios)) def test_read_audio_downsample_false(self): From 5469c4d75c54b393e7cb56016a62adf208ed98b4 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Mon, 16 Sep 2019 22:33:34 -0400 Subject: [PATCH 18/28] Trying out a tensor slicing based approach --- test/test_functional_filtering.py | 25 ++++++++++- torchaudio/filtering.cpp | 71 +++++++++++++++++++++++++++++-- torchaudio/functional.py | 2 +- 3 files changed, 93 insertions(+), 5 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 4c22cf1548..6abfaf2d4a 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -20,7 +20,7 @@ def test_lfilter_basic(self): """ torch.random.manual_seed(42) - waveform = torch.rand(2, 1000) + waveform = torch.rand(2, 10000) b_coeffs = torch.tensor([0, 0, 0, 1], dtype=torch.float32) a_coeffs = torch.tensor([1, 0, 0, 0], dtype=torch.float32) output_waveform = F.lfilter(waveform, a_coeffs, b_coeffs) @@ -28,6 +28,28 @@ def test_lfilter_basic(self): assert torch.allclose( waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 ) + + def test_lfilter_loop_vs_tensor(self): + + torch.random.manual_seed(42) + waveform = torch.rand(2, 100000) + b_coeffs = torch.tensor([0.3, 0.4, 0, 1], dtype=torch.float32) + a_coeffs = torch.tensor([1, 0.2, 0.2, 0], dtype=torch.float32) + import time + tensor_time_start = time.time() + output_waveform1 = F.lfilter_tensor(waveform, a_coeffs, b_coeffs) + tensor_time_taken = time.time() - tensor_time_start + loop_time_start = time.time() + output_waveform2 = F.lfilter(waveform, a_coeffs, b_coeffs) + loop_time_taken = time.time() - loop_time_start + + print("\n") + print("Looped Implementation took: ", loop_time_taken) + print("Tensor Implementation took: ", tensor_time_taken) + + assert torch.allclose( + output_waveform1, output_waveform2, atol=1e-5 + ) def test_lfilter(self): """ @@ -113,6 +135,7 @@ def test_highpass_sox_compliance(self): noise_filepath, normalization=True ) output_waveform = F.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) + # TBD - this fails at the 1e-4 level, debug why assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 9d811d3124..7d858d4170 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -6,6 +6,67 @@ namespace torch { namespace audio { +at::Tensor lfilter_tensor( + at::Tensor const & waveform, + at::Tensor const & a_coeffs, + at::Tensor const & b_coeffs + ) { + + // assumes waveform is normalized between 1 and -1 + assert(waveform.dtype == torch::float32); + assert(a_coeffs.size(0) == b_coeffs.size(0)); + int n_order = a_coeffs.size(0); // n'th order - 1 filter + assert(n_order > 0); + + int64_t n_channels = waveform.size(0); + int64_t n_frames = waveform.size(1); + + // Allocate padded input and output waveform, copy in the input waveform + at::Tensor padded_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); + at::Tensor padded_output_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); + padded_waveform.slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1) = waveform; + + // Create [n_channels, n_order] structure for a and b coefficients + at::Tensor a_coeffs_filled = a_coeffs.repeat({n_channels, 1}); + at::Tensor b_coeffs_filled = b_coeffs.repeat({n_channels, 1}); + + // few more temporary data structure + at::Tensor o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); + at::Tensor ones = torch::ones({n_channels, n_frames + n_order - 1}); + at::Tensor negones = torch::ones({n_channels, n_frames + n_order -1 }) * -1; + + for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { + + // calculate the output at time i_frame + // initialize it! + o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); + + for (int i_offset = 0; i_offset < n_order; ++i_offset) { + + at::Tensor const & input_time_offset = padded_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1 - i_offset, i_frame + n_order - 1 - i_offset + 1); + at::Tensor const & output_time_offset = padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1 - i_offset, i_frame+ n_order - 1 - i_offset + 1); + at::Tensor const & a_coeffs_offset = a_coeffs_filled.slice(0, 0, n_channels).slice(1, i_offset, i_offset + 1); + at::Tensor const & b_coeffs_offset = b_coeffs_filled.slice(0, 0, n_channels).slice(1, i_offset, i_offset + 1); + + // Multiply by the coefficients + o0 = torch::addcmul(o0, input_time_offset, b_coeffs_offset, 1); + if (i_offset != n_order - 1) { + o0 = torch::addcmul(o0, output_time_offset, a_coeffs_offset, -1); + } + } + // normalize by a0 + o0 = torch::div(o0, a_coeffs_filled.slice(0, 0, n_channels).slice(1, 0, 1)); + + // Set the output + padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1, i_frame + n_order - 1 + 1) = o0; + + } + + // return clipped, and without initial conditions + return torch::min(ones, torch::max(negones, padded_output_waveform)).slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1); + } + + // N.B. TBD - Test with CUDA at::Tensor lfilter( at::Tensor const & waveform, @@ -44,7 +105,7 @@ namespace audio { float i_s[n_order], o_s[n_order]; memset( i_s, 0, n_order*sizeof(float) ); memset( o_s, 0, n_order*sizeof(float) ); - + for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { // calculate the output at time i_frame by iterating through @@ -65,7 +126,7 @@ namespace audio { if (o0 > 1) o0 = 1; if (o0 < -1) o0 = -1; output_accessor[i_channel][i_frame] = o0; - + // shift everything over by one time step for (int i = 0; i < (n_order - 1); ++i) { i_s[i] = i_s[i+1]; @@ -80,10 +141,14 @@ namespace audio { PYBIND11_MODULE(_torch_filtering, m) { + m.def( + "lfilter_tensor", + &torch::audio::lfilter_tensor, + "Executes difference equation with tensor"); m.def( "lfilter", &torch::audio::lfilter, - "Executes difference equation"); + "Executes difference equation"); #ifdef WITH_CUDA m.attr("CUDA_VERSION") = CUDA_VERSION; #endif diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 8e2790156d..faa79a8a90 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from _torch_filtering import lfilter +from _torch_filtering import lfilter, lfilter_tensor __all__ = [ "istft", From 59cb5ce1ec45d169a552d4736912c664f93d7d48 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 08:38:36 -0400 Subject: [PATCH 19/28] Adding documentation for lfilter, biquad, highpass_biquad, lowpass_biquad --- docs/source/functional.rst | 20 ++++++++++++++++++ torchaudio/filtering.cpp | 16 +++++++++++++- torchaudio/functional.py | 43 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/docs/source/functional.rst b/docs/source/functional.rst index a8d57bb36c..817f3e9cd8 100644 --- a/docs/source/functional.rst +++ b/docs/source/functional.rst @@ -62,3 +62,23 @@ Functions to perform common audio operations. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: phase_vocoder + +:hidden:`lfilter` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: lfilter + +:hidden:`biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: biquad + +:hidden:`highpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: highpass_biquad + +:hidden:`lowpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: lowpass_biquad diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index 7d858d4170..d44225f3ba 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -141,6 +141,8 @@ at::Tensor lfilter_tensor( PYBIND11_MODULE(_torch_filtering, m) { + py::options options; + options.disable_function_signatures(); m.def( "lfilter_tensor", &torch::audio::lfilter_tensor, @@ -148,7 +150,19 @@ PYBIND11_MODULE(_torch_filtering, m) { m.def( "lfilter", &torch::audio::lfilter, - "Executes difference equation"); + R"mydelimiter(lfilter(waveform, a_coeffs, b_coeffs) + + Performs an IIR filter by evaluating difference equation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + a_coeffs (torch.Tensor): denominator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[a0, a1, a2, ...]`. Must be same size as b_coeffs (pad with 0's as necessary). + b_coeffs (torch.Tensor): numerator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[b0, b1, b2, ...]`. Must be same size as a_coeffs (pad with 0's as necessary). + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + + )mydelimiter"); #ifdef WITH_CUDA m.attr("CUDA_VERSION") = CUDA_VERSION; #endif diff --git a/torchaudio/functional.py b/torchaudio/functional.py index faa79a8a90..44af24bf04 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -510,6 +510,22 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): def biquad(waveform, b0, b1, b2, a0, a1, a2): + # type: (Tensor, float, float, float, float, float, float) -> Tensor + r"""Performs a biquad filter of input tensor. Initial conditions set to 0. + https://en.wikipedia.org/wiki/Digital_biquad_filter + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + b0 (float): numerator coefficient of current input, x[n] + b1 (float): numerator coefficient of input one time step ago x[n-1] + b2 (float): numerator coefficient of input two time steps ago x[n-2] + a0 (float): denominator coefficient of current output y[n], typically 1 + a1 (float): denominator coefficient of current output y[n-1] + a2 (float): denominator coefficient of current output y[n-2] + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ assert(waveform.dtype == torch.float32) @@ -520,13 +536,24 @@ def biquad(waveform, b0, b1, b2, a0, a1, a2): def _dB2Linear(x): - return math.exp(x * math.log(10) / 20.0) def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad highpass filter and performs filtering. Similar to SoX implementation. - GAIN = 1 + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + GAIN = 1 # TBD - add as a parameter w0 = 2 * math.pi * cutoff_freq / sample_rate A = math.exp(GAIN / 40.0 * math.log(10)) alpha = math.sin(w0) / 2 / Q @@ -542,6 +569,18 @@ def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad lowpass filter and performs filtering. Similar to SoX implementation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ GAIN = 1 w0 = 2 * math.pi * cutoff_freq / sample_rate From 388a0c03898ce07e5d7e529d191a0495c285dc19 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 11:35:58 -0400 Subject: [PATCH 20/28] added matrix based implementation of lfilter --- test/test_functional_filtering.py | 25 ++++++++---- torchaudio/filtering.cpp | 63 +++++++++++++++++++++++++++++++ torchaudio/functional.py | 4 +- 3 files changed, 82 insertions(+), 10 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 6abfaf2d4a..4fe57fce74 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -28,28 +28,38 @@ def test_lfilter_basic(self): assert torch.allclose( waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 ) - + def test_lfilter_loop_vs_tensor(self): - + torch.random.manual_seed(42) waveform = torch.rand(2, 100000) - b_coeffs = torch.tensor([0.3, 0.4, 0, 1], dtype=torch.float32) - a_coeffs = torch.tensor([1, 0.2, 0.2, 0], dtype=torch.float32) + b_coeffs = torch.tensor([0, 0.1, 0.1, 1], dtype=torch.float32) + a_coeffs = torch.tensor([1, 0.2, 0, 0], dtype=torch.float32) import time + tensor_time_start = time.time() output_waveform1 = F.lfilter_tensor(waveform, a_coeffs, b_coeffs) tensor_time_taken = time.time() - tensor_time_start + loop_time_start = time.time() output_waveform2 = F.lfilter(waveform, a_coeffs, b_coeffs) loop_time_taken = time.time() - loop_time_start + tensor_matrix_time_start = time.time() + output_waveform3 = F.lfilter_tensor_matrix(waveform, a_coeffs, b_coeffs) + tensor_matrix_time_taken = time.time() - tensor_matrix_time_start + print("\n") - print("Looped Implementation took: ", loop_time_taken) - print("Tensor Implementation took: ", tensor_time_taken) + print("Looped Implementation took : ", loop_time_taken) + print("Tensor Implementation took : ", tensor_time_taken) + print("Tensor Matrix Implementation took: ", tensor_matrix_time_taken) assert torch.allclose( output_waveform1, output_waveform2, atol=1e-5 - ) + ) + assert torch.allclose( + output_waveform1, output_waveform3, atol=1e-5 + ) def test_lfilter(self): """ @@ -135,7 +145,6 @@ def test_highpass_sox_compliance(self): noise_filepath, normalization=True ) output_waveform = F.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) - # TBD - this fails at the 1e-4 level, debug why assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index d44225f3ba..ef04a57b46 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -6,6 +6,65 @@ namespace torch { namespace audio { + +at::Tensor lfilter_tensor_matrix( + at::Tensor const & waveform, + at::Tensor const & a_coeffs, + at::Tensor const & b_coeffs + ) { + + // assumes waveform is normalized between 1 and -1 + assert(waveform.dtype == torch::float32); + assert(a_coeffs.size(0) == b_coeffs.size(0)); + int n_order = a_coeffs.size(0); // n'th order - 1 filter + assert(n_order > 0); + + int64_t n_channels = waveform.size(0); + int64_t n_frames = waveform.size(1); + + // Allocate padded input and output waveform, copy in the input waveform + at::Tensor padded_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); + at::Tensor padded_output_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); + padded_waveform.slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1) = waveform; + + // Create [n_order, n_channels] structure for a and b coefficients + at::Tensor a_coeffs_filled = at::transpose(at::flip(a_coeffs, {0,}).repeat({n_channels, 1}), 0, 1); + at::Tensor b_coeffs_filled = at::transpose(at::flip(b_coeffs, {0,}).repeat({n_channels, 1}), 0, 1); + + // few more temporary data structure + at::Tensor o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); + at::Tensor ones = torch::ones({n_channels, n_frames + n_order - 1}); + at::Tensor negones = torch::ones({n_channels, n_frames + n_order -1 }) * -1; + at::Tensor normalization_a0 = torch::unsqueeze(a_coeffs[0], {0,}).repeat({n_channels, 1}); + + + for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { + + // calculate the output at time i_frame for all channels + o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); + + // time window of input and output, size [n_channels, n_order] + at::Tensor const & input_window = padded_waveform.slice(0, 0, n_channels).slice(1, i_frame, i_frame + n_order); + at::Tensor const & output_window = padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame, i_frame+ n_order); + + // matrix multiply to get [n_channels x n_channels], extract diagonal and unsqueeze to get [n_channels, 1] result for a frame + at::Tensor inp_result = torch::unsqueeze(torch::diag(torch::mm(input_window, b_coeffs_filled)), 1); + at::Tensor out_result = torch::unsqueeze(torch::diag(torch::mm(output_window, a_coeffs_filled)), 1); + + o0.add_(inp_result); + o0.sub_(out_result); + + // normalize by a0 + o0.div_(normalization_a0); + + // Set the output + padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1, i_frame + n_order - 1 + 1) = o0; + + } + // return clipped, and without initial conditions + return torch::min(ones, torch::max(negones, padded_output_waveform)).slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1); + } + at::Tensor lfilter_tensor( at::Tensor const & waveform, at::Tensor const & a_coeffs, @@ -147,6 +206,10 @@ PYBIND11_MODULE(_torch_filtering, m) { "lfilter_tensor", &torch::audio::lfilter_tensor, "Executes difference equation with tensor"); + m.def( + "lfilter_tensor_matrix", + &torch::audio::lfilter_tensor_matrix, + "Executes difference equation with tensor"); m.def( "lfilter", &torch::audio::lfilter, diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 44af24bf04..5a79f97dcf 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from _torch_filtering import lfilter, lfilter_tensor +from _torch_filtering import lfilter, lfilter_tensor, lfilter_tensor_matrix __all__ = [ "istft", @@ -553,7 +553,7 @@ def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` """ - GAIN = 1 # TBD - add as a parameter + GAIN = 1 # TBD - add as a parameter w0 = 2 * math.pi * cutoff_freq / sample_rate A = math.exp(GAIN / 40.0 * math.log(10)) alpha = math.sin(w0) / 2 / Q From 98b9ec1864be95686362c215452980938111efde Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 15:43:21 -0400 Subject: [PATCH 21/28] adding python lfilter implementation --- test/test_functional_filtering.py | 21 ++++++++--- torchaudio/filtering.cpp | 4 +- torchaudio/functional.py | 61 +++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 7 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 4fe57fce74..e48e2d2f27 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -29,10 +29,13 @@ def test_lfilter_basic(self): waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 ) - def test_lfilter_loop_vs_tensor(self): + def test_lfilter_multiple_implementations(self): + + # Run all implementations of lfilter + # Test that they are the same as each other torch.random.manual_seed(42) - waveform = torch.rand(2, 100000) + waveform = torch.rand(2, 44100 * 5) b_coeffs = torch.tensor([0, 0.1, 0.1, 1], dtype=torch.float32) a_coeffs = torch.tensor([1, 0.2, 0, 0], dtype=torch.float32) import time @@ -49,10 +52,15 @@ def test_lfilter_loop_vs_tensor(self): output_waveform3 = F.lfilter_tensor_matrix(waveform, a_coeffs, b_coeffs) tensor_matrix_time_taken = time.time() - tensor_matrix_time_start + python_time_start = time.time() + output_waveform4 = F.lfilter_python(waveform, a_coeffs, b_coeffs) + python_time_taken = time.time() - python_time_start + print("\n") - print("Looped Implementation took : ", loop_time_taken) - print("Tensor Implementation took : ", tensor_time_taken) - print("Tensor Matrix Implementation took: ", tensor_matrix_time_taken) + print("Element Wise Implementation took : ", loop_time_taken) + print("Tensor Implementation took : ", tensor_time_taken) + print("Tensor Matrix Implementation took : ", tensor_matrix_time_taken) + print("Python Implementation took : ", python_time_taken) assert torch.allclose( output_waveform1, output_waveform2, atol=1e-5 @@ -60,6 +68,9 @@ def test_lfilter_loop_vs_tensor(self): assert torch.allclose( output_waveform1, output_waveform3, atol=1e-5 ) + assert torch.allclose( + output_waveform1, output_waveform4, atol=1e-5 + ) def test_lfilter(self): """ diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp index ef04a57b46..b17fb09eb1 100644 --- a/torchaudio/filtering.cpp +++ b/torchaudio/filtering.cpp @@ -218,12 +218,12 @@ PYBIND11_MODULE(_torch_filtering, m) { Performs an IIR filter by evaluating difference equation. Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)`. Must be normalized to -1 to 1. a_coeffs (torch.Tensor): denominator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[a0, a1, a2, ...]`. Must be same size as b_coeffs (pad with 0's as necessary). b_coeffs (torch.Tensor): numerator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[b0, b1, b2, ...]`. Must be same size as a_coeffs (pad with 0's as necessary). Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` Output will be clipped to -1 to 1. )mydelimiter"); #ifdef WITH_CUDA diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 5a79f97dcf..0361f6aaeb 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -19,6 +19,9 @@ "highpass_biquad", "biquad", "lfilter", + "lfilter_tensor", + "lfilter_tensor_matrix", + "lfilter_python", ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @@ -595,3 +598,61 @@ def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): a1 = -2 * math.cos(w0) a2 = 1 - alpha return biquad(waveform, b0, b1, b2, a0, a1, a2) + + +def lfilter_python(waveform, a_coeffs, b_coeffs): + # type: (Tensor, Tensor, Tensor) -> Tensor + r""" + Performs an IIR filter by evaluating difference equation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)`. Must be normalized to -1 to 1. + a_coeffs (torch.Tensor): denominator coefficients of difference equation of dimension of `(n_order + 1)`. + Lower delays coefficients are first, e.g. `[a0, a1, a2, ...]`. + Must be same size as b_coeffs (pad with 0's as necessary). + b_coeffs (torch.Tensor): numerator coefficients of difference equation of dimension of `(n_order + 1)`. + Lower delays coefficients are first, e.g. `[b0, b1, b2, ...]`. + Must be same size as a_coeffs (pad with 0's as necessary). + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)`. Output will be clipped to -1 to 1. + + """ + + assert(waveform.dtype == torch.float32) + assert(a_coeffs.size(0) == b_coeffs.size(0)) + assert(len(waveform.size()) == 2) + + n_channels, n_frames = waveform.size() + n_order = a_coeffs.size(0) + assert(n_order > 0) + + # Pad the input and create output + padded_waveform = torch.zeros(n_channels, n_frames + n_order - 1) + padded_waveform[:, 3:] = waveform + padded_output_waveform = torch.zeros(n_channels, n_frames + n_order - 1) + + # Set up the coefficients matrix + # Flip order, repeat, and transpose + a_coeffs_filled = a_coeffs.flip(0).repeat(n_channels, 1).t() + b_coeffs_filled = b_coeffs.flip(0).repeat(n_channels, 1).t() + + # Set up a few other utilities + a0_repeated = torch.ones(n_channels) * a_coeffs[0] + ones = torch.ones(n_channels, n_frames) + + for i_frame in range(n_frames): + + o0 = torch.zeros(n_channels) + + windowed_input_signal = padded_waveform[:, i_frame:(i_frame + n_order)] + windowed_output_signal = padded_output_waveform[:, i_frame:(i_frame + n_order)] + + o0.add_(torch.diag(torch.mm(windowed_input_signal, b_coeffs_filled))) + o0.sub_(torch.diag(torch.mm(windowed_output_signal, a_coeffs_filled))) + + o0.div_(a0_repeated) + + padded_output_waveform[:, i_frame + n_order - 1] = o0 + + return torch.min(ones, torch.max(ones * -1, padded_output_waveform[:, 3:])) From f4c84c86719a6ce9b159c6e7cee6750dc482fee1 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 17:34:50 -0400 Subject: [PATCH 22/28] Unwind cpp implementations for a separate PR --- setup.py | 8 - test/test_functional_filtering.py | 53 +------ torchaudio/filtering.cpp | 233 ------------------------------ torchaudio/filtering.h | 21 --- torchaudio/functional.py | 10 +- 5 files changed, 8 insertions(+), 317 deletions(-) delete mode 100644 torchaudio/filtering.cpp delete mode 100644 torchaudio/filtering.h diff --git a/setup.py b/setup.py index 4822a6e9d0..9ed91f2468 100644 --- a/setup.py +++ b/setup.py @@ -113,14 +113,6 @@ def check_env_flag(name, default=''): extra_compile_args=eca, extra_objects=extra_objects, extra_link_args=ela), - CppExtension( - '_torch_filtering', - ['torchaudio/filtering.cpp'], - libraries=libraries, - include_dirs=include_dirs, - extra_compile_args=eca, - extra_objects=extra_objects, - extra_link_args=ela), ], cmdclass={'build_ext': BuildExtension}, install_requires=[pytorch_package_dep] diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index e48e2d2f27..4d2e8da839 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -20,7 +20,7 @@ def test_lfilter_basic(self): """ torch.random.manual_seed(42) - waveform = torch.rand(2, 10000) + waveform = torch.rand(2, 44100 * 10) b_coeffs = torch.tensor([0, 0, 0, 1], dtype=torch.float32) a_coeffs = torch.tensor([1, 0, 0, 0], dtype=torch.float32) output_waveform = F.lfilter(waveform, a_coeffs, b_coeffs) @@ -29,49 +29,6 @@ def test_lfilter_basic(self): waveform[:, 0:-3], output_waveform[:, 3:], atol=1e-5 ) - def test_lfilter_multiple_implementations(self): - - # Run all implementations of lfilter - # Test that they are the same as each other - - torch.random.manual_seed(42) - waveform = torch.rand(2, 44100 * 5) - b_coeffs = torch.tensor([0, 0.1, 0.1, 1], dtype=torch.float32) - a_coeffs = torch.tensor([1, 0.2, 0, 0], dtype=torch.float32) - import time - - tensor_time_start = time.time() - output_waveform1 = F.lfilter_tensor(waveform, a_coeffs, b_coeffs) - tensor_time_taken = time.time() - tensor_time_start - - loop_time_start = time.time() - output_waveform2 = F.lfilter(waveform, a_coeffs, b_coeffs) - loop_time_taken = time.time() - loop_time_start - - tensor_matrix_time_start = time.time() - output_waveform3 = F.lfilter_tensor_matrix(waveform, a_coeffs, b_coeffs) - tensor_matrix_time_taken = time.time() - tensor_matrix_time_start - - python_time_start = time.time() - output_waveform4 = F.lfilter_python(waveform, a_coeffs, b_coeffs) - python_time_taken = time.time() - python_time_start - - print("\n") - print("Element Wise Implementation took : ", loop_time_taken) - print("Tensor Implementation took : ", tensor_time_taken) - print("Tensor Matrix Implementation took : ", tensor_matrix_time_taken) - print("Python Implementation took : ", python_time_taken) - - assert torch.allclose( - output_waveform1, output_waveform2, atol=1e-5 - ) - assert torch.allclose( - output_waveform1, output_waveform3, atol=1e-5 - ) - assert torch.allclose( - output_waveform1, output_waveform4, atol=1e-5 - ) - def test_lfilter(self): """ Design an IIR lowpass filter using scipy.signal filter design @@ -105,7 +62,7 @@ def test_lfilter(self): ] ) - filepath = os.path.join(self.test_dirpath, "assets", "dtmf_30s_stereo.mp3") + filepath = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") waveform, sample_rate = torchaudio.load(filepath, normalization=True) output_waveform = F.lfilter(waveform, a_coeffs, b_coeffs) assert len(output_waveform.size()) == 2 @@ -122,7 +79,7 @@ def test_lowpass_sox_compliance(self): CUTOFF_FREQ = 3000 noise_filepath = os.path.join( - self.test_dirpath, "assets", "whitenoise_1min.mp3" + self.test_dirpath, "assets", "whitenoise.mp3" ) E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(noise_filepath) @@ -145,7 +102,7 @@ def test_highpass_sox_compliance(self): CUTOFF_FREQ = 2000 noise_filepath = os.path.join( - self.test_dirpath, "assets", "whitenoise_1min.mp3" + self.test_dirpath, "assets", "whitenoise.mp3" ) E = torchaudio.sox_effects.SoxEffectsChain() E.set_input_file(noise_filepath) @@ -169,7 +126,7 @@ def test_perf_biquad_filtering(self): Current results: C++ implementation approximately same speed """ - fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise_1min.mp3") + fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3") b0 = 0.4 b1 = 0.2 diff --git a/torchaudio/filtering.cpp b/torchaudio/filtering.cpp deleted file mode 100644 index b17fb09eb1..0000000000 --- a/torchaudio/filtering.cpp +++ /dev/null @@ -1,233 +0,0 @@ -#include -#ifdef WITH_CUDA -#include -#endif - -namespace torch { -namespace audio { - - -at::Tensor lfilter_tensor_matrix( - at::Tensor const & waveform, - at::Tensor const & a_coeffs, - at::Tensor const & b_coeffs - ) { - - // assumes waveform is normalized between 1 and -1 - assert(waveform.dtype == torch::float32); - assert(a_coeffs.size(0) == b_coeffs.size(0)); - int n_order = a_coeffs.size(0); // n'th order - 1 filter - assert(n_order > 0); - - int64_t n_channels = waveform.size(0); - int64_t n_frames = waveform.size(1); - - // Allocate padded input and output waveform, copy in the input waveform - at::Tensor padded_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); - at::Tensor padded_output_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); - padded_waveform.slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1) = waveform; - - // Create [n_order, n_channels] structure for a and b coefficients - at::Tensor a_coeffs_filled = at::transpose(at::flip(a_coeffs, {0,}).repeat({n_channels, 1}), 0, 1); - at::Tensor b_coeffs_filled = at::transpose(at::flip(b_coeffs, {0,}).repeat({n_channels, 1}), 0, 1); - - // few more temporary data structure - at::Tensor o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); - at::Tensor ones = torch::ones({n_channels, n_frames + n_order - 1}); - at::Tensor negones = torch::ones({n_channels, n_frames + n_order -1 }) * -1; - at::Tensor normalization_a0 = torch::unsqueeze(a_coeffs[0], {0,}).repeat({n_channels, 1}); - - - for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - - // calculate the output at time i_frame for all channels - o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); - - // time window of input and output, size [n_channels, n_order] - at::Tensor const & input_window = padded_waveform.slice(0, 0, n_channels).slice(1, i_frame, i_frame + n_order); - at::Tensor const & output_window = padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame, i_frame+ n_order); - - // matrix multiply to get [n_channels x n_channels], extract diagonal and unsqueeze to get [n_channels, 1] result for a frame - at::Tensor inp_result = torch::unsqueeze(torch::diag(torch::mm(input_window, b_coeffs_filled)), 1); - at::Tensor out_result = torch::unsqueeze(torch::diag(torch::mm(output_window, a_coeffs_filled)), 1); - - o0.add_(inp_result); - o0.sub_(out_result); - - // normalize by a0 - o0.div_(normalization_a0); - - // Set the output - padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1, i_frame + n_order - 1 + 1) = o0; - - } - // return clipped, and without initial conditions - return torch::min(ones, torch::max(negones, padded_output_waveform)).slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1); - } - -at::Tensor lfilter_tensor( - at::Tensor const & waveform, - at::Tensor const & a_coeffs, - at::Tensor const & b_coeffs - ) { - - // assumes waveform is normalized between 1 and -1 - assert(waveform.dtype == torch::float32); - assert(a_coeffs.size(0) == b_coeffs.size(0)); - int n_order = a_coeffs.size(0); // n'th order - 1 filter - assert(n_order > 0); - - int64_t n_channels = waveform.size(0); - int64_t n_frames = waveform.size(1); - - // Allocate padded input and output waveform, copy in the input waveform - at::Tensor padded_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); - at::Tensor padded_output_waveform = torch::zeros({n_channels, n_frames + n_order - 1}, torch::TensorOptions().dtype(torch::kFloat32)); - padded_waveform.slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1) = waveform; - - // Create [n_channels, n_order] structure for a and b coefficients - at::Tensor a_coeffs_filled = a_coeffs.repeat({n_channels, 1}); - at::Tensor b_coeffs_filled = b_coeffs.repeat({n_channels, 1}); - - // few more temporary data structure - at::Tensor o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); - at::Tensor ones = torch::ones({n_channels, n_frames + n_order - 1}); - at::Tensor negones = torch::ones({n_channels, n_frames + n_order -1 }) * -1; - - for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - - // calculate the output at time i_frame - // initialize it! - o0 = torch::zeros({n_channels, 1}, torch::TensorOptions().dtype(torch::kFloat32)); - - for (int i_offset = 0; i_offset < n_order; ++i_offset) { - - at::Tensor const & input_time_offset = padded_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1 - i_offset, i_frame + n_order - 1 - i_offset + 1); - at::Tensor const & output_time_offset = padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1 - i_offset, i_frame+ n_order - 1 - i_offset + 1); - at::Tensor const & a_coeffs_offset = a_coeffs_filled.slice(0, 0, n_channels).slice(1, i_offset, i_offset + 1); - at::Tensor const & b_coeffs_offset = b_coeffs_filled.slice(0, 0, n_channels).slice(1, i_offset, i_offset + 1); - - // Multiply by the coefficients - o0 = torch::addcmul(o0, input_time_offset, b_coeffs_offset, 1); - if (i_offset != n_order - 1) { - o0 = torch::addcmul(o0, output_time_offset, a_coeffs_offset, -1); - } - } - // normalize by a0 - o0 = torch::div(o0, a_coeffs_filled.slice(0, 0, n_channels).slice(1, 0, 1)); - - // Set the output - padded_output_waveform.slice(0, 0, n_channels).slice(1, i_frame + n_order - 1, i_frame + n_order - 1 + 1) = o0; - - } - - // return clipped, and without initial conditions - return torch::min(ones, torch::max(negones, padded_output_waveform)).slice(0, 0, n_channels).slice(1, n_order - 1, n_order + n_frames - 1); - } - - - // N.B. TBD - Test with CUDA - at::Tensor lfilter( - at::Tensor const & waveform, - at::Tensor const & a_coeffs, - at::Tensor const & b_coeffs - ) { - - // assumes waveform is normalized between 1 and -1 - assert(waveform.dtype == torch::float32); - assert(a_coeffs.size(0) == b_coeffs.size(0)); - int n_order = a_coeffs.size(0); // n'th order - 1 filter - - int64_t n_channels = waveform.size(0); - int64_t n_frames = waveform.size(1); - - // initialize the output tensor - torch::Tensor output_waveform = torch::zeros({n_channels, n_frames}); - -#ifdef WITH_CUDA - auto input_accessor = waveform.packed_accessor64(); - auto output_accessor = output_waveform.packed_accessor64(); - auto a_coeffs_accessor = a_coeffs.packed_accessor64(); - auto b_coeffs_accessor = b_coeffs.packed_accessor64(); -#endif -#ifndef WITH_CUDA - auto input_accessor = waveform.accessor(); - auto output_accessor = output_waveform.accessor(); - auto a_coeffs_accessor = a_coeffs.accessor(); - auto b_coeffs_accessor = b_coeffs.accessor(); -#endif - - for (int64_t i_channel = 0; i_channel < n_channels; ++i_channel) { - - // allocate a temporary data structure of size 2 x (n_order + 1) - // set to 0 because initial conditions are 0 - float i_s[n_order], o_s[n_order]; - memset( i_s, 0, n_order*sizeof(float) ); - memset( o_s, 0, n_order*sizeof(float) ); - - for (int64_t i_frame = 0; i_frame < n_frames; ++i_frame) { - - // calculate the output at time i_frame by iterating through - // inputs / outputs at previous time steps and multiplying by coeffs - i_s[n_order-1] = input_accessor[i_channel][i_frame]; - float o0 = 0; - for (int i = 0; i < n_order; ++i) { - o0 += i_s[i] * b_coeffs_accessor[n_order - i - 1]; - if (i != n_order - 1) { - o0 -= o_s[i] * a_coeffs_accessor[n_order - i - 1]; - } - } - o0 = o0 / a_coeffs_accessor[0]; - - o_s[n_order-1] = o0; - - // clip and drop into output - if (o0 > 1) o0 = 1; - if (o0 < -1) o0 = -1; - output_accessor[i_channel][i_frame] = o0; - - // shift everything over by one time step - for (int i = 0; i < (n_order - 1); ++i) { - i_s[i] = i_s[i+1]; - o_s[i] = o_s[i+1]; - } - } - } - return output_waveform; - } - -}} - - -PYBIND11_MODULE(_torch_filtering, m) { - py::options options; - options.disable_function_signatures(); - m.def( - "lfilter_tensor", - &torch::audio::lfilter_tensor, - "Executes difference equation with tensor"); - m.def( - "lfilter_tensor_matrix", - &torch::audio::lfilter_tensor_matrix, - "Executes difference equation with tensor"); - m.def( - "lfilter", - &torch::audio::lfilter, - R"mydelimiter(lfilter(waveform, a_coeffs, b_coeffs) - - Performs an IIR filter by evaluating difference equation. - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)`. Must be normalized to -1 to 1. - a_coeffs (torch.Tensor): denominator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[a0, a1, a2, ...]`. Must be same size as b_coeffs (pad with 0's as necessary). - b_coeffs (torch.Tensor): numerator coefficients of difference equation of dimension of `(n_order + 1)`. Lower delays coefficients are first, e.g. `[b0, b1, b2, ...]`. Must be same size as a_coeffs (pad with 0's as necessary). - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` Output will be clipped to -1 to 1. - - )mydelimiter"); -#ifdef WITH_CUDA - m.attr("CUDA_VERSION") = CUDA_VERSION; -#endif - -} diff --git a/torchaudio/filtering.h b/torchaudio/filtering.h deleted file mode 100644 index 908cf691ff..0000000000 --- a/torchaudio/filtering.h +++ /dev/null @@ -1,21 +0,0 @@ -#include - -namespace at { -struct Tensor; -} // namespace at - -namespace torch { namespace audio { - -/// Takes a tensor and performs a biquad difference function - -int biquad( - at::Tensor& input_waveform, - at::Tensor output_waveform, - float a0, - float a1, - float a2, - float b0, - float b1, - float b2 -); -}} // namespace torch::audio diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 0361f6aaeb..779414236c 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,7 +1,6 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from _torch_filtering import lfilter, lfilter_tensor, lfilter_tensor_matrix __all__ = [ "istft", @@ -19,9 +18,6 @@ "highpass_biquad", "biquad", "lfilter", - "lfilter_tensor", - "lfilter_tensor_matrix", - "lfilter_python", ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @@ -600,7 +596,7 @@ def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): return biquad(waveform, b0, b1, b2, a0, a1, a2) -def lfilter_python(waveform, a_coeffs, b_coeffs): +def lfilter(waveform, a_coeffs, b_coeffs): # type: (Tensor, Tensor, Tensor) -> Tensor r""" Performs an IIR filter by evaluating difference equation. @@ -629,7 +625,7 @@ def lfilter_python(waveform, a_coeffs, b_coeffs): # Pad the input and create output padded_waveform = torch.zeros(n_channels, n_frames + n_order - 1) - padded_waveform[:, 3:] = waveform + padded_waveform[:, (n_order - 1):] = waveform padded_output_waveform = torch.zeros(n_channels, n_frames + n_order - 1) # Set up the coefficients matrix @@ -655,4 +651,4 @@ def lfilter_python(waveform, a_coeffs, b_coeffs): padded_output_waveform[:, i_frame + n_order - 1] = o0 - return torch.min(ones, torch.max(ones * -1, padded_output_waveform[:, 3:])) + return torch.min(ones, torch.max(ones * -1, padded_output_waveform[:, (n_order - 1):])) From 866de478afe7b1426e2bbce665b6c31a5b229d9a Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 19:37:42 -0400 Subject: [PATCH 23/28] factor out biquad, lowpass, highpass to sox compatibility --- torchaudio/functional.py | 89 +------------------- torchaudio/functional_sox_compatibility.py | 98 ++++++++++++++++++++++ 2 files changed, 99 insertions(+), 88 deletions(-) create mode 100644 torchaudio/functional_sox_compatibility.py diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 779414236c..8e9b9dc203 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,6 +1,7 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch +from torchaudio.functional_sox_compatibility import biquad, lowpass_biquad, highpass_biquad __all__ = [ "istft", @@ -508,94 +509,6 @@ def phase_vocoder(complex_specgrams, rate, phase_advance): return complex_specgrams_stretch -def biquad(waveform, b0, b1, b2, a0, a1, a2): - # type: (Tensor, float, float, float, float, float, float) -> Tensor - r"""Performs a biquad filter of input tensor. Initial conditions set to 0. - https://en.wikipedia.org/wiki/Digital_biquad_filter - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - b0 (float): numerator coefficient of current input, x[n] - b1 (float): numerator coefficient of input one time step ago x[n-1] - b2 (float): numerator coefficient of input two time steps ago x[n-2] - a0 (float): denominator coefficient of current output y[n], typically 1 - a1 (float): denominator coefficient of current output y[n-1] - a2 (float): denominator coefficient of current output y[n-2] - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - assert(waveform.dtype == torch.float32) - - output_waveform = lfilter( - waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) - ) - return output_waveform - - -def _dB2Linear(x): - return math.exp(x * math.log(10) / 20.0) - - -def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): - # type: (Tensor, int, float, Optional[float]) -> Tensor - r"""Designs biquad highpass filter and performs filtering. Similar to SoX implementation. - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) - cutoff_freq (float): filter cutoff frequency - Q (float): https://en.wikipedia.org/wiki/Q_factor - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - GAIN = 1 # TBD - add as a parameter - w0 = 2 * math.pi * cutoff_freq / sample_rate - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 + math.cos(w0)) / 2 - b1 = -1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(waveform, b0, b1, b2, a0, a1, a2) - - -def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): - # type: (Tensor, int, float, Optional[float]) -> Tensor - r"""Designs biquad lowpass filter and performs filtering. Similar to SoX implementation. - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) - cutoff_freq (float): filter cutoff frequency - Q (float): https://en.wikipedia.org/wiki/Q_factor - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sample_rate - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 - math.cos(w0)) / 2 - b1 = 1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(waveform, b0, b1, b2, a0, a1, a2) - - def lfilter(waveform, a_coeffs, b_coeffs): # type: (Tensor, Tensor, Tensor) -> Tensor r""" diff --git a/torchaudio/functional_sox_compatibility.py b/torchaudio/functional_sox_compatibility.py new file mode 100644 index 0000000000..620c588c8c --- /dev/null +++ b/torchaudio/functional_sox_compatibility.py @@ -0,0 +1,98 @@ +from __future__ import absolute_import, division, print_function, unicode_literals +import math +import torch +import torchaudio + +__all__ = [ + "lowpass_biquad", + "highpass_biquad", + "biquad", +] + + +def biquad(waveform, b0, b1, b2, a0, a1, a2): + # type: (Tensor, float, float, float, float, float, float) -> Tensor + r"""Performs a biquad filter of input tensor. Initial conditions set to 0. + https://en.wikipedia.org/wiki/Digital_biquad_filter + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + b0 (float): numerator coefficient of current input, x[n] + b1 (float): numerator coefficient of input one time step ago x[n-1] + b2 (float): numerator coefficient of input two time steps ago x[n-2] + a0 (float): denominator coefficient of current output y[n], typically 1 + a1 (float): denominator coefficient of current output y[n-1] + a2 (float): denominator coefficient of current output y[n-2] + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + assert(waveform.dtype == torch.float32) + + output_waveform = torchaudio.functional.lfilter( + waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) + ) + return output_waveform + + +def _dB2Linear(x): + return math.exp(x * math.log(10) / 20.0) + + +def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad highpass filter and performs filtering. Similar to SoX implementation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + GAIN = 1 # TBD - add as a parameter + w0 = 2 * math.pi * cutoff_freq / sample_rate + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 + math.cos(w0)) / 2 + b1 = -1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) + + +def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad lowpass filter and performs filtering. Similar to SoX implementation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sample_rate + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 - math.cos(w0)) / 2 + b1 = 1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) From 33362942eb19cad301122618aef2f846474f9c55 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Tue, 17 Sep 2019 19:57:33 -0400 Subject: [PATCH 24/28] Adding documentation for functional sox compatibility --- docs/source/functional.rst | 15 ------------ docs/source/functional_sox_compatibility.rst | 24 ++++++++++++++++++++ docs/source/index.rst | 1 + test/test_functional_filtering.py | 16 ++++++------- torchaudio/functional.py | 4 ---- 5 files changed, 33 insertions(+), 27 deletions(-) create mode 100644 docs/source/functional_sox_compatibility.rst diff --git a/docs/source/functional.rst b/docs/source/functional.rst index 817f3e9cd8..c362c1329b 100644 --- a/docs/source/functional.rst +++ b/docs/source/functional.rst @@ -67,18 +67,3 @@ Functions to perform common audio operations. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: lfilter - -:hidden:`biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: biquad - -:hidden:`highpass_biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: highpass_biquad - -:hidden:`lowpass_biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: lowpass_biquad diff --git a/docs/source/functional_sox_compatibility.rst b/docs/source/functional_sox_compatibility.rst new file mode 100644 index 0000000000..e92598a485 --- /dev/null +++ b/docs/source/functional_sox_compatibility.rst @@ -0,0 +1,24 @@ +.. role:: hidden + :class: hidden-section + +torchaudio.functional_sox_compatibility +======================================= + +.. currentmodule:: torchaudio.functional_sox_compatibility + +SoX compatibility functions + +:hidden:`biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: biquad + +:hidden:`highpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: highpass_biquad + +:hidden:`lowpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: lowpass_biquad diff --git a/docs/source/index.rst b/docs/source/index.rst index c6d0efde69..0565dde234 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,6 +13,7 @@ The :mod:`torchaudio` package consists of I/O, popular datasets and common audio kaldi_io transforms functional + functional_sox_compatibility .. automodule:: torchaudio :members: diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 4d2e8da839..d38887bf0b 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -4,6 +4,7 @@ import torch import torchaudio import torchaudio.functional as F +import torchaudio.functional_sox_compatibility as FSOX import unittest import common_utils import time @@ -89,7 +90,7 @@ def test_lowpass_sox_compliance(self): waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = F.lowpass_biquad(waveform, sample_rate, CUTOFF_FREQ) + output_waveform = FSOX.lowpass_biquad(waveform, sample_rate, CUTOFF_FREQ) assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-4) @@ -112,7 +113,7 @@ def test_highpass_sox_compliance(self): waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = F.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) + output_waveform = FSOX.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) # TBD - this fails at the 1e-4 level, debug why assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) @@ -143,19 +144,18 @@ def test_perf_biquad_filtering(self): waveform_sox_out, sr = E.sox_build_flow_effects() _timing_sox_run_time = time.time() - _timing_sox - # C++ Diff Eq Filter - _timing_cpp_filtering = time.time() + _timing_lfilter_filtering = time.time() waveform, sample_rate = torchaudio.load(fn_sine, normalization=True) - waveform_diff_eq_out = F.lfilter( + waveform_lfilter_out = F.lfilter( waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) ) - _timing_diff_eq_run_time = time.time() - _timing_cpp_filtering + _timing_lfilter_run_time = time.time() - _timing_lfilter_filtering # print("\n") # print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) - # print("CPP Lfilter Run Time (s): ", round(_timing_diff_eq_run_time, 3)) + # print("Lfilter Run Time (s): ", round(_timing_lfilter_run_time, 3)) - assert torch.allclose(waveform_sox_out, waveform_diff_eq_out, atol=1e-4) + assert torch.allclose(waveform_sox_out, waveform_lfilter_out, atol=1e-4) if __name__ == "__main__": diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 8e9b9dc203..f2fa880439 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,7 +1,6 @@ from __future__ import absolute_import, division, print_function, unicode_literals import math import torch -from torchaudio.functional_sox_compatibility import biquad, lowpass_biquad, highpass_biquad __all__ = [ "istft", @@ -15,9 +14,6 @@ "angle", "magphase", "phase_vocoder", - "lowpass_biquad", - "highpass_biquad", - "biquad", "lfilter", ] From 9608edde15729a873336ff009c66b2cce1c1e0c6 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Wed, 18 Sep 2019 07:20:11 -0700 Subject: [PATCH 25/28] removed some print statements, mainly to kick build tests again --- test/test_functional_filtering.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index d38887bf0b..592939cf54 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -151,10 +151,6 @@ def test_perf_biquad_filtering(self): ) _timing_lfilter_run_time = time.time() - _timing_lfilter_filtering - # print("\n") - # print("SoX Run Time (s): ", round(_timing_sox_run_time, 3)) - # print("Lfilter Run Time (s): ", round(_timing_lfilter_run_time, 3)) - assert torch.allclose(waveform_sox_out, waveform_lfilter_out, atol=1e-4) From 445d717bac46d9478bb300a083386ebfaf43d0ed Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Wed, 18 Sep 2019 08:35:15 -0700 Subject: [PATCH 26/28] moved previous sox compatibility into functional --- docs/source/functional.rst | 15 +++ docs/source/functional_sox_compatibility.rst | 24 ----- docs/source/index.rst | 1 - test/test_functional_filtering.py | 15 ++- torchaudio/functional.py | 90 ++++++++++++++++++ torchaudio/functional_sox_compatibility.py | 98 -------------------- 6 files changed, 112 insertions(+), 131 deletions(-) delete mode 100644 docs/source/functional_sox_compatibility.rst delete mode 100644 torchaudio/functional_sox_compatibility.py diff --git a/docs/source/functional.rst b/docs/source/functional.rst index c362c1329b..9968bfadf7 100644 --- a/docs/source/functional.rst +++ b/docs/source/functional.rst @@ -67,3 +67,18 @@ Functions to perform common audio operations. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: lfilter + +:hidden:`biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: biquad + +:hidden:`lowpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: lowpass_biquad + +:hidden:`highpass_biquad` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autofunction:: highpass_biquad diff --git a/docs/source/functional_sox_compatibility.rst b/docs/source/functional_sox_compatibility.rst deleted file mode 100644 index e92598a485..0000000000 --- a/docs/source/functional_sox_compatibility.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. role:: hidden - :class: hidden-section - -torchaudio.functional_sox_compatibility -======================================= - -.. currentmodule:: torchaudio.functional_sox_compatibility - -SoX compatibility functions - -:hidden:`biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: biquad - -:hidden:`highpass_biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: highpass_biquad - -:hidden:`lowpass_biquad` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autofunction:: lowpass_biquad diff --git a/docs/source/index.rst b/docs/source/index.rst index 0565dde234..c6d0efde69 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,7 +13,6 @@ The :mod:`torchaudio` package consists of I/O, popular datasets and common audio kaldi_io transforms functional - functional_sox_compatibility .. automodule:: torchaudio :members: diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 592939cf54..0012119a26 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -4,7 +4,6 @@ import torch import torchaudio import torchaudio.functional as F -import torchaudio.functional_sox_compatibility as FSOX import unittest import common_utils import time @@ -35,9 +34,9 @@ def test_lfilter(self): 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 - from scipy.signal import iirdesign - b, a = iirdesign(0.2, 0.3, 1, 60) - + Example + >>> from scipy.signal import iirdesign + >>> b, a = iirdesign(0.2, 0.3, 1, 60) """ b_coeffs = torch.tensor( @@ -70,7 +69,7 @@ def test_lfilter(self): assert output_waveform.size(0) == waveform.size(0) assert output_waveform.size(1) == waveform.size(1) - def test_lowpass_sox_compliance(self): + def test_lowpass(self): """ Run a biquad lowpass filter using SoX vs torchaudio's lfilter @@ -90,11 +89,11 @@ def test_lowpass_sox_compliance(self): waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = FSOX.lowpass_biquad(waveform, sample_rate, CUTOFF_FREQ) + output_waveform = F.lowpass_biquad(waveform, sample_rate, CUTOFF_FREQ) assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-4) - def test_highpass_sox_compliance(self): + def test_highpass(self): """ Run a biquad highpass filter using SoX vs torchaudio's lfilter Results should be very close @@ -113,7 +112,7 @@ def test_highpass_sox_compliance(self): waveform, sample_rate = torchaudio.load( noise_filepath, normalization=True ) - output_waveform = FSOX.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) + output_waveform = F.highpass_biquad(waveform, sample_rate, CUTOFF_FREQ) # TBD - this fails at the 1e-4 level, debug why assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) diff --git a/torchaudio/functional.py b/torchaudio/functional.py index f2fa880439..a1f73c6c7c 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -15,6 +15,9 @@ "magphase", "phase_vocoder", "lfilter", + "lowpass_biquad", + "highpass_biquad", + "biquad", ] # TODO: remove this once https://github.com/pytorch/pytorch/issues/21478 gets solved @@ -561,3 +564,90 @@ def lfilter(waveform, a_coeffs, b_coeffs): padded_output_waveform[:, i_frame + n_order - 1] = o0 return torch.min(ones, torch.max(ones * -1, padded_output_waveform[:, (n_order - 1):])) + +def biquad(waveform, b0, b1, b2, a0, a1, a2): + # type: (Tensor, float, float, float, float, float, float) -> Tensor + r"""Performs a biquad filter of input tensor. Initial conditions set to 0. + https://en.wikipedia.org/wiki/Digital_biquad_filter + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + b0 (float): numerator coefficient of current input, x[n] + b1 (float): numerator coefficient of input one time step ago x[n-1] + b2 (float): numerator coefficient of input two time steps ago x[n-2] + a0 (float): denominator coefficient of current output y[n], typically 1 + a1 (float): denominator coefficient of current output y[n-1] + a2 (float): denominator coefficient of current output y[n-2] + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + assert(waveform.dtype == torch.float32) + + output_waveform = torchaudio.functional.lfilter( + waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) + ) + return output_waveform + + +def _dB2Linear(x): + return math.exp(x * math.log(10) / 20.0) + + +def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad highpass filter and performs filtering. Similar to SoX implementation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + GAIN = 1 # TBD - add as a parameter + w0 = 2 * math.pi * cutoff_freq / sample_rate + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 + math.cos(w0)) / 2 + b1 = -1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) + + +def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): + # type: (Tensor, int, float, Optional[float]) -> Tensor + r"""Designs biquad lowpass filter and performs filtering. Similar to SoX implementation. + + Args: + waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` + sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) + cutoff_freq (float): filter cutoff frequency + Q (float): https://en.wikipedia.org/wiki/Q_factor + + Returns: + output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` + """ + + GAIN = 1 + w0 = 2 * math.pi * cutoff_freq / sample_rate + A = math.exp(GAIN / 40.0 * math.log(10)) + alpha = math.sin(w0) / 2 / Q + mult = _dB2Linear(max(GAIN, 0)) + + b0 = (1 - math.cos(w0)) / 2 + b1 = 1 - math.cos(w0) + b2 = b0 + a0 = 1 + alpha + a1 = -2 * math.cos(w0) + a2 = 1 - alpha + return biquad(waveform, b0, b1, b2, a0, a1, a2) diff --git a/torchaudio/functional_sox_compatibility.py b/torchaudio/functional_sox_compatibility.py deleted file mode 100644 index 620c588c8c..0000000000 --- a/torchaudio/functional_sox_compatibility.py +++ /dev/null @@ -1,98 +0,0 @@ -from __future__ import absolute_import, division, print_function, unicode_literals -import math -import torch -import torchaudio - -__all__ = [ - "lowpass_biquad", - "highpass_biquad", - "biquad", -] - - -def biquad(waveform, b0, b1, b2, a0, a1, a2): - # type: (Tensor, float, float, float, float, float, float) -> Tensor - r"""Performs a biquad filter of input tensor. Initial conditions set to 0. - https://en.wikipedia.org/wiki/Digital_biquad_filter - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - b0 (float): numerator coefficient of current input, x[n] - b1 (float): numerator coefficient of input one time step ago x[n-1] - b2 (float): numerator coefficient of input two time steps ago x[n-2] - a0 (float): denominator coefficient of current output y[n], typically 1 - a1 (float): denominator coefficient of current output y[n-1] - a2 (float): denominator coefficient of current output y[n-2] - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - assert(waveform.dtype == torch.float32) - - output_waveform = torchaudio.functional.lfilter( - waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) - ) - return output_waveform - - -def _dB2Linear(x): - return math.exp(x * math.log(10) / 20.0) - - -def highpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): - # type: (Tensor, int, float, Optional[float]) -> Tensor - r"""Designs biquad highpass filter and performs filtering. Similar to SoX implementation. - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) - cutoff_freq (float): filter cutoff frequency - Q (float): https://en.wikipedia.org/wiki/Q_factor - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - GAIN = 1 # TBD - add as a parameter - w0 = 2 * math.pi * cutoff_freq / sample_rate - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 + math.cos(w0)) / 2 - b1 = -1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(waveform, b0, b1, b2, a0, a1, a2) - - -def lowpass_biquad(waveform, sample_rate, cutoff_freq, Q=0.707): - # type: (Tensor, int, float, Optional[float]) -> Tensor - r"""Designs biquad lowpass filter and performs filtering. Similar to SoX implementation. - - Args: - waveform (torch.Tensor): audio waveform of dimension of `(n_channel, n_frames)` - sample_rate (int): sampling rate of the waveform, e.g. 44100 (Hz) - cutoff_freq (float): filter cutoff frequency - Q (float): https://en.wikipedia.org/wiki/Q_factor - - Returns: - output_waveform (torch.Tensor): Dimension of `(n_channel, n_frames)` - """ - - GAIN = 1 - w0 = 2 * math.pi * cutoff_freq / sample_rate - A = math.exp(GAIN / 40.0 * math.log(10)) - alpha = math.sin(w0) / 2 / Q - mult = _dB2Linear(max(GAIN, 0)) - - b0 = (1 - math.cos(w0)) / 2 - b1 = 1 - math.cos(w0) - b2 = b0 - a0 = 1 + alpha - a1 = -2 * math.cos(w0) - a2 = 1 - alpha - return biquad(waveform, b0, b1, b2, a0, a1, a2) From c54991a1ec3a03c6ca064c652539ad887e2810f1 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Wed, 18 Sep 2019 08:41:54 -0700 Subject: [PATCH 27/28] Fix module reference in biquad --- torchaudio/functional.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/torchaudio/functional.py b/torchaudio/functional.py index a1f73c6c7c..842d8495bf 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -565,6 +565,7 @@ def lfilter(waveform, a_coeffs, b_coeffs): return torch.min(ones, torch.max(ones * -1, padded_output_waveform[:, (n_order - 1):])) + def biquad(waveform, b0, b1, b2, a0, a1, a2): # type: (Tensor, float, float, float, float, float, float) -> Tensor r"""Performs a biquad filter of input tensor. Initial conditions set to 0. @@ -585,7 +586,7 @@ def biquad(waveform, b0, b1, b2, a0, a1, a2): assert(waveform.dtype == torch.float32) - output_waveform = torchaudio.functional.lfilter( + output_waveform = lfilter( waveform, torch.tensor([a0, a1, a2]), torch.tensor([b0, b1, b2]) ) return output_waveform From a4cd66dfb75c8ee7949b6e96b290dea77a2bc208 Mon Sep 17 00:00:00 2001 From: Chuan Zhang Date: Wed, 18 Sep 2019 08:44:22 -0700 Subject: [PATCH 28/28] Small wording tweaks to test docstrings --- test/test_functional_filtering.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/test/test_functional_filtering.py b/test/test_functional_filtering.py index 0012119a26..e4ec4f143d 100644 --- a/test/test_functional_filtering.py +++ b/test/test_functional_filtering.py @@ -72,8 +72,7 @@ def test_lfilter(self): def test_lowpass(self): """ - Run a biquad lowpass filter using SoX vs torchaudio's lfilter - Results should be very close + Test biquad lowpass filter, compare to SoX implementation """ CUTOFF_FREQ = 3000 @@ -95,8 +94,7 @@ def test_lowpass(self): def test_highpass(self): """ - Run a biquad highpass filter using SoX vs torchaudio's lfilter - Results should be very close + Test biquad highpass filter, compare to SoX implementation """ CUTOFF_FREQ = 2000 @@ -118,13 +116,6 @@ def test_highpass(self): assert torch.allclose(sox_output_waveform, output_waveform, atol=1e-3) def test_perf_biquad_filtering(self): - """ - Compare SoX implementation of biquad filtering with C++ implementation - - Test that results are similar and how performance differs - - Current results: C++ implementation approximately same speed - """ fn_sine = os.path.join(self.test_dirpath, "assets", "whitenoise.mp3")