一.簡介
Kaldi是使用C++編寫的語音識別工具包,Apache License v2.0許可。主要供語音識別研究人員使用。Kaldi的目標和范圍與HTK類似。目標是擁有易於修改和擴展的現代而靈活的代碼。主要功能包括:
1.與有限狀態傳感器FST的代碼進行集成,根據OpenFst工具箱【作為庫】進行編譯。
2.廣泛的線性代數支持,包括一個包裝標准BLAS和LAPACK例程的矩陣庫。
3.可擴展的設計,以方便使用為目的提供算法。

二.安裝Kaidi
1.下載
在Linux你要安裝的目錄下執行:git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream
2.更新
當需要更新時,可以執行:git pull
3.安裝環境
理想的計算環境是運行在SGE【Sun GridEngine】的Linux機器的集群上,可以通過NFS或某些類似的網絡文件系統訪問共享目錄。在理想情況下,網格上的某些計算機將具有NVidia GPU,這樣可以將它們用於神經網絡的訓練,並且可以通過向qsub添加一些額外的選型將它們保留在隊列中。在實際情況或用於學習時,可能單機是比較普遍的,在單機情況下,Kaldi是可以運行的,盡管這樣做會執行的慢一點,並且可能必須要減少某些示例腳本中使用的作業數量,以免耗盡機器的內存。
4.所需的軟件包
1.Git這是下載Kaldi及其依賴的其他軟件所必須的。
2.wget是安裝某些非Kaldi組件時所必須的。
3.示例腳本需要標准的UNIX實用程序,例如bash,perl,awk,grep和make。
5.安裝依賴
執行命令:cd kaldi/tools/
執行命令:./check_dependencies.sh腳本檢查需要安裝的依賴

注意:你的機器上可能提示的比這多,這就需要單獨執行yum install xxx -y進行逐個安裝!
在安裝可能會報這個異常:

此時可以安裝gcc的gfortran


再次執行檢測腳本,可以查看已經完成所有依賴的安裝

6.編譯【tools目錄下】
然后執行:cd .. 回退到上一級,接着執行make進行編譯【make中也會執行檢測腳本】

若最后提示報錯:

這是因為openfst-1.6.7在解壓時內存不足報錯,之后重試時重新下載了jar包命名為openfst-1.6.7.tar.gz.1。解決方案是刪除之前解壓好的文件夾,之后重解壓壓縮文件,之后重新執行make進行編譯。若報以下警告:

安裝IRSTLM

7.檢測外部庫安裝情況

8.預編譯
[root@slave01 src]# make depend make -C base/ depend ./get_version.sh: Git history is not available. ./get_version.sh: Using the version number "5.4" specified in src/.version. make[1]: Entering directory `/usr/local/soft/kaldi/src/base' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/base' make -C matrix/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/matrix' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/matrix' make -C util/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/util' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/util' make -C feat/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/feat' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/feat' make -C tree/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/tree' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/tree' make -C gmm/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/gmm' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/gmm' make -C transform/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/transform' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/transform' make -C fstext/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/fstext' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/fstext' make -C hmm/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/hmm' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/hmm' make -C lm/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/lm' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/lm' make -C decoder/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/decoder' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/decoder' make -C lat/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/lat' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/lat' make -C kws/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/kws' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/kws' make -C cudamatrix/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/cudamatrix' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/cudamatrix' make -C nnet/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnet' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnet' make -C bin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/bin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/bin' make -C fstbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/fstbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/fstbin' make -C gmmbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/gmmbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/gmmbin' make -C fgmmbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/fgmmbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/fgmmbin' make -C featbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/featbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/featbin' make -C nnetbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnetbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnetbin' make -C latbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/latbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/latbin' make -C sgmm2/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/sgmm2' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/sgmm2' make -C sgmm2bin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/sgmm2bin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/sgmm2bin' make -C nnet2/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnet2' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnet2' make -C nnet3/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnet3' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnet3' make -C rnnlm/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/rnnlm' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/rnnlm' make -C chain/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/chain' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/chain' make -C nnet3bin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnet3bin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnet3bin' make -C nnet2bin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/nnet2bin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/nnet2bin' make -C kwsbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/kwsbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/kwsbin' make -C ivector/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/ivector' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/ivector' make -C ivectorbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/ivectorbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/ivectorbin' make -C online2/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/online2' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/online2' make -C online2bin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/online2bin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/online2bin' make -C lmbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/lmbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/lmbin' make -C chainbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/chainbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/chainbin' make -C rnnlmbin/ depend make[1]: Entering directory `/usr/local/soft/kaldi/src/rnnlmbin' g++ -M -std=c++11 -I.. -I/usr/local/soft/kaldi/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/usr/local/soft/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g *.cc > .depend.mk make[1]: Leaving directory `/usr/local/soft/kaldi/src/rnnlmbin'
9.編譯【src目錄下】
執行make進行編譯【make中也會執行檢測腳本】

編譯成功!
10.測試


這就表示安裝成功了!

三.分布式概述
在執行示例腳本之前,我們先花費一點時間看一下Kaldi發行版中還包含哪些內容。進入kaldi目錄,有一些文件和子目錄。重要的子目錄是tools、src和egs,下面重點介紹tools和src。
一.tools目錄

目錄tools是我們以各種方式安裝Kaldi所依賴的組件的目錄。其中大多數是由make命令安裝的東西。在INSTALL文件中提供了有關如何安裝工具的說明。

最重要的子目錄是OpenFst的子目錄。如果Kaldi安裝成功,將存在一個包含已安裝二進制文件的bin目錄和包含該庫的lib目錄。其中目錄include/fst/中包含了重要的代碼。如果想要深入了解Kaldi,則需要了解OpenFst【有興趣了解的前往:http://www.openfst.org/】。
接下來將執行示例命令進行配置:
1.進入bin目錄

2.執行命令創建text.fst文件

3.執行命令創建isyms.txt文件

4.執行命令創建osyms.txt文件

5.查看

6.配置PATH路徑

7.創建一個二進制格式的FST


8.執行復制命令,所得的WFST,binary2.fst,其類似於binary.fst,但其權重是binary.fst的兩倍,如下:


二.src目錄
src目錄包含了一系列代碼的列表。其中包含Makefile的目標之一,test測試命令。該命令進入各個子目錄並在其中運行測試程序。所有的測試都應該成功。如果必要,可以運行make valgrind,這將使用內存檢查器運行相同的測試,並且會花費更多的時間,也會包很多錯誤。可以使用ctr+c停止運行。

參照上面報錯日志的提示,執行配置腳本:./configure

配置成功后執行測試程序make test

這樣,基礎安裝配置就已經完成了!
