Fast Multichannel Nonnegative Matrix Factorization (FastMNMF)

FastMNMF

Blind Source Separation using Fast Multichannel Nonnegative Matrix Factorization (FastMNMF)

pyroomacoustics.bss.fastmnmf.fastmnmf(X, n_src=None, n_iter=30, n_components=8, mic_index=0, W0=None, accelerate=True, callback=None)

Implementation of FastMNMF algorithm presented in

K. Sekiguchi, A. A. Nugraha, Y. Bando, K. Yoshii, Fast Multichannel Source Separation Based on Jointly Diagonalizable Spatial Covariance Matrices, EUSIPCO, 2019. [arXiv] [IEEE]

The code of FastMNMF with GPU support and FastMNMF-DP which integrates DNN-based source model into FastMNMF is available on https://github.com/sekiguchi92/SoundSourceSeparation

Parameters
  • X (ndarray (nframes, nfrequencies, nchannels)) – STFT representation of the observed signal

  • n_src (int, optional) – The number of sound sources (default None). If None, n_src is set to the number of microphones

  • n_iter (int, optional) – The number of iterations (default 30)

  • n_components (int, optional) – Number of components in the non-negative spectrum (default 8)

  • mic_index (int or 'all', optional) – The index of microphone of which you want to get the source image (default 0). If ‘all’, return the source images of all microphones

  • W0 (ndarray (nfrequencies, nchannels, nchannels), optional) – Initial value for diagonalizer Q (default None). If None, identity matrices are used for all frequency bins.

  • accelerate (bool, optional) – If true, the basis and activation of NMF are updated simultaneously (default True)

  • callback (func, optional) – A callback function called every 10 iterations, allows to monitor convergence

Returns

  • If mic_index is int, returns an (nframes, nfrequencies, nsources) array.

  • If mic_index is ‘all’, returns an (nchannels, nframes, nfrequencies, nsources) array.