comparison Code/Descriptors/Matlab/MPEG7/FromWeb/VoiceSauce/func_parseParameters.m @ 4:92ca03a8fa99 tip

Update to ICASSP 2013 benchmark
author Dawn Black
date Wed, 13 Feb 2013 11:02:39 +0000
parents
children
comparison
equal deleted inserted replaced
3:e1cfa7765647 4:92ca03a8fa99
1 function new_paramlist = func_parseParameters(paramlist, handles, matfile, data_len)
2 % new_paramlist = func_parseParameters(paramlist, handles, matfile, data_len)
3 % sort through the parameter list and find dependencies, then output a new
4 % parameter list with the new param list
5 % also check data_len to ensure existing parameters have the same length
6 %
7 % Author: Yen-Liang Shue, Speech Processing and Auditory Perception Laboratory, UCLA
8 % Copyright UCLA SPAPL 2009
9
10 VSData = guidata(handles.VSHandle);
11
12 % handles carries the F0 and FMT methods
13 F0algorithm = VSData.vars.F0algorithm;
14 FMTalgorithm = VSData.vars.FMTalgorithm;
15
16 % vector stores which param to enable:
17 %0 = disable, 1 = calculate, 2 = conditional calculate
18 new_param_vec = zeros(length(func_getparameterlist()), 1);
19
20 for k=1:length(paramlist)
21 if (strcmp(paramlist{k}, 'H1*-A1*, H1*-A2*, H1*-A3*'))
22 new_param_vec(func_getparameterlist('H1*-A1*, H1*-A2*, H1*-A3*')) = 1;
23 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
24 new_param_vec(func_getparameterlist(FMTalgorithm)) = new_param_vec(func_getparameterlist(FMTalgorithm)) + 2;
25 new_param_vec(func_getparameterlist('H1, H2, H4')) = new_param_vec(func_getparameterlist('H1, H2, H4')) + 2;
26 new_param_vec(func_getparameterlist('A1, A2, A3')) = new_param_vec(func_getparameterlist('A1, A2, A3')) + 2;
27
28 elseif (strcmp(paramlist{k}, 'H1*-H2*, H2*-H4*'))
29 new_param_vec(func_getparameterlist('H1*-H2*, H2*-H4*')) = 1;
30 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
31 new_param_vec(func_getparameterlist(FMTalgorithm)) = new_param_vec(func_getparameterlist(FMTalgorithm)) + 2;
32 new_param_vec(func_getparameterlist('H1, H2, H4')) = new_param_vec(func_getparameterlist('H1, H2, H4')) + 2;
33
34 elseif (strcmp(paramlist{k}, 'Energy'))
35 new_param_vec(func_getparameterlist('Energy')) = 1;
36 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
37
38 elseif (strcmp(paramlist{k}, 'CPP'))
39 new_param_vec(func_getparameterlist('CPP')) = 1;
40 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
41
42 elseif (strcmp(paramlist{k}, 'Harmonic to Noise Ratios - HNR'))
43 new_param_vec(func_getparameterlist('Harmonic to Noise Ratios - HNR')) = 1;
44 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
45
46 elseif (strcmp(paramlist{k}, 'Subharmonic to Harmonic Ratio/F0 - SHR, (shr)F0'))
47 new_param_vec(func_getparameterlist('Subharmonic to Harmonic Ratio/F0 - SHR, (shr)F0')) = 1;
48
49 elseif (strcmp(paramlist{k}, 'A1, A2, A3'))
50 new_param_vec(func_getparameterlist('A1, A2, A3')) = 1;
51 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
52 new_param_vec(func_getparameterlist(FMTalgorithm)) = new_param_vec(func_getparameterlist(FMTalgorithm)) + 2;
53
54 elseif (strcmp(paramlist{k}, 'H1, H2, H4'))
55 new_param_vec(func_getparameterlist('H1, H2, H4')) = 1;
56 new_param_vec(func_getparameterlist(F0algorithm)) = new_param_vec(func_getparameterlist(F0algorithm)) + 2;
57
58 elseif (strcmp(paramlist{k}, 'F1, F2, F3, F4 (Snack)'))
59 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Snack)')) = 1;
60
61 elseif (strcmp(paramlist{k}, 'F1, F2, F3, F4 (Praat)'))
62 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Praat)')) = 1;
63
64 elseif (strcmp(paramlist{k}, 'F1, F2, F3, F4 (Other)') && VSData.vars.FormantsOtherEnable == 1)
65 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Other)')) = 1;
66
67 elseif (strcmp(paramlist{k}, 'F0 (Straight)'))
68 new_param_vec(func_getparameterlist('F0 (Straight)')) = 1;
69
70 elseif (strcmp(paramlist{k}, 'F0 (Snack)'))
71 new_param_vec(func_getparameterlist('F0 (Snack)')) = 1;
72
73 elseif (strcmp(paramlist{k}, 'F0 (Praat)'))
74 new_param_vec(func_getparameterlist('F0 (Praat)')) = 1;
75
76 elseif (strcmp(paramlist{k}, 'F0 (Other)') && VSData.vars.F0OtherEnable == 1)
77 new_param_vec(func_getparameterlist('F0 (Other)')) = 1;
78 end
79
80 end
81
82 % check the conditional parameters to see whether they already exist in the
83 % matfile
84 if (exist(matfile, 'file'))
85 matdata = load(matfile);
86
87 if (mod(new_param_vec(func_getparameterlist('F0 (Straight)')), 2) == 0 && isfield(matdata, 'strF0'))
88 if (length(matdata.strF0) == data_len)
89 new_param_vec(func_getparameterlist('F0 (Straight)')) = 0;
90 end
91 end
92
93 if (mod(new_param_vec(func_getparameterlist('F0 (Snack)')), 2) == 0 && isfield(matdata, 'sF0'))
94 if (length(matdata.sF0) == data_len)
95 new_param_vec(func_getparameterlist('F0 (Snack)')) = 0;
96 end
97 end
98
99 if (mod(new_param_vec(func_getparameterlist('F0 (Praat)')), 2) == 0 && isfield(matdata, 'pF0'))
100 if (length(matdata.pF0) == data_len)
101 new_param_vec(func_getparameterlist('F0 (Praat)')) = 0;
102 end
103 end
104
105 if (mod(new_param_vec(func_getparameterlist('F0 (Other)')), 2) == 0 && isfield(matdata, 'oF0'))
106 if (length(matdata.sF0) == data_len)
107 new_param_vec(func_getparameterlist('F0 (Other)')) = 0;
108 end
109 end
110
111 if (mod(new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Snack)')), 2) == 0 && isfield(matdata, 'sF1'))
112 if (length(matdata.sF1) == data_len)
113 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Snack)')) = 0;
114 end
115 end
116
117 if (mod(new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Praat)')), 2) == 0 && isfield(matdata, 'pF1'))
118 if (length(matdata.sF1) == data_len)
119 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Praat)')) = 0;
120 end
121 end
122
123 if (mod(new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Other)')), 2) == 0 && isfield(matdata, 'oF1'))
124 if (length(matdata.sF1) == data_len)
125 new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Other)')) = 0;
126 end
127 end
128
129 if (mod(new_param_vec(func_getparameterlist('A1, A2, A3')), 2) == 0 && isfield(matdata, 'A1'))
130 if (length(matdata.A1) == data_len)
131 new_param_vec(func_getparameterlist('A1, A2, A3')) = 0;
132 end
133 end
134
135 if (mod(new_param_vec(func_getparameterlist('H1, H2, H4')), 2) == 0 && isfield(matdata, 'H1'))
136 if (length(matdata.H1) == data_len)
137 new_param_vec(func_getparameterlist('H1, H2, H4')) = 0;
138 end
139 end
140
141 end
142
143 new_param_vec(new_param_vec ~= 0) = 1;
144
145 % now build list with the proper processing order of the parameters
146 new_paramlist = cell(sum(new_param_vec), 1);
147 cnt = 1;
148
149 if (new_param_vec(func_getparameterlist('F0 (Straight)')) == 1)
150 new_paramlist{cnt} = 'F0 (Straight)';
151 cnt = cnt + 1;
152 end
153
154 if (new_param_vec(func_getparameterlist('F0 (Snack)')) == 1)
155 new_paramlist{cnt} = 'F0 (Snack)';
156 cnt = cnt + 1;
157 end
158
159 if (new_param_vec(func_getparameterlist('F0 (Praat)')) == 1)
160 new_paramlist{cnt} = 'F0 (Praat)';
161 cnt = cnt + 1;
162 end
163
164 if (new_param_vec(func_getparameterlist('F0 (Other)')) == 1 && VSData.vars.F0OtherEnable == 1)
165 new_paramlist{cnt} = 'F0 (Other)';
166 cnt = cnt + 1;
167 end
168
169 if (new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Snack)')) == 1)
170 new_paramlist{cnt} = 'F1, F2, F3, F4 (Snack)';
171 cnt = cnt + 1;
172 end
173
174 if (new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Praat)')) == 1)
175 new_paramlist{cnt} = 'F1, F2, F3, F4 (Praat)';
176 cnt = cnt + 1;
177 end
178
179 if (new_param_vec(func_getparameterlist('F1, F2, F3, F4 (Other)')) == 1 && VSData.vars.FormantsOtherEnable == 1)
180 new_paramlist{cnt} = 'F1, F2, F3, F4 (Other)';
181 cnt = cnt + 1;
182 end
183
184 if (new_param_vec(func_getparameterlist('A1, A2, A3')) == 1)
185 new_paramlist{cnt} = 'A1, A2, A3';
186 cnt = cnt + 1;
187 end
188
189 if (new_param_vec(func_getparameterlist('H1, H2, H4')) == 1)
190 new_paramlist{cnt} = 'H1, H2, H4';
191 cnt = cnt + 1;
192 end
193
194 if (new_param_vec(func_getparameterlist('Energy')) == 1)
195 new_paramlist{cnt} = 'Energy';
196 cnt = cnt + 1;
197 end
198
199 if (new_param_vec(func_getparameterlist('CPP')) == 1)
200 new_paramlist{cnt} = 'CPP';
201 cnt = cnt + 1;
202 end
203
204 if (new_param_vec(func_getparameterlist('Harmonic to Noise Ratios - HNR')) == 1)
205 new_paramlist{cnt} = 'Harmonic to Noise Ratios - HNR';
206 cnt = cnt + 1;
207 end
208
209 if (new_param_vec(func_getparameterlist('Subharmonic to Harmonic Ratio/F0 - SHR, (shr)F0')) == 1)
210 new_paramlist{cnt} = 'Subharmonic to Harmonic Ratio/F0 - SHR, (shr)F0';
211 cnt = cnt + 1;
212 end
213
214 if (new_param_vec(func_getparameterlist('H1*-H2*, H2*-H4*')) == 1)
215 new_paramlist{cnt} = 'H1*-H2*, H2*-H4*';
216 cnt = cnt + 1;
217 end
218
219 if (new_param_vec(func_getparameterlist('H1*-A1*, H1*-A2*, H1*-A3*')) == 1)
220 new_paramlist{cnt} = 'H1*-A1*, H1*-A2*, H1*-A3*';
221 cnt = cnt + 1;
222 end
223