Kaldi安装实录(二)

今天弄的东西感觉比较多,不过可能是因为遇到的问题太多,而一个问题又迁出另一个问题,于是形成了一个分支略多的问题转移情况...

虽然解决问题的效率不是太高,但是在这个摸索的过程中还是能够学习到不少的新知识。

那么下面进入正题。


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


昨天是把cygwin开启安装之后就放在这儿了,今天早上来看的时候,装是装好了,但是最后跳出来一个提示:

“postinstall script error”

我当时点了一下返回于是又回到了前面选package的地方,再点了继续,还是出现了一样的提示。

但是这个提示上面也说明了,可能不会造成什么影响,所以就点了继续,完成了安装,如果之后会出现问题的话再来探究一下是否是这里的原因。

安装完成之后的cygwin还是缺少了一些需要的配置。后来我在这篇博文里看到了关于apt-cyg的介绍http://blog.csdn.net/forlong401/article/details/8517711

这个apt-cyg确实很好用,可以替代ubuntu下的apt-get,直接进行软件的下载安装。

下面是上篇博文中有提到过的kaldi资料合辑中要求的安装前的配置所进行的步骤:

(1)sudo apt-get install libtool 

(2)sudo apt-get install autoconf 

(3)sudo apt-get install wget 

(4)sudo apt-get install perl 

(5)sudo apt-get install subversion 

(6)sudo apt-get install build-essential 

(7)sudo apt-get install gfortran 

(8)sudo apt-get install libatlas-dev 

(9)sudo apt-get install libatlas-base-dev 

(10)安装zlib 

          wget http://www.zlib.net/zlib-1.2.8.tar.gz 

          tar -xvzf zlib-1.2.8.tar.gz 

          cd zlib-1.2.8.tar.gz 

          ./configure 

          make 

          sudo make install

要在cygwin上完成上述步骤,需要把sudo去掉,这里有篇帖子的讨论不知道是否完全正确但感觉可以说明问题。http://bbs.feng.com/read-htm-tid-149248.html

然后用apt-cyg代替上述语句中的apt-get即可。顺便附一个关于make命令的帖子:http://os.51cto.com/art/200806/75991.htm

全部执行完之后还是有点问题。

一个是subversion虽已提示安装包已存在,但是敲上去会显示找不到命令。但由于我在文件夹里都有看到subversion的存在,所以先忽略这个问题。

另一个是libatlas这个包找不到。

我尝试过再重新启动一次setup程序,到选择package的时候搜索了一下libatlas,也没有找到这个包。

后来看到了这个网页:http://www.cs.cmu.edu/~zkolter/course/15-780-s14/cvxpy.html

上面讲的并不是kaldi的安装,但是其中也需要安装libatlas,linux平台下是可以直接安装的,但是在windows的cygwin环境下,这里选择安装的是liblapack这个包。

所以可以猜测两者的作用应该是相似的。

后来我又查了一下这两个包的关系,从这个网站http://packages.ubuntu.com/zh-cn/lucid/libatlas-base-dev可以看到两者是依赖的关系。

ATLAS的官网的说明也可以参考一下http://math-atlas.sourceforge.net/

最后我是装了liblapack的包。


安装前的配置基本完成之后正式进入到kaldi的安装。

步骤可以参考kaldi的官网的这一章:http://kaldi.sourceforge.net/tutorial_setup.html

首先要找个合适目录先进行:

svn co svn://svn.code.sf.net/p/kaldi/code/trunk kaldi-trunk
这个很顺利,基本不会有什么问题。

然后进入到tools目录下:

cd kaldi-trunk/tools/
接下来输入:

make
我输完make之后出现了一些错误信息:


一开始我没有管,直接进行下一步看看是否会有问题:

cd ../src
 ./configure
果然问题来了,报错为未装openfst。

然后我找到了tools目录下的INSTALL文件,在这个文件中对kaldi安装的细节讲解,也就是说给出的这么简短几句话真正完成的是些什么事情。并且在直接执行不能安装成功的情况下,可以去找对应的方法。

其中的第二个就是讲了openfst的安装方法,安装步骤为:

wget http://openfst.cs.nyu.edu/twiki/pub/FST/FstDownload/openfst-1.3.2.tar.gz
tar -xovzf openfst-1.3.2.tar.gz   
for dir in openfst-1.3.2/{src/,}include/fst; do
    ( [ -d $dir ] && cd $dir && patch -p0 -N <../../../../openfst.patch ) 
done 
rm openfst 2>/dev/null # Remove any existing link
ln -s openfst-1.3.2 openfst
  ./configure --prefix=`pwd` CXX=g++-4.exe CC=gcc-4.exe --enable-static --disable-shared  

我这里贴上来的是cygwin环境下的安装步骤。

一步一步执行下来后,在最后一步./configure的时候出了问题。

报错为:C++compiler cannot create executables。

一开始我以为是我的gcc g++版本不够高,因为在INSTALL文件里面有要求cygwin里面的gcc g++要4.0,所以我就去下载4.0的版本。

这是下载地址:http://www.netgull.com/gcc/releases/gcc-4.0.0/

关于在cygwin上如何升级GCC,我也找到了一篇不错的博文:http://justmei.blog.163.com/blog/static/1160998532011631104911873/

但是在执行博文中第四步的时候又出错了,报错为:

cannot guess host type; you must specify one

我在网上搜了一下原因,据说是由于libtool的版本太低造成,于是我又跑去了更新libtool......感觉好像在做深度搜索......

关于如何升级libtool我也找了一个帖子:http://bbs.chinaunix.net/thread-2086190-1-1.html

也是前面很顺利,到了帖子中说的最后两步:

删除原来的/usr/local/httpd2/build/libtool  
[root@linux libtool-1.5.6]# rm –rf /usr/local/httpd2/build/libtool  
建立新的libtool 软连接 
[root@linux libtool-1.5.6]# ln -s /usr/local/bin/libtool /usr/local/httpd2/build/libtool

就不行了,因为我那里根本没有httpd2这个文件夹,所以我也很困惑,如果有知道原因的网友希望可以指点一下。


后来,很狗血的是,我在cygwin里面检查了一下gcc g++的版本,结果两者都是4.8.3的,都是新版本...

于是我再次回到前面的INSTALL装openfst出错的地方另寻错误原因,最后发现,是由于g++-4.exe和gcc-4.exe这两个地方要改成g++.exe和gcc.exe,因为在我的电脑里面这俩的名字是后者,所以得把名字写对了才能调用。

另外再分享个关于gcc和g++两者区别的博文链接http://hipercomer.blog.51cto.com/4415661/846923


这里之后,就可以继续进行src目录下的./configure 和make这两个操作。

在最后一步make这里,又出错了.....

报错为build error complaining too many sections: as: kws-functions.o: too many sections (46848)

后来找了解决方法:http://sourceforge.net/p/kaldi/mailman/message/32357729/

即修改两个文件:

1.src\lat\Makefile

EXTRA_CXXFLAGS += -Wno-sign-compare -O1

2.src\kaldi.mk

CXXFLAGS = -msse -msse2 -Wall -I.. -DKALDI_DOUBLEPRECISION=0  \
 -fPIC \
    -DHAVE_POSIX_MEMALIGN -DHAVE_CLAPACK -I ../../tools/CLAPACK/ \
    -Wno-sign-compare -Winit-self \
    -I ../../tools/CLAPACK/ \
    -I $(FSTROOT)/include \
    $(EXTRA_CXXFLAGS) \
    -O1

这里主要是进行了优化,关于-o1 和fPIC的作用见下面两个帖子的说明:

http://blog.sina.com.cn/s/blog_54f82cc201011op1.html

http://blog.chinaunix.net/uid-29192266-id-4347955.html


然后终于顺利完成了Kaldi的全部安装过程!!!

虽然不知道会不会有错误的地方,这要看后续的实验了,不过还是完成了重要的第一步!欢迎大家交流与分享经验和意见!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值