2024年11月kaldi windows 安装怎么操作?windows 装kaldi 的详细操作方法

 更新时间:2024-11-17

  ⑴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相关信息.

  ⒛> —————-

  ①在子项下添加:

  ②D:Local_WorkProj_DLkaldi_win_valid oolsportaudio

  ③D:Local_WorkProj_DLkaldi_win_valid oolsportaudiobuildmsvcx

  ④在子项下添加:

  ⑤

  ⑥$(PORTAUDIO)

  ⑦true

  ⑧

  ⑨

  ⑩$(PORTAUDIOLIB)

  Ⅰtrue

  Ⅱ

  Ⅲ. ) 打开(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_ROOT) oolsopenfst-..

  (KALDI_ROOT) oolsopenfst-..x

  . ) 打开(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相关信息.

  > —————-

  将子项下的内容修改为:

  (KALDI_ROOT)pthreadsPre-built.

  . 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 的详细操作方法!

您可能感兴趣的文章:

相关文章