srvk / eesen

The official repository of the Eesen project
http://arxiv.org/abs/1507.08240
Apache License 2.0
825 stars 343 forks source link

Problem with EESEN installation #179

Open iglov opened 6 years ago

iglov commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago
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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

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

riebling commented 6 years ago

| 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 http://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 commented 6 years ago

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 commented 6 years ago

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.