購入
タイトル通りですが、ウェイクアップワードを自分で作ることができる「codama」という商品を購入しました!
こちらから購入できます
こんな感じ
箱には3つのパーツに分かれて入ってます
使ったもの
- 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通り
- PCとUSB接続するマイクとして使用する場合(オススメ)
- Raspberry PiとUSB接続するマイクとして使用する場合
- 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を使ってサンプル画面表示をさせて確認をしたはず。。
声をかけると赤くライトが光るので反応してるのがわかりやすいです
最後に
- wikiページにも記載があり、公式ページがとても役に立ちます
- 作業を中断して時間が経った後にウェイクアップワードで声をかけても全然反応しないことがありました
動作確認をしてもエラーがでており、認識できていない様子でした
Rebootではなく、再起動することで解消されました
この時ラズパイの電源まで落としました
こちらの方と同じ現象です
-
私以外に部長がウェイクアップワードで声をかけましたが無反応でした
登録した人の声じゃないと反応してくれないのかどうかは調べてないのですが、ダメなのかも?です
私の声はちょっとワードを言えばすぐ拾ってくれて使いやすかったです
- ドコモAIエージェントAPIは現在利用できなくなってるようです
AgentCraft少しあいさつをするパターンを触ってみましたが簡単にできたので何かに使ってみたいですね
とりあえず、登録した私の声であればすぐ拾ってくれるのでSpeechToTextと組み合わせて何か作りたいです