PAGE TOP

 OpenRTC-aist »

   
Home Task Navi HRI REST_API
コミュニケーション知能モジュールパッケージ OpenHRI >> OpenHRIVoiceをWindowsでビルドする

OpenHRIVoiceをWindowsでビルドする

OpenHRIのソースコードは、 Github に公開されています。
OpenHRIVoiceのリポジトリのページ にアクセスし、Zip形式の圧縮ファイルで ソースコードをダウンロードすることができます。
まずは、ソースコードを入手し、適当なディレクトリに展開してください。
ビルドまでの手順は以下のようになります。
  • 準備
  • コンポーネントの動作確認
  • ビルド
  • ビルド済みコンポーネントの動作確認

準備

ここではWindows環境でOpenHRIVoiceをビルドするときに必要なソフトウェアのインストールと、コンポーネントを実行する際に必要なライブラリや実行ファイル、設定ファイルの設定を行います。
  • Python 2.7
  • OpenRTM-aist-Python-1.1.2-RELEASE
  • py2exe
  • pygtk-2
  • Graphviz
  • sox
  • lxml
  • BeautifulSoup
  • Julius dictation-kit
  • Julius-voxforge
  • OpenJtalk
  • Festival
  • ManyTTS
  • 音声ファイルのダウンロードと設定

Pythonのインストール

OpenRTM-aist-1.1.2-RELEASE(C++版)をインストールされている場合には、すでにPython2.7はインストールされてるはずですので、この部分は飛ばしても結構です。
Python 2.7がインストールされていない場合には、Pythonオフィシャルサイトから Python 2.7.14 のWindowバイナリ用インストーラをダウンロードし、インストーラに従ってインストールをしてください。Pythonは、64ビット版と32ビット版がありますが、どちらでも大丈夫かと思いますが、現在のところ動作確認は32ビット版で行っています。

OpenRTM-aist Python のインストール

次に、OpenRTM-aist-Python-1.1.2-RELEASEをインストールします。OpenRTM-aist-1.1.2をインストールされている方は、ここを読み飛ばしてください。
OpenRTM-aist-1.1.2では、すでにC++,Python,Javaおよびツール群は、1つのインストーラでインストールすることができます。
OpenRTM-aistのwebページ からインストーラをダウンロード・実行してインストールを完了してください。
現在のインストーラでは、デフォルトではすべてのライブラリ、ツール群、サンプル、過去のライブラリまでインストールされます。ディスクに余裕がない方、他のバイナリが不要な方は、カスタマイズでインストールすることをお勧めします。

Python モジュールのインストール

OpenHRIVoiceでは、実行のみの場合にもいくつかのPythonモジュールが必要になります。どのコンポーネントにどのモジュールが必要なのかも下記に記載しておきますので、必要なモジュールをインストールしてください。
また、Pythonモジュールのインストールには、pipを用いることがありますので、PATHの設定をしていない場合(Pythonのインストール時にデフォルトでは、PATHが通っていません)には、自分で設定してください。
このページの添付資料に、私が利用しているPythonのパスを通すバッチファイルPyEnv.batがありますので、これをPythonがインストールされているディレクトリ(通常、C:\Python27)にコピーし、ご利用いただければ簡単に設定できると思います。

py2exe
  • py2exeはPythonのスクリプト(.py)をWindows実行形式である.exeへ変換するモジュールです。py2exeを使って実行形式にしたプログラムは、Pythonをインストールせずに実行することが可能になります。OpenHRIVoiceをバイナリ化するときに使いますので、必要な方のみインストールしてください。pipコマンドで検索するとver.0.9.2.2が見つかりますが、これはPython3.3以上が必要ですので、Python2.7の場合には、ver.0.6.9をダウンロードページからインストーラをダウンロードしてインストールしてください。
  • py2exeのダウンロードページからpy2exe-0.6.9.win32-py27.exeまたはpy2exe-0.6.9.win32-py27.amd64.exeをダウンロードします。
  • ダウンロードしたインストーラを実行して、py2exeをインストールしてください。

lxml
  • lxmlはxml/htmlを取り扱うためのpythonのモジュールです。JuliusRTCとXSLRTCで利用しています。
  • このモジュールは、pipコマンドでインストールすることができます。現在のバージョンは4.0.0です。
 # pip install lxml

BeautifulSoup ver.4
  • BeautifulSoupはpythonで動作するHTMLとXMLのパーサーです。JuliusRTCで利用しています。
  • このモジュールも、pipコマンドでインストールすることができます。現在のバージョンは、4.6.0です。
 # pip install bs4

pygtk2
  • pygtk-2はPythonのGUI作成モジュールです。これは、utils.pyの中で使用されており、ファイル入出力のダイアログのために利用しています。JuliusRTCで利用しています。
  • pygtk-2のモジュールのインストールは、32ビット版と64ビット版では若干異なります。pygtkのオフィシャルサイトでは、pygtk-all-in-oneのパッケージの配布が行われていますが、現在のところ32ビット版のみであり、64ビット版のPythonには対応していません。下記に32ビット版、64ビット版の両方のインストールについて記載していきます。
  • 32ビット版
    • PyGtkのオフィシャルダウンロードサイトからインストーラpygtk-all-in-one-2.24.2.win32-py2.7.msi をダウンロードします。
    • 次に、ダウンロードしたpygtk-allin-onのインストーラを起動し、デフォルトの設定のままインストールしていただければ完了です。
  • 64ビット版
    • Pygtkのオフィシャルサイトでは、32ビット用のバイナリのみ提供されています。そのため、64ビットのPythonをお使いの場合には、UnOfficialサイトのパッケージをご利用になるか自分でコンパイルを行う必要があります。ここでは、UnOfficialパッケージを使ったインストールについて説明します。
    • 64ビット版のPygtkのモジュールのインストールには、Windows版のgtkバイナリ、UnOfficalパッケージサイトにある3つのwhlファイル(pycairo_gtk-1.10.0-cp27-nonewin_amd64.whl, pygobject-2.28.6-cp27-none-win_amd64.whl, pygtk-2.22.0-cp27-none-win_amd64.whl)が必要ですので、各サイトからダウンロードしてください。
    • 次に、ダウンロードしたWindows版のgtkバイナリを展開します。ここでは、C:\opt\gtk2の下に展開します。展開終了後、環境変数PATHに、C:\opt\gtk2\bin を追加します。このPATHの追加は、前述のPyEnv.batに追加しておくと便利です。
 # set PATH=C\opt\gtk2\bin;%PATH%
    • gtkのバイナリの展開が終わったら、最後にwhlファイルをpipコマンドでインストールします。
 # pip install pycairo_gtk-1.10.0-cp27-none-win_amd64.whl
 # pip install pygobject-2.28.6-cp27-none-win_amd64.whl
 # pip install pygtk-2.22.0-cp27-none-win_amd64.whl
以上で、pygtkパッケージのインストールは終了です。

pydub

  • pydubモジュールは、音楽・音声データを簡単に取り扱うことができるPythonモジュールです。GoogleSpeechRecogRTCの中で音声部分の切り出しに使われています。このモジュールのフル機能を使うには、ffmpegの実行環境が必要なのですが、GoogleSpeechRecogRTCでは、WAV形式のデータのみを取り扱いますので、ffmpegは必須ではありません。
  • pydubモジュールは、pipコマンドでインストールすることができます。
 # pip install pydub 
以上でOpenHRIVoiceの動作に必要なPythonモジュールのインストールは終了です。

Graphvizのインストール

Graphvizはオープンソースのグラフの可視化を行うためにソフトウェアです。このソフトウェアは、OpenHRIVoiceのツール(エディタなど)に使われています。エディタ等が必要なければ、このソフトウェアをインストールする必要はありません。

Graphvisは、オフィシャルサイトからインストーラgraphviz-2.38.msiをダウンロードし、インストールを実行してインストールします。

soxのダウンロードと設定

sox (Sound eXchange) は多くのサウンドファイルにさまざまなエフェクト、フィルタリングの適用、サウンドのデータ形式の変換等を行うオープンソースのサウンド処理プログラムです。
このプログラムは、OpenJTalk,Festival, MANYRTC等の音声合成RTCで使用しています。
SOXのオフィシャルサイトからsox-14.4.2-win32.zipをダウンロードし、適当な場所に展開してください。
インストール時に 3rdpartyの下に置くのですが、ライブラリの場所は設定ファイルで変更可能ですので、ここでは、C:\localの下に配置します。

Julius dictation-kit ダウンロードと設定

Juliusは、オープンソースの日本語大語彙連続音声認識エンジンです。Juliusの動作には、音響モデルと文法モデルが必要になりますが、OpenHRIVoiceでは dictation-kitを用いています。
このソフトウェアは、JuliusRTCの動作に必須です。
Juliusのオフィシャルサイトから必要なソフトウェア dictation-kitを-v4.4 をダウンロードし、適当な場所に展開してください。
インストール時には 3rdparty の下に配置するのですが、設定ファイルで別途指定可能で、ここでは、C:\localの下に配置します。

Julius-voxforgeのダウンロードと設定

前述の dictation-kitには、日本語用の音響モデルしか含まれておりません。そのため、JuliusRTCで英語の音声認識を行いたい場合には、別途、英語の音響モデルが必要になります。
Julius用の英語の音響モデルは、Voxforgeにて公開されていますが、商用に使用不可などの使用制限がありますので、使用許諾に同意の上、オフィシャルサイトから Julius_AcousticModels_16kHz-16bit_MFCC_O_D_(0_1_1-build726).zip というファイルをダウンロードしてください。
インストール時には、3rdparty ディレクトリに置くことを前提としていますが、設定ファイルで変更可能ですので、ここでは C:\localの下に展開します。

Festivalのダウンロードと設定

Festivalは英エディンバラ大学の「Centre for Speech Technology Research」で開発された、UNIXプラットホームの英語音声合成エンジンです。
X11スタイルのライセンスで使用可能です。READMEには、
COPYING

Festival is free.  Earlier versions were restricted to non-commercial
use but we have now relaxed those conditions.  The licence is an X11
style licence thus it can be incorporated in commercial products
and free source products without restriction.  See COPYING for the
actual details.
と記載されています。

Festivalは、基本的にUNIXプラットフォームを前提とされていますが、VisualStudioを用いたコンパイル可能になっています。ただし、Makefileの生成にCygwinが必要などツールの整備が必要ですので、Makefileを生成済みのソースコードパッケージをこのページに添付しています。
オリジナルのソースコードは、http://festvox.org/packed/festival/2.4/からダウンロードすることができます。festival-2.4-release.tar.gz, speech_tools-2.4-release.tar.gz, voices/festvox_XXX.tar.gz のファイル群が必要です。
ソースコードからのビルド方法に関しては、speech_tools内のドキュメントに記載されていますが、このページに添付されているソースコード(festival-2.4-src.zip)からビルドする場合には、展開後、下記の手順でコンパイル可能です。
 # build_speech_tools.bat

 # build_festival.bat
このページに上記のソースコードをVisualStudio2015 Update3でビルドした実行環境(festival-2.4.zip)を添付していますので、ダウンロードして C:\local に展開してください。

OpenJTalkのダウンロードとビルド

OpenJTalkは、オープンソースライセンスで開発されている日本語音声合成エンジンです。OpenJTalkは、マルチプラットフォームでビルド&動作可能になっているのですが、Windowsで(VisualStudioで)ビルドした場合には文字コードが Shift-JISに固定されています。
一方、OpenHRIでは、UTF-8 をデフォルトの文字コードとして使っておりますので、OpenJTalkも文字コードを変更してビルドしなければいけません。
UTF-8を利用するようにビルドするには、ソースコードのnmake用のMakefile.makのCHARSETの部分をすべて修正しなければいけませんので、VisualStudio 2015 Update3 でビルドしたバイナリパッケージをこのページに添付しています。
また、OpenJTalkのビルドには、hts_engine_API-1.10も必要になりますので、事前にコンパイルしておく必要があります。
OpenJTalkを簡単にビルドするために修正し、ビルド用バッチファイルを加えたソースコードをこのページに添付しています。ご自身でビルドされる場合には、このページのhts_engine_API-1.10-src.zipopen_jtalk-1.10-src.zipを利用していただければ良いと思います。
OpenJtalkのバイナリインストールには、このページの添付資料のopen_jtalk-1.10.zipをダウンロードし、C:\localに展開してください。

音声ファイルのダウンロードと設定

上記のOpenJTalkは、男性用の音響ファイルのみ添付されていますが、すでに様々なサイトで .htsvoice ファイルが公開されています。特に女性用の音響モデルは、MMDAgentというプロジェクト内でCreative Commonsライセンスで公開されています。
そのため女性用の音響モデル(.htvoiceファイル)をダウンロードして適当なディレクトリに展開してください。
なお、このページに添付されているopenjtalk-1.10.zipの中には、この女性用音響モデルが含まれていますので、別途ダウンロードする必要はありません。

ManyTTSのインストール

ManyTTSは、オープンソースライセンスで開発されている多言語音声合成エンジンです。英語、ドイツ語、イタリア語、ロシア語等の音声合成を行うことができます。このソフトウェアは、Javaで実装されており、マルチプラットフォームの動作し、Webサーバとして音声合成サービスを提供しますので、様々なプラットフォームで利用することができます。
ManyTTSオフィシャルサイトからmanytts-5.2.zipをダウンロードし、適当な場所に展開後 manytts-5.2/bin にある manytts-component-install.batを起動して音響モデルと言語モデルのダウンロードし、初期設定を実行してください。
 # cd manytts-5.2\bin
 # manytts-component-installer.bat
なお、manyttsは、Javaの実行環境が必要ですので、事前にインストールしPATHを通しておいてください。
初期設定が終了すれば、manytts-server.batを起動し、Webブラウザで http://localhost:59125 にアクセスして動作確認を行ってください。

コンポーネントの動作確認

OpenHRIVoiceに必要なライブラリ、ソフトウェアの準備が完了したら、バイナリにビルドする前にPythonスクリプトの状態で各コンポーネントが動作するか確認します。
ここで動作しなければ、正しいバイナリは生成できません。
前述の通りインストールを行うと、C:\localのディレクトリは、下記のようになっていると思います。
C:\local
     +--- dictation-kit-v4.4
     +--- festival-2.4
     +--- Julius_AcousticModels_16kHz-16bit_MFCC_O_D_(0_1_10build726)
     +--- manytts-5.2
     +--- open_jtalk-1.10
     +--- sox-14.4.2
また、OpenHRIVoiceのGithubのリポジトリでは、testというブランチが作成されており、上記の各ソフトウェアの配置を前提に XXX.conf 等が作成されています。
Git for Windows がインストールされていれば、 Git Bash を使って
 # cd c:/Devel

 # git clone https://github.com/openrtc/OpenHRIVoice

 # git checkout test
を実行すると、 C:¥Devel\OpenHRIVoice\openhrivoice に起動用のバッチファイルがありますので、それを起動して正常に動作することを確認してください。
OpenRTM-aistでは、omniORBpyを利用しています。そのため、Visual Studio 2010または Visual Studio 2015用のランタイムライブラリがインストールされていない場合に、正常にomniORBpyが動作しない場合があります。そのため、OpenHRIVoiceの動作確認時に import _omnipy でDLLのロードエラーが出た場合には、 Visual Studio 2010のラインタイムとVisual Studio 2015のラインタイムライブラリをMicrosoftのHPからダウンロードし、インストールして見てください。

ビルド

バイナリビルド前の動作確認が終わりましたら、py2exeを用いて OpenHRIVoiceのバイナリビルドを行います。
バイナリビルドを行うとPythonの設定を行わずとも、別のWindows端末で実行可能になりますが、必要な方のみ実施してください。通常、OpenHRIVoiceの動作を少し変更したいとか、最新版の追従したいということであれば、バイナリビルドなしで運用したほうがいいと思います。

バイナリビルドは、py2exeを実行させますので、コマンドプロンプト上で行います。
 # cd C:\Devel\OpenHRiVoice

 # C:\Python27\PyEnv.bat

 # python setup2.py py2exe
上記のコマンドを実行すると py2exeが実装され、C:\Devel\OpenHRIVoice の下に distディレクトリが生成され、実行ファイルが格納されていると思います。
ビルドが完了したら、各コンポーネントの設定ファイル等を
 # copy oprnheovoice\*.conf dist

 # copy oprnheovoice\JuliusRTC\dummy*.*dist

 # C:\Windows\System32\Robocopy.exe /S openhrivoice\doc dist\doc
でdistの下にコピーします。
また、バイナリで実行させる場合には、julius, openjtalk, festival,soxなどの外部ソフトウェアは、特に XXX.confに記載しなければ、3rdparyというディレクトリの下に配置されているものとして実装されていますので、
 # mkdir dist\3rdparty
 # C:\Windows\System32\Robocopy.exe /S C:\local\dictation-kit-v4.4  dist\3rdparty\dictation-kit-v4.4
 # C:\Windows\System32\Robocopy.exe /S C:\local\festival-2.4 dist\3rdparty\festival-2.4
 # C:\Windows\System32\Robocopy.exe /S C:\local\Julius_AcousticModels_16kHz-16bit_MFCC_O_D_(0_1_10build726) dist\3rdparty\Julius_AcousticModels_16kHz-16bit_MFCC_O_D_(0_1_10build726)
 # C:\Windows\System32\Robocopy.exe /S C:\local\open_jtalk-1.10 dist\3rdparty\open_jtalk-1.10
 # C:\Windows\System32\Robocopy.exe /S C:\local\sox-14.4.2 dist\3rdparty\sox-14.4.2
でコピーします。Manyttsのみは、任意のディレクトリで問題ありません。
以上でOpenHRIVoiceのバイナリビルドは終了です。 distディレクトリ以下に各コンポーネントの実行ファイルがあることを確認したください。

ビルド済みコンポーネントの動作確認

JuliusRTC.exeとXSLTRTC.exeを実行する時は、コマンドプロンプトを起動して、「XXXXXRTC.exe -g」とオプションをつけて起動します。

  • マルチリンガル対話システム(OpenHRIAudio,SEATSATが必要です)
  • 腕上げロボット(OpenHRIAudio,SEATSAT、Choreonoidが必要です)

資料