UKey's Labo

Raspberry Pi – snowboyを試す

動作環境

環境 バージョン
Raspberry Pi Raspberry Pi 3 Model B Plus Rev 1.3
OS Raspbian GNU/Linux 9.6 (stretch)
snowboy Version: 1.3.0 (2/19/2018)

※ USBマイク、3.5mmジャック接続のスピーカーが必要です。 以下、USBマイクと3.5mmジャック接続のスピーカーを使用しての設定になります。

設定ファイルの作成

USBマイクのカード番号、デバイス番号を調べる。

arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

3行目の、card ~:device ~:の番号を確認。

3.5mmジャックのカード番号、デバイス番号を調べる。

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

[bcm2835 ALSA]のほうの、card ~:device ~:の番号を確認。

[bcm2835 IEC958/HDMI]は、HDMIのほうなので注意。

.asoundrcファイルの作成

ログイン中のユーザのホームディレクトリに.asoundrcファイルを作成します。

ここではvimを使用します。

vim .asoundrc

以下の内容を記述します。

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:1,0" #← マイクの[カード番号,デバイス番号]で設定する
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:0,0" #← スピーカーの[カード番号,デバイス番号]で設定する
  }
}

snowboyのダウンロード

ライブラリをインストール

sudo apt-get install python-pyaudio python-pip libatlas-base-dev portaudio19-dev

pippyaudioをインストール

pip install pyaudio

snowboyのダウンロードと解凍

# ダウンロード
wget https://s3-us-west-2.amazonaws.com/snowboy/snowboy-releases/rpi-arm-raspbian-8.0-1.1.1.tar.bz2

# 解凍
tar -xvf rpi-arm-raspbian-8.0-1.1.1.tar.bz2

demoを実行

cd rpi-arm-raspbian-8.0-1.1.1/

demo.pyを実行して、引数に音声モデルファイルを指定します。

python demo.py resources/snowboy.umdl

「snow boy」とマイクに話かけてみる。

認識した場合は、INFO:snowboy:Keyword 1 detected at time:~とコマンドラインに出力され、サウンドが鳴ります。

ちなみに、僕の発音が悪いのか認識してくれないので、作成した音声モデルファイルを使用しました。

認識した場合は、スピーカーから音が鳴ります。

音声モデルファイルの作成については、以下を参照してください。

参考サイト