yh1008 / speech-to-text

mixlingual speech recognition system; hybrid (GMM+NNet) model; Kaldi + Keras
http://llcao.net/cu-deeplearning17/project.html
70 stars 19 forks source link

ERROR: phone symbol tables data/lang/phones.txt and exp/mono_ali/phones.txt are not compatible. #15

Open yh1008 opened 7 years ago

yh1008 commented 7 years ago

after running command:

steps/train_deltas.sh --cmd run.pl 1000 11000 data/train data/lang exp/mono_ali exp/tri1

,

there is this error:

ERROR (make-h-transducer[5.1.46~1-0d031]:TopologyForPhone():hmm-topology.cc:333) TopologyForPhone(), phone 2005 not covered.

full terminal output: 
```steps/train_deltas.sh --cmd run.pl 1000 11000 data/train data/lang exp/mono_ali exp/tri1
utils/lang/check_phones_compatible.sh: phone symbol tables data/lang/phones.txt and exp/mono_ali/phones.txt are not compatible.
tree-info exp/tri1/tree 
tree-info exp/tri1/tree 
fsttablecompose data/lang/L_disambig.fst data/lang/G.fst 
fstdeterminizestar --use-log=true 
fstminimizeencoded 
fstpushspecial 
WARNING (fstpushspecial[5.1.46~1-0d031]:Iterate():push-special.cc:182) push-special: finished 200 iterations without converging.  Output will be inaccurate.
fstisstochastic data/lang/tmp/LG.fst 
-0.0544016 -0.0722563
[info]: LG not stochastic.
fstcomposecontext --context-size=3 --central-position=1 --read-disambig-syms=data/lang/phones/disambig.int --write-disambig-syms=data/lang/tmp/disambig_ilabels_3_1.int data/lang/tmp/ilabels_3_1.22095 
fstisstochastic data/lang/tmp/CLG_3_1.fst 
0 -0.0722563
[info]: CLG not stochastic.
make-h-transducer --disambig-syms-out=exp/tri1/graph/disambig_tid.int --transition-scale=1.0 data/lang/tmp/ilabels_3_1 exp/tri1/tree exp/tri1/final.mdl 
ERROR (make-h-transducer[5.1.46~1-0d031]:TopologyForPhone():hmm-topology.cc:333) TopologyForPhone(), phone 2005 not covered.

[ Stack-Trace: ]
make-h-transducer() [0x87532c]
kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*)
kaldi::MessageLogger::~MessageLogger()
kaldi::HmmTopology::TopologyForPhone(int) const
kaldi::GetHmmAsFst(std::vector<int, std::allocator<int> >, kaldi::ContextDependencyInterface const&, kaldi::TransitionModel const&, kaldi::HTransducerConfig const&, std::unordered_map<std::pair<int, std::vector<int, std::allocator<int> > >, fst::VectorFst<fst::ArcTpl<fst::TropicalWeightTpl<float> >, fst::VectorState<fst::ArcTpl<fst::TropicalWeightTpl<float> >, std::allocator<fst::ArcTpl<fst::TropicalWeightTpl<float> > > > >*, kaldi::HmmCacheHash, std::equal_to<std::pair<int, std::vector<int, std::allocator<int> > > >, std::allocator<std::pair<std::pair<int, std::vector<int, std::allocator<int> > > const, fst::VectorFst<fst::ArcTpl<fst::TropicalWeightTpl<float> >, fst::VectorState<fst::ArcTpl<fst::TropicalWeightTpl<float> >, std::allocator<fst::ArcTpl<fst::TropicalWeightTpl<float> > > > >*> > >*)
kaldi::GetHTransducer(std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > const&, kaldi::ContextDependencyInterface const&, kaldi::TransitionModel const&, kaldi::HTransducerConfig const&, std::vector<int, std::allocator<int> >*)
main
__libc_start_main
_start
yh1008 commented 7 years ago

check_phones_compatible.sh

#Check the two tables are same or not (except for possible difference in disambiguation symbols).
if ! cmp -s <(grep -v "^#" $table_first) <(grep -v "^#" $table_second); then
  echo "$0: phone symbol tables $table_first and $table_second are not compatible."
  exit 1;
fi

exit 0;