Visual Studioを使ったWindowsでのkaldi環境構築
はじめに
この記事でやること
Windows上でkaldiの環境を構築します。やり方は、下の公式のガイドを参考にしています。
https://github.com/kaldi-asr/kaldi/blob/master/windows/INSTALL.md
目次
使用したバージョン等
- 作業日:2019年11月8日
- OS:Windows10 Pro 64ビット
- CYGWIN_NT-10.0 : 3.0.7(0.338/5/3) x86_64 Cygwin
- (2.24.0) 64-bit version of Git for Windows
cmake version 3.16.0-rc3
注意
- egs/にあるサンプルコードは動かせません。これらは、Windows向けに書かれていないからです。
- そもそもWindows上でkaldiを扱うのは非推奨なので、特別な事情がない限りは素直にLinux上で動かしましょう。
- ATLAS(線形代数ライブラリ)は使えません。
- CUDAも使えません。
- openfst 1.6.5のみサポートされています。
- gitコマンドを使って、必要なものをインストールする箇所もあります。
手順
1. Cygwinのインストール
Cygwinとは、Windows上で、Linux向けのディストリビューションを動かすためのGNUです。(正確にいうとUnix)
上のurlに行き、Cygwinをインストールしてください。とりあえず全部デフォルトで。以下コマンドはすべてCygwin上で実行しています。
2. Visual Studioをインストールする。
https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes
上のurlからインストールしてきてください。Community版で。インストール内容の指定は、”C++によるデスクトップ開発”のみ選択してください。
3. Git for Windows をインストールする。
gitコマンドを使うためにGit for Windowsをインストールします。
下のリンクにアクセスすることで自動でインストールが始まります。
https://git-scm.com/download/win
4. Compiling OpenFST
OpenFSTをコンパイルするには、CMakeがインストールされている必要があります。下のリンクに飛んでダウンロードして、インストールしてください。 Windows版、拡張子がmsiのものを選ぶ。下のサイトと同じやり方でやってください。
https://www.kunihikokaneko.com/tools/win/cmake.html
cmakeを有効にするためには、インストール後一回windowsを再起動する必要があります。
インストールしたら、Cygwinを立ち上げて、作業用のディレクトリへ行き、下のコマンドを順に打ち込んでください。
$ git clone https://github.com/kkm000/openfst.git $ cd openfst $ mkdir build64 $ cd build64 $ cmake -G "Visual Studio 15 2017 Win64" ../
5. kaldiのコンパイル
built64のディレクトリに入り、openfst.slnというファイルを見つけ、VisualStudio17で開いてください。
configuration(構成)を Debug|x64 に切り替えて、solutionをbuildしてください。Release|x64 でも同じようにやってみてください。もし二つのうちの片方でもビルドできないならば、一回ここで止まって、原因を特定するべきです。
kaldiのコンパイル
$ git clone https://github.com/kaldi-asr/kaldi.git kaldi
https://software.intel.com/en-us/mkl
Example:
(kaldi)/$ cd windows (kaldi)/windows $ pwd
- variables.props.dev を variables.propsにコピーしてください。そのあと、好きなテキストエディタでvariables.propsのパスを正しいものに修正してください。OPENBLASDIR のパスの部分は使わないので無視して下さい。
例
(kaldi)/windows $ vim variables.props
kaldiwin_mkl.props を kaldiwin.props にコピーしてください。
MSVC solutionを生成する次のスクリプトを呼び出してください。
(kaldi)/windows$ perl generate_solution.pl --vsver default
- 次のコマンドを打ってください。
(kaldi)/windows$ perl get_version.pl
- Visual Studioの中の (kaldi)/kaldiwin_vs_というサブフォルダに生成されているソリューションを開いて、Debug|x64 または Release|x64でビルドしてください。10個のプロジェクトが失敗することが予期されますが。これは想定の範囲内の動作です。テストのコンパイルも失敗しますが問題ないです。(そのうちkaldiの開発者が修正するつもりであるそうです。)