【K210】マイク搭載版M5StickV,Sipeed Maixシリーズで音声認識をする
AIエッジ端末であるM5StickVのマイク搭載版が2020/9から発売されたので、音声認識が可能になりました。 今回はスマートスピーカーでおなじみのアレクサ、OK,Google、ねぇクローバーといった短い言葉を認識する方法を紹介します。
※ ファームウェアの書き換え作業が必要です。
記事で使用した環境
- マイク搭載版のM5StickV(Switch-Science)(音声認識なのでマイクが使えない古いM5StickVは使用できません。)
※ maixシリーズ用のカスタムファームウェアを自分でビルドしたうえで、boot.pyのGPIOやボタンの動きを変えればSipeed MaixM1Dock, Maixduino, MaixBitでも動作します。
- MaixPyIDE v0.2.5
- MaixPy 0.6.2(カスタムファームウェア)
カスタムファームウェアのビルド
今回はSpeech Recognizerというmoduleが必要なため、SipeedやM5Stackからリリースされているファームウェアでは動作しません。(Importエラーが出ます。)
GitHubでM5StickV版を公開していますが、自分でビルドする方法もあります。下記の記事にビルド方法が書いてあるので見てください。
M5StickVのファームウェアビルド手順menuconfigの設定箇所
「Top」→「Components configuration」→「Micropython configurations」→「Modules configurations」を開いて下の方にある「Enable Speech Recognizer」をONにする必要があります。
ソースとカスタムファームウェア
GitHubに公開しています。firmwareフォルダにあるbinをkflash_guiで書き込んでboot.pyをSDカードのルートにコピーします。
動かし方
SDカードをセットして起動します。
下記の条件で登録する単語を3つ用意して下さい。
- 1秒以上
- 間を開けない
例はスマートスピーカーのウェイクワードです。
- アレクサ
- OK,Google
- ねぇクローバー
初回起動
まずは音声データを作成します。「Please Speak 1」と表示されたら1つ目のワードをしゃべります。「Please Speak 2」と表示されたら2つ目、「Please Speak 3」と表示されたら3つ目をしゃべります。それぞれ拡張子がsrというデータがSDカードに登録されます。
登録→認識の様子は下記のTweetを見てください。
2回目以降の起動
SDカードにデータがある状態で起動すると、そのまま認識モードに入ります。データを録音しなおしたい場合はボタンAを押すと録音モードになります。
参考リンク
Sipeed社が公開しているリポジトリのisolated_word.pyを参考にしました。
おわりに
これで好きな単語を登録することができます。認識率が悪いなとおもったり、単語を増やしたい場合はソースの改変で対応できるのでやってみてください。(単語登録数が多いと手間だと思うので初期は3つにしてあります。)
M5StickVの購入方法は下記のリンクを参照してください。
M5Stack、M5StickC、M5StickV、M5Atom、M5Paper、M5CoreInkなどM5Stack製品の買い方