Independent Vector Analysis (AuxIVA)

Blind Source Separation using Independent Vector Analysis with Auxiliary Function

2018 (c) Robin Scheibler, MIT License

pyroomacoustics.bss.auxiva.auxiva(X, n_src=None, n_iter=20, proj_back=True, W0=None, f_contrast=None, f_contrast_args=[], return_filters=False, callback=None)

Implementation of AuxIVA algorithm for BSS presented in

N. Ono, Stable and fast update rules for independent vector analysis based on auxiliary function technique, Proc. IEEE, WASPAA, 2011.

Parameters:
  • X (ndarray (nframes, nfrequencies, nchannels)) – STFT representation of the 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
  • f_contrast (dict of functions) – A dictionary with two elements ‘f’ and ‘df’ containing the contrast function taking 3 arguments This should be a ufunc acting element-wise on any array
  • 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:

  • Returns an (nframes, nfrequencies, nsources) array. Also returns
  • the demixing matrix (nfrequencies, nchannels, nsources)
  • if return_values keyword is True.