Skip to content

Releases: asteroid-team/asteroid

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

30 Nov 20:12
Compare
Choose a tag to compare

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 😉 )

Fix install from pip

10 Nov 11:27
Compare
Choose a tag to compare

Since v0.3.4, pytorch_lightning released 1.0 which is incompatible. This release only limits lightning's version so that the install is compatible with the source code.

DCCRN, DCUNet, model hooks, complex NNs and bug fixes!

07 Oct 12:29
Compare
Choose a tag to compare

Highlights

  • Fixed compatibility issue of pretrained models between v0.3.0 and v0.3.3 thanks to @groadabike (issue #255, #258)
  • Fixed chunk reordering in LambdaOverlapAdd.
  • BaseEncoderMaskerDecoder (formerly BaseTasNet) now has model hooks for easier extensibility (thanks to @jonashaag) : postprocess_encoded, postprocess_masks, postprocess_masked, postprocess_decoded`
  • Brand new complex ops and NNs thanks to @jonashaag !
  • New supported models: DCUNet (paper)and DCCRNet (paper)

Note : Next release (0.4.0) will have some small backward breaking changes, to support TorchScript and improve our PITLossWrapper.

Changelog

Added

[hub] Add tmirzaev's model in the string-retrievable ones.
[src] BaseTasNet -> BaseEncoderMaskerDecoder + add model hooks (#266)
[src & tests] New complex ops + Add DCUNet and DCCRNet (#224)
[src&tests] Improve scheduler's docs + add plot method (#268)

Changed

[hub] Add software version section in published models (#261)
[docs] Add issue #250 to FAQ (#260)
[black] Update black to 20.8b1 (#265)
[black] Fix black 20.8b1 update (#267)
[black] Update to 20.8b1 + always lint

Fixed

[egs] Fix declared unused variables in DeMask (#248)
[docs] Update article citation.
[src] Restore linear activation as default in ConvTasNet and DPRNN (#258)
[src] Fix uncalled optimizer in System without LR schedule (#259)
[src] Fix bug for DPTNetScheduler (#262)
[src] Fix LambdaOverlapAdd and improve docs (#271)

Thanks to our awesome contributors @popcornell @jonashaag @faroit @groadabike !

DeMask, inference CLI, lightning 0.9.0 and beautfil docs !

25 Aug 20:42
Compare
Choose a tag to compare

Highlights

  • Refactored base models to ease publishing and loading
  • Improve Asteroid extensibility (without -e install) with register/get logic.
  • asteroid-infer CLI for easy enhancement/separation
  • DeMask recipe + pretrained model
  • Upgrade to lightning 0.8.1+
  • Brand new docs ! (thanks @michelolzam)
  • Brand new landing page ! (thanks @michelolzam)

Changelog

Added

  • [hub] Add DeMask to hubconf (#242)
  • [models] Add 16k popcornell/DPRNNTasNet_WHAM_enhancesingle enhancement
  • [src & egs] Add DeMask: Surgical mask speech enhancement recipes (#235)
  • [models] Add pretrained DeMask name to URL mapping
  • [src & egs] PyTorchLightning upgrade to 0.9.0 (stable from 0.8.1 on) (#217)
  • [CLI] Add asteroid-infer CLI to enhance/separate from the command line (#236)
  • [docs] New docs theme ! (#230)
  • [tests] Improve tests for new model interface (#234)
  • [docs] Add license info to FUSS Dataset
  • [src] Cleaner try/except/else in base_models.py (thanks @jonashaag)
  • [src] Add LibriMix.loaders_from_mini in librimix_dataset.py (#229)
  • [src] Add register command to gettable modules (#231)
  • [models] Add groadabike's pretrained model's URL (#228)
  • [src] Import MultiScale spectral loss in init.py
  • [docs] Include new notebook: follow up of #221 (#226)
  • [src] Add LambdaOverlapAdd usage example (#221)

Changed

  • [src] Improve BaseModel.separate (#236 follow up) (#238)
  • [hub] Remove args in hub models, don't accept positional args after kwargs
  • [src] Refactor BaseTasnNet in two: better loadable/serializable models (#232)

Fixed

  • [CLI] Fix large output volume in asteroid-infer
  • [docs] Fix theme installation, grunt build and import errors in docs (#240)
  • [tests] Fix wrong separate method in model tests (#241)
  • [src] Recipe name in publisher + dataset name fix (#239)

More separation models, thorough testing and readable docs!

20 Aug 22:08
10af947
Compare
Choose a tag to compare

Highlights

  • New supported models:
    • DualPathTransformer Network (DPTNet).
    • SuDORMRF Network.
    • LSTM TasNet accessible from hub.
    • TDCNpp masking network.
  • Batch-wise schedulers (very useful for transformers) are now available.
  • LambdaOverlapAdd to easily process long files.
  • Add SMS_WSJ Dataset.
  • Add FUSS Dataset.
  • Consistent codestyle with black and more extensive testing
  • Redable docs ! [latest][0.3.1]

Note: Next releases will be based on pytorch-lightning>=0.8.0.

Changelog

Added

  • [tests] Add scheduler tests (#220)
  • [docs] Add schedulers, activations docs and improve datasets' docs (#219)
  • [docs] Add DSP section to docs (#218)
  • [docs] Add FUSSdataset to docs
  • [docs] Add schedulers in docs
  • [docs] Add activations to docs
  • [src] Add FUSS dataset from FUSS PR (#215)
  • [src & tests] Add TDCN++ to masknn (#214)
  • [hub] Add LSTMTasNet/DPTNet/SuDORMRFNet to torch.hub! (#210)
  • [src & tests] Add LSTMTasNet to serializable models (#209)
  • [src] Continuous Speech separation with LambdaOverlapAdd (#193)
  • [src] Continuous Speech separation with OverlappadWrapper (#191)
  • [src & tests] Add SuDoRM-RF model & online mixing collate function (#174)
  • [src, tests & egs] Batchwise learning rate schedulers + DPProcessing + Dual Path Transformer Network + recipe (#200)
  • [docs] Add black code-style
  • [hub] Add Brij's LibriMix enhancement model
  • [src] Adds Dataset for SmsWsj (#179)
  • [docs] STOI loss example: Add sample rate (#189)
  • [src & tests] Add feature-wise global layernorm (#170)

Changed

  • [src & tests] Split SuDORMRF architectures in encoder/masker/decoder (#208)
  • [src] Code-style + docs
  • [src & tests] (BWI) Gather DSP methods in dsp folder (#194)
  • [egs] EarlyStopping Patience to 30 instead of 10. (#178)

Fixed

  • [src] Fix docs append problem in STOI.
  • [black] Apply black to recipes (#216)
  • [tests & CI] Fix tests for publishing (#211)
  • [notebooks] Fix notebooks (#206)
  • [src & tests] Fix serialization issues introduced in previous PR + some docs (#204)
  • [egs] Remove file librimix/model.py as model is imported from asteroid.models (#176)
  • [egs] Dynamic Mixing fix (#173)
  • [instal] Fix pytorch-lightning dependency (#159)
  • [egs] Fix empty audio, multi gpu and reduced storage issues in avspeech (#169)
  • [egs] Fix style in model.py
  • [egs] Fix bugs in generating wsj0-mix dataset with wv1 (#166)
  • [egs] Fix wrong rel path in wham/DPRNN prepare_data.sh (#167)
  • [egs] Fix clipping problems when saving estimate wav file for Wham ConvTasNet (#160)

Backward incompatible changes

  • Move mixture_consistency in dsp folder.

v0.3.1

20 Aug 17:27
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

Use 0.3.2 instead.

Pretrained-model loading and sharing !

16 Jun 19:44
Compare
Choose a tag to compare

Backward incompatible changes

  • System is not imported from asteroid/__init__.py. This way, torch.hub doesn't need pytorch-lightning to load models. Replace your from asteroid import System calls by from asteroid.engine.system import System
  • Refactor utils files into asteroid/utils folder (#120).
    The only not backward compatible behavior is when we try to import a function from torch_utils e.g from asteroid.torch_utils import pad_x_to_y. Instead, we can use from asteroid import torch_utils; torch_utils.pad_x_to_y(...)

Added

[src & egs] Publishing pretrained models !! (wham/ConvTasNet) (#125)
[src] Add License info on all (but MUSDB) supported datasets (#130)
[src & egs] Kinect-WSJ Dataset and Single channel DC Recipe (#131)
[src] Add licenses info and dataset name for model publishing
[docs] Add getting started notebook
[docs] Add notebook summary table
[egs] Enable pretrained models sharing on LibriMix (#132)
[egs] Enable wham/DPRNN model sharing (#135)
[model_cards] Add message to create model card after publishing
[model_cards] Add ConvTasNet_LibriMix_sepnoisy.md model card (Thanks @JorisCos)
[src & egs] Adding AVSpeech AudioVisual source separation (#127)
[src] Instantiate LibriMix from download with class method (#144)
[src] Add show_available_models in asteroid init
[src & tests] Bidirectional residual RNN (#146)
[src & tests] Support filenames at the input of separate (#154)

Changed

[src & hub] Remove System to reduce torch.hub deps (back to #112)
[src & tests & egs] Refactor utils files into folder (#120)
[egs] GPU id defaults to $CUDA_VISIBLE_DEVICES in all recipes (#128)
[egs] set -e in all recipes to exit or errors (#129)
[egs] Remove gpus args in all train.py (--id controls that in run.sh) (#134)
[hub] Change dataset name in LibriMix (fix)
[src] Add targets argument (to stack sources) to MUSDB18 (#143)
[notebooks] Rename examples to notebooks
[src] Enable using Zenodo without api_key argument (set ACCESS_TOKEN env variable)

Deprecated

[src] Deprecate inputs_and_masks.py (#117)
[src] Deprecate PITLossWrapper mode argument (#119)

Fixed

[src] Fix PMSQE loss (NAN backward + device placement) (#121)
[egs] Fix checkpoint.best_k_models in new PL version (#123)
[egs] Fix: remove shuffle=True in validation Loader (lightning error) (#124)
[egs] Corrections on LibriMix eval and train and evals scripts (#137)
[egs] Fix wavfiles saving in eval.py for enh_single and enh_both tasks (closes #139)
[egs] Fix wavfiles saving in eval.py for enh tasks (estimates)
[egs] Fix #139 : correct squeeze for enhancement tasks (#142)
[egs] Fix librimix run.sh and eval.py (#148)

DualPath RNN, TwoStep separation, Deep Clustering and Chimera++

25 May 13:55
Compare
Choose a tag to compare

Summary

  • New datasets: LibriMix, wsj0-mix, MUSDB18 and FUSS.
  • New recipes: DPRNN, TwoStep separation, Deep clustering, Chimera++
  • asteroid.models + hubconf.py: Model definitions without installing Asteroid.

Added

  • [src] Add dataset_name attribute to all data.Dataset (#113) (@mpariente)
  • [hub] Add hubconf.py: load asteroid models without install ! (#112) (@mpariente)
  • [src] Add support to the MUSDB18 dataset (#110) (@faroit)
  • [src & tests] Importable models: ConvTasNet and DPRNNTasNet (#109) (@mpariente)
  • [egs] Deep clustering/Chimera++ recipe (#96) (@mpariente)
  • [src & egs] Source changes towards deep clustering recipe (#95) (@mpariente)
  • [docs] Add training logic figure (#94) (@mpariente)
  • [install] Include PMSQE matrices in setup.py (@mpariente)
  • [src & egs] DPRNN architecture change + replicated results (#93) (@mpariente)
  • [egs] Two step recipe : update results (#91) (@etzinis)
  • [src & tests] Add multi-phase gammatone filterbank (#89) (@dditter)
  • [src] Stabilize consistency constraint (@mpariente)
  • [src] LibriMix dataset importable from data (@mpariente)
  • [src & egs] LibriMix dataset support and ConvTasnet recipe (#87) (@JorisCos)
  • [egs] Dynamic mixing for Wham (#80) (@popcornell)
  • [egs] Add FUSS data preparation files (#86) (@michelolzam)
  • [src & tests] Implement MISI (#85) (@mpariente)
  • [src] ConvTasnetv1 available : no skip option to TDCN (#82) (@mpariente)
  • [src & tests] Implement GriffinLim (#83) (@mpariente)
  • [docs] Add reduce example in PITLossWrapper (@mpariente)
  • [src & tests] Generalize ! Implement pairwise losses reduce function (#81) (@mpariente)
  • [src & tests] Add support for STOI loss (#79) (@mpariente)
  • [src] Support padding and output_padding in Encoder and Decoder (#78) (@mpariente)
  • [src & tests] Added mixture consistency constraints (#77) (@mpariente)
  • [logo] Add white-themed asteroid logo (@mpariente)
  • [egs] Add Two step source separation recipe (#67) (@etzinis)
  • [src] Add train kwarg in System's common_step for easier subclassing. (@mpariente)
  • [egs] Upload Tasnet WHAMR results (@mpariente)
  • [src & tests] Add PMSQE loss in asteroid (#65) (@mdjuamart)
  • [src] Add Ranger in supported optimizers (@mpariente)

Changed

Deprecated

  • [src] Deprecate kernel_size arg for conv_kernel_size in TDConvNet (#108) (@mpariente)
  • [src] Deprecate masknn.blocks (splited) (#107) (@mpariente)

Fixed

  • [src] Fix docstring after #108 (@mpariente)
  • [egs] Replace PITLossWrapper arg mode by pit_from (#103) (@mpariente)
  • [src] Return config in DPRNN.get_config() (@mpariente)
  • [egs] Fix typo in LibriMix import (@mpariente)
  • [egs] Twostep recipe small fixes (#74) (@mpariente)
  • [egs] Fixed mode overwriting in all wham recipes (#76) (@Ariel12321)
  • [egs] Fixed mode overwriting in ConvTasNet recipe (#75) (@Ariel12321)
  • Fix build erros (Pin sphinx < 3.0) (#72) (@mpariente)
  • Fixing paths for wham scripts and unziping command for noise (#66) (@etzinis)
  • Fix whamr_dataset.py, map reverb to anechoic (@mpariente)
  • Important fix : WHAMR tasks include dereverberation ! (@mpariente)

Big thanks to all contributors @popcornell @etzinis @michelolzam @Ariel12321 @faroit @dditter @mdjuamart @sunits 😃

Bug fixes & tests

15 Mar 13:20
Compare
Choose a tag to compare

Mainly, this release is to downgrade pytorch-lightning to 0.6.0 as we were having some performance problems with 0.7.1 (#58).
We also incorporate metrics calculation in Asteroid, though pb_bss_eval which is a sub-package of pb_bss available on PyPI.

New

  • WHAMR support + and Tasnet recipe (#54)
  • Add BatchNorm wrapper that handles 2D, 3D and 4D cases. retrievable from string bN. (#60)
  • get_metrics method and strict dependency on pb_bss_eval (#57) (#62)

Bug fixes

  • Fix PITLossWrapper usage on GPU (#55)

More recipes & datasets

09 Mar 16:37
Compare
Choose a tag to compare

New features

  • Better argparse interface with dictionary.
  • STFT is now prefectly invertible with default values. Also perfect_synthesis_window enables perfect synthesis with a large range if windows for even overlaps.
  • Encoder and Decoder now support arbitrary number of input dimensions.
  • More support for complex numbers (angle, magnitude, interface to numpy and torchaudio)
  • Add SingleSrcMultiScaleSpectralLoss from DDSP (magenta)
  • Huge improvements on tests and coverage

New recipes

  • ConvTasnet full recipe on WHAM
  • DPRNN full recipe on WHAM
  • Full DNS Challenge (microsoft) baseline.
  • Deep clustering and Chimera++ recipe on WSJ0-2mix (ongoing)
  • WHAMR dataset support.

Breaking change

  • Encoder looses its post_process_inputs and apply_mask methods which were not really useful. We consider it is better the user applies these methods knowingly

Big thanks to the contributors on this release @popcornell @sunits @JorisCos