/* HTS_Engine_clear: free engine */ void HTS_Engine_clear(HTS_Engine * engine) { size_t i; if (engine->condition.msd_threshold != NULL) HTS_free(engine->condition.msd_threshold); if (engine->condition.duration_iw != NULL) HTS_free(engine->condition.duration_iw); if (engine->condition.gv_weight != NULL) HTS_free(engine->condition.gv_weight); if (engine->condition.parameter_iw != NULL) { for (i = 0; i < HTS_ModelSet_get_nstream(&engine->ms); i++) HTS_free(engine->condition.parameter_iw[i]); HTS_free(engine->condition.parameter_iw); } if (engine->condition.gv_iw != NULL) { for (i = 0; i < HTS_ModelSet_get_nstream(&engine->ms); i++) HTS_free(engine->condition.gv_iw[i]); HTS_free(engine->condition.gv_iw); } HTS_ModelSet_clear(&engine->ms); HTS_Audio_clear(&engine->audio); HTS_Engine_initialize(engine); }
/* HTS_Engine_clear: free engine */ void HTS_Engine_clear(HTS_Engine * engine) { if (engine->condition.msd_threshold != NULL) cst_free(engine->condition.msd_threshold); HTS_ModelSet_clear(&engine->ms); HTS_Engine_initialize(engine); }
/* HTS_ModelSet_load_gv: load GV model */ HTS_Boolean HTS_ModelSet_load_gv(HTS_ModelSet * ms, HTS_File ** pdf_fp, HTS_File ** tree_fp, int stream_index, int interpolation_size) { int i; /* check */ if (ms == NULL) { return FALSE; } if (stream_index < 0 || stream_index >= ms->nstream || interpolation_size <= 0) { HTS_ModelSet_clear(ms); return FALSE; } if (pdf_fp == NULL) { HTS_error(1, "HTS_ModelSet_load_gv: File for GV pdfs is not specified.\n"); HTS_ModelSet_clear(ms); return FALSE; } /* initialize */ if (!ms->gv) { ms->gv = (HTS_Stream *) HTS_calloc(ms->nstream, sizeof(HTS_Stream)); for (i = 0; i < ms->nstream; i++) HTS_Stream_initialize(&ms->gv[i]); } if (tree_fp) { if (HTS_Stream_load_pdf_and_tree(&ms->gv[stream_index], pdf_fp, tree_fp, interpolation_size) == FALSE) { HTS_ModelSet_clear(ms); return FALSE; } } else { if (HTS_Stream_load_pdf(&ms->gv[stream_index], pdf_fp, 1, interpolation_size) == FALSE) { HTS_ModelSet_clear(ms); return FALSE; } } return TRUE; }
/* HTS_Engine_clear: free engine */ void HTS_Engine_clear(HTS_Engine * engine) { int i; HTS_free(engine->global.msd_threshold); HTS_free(engine->global.duration_iw); for (i = 0; i < HTS_ModelSet_get_nstream(&engine->ms); i++) { HTS_free(engine->global.parameter_iw[i]); if (engine->global.gv_iw[i]) HTS_free(engine->global.gv_iw[i]); } HTS_free(engine->global.parameter_iw); HTS_free(engine->global.gv_iw); HTS_free(engine->global.gv_weight); HTS_ModelSet_clear(&engine->ms); }
/* HTS_ModelSet_load_parameter: load model */ HTS_Boolean HTS_ModelSet_load_parameter(HTS_ModelSet * ms, HTS_File ** pdf_fp, HTS_File ** tree_fp, HTS_File ** win_fp, int stream_index, int window_size, int interpolation_size) { int i; /* check */ if (ms == NULL) { return FALSE; } if (stream_index < 0 || stream_index >= ms->nstream || window_size <= 0 || interpolation_size <= 0) { HTS_ModelSet_clear(ms); return FALSE; } if (pdf_fp == NULL) { HTS_error(1, "HTS_ModelSet_load_parameter: File for pdfs is not specified.\n"); HTS_ModelSet_clear(ms); return FALSE; } if (tree_fp == NULL) { HTS_error(1, "HTS_ModelSet_load_parameter: File for wins is not specified.\n"); HTS_ModelSet_clear(ms); return FALSE; } if (win_fp == NULL) { HTS_error(1, "HTS_ModelSet_load_parameter: File for wins is not specified.\n"); HTS_ModelSet_clear(ms); return FALSE; } /* initialize */ if (!ms->stream) { ms->stream = (HTS_Stream *) HTS_calloc(ms->nstream, sizeof(HTS_Stream)); for (i = 0; i < ms->nstream; i++) HTS_Stream_initialize(&ms->stream[i]); } /* load */ if (HTS_Stream_load_pdf_and_tree(&ms->stream[stream_index], pdf_fp, tree_fp, interpolation_size) == FALSE) { HTS_ModelSet_clear(ms); return FALSE; } if (HTS_Stream_load_dynamic_window(&ms->stream[stream_index], win_fp, window_size) == FALSE) { HTS_ModelSet_clear(ms); return FALSE; } return TRUE; }