Flexible Audio Source Separation Toolbox
FASST Documentation

Table of Contents

Welcome to the home page for the C++ implementation of the FASST toolbox. This page is a quickstart guide for users. Other pages of this documentation describe the internal structure of FASST and the build process.

Have a look to the related release note for change logs.

Download installers (Windows or MacOs)

MacOS and windows installers are designed to install FASST binaries on your computer and copy a folder containing three example scripts to call FASST. These example scripts are described in the dedicated section.

Download source code


This software is released under the Q Public License Version 1.0. Please find a copy of the license at http://opensource.org/licenses/QPL-1.0.


If you use FASST and obtain scientific results that you publish, please acknowledge the usage of FASST by referencing the following articles:

FASST compilation

The compilation has been tested and is known to succeed on the following systems:

Please find a documentation of how to build FASST on your platform at the following links:

Run the examples

The typical workflow is to use some scripts (Python or Matlab) to initialize the source model, write it to an XML file and call FASST binaries.

This FASST version provides three example scripts to show you how to use FASST in different contexts:

These example scripts are located under the example path requested during the installation step (on subfolder per example).

In Python

Examples have been tested with Python 2.7

Both examples 1 and 3 are provided in Python. In order to run them, you have to install a python 2 environment on your computer. If you already have installed a python 2 environment, please make sure numpy and scipy packages are available. Otherwise, you can use guidelines provided below.

On Windows we recommend that you install one of the following python environment:

On Linux you can install Python and dependencies with the terminal as follow:

sudo apt-get install python-numpy
sudo apt-get install python-dev
sudo pip2 install scipy    

On macOS you can install Python with the terminal as follow (with brew):

If brew package manager is not installed, install it:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then install Python and dependencies:

brew install python
pip2 install numpy
pip2 install spicy

Once your Python environment installed, execute the .py file located in the example1 or example3 folder.

In Matlab

Examples scripts have been tested with Matlab R2017a

In order to run example script in Matlab, just open a Matlab session, 'cd' to the example folder and execute the .m file.

Write your own script

As a prerequisite, you need to be familiar with the FASST source model. If not, you can refer to this paper where it is fully described.

You have to be aware that some features that are present in the MATLAB version of FASST are still not implemented, here is a quick list:
  • GMM and HMM spectral models
  • Partially-adaptive spectral parameters
  • Only one additive noise model

FASST is decomposed in 3 different executables. Here are their descriptions and usages:

Compute mixture covariance matrix

Usage:  comp-rx input-wav-file input-xml-file output-bin-dir

Estimate source parameters

Usage:  model-estimation input-xml-file input-bin-dir output-xml-file

Separate sources

Usage:  source-estimation input-wav-file input-xml-file input-bin-dir output-wav-dir


In case you have any trouble and want to contact a human being, you can send an email to fasst.nosp@m.-sup.nosp@m.port@.nosp@m.inri.nosp@m.a.fr. We will do our best to answer quickly (we like feedback too).