Asteroid is a Pytorch-based source separation and speech enhancement
API that enables fast experimentation on common datasets.
It comes with a source code written to support a large range
of datasets, architectures, loss functions etc... and a set of
recipes to reproduce some important papers.
Asteroid is intended to be a community-based project
so hop on and help us !
Please, if you have found a bug, open an issue,
if you solved it, open a pull request !
Same goes for new features, tell us what you want or help us building it !
Don't hesitate to join the slack
and ask questions / suggest new features there as well !
In order to install Asteroid, clone the repo and install it using pip or python :
git clone https://github.com/mpariente/asteroid
cd asteroid
# Install with pip in editable mode
pip install -e .
# Or, install with python in dev mode
python setup.py develop
Asteroid is also on PyPI, you can install the latest release
with pip install asteroid
Here is a list of notebooks showing example usage of Asteroid's features.
Running the recipes requires additional packages in most cases, we recommend running :
# from asteroid/
pip install -r requirements.txt
Then choose the recipe you want to run and run it !
cd egs/wham/ConvTasNet
. ./run.sh
More information in egs/README.md.
- ConvTasnet (Luo et al.)
- Tasnet (Luo et al.)
- Deep clustering (Hershey et al. and Isik et al.)
- Chimera ++ (Luo et al. and Wang et al.)
- FurcaNeXt (Contibutions welcome) (Shi et al.)
- DualPathRNN (Luo et al.)
- Two step learning (Coming) (Tzinis et al.)
- Wavesplit (Coming) (Zeghidour and Grangier)
- WSJ0-2mix / WSJ03mix (Hershey et al.)
- WHAM (Wichern et al.)
- WHAMR (Maciejewski et al.)
- Microsoft DNS Challenge (Chandan et al.)
- SMS_WSJ (Drude et al.)
- MUSDB18 (Coming) (Raffi et al.)
- FUSS (Wisdom et al.)
See our contributing guidelines.
# Launch tensorboard remotely (default port is 6006)
tensorboard --logdir exp/tmp/lightning_logs/ --port tf_port
# Open port-forwarding connection. Add -Nf option not to open remote.
ssh -L local_port:localhost:tf_port user@ip
Then open http://localhost:local_port/
. If both ports are the same, you can
click on the tensorboard URL given on the remote, it's just more practical.
- Modularity. Building blocks are thought and designed to be seamlessly plugged together. Filterbanks, encoders, maskers, decoders and losses are all common building blocks that can be combined in a flexible way to create new systems.
- Extensibility. Extending Asteroid with new features is simple. Add a new filterbank, separator architecture, dataset or even recipe very easily.
- Reproducibility. Recipes provide an easy way to reproduce results with data preparation, system design, training and evaluation in a same script. This is an essential tool for the community !