Jasper: RaspberryPiでSiriライクなアプリ

jasper

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経由のスピーカーからしゃべるようになった。無事終了。

コメントを残す

メールアドレスが公開されることはありません。