Trinicon

pyroomacoustics.bss.trinicon.trinicon(signals, w0=None, filter_length=2048, block_length=None, n_blocks=8, alpha_on=None, j_max=10, delta_max=0.0001, sigma2_0=1e-07, mu=0.001, lambd_a=0.2, return_filters=False)

Implementation of the TRINICON Blind Source Separation algorithm as described in

R. Aichner, H. Buchner, F. Yan, and W. Kellermann A real-time blind source separation scheme and its application to reverberant and noisy acoustic environments, Signal Processing, 86(6), 1260-1277. doi:10.1016/j.sigpro.2005.06.022, 2006. [pdf]

Specifically, adaptation of the pseudo-code from Table 1.

The implementation is hard-coded for 2 output channels.

Parameters
  • signals (ndarray (nchannels, nsamples)) – The microphone input signals (time domain)

  • w0 (ndarray (nchannels, nsources, nsamples), optional) – Optional initial value for the demixing filters

  • filter_length (int, optional) – The length of the demixing filters, if w0 is provided, this option is ignored

  • block_length (int, optional) – Block length (default 2x filter_length)

  • n_blocks (int, optional) – Number of blocks processed at once (default 8)

  • alpha_on (int, optional) – Online overlap factor (default n_blocks)

  • j_max (int, optional) – Number of offline iterations (default 10)

  • delta_max (float, optional) – Regularization parameter, this sets the maximum value of the regularization term (default 1e-4)

  • sigma2_0 (float, optional) – Regularization parameter, this sets the reference (machine?) noise level in the regularization (default 1e-7)

  • mu (float, optional) – Offline update step size (default 0.001)

  • lambd_a (float, optional) – Online forgetting factor (default 0.2)

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

Returns

Returns an (nsources, nsamples) array. Also returns the demixing matrix (nchannels, nsources, nsamples) if return_filters keyword is True.

Return type

ndarray