ウェイクアップワードが作れるcodamaを購入しました

 

購入

タイトル通りですが、ウェイクアップワードを自分で作ることができる「codama」という商品を購入しました!

f:id:filot_nextd2:20211117122457j:plainf:id:filot_nextd2:20211117122454j:plain

 

こちらから購入できます

akizukidenshi.com

こんな感じ

f:id:filot_nextd2:20211117134337j:plain

箱には3つのパーツに分かれて入ってます

f:id:filot_nextd2:20211117135123j:plain


使ったもの

  • Raspberry pi 4B
  • codama
  • Raspberry pi スペーサー
  • イヤホン
  • mac(マイク代わり)

 

ラズパイのOSはbuster-arm64をいれています

問題ありませんでしたが32の方が良いかもしれません

 

早速組み立て

GitHubに初期設定のwikiがあり、公式ページリンクがあります

詳しく書いてくれているので戸惑うこともなくセットできます

 

取り付け方法はこちら

向きに気をつけて3つのパーツを差し込んでいきます

写真が掲載されてるので見ればわかる感じです

 

今回私はRaspberry pi 4Bを利用しましたが、熱くなるので
Raspberrypi用のスペーサー」があった方が良かったです

 

マニュアル通りにツールをダウンロードしてI2Cの設定をおこないます

codamaの認識を確認するために下のコマンドを実行しますがなかなか認識されなくて、一度シャットダウンしてラズパイ充電器のスイッチもOFFにして5秒くらい待ってからスイッチをON

起動してコマンドを打ったら認識されました

arecord -l

 

動作確認の録音では

arecord -c1 -fS16_LE -r16000 /tmp/test.wav

これだとエラーになってしまったのでこちらを使いました

arecord -D plughw:1,0 -f cd test.wav

がさがさした音が録音されたのでcdをつけました

問題なく動くことが確認できたので次へ進みます

 

ウェイクアップワードを作ってみる

セットアップページはこちら


方法は3通り

  1. PCとUSB接続するマイクとして使用する場合(オススメ)
  2. Raspberry PiとUSB接続するマイクとして使用する場合
  3. Raspberry PiとI2S接続するマイクとして使用する場合

1番を選びました

こちらも詳しく書いてくれているので、読んだ通りに進めていきます

白いジャンパーピンは小さいので無くさないように注意です!

 

説明にある通りここにChromeでアクセスしてウェイクアップワードの登録をおこないます

「こだま!」と声をかけたかったのですが、短すぎて登録できませんでした

「やぁ、こだま!」とすることで登録できました

 

イベントを取得してみる

pythonを使ってウェイクアップワードのイベントを取得してみます
ソースを消してしまったか上書きしてしまったようなので要点のみです、、

pythonは3.7.3を使っています

 

「ウェイクアップワード動作確認」の説明にある通り

codamaはウェイク・アップ・ワードの検出が行われると、GPIO27がHIGHになります

ということで

import RPi.GPIO as GPIO

をします

 

CODAMA_TRIGGERD_GPIO=27
GPIO.setmode(GPIO.BCM)
GPIO.setup(CODAMA_TRIGGERD_GPIO, GPIO.IN)
GPIO.add_event_detect(CODAMA_TRIGGERD_GPIO, GPIO.RISING, callback=detected)

これで立ち上がりを検出できます

 

コールバッグメソッドを用意してプリントされたらOK

def detected(value):
    print ("detected!")

 

(確かflaskを使ってサンプル画面表示をさせて確認をしたはず。。

 

声をかけると赤くライトが光るので反応してるのがわかりやすいです

f:id:filot_nextd2:20211118180727j:plain f:id:filot_nextd2:20211118180722j:plain

 

最後に

  • wikiページにも記載があり、公式ページがとても役に立ちます

 

  • 作業を中断して時間が経った後にウェイクアップワードで声をかけても全然反応しないことがありました
    動作確認をしてもエラーがでており、認識できていない様子でした
    Rebootではなく、再起動することで解消されました
    この時ラズパイの電源まで落としました
    こちらの方と同じ現象です

 

  • 私以外に部長がウェイクアップワードで声をかけましたが無反応でした
    登録した人の声じゃないと反応してくれないのかどうかは調べてないのですが、ダメなのかも?です
    私の声はちょっとワードを言えばすぐ拾ってくれて使いやすかったです

 

  • ドコモAIエージェントAPIは現在利用できなくなってるようです
    AgentCraft少しあいさつをするパターンを触ってみましたが簡単にできたので何かに使ってみたいですね

 

とりあえず、登録した私の声であればすぐ拾ってくれるのでSpeechToTextと組み合わせて何か作りたいです