Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
homeostasis
gst-kaldi-nnet2-online
Commits
bb3ac78d
Commit
bb3ac78d
authored
Nov 25, 2014
by
Tanel Alumäe
Browse files
Merge pull request #2 from amitbeka/inverse-scale
Inverse scale
parents
a68ec533
c693149c
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/gstkaldinnet2onlinedecoder.cc
View file @
bb3ac78d
...
...
@@ -70,12 +70,15 @@ enum {
PROP_WORD_SYMS
,
PROP_DO_ENDPOINTING
,
PROP_ADAPTATION_STATE
,
PROP_INVERSE_SCALE
,
PROP_LMWT_SCALE
,
PROP_LAST
};
#define DEFAULT_MODEL "final.mdl"
#define DEFAULT_FST "HCLG.fst"
#define DEFAULT_WORD_SYMS "words.txt"
#define DEFAULT_LMWT_SCALE 1.0
/* the capabilities of the inputs and outputs.
*
...
...
@@ -185,6 +188,26 @@ static void gst_kaldinnet2onlinedecoder_class_init(
""
,
(
GParamFlags
)
G_PARAM_READWRITE
));
g_object_class_install_property
(
gobject_class
,
PROP_INVERSE_SCALE
,
g_param_spec_boolean
(
"inverse-scale"
,
"If true, inverse acoustic scale in lattice"
,
"If true, inverse the acoustic scaling of the output lattice"
,
FALSE
,
(
GParamFlags
)
G_PARAM_READWRITE
));
g_object_class_install_property
(
gobject_class
,
PROP_LMWT_SCALE
,
g_param_spec_float
(
"lmwt-scale"
,
"LM weight for scaling output lattice"
,
"LM scaling for the output lattice, usually in conjunction with inverse-scaling=true"
,
G_MINFLOAT
,
G_MAXFLOAT
,
DEFAULT_LMWT_SCALE
,
(
GParamFlags
)
G_PARAM_READWRITE
));
gst_kaldinnet2onlinedecoder_signals
[
PARTIAL_RESULT_SIGNAL
]
=
g_signal_new
(
"partial-result"
,
G_TYPE_FROM_CLASS
(
klass
),
G_SIGNAL_RUN_LAST
,
G_STRUCT_OFFSET
(
Gstkaldinnet2onlinedecoderClass
,
partial_result
),
...
...
@@ -260,6 +283,8 @@ static void gst_kaldinnet2onlinedecoder_init(
filter
->
feature_info
=
NULL
;
filter
->
sample_rate
=
0
;
filter
->
decoding
=
false
;
filter
->
lmwt_scale
=
DEFAULT_LMWT_SCALE
;
filter
->
inverse_scale
=
FALSE
;
// init properties from various Kaldi Opts
GstElementClass
*
klass
=
GST_ELEMENT_GET_CLASS
(
filter
);
...
...
@@ -366,6 +391,12 @@ static void gst_kaldinnet2onlinedecoder_set_property(GObject * object,
case
PROP_DO_ENDPOINTING
:
filter
->
do_endpointing
=
g_value_get_boolean
(
value
);
break
;
case
PROP_INVERSE_SCALE
:
filter
->
inverse_scale
=
g_value_get_boolean
(
value
);
break
;
case
PROP_LMWT_SCALE
:
filter
->
lmwt_scale
=
g_value_get_float
(
value
);
break
;
case
PROP_ADAPTATION_STATE
:
{
if
(
G_VALUE_HOLDS_STRING
(
value
))
{
...
...
@@ -463,6 +494,12 @@ static void gst_kaldinnet2onlinedecoder_get_property(GObject * object,
case
PROP_DO_ENDPOINTING
:
g_value_set_boolean
(
value
,
filter
->
do_endpointing
);
break
;
case
PROP_INVERSE_SCALE
:
g_value_set_boolean
(
value
,
filter
->
inverse_scale
);
break
;
case
PROP_LMWT_SCALE
:
g_value_set_float
(
value
,
filter
->
lmwt_scale
);
break
;
case
PROP_ADAPTATION_STATE
:
string_stream
.
clear
();
if
(
filter
->
adaptation_state
)
{
...
...
@@ -513,13 +550,22 @@ static void gst_kaldinnet2onlinedecoder_get_property(GObject * object,
}
static
void
gst_kaldinnet2onlinedecoder_final_result
(
Gstkaldinnet2onlinedecoder
*
filter
,
const
CompactLattice
&
clat
,
Gstkaldinnet2onlinedecoder
*
filter
,
CompactLattice
&
clat
,
int64
*
tot_num_frames
,
double
*
tot_like
,
guint
*
num_words
)
{
if
(
clat
.
NumStates
()
==
0
)
{
KALDI_WARN
<<
"Empty lattice."
;
return
;
}
CompactLattice
best_path_clat
;
if
(
filter
->
inverse_scale
)
{
BaseFloat
inv_acoustic_scale
=
1.0
/
filter
->
nnet2_decoding_config
->
decodable_opts
.
acoustic_scale
;
fst
::
ScaleLattice
(
fst
::
AcousticLatticeScale
(
inv_acoustic_scale
),
&
clat
);
}
fst
::
ScaleLattice
(
fst
::
LatticeScale
(
filter
->
lmwt_scale
,
1.0
),
&
clat
);
CompactLatticeShortestPath
(
clat
,
&
best_path_clat
);
Lattice
best_path_lat
;
...
...
src/gstkaldinnet2onlinedecoder.h
View file @
bb3ac78d
...
...
@@ -60,6 +60,8 @@ struct _Gstkaldinnet2onlinedecoder {
gboolean
silent
;
gboolean
do_endpointing
;
gboolean
inverse_scale
;
float
lmwt_scale
;
GstBufferSource
*
audio_source
;
gchar
*
model_rspecifier
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment