【K210】マイク搭載版M5StickV,Sipeed Maixシリーズで音声認識をする

 AIエッジ端末であるM5StickVのマイク搭載版が2020/9から発売されたので、音声認識が可能になりました。 今回はスマートスピーカーでおなじみのアレクサ、OK,Google、ねぇクローバーといった短い言葉を認識する方法を紹介します。

 ※ ファームウェアの書き換え作業が必要です。

記事で使用した環境

※ 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秒以上
  • 間を開けない

例はスマートスピーカーのウェイクワードです。

  1. アレクサ
  2. OK,Google
  3. ねぇクローバー

初回起動

 まずは音声データを作成します。「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製品の買い方

コメントを残す

メールアドレスが公開されることはありません。