LoginSignup
12
14

More than 5 years have passed since last update.

Raspberry Pi3に日本語で喋ってもらうまで

Last updated at Posted at 2018-09-23

■はじめに

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

12
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
14