Rapiroは耳の部分にスピーカーを取り付けられるように設計されている。
スピーカーをつけて、ただ音楽を流したりするだけではおもしろくない。
ロボットなんだから、しゃべれるようにしよう。
そんなわけで、Open JTalkを使ってしゃべらせることにした。
Open JTalkを使ってしゃべらせてみる
Open JTalkとは
Open JTalkは名古屋工業大学で開発された、日本語向けのテキストトゥスピーチ(文章読み上げ)ソフトで、txtデータをwavデータへ変換してくれる。
公式サイト:https://open-jtalk.sourceforge.net/
Open JTalkのインストール
open-jtalk(本体)とopen-jtalk-mecab-naist-jdic(辞書)、hts-voice-nitech-jp-atr503-m001(音響モデル)をインストールする。
sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
音声の確認
とりあえず、イヤホンジャックにスピーカーを挿して、Open JTalkの動作確認をしてみる。
しゃべってもらいたい文章(あいうえお)と出力先とファイル名(~/test.wav)を指定してwavファイルを生成。
echo "あいうえお" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow ~/test.wav
生成したwavファイルを再生。
aplay ~/test.wav
出力先を「/dev/stdout」にしてパイプ(|)で「aplay –quiet」をつなげると、wav形式のバイナリデータをそのまま出力してくれるので音声の確認はそのほうが便利。
ちなみに「–quiet」は標準出力や標準エラーに表示される情報(メッセージ)を抑制するオプションなので、表示させたい場合はつけなくてよい。
最終的にRapiroの起動確認用に、「起動完了」としゃべってもらうつもりなので、テストでも「起動完了」としゃべってもらう。
echo "起動完了" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow /dev/stdout | aplay --quiet
渋い。ロボットにしては渋すぎる。
女性話者の設定
女性話者があるので、そちらのパッケージをダウンロードする。
wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip
ダウンロードが終わったら、解凍する。
unzip ./MMDAgent_Example-1.8.zip
女性話者の音響モデル(mei)をコピー。
sudo cp -r ./MMDAgent_Example-1.8/Voice/mei/ /usr/share/hts-voice/
女性話者でしゃべらせてみる。
echo "起動完了" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow /dev/stdout | aplay --quiet
渋さは取れたが、まだロボット感が足りない。
声色の調整
女性話者には「Happy」、「Bashful」、「Angry」、「Sad」の音響モデルがある。
コマンドの「mei_normal」の部分をそれぞれ「mei_happy」、「mei_bashful」、「mei_angry」、「mei_sad」とすることで声色の雰囲気が変えられる。
全部試してみたが、まだロボット感はない。
パラメータを使用して調整してみる。
ロボット感を出すためにオールパス値(-a)を変えてみる。
0.5以下にするとヘリウムガスを吸ったような声になるらしい。
echo "起動完了" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -a 0.4 -ow /dev/stdout | aplay --quiet
ロボット感が出た。
もう少しゆっくりしゃべってもらいたい。
スピーチ速度係数(-r)を調整。
echo "起動完了" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -a 0.4 -r 0.7 -ow /dev/stdout | aplay --quiet
いい感じになった。
他にも色々とパラメータがあり、声色の調整をすることができるので試してみるとよい。
参考サイト:https://server-setting.info/centos/open-jtalk-install.html#voice_7
Ver.1.8の音響モデルで説明しているが、実際にはVer.1.7の音響モデルを使用している。
バージョンによって、雰囲気が変わるので色々と試してみるのもよい。
「起動完了」の音声は起動時にしゃべってもらう固定文なので、wavディレクトリを作成して、そこに保存。
echo "起動完了" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -a 0.4 -r 0.7 -ow ~/wav/boot.wav
スピーカーを取り付ける
冒頭にも書いたとおり、Rapiroは耳の部分にスピーカーを取り付けられるように設計されており、50mmのスピーカーがきれいに収まるようになっている。
用意したもの
あくまで丸パンダ研究所のRapiroにつけたものなので、下記のものでなくてもよい。
ミニプラグについてはRapiro頭部のスペース的にL型のほうが扱いやすい。
スピーカーの取り付け
アンプモジュール、スピーカー、ミニプラグをハンダ付けする。
シングルエンド入力でいいので、下の図の緑色の線のようにアンプモジュールのGNDとIN−を接続。

アンプモジュールのIN+とIN-をそれぞれミニプラグのチップ端子とスリーブ端子に接続する。
モノラル接続なので、リング端子は使用しない。

Rapiroにスピーカーをセット。
Raspberry Piの3.3Vに接続してミニプラグを挿す。

ここでは片耳しかつけていないが、両耳に取り付けられるので、スピーカーを2個にするのもアリ。
起動時にしゃべらせる
起動時にしゃべってもらうにはいくつか方法があるが、rc.localを使って起動時にしゃべってもらう。
rc.localを開く。
ここではvimを使用しているが、好きなエディタで構わない。
sudo vim /etc/rc.local
一番下に書かれている「exit 0」の上に保存したwavファイルを再生するコマンドを書き込む。
aplay /[homeディレクトリ]/wav/boot.wav
exit 0