c@0: %% Separation Algorithms c@0: % c@0: % Separation algorithms passed to the method have a small number of requirements. Specifically, c@0: % the algorithm should be implemented as a class, with some required c@0: % methods and properties, detailed below. c@0: % c@0: %% Required Methods c@0: % c@0: % There is only one required method for the separation algorithm: c@0: % |separate|. The algorithm may have any number of additional methods, c@0: % which may accept and return any number of arguments. c@0: % c@0: % The |separate| method should have the following signature: c@0: % c@0: % [signals,masks,est_azis,est_eles] = obj.separate(mixture) c@0: % c@0: % where |obj| is the separation algorithm object, |signals| are the c@0: % estimated signals, |masks| are time-frequency masks, |est_azis| are the c@0: % estimated azimuths, |est_eles| are the estimated elevations, and c@0: % |mixture| is the time-domain mixture signal. c@0: % c@0: % Time-domain signals may contain any number of channels, stored in the c@0: % columns of their matrices. In addition, |signals| may have a third c@0: % dimension, used to carry different estimations. Multiple estimations c@0: % facilitate, for example, outputs due to binary and ratio masks. The masks c@0: % in |masks| should have dimensions |[N F C E]| where |N| is the number of c@0: % frames, |F| is the number of frequency bins/channels, |C| is the number c@0: % of audio channels, and |E| is the number of estimations. |est_azis| and c@0: % |est_eles| may be a vector, with an element for each source; the first c@0: % element is the target source, subsequent elements are interferers. c@0: % c@0: % Although all outputs must be provided by the method, outputs that are not c@0: % estimated may be specified as an empty array. c@0: % c@0: %% Required Properties c@0: % c@0: % There are two required properties for the separation algorithm: c@0: % c@0: % * |label|—a label for the instance of the algorithm (char array); c@0: % and c@0: % * |estTag|—tags for the estimated outputs (cell array of strings). c@0: % c@0: % These properties are both reported in the results. The algorithm may have c@0: % any number of additional properties. c@0: % c@0: %% MASSEFseparator base class c@0: % c@0: % The |MASSEFseparator| class is provided for use as a base class for c@0: % separation algorithms. The |separate()| method is abstract and hence must c@11: % be implemented in the derived class. See the c@11: % page for an example of the use of |MASSEFseparator|. c@0: % c@0: %% See also c@0: % , . c@0: % c@0: % c@0: %
c@37: %

Copyright © 2017 University of Surrey
c@0: % Institute of Sound Recording, University of Surrey, UK

c@0: %