audio-resampling-in-python icon indicating copy to clipboard operation
audio-resampling-in-python copied to clipboard

torchaudio resampling bug in notebook and updates

Open carolineechen opened this issue 4 years ago • 2 comments

Hi @jonashaag, thanks for compiling and updating this notebook on resampling libraries! However, I noticed there was a small bug in the new torchaudio examples, and also wanted to update you on some new resampling capabilities from our latest release.

I noticed that there was a bug in the notebook with the torchaudio_new_resample arguments that led to it producing strange plots for both the upsample and downsample examples. Removing [None] and [0] from torchaudio_new_resample(torch.from_numpy(sig[None]), P, Q).numpy()[0] should resolve this issue, and both resampling methods in torchaudio should produce the same results.

In the latest torchaudio release (v0.9.0), we made several improvements to resampling. We improved the speed performance of transforms.Resample, deprecated kaldi.resample_waveform in favor of functional.resample, added kaiser window support, among others. If you're interested, you can track the updates here, and we have also created a tutorial demonstrating the properties of our improved resampling function.

What are your thoughts on the following?

  • fixing the torchaudio_new_resample bug
  • using the latest version of torchaudio (0.9.0) (Note that for the latest version,transforms.Resample should take in an additional dtype=torch.float64 argument in your examples)
  • plotting with a higher quality set of parameters (ex/ using lowpass_filter_width=64 or resampling_method="kaiser_window")

Let me know if you would like to work on this, or if you'd like me to send in a PR, I'd be happy to do so as well!

cc @mthrok

carolineechen avatar Jun 24 '21 18:06 carolineechen

Thanks for reporting this! I’m happy to merge the changes but I don’t have the bandwidth to work on it myself so a PR would be very welcome.

My suggestion would be to plot the new default settings and if you want one additional higher quality setting. The notebook is already very crowded so I’m against adding more even more examples.

Also I guess it makes sense to add a hint that older PyTorch versions will perform significantly worse.

If you have the bandwidth I’m also happy to merge any other changes to improve the code, eg. splitting the code into separate scripts that generate plots, making a proper benchmark script, GPU benchmarks, etc.

jonashaag avatar Jun 24 '21 20:06 jonashaag

Hi @jonashaag, just wanted to follow up on this -- I have created a PR (https://github.com/jonashaag/audio-resampling-in-python/pull/7) to resolve this. Let me know if you have any comments!

carolineechen avatar Aug 19 '21 16:08 carolineechen