Independent Low-Rank Matrix Analysis (ILRMA)


Blind Source Separation using Independent Low-Rank Matrix Analysis (ILRMA).

pyroomacoustics.bss.ilrma.ilrma(X, n_src=None, n_iter=20, proj_back=True, W0=None, n_components=2, return_filters=False, callback=None)

Implementation of ILRMA algorithm without partitioning function for BSS presented in

D. Kitamura, N. Ono, H. Sawada, H. Kameoka, H. Saruwatari, Determined blind source separation unifying independent vector analysis and nonnegative matrix factorization, IEEE/ACM Trans. ASLP, vol. 24, no. 9, pp. 1626-1641, Sept. 2016

D. Kitamura, N. Ono, H. Sawada, H. Kameoka, and H. Saruwatari Determined Blind Source Separation with Independent Low-Rank Matrix Analysis, in Audio Source Separation, S. Makino, Ed. Springer, 2018, pp. 125-156.

  • X (ndarray (nframes, nfrequencies, nchannels)) – STFT representation of the observed signal n_src: int, optional The number of sources or independent components

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

  • proj_back (bool, optional) – Scaling on first mic by back projection (default True)

  • W0 (ndarray (nfrequencies, nchannels, nchannels), optional) – Initial value for demixing matrix

  • n_components (int) – Number of components in the non-negative spectrum

  • return_filters (bool) – If true, the function will return the demixing matrix too

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


  • Returns an (nframes, nfrequencies, nsources) array. Also returns

  • the demixing matrix W (nfrequencies, nchannels, nsources)

  • if return_filters keyword is True.