Fast Multichannel Nonnegative Matrix Factorization (FastMNMF)

FastMNMF

Blind Source Separation based on Fast Multichannel Nonnegative Matrix Factorization (FastMNMF)

pyroomacoustics.bss.fastmnmf.fastmnmf(X, n_src=None, n_iter=30, W0=None, n_components=4, callback=None, mic_index=0, interval_update_Q=1, interval_normalize=10, initialize_ilrma=False)

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]

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/SpeechEnhancement

Parameters:
  • X (ndarray (nframes, nfrequencies, nchannels)) – STFT representation of the observed signal
  • n_src (int, optional) – The number of sound sources (if n_src = None, n_src is set to the number of microphone)
  • n_iter (int, optional) – The number of iterations
  • W0 (ndarray (nfrequencies, nchannels, nchannels), optional) – Initial value for diagonalizer Q Demixing matrix can be used as the initial value
  • n_components (int, optional) – Number of components in the non-negative spectrum
  • callback (func, optional) – A callback function called every 10 iterations, allows to monitor convergence
  • mic_index (int, optional) – The index of microphone of which you want to get the source image
  • interval_update_Q (int, optional) – The interval of updating Q
  • interval_normalize (int, optional) – The interval of parameter normalization
  • initialize_ilrma (boolean, optional) – Initialize diagonalizer Q by using ILRMA
Returns:

separated spectrogram – An (nframes, nfrequencies, nsources) array.

Return type:

numpy.ndarray