/* Flite_HTS_Engine_load: load files */ void Flite_HTS_Engine_load(Flite_HTS_Engine * f, FILE * fp_ms_dur, FILE * fp_ts_dur, FILE * fp_ms_mcp, FILE * fp_ts_mcp, FILE ** fp_ws_mcp, int num_ws_mcp, FILE * fp_ms_lf0, FILE * fp_ts_lf0, FILE ** fp_ws_lf0, int num_ws_lf0, FILE * fp_ms_gvm, FILE * fp_ts_gvm, FILE * fp_ms_gvl, FILE * fp_ts_gvl, FILE * fp_gv_switch) { HTS_Engine_load_duration_from_fp(&f->engine, &fp_ms_dur, &fp_ts_dur, 1); HTS_Engine_load_parameter_from_fp(&f->engine, &fp_ms_mcp, &fp_ts_mcp, fp_ws_mcp, 0, FALSE, num_ws_mcp, 1); HTS_Engine_load_parameter_from_fp(&f->engine, &fp_ms_lf0, &fp_ts_lf0, fp_ws_lf0, 1, TRUE, num_ws_lf0, 1); if (fp_ms_gvm != NULL) { if (fp_ts_gvm != NULL) HTS_Engine_load_gv_from_fp(&f->engine, &fp_ms_gvm, &fp_ts_gvm, 0, 1); else HTS_Engine_load_gv_from_fp(&f->engine, &fp_ms_gvm, NULL, 0, 1); } if (fp_ms_gvl != NULL) { if (fp_ts_gvl != NULL) HTS_Engine_load_gv_from_fp(&f->engine, &fp_ms_gvl, &fp_ts_gvl, 1, 1); else HTS_Engine_load_gv_from_fp(&f->engine, &fp_ms_gvl, NULL, 1, 1); } if (fp_gv_switch != NULL) HTS_Engine_load_gv_switch_from_fp(&f->engine, fp_gv_switch); }
/* HTS_Engine_load_duratin_from_fn: load duration pdfs, trees and number of state from file names */ void HTS_Engine_load_duration_from_fn(HTS_Engine * engine, char **pdf_fn, char **tree_fn, int interpolation_size) { int i; FILE **pdf_fp, **tree_fp; pdf_fp = (FILE **) HTS_calloc(interpolation_size, sizeof(FILE *)); tree_fp = (FILE **) HTS_calloc(interpolation_size, sizeof(FILE *)); for (i = 0; i < interpolation_size; i++) { pdf_fp[i] = HTS_get_fp(pdf_fn[i], "rb"); tree_fp[i] = HTS_get_fp(tree_fn[i], "r"); } HTS_Engine_load_duration_from_fp(engine, pdf_fp, tree_fp, interpolation_size); for (i = 0; i < interpolation_size; i++) { fclose(pdf_fp[i]); fclose(tree_fp[i]); } HTS_free(pdf_fp); HTS_free(tree_fp); }