macOSでOpenMHAをインストール
スポンサーリンク
補聴器アルゴリズムの開発用のOSSであるOpenMHAをmacOSにインストールする手順です。
OpenMHAとは
ドイツのHörTech gGmbHという非営利の補聴器システムについての研究団体?がオープンソースで開発・公開しているプロジェクト。
一般的なパソコンで動作し、アルゴリズムの研究・開発
HörTech gGmbHという団体自体は聴覚障害者のリハビリとかいろいろやっているらしい。またWindowsでC++のアプリケーション開発者を募集している。
なお、OpenMHAのリポジトリはgithub。
ライセンスはAGPLv3。 現状、Ubuntu 16.04LTS用のバイナリが配布されている。
コマンドラインインターフェイスとJavaベースのGUIあり。
macOSにおける注意点
Octaveとの組み合わせでGUIの動作に問題があるらしい。Matlabとの組み合わせなら問題ないとのこと(もしMatlabのライセンスを持っているなら)。
準備
GUIがJavaで書かれているみたいなのでJavaをインストールしておく。
環境は以下の通り。
- macOS
- Xcode セットアップ済み
$ brew cask install java
インストール
まずライブラリ類のセットアップから
$ brew install libsndfile pkgconfig portaudio
Audioまわりをよろしくやってくれるライブラリ、JACKをインストール。
$ brew install jack
続いてOctave。オプションなのでなくても良い。Javaサポートが有効になっている必要があるらしい。しかし、Homebrewのパッケージは--with-java
オプションがなくなっている。どっちにしろmacOS環境ではGUI関連するバグが有るらしいので入れるだけ。
$ brew install octave
依存関係の解決のために大量にパッケージが入る。
コンパイル
$ git clone https://github.com/HoerTech-gGmbH/openMHA.git
$ cd openMHA
昔ながらの方式。いわゆる「まけまけインストール」*1。最近ツールに頼らずにインストールしてないのですごく懐かしいというか、久しぶり感がすごい。
ただ、デフォルトではカレントディレクトリにインストールするという仕様らしい。また、Homebrew ではなくMacPortsを前提にしているようで、configure
スクリプトの出力など、/opt/
配下のディレクトリにライブラリが存在することを前提にしている。ただ、問題なくビルドは通るので気にしなくて良い。
configure
のオプションで/usr/local
をインストール先とする。
$ ./configure --prefix=/usr/local $ make
エラーが表示されずにコンパイルが成功したらインストール。
$ sudo make install
インストール先に関しては/usr/local
が無難。
参考:El Capitan では LD_LIBRARY_PATH, DYLD_LIBRARY_PATH が環境変数にならない - Qiita
動作チェック
$ mha ? cmd=quit The Open Master Hearing Aid (openMHA) server version 4.5.5 Copyright (c) 2005-2017 HoerTech gGmbH, D-26129 Oldenburg, Germany This program comes with ABSOLUTELY NO WARRANTY; for details see file COPYING. This is free software, and you are welcome to redistribute it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE, Version 3; for details see file COPYING. <以下省略>
バージョンに関するメッセージと、現在の設定パラメータが説明のコメント付きで列挙される。
サンプルの設定ファイルを試す
git clone
したディレクトリ配下のmha/examples
にサンプルの設定ファイルが幾つか存在するのでこれを試す。
$ cd mha/examples/04-prerelease-combination $ mha ?read:prerelease_combination.cfg cmd=start cmd=quit
上記の場合、カレントディレクトリにある入力ファイルからノイズを除去などのアルゴリズムを適用して1speaker_diffNoise_4ch_OUT.wav
というファイルを生成する。README.txtにはノイズ除去とdynamic compressionほか幾つかプラグインの名称が記載されています。
……要するにまだちゃんとドキュメントを読んでいません。かなり高機能だということは確かです。
補足
公式ドキュメントによると、インストール先によっては下記のように環境変数をセットする。
/usr/local
の場合は不要。
$ PREFIX=/opt $ echo $PREFIX $ export LD_LIBRARY_PATH=$PREFIX/lib $ export DYLD_LIBRARY_PATH=$PREFIX/lib $ export PATH=$PATH:$PREFIX/bin
そのほか
本家のPDFドキュメントも重要っぽいが、ラズパイでOpenMHAを動かすプロジェクトのWikiページも有益な情報がある。
Home · m-r-s/hearingaid-prototype Wiki
まとめ
頑張ってドキュメントを読みましょう……。ドキュメント読み込んでから続きを書くということで。
ただ、GUIに関するバグの関係でLinuxかWindowsでやるほうが良さそうです。
このライブラリ?もTesseract OCRもOpenCVもC++。もっとC++をしっかり勉強しておけば良かったと思う今日このごろ。
後悔先に立たず。

- 作者: 矢吹太朗,WINGSプロジェクト山田祥寛
- 出版社/メーカー: 日経BP社
- 発売日: 2017/02/16
- メディア: 単行本
- この商品を含むブログを見る

- 作者: 江添亮
- 出版社/メーカー: KADOKAWA
- 発売日: 2015/09/25
- メディア: 単行本
- この商品を含むブログ (3件) を見る
*1:どうみてもおじさんです。すいません