Skip to main content

PyTorch-based audio source separation toolkit

Project description

Asteroid : Audio Source Separation on steroids

Build Status codecov

Slack

: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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asteroid-0.0.1.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asteroid-0.0.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

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

Hashes for asteroid-0.0.1.tar.gz
Algorithm Hash digest
SHA256 cc89b185b1aa34c21d90e8cdd4e646ecada9ad42fe42448006aa6b0bf0ea2fbb
MD5 e00f53e0f503784f296e3bad6ebdfedc
BLAKE2b-256 f52c3977627ca5e386216705414a42656cae4f728cff981a52cbe9c25cadc775

See more details on using hashes here.

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

Hashes for asteroid-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffb208421f049875b6fc91bd551730fbc4e5d46a1ac65999625a5684bd6e8027
MD5 6decca2a9d5265cda42267d69eca7648
BLAKE2b-256 f1e5058da9c298127e74f0c7134cf2047de853bf19b215584cdb7b47812bc56a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page