diff --git a/src/gstkaldinnet2onlinedecoder.cc b/src/gstkaldinnet2onlinedecoder.cc index d4ddcd778ad0091d11acf6d5076629ab1ae4ab95..807dd658ecc2ec3224928013d9ca83977ed2e8be 100644 --- a/src/gstkaldinnet2onlinedecoder.cc +++ b/src/gstkaldinnet2onlinedecoder.cc @@ -67,6 +67,7 @@ enum { PROP_0, PROP_SILENT, PROP_MODEL, + PROP_STATE_IVECTOR, PROP_FST, PROP_WORD_SYMS, PROP_DO_ENDPOINTING, @@ -80,6 +81,7 @@ enum { }; #define DEFAULT_MODEL "final.mdl" +#define DEFAULT_STATE_IVECTOR "" #define DEFAULT_FST "HCLG.fst" #define DEFAULT_WORD_SYMS "words.txt" #define DEFAULT_LMWT_SCALE 1.0 @@ -164,6 +166,14 @@ static void gst_kaldinnet2onlinedecoder_class_init( "Filename of the acoustic model", DEFAULT_MODEL, (GParamFlags) G_PARAM_READWRITE)); + g_object_class_install_property( + gobject_class, + PROP_STATE_IVECTOR, + g_param_spec_string("state_ivector", "State ivector", + "Filename of the state ivector", + DEFAULT_MODEL, + (GParamFlags) G_PARAM_READWRITE)); + g_object_class_install_property( gobject_class, PROP_FST, g_param_spec_string("fst", "Decoding FST", "Filename of the HCLG FST", @@ -299,6 +309,7 @@ static void gst_kaldinnet2onlinedecoder_init( filter->silent = FALSE; filter->model_rspecifier = g_strdup(DEFAULT_MODEL); + filter->state_ivector_rspecifier = g_strdup(DEFAULT_STATE_IVECTOR); filter->fst_rspecifier = g_strdup(DEFAULT_FST); filter->word_syms_filename = g_strdup(DEFAULT_WORD_SYMS); @@ -421,6 +432,10 @@ static void gst_kaldinnet2onlinedecoder_set_property(GObject * object, g_free(filter->model_rspecifier); filter->model_rspecifier = g_value_dup_string(value); break; + case PROP_STATE_IVECTOR: + g_free(filter->state_ivector_rspecifier); + filter->state_ivector_rspecifier = g_value_dup_string(value); + break; case PROP_FST: g_free(filter->fst_rspecifier); filter->fst_rspecifier = g_value_dup_string(value); @@ -457,6 +472,7 @@ static void gst_kaldinnet2onlinedecoder_set_property(GObject * object, std::istringstream str(adaptation_state_string); try { filter->adaptation_state->Read(str, false); + GST_WARNING_OBJECT(filter, "DEBUG MICKA : Le fichir a bien ete lu"); } catch (std::runtime_error& e) { GST_WARNING_OBJECT(filter, "Failed to read adaptation state from given string, resetting instead"); delete filter->adaptation_state; @@ -537,6 +553,9 @@ static void gst_kaldinnet2onlinedecoder_get_property(GObject * object, case PROP_MODEL: g_value_set_string(value, filter->model_rspecifier); break; + case PROP_STATE_IVECTOR: + g_value_set_string(value, filter->state_ivector_rspecifier); + break; case PROP_FST: g_value_set_string(value, filter->fst_rspecifier); break; @@ -1151,6 +1170,7 @@ static void gst_kaldinnet2onlinedecoder_finalize(GObject * object) { Gstkaldinnet2onlinedecoder *filter = GST_KALDINNET2ONLINEDECODER(object); g_free(filter->model_rspecifier); + g_free(filter->state_ivector_rspecifier); g_free(filter->fst_rspecifier); g_free(filter->word_syms_filename); delete filter->endpoint_config; diff --git a/src/gstkaldinnet2onlinedecoder.h b/src/gstkaldinnet2onlinedecoder.h index dfb28f41772a58d84c6515c05d53d1d09341a0b2..1cc95a2eb6f7d8dd75d8f471f1a3ac8076c2d3c6 100644 --- a/src/gstkaldinnet2onlinedecoder.h +++ b/src/gstkaldinnet2onlinedecoder.h @@ -71,6 +71,7 @@ struct _Gstkaldinnet2onlinedecoder { GstBufferSource *audio_source; gchar* model_rspecifier; + gchar* state_ivector_rspecifier; gchar* fst_rspecifier; gchar* word_syms_filename;