Esempio n. 1
0
void test_concat(void)
{
   int original_len;
   cst_wave *w1, *w2;
   cst_voice *v;
   common_init();
   v = mimic_voice_select(A_VOICE);
   w1 = mimic_text_to_wave("Hello", v);
   w2 = mimic_text_to_wave("There", v);
   original_len = w1->num_samples;
   concat_wave(w1, w2);
   TEST_CHECK(w1->num_samples == w2->num_samples + original_len);
   delete_wave(w1);
   delete_wave(w2);

   w1 = mimic_text_to_wave("Hello", v);
   w2 = mimic_text_to_wave("There", v);
   
   w2->sample_rate *= 2; // create sample rate mismatch
   concat_wave(w1, w2);
   TEST_CHECK(w1->num_samples != w2->num_samples + original_len);
   delete_wave(w1);
   delete_wave(w2);

   w1 = mimic_text_to_wave("Hello", v);
   w2 = mimic_text_to_wave("There", v);
   
   w2->num_channels *= 2; // create channel number mismatch
   concat_wave(w1, w2);
   TEST_CHECK(w1->num_samples != w2->num_samples + original_len);
   delete_wave(w1);
   delete_wave(w2);
}
Esempio n. 2
0
static int save_dataset_comments (const dataset *dset)
{
    int i, j;
    cst_voice *v;
    cst_wave *w, *fullw = NULL;

    flite_init();
    v = register_cmu_us_kal();

    j = 0;
    for (i=0; i<N_COMMENTS; i++) {
	if (dset->comments[i] != NULL) {
	    if (j == 0) {
		fullw = flite_text_to_wave(dset->comments[i], v);
	    } else {
		w = flite_text_to_wave(dset->comments[i], v);
		concat_wave(fullw, w);
		delete_wave(w);
	    }
	    j++;
	}
    }

    cst_wave_save_riff(fullw, "gretl_flite.wav");
    delete_wave(fullw);

    return 0;
}