PyTorch-based audio source separation toolkit
Project description
Asteroid : Audio Source Separation on steroids
:construction: :warning: Under development :warning: :construction:
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 architectures
and a set of recipes to reproduce some papers.
Asteroid is intended to be a community-based project
so hop on and help us !
Guiding principles
- User friendliness. Asteroid's API offers simple solutions for most common use cases.
- 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, training and evaluation in a same script.
Highlights
Installation
In order to install Asteroid, clone the repo and install it using pip or python :
git clone https://github.com/mpariente/AsSteroid
cd AsSteroid
# Install with pip (in editable mode)
pip install -e .
# Install with python
python setup.py install
Running a recipe
cd egs/wham/ConvTasNet
./run.sh
More information in egs/README.md.
Recipes
- ConvTasnet (Luo et al.)
- Tasnet (Luo et al.)
- Deep clustering (Hershey et al. and Isik et al.)
- Chimera ++ (for ) (Luo et al. and Wang et al.)
- FurcaNeXt (Shi et al.)
- DualPathRNN (Luo et al.)
- Two step learning (Tzinis et al.)
Writing your own recipe
Contributing
See our contributing guidelines.
Codebase structure
├── asteroid # Python package / Source code
│ ├── data # Data classes, DalatLoaders maker.
│ ├── engine # Training classes : losses, optimizers and trainer.
│ ├── filterbanks # Common filterbanks and related classes.
│ ├── masknn # Separation building blocks and architectures.
│ └── utils.py
├── examples # Simple asteroid examples
└── egs # Recipes for all datasets and systems.
│ ├── wham # Recipes for one dataset (WHAM)
│ │ ├── ConvTasNet # ConvTasnet systme on the WHAM dataset.
│ │ │ └── ... # Recipe's structure. See egs/README.md for more info
│ │ ├── Your recipe # More recipes on the same dataset (Including yours)
│ │ ├── ...
│ │ └── DualPathRNN
│ └── Your dataset # More datasets (Including yours)
Building the docs
To build the docs, you'll need Sphinx, a theme and some other package
# Start by installing the required packages
cd docs/
pip install -r requirements.txt
# Build the docs
make html
# View it ! (Change firefox by your favorite browser)
firefox build/html/index.html
If you rebuild the docs, don't forget to run make clean before it.
You can add this to your .bashrc, source it and run run_docs
for the docs/ folder
alias run_docs='make clean; make html; firefox build/html/index.html'
Why Asteroid ?
Audio source separation and speech enhancement are fast evolving fields with a growing number of papers submitted to conferences each year. While datasets such as wsj0-{2, 3}mix, WHAM or MS-SNSD are being shared, there has been little effort to create common codebases for development and evaluation of source separation and speech enhancement algorithms. Here is one !
Remote TensorBoard visualization
# 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/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asteroid-0.0.1.tar.gz.
File metadata
- Download URL: asteroid-0.0.1.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc89b185b1aa34c21d90e8cdd4e646ecada9ad42fe42448006aa6b0bf0ea2fbb
|
|
| MD5 |
e00f53e0f503784f296e3bad6ebdfedc
|
|
| BLAKE2b-256 |
f52c3977627ca5e386216705414a42656cae4f728cff981a52cbe9c25cadc775
|
File details
Details for the file asteroid-0.0.1-py3-none-any.whl.
File metadata
- Download URL: asteroid-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffb208421f049875b6fc91bd551730fbc4e5d46a1ac65999625a5684bd6e8027
|
|
| MD5 |
6decca2a9d5265cda42267d69eca7648
|
|
| BLAKE2b-256 |
f1e5058da9c298127e74f0c7134cf2047de853bf19b215584cdb7b47812bc56a
|