iPhoneのSiriのようなサービスがないか調べていたら、RaspberryPiでボイスコマンドのオープンソースプロジェクトJasperを見つけたのでインストールしてみた。以下はその作業メモ。
- 用意したもの
- Raspberry Pi Model B+
- Micro SD カード 16GB: ELECOM, MF-SRSD16GC10RA
- 無線LANアダプター:I・Oデータ, WN-G150UMK
- USBオーディオ変換アダプタ:Planex Comm, PL-US35AP
- マイク:メーカー不詳(アナログ出力)
- スピーカー:メーカー不詳
- 作業手順
- JasperウェブサイトのSoftware Install Guide Method 1: Quick startに従う。非公式のModel B+用イメージをダウンロード。展開。展開するとjasper_b+.imgファイルができる。
- SDFormatterでSDカードを初期化
- Win32DiskImagerを使いイメージファイルをMicro SDカードに焼く。
- Raspberry Pi B+にMicro SDカード、キーボード、ディスプレー(HDMI接続)、USB変換アダプター、スピーカー、マイク、イーサーケーブル、電源をさす。
- Raspberry Piが起動する。ユーザー名はpi、パスワードはraspberryになっている。
- JasperウェブサイトのInstall Jasperを実行する。
- git clone https://github.com/jasperproject/jasper-client.git jasper
- sudo pip install –upgrade setuptools
- sudo pip install -r jasper/client/requirements.txt
- chmod +x jasper/jasper.py
- JasperウェブサイトのConfiguring Jasperを実行する。
- cd ~/jasper/client
- python populate.py
- いろいろ聞かれるが電話番号、mailやfacebookなどの情報は入れずに進んだ。音声認識エンジンは標準のPocketSphinx、音声合成はespeak。いろいろなエンジンを使えるので後て試すと面白いと思う。
- 実行方法:詳細はJasperウェブサイトのUsageを参照
- /home/pi/jasper/jasper.py
- 追加の設定
- /etc/modprobe.d/alsa-base.confのsound-usb-audioの行を以下のように変更
option snd-usb-audio index=0 - alasamixerコマンドでPCM, Caputreのレベルを51に設定し、以下のコマンドで保存。音がならないと思っていたらPCMのレベルが0だった。レベルは好みに合わせて変更。
alsactl store - USB変換アダプタから音がなるように設定したが、Jasperを起動するとJasperだけHDMI接続しているディスプレーから音を出す。Jasper起動時に–debugオプションを付けたところ、/home/pi/jasper/client/tts.pyでaplay -D hw:1,0 が原因と判断。以下のように変更した。
- 変更前:cmd =[‘aplay’, ‘-D’, ‘hw:1,0’, str(filename)]
- 変更後:cmd =[‘aplay’, ‘-D’, ‘plughw:0,0’, str(filename)]
- su rebootコマンドで再起動したところ、JasperがUSB経由のスピーカーからしゃべるようになった。無事終了。
- /etc/modprobe.d/alsa-base.confのsound-usb-audioの行を以下のように変更
コメント