Mercurial > hg > emotion-detection-top-level
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 |