700C lives :-)
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 12 Jan 2017 22:18:17 +0000 (22:18 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 12 Jan 2017 22:18:17 +0000 (22:18 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2963 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/tnewamp1.m
codec2-dev/src/c2dec.c
codec2-dev/src/c2enc.c
codec2-dev/src/codec2.c
codec2-dev/src/newamp1.c
codec2-dev/unittest/tnewamp1.c

index 34c8747679a7dd1e8858a24358851d523b67400f..402eec12d436dc2d4c7044249810514cd29630a4 100644 (file)
@@ -188,8 +188,9 @@ function tnewamp1(input_prefix)
   Hm_out_name = sprintf("%s_hm.out", output_prefix);
   fhm = fopen(Hm_out_name,"wb"); 
 
+  printf("Generating files for c2sim: ");
   for f=1:frames
-    printf("%d ", f);   
+    printf(".", f);   
     Wo = model_(f,1);
     L = min([model_(f,2) max_amp-1]);
     Am = model_(f,3:(L+2));
index 98e899c1d05fcb69519c378fb1cab0f9a999af5d..57f081543d94ac8bb9008324575601d0fbcd87ff 100644 (file)
@@ -99,8 +99,10 @@ int main(int argc, char *argv[])
        mode = CODEC2_MODE_700;
     else if (strcmp(argv[1],"700B") == 0)
        mode = CODEC2_MODE_700B;
-    else {
-       fprintf(stderr, "Error in mode: %s.  Must be 3200, 2400, 1600, 1400, 1300, 1200, 700 or 700B\n", argv[1]);
+     else if (strcmp(argv[1],"700C") == 0)
+       mode = CODEC2_MODE_700C;
+   else {
+       fprintf(stderr, "Error in mode: %s.  Must be 3200, 2400, 1600, 1400, 1300, 1200, 700, 700B or 700C\n", argv[1]);
        exit(1);
     }
     bit_rate = atoi(argv[1]);
index 66baa5e5ad4f94f7e24d46ba208ae5f076c4b499..713ce2c1ec58f2d620d6f44f128658e32da33759 100644 (file)
@@ -46,7 +46,7 @@ int main(int argc, char *argv[])
     int            bit, byte,i;
 
     if (argc < 4) {
-       printf("usage: c2enc 3200|2400|1600|1400|1300|1200|700|700B InputRawspeechFile OutputBitFile [--natural] [--softdec]\n");
+       printf("usage: c2enc 3200|2400|1600|1400|1300|1200|700|700B|700C InputRawspeechFile OutputBitFile [--natural] [--softdec]\n");
        printf("e.g    c2enc 1400 ../raw/hts1a.raw hts1a.c2\n");
        printf("e.g    c2enc 1300 ../raw/hts1a.raw hts1a.c2 --natural\n");
        exit(1);
@@ -68,8 +68,10 @@ int main(int argc, char *argv[])
        mode = CODEC2_MODE_700;
     else if (strcmp(argv[1],"700B") == 0)
        mode = CODEC2_MODE_700B;
+    else if (strcmp(argv[1],"700C") == 0)
+       mode = CODEC2_MODE_700C;
     else {
-       fprintf(stderr, "Error in mode: %s.  Must be 3200, 2400, 1600, 1400, 1300, 1200, 700 or 700B\n", argv[1]);
+       fprintf(stderr, "Error in mode: %s.  Must be 3200, 2400, 1600, 1400, 1300, 1200, 700, 700B or 700C\n", argv[1]);
        exit(1);
     }
 
index a6b57c8f78730012e3efac77d4b61d379ecab010..51b177c1e7dee02da91cefc936f7f51b1e18d4b1 100644 (file)
@@ -175,8 +175,6 @@ struct CODEC2 * codec2_create(int mode)
         c2->voicing_left = 0;;
         c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 0, NULL, NULL);
         c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 1, NULL, NULL);
-        printf("c2->phase_fft_fwd_cfg: %x\n", c2->phase_fft_fwd_cfg);
-        printf("c2->phase_fft_inv_cfg: %x\n", c2->phase_fft_inv_cfg);
     }
 
     return c2;
@@ -1794,15 +1792,12 @@ void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[])
     MODEL        model;
     int          indexes[4], i, M=4;
     unsigned int nbit = 0;
-    static   int f = 0;
 
     assert(c2 != NULL);
 
     memset(bits, '\0',  ((codec2_bits_per_frame(c2) + 7) / 8));
 
     analyse_one_frame(c2, &model, speech);
-    fprintf(stderr,"f: %d Wo: %4.3f L: %d v: %d\n", f, model.Wo, model.L, model.voiced);
-    f++;
 
     int K = 20;
     float rate_K_vec[K], mean;
@@ -1817,21 +1812,10 @@ void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[])
                              rate_K_vec_no_mean,
                              rate_K_vec_no_mean_);
 
-    for(i=0; i<5; i++) {
-      fprintf(stderr,"  %5.3f", rate_K_vec[i]);
-    }
-    fprintf(stderr,"\n");
-    fprintf(stderr,"  %d %d %d %d\n", indexes[0], indexes[1], indexes[2], indexes[3]);
-
     for(i=1; i<M; i++) {
         analyse_one_frame(c2, &model, &speech[i*N_SAMP]);
-        fprintf(stderr,"f: %d Wo: %4.3f L: %d v: %d\n", f, model.Wo, model.L, model.voiced);
-        f++;
     }
 
-    //if (f == 8)
-    //    exit(0);
-
     pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0);
     pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0);
     pack_natural_or_gray(bits, &nbit, indexes[2], 4, 0);
@@ -1857,7 +1841,6 @@ void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char *
     int     indexes[4];
     int     i;
     unsigned int nbit = 0;
-    static   int f = 0;
 
     assert(c2 != NULL);
 
@@ -1884,31 +1867,7 @@ void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char *
                              c2->phase_fft_inv_cfg,
                              indexes);
 
-   fprintf(stderr,"f: %d\n", f);
-   fprintf(stderr,"  %d %d %d %d\n", indexes[0], indexes[1], indexes[2], indexes[3]);
-   for(i=0; i<4; i++) {
-       fprintf(stderr,"  Wo: %4.3f L: %d v: %d\n", model[i].Wo, model[i].L, model[i].voiced);
-   }
-   fprintf(stderr,"  rate_K_vec:  ");
-   for(i=0; i<5; i++) {
-       fprintf(stderr,"%5.3f  ", c2->prev_rate_K_vec_[i]);
-   }
-   fprintf(stderr,"\n");
-   fprintf(stderr,"  H:\n");
-
-   for(int m=0; m<M; m++) {
-       fprintf(stderr,"    ");  
-       for(i=1; i<=5; i++) {
-           fprintf(stderr,"(%5.3f %5.3f)  ", HH[m][i].real, HH[m][i].imag);
-       }
-       fprintf(stderr,"\n");
-   }
-   fprintf(stderr,"\n");
-   fprintf(stderr,"\n");
 
-   if (f == 80)
-       exit(0);
-   f += 4;
    for(i=0; i<M; i++) {
        synthesise_one_frame(c2, &speech[N_SAMP*i], &model[i], &HH[i][0]);
    }
index f9c1da474ac318edddee9482ea8d20c3d0b21d15..6bd22a768142debe207f1d5792dc60db92ea1d9f 100644 (file)
@@ -387,21 +387,11 @@ void determine_phase(COMP H[], MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, c
 
     interp_para(Gdbfk, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, sample_freqs_kHz, Ns);
 
-    fprintf(stderr, "  Gdbfk:  ");
-    for(i=0; i<5; i++)
-        fprintf(stderr, "%5.3f  ", Gdbfk[i]);
-    fprintf(stderr,"\n");
-    
     mag_to_phase(phase, Gdbfk, Nfft, fwd_cfg, inv_cfg);
 
-    fprintf(stderr, "  phase:  ");
-    for(i=0; i<5; i++)
-        fprintf(stderr, "%5.3f  ", phase[i]);
-    fprintf(stderr,"\n");
-
     for(m=1; m<=model->L; m++) {
         b = floorf(0.5+m*model->Wo*Nfft/(2.0*M_PI));
-        H[m].real = cosf(phase[b]); H[m].imag = -sinf(phase[b]);
+        H[m].real = cosf(phase[b]); H[m].imag = sinf(phase[b]);
     }
 }
 
@@ -602,18 +592,6 @@ void newamp1_indexes_to_model(MODEL  model_[],
 
         resample_rate_L(&model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K);
         determine_phase(&H[(MAX_AMP+1)*i], &model_[i], NEWAMP1_PHASE_NFFT, fwd_cfg, inv_cfg);
-
-        if (i == 0) {
-            int m;
-            fprintf(stderr, "  Am:  ");
-            for(m=1; m<=5; m++)
-                fprintf(stderr, "%5.3f  ", model_[i].A[m]);
-            fprintf(stderr,"\n");
-            fprintf(stderr, "  H:  ");
-            for(m=1; m<=5; m++)
-                fprintf(stderr, "(%5.3f %5.3f)  ",  H[(MAX_AMP+1)*i+m].real, H[(MAX_AMP+1)*i+m].imag);
-            fprintf(stderr,"\n");
-        }
     }
 
     /* update memories for next time */
index a27a5d145775d9adaa39c0635f91cb3ad30b5b0e..6c12eb27a41962e04472af967de381bfb98f933e 100644 (file)
@@ -37,7 +37,7 @@
 #include "newamp1.h"
 #include "quantise.h"
 
-#define FRAMES 100
+#define FRAMES 300
 
 int main(int argc, char *argv[]) {
     short buf[N_SAMP];         /* input/output buffer                   */
@@ -224,8 +224,8 @@ int main(int argc, char *argv[]) {
 
         fprintf(stderr,"\n\n");
 
-        if (f == 80)
-            exit(0);
+        //if (f == 80)
+        //    exit(0);
 
         /* with f == 0, we don't store ouput, but memories are updated, helps to match
            what happens in Codec 2 mode */