Kaldi安装实录(二)

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

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

那么下面进入正题。


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


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

“postinstall script error”

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

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

安装完成之后的cygwin还是缺少了一些需要的配置。后来我在这篇博文里看到了关于apt-cyg的介绍http://blog.youkuaiyun.com/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的全部安装过程!!!

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


<think>嗯,用户想在Windows系统上安装Kaldi框架,这需要我详细思考一下步骤。首先,我知道Kaldi主要是为Unix-like系统设计的,比如Linux,所以在Windows上安装可能需要借助一些工具。常见的方法可能有三种:使用Windows Subsystem for Linux(WSL)、虚拟机,或者Cygwin。 首先,考虑WSL。用户如果使用Windows 10或更高版本,可以启用WSL并安装Ubuntu子系统。这样就能在类似Linux的环境中运行Kaldi。但需要确保WSL已经正确安装,并且配置好必要的开发工具,比如gcc和g++的版本。根据引用[1],Kaldi需要gcc 4.6,而Ubuntu 14.04默认是4.8,可能需要降级。不过现在Ubuntu的版本可能更高,可能需要使用其他方法调整gcc版本。 然后是虚拟机方法,比如VirtualBox或VMware。用户提到引用[2]中在虚拟机安装Ubuntu,所以这部分用户可能已经熟悉虚拟机的使用。在虚拟机中安装Ubuntu后,按照Linux的步骤安装Kaldi会更直接,但需要分配足够的资源,比如内存和存储,因为Kaldi编译可能需要较多资源。 第三种是Cygwin,它提供类Unix环境,但可能兼容性问题较多,安装过程复杂,可能不太推荐,尤其对于新手来说。 接下来,我需要考虑依赖项的安装Kaldi需要安装必要的工具和库,比如git、automake、libtool等,以及线性代数库如OpenBLAS。在WSL或Ubuntu虚拟机中,可以通过apt-get安装这些依赖。 然后是获取源码,使用git克隆Kaldi的仓库,进入tools和src目录进行编译。这里要注意,编译时可能需要调整gcc版本,如引用[1]提到的gcc 4.6,但较新的Ubuntu可能没有这个版本,可能需要使用update-alternatives来切换版本,或者使用其他方法,比如安装低版本的工具链。 另外,用户提到的引用[4]涉及在Windows上找到vswhere.exe,这可能与Visual Studio相关,但Kaldi主要依赖gcc,所以可能用户混淆了某些步骤。可能需要澄清,在Windows上通过WSL或虚拟机安装时,不需要Visual Studio,而是需要Linux下的编译工具。 测试安装部分,运行yesno示例脚本可以验证是否安装成功。如果有错误,需要检查依赖是否安装完整,gcc版本是否正确,以及权限问题。 潜在的问题可能包括gcc版本不兼容,依赖项缺失,或者系统资源不足。需要提醒用户在安装前确保系统满足要求,比如足够的存储空间和内存,尤其是在虚拟机中。 最后,生成相关问题需要考虑用户可能的后续步骤,比如环境配置、依赖问题、使用场景等,帮助用户进一步解决问题。</think>### 在 Windows 系统上安装 Kaldi 框架的步骤 由于 Kaldi 主要面向 Linux 环境,在 Windows 上安装需通过**虚拟化技术**或**子系统环境**实现。以下是三种主要方法: --- #### **方法一:通过 WSL (Windows Subsystem for Linux) 安装** 1. **启用 WSL** 打开 PowerShell(管理员权限),执行: ```powershell wsl --install ``` 重启系统后,从 Microsoft Store 安装 Ubuntu 发行版(如 Ubuntu 20.04 LTS)[^2]。 2. **配置开发环境** ```bash sudo apt update sudo apt install g++ make automake libtool git python3 wget unzip ``` 3. **调整 GCC 版本(若需要)** Kaldi 对 GCC 版本敏感,若需降级(例如从默认的 GCC 9 切换到 GCC 4.8): ```bash sudo apt install gcc-4.8 g++-4.8 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 ``` 4. **编译 Kaldi** ```bash git clone https://github.com/kaldi-asr/kaldi.git cd kaldi/tools make -j 8 # 根据 CPU 核心数调整 cd ../src ./configure --shared --use-cuda=no # 若无需 GPU 支持 make -j 8 ``` --- #### **方法:通过虚拟机安装 Ubuntu** 1. **安装虚拟机软件** 使用 VirtualBox 或 VMware,创建 Ubuntu 虚拟机(推荐 Ubuntu 18.04/20.04)[^2]。 2. **依赖安装与编译** 步骤与 WSL 相同,但需确保虚拟机分配足够资源(建议至少 4GB 内存、20GB 存储)。 --- #### **方法三:通过 Cygwin(不推荐)** Cygwin 提供类 Linux 环境,但兼容性问题较多,编译可能失败。需安装以下包: - `gcc-core`, `g++`, `make`, `git`, `python3`, `curl` 后续步骤同 Linux,但需手动修复路径问题。 --- #### **测试安装** 运行示例脚本验证: ```bash cd kaldi/egs/yesno/s5 ./run.sh ``` 若输出 `%WER 0.00 [ 0 / 232, 0 ins, 0 del, 0 sub ]` 表示成功[^3]。 --- #### **可能遇到的问题** 1. **GCC 版本冲突** 若编译报错,检查 `gcc -v` 版本,必要时强制切换。 2. **依赖缺失** 确保 `libatlas-base-dev` 或 `OpenBLAS` 已安装: ```bash sudo apt install libopenblas-dev ``` 3. **权限问题** WSL 或虚拟机中避免使用 `root` 用户编译,可能导致路径错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值