2024年11月kaldi windows 安装怎么操作?windows 装kaldi 的详细操作方法
⑴kaldi windows 安装怎么操作?在本文中winiwn小编将给大家分享介绍下关于windows 系统中如何安装 kaldi 程序的详细操作方法。
⑵进行相关VS工程的更新和修改前,请确认你已经完成了以下列表所述工作,以保证后续更新的正确进行:
⑶已在Ubuntu Server上成功安装并运行Kaldi;
⑷请自行搜索相关Kaldi在Ubuntu上install/building的相关资源,这里不是重点,不再赘述。
⑸[Code Link]
⑹已在Ubuntu Server上下载THCHS语料库,并成功运行至少 trib的步骤;
⑺[Example Code Dir] TRUNK_ROOT/egs/thchs/s/
⑻[Corpus Link]
⑼在Windows平台上已安装Cygwin,并可以运行Unzip,Git, Wget, Patch命令,及Perl脚本;
⑽如果没有,请使用Cygwin Setup重新添加一下package:
⑾[x] unzip : Info-ZIP
⑿[x] git : Distributed version control system
⒀[x] wget : Utility to retrieve filts from the WWW via HTTP and FTP
⒁[x] patch : Applies diff files
⒂在Windows平台上下载相同版本Kaldi代码,并依据相关Guide生成VS工程,并可编译(尽管编译有错误;
⒃[Guide]
⒄VS工程选择VS(v), 配置选择 x Debug/Release
⒅请fellow步骤 ,,,,,,,,,,,,
⒆步骤使用选项: (kaldi)/windows$ generate_solution.pl –vsver vs –enable-openblas
⒇如果无法使用wget下载代码,请使用浏览器打开相关网址直接下载,注意版本;
⒈pthreads-w----release.zip
⒉OpenBLAS-v..-Win-int.zip
⒊mingw_dll.zip
⒋如果无法 patch /pthread-...patch, 请修改pthreadsPre-built.includepthread.h的ending type为UNIX模式;
⒌问题及解决方法
⒍Kaldi自带的VS工程的编译问题,主要是由PortAudio模块的缺失和openfst版本过低一起的。下面我们来逐一解决。
⒎Note: 以下步骤的验证,可以只编译/运行 (kaldi)kaldiwin_vs_OPENBLASkaldiwin_vs.sln 中的 oneline-wave-gmm-decode-faster工程。 编译整个Solution 多个Project太耗时。
⒏. PortAudio的更新及编译
⒐. PortAudio
⒑问题 fata error C: Cannot open include file: ‘portaudio.h’: No such file or directory
⒒原因 PortAudio 子模块未安装
⒓方法 Install PortAudio module and also ASIO supported sub-module
⒔步骤 ) 下载 pa_stable_v_.tgz 和 asiosdk.zip , 拷贝到 (kaldi)/tools/ 目录
⒕. ) cd (kaldi)/tools/
⒖. ) tar -xvf pa_stable_v_.tgz
⒗. ) unzip asiosdk.zip
⒘. ) mv ASIOSDK./ portaudio/src/hostapi/asio/ASIOSDK
⒙. ) 在VS中打开 (kaldi) oolsportaudiobuildmsvcportaudio.sln,选择x/Release配置进行编译。
⒚. ) 打开(kaldi)kaldiwin_vs_OPENBLASkaldiwinvariables.props, 添加PortAudio相关信息.
⒛> —————-
①在
②
③
④在
⑤
⑥
⑦
⑧
⑨
⑩
Ⅰ
Ⅱ
Ⅲ. ) 打开(kaldi)kaldiwin_vs_OPENBLASkaldiwinkaldiwin.props, 添加PortAudio相关信息.
Ⅳ> —————-
Ⅴ$(PORTAUDIO)include;$(PORTAUDIO)srommon;
Ⅵ$(PORTAUDIOLIB)Debug;
Ⅶportaudio_x.lib;pa_ringbuffer.obj;
Ⅷ. ) Rebuild kaldiwin_vs.sln 的 oneline-wave-gmm-decode-faster工程.
Ⅸ. Openfst的更新及编译
Ⅹ. Openfst
㈠问题 context-fst.h(): error C: syntax error: missing ‘;’ before ‘<’
㈡table-matcher.h(): error C: syntax error: missing ‘;’ before ‘<’
㈢trivial-factor-weight.h(): error C: syntax error: missing ‘;’ before ‘<’
㈣…
㈤原因 openfst版本不匹配, 当前使用为.., VS工程中使用的是..
㈥方法 更新openfst版本,添加/修改相关windows平台适配代码
㈦步骤 ) 下载 openfst-...tar.gz 和 openfst-...patch, 拷贝到 (kaldi)/tools/ 目录
㈧. ) cd (kaldi)/tools/
㈨. ) rm -rf openfst
㈩. ) tar -xvf openfst-...tar.gz
. ) patch -b -p < openfst-1.6.2.patch
. 6) 在VS2015中打开 (kaldi) oolsopenfst-1.6.2openfst.sln,选择x64/Release & Debug配置进行编译.
. 7) 打开(kaldi)kaldiwin_vs2015_OPENBLASkaldiwinvariables.props, 修改openfst相关信息.
> —————-
将
. ) 打开(kaldi)kaldiwin_vs_OPENBLASkaldiwinopenfstwin_debug.props, 修改openfst相关信息.
> —————-
将子项下的openfstx-gd.lib内容修改为:
libfst.lib;%(AdditionalDependencies)
. ) 打开(kaldi)kaldiwin_vs_OPENBLASkaldiwinopenfstwin_release.props, 修改openfst相关信息.
> —————-
将子项下的openfstx.lib内容修改为:
libfst.lib;%(AdditionalDependencies)
. pthread-win的路径错误
. pthread-win
问题 >LINK : fatal error LNK: cannot open file ‘pthreadVC.lib’
原因 pthreads路径错误
方法 更改kaldiwin_vs solution配置文件中pthreads路径
步骤 ) 打开(kaldi)kaldiwin_vs_OPENBLASkaldiwinvariables.props, 修改openfst相关信息.
> —————-
将
. dll files missing的错误
. dll files missing
问题 编译完成后运行时,提示找不到相关的dll文件
原因 工程运行依赖的dll文件未注册
方法 拷贝dll文件到可执行文件目录下
步骤 ) 相关dll的位置如下所示
> —————-
libopenblas.dll
(KALDI_ROOT) oolsOpenBLAS-v..-Win-intbinlibopenblas.dll
portaudio_x.dll
(KALDI_ROOT) oolsportaudiobuildmsvcxDebugportaudio_x.dll
libg_s_seh-.dll
(KALDI_ROOT) oolsmingw_dlllibg_s_seh-.dll
libgfortran-.dll
(KALDI_ROOT) oolsmingw_dlllibgfortran-.dll
libquadmath-.dll
(KALDI_ROOT) oolsmingw_dlllibquadmath-.dll
. ) 请将其拷贝到工程生成的执行文件目录(kaldi)kaldiwin_vs_OPENBLASxDebug下
. 控制台中文输出乱码
. 解码输出中文乱码
问题 online-wave-gmm-decode-faster.exe的控制台输出的解码后的文本显示是乱码
原因 解码所需的字典文件word.txt的编码格式(UTF-和中文版windows的控制台默认的编码格式(GBK不一致
方法 字典文件和控制台的编码格式需要保持一致
步骤 ) 用notepad++将word.txt编码格式更改为GB(GBK) 参考下图:
以上便是winwin分享的windows 装kaldi 的详细操作方法!