Releases: asteroid-team/asteroid
Full TorchScript support, new PIT modules, `asteroid-filterbanks` outsource and bug fixes!
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 matchestorch.stft
and new hooks for more extensibility! - Direct links to GitHub code from the docs 🎉
- Add Hungarian algorithm in
PITLossWrapper
+ newMixITWrapper
andSinkPITLossWrapper
⚡ - Better CI with tests against
1.6.0
,1.7.0
andtorch-nightly
.
Backwards Incompatible Changes
filters
inFilterbank
is now a method instead of a property, forTorchScript
support (#237).PITLossWrapper
methodbest_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. Useasteroid-register-sr
to register the sample rate of the model (#285). - We finally removed the
losses
(#343 ) andblocks
(#344) that were deprecated since 0.2.0. - Remove
kernel_size
argument fromTDConvNet
(deprecated since v0.2.1) (#368).
Deprecation
BaseModel._separate
is deprecated in favour ofBaseModel.forward_wav
(#337).asteroid.filterbanks
has been outsourced toasteroid-filterbanks
(#346). Usefrom asteroid_filterbanks import
instead offrom 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 ofmag
.take_cat
is deprecated in favour ofmagreim
.from_mag_and_phase
is deprecated in favour offrom_magphase
.
asteroid.complex_nn.as_torch_complex
has been deprecated and will be removed. Usetorch.view_as_complex
,torch_complex_from_magphase
,torch_complex_from_reim
orasteroid_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
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!
Highlights
- Fixed compatibility issue of pretrained models between
v0.3.0
andv0.3.3
thanks to @groadabike (issue #255, #258) - Fixed chunk reordering in
LambdaOverlapAdd
. BaseEncoderMaskerDecoder
(formerlyBaseTasNet
) 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)andDCCRNet
(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 !
Highlights
- Refactored base models to ease publishing and loading
- Improve Asteroid extensibility (without
-e
install) withregister
/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
More separation models, thorough testing and readable docs!
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
indsp
folder.
v0.3.1
Pretrained-model loading and sharing !
Backward incompatible changes
System
is not imported fromasteroid/__init__.py
. This way,torch.hub
doesn't needpytorch-lightning
to load models. Replace yourfrom asteroid import System
calls byfrom 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 fromtorch_utils
e.gfrom asteroid.torch_utils import pad_x_to_y
. Instead, we can usefrom 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++
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
- [src & tests] Depend on torch_optimizer for optimizers (#116) (@mpariente)
- [src & tests] Upgrade pytorch-lightning to >= 0.7.3 (#115) (@mpariente)
- [src] Reverts part of #112 (0.2.1 should be fully backward compatible) (@mpariente)
- [src] Change .pth convention for asteroid-models (#111) (@mpariente)
- [src] Split blocks in convolutional and recurrent (#107) (@mpariente)
- [install] Update pb_bss_eval to zero-mean si-sdr (@mpariente)
- [egs] Remove python installs in recipes (#100) (@mpariente)
- [egs] Remove abs path in recipes (#99) (@mpariente)
- [egs] Add DC requirements.txt (@mpariente)
- [egs] Remove file headers (@mpariente)
- [src] Remove Chimerapp from blocks.py (#98) (@mpariente)
- [egs] Better logging : copy logs to expdir (#102) (@mpariente)
- [src] Delete wav.py (@mpariente)
- [egs] Delete unused file (@mpariente)
- [ci] Restore old travis.yml (reverts part of #61) (@mpariente)
- [egs] Utils symlink sms_wsj (@mpariente)
- [egs] Utils symlink wham/TwoStep (@mpariente)
- [egs] Utils symlink wham/DPRNN (@mpariente)
- [egs] Utils symlink LibriMix (@mpariente)
- [src & egs] Replace WSJ0-mix Dataset (#97) (@mpariente)
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
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 stringbN
. (#60) get_metrics
method and strict dependency onpb_bss_eval
(#57) (#62)
Bug fixes
- Fix PITLossWrapper usage on GPU (#55)
More recipes & datasets
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
andDecoder
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 itspost_process_inputs
andapply_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