Closed dthomas888 closed 7 years ago
Looks like some of the function signatures have changed in OpenFst (at least version 1.5.1 has a two parameter signature, compared to the 3 parameter signature (as used in Phonetisaurus) up to and including version 1.5.0. So I think currently Phonetisaurus does not work with OpenFst 1.5.1 and newer (though trying to figure out the last working version, might be even earlier.
Yes several of the function signatures have changed. I have made openfst version specific branches to resolve these issues for a couple of the major branches, and am now moving to 1.6x for the default. I'm open to a general solution if one exists.
g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -I. -c lib/util.cc -o lib/util.o g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -I. -c lib/LatticePruner.cc -o lib/LatticePruner.o g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -I. -c lib/M2MFstAligner.cc -o lib/M2MFstAligner.o g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -L/usr/local/lib -lfst -ldl -lm -lrt -fopenmp -I/home/pi/Phonetisaurus/src \ lib/util.o lib/LatticePruner.o lib/M2MFstAligner.o \ bin/phonetisaurus-align.cc -DGIT_REVISION=\"09651e-dirty\" \ -o bin/phonetisaurus-align -lfst -ldl -lm -lrt -fopenmp g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -L/usr/local/lib -lfst -ldl -lm -lrt -fopenmp lib/util.o \ -I/home/pi/Phonetisaurus/src bin/phonetisaurus-arpa2wfst.cc -L/usr/local/lib \ -DGIT_REVISION=\"09651e-dirty\" \ -o bin/phonetisaurus-arpa2wfst -lfst -ldl -lm -lrt -fopenmp g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -std=c++0x -I. -lfst -lm -ldl \ -funroll-loops -ffast-math -lm -w -c 3rdparty/rnnlm/rnnlmlib.cpp \ -o lib/rnnlmlib.o g++ -std=c++0x -Wall -Wno-sign-compare -Wno-unused-local-typedefs -DGNUC -O2 -I3rdparty/utfcpp -I3rdparty/rnnlm -I/usr/local/include -lfst -ldl -lm -lrt -fopenmp -L/usr/local/lib -funroll-loops -I/home/pi/Phonetisaurus/src \ -ffast-math lib/util.o lib/rnnlmlib.o \ -DGIT_REVISION=\"09651e-dirty\" \ bin/phonetisaurus-g2prnn.cc -o bin/phonetisaurus-g2prnn -lfst -ldl -lm -lrt -fopenmp In file included from bin/phonetisaurus-g2prnn.cc:5:0: /home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:168:50: error: wrong number of template arguments (3, should be 2) typedef Heap<Token, TokenPointerCompare, false> Queue; ^ In file included from /usr/local/include/fst/vector-fst.h:12:0, from /usr/local/include/fst/cache.h:16, from /usr/local/include/fst/compact-fst.h:14, from /usr/local/include/fst/fstlib.h:34, from bin/phonetisaurus-g2prnn.cc:1: /usr/local/include/fst/fst-decl.h:97:7: error: provided for ‘template<class T, class Compare> class fst::Heap’ class Heap; ^ In file included from bin/phonetisaurus-g2prnn.cc:5:0: /home/pi/Phonetisaurus/src/include/RnnLMDecoder.h: In member function ‘RnnLMDecoder::RawResults RnnLMDecoder::DecodeRaw(const std::vectorstd::basicstring&, int, int, int, double)’:
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:247:18: error: request for member ‘Clear’ in ‘((RnnLMDecoder )this)->RnnLMDecoder::sQueue[i]’, which is of non-class type ‘gnu_cxx::__alloc_traitsstd::allocator::valuetype {aka int}’
sQueue [i].Clear ();
^
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:256:26: error: request for member ‘Empty’ in ‘((RnnLMDecoder )this)->RnnLMDecoder::sQueue[s]’, which is of non-class type ‘ gnu_cxx::alloc_traitsstd::allocator::valuetype {aka int}’
while (!sQueue [s].Empty () && k < kMax && n < nbest) {
^
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:257:26: error: request for member ‘Pop’ in ‘((RnnLMDecoder )this)->RnnLMDecoder::sQueue[s]’, which is of non-class type ‘__gnu_cxx:: alloc_traitsstd::allocator::valuetype {aka int}’
Token top = sQueue [s].Pop ();
^
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:295:31: error: request for member ‘Insert’ in ‘((RnnLMDecoder_)this)->RnnLMDecoder::sQueue[arc.nextstate]’, which is of non-class type ‘gnu_cxx::__alloc_traitsstd::allocator::valuetype {aka int}’
sQueue [arc.nextstate].Insert (npointer);
^
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:304:26: error: request for member ‘Insert’ in ‘((RnnLMDecoder )this)->RnnLMDecoder::sQueue[arc.nextstate]’, which is of non-class type ‘ gnu_cxx::alloc_traitsstd::allocator::valuetype {aka int}’
sQueue [arc.nextstate].Insert ((Token)&(niterator));
^
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h: In member function ‘void RnnLMDecoder::Initialize()’:
/home/pi/Phonetisaurus/src/include/RnnLMDecoder.h:326:28: error: request for member ‘Insert’ in ‘((RnnLMDecoder )this)->RnnLMDecoder::sQueue[0]’, which is of non-class type ‘__gnu_cxx:: alloc_traitsstd::allocator::valuetype {aka int}’
prev->key = sQueue [0].Insert ((Token)&(_prev));
^
Makefile:109: recipe for target 'bin/phonetisaurus-g2prnn' failed
make: _* [bin/phonetisaurus-g2prnn] Error 1