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
  • Visual Studio

    f:id:slimelimes:20191108150256p:plain
    visualstudio

  • 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

https://www.cygwin.com/

上の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

https://cmake.org/download/

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コンパイル

  1. kaldiの中身を確認しましょう。下のコマンドでkaldiをダウンロードしてください。
 $ git clone https://github.com/kaldi-asr/kaldi.git kaldi
  1. 線形代数ライブラリのインストールをします。下のurlからwindows版をインストールしてください。とりあえずよくわからなかったので、フルパッケージをダウンロードしました。

https://software.intel.com/en-us/mkl

  1. kaldiディレクトリの中のwindowsディレクトリに移動してください。

Example:

  (kaldi)/$ cd windows
  (kaldi)/windows $ pwd
  1. variables.props.dev を variables.propsにコピーしてください。そのあと、好きなテキストエディタでvariables.propsのパスを正しいものに修正してください。OPENBLASDIR のパスの部分は使わないので無視して下さい。

  (kaldi)/windows $ vim variables.props
  1. kaldiwin_mkl.props を kaldiwin.props にコピーしてください。

  2. MSVC solutionを生成する次のスクリプトを呼び出してください。

 (kaldi)/windows$ perl generate_solution.pl --vsver default 
  1. 次のコマンドを打ってください。
 (kaldi)/windows$ perl get_version.pl
  1. Visual Studioの中の (kaldi)/kaldiwin_vs_というサブフォルダに生成されているソリューションを開いて、Debug|x64 または Release|x64でビルドしてください。10個のプロジェクトが失敗することが予期されますが。これは想定の範囲内の動作です。テストのコンパイルも失敗しますが問題ないです。(そのうちkaldiの開発者が修正するつもりであるそうです。)

参考

qiita.com