15 #ifndef NLP_GRM2_BAUMWELCH_CASCADE_H_ 16 #define NLP_GRM2_BAUMWELCH_CASCADE_H_ 18 #include <fst/cache.h> 19 #include <fst/compose.h> 20 #include <fst/fst-decl.h> 21 #include <fst/state-table.h> 65 const Fst<Arc> &model,
68 co_(model, output, co_options_),
70 ico_(input, co_, ico_options_) {}
72 const ComposeFst<Arc> &
GetFst()
const {
return ico_; }
78 const ComposeFstOptions<Arc> co_options_;
79 const ComposeFst<Arc> co_;
80 const ComposeFstOptions<Arc> ico_options_;
81 const ComposeFst<Arc> ico_;
85 template <
class Arc,
class M = Matcher<Fst<Arc>>,
86 class Filter = SequenceComposeFilter<M>,
88 GenericComposeStateTable<Arc,
typename Filter::FilterState>>
94 const Fst<Arc> &model,
97 new StateTable(model, output)),
98 co_(model, output, co_options_),
100 new StateTable(input, co_)),
101 ico_(input, co_, ico_options_) {}
103 const ComposeFst<Arc> &
GetFst()
const {
return ico_; }
106 const auto ic_state = InputChannelState(ico_state);
107 return co_options_.state_table->Tuple(ic_state).StateId1();
115 return ico_options_.state_table->Tuple(ico_state).StateId2();
118 const ComposeFstOptions<Arc> co_options_;
119 const ComposeFst<Arc> co_;
120 const ComposeFstOptions<Arc> ico_options_;
121 const ComposeFst<Arc> ico_;
126 #endif // NLP_GRM2_BAUMWELCH_CASCADE_H_ StateId ChannelState(StateId ico_state) const
const CacheOptions co_cache_options
SimpleCascade(const Fst< Arc > &input, const Fst< Arc > &output, const Fst< Arc > &model, const CascadeOptions &opts=CascadeOptions())
typename Arc::StateId StateId
ChannelStateCascade(const Fst< Arc > &input, const Fst< Arc > &output, const Fst< Arc > &model, const CascadeOptions &opts=CascadeOptions())
const ComposeFst< Arc > & GetFst() const
const ComposeFst< Arc > & GetFst() const
CascadeOptions(const CacheOptions &co_cache_options=CacheOptions(), const CacheOptions &ico_cache_options=CacheOptions())
const CacheOptions ico_cache_options
typename Arc::StateId StateId
CascadeOptions(const CascadeOptions &)=default