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)終了して保存してください。
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」キーを押して、設定完了です。
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/
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.保存して終了します。
1.次のコマンドを実行して、juliusが正常に動くか確認します。
$ julius -C ~/julius/julius-test.conf
2.<<<please speak>>>のあとに、マイクに向かって作成した辞書の言葉を話した結果が、
下の図です。
3.Ctrl+Cで終了します。
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.保存して終了します。
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」を起動しリモート操作を確認します。