~openhri/openhri/htsengine

« back to all changes in this revision

Viewing changes to src/lib/HTS_pstream.c

  • Committer: uratec
  • Date: 2015-12-21 01:19:27 UTC
  • Revision ID: uratec-20151221011927-qprs16jjrh47h99v
update to version 1.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
/*           http://hts-engine.sourceforge.net/                      */
5
5
/* ----------------------------------------------------------------- */
6
6
/*                                                                   */
7
 
/*  Copyright (c) 2001-2014  Nagoya Institute of Technology          */
 
7
/*  Copyright (c) 2001-2015  Nagoya Institute of Technology          */
8
8
/*                           Department of Computer Science          */
9
9
/*                                                                   */
10
10
/*                2001-2008  Tokyo Institute of Technology           */
236
236
            if (obj < prev)
237
237
               step *= STEPINC;
238
238
         }
239
 
         for (t = 0; t < pst->length; t++)
240
 
            pst->par[t][m] += step * pst->sm.g[t];
 
239
         for (t = 0; t < pst->length; t++) {
 
240
            if (pst->gv_switch[t])
 
241
               pst->par[t][m] += step * pst->sm.g[t];
 
242
         }
241
243
         prev = obj;
242
244
      }
243
245
   }
292
294
   /* create */
293
295
   for (i = 0; i < pss->nstream; i++) {
294
296
      pst = &pss->pstream[i];
295
 
      if (HTS_SStreamSet_is_msd(sss, i)) {      /* for MSD */
 
297
      if (HTS_SStreamSet_is_msd(sss, i) == TRUE) {      /* for MSD */
296
298
         pst->length = 0;
297
299
         for (state = 0; state < HTS_SStreamSet_get_total_state(sss); state++)
298
300
            if (HTS_SStreamSet_get_msd(sss, i, state) > msd_threshold[i])
299
301
               pst->length += HTS_SStreamSet_get_duration(sss, state);
300
302
         pst->msd_flag = (HTS_Boolean *) HTS_calloc(pss->total_frame, sizeof(HTS_Boolean));
301
 
         for (state = 0, frame = 0; state < HTS_SStreamSet_get_total_state(sss); state++)
302
 
            if (HTS_SStreamSet_get_msd(sss, i, state) > msd_threshold[i])
 
303
         for (state = 0, frame = 0; state < HTS_SStreamSet_get_total_state(sss); state++) {
 
304
            if (HTS_SStreamSet_get_msd(sss, i, state) > msd_threshold[i]) {
303
305
               for (j = 0; j < HTS_SStreamSet_get_duration(sss, state); j++) {
304
306
                  pst->msd_flag[frame] = TRUE;
305
307
                  frame++;
306
 
            } else
 
308
               }
 
309
            } else {
307
310
               for (j = 0; j < HTS_SStreamSet_get_duration(sss, state); j++) {
308
311
                  pst->msd_flag[frame] = FALSE;
309
312
                  frame++;
310
313
               }
 
314
            }
 
315
         }
311
316
      } else {                  /* for non MSD */
312
317
         pst->length = pss->total_frame;
313
318
         pst->msd_flag = NULL;
349
354
            pst->gv_vari[j] = HTS_SStreamSet_get_gv_vari(sss, i, j);
350
355
         }
351
356
         pst->gv_switch = (HTS_Boolean *) HTS_calloc(pst->length, sizeof(HTS_Boolean));
352
 
         if (HTS_SStreamSet_is_msd(sss, i)) {   /* for MSD */
 
357
         if (HTS_SStreamSet_is_msd(sss, i) == TRUE) {   /* for MSD */
353
358
            for (state = 0, frame = 0, msd_frame = 0; state < HTS_SStreamSet_get_total_state(sss); state++)
354
359
               for (j = 0; j < HTS_SStreamSet_get_duration(sss, state); j++, frame++)
355
 
                  if (pst->msd_flag[frame])
 
360
                  if (pst->msd_flag[frame] == TRUE)
356
361
                     pst->gv_switch[msd_frame++] = HTS_SStreamSet_get_gv_switch(sss, i, state);
357
362
         } else {               /* for non MSD */
358
363
            for (state = 0, frame = 0; state < HTS_SStreamSet_get_total_state(sss); state++)
369
374
         pst->gv_vari = NULL;
370
375
      }
371
376
      /* copy pdfs */
372
 
      if (HTS_SStreamSet_is_msd(sss, i)) {      /* for MSD */
 
377
      if (HTS_SStreamSet_is_msd(sss, i) == TRUE) {      /* for MSD */
373
378
         for (state = 0, frame = 0, msd_frame = 0; state < HTS_SStreamSet_get_total_state(sss); state++) {
374
379
            for (j = 0; j < HTS_SStreamSet_get_duration(sss, state); j++) {
375
 
               if (pst->msd_flag[frame]) {
 
380
               if (pst->msd_flag[frame] == TRUE) {
376
381
                  /* check current frame is MSD boundary or not */
377
382
                  for (k = 0; k < pst->win_size; k++) {
378
383
                     not_bound = TRUE;
379
384
                     for (shift = pst->win_l_width[k]; shift <= pst->win_r_width[k]; shift++)
380
 
                        if ((int) frame + shift < 0 || (int) pss->total_frame <= (int) frame + shift || !pst->msd_flag[frame + shift]) {
 
385
                        if ((int) frame + shift < 0 || (int) pss->total_frame <= (int) frame + shift || pst->msd_flag[frame + shift] != TRUE) {
381
386
                           not_bound = FALSE;
382
387
                           break;
383
388
                        }