Skip to content

Full TorchScript support, new PIT modules, `asteroid-filterbanks` outsource and bug fixes!

Compare
Choose a tag to compare
@mpariente mpariente released this 30 Nov 20:12

Highlights

  • Full TorchScript support for all asteroid models, unit tested for consistency 🚀
  • Outsource all filterbanks to asteroid-filterbanks with a new MelGramFB, a STFT that matches torch.stft and new hooks for more extensibility!
  • Direct links to GitHub code from the docs 🎉
  • Add Hungarian algorithm in PITLossWrapper + new MixITWrapper and SinkPITLossWrapper
  • Better CI with tests against 1.6.0, 1.7.0 and torch-nightly.

Backwards Incompatible Changes

  • filters in Filterbank is now a method instead of a property, for TorchScript support (#237).
  • PITLossWrapper method best_perm_from_perm_avg_loss, find_best_perm now return batch indices of the best permutation, to match with the new hungarian algorithm and facilitate outside use of those methods (#243).
  • Models that were saved without sample_rate argument won't be loadable anymore. Use asteroid-register-sr to register the sample rate of the model (#285).
  • We finally removed the losses (#343 ) and blocks (#344) that were deprecated since 0.2.0.
  • Remove kernel_size argument from TDConvNet (deprecated since v0.2.1) (#368).

Deprecation

  • BaseModel._separate is deprecated in favour of BaseModel.forward_wav (#337).
  • asteroid.filterbanks has been outsourced to asteroid-filterbanks (#346). Use from asteroid_filterbanks import instead of from asteroid.filterbanks import from now.
  • Several deprecation cycles have been engaged in asteroid-filterbanks.transforms:
    • take_reim will be removed.
    • take_mag is deprecated in favour of mag.
    • take_cat is deprecated in favour of magreim.
    • from_mag_and_phase is deprecated in favour of from_magphase.
  • asteroid.complex_nn.as_torch_complex has been deprecated and will be removed. Use torch.view_as_complex, torch_complex_from_magphase, torch_complex_from_reim or asteroid_filterbanks.transforms.from_torch_complex instead (#358).

Changelog

Breaking

[src] BC-breaking: Load models without sample_rate (#285)
[src] Remove deprecated losses (#343)
[src] Remove deprecated blocks (#344)
[src] BaseEncoderMaskerDecoder: remove old hooks (#309)
[src] Remove deprecated kernel_size in TDConvNet (#368)

Added

[src&tests] Add sample_rate property (float) in BaseModel. (#274)
[src] Add sample_rate argument to all supported models. (#284)
[src&tests] Automatic resampling in separate + CLI. (#283)
[src & tests] 🎉 TorchScript support 🎉 (#237)
[src & tests] Add Hungarian matcher to solve LSA in PITLossWrapper (#243)
[src&tests] Add jitable_shape and use it in EncMaskDec forward (#288)
[src&tests] Add shape checks to SDR and MSE losses (#299)
[docs] Add loss plot in the FAQ (#314)
[src] New asteroid.show_available_models (#313)
[egs] DAMP-VSEP vocal separation using ConvTasNet (#298)
[docs] DAMP-VSEP in the docs ! (#317)
[src&test] Add Sinkhorn PIT loss (#302)
[src] Add MixITWrapper loss (#320)
[egs] Add MixIT example recipe (#328)
[src] New Filterbank's hooks + add MelGram_FB (#334)
[src] New phase features and transforms (#333)
[src] Better names in asteroid.filterbanks.transforms (#342)
[src] Add asteroid-versions script to print installed versions (#349)
[install] Add conda environment.yml (#354)
[src] Add ebased_vad and deltas (#355)

Changed

[src&tests] Make get_metrics robust against metrics failures (#275)
[egs] Don't override print() with pprint (#281)
[src] Refactor BaseEncoderMaskerDecoder.forward (#307)
[src&tests] Refactor DeMask for consistency (#304)
[docs] Replace GettingStarted notebook (#319)
[src] BaseModel takes sample_rate argument (#336)
[src&egs] Transition to asteroid_filterbanks (#346)
[src] Rename _separate to forward_wav (#337)
[docs] Build docs with 3.8
[docs] Links to GitHub code from the docs 🎉 (#363)
[CI&hub] TorchHub integration tests (#362)

Fixed

[egs] Fix #277 DNS Challenge baseline's run.sh
[docs] Fix Reference and Example blocks in docs (#297)
[src] Fix #300: skip connection on good device (#301)
[src] DCUNet: Replace old hooks by new ones (#308)
[src] Fix schedulers serialization (#326)
[src] Improve Filterbank.forward error message (#327)
[egs] Fix: replace DPRNNTasNet with DPTNet (#331)
[src&jit] Fix DCCRN and DCUNet-Large (#276)
[CI] Catch warnings we expect (#351)
[src] Fix #279 OLA support for separate() and asteroid-infer (#305)
[docs] Docs fixes and improvements (#340)
[docs] Fix CLI output in docs (#357)
[src&tests] Fix complex and add tests (#358)
[docs] Fix docstrings (#365)
[src] Fix #360 Correct DCCRN RNN (#364)

A large thanks to all contributors for this release :
@popcornell @jonashaag @michelolzam @faroit @mhu-coder @JorisCos @groadabike @giorgiacantisani @tachi-hi @SouppuoS @sunits @guiruli08650129 @mcernak @zmolikova & @hbredin 🥰
(ping me if you got forgotten, I'll add you back, and sorry in advance 😉 )