示例#1
0
/* HTS_Stream_load_pdf_and_tree: load PDFs and trees */
static void HTS_Stream_load_pdf_and_tree(HTS_Stream * stream, FILE ** pdf_fp,
                                         FILE ** tree_fp, HTS_Boolean msd_flag,
                                         int interpolation_size)
{
   int i;

   /* initialize */
   stream->msd_flag = msd_flag;
   stream->interpolation_size = interpolation_size;
   stream->model =
       (HTS_Model *) HTS_calloc(interpolation_size, sizeof(HTS_Model));
   /* load */
   for (i = 0; i < stream->interpolation_size; i++) {
      if (!pdf_fp[i])
         HTS_error(1,
                   "HTS_Stream_load_pdf_and_tree: File for duration PDFs is not specified.\n");
      if (!tree_fp[i])
         HTS_error(1,
                   "HTS_Stream_load_pdf_and_tree: File for duration trees is not specified.\n");
      HTS_Model_initialize(&stream->model[i]);
      HTS_Model_load_tree(&stream->model[i], tree_fp[i]);
      HTS_Model_load_pdf(&stream->model[i], pdf_fp[i], stream->model[i].ntree,
                         stream->msd_flag);
   }
   /* check */
   for (i = 1; i < stream->interpolation_size; i++)
      if (stream->model[0].vector_length != stream->model[i].vector_length)
         HTS_error(1,
                   "HTS_Stream_load_pdf_and_tree: Vector sizes of state output vectors are different in between given modelsets.\n");
   /* set */
   stream->vector_length = stream->model[0].vector_length;
}
示例#2
0
/* HTS_Stream_load_pdf_and_tree: load PDFs and trees */
static HTS_Boolean HTS_Stream_load_pdf_and_tree(HTS_Stream * stream, HTS_File ** pdf_fp, HTS_File ** tree_fp, int interpolation_size)
{
   int i;
   HTS_Boolean result = TRUE;

   /* initialize */
   stream->interpolation_size = interpolation_size;
   stream->model = (HTS_Model *) HTS_calloc(interpolation_size, sizeof(HTS_Model));
   /* load */
   for (i = 0; i < stream->interpolation_size; i++) {
      if (!pdf_fp[i]) {
         HTS_error(1, "HTS_Stream_load_pdf_and_tree: File for duration PDFs is not specified.\n");
         HTS_Stream_clear(stream);
         return FALSE;
      }
      if (!tree_fp[i]) {
         HTS_error(1, "HTS_Stream_load_pdf_and_tree: File for duration trees is not specified.\n");
         HTS_Stream_clear(stream);
         return FALSE;
      }
      HTS_Model_initialize(&stream->model[i]);
      result = HTS_Model_load_tree(&stream->model[i], tree_fp[i]);
      if (result == FALSE) {
         HTS_Stream_clear(stream);
         return FALSE;
      }
      result = HTS_Model_load_pdf(&stream->model[i], pdf_fp[i], stream->model[i].ntree, &stream->msd_flag);
      if (result == FALSE) {
         HTS_Stream_clear(stream);
         return FALSE;
      }
   }
   /* check */
   for (i = 1; i < stream->interpolation_size; i++)
      if (stream->model[0].vector_length != stream->model[i].vector_length) {
         HTS_error(1, "HTS_Stream_load_pdf_and_tree: Vector sizes of state output vectors are different in between given modelsets.\n");
         HTS_Stream_clear(stream);
         return FALSE;
      }
   /* set */
   stream->vector_length = stream->model[0].vector_length;

   return TRUE;
}
示例#3
0
/* HTS_ModelSet_load_gv_switch: load GV switch */
void HTS_ModelSet_load_gv_switch(HTS_ModelSet * ms, FILE * fp)
{
   if (fp != NULL)
      HTS_Model_load_tree(&ms->gv_switch, fp);
}
示例#4
0
/* HTS_ModelSet_load_gv_switch: load GV switch */
HTS_Boolean HTS_ModelSet_load_gv_switch(HTS_ModelSet * ms, HTS_File * fp)
{
   if (fp != NULL)
      return HTS_Model_load_tree(&ms->gv_switch, fp);
   return FALSE;
}