Raspberry PiB+ & Pi2


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

Juliusの設定



 juliusがエラーを起こさないで実行されるためには、オーディオデバイスが確実に設定されて いなければなりません。
次の手順でJuliusの設定をします。
 ・マイクの接続設定。
 ・スピーカーの接続設定。
 ・音声デバイスの設定。
 ・Juliusのインストール。
 ・Julius用の単語辞書を作成。
 ・Juliusの起動。
 ・VNCサーバーの導入。



  マイクの設定


マイクの設定をします。

1.USBにマイクを接続し、「Raspberry Pi」の電源を入れて、マイクの接続確認をします。
  デスクトップの端末アプリ「LXTerminal」を起動し、次のコマンドを入力します。

  $ sudo cat /proc/asound/modules

2.次のように表示されます。

(1)「1 snd_usb_audio」 と表示されていればマイクが認識されています。

(2)先頭の数字の0、1は優先順位を表しています。スピーカーがコンポジット端子(内臓サウンド カードを使用)を使用しているので、優先順位は変更しません。

3.もし優先順位を変更する場合は、次のコマンドを入力し、「alsa-base.conf」の内容を変更します。

  $ sudo nano /etc/modprobe.d/alsa-base.conf

(1)ファイルの中の「options snd-usb-audio index=-2」の前に#を挿入し、コメントアウトして、
  その下に、「options snd-usb-audio index=0」を追加します。

  ・・・省略・・・
  # option snd-usb-audio index=-2
  option snd-usb-audio index=0
  ・・・省略・・・


(2)設定を変更した場合は、「sudo reboot」と入力し、Raspberry Piを再起動してください。

(3)再びコマンドラインで次のように実行し、優先順位を確認します。

  $ sudo cat /proc/asound/modules

(4)次のようになっていればOKです.

  0 snd_usb_audio
  1 snd_bcm2835


4.マイクの感度の設定をします。
(1)次のようにコマンドを入力します。

  $ amixer sset Mic 50 -c 1

(2)50は入力の感度を表します。0~62の範囲です。56で90%です。

(3)最後の数字の1は、上記の優先順位を表しています。優先順位を変更していないので「1 snd_usb_audio」 となっていますので、「-c 1」とします。




  音声デバイスの確認と設定


音声デバイスの確認と設定を行います。

1.次のコマンドを入力し、マイクのオーディオカード番号を確認します。

  $ arecord -l

2.次のように表示されます。
 ここでは、カード番号とデバイス番号を確認します。この場合、マイクのカード番号は1、 デバイス番号は0です。

3.次のコマンドを入力し、スピーカーのオーディオカード番号を確認します。

  $ aplay -l

4.次のように表示されます。

  スピーカーのカード番号は0、デバイス番号は0です。

5.環境変数をセットします。
(1)juliusが参照する環境変数「AUDIODEV」を使ってjuliusが利用するサウンドカードを指定します。

(2)上記で確認したように、マイクのサウンドカードのカード番号は1番でした。

(3)起動する度に設定しなくて済むように、「/etc/profile」ファイルの最後の行に、
  「export AUDIODEV=/dev/dsp1」を追加します。

(4)次のコマンドを実行して編集します。

  $ sudo nano /etc/profile

(5)次の図のようになります。

  ※マイクのサウンドカードのカード番号が1の場合は、「dsp1」と入力し、カード番号が0の時は、 「dsp」と入力します。

(6)これで、起動する度ごとに設定しなくても済みます。

(7)終了して保存してください。




  snd-pcm-ossモジュールの組込


snd-pcm-ossモジュールを組み込みます。

1.snd-pcm-ossモジュールは、ALSAのOssエミュレーションからのOSSオーディオデバイスの
  /dev/dspと /dev/audioをエミュレートするカーネルモジュールです。

2.これも起動ごとに設定しなくて済むように、起動時に自動的にモジュールが組み込まれるようにします。

3.Raspberri Piの起動時に自動的に「snd-pcm-oss」モジュールが組み込まれるように次のコマンドを 実行します。

  $ sudo sh -c "echo snd-pcm-oss >> /etc/modules"

4.次のコマンドを実行して確認してください。

  $ sudo nano /etc/modules

(1)次の画面のようになっていればOKです。

5.設定変更したので、Raspberry Piを再起動してください。





  設定の確認


設定が終了したので、確認をします。

1.次のコマンドを実行して、マイクに向かって適当に話し録音します。

  $ arecord -D plughw:1,0 -d 10 -f cd test.wav

(1)「plughw:1,0」の数字は、前に確認したマイクのカード番号とデバイス番号です。

(2)「録音中です」と表示されるので、マイクに向かって適当に話してください。

(3)終了は、「Ctrl+C」です。

2.次のコマンドを実行して、録音したファイル「test.wav」をスピーカーで聞きます。

  $ aplay -D hw:0,0 test.wav

(1)「hw:0,0」は、「plughw:0,0」でも構いません。数字は、前に確認したスピーカのカード番号と デバイス番号です。

(2)話した音声が聞こえればOKです。

3.話した音声が聞こえない場合
 (1)接続してあるディスプレイがHDMIを使用している場合には、次のコマンドを実行して確認をしてください。

  $ sudo nano /boot/config.txt

(2)ファイルの中で、「#hdmi_driver=2」とコメントアウトされている場合には、
  デフォルト(DVIモード:hdmi_driver=1)になっており、HDMIケーブルにオーディオが含まれません。

(3)「hdmi_driver=2」の場合は、HDMIケーブルにオーディオが含まれます。

(4)Raspberri Piの音声出力は、HDMIケーブルからの出力と、コンポジット端子からの出力の2系統があります。
  デフォルトでは、自動判別で再生されるようになっていますが、次のように強制的に変更できます。
  *コンポジット端子からの出力にする場合は、

   $ sudo amixer cset numid=3 1と入力します。

  *HDMI端子から出力する場合は、

   $ sudo amixer cset numid=3 2と入力します。

4.次のコマンドを実行して、スピーカー及びマイクの音量のレベルを調整します。

  $ alsamixer

(1)次の音量設定画面(スピーカーの音量)が表示されます。
 *この画面だと「再生」と表示されていますので、スピーカーの音量調節ができます。
 *「再生」と表示されていない場合は、「F3」キーを押します。
 *上下キー「↑、↓」を押せば音量調整ができます。

(2)次に「F4」キーを押して、マイクの音量調節をします。画面は次のように表示されます。


(3)「F6」キーを押すとサウンドカードの選択が表示されますので、「1 USB PnP Audio Device」を選択し 「Enter」きーを押します。


(4)次の画面が表示されて、カーソルキーでマイクの音量調節ができます。


(5)最後に「Esc」キーを押して、設定完了です。





  juliusの設定


juliusのダウンロード

1.次のコマンドでjuliusをインストールします。

  $ wget -O julius-4.3.1.tar.gz 'http://sourceforge.jp/frs/redir.php?m=osdn& f=%2Fjulius%2F60273%2Fjulius-4.3.1.tar.gz'

 ※ -Oはオーの大文字

2.juliusのディクテーションキットをダウンロードします。

   $ wget -O dictation-kit-v4.3.1-linux.tgz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fjulius%2F60416%2 Fdictation-kit-v4.3.1-linux.tgz'


3.ダウンロードしたjulius-4.3.1.tar.gz を解凍して、できたディレクトリーに移動してビルドし、インストールします。

  $ tar zxvf julius-4.3.1.tar.gz

  $ cd julius-4.3.1/

  $ ./configure

  $ make

  $ sudo make install


 ※数10分かります。

4.ディクテーションキットを解凍します。

  $ cd ~

  $ tar zxvf dictation-kit-v4.3.1-linux.tgz


5.juliusの設定ファイルのディレクトリを「dictation-kit-v4.3.1-linux」にしても良いのですが、
 ディレクトリ名が長いので、「julius」ディレクトリを作って、そこに設定ファイル、辞書ファイル等をを入れます。
(1) 次のコマンドを実行して「julius」ディレクトリを作ります。

  $ mkdir julius

6.必要なファイルを上記の「julius」ディレクトリにコピーします。

  $ cd dictation-kit-v4.3.1-linux/

  $ sudo cp model/lang_m/bccwj.60k.htkdic ~/julius/

  $ sudo cp model/phone_m/jnas-tri-3k16-gid.binhmm ~/julius/

  $ sudo cp model/phone_m/logicalTri ~/julius/


以上でjuliusのインストールを終了します。



  単語辞書を作成


キャタピラの操作に使用する単語辞書を作成。

1.juliusの反応を早くするために、自分用の単語辞書を作成します。

2.次のコマンドを実行して、自分用の単語辞書「word.dic.utf8」ファイルを作成します。

  $ cd ~/julius   $ sudo nano word.dic.utf8

3.単語辞書「word.dic.utf8」ファイルの内容は次の図のようになります。
 ※作成する際に、
(1)前と[前進]とm a eの間はTabキーを押します。
(2)m a eは、文字間に半角スペースを入れます。
(3)「ん」は、ナ行と区別するために大文字のNを使用します。
(4)「silB」、「silE」、「sp」は、無音を認識するためのものです。
(5)juliusは、行の右側に記されたローマ字で言葉を認識し、[]内の言葉を返します。

4.単語辞書をEUC-JP形式に変換します。
 juliusの単語辞書はEUC-JP形式なので、上記単語辞書「word.dic.utf8」をEUC-JP形式に変換します。
 次のコマンドを実行します。

  $ iconv -f utf8 -t eucjp word.dic.utf8 > word.dic.eucjp  ディレクトリは、 ~/juliusのままです

5.作成した辞書をjuliusに読み込ませるために、設定ファイルを作成します。
(1)テスト用の設定ファイル「julius-test.conf」を作成し、juliusが起動するか確認します。
  次のコマンドを実行して、下記の内容を打ち込みます。

  $ cd ~/julius
  $ nano julius-test.conf


(2)julius-test.confの内容は次のようにします。

						
-w /home/pi/julius/word.list.eucjp
-v /home/pi/julius/bccwj.60k.htkdic
-h /home/pi/julius/jnas-tri-3k16-gid.binhmm
-hlist /home/pi/julius/logicalTri
-n 5
-output 1
-input mic
-input oss
-rejectshort 800
-charconv euc-jp utf8
-lv 1500
						

 (3)次の図のようになります。


6.保存して終了します。




  辞書を使ってjuliusを起動


上記で作成した辞書を使って、juliusを起動します。

1.次のコマンドを実行して、juliusが正常に動くか確認します。

  $ julius -C ~/julius/julius-test.conf

2.<<<please speak>>>のあとに、マイクに向かって作成した辞書の言葉を話した結果が、 下の図です。

3.Ctrl+Cで終了します。




  本番用の設定ファイルを作成


本番用の設定ファイル「julius.conf」を作成します。

1.次のコマンドを実行して、下記の内容を打ち込みます。

  $ cd ~/julius
  $ nano julius.conf


2.内容は、テスト用の「julius-test.conf」に、「-module」を追加するだけです。

						
-w /home/pi/julius/word.list.eucjp
-v /home/pi/julius/bccwj.60k.htkdic
-h /home/pi/julius/jnas-tri-3k16-gid.binhmm
-hlist /home/pi/julius/logicalTri
-n 5
-output 1
-input mic
-input oss
-module
-rejectshort 800
-charconv euc-jp utf8
-lv 1500
						

3.保存して終了します。

以上でjuliusの設定を終了します。



  VNCの導入

RaspberryPi をPCでリモート操作するために、「TightVNC」をインストールします。

1.次のコマンドを実行します。

  $ sudo apt-get install tightvncserver

2.インストール後、次のコマンドでTightVNCを起動します。

  $ tightvncserver

3.起動後、パスワードを聞かれるので、入力します。(後で使うので記録しておく)
 再度聞かれるので、もう一度パスワードを入力します。

4.続けて、view-only password (y/n)を入力するか聞かれますので、「n」を入力する。

5.このとき、「New 'x' desktop is ~ 1」というメッセージの最後の数字を記録しておく。

6.PCに「VNC-Viewer」をインストールします。
 realvnc.comのサイトからWindows版で64bitの zipファイルをダウンロードします。

7.VNC-Viewer-5.3.2-Windows-64bit.zip を解凍し、VNC-Viewer-5.3.2-Windows-64bit.exeを起動して インストールします。

8.続いて、PC から「VNC-Viewer」を使ってRaspberryPiのデスクトップにアクセスします。
(1)RaspberryPi は起動しているものとします。

(2)RaspberryPi のIPアドレスは固定していませんので、次のコマンドを実行してIPアドレスを 確認してください。

  $ ifconfig

(3)PCで「VNC-Viewer」を起動します。次の画面が表示されます。


(4)VNC Serverの項目に次のようにRaspberryPi のIPアドレスと上記5番の数字(この場合は1)を 入力します。
  例:192.168.0.3:1

(5)「Connect」をクリックします。

(6)次の画面が表示されますので、「Continue」をクリックします。


(7)パスワードの入力画面が表示されますので、上記で入力したパスワードを入力します。


(8)「OK」ボタンをクリックします。

(9)PCの画面にRaspberryPiのデスクトップ画面が表示されればOKです。
  その画面でRaspberryPi をリモート操作できます。

9.「TightVNC」の自動起動を設定します。
 RaspberryPi をいつでもPCでリモート操作できるように、RaspberryPiに「TightVNC」の自動起動を 設定します。
(1)LXTerminalから次のコマンドを実行します。

  $ wget http://www.penguintutor.com/otherfiles/tightvncserver-init.txt
  $ sudo mv tightvncserver-init.txt /etc/init.d/tightvncserver
  $ sudo chmod 755 /etc/init.d/tightvncserver
  $ sudo update-rc.d tightvncserver defaults


(2)実行後、$ sudo reboot で再起動します。

(3)RaspberryPi を再起動後、PCで「VNC-Viewer」を起動しリモート操作を確認します。