1. 安装Git for Windows。下载地址:https://git-scm.com/download/win
2. 进入Git Bash,下载Kaldi到kaldi目录:git clone https://github.com/kaldi-asr/kaldi.git kaldi
3. 下载cmake, 地址:https://cmake.org/download/
下载安装时,要记得按下图设置
4. 进入kaldi/tools目录,下载openfst:
- git clone https://github.com/kkm000/openfst.git
- cd openfst
- mkdir build64
- cd build64
- cmake -G "Visual Studio 15 2017 Win64" ../
注意:编译的时候可能会出现找不到一些头文件的错误,那是openfst\src\test\CMakeLists.txt文件中一些头文件的路径问题,需要在找不到的一些头文件前面加上相对路径,比如:
add_executable(fst_test
fst_test.cc
fst_test.h
)
要改成:
add_executable(fst_test
fst_test.cc
../include/fst/test/fst_test.h
)
编译成功后,在build64目录下会生成一个项目文件openfst.sln,用VS2017打开它运行生成fst.lib静态库文件,分别在debug x64和release x64下生成。
5. 回到tools目录下,下载安装wget for Git(windows)。
- 下载wget二进制安装包,地址:https://eternallybored.org/misc/wget/
- 解压安装包,将wget.exe 拷贝到C:\Program Files\Git\mingw64\bin\ 下面;(或者解压之后将解压文件中wget.exe的路径添加到环境变量中)
6. 回到tools目录下,下载安装pthread-win32
- wget http://downloads.sourceforge.net/project/pthreads4w/pthreads-w32-2-9-1-release.zip
- mkdir pthreads
- cd pthreads
- unzip ../pthreads-w32-2-9-1-release.zip
7. 回到tools目录下,安装OpenBLAS
- cd ..
- wget http://sourceforge.net/projects/openblas/files/v0.2.14/OpenBLAS-v0.2.14-Win64-int32.zip
- wget http://sourceforge.net/projects/openblas/files/v0.2.14/mingw64_dll.zip
- unzip OpenBLAS-v0.2.14-Win64-int32.zip
- unzip mingw64_dll.zip
8. 下载 pa_stable_v190600_20161030.tgz 和 asiosdk.zip , 拷贝到 (kaldi)/tools/ 目录
- cd (kaldi)/tools/
- tar -xvf pa_stable_v190600_20161030.tgz
- unzip asiosdk.zip
- mv ASIOSDK2.3/ portaudio/src/hostapi/asio/ASIOSDK
- 在VS2017中打开 (kaldi)\tools\portaudio\build\msvc\portaudio.sln,选择x64/Release配置进行编译。
9. 到kaldi的windows目录下
- 拷贝variables.props.dev一份为variables.props
- 拷贝kaldiwin_openblas.props一份为kaldiwin.props
- 打开variables.props,
- 修改:
<OPENBLASDIR>绝对路径\OpenBLAS-v0.2.14-Win64-int32</OPENBLASDIR>
<OPENFST>绝对路径\openfst\</OPENFST>
<OPENFSTLIB>绝对路径\build64\</OPENFSTLIB>
- 新增:
<PORTAUDIO>绝对路径\portaudio</PORTAUDIO>
<PORTAUDIOLIB>绝对路径\x64</PORTAUDIOLIB>
- 在ItemGruop增加
<BuildMacro Include="PORTAUDIO">
<Value>$(PORTAUDIO)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
<BuildMacro Include="PORTAUDIOLIB">
<Value>$(PORTAUDIOLIB)</Value>
<EnvironmentVariable>true</EnvironmentVariable>
</BuildMacro>
- 打开kaldiwin.props
在<AdditionalIncludeDirectories>子项下添加:
$(PORTAUDIO)\include;$(PORTAUDIO)\src\common;
在<AdditionalLibraryDirectories>子项下添加:
$(PORTAUDIOLIB)\Debug;
在<AdditionalDependencies>子项下添加:
portaudio_x64.lib;pa_ringbuffer.obj;
10. 生成kaldi工程
- ./generate_solution.pl --vsver vs2017 --enable-openblas
- ./get_version.pl
11. 到新生成的kaldiwin_vs2017_OPENBLAS目录下用VS2017打开sln文件,选择Release|x64,开始编译生成项目,分别在debug x64和release x64下生成。