diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2011-11-22 06:57:10 +0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2012-07-03 22:39:42 +0400 |
commit | d18eeb21817376f69516d4d1343b753a3674e041 (patch) | |
tree | 18279400380d643c658ff128f9817b85a26bcb0c | |
parent | 65278187f1352d3762900853a98984aa2770e297 (diff) |
Down to 17 features with same error rate
-rw-r--r-- | src/analysis.c | 21 | ||||
-rw-r--r-- | src/mlp_data.c | 104 |
2 files changed, 53 insertions, 72 deletions
diff --git a/src/analysis.c b/src/analysis.c index 3dfc428f..7fd4b19c 100644 --- a/src/analysis.c +++ b/src/analysis.c @@ -281,15 +281,16 @@ void tonality_analysis(TonalityAnalysisState *tonal, AnalysisInfo *info, CELTEnc tonal->count++; info->tonality = frame_tonality; - for (i=0;i<8;i++) + for (i=0;i<5;i++) features[i] = -0.12299*(BFCC[i]+tonal->mem[i+24]) + 0.49195*(tonal->mem[i]+tonal->mem[i+16]) + 0.69693*tonal->mem[i+8] - 1.4349*tonal->cmean[i]; - for (i=0;i<8;i++) + for (i=0;i<5;i++) tonal->cmean[i] = .95*tonal->cmean[i] + .05*BFCC[i]; - for (i=0;i<8;i++) - features[8+i] = 0.63246*(BFCC[i]-tonal->mem[i+24]) + 0.31623*(tonal->mem[i]-tonal->mem[i+16]); - for (i=0;i<8;i++) - features[16+i] = 0.53452*(BFCC[i]+tonal->mem[i+24]) - 0.26726*(tonal->mem[i]+tonal->mem[i+16]) -0.53452*tonal->mem[i+8]; + for (i=0;i<5;i++) + features[5+i] = 0.63246*(BFCC[i]-tonal->mem[i+24]) + 0.31623*(tonal->mem[i]-tonal->mem[i+16]); + for (i=0;i<4;i++) + features[10+i] = 0.53452*(BFCC[i]+tonal->mem[i+24]) - 0.26726*(tonal->mem[i]+tonal->mem[i+16]) -0.53452*tonal->mem[i+8]; + for (i=0;i<8;i++) { tonal->mem[i+24] = tonal->mem[i+16]; @@ -297,9 +298,9 @@ void tonality_analysis(TonalityAnalysisState *tonal, AnalysisInfo *info, CELTEnc tonal->mem[i+8] = tonal->mem[i]; tonal->mem[i] = BFCC[i]; } - features[24] = info->tonality; - features[25] = info->activity; - features[26] = frame_stationarity; + features[14] = info->tonality; + features[15] = info->activity; + features[16] = frame_stationarity; #ifndef FIXED_POINT mlp_process(&net, features, &frame_prob); @@ -321,7 +322,7 @@ void tonality_analysis(TonalityAnalysisState *tonal, AnalysisInfo *info, CELTEnc #else info->music_prob = 0; #endif - /*for (i=0;i<27;i++) + /*for (i=0;i<17;i++) printf("%f ", features[i]); printf("\n");*/ diff --git a/src/mlp_data.c b/src/mlp_data.c index 18d65d39..c40c65e5 100644 --- a/src/mlp_data.c +++ b/src/mlp_data.c @@ -1,73 +1,53 @@ #include "mlp.h" -/* RMS error was 0.289219, seed was 1321882865 */ +/* RMS error was 0.289869, seed was 1321927439 */ -static const float weights[291] = { +static const float weights[191] = { /* hidden layer */ --0.199585, 0.519784, -0.56124, 0.794181, -0.511447, -0.395744, -0.376191, 0.397133, -0.0705616, 0.0810292, --0.122263, 0.0953031, -0.10071, 0.0797124, -0.0624449, --0.0217925, 0.0169053, 0.37901, -0.327709, 0.541853, --0.341477, 0.270965, -0.244754, 0.270282, -0.0416849, -1.12999, -0.40961, 1.22527, 0.233913, -0.387647, -0.453466, -0.607947, 0.408126, -0.30037, 0.300392, --0.311586, 0.0725098, -0.0476953, 0.0892214, -0.0760982, -0.0761782, -0.0615639, 0.0485215, 0.0206805, -0.0129586, --0.27531, 0.26983, -0.419162, 0.277476, -0.207749, -0.196334, -0.211023, 0.0450457, -2.12546, -0.165252, --0.41337, 2.63555, 0.14104, -0.261118, -0.633559, -0.218407, 0.611674, -0.412547, -1.20741, 0.427266, -0.123023, 0.166406, 0.411747, -0.151141, 0.0896422, -0.173108, -0.00137031, 0.243854, 0.211839, -0.296422, --0.628128, 0.149742, 0.248921, -0.156734, -0.874198, -0.281824, 2.12192, -4.86663, 7.22716, -4.02194, --0.0303328, -0.084973, 0.130546, 0.934994, -0.130172, --0.212654, 0.135762, -0.100151, -0.0773431, -0.0163684, --0.0925923, -0.0533787, -0.00281159, -0.0454802, -0.0539635, -0.00801064, -0.0741279, -0.13163, 0.122988, 0.823681, --0.104791, -0.159906, 0.150275, -0.0215005, -3.03836, -4.06664, -2.89737, -1.02205, -0.0923251, 0.0475099, -0.00546651, -0.0973161, 0.26429, -0.0825506, -0.0920445, -0.377156, -0.265505, -0.458065, -0.168825, -0.0202509, --0.0429996, 0.0396544, -0.0239828, 0.165668, -0.0213517, -0.185042, -0.0250296, -0.120034, 0.214526, -0.0463617, --0.1057, 0.135015, -19.0867, 1.25468, -2.08001, --8.82707, -0.101745, 0.0956654, -0.11192, 0.0305665, -0.0417711, -0.0791366, 0.0595958, -0.0531078, -0.323443, -0.105116, 0.161608, -0.00247322, 0.1102, 0.06836, --0.016405, 0.0748947, -0.40797, -0.0559214, -0.0119188, -0.00719443, 0.0839447, 0.00538025, 0.059951, 0.0361408, --5.32823, 11.4557, -1.9048, -2.48173, 0.00338364, -0.216516, 0.137032, 0.18395, 0.119532, 0.103407, -0.0350206, -0.00728442, -0.144015, -0.149388, -0.10501, --0.123531, -0.0464658, -0.0159831, -0.053265, 0.0481782, --0.00839314, 0.284347, 0.0456719, 0.12639, 0.092542, -0.05617, -0.0303728, -0.0620569, 7.4721, 5.47042, -0.114486, 2.65169, -0.0866742, 0.145115, 0.559422, -0.247432, 0.225527, -0.453849, 0.511296, 0.441921, -0.110568, -0.0378332, -0.118717, -0.08303, -0.111274, -0.126658, -0.0864498, -0.0251473, -0.0759235, 0.12197, -0.529339, 0.0903978, 0.0657576, -0.362635, 0.365873, -0.328984, 9.14411, -2.79891, 2.43201, 2.56583, --0.205957, -0.624725, -0.159719, -0.222437, -0.0953691, --0.067294, 0.0302929, 0.0176202, 0.185405, 0.332995, -0.013006, 0.0113313, 0.0597282, -0.0178074, -0.000720698, -0.117357, -0.186799, -0.615088, -0.133286, -0.183112, --0.0271545, -0.0700072, 0.0408067, 0.0998989, 2.10728, --2.5687, 2.42354, 1.49565, 0.0194189, -0.0334431, -0.0516768, 0.180448, -0.179868, 0.00109635, 0.184112, --0.256548, -0.315385, -0.52391, 0.146098, 0.467537, -0.251975, 0.0840594, 0.274851, 0.239901, -0.331939, --0.597664, 0.145825, 0.228226, 0.0303611, 0.0232017, -0.298219, -0.145128, 19.4815, 0.038919, 0.101, +2.96755, 0.00115262, -0.241332, -0.176303, -0.23881, +-0.104982, 0.0976941, 0.0866153, 0.0445939, 0.109937, +0.0233463, 0.0474137, -0.214098, -0.104922, -0.182143, +-8.4938, -6.0075, -0.521072, 0.0844896, -0.017247, +-0.00201771, 0.102053, -0.000613734, -0.0365414, -0.313326, +-0.388116, 0.195686, 0.415635, 0.139734, -0.375908, +-0.495817, 0.197472, 0.108982, 15.8272, 1.39337, +0.295248, 0.478087, -0.521584, 0.547038, -0.970695, +0.410447, -0.0398747, -0.157433, 0.225191, -0.159447, +0.0773803, -0.14035, -0.432067, 0.436629, -0.81, +0.258396, -1.35361, 0.379898, 0.0501006, 5.69164, +0.0244047, -0.0253634, 0.0778099, -0.00686666, 0.0670103, +0.131673, -0.0865675, -0.088408, -0.0215524, -0.105515, +0.130154, -0.0107951, 0.0149045, -0.00721336, 2.70627, +-5.84219, 0.845236, 2.9728, 0.0480452, 0.0522916, +-0.17107, -0.844511, 0.086013, 0.0808069, 0.0362425, +0.104797, 0.0312275, 0.100703, 0.0868895, 0.107739, +-0.155109, -0.743343, 2.12173, -3.50347, 3.38095, +-4.60509, -0.0940445, 0.133728, -0.0279815, 0.072341, +0.0587296, -0.490762, -0.68488, -0.171973, -0.0674625, +0.0557464, -0.000785266, 0.326857, -0.109421, 0.0148745, +-22.8631, 4.74747, -0.927737, -0.125692, -0.484348, +0.448016, -0.858588, 0.36091, -0.0261568, -0.193647, +0.224419, -0.156897, 0.0704276, -0.133405, -0.420752, +0.374365, -0.718979, 0.213614, -0.00984738, 1.75345, +-0.739806, 1.5547, 0.23016, -0.314378, -0.221868, +0.444039, -0.287516, 0.0769676, 0.025709, 0.0960222, +-0.0841409, 0.188217, 0.311774, -0.269616, -0.237803, +0.318714, 5.50044, -3.76367, 5.06448, 0.592319, +-3.03044, 3.38612, -4.38443, 1.30165, -0.804144, +-0.531203, 0.605657, -0.43792, 0.352739, -0.0578825, +-2.29906, 2.33548, -2.93828, 0.74198, 21.5563, +5.77912, -11.0732, 0.552401, -0.274121, -0.615635, +-0.142968, -0.201479, -0.0541993, 0.0475207, 0.222928, +-0.0327647, -0.0123197, -0.00380516, -0.149003, -0.313818, +-0.137811, -0.181652, 1.23463, 2.17364, 0.229491, /* output layer */ --5.28676, -5.60396, -5.78171, 0.576374, -1.09439, --1.20859, -0.792729, 1.30723, 0.519472, 0.813985, -0.567552, }; +-7.91184, -1.52122, 0.603183, -3.27692, 3.61369, +1.16504, -1.1068, 2.80566, 0.85419, 0.545877, +0.804097, }; -static const int topo[3] = {27, 10, 1}; +static const int topo[3] = {17, 10, 1}; const MLP net = { 3, |