最近需要在Windows编译一下Kaldi,在网上也找到了几篇资料,主要的步骤都在下面两个链接中,这篇主要记录一下安装中踩到的各种坑哈!
https://www.jianshu.com/p/5494d6607789 https://yutouwd.github.io/posts/3944650563/
一. 软件安装:
- Visual Studio 2017: 现在的版本是2019了,但是后续产生工程文件的时候只支持2017,所以大家不要下2019哈。安装vs2017的时候,右边Windows8.1和10要选一下,然后等安装完毕,重启就行了哈。
- git
- CMake:cmake在安装的时候,注意要选择所有用户。
二. 编译:
- 编译Openfst:
打开git
git clone https://github.com/kkm000/openfst.git
cd openfst
mkdir build64
cd build64
cmake -G "Visual Studio 15 2017 Win64" ../
PS:
1. 有可能会显示cmake命令找不到,那么需要在环境变量导入一下 export PATH=/opt/cmake/bin:$PATH。
2. 编译的时候会出现一些文件找不到,例如fst_fst.h,rand-fst.h等等。打开CMakeList.txt找到这些*.h的文件,并在前面加上绝对地址。或者把他们从openfst/src/include/fst/test拷贝出来。
出现上面的结果,那么就没问题啦!
在VS2017 打开openfst目录中的openfst.sln,选择Debug|x64并进行生成,测试没问题即可。
三. kaldi编译准备:
- 在git窗口把kaldi下载下来:git clone https://github.com/kaldi-asr/kaldi.git kaldi
- 进入到tools目录下:cd kaldi/tools
- 下载OpenBLAS:curl -L -O http://sourceforge.net/projects/openblas/files/v0.2.14/OpenBLAS-v0.2.14-Win64-int32.zip
- 解压OpenBLAS:unzip OpenBLAS-v0.2.14-Win64-int32.zip
四. 修改配置文件:cd kaldi/windows
- 复制配置文件:cp variables.props.dev variables.props
- 打开配置文件:vi variables.props
- 修改:
找到相应的位置进行修改,并保存退出
4. 生成工程文件:cp kaldiwin_openblas.props kaldiwin.props
5. 配置:./generate_solution.pl --vsver vs2017 --enable-openblas
./get_version.pl
五. Kaldi编译:
用VS2017 打开kaldikaldiwin_vs2017_OPENBLAS中的kaldiwin_vs2017.sln,调整Debug|x64并开始生成。
PS:
- 在编译的过程中可能会有几个error,首先是找不到fst.lib。这个文件不在搜索范围内,所以需要手动添加到目录中,在openfst目录下寻找到并直接cp过去
- 有的情况在openfst中也没有这个文件,那么在你编译好的openfst/build_output/x64/Debug/lib中有一个libfst.lib文件,修改名字后拷贝到相应的位置即可。
- 有的情况会提示找不到libopenblas.dll文件;那么在下载的OpenBLAS(kaldi/tools/OpenBLAS/bin)路径下存在。同理直接拷贝过去。
- 有的情况会提示找不到libgfortran-3.dll;这个文件需要自己手动下载,百度或者Google下载一份,并放入目录即可。