今日も微速転進

ここではないどこかへ

macOSでOpenMHAをインストール


スポンサーリンク

補聴器アルゴリズムの開発用のOSSであるOpenMHAをmacOSにインストールする手順です。

OpenMHAとは

ドイツのHörTech gGmbHという非営利の補聴器システムについての研究団体?がオープンソースで開発・公開しているプロジェクト。

一般的なパソコンで動作し、アルゴリズムの研究・開発

HörTech gGmbHという団体自体は聴覚障害者のリハビリとかいろいろやっているらしい。またWindowsでC++のアプリケーション開発者を募集している。

www.hoertech.de

なお、OpenMHAのリポジトリはgithub。

github.com

ライセンスはAGPLv3。 現状、Ubuntu 16.04LTS用のバイナリが配布されている。

コマンドラインインターフェイスとJavaベースのGUIあり。

macOSにおける注意点

Octaveとの組み合わせでGUIの動作に問題があるらしい。Matlabとの組み合わせなら問題ないとのこと(もしMatlabのライセンスを持っているなら)。

準備

GUIがJavaで書かれているみたいなのでJavaをインストールしておく。

環境は以下の通り。

  • macOS
  • Xcode セットアップ済み
$ brew cask install java

macOSのJDKのインストール・更新方法 - Qiita

インストール

まずライブラリ類のセットアップから

$ 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.

<以下省略>

f:id:atuyosi:20180515181613p:plain

バージョンに関するメッセージと、現在の設定パラメータが説明のコメント付きで列挙される。

サンプルの設定ファイルを試す

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++をしっかり勉強しておけば良かったと思う今日このごろ。

後悔先に立たず。

基礎からしっかり学ぶC++の教科書 C++14対応

基礎からしっかり学ぶC++の教科書 C++14対応

C++11/14 コア言語

C++11/14 コア言語

*1:どうみてもおじさんです。すいません

広告