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));
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]);
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);
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);
}
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;
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;
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);
int indexes[4];
int i;
unsigned int nbit = 0;
- static int f = 0;
assert(c2 != NULL);
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]);
}
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]);
}
}
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 */
#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 */
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 */