Down to 17 features with same error rate
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 22 Nov 2011 02:57:10 +0000 (21:57 -0500)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Fri, 13 Jul 2012 18:50:34 +0000 (14:50 -0400)
src/analysis.c
src/mlp_data.c

index 3dfc428..7fd4b19 100644 (file)
@@ -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");*/
 
index 18d65d3..c40c65e 100644 (file)
@@ -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,