●Raspberry Pi 4 Open jTalk install
2020.04.30
ROBOT におしゃべりさせるには、Raspberry Pi 4 に Speaker を取り付けて
Open jTalk という音声合成 SOFT を install します。
この音声合成 Software は、4つの Modules で構成されています。
Speaker は、スマホ用の小型 Speaker を使用します。
Raspberry Pi 4 と スマホ用 AMP 付き Speaker
版 数
・Open jTalk本体 :Open_jTalk ver1.11
・HTS Engine :libhtsengine1 ver1.11
・辞書 File :open-jtalk-mecab-naist-jdic ver1.11
・音声合成Data :hts-voice-nitech-jp-atr503-m001
(2020年04月30日現在)
Install
下記の1行 Command でこれらの SOFT を Install します。
$ sudo apt-get -y install open-jtalk libhtsengine1 open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
上記の Command は長いので2行にしていますが、
Command は1行にして書いてください。
途中で続行しますか[y/n]?という Message が出たら「y」を入力します。
Script の作成
音声合成のSOFTは、open_jtalk という Command で実行しますが、
ものすご〜く長い Option を毎回書かなければなりません。
このため「jtalk.sh」という Shell Script File を
/home/pi の配下に作成します。
nano を開いて Script File に下記の内容を記入します。
$ cd /home/pi
$ sudo nano jtalk.sh
------------------------jtalk.sh-----------------------------------
#!/bin/sh
tmpfile=/tmp/jtalk.wav
echo "$1" | 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 $tmpfile
aplay --quiet $tmpfile
・この長い1行を、4行に分割して各行の右端に「\」を入れれば
見やすくなるのでやってみたら、Error が出て実行してくれなかった。
Shell Script を実行可能な File にするために
実行権限(File Permission)の変更をします。
$ sudo chmod 755 jtalk.sh
OUTPUT 指定
Raspberry Pi 4 の音声出力は、HDMI 側に出力する場合と、
Stereo mini jack 側へ出力する事ができます。
Default は自動選択になっていますが、出力先を固定する事も可能です。
●自動判別
$ sudo amixer cset numid=3 0
●Stereo mini jack 側へ出力
$ sudo amixer cset numid=3 1
●HDMI 端子側へ出力
$ sudo amixer cset numid=3 2
この設定は、正しくShutdown 又は、再起動すれば消える事はありません。
音を出してみる。
上記の設定が済んだら、では実行してみましょう。
$ sh jtalk.sh "今日はいい天気ですね"
ありゃ、オッサンの声だった。
ほかの音質は無いのかと探したら、meiちゃんの音声 Data がありました。
これを Down Load してきます。
$ sudo wget https://sourceforge.net/projects/mmdagent/files
/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip
$ sudo unzip MMDAgent_Example-1.8.zip
上記の wget Command は長いので2行になっていますが、
1行の Command にしてください。
解凍してできた MMDAgent_Example-1.8/Voice/mei Folder の中身を、
/usr/share/hts-voice の配下に Copy します。
$ sudo cp -R ./MMDAgent_Example-1.8/Voice/mei /usr/share/hts-voice/
nano Text editter を使用して、jtalk.sh を編集します。
オッサンの声は"#"でコメントアウトして、meiちゃんの声を追加します。
$ cd /home/pi
$ sudo nano jtalk.sh
--------------------------jtalk.sh---------------------------------------
#!/bin/sh
tmpfile=/tmp/jtalk.wav
#echo "$1" | 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 $tmpfile
echo "$1" | open_jtalk -m /usr/share/hts-voice/mei/mei_happy.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow $tmpfile
aplay --quiet $tmpfile
meiちゃんの声でしゃべらせてみましょう。
$ sh jtalk.sh "こんにちは。メイです。"
Mic と Speaker
Mic と peaker の音量調整は下記の様に行う事ができます。
現在の音量設定値を見るには、amixer に -c 0 の Option を
付けると表示してくれます。0 は Mic の Card 番号です。
amixer で表示される Mic 情報
$ amixer -c 0
Mic の音量設定を変更するには下記の command を入力します。
-c sset で Device 番号 0 を指定して音量は % で指定します。
$ amixer -c 0 sset 'Mic' 90%
Speaker の音量調整は、-C で Speaker の Device 番号 1 を指定します。
$ amixer -c 1 sset 'Headphone' 85%
音が出ない時は Speaker が Mute に設定されていないか確認します。
RasPi の Speaker 音量設定も行う事が出来る下記 command も使用できます。
$ alsamixer -c 1
音量調整は、↑・↓ Key を押す事により調整できます。
終了は、Esc Key を押せば調整値が登録されます。
----------------------------------------------------------------------------------------------------------------------------