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