Patrick's patch to make stdin/stdout work agdin, thanks Patrick
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 5 Mar 2012 05:41:38 +0000 (05:41 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 5 Mar 2012 05:41:38 +0000 (05:41 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@341 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/src/codebookge.c [new file with mode: 0644]
codec2-dev/src/codec2.c

diff --git a/codec2-dev/src/codebookge.c b/codec2-dev/src/codebookge.c
new file mode 100644 (file)
index 0000000..9472272
--- /dev/null
@@ -0,0 +1,279 @@
+/* THIS IS A GENERATED FILE. Edit generate_codebook.c and its input */
+
+/*
+ * This intermediary file and the files that used to create it are under 
+ * The LGPL. See the file COPYING.
+ */
+
+#include "defines.h"
+
+  /* codebook/gecb.txt */
+static const float codes0[] = {
+  2.71,  12.0184,
+  0.04675,  -2.73881,
+  0.120993,  8.38895,
+  -1.58028,  -0.892307,
+  1.19307,  -1.91561,
+  0.187101,  -3.27679,
+  0.332251,  -7.66455,
+  -1.47944,  31.2461,
+  1.52761,  27.7095,
+  -0.524379,  5.25012,
+  0.55333,  7.4388,
+  -0.843451,  -1.95299,
+  2.26389,  8.61029,
+  0.143143,  2.36549,
+  0.616506,  1.28427,
+  -1.71133,  22.0967,
+  1.00813,  17.3965,
+  -0.106718,  1.41891,
+  -0.136246,  14.2736,
+  -1.70909,  -20.5319,
+  1.65787,  -3.39107,
+  0.138049,  -4.95785,
+  0.536729,  -1.94375,
+  0.196307,  36.8519,
+  1.27248,  22.5565,
+  -0.670219,  -1.90604,
+  0.382092,  6.40113,
+  -0.756911,  -4.90102,
+  1.82931,  4.6138,
+  0.318794,  0.73683,
+  0.612815,  -2.07505,
+  -0.410151,  24.7871,
+  1.77602,  13.1909,
+  0.106457,  -0.104492,
+  0.192206,  10.1838,
+  -1.82442,  -7.71565,
+  0.931346,  4.34835,
+  0.308813,  -4.086,
+  0.397143,  -11.8089,
+  -0.048715,  41.2273,
+  0.877342,  35.8503,
+  -0.759794,  0.476634,
+  0.978593,  7.67467,
+  -1.19506,  3.03883,
+  2.63989,  -3.41106,
+  0.191127,  3.60351,
+  0.402932,  1.0843,
+  -2.15202,  18.1076,
+  1.5468,  8.32271,
+  -0.143089,  -4.07592,
+  -0.150142,  5.86674,
+  -1.40844,  -3.2507,
+  1.56615,  -10.4132,
+  0.178171,  -10.2267,
+  0.362164,  -0.028556,
+  -0.070125,  24.3907,
+  0.594752,  17.4828,
+  -0.28698,  -6.90407,
+  0.464818,  10.2055,
+  -1.00684,  -14.3572,
+  2.32957,  -3.69161,
+  0.335745,  2.40714,
+  1.01966,  -3.15565,
+  -1.25945,  7.9919,
+  2.38369,  19.6806,
+  -0.094947,  -2.41374,
+  0.20933,  6.66477,
+  -2.22103,  1.37986,
+  1.29239,  2.04633,
+  0.243626,  -0.890741,
+  0.428773,  -7.19366,
+  -1.11374,  41.3414,
+  2.6098,  31.1405,
+  -0.446468,  2.53419,
+  0.490104,  4.62757,
+  -1.11723,  -3.24174,
+  1.79156,  8.41493,
+  0.156012,  0.183336,
+  0.532447,  3.15455,
+  -0.764484,  18.514,
+  0.952395,  11.7713,
+  -0.332567,  0.346987,
+  0.202165,  14.7168,
+  -2.12924,  -15.559,
+  1.35358,  -1.92679,
+  -0.010963,  -16.3364,
+  0.399053,  -2.79057,
+  0.750657,  31.1483,
+  0.655743,  24.4819,
+  -0.45321,  -0.735879,
+  0.2869,  6.5467,
+  -0.715673,  -12.3578,
+  1.54849,  3.87217,
+  0.271874,  0.802339,
+  0.502073,  -4.85485,
+  -0.497037,  17.7619,
+  1.19116,  13.9544,
+  0.01563,  1.33157,
+  0.341867,  8.93537,
+  -2.31601,  -5.39506,
+  0.75861,  1.9645,
+  0.24132,  -3.23769,
+  0.267151,  -11.2344,
+  -0.273126,  32.6248,
+  1.75352,  40.432,
+  -0.784011,  3.04576,
+  0.705987,  5.66118,
+  -1.3864,  1.35356,
+  2.37646,  1.67485,
+  0.242973,  4.73218,
+  0.491227,  0.354061,
+  -1.60676,  8.65895,
+  1.16711,  5.9871,
+  -0.137601,  -12.0417,
+  -0.251375,  10.3972,
+  -1.43151,  -8.90411,
+  0.98828,  -13.209,
+  0.261484,  -6.35497,
+  0.395932,  -0.702529,
+  0.283704,  26.8996,
+  0.420959,  15.4418,
+  -0.355804,  -13.7278,
+  0.527372,  12.3985,
+  -1.16956,  -15.9985,
+  1.90669,  -5.81605,
+  0.354492,  3.85157,
+  0.82576,  -4.16264,
+  -0.49019,  13.0572,
+  2.25577,  13.5264,
+  -0.004956,  -3.23713,
+  0.026709,  7.86645,
+  -1.81037,  -0.451183,
+  1.08383,  -0.18362,
+  0.135836,  -2.26658,
+  0.375812,  -5.51225,
+  -1.96644,  38.6829,
+  1.97799,  24.5655,
+  -0.704656,  6.35881,
+  0.480786,  7.05175,
+  -0.976417,  -2.42273,
+  2.50215,  6.75935,
+  0.083588,  3.2588,
+  0.543629,  0.910013,
+  -1.23196,  23.0915,
+  0.785492,  14.807,
+  -0.213554,  1.688,
+  0.004748,  18.1718,
+  -1.54719,  -16.1168,
+  1.50104,  -3.28114,
+  0.080133,  -4.63472,
+  0.476592,  -2.18093,
+  0.44247,  40.304,
+  1.07277,  27.592,
+  -0.594738,  -4.16681,
+  0.42248,  7.61609,
+  -0.927521,  -7.27441,
+  1.99162,  1.29636,
+  0.291307,  2.39878,
+  0.721081,  -1.95062,
+  -0.804256,  24.9295,
+  1.64839,  19.1197,
+  0.060852,  -0.590639,
+  0.266085,  9.10325,
+  -1.9574,  -2.88461,
+  1.11693,  2.6724,
+  0.35458,  -2.74854,
+  0.330733,  -14.1561,
+  -0.527851,  39.5756,
+  0.991152,  43.195,
+  -0.589619,  1.26919,
+  0.787401,  8.73071,
+  -1.0138,  1.02507,
+  2.8254,  1.89538,
+  0.24089,  2.74557,
+  0.427195,  2.54446,
+  -1.95311,  12.244,
+  1.44862,  12.0607,
+  -0.210492,  -3.37906,
+  -0.056713,  10.204,
+  -1.65237,  -5.10274,
+  1.29475,  -12.2708,
+  0.111608,  -8.67592,
+  0.326634,  -1.16763,
+  0.021781,  31.1258,
+  0.455335,  21.4684,
+  -0.37544,  -3.37121,
+  0.39362,  11.302,
+  -0.851456,  -19.4149,
+  2.10703,  -2.22886,
+  0.373233,  1.92406,
+  0.884438,  -1.72058,
+  -0.975127,  9.84013,
+  2.0033,  17.3954,
+  -0.036915,  -1.11137,
+  0.148456,  5.39997,
+  -1.91441,  4.77382,
+  1.44791,  0.537122,
+  0.194979,  -1.03818,
+  0.495771,  -9.95502,
+  -1.05899,  32.9471,
+  2.01122,  32.4544,
+  -0.30965,  4.71911,
+  0.436082,  4.63552,
+  -1.23711,  -1.25428,
+  2.02274,  9.42834,
+  0.190342,  1.46077,
+  0.479017,  2.48479,
+  -1.07848,  16.2217,
+  1.20764,  9.65421,
+  -0.258087,  -1.67236,
+  0.071852,  13.416,
+  -1.87723,  -16.072,
+  1.28957,  -4.87118,
+  0.067713,  -13.4427,
+  0.435551,  -4.1655,
+  0.46614,  30.5895,
+  0.904895,  21.598,
+  -0.518369,  -2.53205,
+  0.337363,  5.63726,
+  -0.554975,  -17.4005,
+  1.69188,  1.14574,
+  0.227934,  0.889297,
+  0.587303,  -5.72973,
+  -0.262133,  18.6666,
+  1.39505,  17.0029,
+  -0.01909,  4.30838,
+  0.304235,  12.6699,
+  -2.07406,  -6.46084,
+  0.920546,  1.21296,
+  0.284927,  -1.78547,
+  0.209724,  -16.024,
+  -0.636067,  31.5768,
+  1.34989,  34.6775,
+  -0.971625,  5.30086,
+  0.590249,  4.44971,
+  -1.56787,  3.60239,
+  2.1455,  4.51666,
+  0.296022,  4.12017,
+  0.445299,  0.868772,
+  -1.44193,  14.1284,
+  1.35575,  6.0074,
+  -0.012814,  -7.49657,
+  -0.43,  8.50012,
+  -1.20469,  -7.11326,
+  1.10102,  -6.83682,
+  0.196463,  -6.234,
+  0.436747,  -1.12979,
+  0.141052,  22.8549,
+  0.290821,  18.8114,
+  -0.529536,  -7.73251,
+  0.63428,  10.7898,
+  -1.33472,  -20.3258,
+  1.81564,  -1.90332,
+  0.394778,  3.79758,
+  0.732682,  -8.18382,
+  -0.741244,  11.7683
+};
+
+const struct lsp_codebook ge_cb[] = {
+  /* codebook/gecb.txt */
+  {
+    2,
+    8,
+    256,
+    codes0
+  },
+  { 0, 0, 0, 0 }
+};
index 465a06360b73afb92570498dca7cd7183c09750d..9f6a867b1ab7dafe69e458702000829b91b2cbe4 100644 (file)
@@ -296,7 +296,7 @@ void codec2_encode_2500(struct CODEC2 *c2, unsigned char * bits, short speech[])
     encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD);
     energy_index = encode_energy(e);
     //for(i=0; i<LPC_ORD; i++)
-    // printf("lsp_indexes: %d lsps: %2.3f\n", lsp_indexes[i], lsps[i]);
+    // fprintf(stderr,"lsp_indexes: %d lsps: %2.3f\n", lsp_indexes[i], lsps[i]);
     //exit(0);
 
     pack(bits, &nbit, Wo_index, WO_BITS);
@@ -306,7 +306,7 @@ void codec2_encode_2500(struct CODEC2 *c2, unsigned char * bits, short speech[])
     pack(bits, &nbit, energy_index, E_BITS);
     pack(bits, &nbit, voiced1, 1);
     pack(bits, &nbit, voiced2, 1);
-    printf("v2: %d  v1: %d\n", voiced2, voiced1);
+    fprintf(stderr,"v2: %d  v1: %d\n", voiced2, voiced1);
     assert(nbit == codec2_bits_per_frame(c2));
 }
 
@@ -339,7 +339,7 @@ void codec2_decode_2500(struct CODEC2 *c2, short speech[], const unsigned char *
     MODEL   model_interp;
     static  int frames;
 
-    printf("frame: %d\n", frames+=2);
+    fprintf(stderr,"frame: %d\n", frames+=2);
     assert(c2 != NULL);
     
     /* unpack bit stream to integer codes */
@@ -369,18 +369,18 @@ void codec2_decode_2500(struct CODEC2 *c2, short speech[], const unsigned char *
     aks_to_M2(ak, LPC_ORD, &model, energy, &snr, 1); 
     apply_lpc_correction(&model);
 
-    printf("Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
+    fprintf(stderr,"Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
           model.Wo, model.L, energy, voiced2 );
     //for(i=0; i<LPC_ORD; i++)
-    // printf("lsp_indexes: %d lsp_: %2.3f prev_lsp_: %2.3f\n", 
+    // fprintf(stderr,"lsp_indexes: %d lsp_: %2.3f prev_lsp_: %2.3f\n", 
     //        lsp_indexes[i], lsps_[i], c2->prev_lsps_[i]);
-    //printf("ak: ");
+    //fprintf(stderr,"ak: ");
     //for(i=0; i<LPC_ORD; i++)
-    // printf("%2.3f  ", ak[i]);
-    printf("Am: ");
+    // fprintf(stderr,"%2.3f  ", ak[i]);
+    fprintf(stderr,"Am: ");
     for(i=0; i<5; i++)
-       printf("%2.3f  ", model.A[i]);
-    printf("\n");
+       fprintf(stderr,"%2.3f  ", model.A[i]);
+    fprintf(stderr,"\n");
     
     /* interpolate odd frame model parameters from adjacent frames */
 
@@ -393,17 +393,17 @@ void codec2_decode_2500(struct CODEC2 *c2, short speech[], const unsigned char *
                    c2->prev_lsps_, c2->prev_energy, lsps_, energy, ak_interp,
                    lsps_interp);
     apply_lpc_correction(&model_interp);
-    printf("Wo: %1.5f  L: %d prev_e: %3.2f v1: %d pv: %d\n", 
+    fprintf(stderr,"Wo: %1.5f  L: %d prev_e: %3.2f v1: %d pv: %d\n", 
           model_interp.Wo, model_interp.L, c2->prev_energy, voiced1,
           c2->prev_model.voiced);
-    //printf("ak_interp: ");
+    //fprintf(stderr,"ak_interp: ");
     //for(i=0; i<LPC_ORD; i++)
-    // printf("%2.3f  ", ak_interp[i]);
-    //printf("\n");
-    printf("Am: ");
+    // fprintf(stderr,"%2.3f  ", ak_interp[i]);
+    //fprintf(stderr,"\n");
+    fprintf(stderr,"Am: ");
     for(i=0; i<5; i++)
-       printf("%2.3f  ", model_interp.A[i]);
-    printf("\n");
+       fprintf(stderr,"%2.3f  ", model_interp.A[i]);
+    fprintf(stderr,"\n");
     //if (frames == 6)
     // exit(0);
 
@@ -470,13 +470,13 @@ void codec2_encode_1500(struct CODEC2 *c2, unsigned char * bits, short speech[])
 
     /* frame 1: - we just want voicing -------------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, speech);
     voiced1 = model.voiced;
 
     /* frame 2: - full LSP and Wo ------------------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[N]);
     voiced2 = model.voiced;
     
@@ -500,21 +500,21 @@ void codec2_encode_1500(struct CODEC2 *c2, unsigned char * bits, short speech[])
     bw_expand_lsps(lsps_, LPC_ORD);
     prev_Wo = decode_Wo(Wo_index);
     /*
-      printf("\n  lsps_......: ");
+      fprintf(stderr,"\n  lsps_......: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_[i]);
-    printf("\n");
+       fprintf(stderr,"%5.3f  ", lsps_[i]);
+    fprintf(stderr,"\n");
     */
 
     /* frame 3: - we just want voicing --------------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[2*N]);
     voiced3 = model.voiced;
 
     /* frame 4: - voicing and delta Wo -----------------------------  */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[3*N]);
     voiced4 = model.voiced;
     
@@ -525,21 +525,21 @@ void codec2_encode_1500(struct CODEC2 *c2, unsigned char * bits, short speech[])
 
     //encode_lsps_diff_time_vq(lsp_indexes, lsps, prev_lsps_, LPC_ORD);
     energy_index = encode_energy(e);
-    //printf("  e: %f code: %d dec: %f \n", e, energy_index, decode_energy(energy_index));
+    //fprintf(stderr,"  e: %f code: %d dec: %f \n", e, energy_index, decode_energy(energy_index));
 
     pack(bits, &nbit, delta_Wo_index, WO_DT_BITS);
     nbit_tmp = nbit;
     pack(bits, &nbit, energy_index, E_BITS);
     pack(bits, &nbit, voiced3, 1);
     pack(bits, &nbit, voiced4, 1);
-    //printf("          00 16 24 32 40 48 56\n"); 
-    //printf("nbit = %d %02x %02x %02x %02x %02x %02x %02x %02x\n", nbit, 
+    //fprintf(stderr,"          00 16 24 32 40 48 56\n"); 
+    //fprintf(stderr,"nbit = %d %02x %02x %02x %02x %02x %02x %02x %02x\n", nbit, 
     //    bits[0], bits[1], bits[2], bits[3],
     //    bits[4], bits[5], bits[6], bits[7]);
 
-    //printf("  nbit_tmp: %d ", nbit_tmp);
+    //fprintf(stderr,"  nbit_tmp: %d ", nbit_tmp);
     energy_index = unpack(bits, &nbit_tmp, E_BITS);
-    // printf("energy_index after: %d\n", energy_index);
+    // fprintf(stderr,"energy_index after: %d\n", energy_index);
 
     assert(nbit == codec2_bits_per_frame(c2));
     //if (frames == 36)
@@ -618,33 +618,33 @@ void codec2_decode_1500(struct CODEC2 *c2, short speech[], const unsigned char *
 
     frames += 2;
     /* used for comparing to c2sim version 
-       printf("frame: %d\n", frames);
-    printf("  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
+       fprintf(stderr,"frame: %d\n", frames);
+    fprintf(stderr,"  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
           model_interp.Wo, model_interp.L, model_interp.voiced, c2->prev_energy);
-    printf("  lsps_interp: ");
+    fprintf(stderr,"  lsps_interp: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_interp[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_interp[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model_interp.A[i]);
+       fprintf(stderr,"%5.3f  ",model_interp.A[i]);
 
-    printf("\n  Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
+    fprintf(stderr,"\n  Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
           model.Wo, model.L, energy, model.voiced);
-    printf("  lsps_......: ");
+    fprintf(stderr,"  lsps_......: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model.A[i]);
-    printf("\n");
+       fprintf(stderr,"%5.3f  ",model.A[i]);
+    fprintf(stderr,"\n");
     */
 
     /* synthesise frame 1 and frame 2 10ms frames */
 
     synthesise_one_frame(c2, speech, &model_interp, ak_interp);
-    //printf("  buf[0] %d\n", speech[0]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[0]);
     synthesise_one_frame(c2, &speech[N], &model, ak);
-    //printf("  buf[0] %d\n", speech[N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[N]);
 
     /* update memories (decode states) for next time */
 
@@ -689,34 +689,34 @@ void codec2_decode_1500(struct CODEC2 *c2, short speech[], const unsigned char *
 
     frames +=2;
     /* used for comparing to c2sim version:
-    printf("frame: %d\n", frames);
+    fprintf(stderr,"frame: %d\n", frames);
 
-    printf("  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
+    fprintf(stderr,"  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
           model_interp.Wo, model_interp.L, model_interp.voiced, c2->prev_energy);
-    printf("  lsps_interp: ");
+    fprintf(stderr,"  lsps_interp: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_interp[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_interp[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model_interp.A[i]);
+       fprintf(stderr,"%5.3f  ",model_interp.A[i]);
 
-    printf("\n  Wo: %1.5f  L: %d e_index: %d e: %3.2f v2: %d\n", 
+    fprintf(stderr,"\n  Wo: %1.5f  L: %d e_index: %d e: %3.2f v2: %d\n", 
           model.Wo, model.L, energy_index, energy, model.voiced);
-    printf("  lsps_......: ");
+    fprintf(stderr,"  lsps_......: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model.A[i]);
-    printf("\n");
+       fprintf(stderr,"%5.3f  ",model.A[i]);
+    fprintf(stderr,"\n");
     */
 
     /* synthesise frame 3 and frame 4 10ms frames */
 
     synthesise_one_frame(c2, &speech[2*N], &model_interp, ak_interp);
-    //printf("  buf[0] %d\n", speech[2*N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[2*N]);
     synthesise_one_frame(c2, &speech[3*N], &model, ak);
-    //printf("  buf[0] %d\n", speech[3*N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[3*N]);
  
     if (frames == 44) {
        //exit(0);
@@ -780,23 +780,23 @@ void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[])
 
     /* frame 1: - we just want voicing -------------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, speech);
     voiced1 = model.voiced;
 
     /* frame 2: - predictive VQ LSP and Wo ---------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[N]);
     voiced2 = model.voiced;
     
     Wo_index = encode_Wo(model.Wo);
 
     e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, LPC_ORD);
-    //printf("   lsps........: ");
+    //fprintf(stderr,"   lsps........: ");
     //for(i=0; i<LPC_ORD; i++)
-    // printf("%5.3f  ", lsps[i]);
-    //printf("\n");
+    // fprintf(stderr,"%5.3f  ", lsps[i]);
+    //fprintf(stderr,"\n");
     encode_lsps_vq(lsp_indexes, lsps, lsps_, LPC_ORD);
     energy_index = encode_energy(e);
 
@@ -812,13 +812,13 @@ void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[])
 
     /* frame 3: - we just want voicing --------------------------------- */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[2*N]);
     voiced3 = model.voiced;
 
     /* frame 4: - voicing and delta Wo -----------------------------  */
 
-    //printf("frame: %d\n", ++frames);
+    //fprintf(stderr,"frame: %d\n", ++frames);
     analyse_one_frame(c2, &model, &speech[3*N]);
     voiced4 = model.voiced;
     
@@ -829,21 +829,21 @@ void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[])
 
     //encode_lsps_diff_time_vq(lsp_indexes, lsps, prev_lsps_, LPC_ORD);
     energy_index = encode_energy(e);
-    //printf("  e: %f code: %d dec: %f \n", e, energy_index, decode_energy(energy_index));
+    //fprintf(stderr,"  e: %f code: %d dec: %f \n", e, energy_index, decode_energy(energy_index));
 
     pack(bits, &nbit, delta_Wo_index, WO_DT_BITS);
     nbit_tmp = nbit;
     pack(bits, &nbit, energy_index, E_BITS);
     pack(bits, &nbit, voiced3, 1);
     pack(bits, &nbit, voiced4, 1);
-    //printf("          00 16 24 32 40 48 56\n"); 
-    //printf("nbit = %d %02x %02x %02x %02x %02x %02x %02x %02x\n", nbit, 
+    //fprintf(stderr,"          00 16 24 32 40 48 56\n"); 
+    //fprintf(stderr,"nbit = %d %02x %02x %02x %02x %02x %02x %02x %02x\n", nbit, 
     //    bits[0], bits[1], bits[2], bits[3],
     //    bits[4], bits[5], bits[6], bits[7]);
 
-    //printf("  nbit_tmp: %d ", nbit_tmp);
+    //fprintf(stderr,"  nbit_tmp: %d ", nbit_tmp);
     energy_index = unpack(bits, &nbit_tmp, E_BITS);
-    // printf("energy_index after: %d\n", energy_index);
+    // fprintf(stderr,"energy_index after: %d\n", energy_index);
 
     assert(nbit == codec2_bits_per_frame(c2));
     //if (frames == 8)
@@ -921,33 +921,33 @@ void codec2_decode_1200(struct CODEC2 *c2, short speech[], const unsigned char *
 
     frames += 2;
     /* used for comparing to c2sim version  
-       printf("frame: %d\n", frames);
-    printf("  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
+       fprintf(stderr,"frame: %d\n", frames);
+    fprintf(stderr,"  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
           model_interp.Wo, model_interp.L, model_interp.voiced, c2->prev_energy);
-    printf("  lsps_interp: ");
+    fprintf(stderr,"  lsps_interp: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_interp[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_interp[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model_interp.A[i]);
+       fprintf(stderr,"%5.3f  ",model_interp.A[i]);
 
-    printf("\n  Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
+    fprintf(stderr,"\n  Wo: %1.5f  L: %d e: %3.2f v2: %d\n", 
           model.Wo, model.L, energy, model.voiced);
-    printf("  lsps_......: ");
+    fprintf(stderr,"  lsps_......: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model.A[i]);
-    printf("\n");
+       fprintf(stderr,"%5.3f  ",model.A[i]);
+    fprintf(stderr,"\n");
     */
 
     /* synthesise frame 1 and frame 2 10ms frames */
 
     synthesise_one_frame(c2, speech, &model_interp, ak_interp);
-    //printf("  buf[0] %d\n", speech[0]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[0]);
     synthesise_one_frame(c2, &speech[N], &model, ak);
-    //printf("  buf[0] %d\n", speech[N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[N]);
 
     /* update memories (decode states) for next time */
 
@@ -992,34 +992,34 @@ void codec2_decode_1200(struct CODEC2 *c2, short speech[], const unsigned char *
 
     frames +=2;
     /* used for comparing to c2sim version: 
-    printf("frame: %d\n", frames);
+    fprintf(stderr,"frame: %d\n", frames);
 
-    printf("  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
+    fprintf(stderr,"  Wo: %1.5f  L: %d v1: %d prev_e: %f\n", 
           model_interp.Wo, model_interp.L, model_interp.voiced, c2->prev_energy);
-    printf("  lsps_interp: ");
+    fprintf(stderr,"  lsps_interp: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_interp[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_interp[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model_interp.A[i]);
+       fprintf(stderr,"%5.3f  ",model_interp.A[i]);
 
-    printf("\n  Wo: %1.5f  L: %d e_index: %d e: %3.2f v2: %d\n", 
+    fprintf(stderr,"\n  Wo: %1.5f  L: %d e_index: %d e: %3.2f v2: %d\n", 
           model.Wo, model.L, energy_index, energy, model.voiced);
-    printf("  lsps_......: ");
+    fprintf(stderr,"  lsps_......: ");
     for(i=0; i<LPC_ORD; i++)
-       printf("%5.3f  ", lsps_[i]);
-    printf("\n  A..........: ");
+       fprintf(stderr,"%5.3f  ", lsps_[i]);
+    fprintf(stderr,"\n  A..........: ");
     for(i=0; i<10; i++)
-       printf("%5.3f  ",model.A[i]);
-    printf("\n");
+       fprintf(stderr,"%5.3f  ",model.A[i]);
+    fprintf(stderr,"\n");
     */
 
     /* synthesise frame 3 and frame 4 10ms frames */
 
     synthesise_one_frame(c2, &speech[2*N], &model_interp, ak_interp);
-    //printf("  buf[0] %d\n", speech[2*N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[2*N]);
     synthesise_one_frame(c2, &speech[3*N], &model, ak);
-    //printf("  buf[0] %d\n", speech[3*N]);
+    //fprintf(stderr,"  buf[0] %d\n", speech[3*N]);
  
     //if (frames == 8) {
     // exit(0);
@@ -1102,7 +1102,7 @@ void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[])
     two_stage_pitch_refinement(model, Sw);
     estimate_amplitudes(model, Sw, c2->W);
     snr = est_voicing_mbe(model, Sw, c2->W, Sw_, Ew, c2->prev_Wo);
-    //printf("snr %3.2f  v: %d  Wo: %f prev_Wo: %f\n", 
+    //fprintf(stderr,"snr %3.2f  v: %d  Wo: %f prev_Wo: %f\n", 
     //    snr, model->voiced, model->Wo, c2->prev_Wo);
     c2->prev_Wo = model->Wo;
 }