Skip to content

Commit

Permalink
Adds README
Browse files Browse the repository at this point in the history
  • Loading branch information
fakufaku committed May 14, 2020
1 parent 58c722c commit 2d53c2b
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
59 changes: 59 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Generalized Minimal Distortion Principle for Blind Source Separation

## Abstract

We revisit the source image estimation problem from blind source separation
(BSS). We generalize the traditional minimum distortion principle to maximum
likelihood estimation with a model for the residual spectrograms. Because
residual spectrograms typically contain other sources, we propose to use a
mixed-norm model that lets us finely tune sparsity in time and frequency. We
propose to carry out the minimization of the mixed-norm via
majorization-maximization optimization, leading to an iteratively reweighted
least-squares algorithm. The algorithm balances well efficiency and ease of
implementation. We assess the performance of the proposed method as applied
to two well-known determined BSS and one joint BSS-dereverberation algorithms.
We find out that it is possible to tune the parameters to improve separation by
up to 2 dB, with no increase in distortion, and at little computational cost.
The method thus provides a cheap and easy way to boost the performance of
blind source separation.

## Author

[Robin Scheibler](http://robinscheibler.org) (firstname.name@gmail.org)

## Run the experiments

The easiest is to rely on [anaconda](https://www.anaconda.com/products/individual) or [miniconda](https://docs.conda.io/en/latest/miniconda.html) for the installation.

We use [ipyparallel](https://ipyparallel.readthedocs.io/en/latest/) to parallelize the experiment.

### Setup

```bash
# prepare the environment
git clone --recursive https://git.linecorp.com/robin-scheibler/generalized_minimal_distortion_principle.git
cd generalized_minimal_distortion_principle
conda env create -f environment.yml
conda activate gmdp

# generate the dataset
cd bss_speech_dataset
python ../config_dataset.json
cd ..
```

### Run

```bash
# start the engines
ipcluster start --daemonize

# run experiment for AuxIVA and ILRMA
python ./paper_simulation.py ./experiment1_config.json

# run experiment for ILRMA-T
python ./paper_simulation.py ./experiment1_config.json

# stop the engines
ipcluster stop
```
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: sparse_minimum_distortion
name: gmdp
dependencies:
- python=3.7
- numpy
Expand Down

0 comments on commit 2d53c2b

Please sign in to comment.