Retrained speech/music RNN
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Thu, 9 Nov 2017 01:35:30 +0000 (20:35 -0500)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Fri, 10 Nov 2017 03:45:32 +0000 (22:45 -0500)
Larger network, using 8-bit weights

src/analysis.c
src/mlp.h
src/mlp_data.c

index 2e3913c..11f8712 100644 (file)
@@ -867,7 +867,7 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt
     info->activity_probability = frame_probs[1];
     /* It seems like the RNN tends to have a bias towards speech and this
        warping of the probabilities compensates for it. */
-    info->music_prob = frame_probs[0] * (2 - frame_probs[0]);
+    info->music_prob = MAX16(1-10*(1-frame_probs[0]), MIN16(10*frame_probs[0], .12+.69*frame_probs[0]*(2-frame_probs[0])));
 
     /*printf("%f %f %f\n", frame_probs[0], frame_probs[1], info->music_prob);*/
 #ifdef MLP_TRAINING
index e3d1e9e..d767055 100644 (file)
--- a/src/mlp.h
+++ b/src/mlp.h
 
 #include "opus_types.h"
 
-#define WEIGHTS_SCALE (1.f/8192)
+#define WEIGHTS_SCALE (1.f/128)
 
-#define MAX_NEURONS 20
+#define MAX_NEURONS 32
 
 typedef struct {
-  const opus_int16 *bias;
-  const opus_int16 *input_weights;
+  const opus_int8 *bias;
+  const opus_int8 *input_weights;
   int nb_inputs;
   int nb_neurons;
   int sigmoid;
 } DenseLayer;
 
 typedef struct {
-  const opus_int16 *bias;
-  const opus_int16 *input_weights;
-  const opus_int16 *recurrent_weights;
+  const opus_int8 *bias;
+  const opus_int8 *input_weights;
+  const opus_int8 *recurrent_weights;
   int nb_inputs;
   int nb_neurons;
 } GRULayer;
index 10b787d..b4b3ecb 100644 (file)
 
 #include "mlp.h"
 
-static const opus_int16 layer0_weights[400] = {
-   -249, 690, -57, 358, -560, -144, 186, 75,
-   -804, -1176, -433, -78, 125, -1141, -857, -2,
-   1892, 91, 976, 1112, -1636, -73, -1740, -1604,
-   2012, -1043, 828, 230, 8698, -92, -665, -747,
-   1530, -1315, 2317, 697, 2885, -1399, 2661, 483,
-   -1628, 502, -592, 299, 3910, -781, 2738, 1338,
-   -1562, -149, 3468, 1448, 3057, 1202, 2098, 2777,
-   -1540, -3018, -249, 4656, 2508, 373, 2412, -776,
-   7160, -519, -917, -155, -1311, -1239, -637, -1245,
-   -1450, 1963, 3297, 1489, 1582, -123, -549, 1004,
-   -4085, 8792, -2145, 220, 2741, 624, -3560, 106,
-   -2476, 661, 1601, 2177, -1793, -623, 3349, 1959,
-   2777, -4635, 451, -996, -3260, -665, 1103, 201,
-   -2566, 3033, 1065, 1866, 989, -102, -1328, 126,
-   1, 4365, 82, 2355, -1011, -107, -5323, -1758,
-   -691, 1744, 683, -2732, 1309, -1135, -726, 1071,
-   9423, 1120, -705, -188, -200, -2668, -750, -1839,
-   793, 718, -1011, 222, 567, 31, -1520, 3142,
-   -5491, -3549, -2718, -276, 2078, -706, -779, -2304,
-   -2983, -660, 1664, -999, -3297, -1200, 1017, -499,
-   -764, 3215, -720, 255, 1539, -1142, -3604, -351,
-   -982, 846, 4069, 481, 5673, -1184, -2883, -1387,
-   519, -1617, 315, 1875, -119, 2383, 1141, 1583,
-   1013, -531, 349, 121, -139, 327, 531, 611,
-   853, 1118, 2013, -294, -1150, 693, 531, 583,
-   -1506, 224, -818, 655, 1981, 1056, -2327, -1457,
-   -2846, 3779, 1230, -2587, -191, 1647, -3484, -3450,
-   -3384, -93, -1028, 825, 868, 38, 557, -125,
-   1830, 1981, 1063, 9906, -455, 172, -1788, 4417,
-   472, -1398, -4638, 999, -6158, 1943, 4703, -2986,
-   -938, 3053, -631, -384, 848, -3909, 1352, -2362,
-   -2306, 515, 2385, -2373, -1642, 582, -262, -571,
-   8, 1615, -2501, 1225, -660, -857, -522, 2419,
-   654, -1137, 67, -890, 83, 23, 2166, 524,
-   -978, 5330, 1237, 1163, -2251, -142, -2331, 3034,
-   395, -1799, 944, 1978, -2788, 1324, 3271, -4643,
-   -1313, -2472, 1296, -2316, -1803, -10224, -8577, 8271,
-   -1920, -3366, -1704, 3250, -2514, 11995, 6655, 4298,
-   1046, 483, 651, -901, -1417, 804, 396, -2617,
-   1000, 2265, 5354, -1050, 2505, 41, 3928, 1878,
-   -21057, 12783, 32767, -8139, -32768, 1106, -12076, -26511,
-   -3484, 24604, 8938, 22944, -9490, -6208, -22142, 23250,
-   -12708, -299, 14432, -2311, -11941, -797, -3287, -4744,
-   -10758, 10226, -851, 8565, 4104, -4002, 4456, 12642,
-   1685, -7093, -997, 16081, 814, -5316, -13491, 12766,
-   -1637, -213, 7271, -3037, -6772, 3053, -12425, -6955,
-   12553, 7635, -32768, -18611, 22929, 3056, 11196, 5202,
-   31582, 5741, -22206, 6145, -673, -25488, -7005, -16479,
-   10693, -11369, -10848, -1895, 8051, 7360, 1067, -220,
-   6643, 17077, -12356, 3288, 4619, 9751, -656, -1217
+static const opus_int8 layer0_weights[800] = {
+   21, -8, -5, 3, -16, 13, 3, -24,
+   -18, 14, 9, 2, 5, -2, 2, -3,
+   -5, 35, 10, 10, -8, 2, 1, 3,
+   -26, -61, 9, 4, -8, 18, 3, -5,
+   47, -34, -6, 35, 35, 30, 40, -40,
+   11, -39, 11, -14, 14, -24, -8, -8,
+   2, -23, -100, 1, 19, -14, 4, 7,
+   13, -26, 47, -4, 44, 5, 27, -1,
+   57, -1, -36, 34, -20, -60, 25, -73,
+   24, -70, 20, -4, -6, 68, -16, 13,
+   -24, 40, -42, -18, 0, 10, 12, -56,
+   -6, 38, 21, 5, -116, 19, 11, -14,
+   3, 26, 14, 23, 1, 35, -16, -2,
+   -4, 55, 23, 16, 22, 45, -71, -27,
+   -20, 8, -47, -47, -46, -14, -50, -82,
+   36, 45, 54, -32, -6, 14, -2, -24,
+   3, 23, -27, -8, 1, 70, 15, -4,
+   -7, 21, 17, -126, 5, -47, -53, -6,
+   34, 25, -1, 10, 17, -37, 38, -1,
+   30, 25, -35, 112, -21, 8, -10, -3,
+   15, 18, -14, -8, -20, 11, 24, 37,
+   -35, 50, 52, 16, 9, 15, -26, 43,
+   -3, -9, -26, 126, 7, 33, 55, -88,
+   9, 28, 5, -19, -76, 32, 3, 11,
+   10, -54, 2, -13, 3, 94, 52, 106,
+   26, 74, 44, -99, 58, -44, 50, 15,
+   29, 25, 50, -84, 28, 1, -30, 11,
+   8, 20, -67, 4, 11, -25, -39, -33,
+   -83, -15, -9, 18, -2, -24, 18, 77,
+   -39, -80, 25, -8, 52, -88, -21, 81,
+   29, -23, -31, 69, -28, 0, 12, 47,
+   15, 20, 34, -53, 5, 111, -39, -7,
+   1, 56, 6, 3, 7, -67, -6, -31,
+   107, -6, 12, -97, 36, -18, -34, -6,
+   -9, -63, 10, -9, 3, 12, -80, -87,
+   17, -9, 39, 126, 13, 15, 19, -6,
+   29, 11, 10, -30, 26, -54, 31, -47,
+   25, -40, -24, 23, 16, -27, -32, 30,
+   -22, -59, -9, 65, -86, -21, 120, -25,
+   -52, -12, 34, -50, 25, -17, 30, -4,
+   95, 4, 9, 61, 25, -6, 11, -33,
+   -8, -3, 26, 37, -28, 19, -17, 36,
+   11, -8, 8, -89, 2, -68, -95, 18,
+   22, 36, 9, -8, -48, 54, -26, -6,
+   30, -28, 10, -18, 2, -11, 7, 2,
+   17, -5, 27, -21, 9, 15, 10, -18,
+   -10, 0, -9, 19, 10, -48, -35, -32,
+   15, 24, 25, -6, 3, 51, -15, 9,
+   19, -17, 6, 8, -9, 13, 14, -31,
+   -24, 10, -23, 21, 16, 18, -8, 35,
+   18, -18, -18, -26, 25, 10, 55, 9,
+   3, -24, -15, 2, -28, 20, -45, -14,
+   15, -19, -8, 10, 6, 40, -31, -45,
+   40, 53, 40, 27, -15, -31, -30, 10,
+   38, 50, 28, 71, -21, 20, 1, 23,
+   22, 14, 5, -48, 39, 78, -7, -6,
+   9, 50, 88, -15, 55, 36, 32, -22,
+   -60, 13, 31, -36, -71, -2, 52, 37,
+   7, 46, -23, -43, 19, -49, -34, 15,
+   60, -66, 36, 2, -57, -32, 64, -53,
+   -36, 49, -10, 21, -2, 23, -21, 22,
+   -3, -15, -6, 18, -12, -32, -11, -11,
+   -32, 24, 36, 37, -7, 30, -22, -12,
+   22, -63, 26, 20, -16, -30, -13, -18,
+   -10, 45, 10, -24, -2, -26, 28, 18,
+   36, 44, -40, -5, -14, -4, 18, -18,
+   -1, 18, -40, 15, 29, 15, 12, 3,
+   25, -51, 8, -17, 9, -19, 22, -33,
+   -22, 39, 61, -15, 55, -24, 10, 32,
+   12, 9, 29, 5, -33, -33, 5, 0,
+   35, 105, -14, 39, 4, 43, 36, 52,
+   50, -39, 45, -51, 27, 7, 65, -34,
+   108, 127, 42, 26, 73, 19, 9, 17,
+   -62, 16, 11, 52, 85, -46, 10, -95,
+   64, 53, 90, -8, -54, -5, -77, -45,
+   127, -4, 54, -3, -19, 66, 40, -127,
+   53, 22, -26, 24, 20, -36, -2, 101,
+   1, 35, -1, -8, 5, -36, -16, 33,
+   6, -73, -21, -23, -32, -21, -4, -46,
+   -42, -66, -16, -8, 0, -20, -21, 37,
+   -128, -128, -127, 126, -128, -127, 127, -3,
+   127, 122, 127, 126, -127, -128, 127, -127,
+   127, -124, 126, -126, -127, -128, 125, -127,
+   -38, -123, 125, -128, -128, 126, 125, 127,
+   -127, -123, -127, 127, -73, -113, 127, -17,
+   127, 126, 127, 126, -126, -126, 127, -127,
+   127, -125, 121, -126, -25, -127, 127, -126,
+   26, -126, 71, -28, -128, 20, 20, 71,
+   -87, -93, 39, 116, 111, -85, 70, -26,
+   62, 23, -15, 18, 4, 32, 114, -55,
+   8, -116, 85, -67, -110, -49, 11, -5,
+   -128, -41, 61, 70, -29, 115, 127, 51,
+   127, 127, 127, -128, -127, 127, -128, -127,
+   -126, -128, -126, -127, 127, 126, -128, 127,
+   -126, 125, -55, 127, 127, 127, -125, 115,
+   -128, -126, -128, -127, 127, -128, -128, 127,
+   28, -127, -120, -127, 127, -127, -127, 9,
+   -26, -118, 73, 39, 124, 78, -126, 123,
+   10, -127, -105, -64, 118, -84, -127, 61,
+   77, 104, -128, -127, 94, -17, -28, 36
 };
 
-static const opus_int16 layer0_bias[16] = {
-   -164, 2802, -2100, 410, 4003, -888, 3010, -644,
-   4499, -121, 3753, -1606, -4855, -1828, -682, -79
+static const opus_int8 layer0_bias[32] = {
+   -39, 28, -7, -12, -36, -35, -49, 48,
+   38, -17, 44, 15, -45, -18, -45, 9,
+   11, 4, -25, 38, 12, -31, -90, -70,
+   -17, 27, 7, -73, 42, -103, 78, 99
 };
 
-static const opus_int16 layer1_weights[576] = {
-   543, 2150, 143, 1450, 7898, -3201, -2648, -4311,
-   7028, -2608, 1844, 126, -858, 4572, -347, -11298,
-   11315, -4344, 1858, -5906, -5962, 2847, -3894, -1496,
-   5309, -651, -3143, -3141, 429, -679, -1524, -1966,
-   -1175, 2917, 97, -1094, -3186, 4346, 832, 3726,
-   5452, 1371, 505, -1282, -435, 3438, 691, -2692,
-   -872, -1332, 3722, 841, -1081, 2414, -1275, 2131,
-   -7351, -962, -2295, 1141, 2810, -839, 1444, -1005,
-   3900, 1160, 1070, -801, -1856, 2152, -79, 122,
-   -2790, -5641, -2021, -4328, 992, 664, 1078, 4919,
-   -5314, -665, -4650, -4734, 3417, -300, -3038, 6124,
-   -1161, -1786, -2922, 10536, 2726, 1200, -1840, 3752,
-   -3420, 1710, 2414, -2704, 918, 518, 1057, 1837,
-   3098, 1665, 2780, 1636, -3883, -150, -3216, -5393,
-   1819, -3555, -3063, -3252, -2948, 8249, -3856, -3981,
-   406, -5407, -2135, 3006, -1920, -694, 1349, 2321,
-   -3114, -1262, -1296, -406, -712, 185, 1802, 62,
-   -1559, -62, 2270, -195, -1043, 2092, -3543, 1833,
-   1193, 1880, 3076, 6353, 1671, -634, 3180, -21,
-   -612, 800, 6405, 2825, 1187, 583, -2961, -6221,
-   -1035, -1686, 3563, 7102, 7122, 3946, 3264, -2081,
-   574, -2400, 22, 112, 1073, -2386, -3224, -3508,
-   -1347, -3521, 992, -2582, -7175, 1241, -1368, -6035,
-   -2555, -6012, -11198, -2492, -4061, -7604, -3521, -5613,
-   -3823, -6300, 6377, -6267, -3568, -1121, -2755, -6177,
-   2627, -2735, -4447, -2327, -577, 824, 2159, -1206,
-   47, -3988, -3918, -1073, -540, -595, 2777, -1114,
-   985, 407, -1907, -3836, -7385, 9579, 120, 4717,
-   -1921, -5036, 1388, -2388, -1476, 2967, 2905, 3306,
-   -631, -1730, 4974, 51, -1131, -3307, -1678, -354,
-   2481, -1133, 997, -1374, 2350, 1945, -274, -2238,
-   -1642, 869, 139, -2974, -1210, -362, 3461, -3912,
-   -7937, -1246, 5396, -6235, -6650, -9613, -5547, 2541,
-   -330, -2843, -3100, -227, 1859, 3371, 5094, 4045,
-   -8379, -2052, 363, 2005, 2248, 772, -872, 1686,
-   -3885, 1413, 704, -379, -1130, -703, -3406, 179,
-   2895, 11203, -1085, -2496, -10569, 877, 2982, 4245,
-   7216, -3703, 2468, 1361, -66, 236, -958, -3101,
-   2424, -2604, 1854, -5674, 2951, -1898, 3078, 20,
-   1217, -3799, 802, -458, -1522, -3094, -2448, -2067,
-   658, -3163, 1976, -1577, -8063, 380, -1328, 5963,
-   -7396, -5218, -7379, -9166, -616, -1731, 2383, 3735,
-   10889, -5348, 1128, -6396, -4613, -1547, 2619, -2967,
-   2229, 3582, -156, -3970, -2606, -3270, 2515, -568,
-   -2800, -3145, -2641, 2530, 1079, 3184, -814, -1762,
-   2128, -6864, 5163, -3934, 2410, 2574, 1568, -5281,
-   -1199, -2462, 713, -1456, 4651, -8439, -2239, -4620,
-   316, 1772, 89, -2021, -658, -9442, -1249, -195,
-   -1311, -1129, 1734, 1991, 421, 579, 833, 2917,
-   1025, -3243, -2909, 1950, -2845, 898, -1011, 5505,
-   4705, 2989, -4835, -939, 3768, -1641, 10910, 34,
-   -938, 1839, 4835, -2526, -1699, -9939, 4135, 2330,
-   746, -2420, 898, 588, -3496, -2904, -3896, 639,
-   1046, 440, 1254, 2025, 2089, 3468, 697, 888,
-   4553, 2152, 4522, 2916, 3432, 4376, -717, -8019,
-   8063, -1602, -5389, -1549, 4541, 412, 413, -5267,
-   5859, 147, 2962, 6490, -2794, 1448, -1348, -815,
-   -1089, -934, 1485, -1420, 827, -2345, -403, 2359,
-   -1298, 238, 1127, 1984, 3667, -6776, 1191, -1049,
-   6323, 3381, 4703, 5709, 1693, -3948, -4716, 5403,
-   -3221, -1108, 478, -4250, 2643, 1458, -4684, -5321,
-   -1610, -1048, 4730, 1253, 1975, 1904, 2112, -1591,
-   -5355, 1317, -2438, 113, -1285, 4023, -1129, 3054,
-   -5091, 1484, -742, -1258, 1044, -1035, -442, 789,
-   1525, 10987, -897, 2773, 357, 4770, 1942, 524,
-   1315, 3575, -656, 1394, -14, -4854, 2764, 5455,
-   1649, 1005, -1792, 1558, -1490, 3447, -1066, 662,
-   -974, -870, 1611, 2541, -2744, -1782, -1456, -820,
-   261, -1722, -3869, -9244, 4372, 4013, -2733, -13592,
-   5458, -6824, -634, 707, 742, 4432, -3446, -4348,
-   916, 505, 3267, -9216, -3492, 2121, -4923, 4175,
-   -119, -1497, 1421, 3593, 1398, 273, 2351, 404
+static const opus_int8 layer1_weights[2304] = {
+   29, -37, -21, -34, 19, -32, 44, -43,
+   51, -5, -14, 37, -32, 74, 127, -29,
+   -75, -49, -5, -106, -64, 24, -11, 26,
+   23, 25, -6, -1, -48, -16, -26, 29,
+   24, -3, 50, -23, -45, -59, -11, -10,
+   -9, 51, 42, 16, -27, -79, 72, 7,
+   55, -15, 5, -15, -24, -1, 48, -29,
+   -44, 26, -20, -40, 57, -15, 21, 45,
+   -4, -25, 13, 24, -26, 12, -2, 20,
+   48, -60, 45, 37, 74, 27, 13, 0,
+   126, 5, 68, 110, 7, 74, 51, 65,
+   -21, 32, 27, -30, 11, -3, -43, 73,
+   31, 43, 119, -51, 13, -80, 32, -23,
+   37, 69, 101, -33, -35, 50, -47, 126,
+   -84, 64, 88, 28, 57, 56, -28, -102,
+   0, -15, -57, 1, -34, 25, 59, 36,
+   -11, 26, -42, 14, -4, -24, -37, 63,
+   -18, 2, -32, -9, -37, -15, -9, 9,
+   -41, -36, 105, 20, 14, -14, 64, 92,
+   68, -83, -7, 20, 86, 22, 38, 8,
+   -63, -6, -13, -56, 61, 55, 50, -33,
+   -9, 22, -22, 77, 44, -33, 44, -20,
+   77, 33, 34, -78, -53, 31, -108, 33,
+   -23, -54, 63, 34, -9, 43, -17, 15,
+   -15, 15, -3, -50, 15, -26, -6, -35,
+   -52, 57, 0, -10, 67, -57, -47, 36,
+   -64, 19, -19, -29, -97, -15, -49, 69,
+   -18, 84, 122, 4, -81, 18, -85, -4,
+   -40, 99, -46, 11, -10, -29, -51, -59,
+   112, -103, 29, -45, 5, 43, 94, 24,
+   -4, -37, 27, -54, -24, 30, 43, 40,
+   -10, 13, 18, 75, 51, 11, -14, -7,
+   34, 80, -119, 73, -47, -68, 50, 79,
+   42, -2, -53, 22, -9, -21, -4, 88,
+   97, -5, -28, 16, -64, -1, -25, 9,
+   -20, -63, 10, 57, -3, 127, -2, -26,
+   8, 66, -48, -118, 47, -73, 15, 51,
+   -29, 28, 72, 41, -2, 48, 75, -24,
+   -47, 44, 8, -39, 70, -73, -44, 56,
+   -14, -62, 30, 74, 31, -98, 13, 8,
+   83, -36, -7, -8, 62, 13, -29, -20,
+   21, -66, 53, -49, -24, -14, 19, 101,
+   -47, -51, 65, -52, 25, -32, -38, 39,
+   -56, 41, 49, 22, 10, 21, 1, 38,
+   -18, 48, 36, 55, -39, -10, -4, 3,
+   17, -27, -81, 61, 1, 8, -32, 35,
+   29, 85, -33, -56, 16, 3, -48, 35,
+   56, -40, 14, -65, 3, -70, -29, 84,
+   51, 75, -52, 56, -55, 0, -13, -58,
+   6, 3, 22, 31, -34, 20, -6, 26,
+   -121, 85, -75, 11, -34, -23, 46, -11,
+   0, 9, 20, 39, 59, -12, 38, 14,
+   6, -33, -15, -86, 39, -48, -5, 4,
+   29, -28, 52, -8, -51, 52, 60, -11,
+   -22, 81, 81, 17, -127, -28, 27, -40,
+   -36, -57, 43, 52, 51, -38, -10, 23,
+   -44, -72, -63, 3, 20, -68, -72, -38,
+   26, -45, 19, -75, -18, 4, 14, 15,
+   -47, 104, -9, 51, 25, 16, -95, 64,
+   -11, -2, -5, 39, 52, -40, 77, 44,
+   11, -29, -37, 5, -58, -38, -28, 36,
+   50, 2, -26, -3, -16, -11, -11, 16,
+   -14, -47, -3, -3, -48, 45, 40, -14,
+   3, -67, -4, 19, -25, 14, -34, 48,
+   -66, 67, 70, 20, 52, -21, 21, 28,
+   16, 70, -114, -11, 29, 9, -52, -52,
+   -39, 44, 17, 11, -15, -111, 84, -20,
+   -23, -60, 15, -39, 48, 10, -31, -24,
+   -38, 4, -42, -25, -70, -3, -75, -40,
+   -3, -19, 33, -14, 18, -14, -5, -16,
+   46, -56, 38, -1, 2, 9, 17, -41,
+   -44, 11, -23, 28, -32, 8, -1, 57,
+   -5, 44, -64, -21, -54, 47, 22, -19,
+   -12, -24, -48, -4, -42, -46, -17, 52,
+   -39, -33, 79, -26, 20, 21, 9, -5,
+   -127, -31, 26, -86, -20, -115, 27, 33,
+   33, 72, 30, 57, -17, 2, 71, 58,
+   -52, -10, 20, -79, -3, 40, -106, 17,
+   34, 68, -17, 31, -27, 23, 17, 18,
+   21, 25, 15, 41, -51, 30, -3, 1,
+   -4, -60, -13, -59, 53, -42, -34, -29,
+   -22, -50, 27, -70, -58, -21, -59, -27,
+   -28, 45, -66, 12, 85, -61, 0, -39,
+   -73, -75, -29, -42, -47, -88, -46, 27,
+   -43, 112, 83, -51, -36, -64, 13, 74,
+   -9, 2, 25, 38, -18, -64, -81, -23,
+   -12, 40, 18, -38, -121, -36, -6, -73,
+   -16, -59, 28, -26, -2, -69, -6, -7,
+   43, -21, 61, 0, 1, 0, 13, 18,
+   -18, -21, -3, 18, 42, 0, 67, -35,
+   39, 15, -97, -87, 103, 65, 86, 20,
+   -11, -17, 9, -9, 15, 15, -35, 52,
+   34, -105, -85, 10, -36, -68, -64, 60,
+   -85, 51, -54, -39, -19, 77, 0, 35,
+   -20, 35, -78, 41, -11, 49, 14, 17,
+   -31, 1, 41, -1, 10, -25, -90, -12,
+   -9, -12, -26, 6, 34, 22, 31, 25,
+   6, 27, -26, 5, -35, 29, 18, -12,
+   54, -42, -22, -14, -6, 36, -14, -16,
+   35, 69, 75, 7, -113, 44, -2, -18,
+   3, -15, 50, -28, -36, -9, -25, 47,
+   127, -6, -35, 35, -46, 17, 116, -62,
+   -17, -98, -105, 77, -99, -17, 41, 16,
+   -7, 17, -89, 37, -16, -72, -3, -29,
+   50, 30, -43, -7, -72, 125, 51, 59,
+   -73, 37, 61, 2, -19, -11, 4, 46,
+   33, 51, 74, 88, -51, 68, 124, 27,
+   97, -51, 16, -3, -6, -12, -30, 28,
+   33, 3, -59, 22, 72, 53, 24, -29,
+   -4, -65, 89, -59, 92, 121, 12, 11,
+   111, -20, 12, -85, -123, -33, -65, 70,
+   68, 127, 2, -25, -104, 57, -74, -94,
+   -128, -27, 28, -7, -126, -123, -2, -57,
+   -57, 76, 55, -43, -44, -92, 1, 29,
+   12, 10, 15, 10, 88, 0, -65, -57,
+   -66, 14, -10, -10, 36, 19, -49, -4,
+   33, 3, 99, -49, -28, 41, 21, 37,
+   46, 62, 16, 43, -58, 119, -32, 34,
+   27, 13, -46, -1, -4, 23, 31, -21,
+   108, 4, 107, 37, 26, -48, 70, 18,
+   30, -18, -101, 77, -91, -117, -74, 16,
+   -116, 43, -24, 26, -19, -49, 34, -54,
+   101, -14, 15, 12, 80, -9, 110, 42,
+   8, -30, 53, -42, 34, -8, 60, -89,
+   7, 41, 21, -94, 51, -1, -22, -37,
+   22, 12, 49, -1, 55, 30, 5, -26,
+   -12, 4, -29, -16, -118, -12, -48, 85,
+   -44, -5, -27, -13, -84, -39, -63, -83,
+   44, 5, -62, -52, -110, -8, -24, -36,
+   -22, -52, 20, -10, 42, 117, -19, -30,
+   21, -16, -38, 92, 35, -5, -7, 45,
+   -69, -57, -69, 20, 18, 14, 107, -36,
+   -37, 43, 25, -38, -44, -104, 46, 8,
+   93, -9, 54, 39, -48, -28, 21, 2,
+   24, 11, -5, -14, -2, -10, 28, 105,
+   5, -60, -65, -38, 121, 5, -33, -60,
+   44, 68, 21, -69, -9, 7, 55, -26,
+   -75, 19, -76, 0, 10, -101, -56, -64,
+   19, -68, 14, 19, 9, -49, 23, -1,
+   19, -52, -15, -67, -63, -18, 24, -40,
+   -44, -11, -6, 43, 62, 67, -27, 5,
+   -57, 6, 25, -14, 19, 53, 24, -29,
+   -64, -26, -50, -19, 28, -15, -29, -56,
+   6, -40, 35, 54, -6, -45, -17, 41,
+   106, -42, -47, 43, -22, 20, -2, -126,
+   -29, 72, 85, -32, -30, 43, -6, 14,
+   31, -84, 4, 7, 16, -47, -37, -33,
+   -14, -60, -52, -55, -44, 41, 39, -114,
+   -52, 24, -100, 55, -6, 40, 102, 48,
+   -1, 55, -55, -35, -27, 51, -1, 6,
+   -10, -16, -38, 29, 37, 55, 18, 22,
+   28, -58, 13, 60, -60, 18, 6, -8,
+   31, -52, 14, 2, 16, 30, -22, -39,
+   0, 35, -29, 7, -48, 41, 78, 24,
+   30, 1, -89, 72, 27, -33, -33, -12,
+   61, -82, 123, 36, -12, -25, 55, 37,
+   66, 27, -19, 37, 10, 44, -14, -17,
+   -20, 30, 20, 2, 21, 15, 37, 35,
+   3, -40, 6, 12, 4, 22, -21, -79,
+   29, 3, -55, -77, -31, 13, -19, -24,
+   10, -38, 9, -78, 24, -50, -15, 31,
+   30, -4, -33, 25, 27, 10, -24, 43,
+   -7, 78, -2, 27, 69, -23, 10, 79,
+   -19, -69, -3, 6, 25, 71, -42, -4,
+   -10, -21, -43, 18, 63, 6, 15, -41,
+   -7, 77, 37, -47, -7, 41, -34, 40,
+   6, 25, 25, -74, -32, 4, 43, -26,
+   -8, 44, -5, 39, -4, -12, -9, -90,
+   -51, 38, 32, 42, 28, -42, 13, 4,
+   30, 18, 54, -13, -11, 3, -2, 58,
+   30, -53, 5, -76, 4, -14, -13, 16,
+   10, -108, 6, -114, 28, -93, -65, -40,
+   21, 28, -31, -85, -52, 29, 9, -10,
+   -12, -26, -27, -82, 43, 0, -75, -6,
+   29, -4, 64, -12, -5, 25, 14, -2,
+   -54, -127, 81, -35, 14, -59, -75, 69,
+   -29, -65, 43, -88, -21, 34, -87, -48,
+   51, 2, 8, -37, 25, 10, -25, -7,
+   -37, -39, -8, 28, 55, -72, -26, 16,
+   -30, 41, -49, 32, 37, -7, -12, 23,
+   38, -61, -13, 28, 16, 4, -16, -122,
+   37, 8, 17, 3, -79, 23, -17, 28,
+   -28, -31, -14, -39, 114, -49, -15, -47,
+   -14, 7, -7, -79, 98, -72, 19, -26,
+   65, -44, -60, -56, 18, -20, -35, 19,
+   -72, 8, 78, -84, 40, -3, 46, 40,
+   3, -31, 16, 38, -58, 48, 34, 0,
+   -75, -25, -12, -25, -5, -15, 18, -11,
+   6, 34, 20, 21, -6, -19, -34, 22,
+   -18, -48, 69, 122, -16, 1, 12, 11,
+   80, 31, 28, -34, 23, 27, -19, 10,
+   63, 81, 66, 91, 10, 2, 123, 126,
+   126, 74, 21, 75, 9, -15, 36, 29,
+   34, -54, 101, -57, -51, -61, 47, 66,
+   41, 38, -124, 56, -36, 48, 51, -7,
+   -11, -6, 30, -55, 48, 3, -18, -20,
+   24, 24, 0, -55, 62, 3, -74, -49,
+   2, -13, -31, -3, -12, 42, -33, 5,
+   -24, -39, 117, -81, -31, -39, 0, 2,
+   6, 25, 77, 13, 6, 10, 26, -21,
+   -127, 35, 7, -26, -69, -19, -21, -25,
+   111, -34, -3, 29, 6, -31, -44, 73,
+   -1, 6, -4, 2, 99, 25, 92, 34,
+   40, 5, -94, 21, 47, 126, 61, -5,
+   2, -37, 4, 21, -27, 32, -18, -10,
+   70, -40, -15, 38, 19, 30, 12, -19,
+   -11, -2, -50, 22, -33, 3, 33, -39,
+   -19, 87, -67, -27, -11, -117, 36, 104,
+   11, -56, -29, -6, 5, 14, -5, 44,
+   38, 9, 24, 16, 127, 47, -6, -9,
+   63, -58, -106, -19, 62, -30, 29, -23,
+   69, 4, -31, 3, 14, -101, 5, 3,
+   31, -6, -88, 28, 13, 0, 42, 0,
+   6, 60, 54, -11, 5, -34, -33, -24,
+   -5, 42, 19, -63, 10, 32, -9, -32,
+   25, 26, -28, -5, -7, -45, 32, 11,
+   -12, 31, -26, -33, -46, -76, 40, -5,
+   3, -5, 3, -18, -12, 93, 17, 62,
+   -121, -14, 42, 76, 24, 4, 34, 14,
+   41, 18, -10, 93, 91, -62, 58, -55,
+   88, -64, -9, 23, 25, 45, -2, 70,
+   43, 9, 103, 22, 48, 46, -13, 9,
+   -27, -37, 35, -51, -54, -10, 57, -35,
+   -2, -1, 7, -3, -37, 5, 9, 3,
+   27, -7, 50, 5, -50, 22, 21, -13,
+   22, 43, 10, -18, 37, -20, -38, -32,
+   -2, 27, 1, -67, -41, 60, -28, -33,
+   -50, -38, 76, -18, 23, -16, -25, 0,
+   -8, -71, -10, -12, 20, -34, 40, -19,
+   12, -42, 14, 11, -28, 37, -33, 4,
+   41, 19, 65, 85, -26, 23, -50, 38,
+   3, -34, 64, 43, 1, 16, 34, 35,
+   -15, -27, 20, -1, 50, 0, -30, -50,
+   14, -60, -69, 10, -57, -45, -32, -14,
+   32, -16, 46, -61, -46, 1, -40, -75,
+   -28, -16, -73, -50, -13, -14, 9, -78,
+   5, -44, -9, -25, -79, -16, -46, 92,
+   -70, 61, -20, 12, -43, 3, -19, 40,
+   11, 25, 32, -58, 58, 45, 28, 1,
+   13, -27, -53, 30, -30, -31, -52, 10,
+   17, 68, -6, -44, -8, 25, 33, 48,
+   81, -43, -10, 67, 29, 23, 11, 20,
+   -39, -28, 31, 18, -72, 29, 22, -11,
+   -71, 39, -10, -121, -20, -8, -40, 125,
+   -7, -43, 10, 49, 12, 38, 43, -79,
+   -72, -41, -48, -60, -41, 5, -17, 35,
+   95, 35, 124, -11, 2, 70, -60, -25,
+   0, -27, 76, -19, -94, 40, -96, 65,
+   -9, -31, -8, -35, 27, -44, 64, -60,
+   -12, -72, 12, -56, 8, -45, -5, -27,
+   -6, 50, 30, -20, -18, 64, -108, -15,
+   -43, 44, 11, -14, -8, -21, -24, 42,
+   51, 47, -3, 17, -17, -24, 33, -28,
+   25, -15, -33, -21, 6, -13, 39, 19,
+   7, 116, 37, 53, 105, 4, 15, -56,
+   10, 12, -92, -30, 117, 4, 32, -13,
+   -17, -21, 43, 29, -25, -38, 51, 32,
+   74, -41, -15, 29, -5, -114, 35, -36,
+   46, 51, 15, 16, -39, 24, 17, 3,
+   -26, 40, -37, 34, 43, 20, -61, -14,
+   31, -29, 34, 25, -22, 25, -39, 39,
+   -33, -10, -56, -61, -6, -48, -114, -96,
+   -12, 3, 82, 45, 8, -2, -4, -28,
+   -42, -58, -50, -34, -54, -26, -64, -16,
+   -82, 49, -28, 0, -30, -20, -64, -68,
+   -18, 18, -44, -34, -42, -61, -17, 14,
+   -28, 8, 27, -49, -18, 45, -41, 11,
+   -2, 10, -8, -17, -24, -28, -42, 12,
+   79, 46, 30, -26, 5, 3, 3, 58,
+   12, -73, 23, 17, 5, 2, 20, 36,
+   56, -33, 80, 71, 17, 87, 40, -21,
+   26, 6, 48, -71, 76, 15, -47, 32,
+   87, 30, 58, -11, 65, -43, 91, 54,
+   -31, 8, 34, 25, -14, 37, -30, 20,
+   -35, 4, -75, 56, -29, 22, 64, 48,
+   47, -78, -74, 22, 11, -62, -28, 62,
+   -30, 12, -25, -31, 41, -42, 22, 23,
+   -8, -20, 38, 21, -6, 52, 23, 5,
+   -20, 32, 3, 16, 26, 50, 3, -4,
+   48, -77, -3, -4, 21, 23, 30, 11,
+   -1, 9, -56, -100, 39, 5, -25, 35,
+   95, 44, 22, 75, 19, -20, 126, -31,
+   -8, -24, 37, 35, -32, -4, 20, 47,
+   7, -84, 2, 10, 7, 7, 75, -64,
+   46, 36, -77, -1, -38, -19, -52, 39,
+   26, 41, 82, 38, 67, 62, -6, -25,
+   -16, -35, -5, -14, 32, 15, -3, -38,
+   28, 43, -59, 7, 58, 26, -63, -56
 };
 
-static const opus_int16 layer1_recur_weights[432] = {
-   381, -8053, -3581, -73, 5728, -10914, -4592, -14935,
-   2526, -3600, 3424, 5804, -2523, 2785, -2245, 734,
-   1045, -2857, 3888, -11398, 3406, -2679, 4999, -103,
-   6707, -7102, 1158, -4524, 3212, 2065, -255, -4255,
-   1682, -987, 333, 1958, 2943, -1600, 6811, 2103,
-   4030, -4778, 5490, -11909, -1505, 3493, -9066, -3412,
-   -1673, -7387, -1995, 451, -2989, -2608, 317, 2076,
-   -6350, 4404, -1222, -3854, -4675, 12616, 3739, 126,
-   1343, 8117, 620, -415, -1140, -931, -2678, -1561,
-   -1454, 1010, 1821, -1230, -3869, 3745, 2041, -1243,
-   -196, -4974, -9547, -6367, 3797, 105, -698, -1409,
-   -7030, 5843, -6749, -7885, -1051, 3730, -1202, 2938,
-   1536, 2797, 4495, -309, 1954, 1637, 3972, 723,
-   1782, 4101, 5525, -6803, 3625, 4203, -3680, -4308,
-   -5662, 2223, 1929, 1113, 7828, 61, -5548, -10833,
-   8655, 3489, 3680, -829, -496, 6740, 1317, -1402,
-   2411, 402, 1420, 1971, -3876, 4533, 4610, 6555,
-   2928, -2090, -1689, 1243, 3253, 1051, 4787, -3870,
-   -2253, 4030, -507, 3956, -7122, 6049, 3373, 5868,
-   782, 3961, -2132, -3936, 3944, -195, 1283, -382,
-   -141, 1447, 2272, 4714, 579, 3492, -2719, 937,
-   3498, -5240, 3375, 3040, 290, -7514, -2126, -7146,
-   3084, 1281, 4354, 338, 5197, -1488, 1623, 1854,
-   -2707, -2176, 3413, -2245, 851, 1715, -2870, 1309,
-   -1127, 662, -1673, 7551, -4901, -4459, 1943, -5998,
-   -4459, 1988, -1437, -6808, -530, 812, 6763, 1088,
-   -108, -547, -2758, 5672, 857, 2366, 1770, -3537,
-   -8239, 63, 6457, 3256, 2453, 5478, 3192, 4728,
-   -5188, -1048, -1468, 1944, -1620, -4830, 8233, 4379,
-   887, -1339, 1825, 8806, -7448, 5491, 2284, 1983,
-   4417, -50, -411, -1528, -609, 3553, -7104, 2208,
-   -4777, -877, -3517, 939, -5368, -7444, 4267, -994,
-   -3320, 3897, 1161, 3366, -6309, 6119, -3928, -2835,
-   1384, -1238, 1558, -90, -1277, 3429, -2350, 929,
-   -7380, 705, -1443, -6141, -4110, 5939, 3391, -2137,
-   222, 408, 619, 5516, 6060, 471, -2335, 31,
-   636, -7196, 2346, -2082, 2530, -2093, 1603, -7208,
-   -6764, 2089, -10548, -3235, -3035, -9519, 5596, -5862,
-   -264, -514, -5881, 2064, 2158, -688, 1983, 9081,
-   -395, 1106, 1501, 506, -466, -3651, -879, 9723,
-   5714, -1403, 3090, 2208, -127, -6849, -579, -1405,
-   6088, -8262, -8095, -1043, -9232, -1771, -2790, -5700,
-   -1568, -1509, -1257, -2664, -1594, 560, -7664, -3712,
-   -971, 3808, -3434, -1332, -3769, -1509, 316, 3281,
-   1581, -2888, -2234, -118, 919, 3520, 8085, -2894,
-   1110, 12122, -1275, -2171, -1876, 8625, 1850, 1449,
-   6177, 1800, 627, -5902, 3864, 4634, -3149, -1776,
-   1389, 2766, 481, 2372, -71, 1265, -357, 1275,
-   -2011, 2432, 8081, 2382, 8879, 1983, -1742, -4043,
-   -361, 6496, 5009, -320, 4582, -2144, -4184, -1141,
-   -2661, -3733, -380, -1826, -17320, -3020, -11362, -10212,
-   -2959, -897, -2687, 1760, 2843, 836, -1765, 2219,
-   -3431, 298, 1666, -4254, 1589, -244, -745, -1628,
-   1684, 2892, -4366, 2072, -6710, -1399, -8910, 2407
+static const opus_int8 layer1_recur_weights[1728] = {
+   -41, 5, 25, 16, -9, 22, 19, 19,
+   -16, 56, -32, 68, 95, 62, 124, 81,
+   30, 112, -24, 30, -12, 104, 49, 24,
+   -10, 33, 31, 38, 10, 71, -16, 29,
+   13, 14, 38, -7, 79, -25, -35, 6,
+   9, -90, -16, -109, -49, 35, -15, -127,
+   85, 12, -6, 16, 27, 26, 82, 10,
+   -79, -36, 42, -88, 50, -26, -7, -87,
+   127, 19, -96, -75, -3, 6, 8, -4,
+   84, -30, -26, 70, -9, -123, -13, -2,
+   64, -125, -49, -99, 126, 67, 94, -20,
+   54, 110, -15, -48, -91, -1, 64, 4,
+   31, -1, 52, -55, 16, 52, 21, 127,
+   -124, 10, 31, 127, 41, -53, 68, 40,
+   16, 48, -19, -69, -16, -100, -29, -97,
+   -2, 47, -16, 40, 80, 60, 82, -18,
+   -42, 15, -43, 42, 123, -28, 38, 18,
+   35, -8, 38, -119, 103, 33, 9, -25,
+   120, -110, -50, -30, 2, -67, -42, -33,
+   -85, 38, 59, -55, 71, 97, -29, -64,
+   14, 32, 1, -128, -26, -121, -33, -8,
+   2, -65, 22, 85, -55, -57, 17, 37,
+   2, -78, 28, -54, 17, -31, 31, 26,
+   -8, 25, 23, -52, -15, -58, -18, 4,
+   -23, -27, 4, 5, -85, 34, 29, -1,
+   -80, -8, 1, 22, -32, 22, -27, 95,
+   -55, -70, -127, -46, -58, -7, 38, -4,
+   127, -14, -7, 71, 62, 43, -57, -54,
+   60, -58, -28, -43, -50, 127, 101, 15,
+   25, 49, -53, 17, -81, -60, 83, -32,
+   46, 57, -59, 19, 49, -12, -109, 20,
+   -19, -50, -7, 14, 79, 59, -30, -57,
+   -5, -60, 13, 5, 85, -33, -89, 9,
+   127, 13, -38, 127, 57, 99, 14, -26,
+   -105, 3, -38, -77, 41, -19, 28, -31,
+   23, -88, -22, -60, -29, 14, -84, 9,
+   8, -1, -21, 49, 58, 15, -4, -6,
+   100, -9, -26, -54, 94, 84, 25, 25,
+   27, 49, -1, 0, -104, -5, 33, -10,
+   40, 54, 15, 62, -1, -39, -54, 18,
+   41, 15, -17, -84, -29, 31, -10, -65,
+   -47, 1, -66, -17, -43, 34, 5, -61,
+   94, 107, 37, 55, 46, 57, 63, -66,
+   -14, 13, -82, 7, 10, -11, 72, 123,
+   102, 1, -112, -71, 121, 56, -24, -24,
+   127, 5, -24, -49, 104, -27, 56, -15,
+   2, 76, 107, 24, 83, 86, 90, 45,
+   116, 124, 48, 29, 102, 36, 10, 55,
+   29, -29, 12, -84, -18, -50, -8, 17,
+   -28, -52, -64, -3, 118, 54, 51, 45,
+   -59, 47, -1, -35, 22, -10, 12, -79,
+   -24, 4, 60, 92, -67, 125, -90, 29,
+   -48, 64, -104, 23, -12, -51, -53, -37,
+   -66, 21, 113, 75, 37, 9, -20, 0,
+   5, -75, 32, 60, 12, 35, -68, -16,
+   48, -22, 40, -19, 40, 77, -51, 63,
+   23, 85, 8, 9, -41, -59, 98, 9,
+   -24, -48, 47, 4, 48, 48, 4, 91,
+   -69, 21, 21, 70, 22, 15, 57, 111,
+   -64, -18, -8, 49, 43, -26, 7, -82,
+   111, -21, 1, -52, 59, -82, 106, 5,
+   -5, -45, 35, -15, -2, 57, 62, 57,
+   68, -6, -27, -51, 50, 60, -21, -12,
+   -127, 34, 89, -117, -59, -83, -76, 80,
+   -59, -29, 56, -18, 27, -70, -67, 46,
+   -92, -87, 12, -116, 71, -72, 4, -51,
+   -64, 70, 6, -104, -67, 42, 3, -5,
+   98, 41, -20, -1, 64, -32, -58, 51,
+   -69, -126, 46, -21, -75, -27, -52, 52,
+   -12, -17, 28, -1, -7, -21, -3, 88,
+   68, 7, 3, 67, -7, 59, 33, 25,
+   -4, -45, -38, 46, 72, -24, -92, -25,
+   -108, 43, -35, -90, 3, -6, 22, -80,
+   91, -35, 111, 8, -54, 21, -125, 31,
+   -77, -121, -17, -56, -18, -125, -126, 36,
+   -24, 35, 1, 0, 25, -20, 14, 12,
+   3, 90, -87, 17, -54, -60, -58, -9,
+   22, -35, 32, 12, 5, 17, -92, 3,
+   8, -54, -128, -22, -75, -41, -22, 127,
+   73, -9, -6, 12, -71, 106, -54, 120,
+   -17, -51, 94, 13, -24, -67, -7, 35,
+   -69, 27, -48, -77, 56, -60, -48, 64,
+   38, 88, -20, 20, -123, 42, -91, 55,
+   -98, -41, 78, -107, 120, -82, -91, 17,
+   21, 31, 7, 31, 67, 32, -42, -9,
+   126, 49, -41, -103, -66, -8, -32, -64,
+   18, -56, 25, -14, 35, 35, -29, -18,
+   -49, 2, 75, -46, -86, 47, -71, -14,
+   18, 28, 15, 40, 33, -18, -45, 60,
+   -52, 3, 43, 61, -115, -52, -1, 21,
+   -28, 27, 17, -33, -125, 29, -9, 126,
+   91, 37, -37, 106, -39, 61, -122, 5,
+   -125, -123, 23, 35, -22, 12, 81, 20,
+   -36, 76, 34, 63, 53, -64, 46, 24,
+   41, 122, -22, 61, -14, -21, 10, 94,
+   27, -27, 78, 3, 2, 15, 14, 20,
+   -3, -15, -11, -128, -35, -58, 8, -43,
+   83, -26, 48, 44, 8, -14, -10, 56,
+   -48, 12, -39, -40, -17, 66, 69, 33,
+   -34, -16, -32, 48, -86, 2, 21, 2,
+   51, 31, -39, 57, -20, 16, -24, 66,
+   65, -6, 64, -13, 2, 73, -85, -7,
+   -127, -53, 49, -68, -44, 26, 79, -6,
+   78, 17, -34, 45, 33, 16, 17, 56,
+   -76, 28, 44, 12, 15, 35, 21, 66,
+   -47, 53, 27, -13, 13, -30, 55, -31,
+   67, -63, -4, 51, -40, 49, 51, 14,
+   -38, -62, -49, 50, 26, 3, -16, -39,
+   42, 7, 30, -27, 108, -73, -29, -6,
+   29, 42, 19, -77, -40, -17, 57, -19,
+   90, 70, -72, -40, -30, 65, 84, -4,
+   2, 9, 33, -73, 73, 81, 8, -21,
+   -22, -57, -5, -58, -32, 14, 34, 10,
+   38, 7, 41, 0, -25, 38, 3, -125,
+   62, -25, -20, 13, 20, 14, -9, -27,
+   13, 31, -128, -85, 72, -63, -49, -18,
+   81, 47, 37, 63, -10, -10, -66, 4,
+   -116, 53, 14, 49, 6, 37, 38, -4,
+   -47, 64, 15, 0, -110, -19, 45, 7,
+   -37, 20, 21, 22, 51, 17, -39, 71,
+   -59, -1, -35, -8, -73, -106, -30, 5,
+   -68, -18, -36, 35, -21, -17, -1, 4,
+   -24, -28, 5, 4, 11, -50, 27, 84,
+   -16, -60, -86, -12, -31, -8, 43, 52,
+   94, 14, 29, 46, -34, 6, -2, 51,
+   -36, -56, -9, -48, -8, 26, 78, 3,
+   -31, -46, 25, 14, -8, -9, -47, 1,
+   -23, 65, 42, -5, 104, 96, -70, 18,
+   -69, 84, -2, -28, -19, -35, 5, -49,
+   -88, -117, 9, 82, -71, -58, 33, 82,
+   17, 40, -93, 32, 5, 21, 38, -23,
+   -77, -40, 48, -8, -10, 22, -27, -47,
+   -49, 46, 67, -17, 81, -61, 92, 54,
+   8, -71, 127, 23, -61, 51, 13, 32,
+   -35, -52, -32, -4, -47, 20, 0, -62,
+   -126, 3, -17, -127, 18, -70, 11, -29,
+   -87, -27, -19, -13, -9, -128, -26, 69,
+   -67, -29, 66, 49, 1, -119, -73, -7,
+   -55, -9, 48, -45, -27, 26, 57, 12,
+   9, 51, -98, -14, -21, -37, 88, 23,
+   -37, 65, -11, 69, -7, -34, 16, 33,
+   36, 94, 56, 5, 63, -38, 25, -55,
+   -81, -74, 21, 30, -4, -16, 52, 37,
+   4, 8, -48, 8, 127, -75, -56, -79,
+   -76, 61, 17, -27, -63, -56, -53, 39,
+   -109, -50, -77, -7, -100, -88, 23, -108,
+   -120, 120, -87, -122, -87, 36, 63, -65,
+   3, -32, 84, 55, 71, 126, 10, 37,
+   29, 16, 45, 40, 75, -5, 40, -105,
+   -7, -15, -25, 12, -78, 46, -9, -114,
+   90, 50, -41, -23, 6, -58, 75, 19,
+   62, -33, -38, -24, 66, 22, 66, -4,
+   124, 29, -55, -29, 42, -17, -123, -79,
+   -8, -3, -2, 19, 59, -33, -39, 41,
+   51, 0, 45, -15, 67, 8, -42, 2,
+   -20, -49, 95, -32, 5, -56, 37, 21,
+   -11, -18, -8, 53, 17, 43, 14, 81,
+   -90, -40, 69, -33, 59, 28, -8, 44,
+   47, -11, -26, -92, 31, 86, 12, -39,
+   9, -28, -22, -6, -42, -4, -23, 6,
+   -57, 109, -46, -12, 10, -77, -66, -24,
+   -26, 119, 78, 43, -17, -14, -45, 73,
+   -4, 13, -44, -78, 26, -64, -60, -99,
+   -104, 31, -16, -93, -64, 48, -17, 108,
+   -71, 12, 34, -63, 24, 14, -28, -48,
+   1, 94, -29, -27, 2, -5, -53, 18,
+   56, 91, -19, -28, 45, -38, -55, -106,
+   -10, 41, 49, -38, -4, 1, -84, -37,
+   -77, 4, -66, 19, 56, 41, -82, 114,
+   97, -50, 83, -38, 31, -126, -22, -94,
+   -86, 44, 37, 35, 11, 60, 49, 3,
+   26, 18, 124, -64, 50, -72, 17, -80,
+   16, 30, 113, 34, -19, 32, 63, -30,
+   95, -88, 55, 126, 127, 107, 49, 83,
+   -17, -75, 1, -107, 27, 20, 115, 31,
+   57, -11, -36, 41, 91, 31, 58, -38,
+   -12, 4, 39, 38, 37, 13, -73, 33,
+   11, 43, 35, 23, -86, 36, -10, 19,
+   34, -10, -35, -8, 47, -105, -60, 75,
+   -25, 127, 14, 106, 81, -9, -46, 21,
+   35, 42, -6, 3, 118, 78, 37, 33,
+   22, 98, 46, 50, -23, 81, 122, 18,
+   30, 64, 105, 101, -116, -33, -66, 18,
+   -59, -99, -125, -79, 19, 127, 120, -98,
+   13, 27, 32, 26, 3, 20, 120, 10,
+   29, 91, 51, 78, 28, -61, 34, -12,
+   54, -19, 51, -17, 29, 56, 53, -124,
+   -10, -97, 9, -10, -9, 2, 9, 33,
+   33, 44, -47, 36, 52, -54, 63, 88,
+   -11, 70, 68, 113, 11, 127, 65, 88,
+   126, -12, 28, 81, 57, 123, 71, 26,
+   5, 117, 16, 16, -9, 92, 50, -35,
+   27, 27, -47, 39, 46, 13, 19, 61,
+   106, 74, -31, 52, 94, 22, -40, -72,
+   57, 10, 45, 25, 5, -5, 36, -7,
+   -43, 40, 40, -81, -36, -47, 8, -18,
+   63, 31, -48, 58, -49, -19, 25, -5,
+   63, -76, 9, -2, 1, 127, 19, -24,
+   32, 36, 23, 25, -49, 104, 13, 3,
+   75, 12, -31, 38, 122, 20, 49, 35,
+   -14, 16, 44, 101, -12, 119, 50, -48,
+   -7, -11, 15, -103, -9, -39, 4, -54,
+   -67, 32, 30, 47, 40, 60, 9, -17,
+   -31, 47, 13, 127, -21, -4, 50, 28,
+   34, -4, -72, -24, -2, -41, 3, 26,
+   -34, -90, 82, 1, -83, 47, 40, -8,
+   -4, 4, -65, -10, 115, 43, 104, 42,
+   32, 85, -78, 12, 59, 71, 113, 42,
+   -20, 50, -29, 61, 6, 104, 74, 65,
+   -73, 12, 93, 77, 21, 24, -14, 84,
+   58, 105, 37, 37, 85, -53, 76, -95,
+   26, -17, -51, -64, -75, -19, -1, 27,
+   25, -49, 46, 73, 19, -13, -98, -8,
+   1, -37, -69, -81, 28, 2, 7, -40,
+   -47, 55, 29, 53, 33, 103, -53, -15,
+   19, -9, 7, 120, -21, 28, 27, 13
 };
 
-static const opus_int16 layer1_bias[36] = {
-   14206, 6258, 9052, 6611, -3603, 8785, 5625, 9775,
-   6516, 4736, 8943, 3466, -888, -778, 5042, -3041,
-   2719, 1724, 1216, 1698, 805, 2729, 1820, 4066,
-   -3456, 3091, 1570, 542, 599, 2583, 2052, 1258,
-   -2255, 1508, 1183, -5095
+static const opus_int8 layer1_bias[72] = {
+   47, 0, -35, 34, 104, 95, 120, -3,
+   -5, 105, -41, 79, -27, 122, 46, 89,
+   89, 34, 71, 94, 70, 68, 79, 18,
+   44, 25, -15, -22, 18, -22, 9, -14,
+   -45, 5, 1, 20, 38, 22, 15, 24,
+   28, -14, -2, 10, 8, -27, -18, -46,
+   -5, 34, -43, -33, 12, 13, 0, 0,
+   9, -47, 28, 14, -18, 17, 8, 10,
+   -38, -23, -20, -11, 59, 45, 76, 24
 };
 
-static const opus_int16 layer2_weights[24] = {
-   946, -14834, -5002, 14299, 10342, 1471, 7109, -508,
-   11745, -1786, -621, 15227, -4577, 30114, 5174, 12698,
-   22279, -527, 7727, 2246, 9892, -2297, -15579, 853
+static const opus_int8 layer2_weights[48] = {
+   122, -51, 118, -67, -23, -128, 126, -124,
+   127, 12, 2, -68, 117, -80, 3, 127,
+   71, 127, -128, -83, -15, 93, 13, 40,
+   27, -127, 65, 101, 84, 16, 85, 117,
+   127, -120, -59, -55, -128, -51, -128, -65,
+   127, 1, 99, 127, -60, 127, -128, 50
 };
 
-static const opus_int16 layer2_bias[2] = {
-   3700, 8418
+static const opus_int8 layer2_bias[2] = {
+   34, 115
 };
 
 const DenseLayer layer0 = {
    layer0_bias,
    layer0_weights,
-   25, 16, 0
+   25, 32, 0
 };
 
 const GRULayer layer1 = {
    layer1_bias,
    layer1_weights,
    layer1_recur_weights,
-   16, 12
+   32, 24
 };
 
 const DenseLayer layer2 = {
    layer2_bias,
    layer2_weights,
-   12, 2, 1
+   24, 2, 1
 };