project:htsengineapi
hts_engine API
Open JTalk のバックエンド。
http://sourceforge.net/projects/hts-engine/
- 2011-12-25 に 1.06 がリリースされた。(Open JTalk 1.05 と同時)
- lib/HTS_audio.c で #ifdef AUDIO_PLAY_NONE の処理が追加されている。
- 2011-07-07 に 1.05 がリリースされた。(Open JTalk 1.04 と同時)
- 1.05 から PortAudio での出力に対応している。
nvdajp で使っているバージョンはこちら:
- NVDA は JTalk のオーディオ出力を HTS engine に依存していないので、オーディオ出力部分をコメントアウトしている。
変更記録
- 2011-10-15 バージョン 1.05 を import した。
- Makefile.mak.noaudio を追加
NVDA版パッチ
since 2012-07-12
HTS_engine_API 1.06 ベースで作業中。これを導入するときには JTalk のドライバも変更が必要(HTS_Audioのサイズが0でなくなる):
*** hts_org/include/HTS_engine.h 2011-12-20 13:16:05.000000000 +0900
--- htsengineapi/include/HTS_engine.h 2012-07-12 17:04:19.000000000 +0900
***************
*** 95,100 ****
--- 95,101 ----
/* -------------------------- audio ------------------------------ */
+ #if 0
#if !defined(AUDIO_PLAY_WINCE) && !defined(AUDIO_PLAY_WIN32) && !defined(AUDIO_PLAY_PORTAUDIO) && !defined(AUDIO_PLAY_NONE)
#if defined(__WINCE__) || defined(_WINCE) || defined(_WINCE) || defined(__WINCE)
#define AUDIO_PLAY_WINCE
***************
*** 104,109 ****
--- 105,113 ----
#define AUDIO_PLAY_NONE
#endif /* WINCE || WIN32 */
#endif /* !AUDIO_PLAY_WINCE && !AUDIO_PLAY_WIN32 && !AUDIO_PLAY_PORTAUDIO && !AUDIO_PLAY_NONE */
+ #else
+ #define AUDIO_PLAY_NONE
+ #endif
/* HTS_Audio: audio output for Windows */
#if defined (AUDIO_PLAY_WIN32) || defined(AUDIO_PLAY_WINCE)
***************
*** 141,147 ****
/* HTS_Audio: dummy audio output */
#ifdef AUDIO_PLAY_NONE
typedef struct _HTS_Audio {
! int i; /* make compiler happy */
} HTS_Audio;
#endif /* AUDIO_PLAY_NONE */
--- 145,151 ----
/* HTS_Audio: dummy audio output */
#ifdef AUDIO_PLAY_NONE
typedef struct _HTS_Audio {
! void *p /* int i */; /* make compiler happy */
} HTS_Audio;
#endif /* AUDIO_PLAY_NONE */
***************
*** 572,578 ****
void HTS_GStreamSet_initialize(HTS_GStreamSet * gss);
/* HTS_GStreamSet_create: generate speech */
! HTS_Boolean HTS_GStreamSet_create(HTS_GStreamSet * gss, HTS_PStreamSet * pss, int stage, HTS_Boolean use_log_gain, int sampling_rate, int fperiod, double alpha, double beta, HTS_Boolean * stop, double volume, HTS_Audio * audio);
/* HTS_GStreamSet_get_total_nsample: get total number of sample */
int HTS_GStreamSet_get_total_nsample(HTS_GStreamSet * gss);
--- 576,582 ----
void HTS_GStreamSet_initialize(HTS_GStreamSet * gss);
/* HTS_GStreamSet_create: generate speech */
! HTS_Boolean HTS_GStreamSet_create(HTS_GStreamSet * gss, HTS_PStreamSet * pss, int stage, HTS_Boolean use_log_gain, int sampling_rate, int fperiod, double alpha, double beta, HTS_Boolean * stop, double volume, HTS_Audio * audio, double lf0_offset, double lf0_amp);
/* HTS_GStreamSet_get_total_nsample: get total number of sample */
int HTS_GStreamSet_get_total_nsample(HTS_GStreamSet * gss);
***************
*** 621,626 ****
--- 625,632 ----
HTS_SStreamSet sss; /* set of state streams */
HTS_PStreamSet pss; /* set of PDF streams */
HTS_GStreamSet gss; /* set of generated parameter streams */
+ double lf0_offset; /* lf0 offset */
+ double lf0_amp; /* lf0 amp */
} HTS_Engine;
/* ----------------------- engine method ------------------------- */
***************
*** 763,768 ****
--- 769,777 ----
/* HTS_Engine_clear: free engine */
void HTS_Engine_clear(HTS_Engine * engine);
+ /* HTS_Engine_set_lf0_offset: set lf0 offset */
+ void HTS_Engine_set_lf0_offset_amp(HTS_Engine * engine, double offset, double amp);
+
/* -------------------------- vocoder ---------------------------- */
/* HTS_Vocoder: structure for setting of vocoder */
*** hts_org/lib/HTS_engine.c 2011-12-20 11:11:29.000000000 +0900
--- htsengineapi/lib/HTS_engine.c 2012-07-12 17:01:37.000000000 +0900
***************
*** 472,478 ****
/* HTS_Engine_create_gstream: synthesis speech */
HTS_Boolean HTS_Engine_create_gstream(HTS_Engine * engine)
{
! return HTS_GStreamSet_create(&engine->gss, &engine->pss, engine->global.stage, engine->global.use_log_gain, engine->global.sampling_rate, engine->global.fperiod, engine->global.alpha, engine->global.beta, &engine->global.stop, engine->global.volume, engine->global.audio_buff_size > 0 ? &engine->audio : NULL);
}
/* HTS_Engine_save_information: output trace information */
--- 472,479 ----
/* HTS_Engine_create_gstream: synthesis speech */
HTS_Boolean HTS_Engine_create_gstream(HTS_Engine * engine)
{
! return HTS_GStreamSet_create(&engine->gss, &engine->pss, engine->global.stage, engine->global.use_log_gain, engine->global.sampling_rate, engine->global.fperiod, engine->global.alpha, engine->global.beta, &engine->global.stop, engine->global.volume, engine->global.audio_buff_size > 0 ? &engine->audio : NULL, engine->lf0_offset, engine->lf0_amp);
}
/* HTS_Engine_save_information: output trace information */
***************
*** 759,764 ****
--- 760,771 ----
return;
}
+ /* HTS_Engine_set_lf0_offset: set lf0 offset */
+ void HTS_Engine_set_lf0_offset_amp(HTS_Engine * engine, double offset, double amp)
+ {
+ engine->lf0_offset = offset;
+ engine->lf0_amp = amp;
+ }
HTS_ENGINE_C_END;
#endif /* !HTS_ENGINE_C */
project/htsengineapi.txt · 最終更新: 2012/07/12 17:49 by Takuya Nishimoto
