ラズパイで音声出力を試す! OpenJtalkの準備から喋りまで

シェアする

Pocket

60爺は、少し前にOpen JTalkを使って、RaspberryPi に話をさせていました。今回、再度、実行しようとしましたが、過去の記録を取っていないため、いちからやり直しとなってしまいました。

今回、実施したことを記録として残します。

1.音声出力の準備

さて、Open JTalkは、バージョン1.05以前と1.06以降でhts_voiceのファイルフォーマットが異なるそうです。

今回は、2015年3月時点で一番最新バージョンの「Open JTalk1.08」で喋らせてみます。

ちなみに、2015年3月現在、apt-getでインストールすると、バージョン1.05がインストールされるそうなので、今回は、ソースからコンパイルしてインストールします。

今回は、aptではなく、ソースからmake installでインストールをします。

音声出力の準備としての手順は次の通りです。

  1. 管理ソフトウェアインストール
  2. hts_engine API(version 1.09)のインストール
  3. Open JTalk(version 1.08)のダウンロード
  4. Open JTalk ビルド、コンパイル、インストール
  5. 確認
  6. 辞書ファイルの入手
  7. MMDAgent音声ファイルの入手

(1) 管理ソフトウェアインストール

make installでインストールしたアプリケーションを管理する「paco」というソフトウェアをインストールします。

pi@raspberrypi:~ $ sudo aptitude install paco
以下の新規パッケージがインストールされます:
paco
・
・
libc-bin (2.19-18+deb8u9) のトリガを処理しています ...

(2) hts_engine API(version 1.09)のインストール

/tmp にダウンロードして解凍します。

pi@raspberrypi:~ $ cd /tmp
pi@raspberrypi:/tmp $sudo wget http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.09/hts_engine_API-1.09.tar.gz
--2017-07-12 13:10:30-- http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.09/hts_engine_API-1.09.tar.gz
・
・
2017-07-12 13:10:33 (1.39 MB/s) - `hts_engine_API-1.09.tar.gz' へ保存完了 [169258/169258]
pi@raspberrypi:/tmp $ ls
dhcpcd-(null)
hts_engine_API-1.09.tar.gz
pulse-PKdhtXMmr18n
ssh-HX0mzZHu4Vbj
ssh-HhEJHKrJN1Dw
systemd-private-ab1613aa03874ad4b8e68245cacb52a3-rtkit-daemon.service-E8spzT
pi@raspberrypi:/tmp $ sudo tar zxvf hts_engine_API-1.09.tar.gz
hts_engine_API-1.09/
・
・
hts_engine_API-1.09/bin/Makefile.mak

■ビルド、コンパイル、インストールします。参考記事では「数分かかります」と書いてありましたが、それほどでもなかったです。

pi@raspberrypi:/tmp $ cd /tmp/hts_engine_API-1.09

pi@raspberrypi:/tmp/hts_engine_API-1.09 $ sudo ./configure
checking for a BSD-compatible install... /usr/bin/install -c
・
・
config.status: executing depfiles commands

pi@raspberrypi:/tmp/hts_engine_API-1.09 $ sudo make
Making all in lib
・
・
make[1]: Leaving directory '/tmp/hts_engine_API-1.09'

pi@raspberrypi:/tmp/hts_engine_API-1.09 $ sudo paco -lD "make install"
Making install in lib
・
・
make[1]: Leaving directory '/tmp/hts_engine_API-1.09'

(3) Open JTalk(version 1.08)のダウンロード

/tmp にダウンロードして解凍します。

pi@raspberrypi:/tmp/hts_engine_API-1.09 $ cd /tmp
pi@raspberrypi:/tmp $ sudo wget http://sourceforge.net/projects/open-jtalk/files/Open%20JTalk/open_jtalk-1.08/open_jtalk-1.08.tar.gz--2017-07-12 13:22:58-- http://sourceforge.net/projects/open-jtalk/files/Open%20JTalk/open_jtalk-1.08/open_jtalk-1.08.tar.gz


2017-07-12 13:23:12 (1.28 MB/s) - `open_jtalk-1.08.tar.gz' へ保存完了 [14235254/14235254]pi@raspberrypi:/tmp $ ls
dhcpcd-(null)
hts_engine_API-1.09
hts_engine_API-1.09.tar.gz
open_jtalk-1.08.tar.gz
pulse-PKdhtXMmr18n
ssh-HX0mzZHu4Vbj
ssh-HhEJHKrJN1Dw
systemd-private-ab1613aa03874ad4b8e68245cacb52a3-rtkit-daemon.service-E8spzTpi@raspberrypi:/tmp $ sudo tar zxvf open_jtalk-1.08.tar.gzopen_jtalk-1.08/


open_jtalk-1.08/mecab-naist-jdic/feature.def

(4) Open JTalk ビルド、コンパイル、インストール

この処理は、だいぶ時間を食います。じっくり待ちましょう。

pi@raspberrypi:/tmp $ cd /tmp/open_jtalk-1.08
pi@raspberrypi:/tmp/open_jtalk-1.08 $ sudo ./configure --with-charset=UTF-8checking for a BSD-compatible install... /usr/bin/install -c


config.status: executing depfiles commands

pi@raspberrypi:/tmp/open_jtalk-1.08 $ sudo make
Making all in text2mecab

【ここで、だいぶ時間がかかりました。10分近くかかったかな。】

make[1]: Leaving directory '/tmp/open_jtalk-1.08'

pi@raspberrypi:/tmp/open_jtalk-1.08 $ sudo paco -lD "make install"
Making install in text2mecab


make[1]: Leaving directory '/tmp/open_jtalk-1.08'

(5) 確認

下記のコマンドを実行し「hts_engine_API-1.09」と「open_jtalk-1.08」が表示されればOKです。

pi@raspberrypi:/tmp/open_jtalk-1.08 $ paco -a
hts_engine_API-1.09 open_jtalk-1.08

望んでいた結果が出ました。OKです。

(6) 辞書ファイルの入手

辞書ファイル(version 1.08) をダウンロードして、/usr/local/share/の下に置きます。

今回は、/tmp にダウンロード・解凍して配置します。

pi@raspberrypi:/tmp/open_jtalk-1.08 $ cd /tmp
pi@raspberrypi:/tmp $ sudo wget http://sourceforge.net/projects/open-jtalk/files/Dictionary/open_jtalk_dic-1.08/open_jtalk_dic_utf_8-1.08.tar.gz--2017-07-12 13:40:56-- http://sourceforge.net/projects/open-jtalk/files/Dictionary/open_jtalk_dic-1.08/open_jtalk_dic_utf_8-1.08.tar.gz


2017-07-12 13:41:09 (1.48 MB/s) - `open_jtalk_dic_utf_8-1.08.tar.gz' へ保存完了 [14787242/14787242]
pi@raspberrypi:/tmp $ ls
dhcpcd-(null)
hts_engine_API-1.09
hts_engine_API-1.09.tar.gz
open_jtalk-1.08.tar.gz
open_jtalk_dic_utf_8-1.08
open_jtalk_dic_utf_8-1.08.tar.gz
pulse-PKdhtXMmr18n
ssh-HX0mzZHu4Vbj
ssh-HhEJHKrJN1Dw
systemd-private-ab1613aa03874ad4b8e68245cacb52a3-rtkit-daemon.service-E8spzT
pi@raspberrypi:/tmp $ sudo tar zxvf open_jtalk_dic_utf_8-1.08.tar.gz

open_jtalk_dic_utf_8-1.08/


open_jtalk_dic_utf_8-1.08/COPYING
pi@raspberrypi:/tmp $ sudo mkdir /usr/local/share/open_jtalk
pi@raspberrypi:/tmp $ sudo mv /tmp/open_jtalk_dic_utf_8-1.08 /usr/local/share/open_jtalk/

(7) MMDAgent音声ファイルの入手

MMDAgentは、名古屋工業大学国際音声技術研究所によって作成されたオープンソースの音声インタラクション構築ツールキットです。

MMDAgent公式サイト

今回は、MMDAgent(version 1.4 ) をダウンロードして、/usr/local/share/配下に置きます。

前回と同様、/tmp にダウンロード・解凍して配置します。

pi@raspberrypi:/tmp $ cd /tmp
pi@raspberrypi:/tmp $ sudo wget http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.4/MMDAgent_Example-1.4.zip

--2017-07-12 13:45:37-- http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.4/MMDAgent_Example-1.4.zip


2017-07-12 13:45:49 (1.64 MB/s) - `MMDAgent_Example-1.4.zip' へ保存完了 [11706517/11706517]
pi@raspberrypi:/tmp $ sudo unzip MMDAgent_Example-1.4.zipArchive: MMDAgent_Example-1.4.zip


inflating: MMDAgent_Example-1.4/Voice/mei/README.txt
pi@raspberrypi:/tmp $ sudo mkdir /usr/local/share/hts_voice
pi@raspberrypi:/tmp $ sudo mv /tmp/MMDAgent_Example-1.4/Voice/mei /usr/local/share/hts_voice/

3.シェルのダウンロード

/usr/local/bin 配下にopen_jtalkを使って喋らせるためのシェルをダウンロードします。

参考記事の中にあるプログラムをダウンロードしてください。
参考記事の「しゃべらせる」の項にあるサイトからダウンロードしましょう。

ダウンロードしたら、「jsay」ファイルに実行権限を付けます。

pi@raspberrypi:/tmp $ sudo chmod +x /usr/local/bin/jsay

4.喋らせる

居城の設定が終了すれば、以下のようにjsayの引数に喋らせたい文字列を渡すことで、ラズパイに喋らせることができます。

pi@raspberrypi:/tmp $ jsay こんにちは 

スピーカから、ちゃんと声が聞こえてきました。少し、イントネーションがおかしいかなと思いますが。

5.音周りの設定

出力先の変更等、必要があれば試してみることを掲げておきます。
60爺は、以前いろいろ触った関係か、以下の設定は一切実施実施していません。

60爺は、幸いなことに、以上の処理を終えた段階で音声が出ました。

◆ヘッドフォン端子から音を出す場合

$ amixer cset numid=3 1

◆HDMIから音を出す場合

$ amixer cset numid=3 2

◆自動判別

$ amixer cset numid=3 0

◆ボリュームの調整はパーセントで指定します

$ amixer set PCM 20%

※参考資料

今回記事は、以下のページを忠実に実行したものです。
もし、本記事でわからないところがあった場合は、このページを見ていただければいいと思います。

Raspberry Piにしゃべらせてみた(OpenJTalk 1.08、.htsvoiceファイル対応)

スポンサーリンク

シェアする

フォローする