HARK 3.0.4のインストール

#HARKとは
HARKとは、**H**onda Research Institute Japan **A**udition for **R**obots with **K**yoto universityの略でホンダの研究所と京都大学が共同で開発した音声処理ライブラリ。

- ロボットに搭載しやすそう(他のシステムとの連携もできそう)
- 音声処理に対する十分な知識がない人でも手間をかけずに利用できる
- 日本人が作っているので公式フォーラムに質問しやすい

という特徴がある。

##インストール手順
基本的に[公式ページ](https://www.hark.jp/)のインストール手順を踏めばできる。
自分はEPSON EndeavorのデスクトップPC上のUbuntu 16.04にインストールを行った。
自分の行った手順をここに示すが、公式サイトの最新のものを参照にしたほうがいい。
コンパイルを自分で行う方のインストール手順で行った。

必要なもののインストール。

```Bash:~/$
sudo apt install libtool libxml2-dev libzip-dev libasound2-dev libopenblas-dev libgtk2.0-dev libsndfile1-dev libsdl2-dev liblapacke-dev gfortran python3-setuptools python3-dev libpopt-dev
```

適当にディレクトリをつくり、そのディレクトリの中で下記に示していく`apt source`コマンドを実行する。

```Bash:~/$
mkdir ~/hark_ws && cd hark_ws
```

hark-baseのビルド・インストール。

```Bash:~/hark_ws$
apt source hark-base
cd hark-base-*.*.*
mkdir build && cd build
cmake ..
make
sudo make install
cd ../..
```
以下、それぞれのライブラリも同様にインストール。

```Bash:~/hark_ws$
apt source harkmw
cd harkmw-*.*.*
python3 setup.py build
sudo python3 setup.py install
cd ..
```

```Bash:~/hark_ws$
apt source libhark-netapi
cd libhark-netapi-*.*.*
make
sudo make install
cd ..
```

```Bash:~/hark_ws$
apt source libharkio3
cd libharkio3-*.*.*
mkdir build && cd build
cmake ..
make
sudo make install
cd ../..
```

```Bash:~/hark_ws$
apt source hark-core
cd hark-core-*.*.*
mkdir build && cd build
cmake -DENABLE_RASP24=OFF -DENABLE_WS=OFF ..
make
sudo make install
cd ../..
```

harktoolだけビルドエラーが出たので`hark_ws/hark-core-3.0.4`の中のREADMEファイルを参照してインストールを行った。

```Bash:~/hark_ws$
apt source harktool5
cd harktool5/
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
make
sudo make install
```

公式では「Step8 : kaldidecoder-hark installation instruction」という項目があるが、これはおそらく音声認識関連のライブラリなので、とりあえずはこれで終了。

##起動方法
ターミナル上で`hark_designer`と打てばインターネットプラウザ上に立ち上がる。
自分の環境は下記のような文字列が表示される。警告があるがちゃんと動いているので無視している。

```Bash:
hark_designer
PORT=3000
..........................warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
............./usr/lib/hark-designer
Express server listening on port 3000
.
updating defs
OS: Linux
defs loaded
root: undefined
```

##最初にやること
HARKは便利そうなライブラリであるが、いかんせん公式サイトのチュートリアルがわかりづらい。(自分にとっては)
最初に自分がつまづいたポイントについて、他の人も同じ苦しみを味わわないよう記載する。
###初期設定
上のメニューバーの「Preference」を選択し、「Package」を選択。
表示されるチェックボックスを全てクリックしておく。
すると最初の画面のNode listってところにいくつかの音声処理してくれそうなライブラリが表示されるはず…！

###そもそも
そもそもhark_designerはGUIを用いてプログラミングを簡単に行えるアプリケーションである。
それぞれの処理を行うものをノードと呼び、ノードが集まって構成されたものをシートと呼んでいる。
起動すると「MAIN(subnet)」と表示されていると思うが、これが「MAIN」っていう名前のシートって感じ。
MAINシートはC言語とかでいうmain文にあたる。
また、それぞれのプロジェクトをネットワークと呼び、拡張子.nで保存される。

###sep_rec_online.nのダウンロード
いろいろとHARKのプログラミングを行う上で記述の仕方がわからないことが多々あるので、公式チュートリアルで公開されているネットワークファイルをダウンロードし、それを元にチュートリアル等を行っていくことがおすすめ。
[ここ](https://www.hark.jp/document/3.0.0/hark-cookbook-ja/fig-LearningHARK_002_01_2.html)の「HARK音声認識ファイルセット」ってリンクからダウンロードできる。

(自分の経験では、１から自分で作ったネットワークファイルではシートの設定画面がなぜか表示されず、このsep_rec_online.nを読み込むとそれがちゃんと表示されていた、ということがありました。)

###チュートリアル
[HARK クックブック Version 3.0.0.](https://www.hark.jp/document/3.0.0/hark-cookbook-ja/index.html)というページのチュートリアルを行っていきましょう。
自分も今やってます！