c@0
|
1 %% Separation Algorithms
|
c@0
|
2 %
|
c@0
|
3 % Separation algorithms passed to the <help_MASSEF_execute.html
|
c@0
|
4 % MASSEF.execute> method have a small number of requirements. Specifically,
|
c@0
|
5 % the algorithm should be implemented as a class, with some required
|
c@0
|
6 % methods and properties, detailed below.
|
c@0
|
7 %
|
c@0
|
8 %% Required Methods
|
c@0
|
9 %
|
c@0
|
10 % There is only one required method for the separation algorithm:
|
c@0
|
11 % |separate|. The algorithm may have any number of additional methods,
|
c@0
|
12 % which may accept and return any number of arguments.
|
c@0
|
13 %
|
c@0
|
14 % The |separate| method should have the following signature:
|
c@0
|
15 %
|
c@0
|
16 % [signals,masks,est_azis,est_eles] = obj.separate(mixture)
|
c@0
|
17 %
|
c@0
|
18 % where |obj| is the separation algorithm object, |signals| are the
|
c@0
|
19 % estimated signals, |masks| are time-frequency masks, |est_azis| are the
|
c@0
|
20 % estimated azimuths, |est_eles| are the estimated elevations, and
|
c@0
|
21 % |mixture| is the time-domain mixture signal.
|
c@0
|
22 %
|
c@0
|
23 % Time-domain signals may contain any number of channels, stored in the
|
c@0
|
24 % columns of their matrices. In addition, |signals| may have a third
|
c@0
|
25 % dimension, used to carry different estimations. Multiple estimations
|
c@0
|
26 % facilitate, for example, outputs due to binary and ratio masks. The masks
|
c@0
|
27 % in |masks| should have dimensions |[N F C E]| where |N| is the number of
|
c@0
|
28 % frames, |F| is the number of frequency bins/channels, |C| is the number
|
c@0
|
29 % of audio channels, and |E| is the number of estimations. |est_azis| and
|
c@0
|
30 % |est_eles| may be a vector, with an element for each source; the first
|
c@0
|
31 % element is the target source, subsequent elements are interferers.
|
c@0
|
32 %
|
c@0
|
33 % Although all outputs must be provided by the method, outputs that are not
|
c@0
|
34 % estimated may be specified as an empty array.
|
c@0
|
35 %
|
c@0
|
36 %% Required Properties
|
c@0
|
37 %
|
c@0
|
38 % There are two required properties for the separation algorithm:
|
c@0
|
39 %
|
c@0
|
40 % * |label|—a label for the instance of the algorithm (char array);
|
c@0
|
41 % and
|
c@0
|
42 % * |estTag|—tags for the estimated outputs (cell array of strings).
|
c@0
|
43 %
|
c@0
|
44 % These properties are both reported in the results. The algorithm may have
|
c@0
|
45 % any number of additional properties.
|
c@0
|
46 %
|
c@0
|
47 %% MASSEFseparator base class
|
c@0
|
48 %
|
c@0
|
49 % The |MASSEFseparator| class is provided for use as a base class for
|
c@0
|
50 % separation algorithms. The |separate()| method is abstract and hence must
|
c@11
|
51 % be implemented in the derived class. See the <help_Example.html Example>
|
c@11
|
52 % page for an example of the use of |MASSEFseparator|.
|
c@0
|
53 %
|
c@0
|
54 %% See also
|
c@0
|
55 % <help_MASSEF.html MASSEF>, <help_MASSEF_execute.html MASSEF.execute>.
|
c@0
|
56 %
|
c@0
|
57 % <html>
|
c@0
|
58 % <hr>
|
c@37
|
59 % <p>Copyright © 2017 <a href="http://www.surrey.ac.uk">University of Surrey</a><br>
|
c@0
|
60 % <a href="http://iosr.uk">Institute of Sound Recording, University of Surrey, UK</a></p>
|
c@0
|
61 % </html>
|