#■はじめに
Raspberry Pi3に、日本語で喋ってもらうための作業手順になります。
日本語音声プラグイン JTalkをインストールし、好きな日本語を喋らせるまでが目的です。
#■大まかな流れ
JTalk のインストール
JTalk でお試し発声
JTalk に女性音声を追加
JTalk の女性音声でお試し発声
#■前提
ラズパイにて日本語が入力できること、音声ジャックから音が出ることが前提です。
前提の手順はこちらから。
Raspberry Pi3の日本語入力を有効にする
Raspberry Pi3 にてオーディオジャックから音声を出力する
#■JTalkの使い方
JTalkは、「日本語文字列を日本語音声に変換」するものです。
よって、音声出力する(音を鳴らす)部分は持ち合わせていません。
今回は、以下にて音声出力まで行います。
順番 | 役割 | 内容 | 実体 |
---|---|---|---|
1 | セリフ作成 | 日本語のセリフを作成 | 手作り |
2 | 日本語音声変換 | セリフを音声ファイルとして作成 | JTalk |
3 | 音声出力 | 音声ファイルを音として出力 | aplay |
#■作業1. JTalkのインストール
・パッケージリストをアップデート
sudo apt-get update
・JTalkをインストール
sudo apt-get install open-jtalk
#特に入力や設定は不要
・推奨パッケージのインストール
sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
#JTalkインストール中に Suggested packages(提案パッケージ) として表示されるものになります。
#■作業2. JTalkでお試し(echoで実施)
・コマンド:
echo "<日本語>" | open_jtalk -m <音響モデル> -x <辞書ディレクトリ> -ow <出力WAVファイル>
root@raspberrypi:~# echo "テスト用です" | open_jtalk
-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
-x /var/lib/mecab/dic/open-jtalk/naist-jdic
-ow /tmp/test.wav
root@raspberrypi:~#
・コマンド:
aplay <音声ファイル.wav>
root@raspberrypi:~# aplay /tmp/test.wav
再生中 WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
root@raspberrypi:~#
→これで音が出るはずです。
#■作業2. JTalkでお試し(ファイル読み込みで実施)
・準備
以下ファイルを準備。
root@raspberrypi:~# cat /tmp/testword.txt
ファイル内のテキストを読み上げます。
root@raspberrypi:~#
・コマンド:
open_jtalk -m <音響モデル> -x <辞書ディレクトリ> -ow <出力WAVファイル> <入力テキストファイル>
root@raspberrypi:~# open_jtalk
-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
-x /var/lib/mecab/dic/open-jtalk/naist-jdic
-ow /tmp/testword.wav
/tmp/testword.txt
root@raspberrypi:~#
・コマンド:
aplay <音声ファイル.wav>
root@raspberrypi:~# aplay /tmp/testword.wav
再生中 WAVE '/tmp/testword.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
root@raspberrypi:~#
→これで音が出るはずです。
#■3. JTalk に女性音声を追加
デフォルトのJTalkは男性音声なので、女性音声となる音響モデルを入手します。
今回はMMDAgentを利用します。
MMDAgent
http://www.mmdagent.jp/
①ダウンロード
コマンド:
wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip
②zipファイルを解凍
unzip ./MMDAgent_Example-1.7.zip
③音響モデルをJTalkのディレクトリへコピー
root@raspberrypi:/tmp# cp -r ./MMDAgent_Example-1.7/Voice/mei/ /usr/share/hts-voice/
./MMDAgent_Example-1.7/Voice/mei/ 配下には、女性音響モデルが複数入っています。
root@raspberrypi:/tmp# ls -lh ./MMDAgent_Example-1.7/Voice/mei/
合計 4.2M
-rw-r--r-- 1 root root 2.9K 12月 26 2016 COPYRIGHT.txt
-rw-r--r-- 1 root root 4.5K 12月 26 2016 README.txt
-rw-r--r-- 1 root root 843K 12月 26 2016 mei_angry.htsvoice
-rw-r--r-- 1 root root 843K 12月 26 2016 mei_bashful.htsvoice
-rw-r--r-- 1 root root 843K 12月 26 2016 mei_happy.htsvoice
-rw-r--r-- 1 root root 843K 12月 26 2016 mei_normal.htsvoice
-rw-r--r-- 1 root root 843K 12月 26 2016 mei_sad.htsvoice
#■手順4. JTalk の女性音声でお試し発声
音響モデルのみ、今回ダウンロードしたものを利用します。
それ以外の辞書ディレクトリなどは従来のものを利用します。
・コマンド:
echo "<日本語>" | open_jtalk -m <音響モデル> -x <辞書ディレクトリ> -ow <出力WAVファイル>
root@raspberrypi:~# echo "テスト用です" | open_jtalk
-m /usr/share/hts-voice/mei/mei_normal.htsvoice
-x /var/lib/mecab/dic/open-jtalk/naist-jdic
-ow /tmp/test.wav
root@raspberrypi:~#
・コマンド:
aplay <音声ファイル.wav>
root@raspberrypi:~# aplay /tmp/test.wav
再生中 WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
root@raspberrypi:~#
→これで女性音声が出るはずです。
#■最後に
コマンドラインで操作が簡単に出来るので、シェル等でくるめばかなり便利に使えるかと思います。
と思って、簡単なシェルを作ってみました。
JTalkの音声変換と音声出力をシェルで一気にやる(ラズパイ用)
https://qiita.com/Higemal/items/aacaa30588ebd2fceb1f
#■出典/参考
Open JTalk
http://open-jtalk.sourceforge.net/
MMDAgent
http://www.mmdagent.jp/
Raspberry Piでテキストを音声化する (Open JTalk)
http://www.taneyats.com/entry/raspi-open-jtalk
Ras Pi 3 スピーカーから音を鳴らす!そしてOpen JTalkで日本語を喋らせる!
https://iot-plus.net/make/raspi/speaker-open-jtalk-japanese-speech/
Raspberry piで日本語音声合成(Open JTalk)を試してみる。
https://qiita.com/lutecia16v/items/8d220885082e40ace252
Open JTalk の音響モデルを試す
http://mahoro-ba.net/index.php?j=1875