Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with EESEN installation #179

Open
iglov opened this issue May 14, 2018 · 11 comments
Open

Problem with EESEN installation #179

iglov opened this issue May 14, 2018 · 11 comments

Comments

@iglov
Copy link
Contributor

iglov commented May 14, 2018

Hi there!
When i am install EESEN step-by-step on this guide, on installation step i have an error:

[root@host /home/user/git/eesen/src]# ./configure --shared --use-cuda=no
Configuring ...
Checking OpenFST library in /home/user/git/eesen/tools/openfst ...
Checking OpenFst library was patched.
Backing up config.mk to config.mk.bak
Doing OS specific configurations ...
On Linux: Checking for linear algebra header files ...
Using ATLAS as the linear algebra library.
... no libatlas.so in /usr/lib
... no libatlas.so in /usr/lib/atlas
... no libatlas.so in /usr/lib/atlas-sse2
... no libatlas.so in /usr/lib/atlas-sse3
... no libatlas.so in /usr/lib64
Atlas found in /usr/lib64/atlas
... no libatlas.so in /usr/lib64/atlas-sse2
... no libatlas.so in /usr/lib64/atlas-sse3
... no libatlas.so in /usr/local/lib
... no libatlas.so in /usr/local/lib/atlas
... no libatlas.so in /usr/local/lib/atlas-sse2
... no libatlas.so in /usr/local/lib/atlas-sse3
... no libatlas.so in /usr/local/lib64
... no libatlas.so in /usr/local/lib64/atlas
... no libatlas.so in /usr/local/lib64/atlas-sse2
... no libatlas.so in /usr/local/lib64/atlas-sse3
... no libatlas.so in /home/user/git/eesen/src/../tools/ATLAS/build/install/lib/
... no libatlas.so in /home/user/git/eesen/tools/ATLAS/lib
Validating presence of ATLAS libs in /usr/lib64/atlas
Using library /usr/lib64/atlas/liblapack.so as ATLAS's CLAPACK library.
Static=[false] Speex library not found: You can still build Kaldi without Speex.
Successfully configured for Linux [dynamic libraries] with ATLASLIBS =/usr/lib64/atlas/liblapack.so /usr/lib64/atlas/libcblas.so /usr/lib64/atlas/libatlas.so /usr/lib64/atlas/libf77blas.so


[root@host /home/user/git/eesen/src]# make depend
make -C base/ depend
make[1]: Entering directory `/home/user/git/eesen/src/base'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/base'
make -C cpucompute/ depend
make[1]: Entering directory `/home/user/git/eesen/src/cpucompute'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/cpucompute'
make -C util/ depend
make[1]: Entering directory `/home/user/git/eesen/src/util'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/util'
make -C feat/ depend
make[1]: Entering directory `/home/user/git/eesen/src/feat'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/feat'
make -C fstext/ depend
make[1]: Entering directory `/home/user/git/eesen/src/fstext'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/fstext'
make -C lm/ depend
make[1]: Entering directory `/home/user/git/eesen/src/lm'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/lm'
make -C decoder/ depend
make[1]: Entering directory `/home/user/git/eesen/src/decoder'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -O3 -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/decoder'
make -C lat/ depend
make[1]: Entering directory `/home/user/git/eesen/src/lat'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -Wno-sign-compare -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/lat'
make -C gpucompute/ depend
make[1]: Entering directory `/home/user/git/eesen/src/gpucompute'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/gpucompute'
make -C net/ depend
make[1]: Entering directory `/home/user/git/eesen/src/net'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/net'
make -C fstbin/ depend
make[1]: Entering directory `/home/user/git/eesen/src/fstbin'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/fstbin'
make -C featbin/ depend
make[1]: Entering directory `/home/user/git/eesen/src/featbin'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/featbin'
make -C netbin/ depend
make[1]: Entering directory `/home/user/git/eesen/src/netbin'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/netbin'
make -C decoderbin/ depend
make[1]: Entering directory `/home/user/git/eesen/src/decoderbin'
g++ -M -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -Wno-sign-compare -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC *.cc > .depend.mk  
make[1]: Leaving directory `/home/user/git/eesen/src/decoderbin'


[root@host /home/user/git/eesen/src]# make
The version of configure script matches config.mk version. Good.
test -d /home/user/git/eesen/src/lib || mkdir /home/user/git/eesen/src/lib
make -C base 
make[1]: Entering directory `/home/user/git/eesen/src/base'
g++ -msse -msse2 -Wall -I.. -pthread -DKALDI_DOUBLEPRECISION=0 -DHAVE_POSIX_MEMALIGN -Wno-sign-compare -Wno-unused-local-typedefs -Winit-self -DHAVE_EXECINFO_H=1 -rdynamic -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user/git/eesen/tools/ATLAS/include -I/home/user/git/eesen/tools/openfst/include -DHAVE_OPENFST_GE_10400 -std=c++0x -g  -fPIC   -c -o kaldi-math.o kaldi-math.cc
In file included from ../base/kaldi-common.h:35,
                 from ../base/kaldi-math.h:34,
                 from kaldi-math.cc:22:
../base/kaldi-error.h:108: error: expected ‘;’ before ‘noexcept’
In file included from kaldi-math.cc:22:
../base/kaldi-math.h: In function ‘float eesen::RandUniformSTD()’:
../base/kaldi-math.h:109: error: ‘thread_local’ was not declared in this scope
../base/kaldi-math.h:109: error: expected ‘;’ before ‘static’
../base/kaldi-math.h:109: error: expected primary-expression before ‘)’ token
../base/kaldi-math.h:109: error: expected ‘;’ before ‘)’ token
../base/kaldi-math.h:110: error: expected ‘;’ before ‘static’
../base/kaldi-math.h:112: error: ‘r_state’ was not declared in this scope
../base/kaldi-math.h:112: error: ‘random_value’ was not declared in this scope
../base/kaldi-math.h: In function ‘bool eesen::BernoulliDist(float)’:
../base/kaldi-math.h:119: error: ‘thread_local’ was not declared in this scope
../base/kaldi-math.h:119: error: expected ‘;’ before ‘static’
../base/kaldi-math.h:119: error: expected primary-expression before ‘)’ token
../base/kaldi-math.h:119: error: expected ‘;’ before ‘)’ token
../base/kaldi-math.h:120: error: expected ‘;’ before ‘static’
../base/kaldi-math.h:122: error: ‘r_state’ was not declared in this scope
../base/kaldi-math.h:122: error: ‘rand_bool’ was not declared in this scope
../base/kaldi-math.h: At global scope:
../base/kaldi-math.h:87: warning: ‘eesen::kLogZeroBaseFloat’ defined but not used
cc1plus: warning: unrecognized command line option "-Wno-unused-local-typedefs"
make[1]: *** [kaldi-math.o] Error 1
make[1]: Leaving directory `/home/user/git/eesen/src/base'
make: *** [base] Error 2

I use centos6 and i have root privileges. What i doing wrong?

@riebling
Copy link
Contributor

I can make a guess that it is a C compiler versioning problem. gcc 4.8.4 is known to work; what does gcc --version show for you?

@iglov
Copy link
Contributor Author

iglov commented May 14, 2018

gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@riebling
Copy link
Contributor

Yep 4.4 looks to be a bit old. Now to find a way to upgrade GCC on CentOS 6... your research skills are as good as (probably better than) mine :)

@riebling
Copy link
Contributor

This looks promising; trying compiling Eesen now...
https://gist.github.com/giwa/b1fb1e44dc0a7d270881
These steps enabled me to get version 4.8 GCC working in a CentOS 6 machine
(but it's taking a while to build :) )

@iglov
Copy link
Contributor Author

iglov commented May 15, 2018

LOL, i think i am unlucky ;(

[root@host /home/user/git/eesen/src]# ./configure --shared --use-cuda=no
Configuring ...
Checking OpenFST library in /home/user/git/eesen/tools/openfst ...
Checking OpenFst library was patched.
Doing OS specific configurations ...
On Linux: Checking for linear algebra header files ...
Using ATLAS as the linear algebra library.
... no libatlas.so in /usr/lib
... no libatlas.so in /usr/lib/atlas
... no libatlas.so in /usr/lib/atlas-sse2
... no libatlas.so in /usr/lib/atlas-sse3
... no libatlas.so in /usr/lib64
Atlas found in /usr/lib64/atlas
... no libatlas.so in /usr/lib64/atlas-sse2
... no libatlas.so in /usr/lib64/atlas-sse3
... no libatlas.so in /usr/local/lib
... no libatlas.so in /usr/local/lib/atlas
... no libatlas.so in /usr/local/lib/atlas-sse2
... no libatlas.so in /usr/local/lib/atlas-sse3
... no libatlas.so in /usr/local/lib64
... no libatlas.so in /usr/local/lib64/atlas
... no libatlas.so in /usr/local/lib64/atlas-sse2
... no libatlas.so in /usr/local/lib64/atlas-sse3
... no libatlas.so in /home/user/git/eesen/src/../tools/ATLAS/build/install/lib/
... no libatlas.so in /home/user/git/eesen/tools/ATLAS/lib
Validating presence of ATLAS libs in /usr/lib64/atlas
Using library /usr/lib64/atlas/liblapack.so as ATLAS's CLAPACK library.
Static=[false] Speex library not found: You can still build Kaldi without Speex.
Successfully configured for Linux [dynamic libraries] with ATLASLIBS =/usr/lib64/atlas/liblapack.so /usr/lib64/atlas/libcblas.so /usr/lib64/atlas/libatlas.so /usr/lib64/atlas/libf77blas.so
*** WARNING: your version of gcc seems to be 4.8.2. ***
*** This version of gcc has a bug in nth_element ***
*** in its implementation of the standard library ***
*** This will cause Kaldi to crash (make test   ***
*** should fail). Please either upgrade or downgrade gcc. ***

@riebling
Copy link
Contributor

oh heck, so we need an even-different gcc version!

I tried in a VM and also had a problem with ATLAS; the compiler threw errors about shared vs. static libraries, and position independent code, when linking with Atlas libs.

At least your system has it already in /usr/lib64/atlas!

I'm not sure if the warning about nth_element is a real problem for Eesen - does anybody else know?

@iglov
Copy link
Contributor Author

iglov commented May 16, 2018

Now i'm use centos 7 with gcc 4.8.5 for EESEN, but i had problem with ATLAS libs, so i'm just copyed this libs from centos 6 (atlas-devel-3.8.4-2.el6.x86_64 and atlas-3.8.4-2.el6.x86_64 presents them) and all compiled fine :)
But now i have another question: How i can simple recognize with EESEN one my speech record (for example test.wav)? :)

@ben-8878
Copy link

ben-8878 commented Jun 5, 2018

@iglov i have same error with you, you should run install_atlas.sh, after it, then set config for cuda.

@riebling
Copy link
Contributor

riebling commented Jun 5, 2018

| But now i have another question: How i can simple recognize with EESEN one my speech record (for example test.wav)? :)

As installed, EESEN can't do anything; however it contains experiments that, given training data (downloadable) can be run, which produce models, which THEN can be used to decode - usually the specific data that goes with the experiment. No general-purpose speech recognition comes out-of-the-box with EESEN.

BUT: have a look at https://github.com/srvk/eesen-transcriber. This builds EESEN in a virtual machine, it includes already-trained models for one of the experiments (tedlium), and has scripts and wrapper code to transcribe, for example test.wav. If you wanted to run this with your system, you could follow the 'recipe' (provisioning script) in the Vagrantfile to get all the code and models in addition to EESEN necessary to transcribe test.wav.

@kidconan
Copy link

Now i'm use centos 7 with gcc 4.8.5 for EESEN, but i had problem with ATLAS libs, so i'm just copyed this libs from centos 6 (atlas-devel-3.8.4-2.el6.x86_64 and atlas-3.8.4-2.el6.x86_64 presents them) and all compiled fine :)
But now i have another question: How i can simple recognize with EESEN one my speech record (for example test.wav)? :)

Hey. I would like to know if you succeed in installing EESEN fo centos7 later? Our sever is centos7 with GPU, and I need to run on our sever.

@iglov
Copy link
Contributor Author

iglov commented Sep 29, 2018

Now i'm use centos 7 with gcc 4.8.5 for EESEN, but i had problem with ATLAS libs, so i'm just copyed this libs from centos 6 (atlas-devel-3.8.4-2.el6.x86_64 and atlas-3.8.4-2.el6.x86_64 presents them) and all compiled fine :)
But now i have another question: How i can simple recognize with EESEN one my speech record (for example test.wav)? :)

Hey. I would like to know if you succeed in installing EESEN fo centos7 later? Our sever is centos7 with GPU, and I need to run on our sever.

Hi there! Yep, on centos7 EESEN compiled fine. But you should find atlas libs first, i didn't found it in the past when i'd install eesen, so i'd get in from centos6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants