Raspberry PiB+ & Pi2


Raspberry Piを使って、音声命令でキャタピラを操作(1)

Raspberry Piの設定とOpen JTalkの設定



完成品は、次のように設定してキャタピラを音声命令で操作します。
 ・Raspberry PiB+、もしくはRaspberry Pi2+を使用。
 ・音声を出力するために 日本語音声合成 Open JTalkを使用
 ・日本語音声認識 julius を使用。



  完成品


 土台となるキャタピラは、タミヤの「タンク工作基本セット」を使用しています。
その木製車体の上にダブルギヤボックス、モーター駆動回路、音声アンプ、電池を載せ、 さらにその上に木版を置き、そこにモバイルバッテリー、Raspberry Pi2、スピーカーを 載せています。
 Raspberry Pi2 のUSB端子には、USBマイクと無線LANドングルを接続しています。

 動作は、例えば、「右!」とマイクに向かって話すと、Open JTalkの「メイちゃん」の声で 「右に曲がります」と返事があり、キャタピラが右に曲がります。
 音声命令は、「前」、「後ろ」、「右前」、「左前」、「右後」、「左後」、「右回転」、 「左回転」、「止まれ」の9個の命令があります。



Raspberry Pi のOS設定は省略しますが、その他の設定を記述します。



  Open JTalkのバージョンについて


Open JTalkのインストールについて

1.Open-jtalkは、バージョン1.05以前と1.06以降でhts_voiceのフォーマットが異なっています。
 2016/7/30現在では、Open-jtalkのバージョンが1.09になっています。
 しかし、apt-get installを使ってOpen-jtalkをインストールする場合、NOOBSのバージョンによって 注意が必要です。

(1)(RaspberryPi B+)+ NOOBS1.4.2(Raspbian Wheezy)のときは、Open-jtalkバージョン1.05が インストールされます。
(2)(RaspberryPi 2 )+ NOOBS1.9.2(Raspbian Jessie)のときは、Open-jtalkバージョン1.07が インストールされます。
(3)Open-jtalkのバージョンが1.09をインストールしたい場合には、apt-get installを使わないで、
  make installを使って自分でビルド、コンパイルするしかないようです。

以下に、「RaspberryPi B+にNOOBS1.4.2」の場合と「RaspberryPi2にNOOBS1.9.2」の場合」に分けて記述します。




  RaspberryPi B+にNOOBS1.4.2の場合


RaspberryPi B+のOSがNOOBS1.4.2の場合にOpen-jtalkをインストール

1.「LTXTerminal」を使って、次のコマンドを実行しOpen-jtalkをインストールする。

  $ sudo apt-get install open-jtalk

  $ sudo apt-get install open-jtalk-mecab-naist-jdic

  $ sudo apt-get install htsengine libhtsengine-dev

  $ sudo apt-get install hts-voice-nitech-jp-atr503-m001


2.インストール後、$ open_jtalk -h を実行して、Open-jtalkのバージョンと実行する際のオプションを 確認すると、バージョンは1.05です。

3.また、オプションは、下記のようになっています。
※Open-jtalkバージョン1.06以降で使えるオプション("-m")は、上記のオプションには無いので 使えません。

4.Open-jtalkを起動するシェルスクリプト「jtalk.sh」の作成
(1)次のコマンドを実行し、下記のように入力します。

  $ sudo nano jtalk.sh

(2)「jtalk.sh」の内容


5.次のコマンドを実行し「jtalk.sh」を実行可能なファイルにします。

  $ sudo chmod 755 jtalk.sh




  音声関係の設定


RaspberryPi のコンポジット端子にアンプ+スピーカーを繋ぎます。

1.Raspberry Piの「コンポジット端子」に接続するミニプラグは、3.5㎜Φの4極です。
 通常のステレオミニプラグは、3極です。

2.下図は、Raspberry Piの「コンポジット端子」の接続図です。

3.次の図は、音声関係の概略図です。

・4極プラグから映像と音声右を外し、2線(音声左・GND)をアンプに接続しました。 ・4極ミニプラグは、秋月電子で「3.5mmΦ4極ミニプラグ MP-435」を購入 \115
・小型アンプキットは、秋月電子で「TA7368使用小型アンプキット」を購入 \300
・3端子レギュレータは、秋月電子で「三端子レギュレータ5V 1A」を購入 \40
・スピーカーは、100均で購入
・電池は、006P型9Vです。
 (小型アンプに5Vが必要なためと RaspberryPi のモバイル電源の容量が小さいため電源を 分けています。)

なお、RaspberryPi のUSB端子に接続しているマイクは、「SANWA SUPPLY MM-MCUSB16 USBマイクロフォン」 を使用しています。




  Raspberry Pi の音声設定


Raspberry Pi の音声設定をします。

1.「LTXTerminal」で次のコマンドを入力し音声出力をコンポジット端子にします。

  $ amixer cset numid=3 1

2.出力の音量のレベルを確認するために次のコマンドを実行します。

  $ alsamixer

3.Alsa Mixer の画面が表示されます。

(1)この画面だと「再生」と表示されていますので、スピーカーの音量調節ができます。
(2)「再生」と表示されていない場合は、「F3」キーを押します。
(3)両方とも上下キー「↑、↓」を押せば音量調整ができます。
(4)自機では「58」にしてあります。




  Open-jtalkの起動


RaspberryPi B+のOSがNOOBS1.4.2の場合にOpen-jtalkを起動します。

1.「LTXTerminal」で次のコマンドを実行し、Open-jtalkが正しく起動するか確認します。

  $ ./jtalk.sh こんにちは [Enter]。

2.男性の声が聞こえれば成功です。

3.次のようにして女性の声(メイちゃん)に変更します。
 (1)MMDAgentが提供する「Example」Ver.1.3,1を使います。現在はVer1.6になっていますがここでは 使えません。次のコマンドを実行します。

  $ wget http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example /MMDAgent_Example-1.3.1/MMDAgent_Example-1.3.1.zip

  $ unzip MMDAgent_Example-1.3.1.zip

  $ sudo cp -R MMDAgent_Example-1.3.1/Voice/* /usr/share/hts-voice


4.「jtalk.sh」の内容を次のように変更します。
  $ sudo nano jtalk.sh を実行し、jtalk.shの内容を次のように変更します。

  cd /usr/share/hts-voice/nitech-jp-atr503-m001
  #cd /usr/share/hts-voice/mei_normal
 を次のように#を変更します。

  #cd /usr/share/hts-voice/nitech-jp-atr503-m001
  cd /usr/share/hts-voice/mei_normal


5.$ ./jtalk.sh こんにちは  [Enter]と実行し女性の声(メイちゃん)が聞こえれば成功です。

6./usr/share/hts-voice/の中身を確認しておきますと、次のフォルダーがあります。

7.なお、「nitech-jp-atr503-m001」 フォルダーの中には以下のファイルがあります。
・dur.pdf    ・gv-lf0.pdf    ・gv-mgc.pdf    ・gv-switch.inf    ・lf0.pdf
・lf0.win1   ・lf0.win2   ・lf0.win3   ・lpf.pdf   ・lpf.win1
・mgc.pdf   ・mgc.win1   ・mgc.win2   ・mgc.win2   ・mgc.win3
・tree-dur.inf   ・tree-gv-lf0.inf   ・tree-lpf.inf   ・tree-mgc.inf




  RaspberryPi2にNOOBS1.9.2の場合


RaspberryPi2のOSがNOOBS1.9.2の場合は、Open-jtalkを次のようにインストールして起動します。

1.「LTXTerminal」で次のコマンドを実行し、Open-jtalkをインストールします。

  $ sudo apt-get install open-jtalk

  $ sudo apt-get install open-jtalk-mecab-naist-jdic

  $ sudo apt-get install libhtsengine1

  $ sudo apt-get install hts-voice-nitech-jp-atr503-m001


2.インストール後、$ open_jtalk -h を実行して、Open-jtalkのバージョンと実行する際の オプションを確認すると、バージョンは1.07になります。

3.Open-jtalkのオプションは、下記のようになっています。


4.Open-jtalkを起動するシェルスクリプト「jtalk.sh」の作成をします。
(1)次のコマンドを実行します。

  $ sudo nano jtalk.sh

(2)「jtalk.sh」の内容は、次の図のようになります。


(3)次のコマンドを実行し「jtalk.sh」を実行可能なファイルにします。

  $ sudo chmod 755 jtalk.sh

5.次に、Open-JTtalkが正しく起動するか確認します。

  $ ./jtalk.sh こんにちは [Enter]

 男性の声が聞こえれば成功です。

6.女性の声(メイちゃん)に変更します。
(1)PCに MMDAgentのサイトから、「MMDAgent_Example-1.6.zip」をダウンロードします。

(2)解凍したファイルの中の「Voice」フォルダーにある「mei」フォルダーをWinSCP(最後に説明)を使って、 /home/piに転送します。

(3)次のコマンドを実行して/home/piにある「mei」フォルダーを /usr/share/hts-voice/ にコピーします。

  $ sudo cp -R mei /usr/share/hts-voice/

7.「jtalk.sh」の内容を「メイちゃん」用に変更します。

(1)  $ sudo nano jtalk.sh を実行し、

(2)jtalk.sh の内容で、
  htsvoice=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
  #htsvoice=/usr/share/hts-voice/mei/mei_happy.htsvoice
 の行頭の#をチェンジする。

  #htsvoice=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
  htsvoice=/usr/share/hts-voice/mei/mei_happy.htsvoice


(3)保存して、RaspberruPiを再起動します。

8.$ ./jtalk.sh こんにちは [Enter] と実行し女性の声(メイちゃん)が聞こえれば成功です。

9.参考までに/usr/share/hts-voice/の中身を確認しておきますと、次のフォルダーがあります。


 Ver1.05と内容が違っているのがわかると思います。最初に述べたようにhts_voiceのフォーマットが異なって いますので確認してください。

10.参考までに上記のフォルダーの中身は次の図のようになります。
(1)「nitech-jp-atr503-m001」フォルダーの中身


(2)「mei」フォルダーの中身




  WinSCPについて


WinSCPは、グラフィカルなFTP、FTPS、SFTPクライアントプログラムです。主な機能は、 ローカルコンピューターとリモートコンピュータ間で安全にファイルをコピーすることです。

WinSCPのサイト でダウンロードできます。