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