vosk-api icon indicating copy to clipboard operation
vosk-api copied to clipboard

error: ‘LookaheadFst’ in namespace ‘fst’ does not name a template type

Open kavya2425 opened this issue 1 year ago • 4 comments

I am getting the following issue while running make in vosk-api/src, Kindly help in this issue. thanks in advance

g++ -g -O3 -std=c++17 -Wno-deprecated-declarations -fPIC -DFST_NO_DYNAMIC_LINKING -I. -I/media/op_zone/ASR_multi/kaldi_vosk/src -I/media/op_zone/ASR_multi/kaldi_vosk/tools/openfst/include  -I/media/op_zone/ASR_multi/kaldi_vosk/tools/OpenBLAS/install/include -c -o recognizer.o recognizer.cc
In file included from recognizer.cc:15:
recognizer.h:78:14: error: ‘LookaheadFst’ in namespace ‘fst’ does not name a template type
         fst::LookaheadFst<fst::StdArc, int32> *decode_fst_ = nullptr;
              ^~~~~~~~~~~~
recognizer.h:78:9: note: suggested alternative: ‘kLookAheadFlags’
         fst::LookaheadFst<fst::StdArc, int32> *decode_fst_ = nullptr;
         ^~~
         kLookAheadFlags
recognizer.cc: In constructor ‘Recognizer::Recognizer(Model*, float)’:
recognizer.cc:33:13: error: ‘decode_fst_’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
             ^~~~~~~~~~~
recognizer.cc:33:13: note: suggested alternative: ‘decoder_’
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
             ^~~~~~~~~~~
             decoder_
recognizer.cc:33:27: error: ‘LookaheadComposeFst’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
                           ^~~~~~~~~~~~~~~~~~~
recognizer.cc:42:55: error: ‘decode_fst_’ was not declared in this scope
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
recognizer.cc:42:55: note: suggested alternative: ‘decoder_’
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
                                                       decoder_
recognizer.cc: In constructor ‘Recognizer::Recognizer(Model*, float, const char*)’:
recognizer.cc:94:13: error: ‘decode_fst_’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *g_fst_, model_->disambig_);
             ^~~~~~~~~~~
recognizer.cc:94:13: note: suggested alternative: ‘decoder_’
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *g_fst_, model_->disambig_);
             ^~~~~~~~~~~
             decoder_
recognizer.cc:94:27: error: ‘LookaheadComposeFst’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *g_fst_, model_->disambig_);
                           ^~~~~~~~~~~~~~~~~~~
recognizer.cc:103:55: error: ‘decode_fst_’ was not declared in this scope
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
recognizer.cc:103:55: note: suggested alternative: ‘decoder_’
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
                                                       decoder_
recognizer.cc: In constructor ‘Recognizer::Recognizer(Model*, float, SpkModel*)’:
recognizer.cc:120:13: error: ‘decode_fst_’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
             ^~~~~~~~~~~
recognizer.cc:120:13: note: suggested alternative: ‘decoder_’
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
             ^~~~~~~~~~~
             decoder_
recognizer.cc:120:27: error: ‘LookaheadComposeFst’ was not declared in this scope
             decode_fst_ = LookaheadComposeFst(*model_->hcl_fst_, *model_->g_fst_, model_->disambig_);
                           ^~~~~~~~~~~~~~~~~~~
recognizer.cc:129:55: error: ‘decode_fst_’ was not declared in this scope
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
recognizer.cc:129:55: note: suggested alternative: ‘decoder_’
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
                                                       decoder_
recognizer.cc: In destructor ‘Recognizer::~Recognizer()’:
recognizer.cc:143:12: error: ‘decode_fst_’ was not declared in this scope
     delete decode_fst_;
            ^~~~~~~~~~~
recognizer.cc:143:12: note: suggested alternative: ‘decoder_’
     delete decode_fst_;
            ^~~~~~~~~~~
            decoder_
recognizer.cc: In member function ‘void Recognizer::CleanUp()’:
recognizer.cc:214:55: error: ‘decode_fst_’ was not declared in this scope
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
recognizer.cc:214:55: note: suggested alternative: ‘decoder_’
             model_->hclg_fst_ ? *model_->hclg_fst_ : *decode_fst_,
                                                       ^~~~~~~~~~~
                                                       decoder_
recognizer.cc: In member function ‘bool Recognizer::GetSpkVector(kaldi::Vector<float>&, int*)’:
recognizer.cc:360:78: error: no matching function for call to ‘kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback(const kaldi::LatticeIncrementalOnlineDecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >&, bool)’
         silence_weighting_->ComputeCurrentTraceback(decoder_->Decoder(), true);
                                                                              ^
In file included from online2/online-nnet2-feature-pipeline.h:33,
                 from online2/online-nnet3-incremental-decoding.h:34,
                 from model.h:24,
                 from recognizer.h:31,
                 from recognizer.cc:15:
online2/online-ivector-feature.h:483:8: note: candidate: ‘template<class FST> void kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback(const kaldi::LatticeFasterOnlineDecoderTpl<FST>&)’
   void ComputeCurrentTraceback(const LatticeFasterOnlineDecoderTpl<FST> &decoder);
        ^~~~~~~~~~~~~~~~~~~~~~~
online2/online-ivector-feature.h:483:8: note:   template argument deduction/substitution failed:
recognizer.cc:360:78: note:   ‘const kaldi::LatticeIncrementalOnlineDecoderTpl<fst::Fst<fst::ArcTpl<fst::TropicalWeightTpl<float> > > >’ is not derived from ‘const kaldi::LatticeFasterOnlineDecoderTpl<FST>’
         silence_weighting_->ComputeCurrentTraceback(decoder_->Decoder(), true);
                                                                              ^
In file included from online2/online-nnet2-feature-pipeline.h:33,
                 from online2/online-nnet3-incremental-decoding.h:34,
                 from model.h:24,
                 from recognizer.h:31,
                 from recognizer.cc:15:
online2/online-ivector-feature.h:485:8: note: candidate: ‘template<class FST> void kaldi::OnlineSilenceWeighting::ComputeCurrentTraceback(const kaldi::LatticeIncrementalOnlineDecoderTpl<FST>&)’
   void ComputeCurrentTraceback(const LatticeIncrementalOnlineDecoderTpl<FST> &decoder);
        ^~~~~~~~~~~~~~~~~~~~~~~
online2/online-ivector-feature.h:485:8: note:   template argument deduction/substitution failed:
recognizer.cc:360:78: note:   candidate expects 1 argument, 2 provided
         silence_weighting_->ComputeCurrentTraceback(decoder_->Decoder(), true);
                                                                              ^
recognizer.cc:361:29: error: ‘class kaldi::OnlineSilenceWeighting’ has no member named ‘GetNonsilenceFrames’
         silence_weighting_->GetNonsilenceFrames(feature_pipeline_->NumFramesReady(),
                             ^~~~~~~~~~~~~~~~~~~
recognizer.cc: In member function ‘const char* Recognizer::PartialResult()’:
recognizer.cc:752:13: error: ‘WordAlignLatticePartial’ was not declared in this scope
             WordAlignLatticePartial(clat, *model_->trans_model_, *model_->winfo_, 0, &aligned_lat);
             ^~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:113: recognizer.o] Error 1

kavya2425 avatar Aug 24 '22 07:08 kavya2425

You seem to use some incompatible kaldi version/branch. Make sure you are using proper version.

nshmyrev avatar Aug 25 '22 03:08 nshmyrev

I used the below kaldi repo

https://github.com/alphacep/kaldi

I configured openfst with enable-lookahead-fsts. I tried to make clean and make multiple times but i am getting the same error Openfst version is 1.7.2

kavya2425 avatar Aug 25 '22 06:08 kavya2425

Probably you didn't checkout vosk branch

nshmyrev avatar Aug 29 '22 13:08 nshmyrev

Can you please provide us with the Kaldi version/branch that works for vosk. I couldn't find out.

Thanks, Kavya

kavya2425 avatar Sep 01 '22 11:09 kavya2425

Hi Nickolay V. Shymrev

Any update on this?

Thanks & Regards Kavya 9701523100

On Mon, 29 Aug 2022 at 19:06, Nickolay V. Shmyrev @.***> wrote:

Probably you didn't checkout vosk branch

— Reply to this email directly, view it on GitHub https://github.com/alphacep/vosk-api/issues/1122#issuecomment-1230318600, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUEYHBNNPXMVMH5MIXQYZWLV3S4GDANCNFSM57OFWETA . You are receiving this because you authored the thread.Message ID: @.***>

kavya2425 avatar Oct 11 '22 08:10 kavya2425