예제 #1
0
파일: HTS_audio.c 프로젝트: A-L-E-X/RHVoice
/* HTS_Audio_initialize: initialize audio */
void HTS_Audio_initialize(HTS_Audio * audio, int sampling_rate, int max_buff_size)
{
   audio->sampling_rate = 0;
   audio->max_buff_size = 0;

   audio->stream = NULL;
   audio->err = 0;
   audio->buff = NULL;
   audio->buff_size = 0;

   HTS_Audio_open(audio, sampling_rate, max_buff_size);
}
예제 #2
0
파일: HTS_audio.c 프로젝트: A-L-E-X/RHVoice
/* HTS_Audio_initialize: initialize audio */
void HTS_Audio_initialize(HTS_Audio * audio, int sampling_rate, int max_buff_size)
{
   audio->sampling_rate = 0;
   audio->max_buff_size = 0;

   audio->hwaveout = 0;
   audio->buff = NULL;
   audio->buff_size = 0;
   audio->which_buff = 0;
   audio->now_buff_1 = FALSE;
   audio->now_buff_2 = FALSE;

   HTS_Audio_open(audio, sampling_rate, max_buff_size);
}
예제 #3
0
/* HTS_Vocoder_initialize: initialize vocoder */
void HTS_Vocoder_initialize(HTS_Vocoder *v, const int m, const int stage,
                            HTS_Boolean use_log_gain, const int rate,
                            const int fperiod, int buff_size)
{
   /* set parameter */
   v->stage = stage;
   if (stage != 0)
      v->gamma = -1.0 / v->stage;
   else
      v->gamma = 0.0;
   v->use_log_gain = use_log_gain;
   v->fprd = fperiod;
   v->iprd = IPERIOD;
   v->seed = SEED;
   v->next = SEED;
   v->gauss = GAUSS;
   v->rate = rate;
   v->p1 = -1.0;
   v->sw = 0;
   v->x = 0x55555555;
   /* open audio device */
   if (0 < buff_size && buff_size <= 48000) {
      v->audio = (HTS_Audio *) HTS_calloc(1, sizeof(HTS_Audio));
      HTS_Audio_open(v->audio, rate, buff_size);
   } else
      v->audio = NULL;
   /* init buffer */
   v->freqt_buff = NULL;
   v->freqt_size = 0;
   v->gc2gc_buff = NULL;
   v->gc2gc_size = 0;
   v->lsp2lpc_buff = NULL;
   v->lsp2lpc_size = 0;
   v->postfilter_buff = NULL;
   v->postfilter_size = 0;
   v->spectrum2en_buff = NULL;
   v->spectrum2en_size = 0;
   v->pade = NULL;
   if (v->stage == 0) {         /* for MCP */
      v->c =
          (double *) HTS_calloc(m * (3 + PADEORDER) + 5 * PADEORDER + 6,
                                sizeof(double));
      v->cc = v->c + m + 1;
      v->cinc = v->cc + m + 1;
      v->d1 = v->cinc + m + 1;
      v->pade = (double *) HTS_calloc(21, sizeof(double));
      v->pade[0] = 1.00000000000;
      v->pade[1] = 1.00000000000;
      v->pade[2] = 0.00000000000;
      v->pade[3] = 1.00000000000;
      v->pade[4] = 0.00000000000;
      v->pade[5] = 0.00000000000;
      v->pade[6] = 1.00000000000;
      v->pade[7] = 0.00000000000;
      v->pade[8] = 0.00000000000;
      v->pade[9] = 0.00000000000;
      v->pade[10] = 1.00000000000;
      v->pade[11] = 0.49992730000;
      v->pade[12] = 0.10670050000;
      v->pade[13] = 0.01170221000;
      v->pade[14] = 0.00056562790;
      v->pade[15] = 1.00000000000;
      v->pade[16] = 0.49993910000;
      v->pade[17] = 0.11070980000;
      v->pade[18] = 0.01369984000;
      v->pade[19] = 0.00095648530;
      v->pade[20] = 0.00003041721;
   } else {                     /* for LSP */
      v->c = (double *) HTS_calloc((m + 1) * (v->stage + 3), sizeof(double));
      v->cc = v->c + m + 1;
      v->cinc = v->cc + m + 1;
      v->d1 = v->cinc + m + 1;
   }
}
예제 #4
0
파일: HTS_audio.c 프로젝트: A-L-E-X/RHVoice
/* HTS_Audio_set_parameter: set parameters for audio */
void HTS_Audio_set_parameter(HTS_Audio * audio, int sampling_rate, int max_buff_size)
{
   HTS_Audio_open(audio, sampling_rate, max_buff_size);
}