2016年8月9日火曜日

Raspberry Pi 2+RaspbianでOpen JTalk Ver.1.09をコンパイルしインストール

前回Raspberry Pi 2+Raspbianをお話できるようにしましたにて 、Open JTalk Ver.1.07をインストールしました。
しかし、この バージョンでは音量オプション -gが使えません。

そこで、今回は最新版であるOpen JTalk Ver.1.09をコンパイル・インストールして使えるようにしてみたいと思います。
hts_engine APIをコンパイル
Open JTalkhts_engine API を使っています。
Open JTalkコンパイルに先立って、まずコレをコンパイルします。
ディレクトリをホームに戻します。
$ cd
ソースコードをダウンロードします。
$ wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.10.tar.gz
そして、これを解凍します。
$ tar zxvf hts_engine_API-1.10.tar.gz
解凍が終わったら解凍したディレクトリに移動します。
$ cd hts_engine_API-1.10
コンパイルのための設定ファイルを作ります。
$ ./configure
できたらコンパイルします。
$ make
完了すると/home/pi/hts_engine_API-1.10に実行日の日付で新たなファイルが 追加されたりします。
作業が完了したら、次の作業のためにcd⏎でホームディレクトリに戻しておいてください。
Open JTalk Ver.1.09をコンパイル
Open JTalkのサイトからVer.1.09のソースファイルをダウンロードします。
$ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.09.tar.gz
解凍します。
$ tar zxvf open_jtalk-1.09.tar.gz
解凍先 のディレクトリに移動します。
$ cd open_jtalk-1.09
コンパイルのための設定ファイルを作ります。
下記コマンドは改行せず1行で入力してください。
もし、長すぎて改行したい場合は\(バックスラッシュ)を区切る行末に入れるとできます。
$ ./configure --with-charset=UTF-8 --with-hts-engine-header-path=/home/pi/hts_engine_API-1.10/include --with-hts-engine-library-path=/home/pi/hts_engine_API-1.10/lib
できたらコンパイルします。
$ make
動くかどうか確認してみます。正常な場合はVer.1.09の確認が出来ます。
$ ./bin/open_jtalk
root権限でインストールします。
$ sudo make install
動くかどうか確認してみます。 パスが通っていれば下記コマンドのみで実行可能なはずです。
通ってない場合はフルパス/usr/local/bin/open_jtalkで実行してみてください。
正常な場合はVer.1.09の確認が出来ます。
$ open_jtalk
作業が完了したら、次の作業のためにcd⏎でホームディレクトリに戻しておいてください。
Open JTalk 辞書ファイルをコピーする
Ver.1.07の辞書ファイルをそのまま使う事も可能ですが、Ver.1.09の辞書ファイルは若干容量が増えているので何らかの追加がされてるようです。
そこで、最新の辞書ファイルをコピーします。
Open JTalkのサイトからVer.1.09の辞書ファイルをダウンロードします。
$ wget http://tenet.dl.sourceforge.net/project/open-jtalk/Dictionary/open_jtalk_dic-1.09/open_jtalk_dic_utf_8-1.09.tar.gz
解凍します。
$ tar zxvf open_jtalk_dic_utf_8-1.09.tar.gz
root権限でコピーします。
$ sudo cp -r open_jtalk_dic_utf_8-1.09 /var/lib/mecab/dic
前回Raspberry Pi 2+Raspbianをお話できるようにしましたにて作成したjsayを書き換えます。
$ nano jsay
修正箇所は下記の赤字の箇所の部分
#!/bin/bash
tempfile=`tempfile`
echo "$1" | open_jtalk -m /usr/share/hts-voice/mei/mei_normal.htsvoice -x /var/lib/mecab/dic/open_jtalk_dic_utf_8-1.09 -ow $tempfile
aplay -q $tempfile
rm $tempfile
CTRL+X→Yで保存終了。
実行出来るかどうか確認してみます。
$ jsay 本日は晴天なり
特段これといった変化はないのですが、動作確認 の意味でやってみてください。
音量を変えてみる
Ver1.09で追加された音量オプション -gを試してみます。
jsayスクリプトに オプションを追加します。
$ nano jsay
修正箇所は下記の赤字の箇所の部分
#!/bin/bash
tempfile=`tempfile`
echo "$1" | open_jtalk -g $2 -m /usr/share/hts-voice/mei/mei_normal.htsvoice -x /var/lib/mecab/dic/open_jtalk_dic_utf_8-1.09 -ow $tempfile
aplay -q $tempfile
rm $tempfile
CTRL+X→Yで保存終了。
音量が変わるかどうか確認してみます。
音量が小さくなっていれば 成功です。
$ jsay 本日は晴天なり -20
音量は+数字で音量が大きくなり、-数字で小さくなります。
オマケでマスターボリュームの 変え方
マスターボリュームの変え方は2種類あります。
視覚的に変更する場合はこのコマンドで出来ます。
矢印キー↑↓で上げ下げできます。
$ alsamixer
次に、コマンドラインのみで直接変える方法です。
%の所の数字を大きくすると音量も大きくなり、小さくすると音量も小さくなります。
$ amixer cset numid=1 90%
なお、現在の 音量を確認したい場合は、%の数字を書かずに実行すると valuesの数字で確認できます。
表示になるminとmaxは%指定では なく数字で指定した場合の有効範囲です。
最後に
Open JTalkをRaspberry Pi+Raspbianにインストールする方法を解説した記事は他にもあります。
今回あえて執筆した理由は、バージョンアップによって音声定義 ファイルが.htsvoiceに変更になり、やり方が変わったため最新の手順ということで書きました。
ネット上には古いタイプの音声定義ファイルも残っていてそのままでは使用できません。
もし試してみたい場合は、.htsvoiceに変換する必要があります。
その手順に ついては、既存の記事で対応出来るようなので探して みてください。