け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

●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
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
amixer


Mic の音量設定を変更するには下記の command を入力します。
-c sset で Device 番号 0 を指定して音量は % で指定します。
$ amixer -c 0 sset 'Mic' 90%
amixer


Speaker の音量調整は、-C で Speaker の Device 番号 1 を指定します。
$ amixer -c 1 sset 'Headphone' 85%



音が出ない時は Speaker が Mute に設定されていないか確認します。
RasPi の Speaker 音量設定も行う事が出来る下記 command も使用できます。

$ alsamixer -c 1
alsamixer


音量調整は、↑・↓ Key を押す事により調整できます。
終了は、Esc Key を押せば調整値が登録されます。


----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan