Skip to content

WakeUpWord With RaspberryPi

Norio Ikedo edited this page May 28, 2019 · 29 revisions

Raspberry Piのブラウザを利用してウェイク・アップ・ワードを作成する(I2C接続)

ウェイク・アップ・ワードを作成するには、検出精度をあげるため、codamaのボードを利用して音声を録音する必要があります。ここでは、codamaを取り付けたRaspberry Piを利用する方法を説明します。この時、codamaはRaspberry PiとI2C接続したマイクとして使用しています。

  1. Raspberry Pi上でWebブラウザを起動します。(Chromium)

chromium

  1. https://tools.codama.me/にアクセスして、画面の指示に従いウェイク・アップ・ワードを登録してください。
    途中にI2CかUSBを選ぶ項目があります。デフォルトではI2Cになっています。
    この選択は最終的なcodamaの利用方法をI2CでRaspberry Piと組み合わせて使うのか、それともUSB機器として使うのかのどちらかで決めるものです。I2Cで録音をしているのでI2Cというわけではありません。

choose I2C

  1. 同じウェイクワードをを4回録音し、ウェイクワードデータを作りましょう。作成が完了するとupdate.bin がダウンロードできます。
  2. codamaの真ん中あたりにある白色のジャンパーピンが付いていなかったら、取り付けて、codamaを再起動してください。
    既に白色のジャンパーピンが付いていれば、再起動をする必要はありません。
$ cd
$ cd codama/codama-doc/utils
$ ./codama_dfu_i2c reboot

(ジャンパーピンは画像を参照)

IMG_1006

白色のジャンパーピンについて
このジャンパーピンはcodama起動時に取り付けているかいないかで、起動するファームウェアをどちらにするか切り替えるための重要なものです。

  • 取り付けている -> ウェイクアップワードもなく、初期設定の状態を保持したファームウェアが起動します。もう一つのファームウェアを書き換える時もこのファームウェアを使います。
  • 取り付けていない -> ユーザーの設定を保持したファームウェアが起動します。ウェイクアップワードを使用することができ、登録したウェイクアップワードに反応するようになります。また細かいパラメーターも保持されます。           
  1. Raspberry Pi上でターミナルを起動し、load_i2c_gpio_driver.shファイルをviエディタ開きます。
    ターミナルで以下の内容を1行ずつ入力してください。
$ cd codama/vocalfusion-rpi-setup/resources/
$ vi load_i2c_gpio_driver.sh 

エディタでload_i2c_gpio_driver.shファイルを開いたら、下記コードで示すようにsudo insmod i2c-gpio-param.koの次の行にスリープコマンドsleep 3を追加します。
viエディタの使い方がわからない方はこちらを参照してください

cd /home/pi/codama/vocalfusion-rpi-setup/i2c-gpio-param
# Load the i2c bit banged driver
sudo insmod i2c-gpio-param.ko

sleep 3 #<----------------add 3sec sleep 

# Instantiate a driver at bus id=1 on same pins as hw i2c with 1sec timeout
sudo sh -c 'echo 1 2 3 5 100 0 0 0 > /sys/class/i2c-gpio/add_bus'
# Remove the default i2c-gpio instance
sudo sh -c 'echo 7 > /sys/class/i2c-gpio/remove_bus'
# Run Alsa at startup so that alsamixer configures
arecord -d 1 > /dev/null 2>&1
aplay dummy > /dev/null 2>&1

追加したら保存し、エディタを終了してください。

  1. 先ほどダウンロードしたupdate.binファイルを書き込みます。書き込みには codama_dfu_i2c コマンドを利用します。書き込みには数分かかります。(エラーと表示された場合は何度か試して下さい。)
$ cd codama/codama-doc/utils
$ ./codama_dfu_i2c write_upgrade {update.binファイルパス} 
Attempting to connect via I2C: connected
Sending file size: 0x80000 padded to 0x80000
Info: (writing to i2c. -1 of 3 bytes sent)
Info: Could not execute 1st DFU_CMD_WRITE_UPGRADE command with 0 byte
Info: Detach flash 
Info: (writing to i2c. -1 of 4 bytes sent)
Info: The device could not detach from the flash
Info: Attach flash 
Info: ...DFU_CMD_SET_UPGRADE_SIZE... 
Info: ...DFU_CMD_WRITE_UPGRADE... 
Written bytes: 0x80000
done

ファイルパスの例ですが、Raspberry Piの場合、特に設定していなければdownloadフォルダにupdate.binファイルはダウンロードされます。 特に設定していない場合は

$ cd codama/codama-doc/utils
$ ./codama_dfu_i2c write_upgrade /home/pi/Downloads/update.bin

と入力することで実行できます。

done 表示されたら書き込みが完了しています。

  1. 白色のジャンパーピンを外したら以下のコマンドを実行し、更新したファームウェアで起動するように設定してください。
$ ./codama_dfu_i2c reboot

IMG_1008

(注意) ジャンパーピンを外さないで実行すると、デフォルトの設定のままとなり、登録したトリガーワードが呼ばれません。必ず外してcodamaを使用して下さい

  1. 接続方法を切り替える(必要がある場合のみ) 録音方法とは別の方法で動作させる時は以下で示す手順に沿って変更してください。

以上で設定は終了です。早速動作確認をしてみましょう。

Clone this wiki locally