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); }
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; }