Seeed Studio XIAO nRF52840 Senseでの音声認識
このwikiでは、Seeed Studio XIAO nRF52840 SenseでTensorFlow Liteを使用し、オンボードマイクを使って音声認識を実行する方法を説明します。
組み込みAIアプリケーションに関しては、「Seeed nrf52 mbed-enabled Boards Library」の使用を強く推奨します。
ソフトウェアセットアップ
まず、初期のハードウェアとソフトウェアのセットアップについて、"Getting Started with Seeed Studio XIAO nRF52840 (Sense)" wikiに従ってください。
それでは、残りのソフトウェアセットアップに進みましょう。
- ステップ1. tflite-micro-arduino-examples libraryをzipファイルとしてダウンロードします
- ステップ2. Arduino IDEを開き、
Sketch > Include Library > Add .ZIP Library...
に移動し、ダウンロードしたzipファイルを開きます
データの訓練とTensorFlow Liteモデルの生成
次に、Google Colabノートブックを使用してデータ訓練を実行し、TensorFlow Liteモデルを生成します。
- ステップ1. このPythonノートブックを開きます
デフォルトでは、**"yes", "no", "up", "down", "left", "right", "on", "off", "stop", "go", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "bed", "bird", "cat", "dog", "happy", "house", "marvin", "sheila", "tree", "wow"**の単語を認識できるこのデータセットが読み込まれます
- ステップ2. Configure Defaults列の下で、モデルに認識させたい単語に応じてWANTED_WORDSパラメータを変更します。**"yes", "no", "up", "down", "left", "right", "on", "off", "stop", "go", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "bed", "bird", "cat", "dog", "happy", "house", "marvin", "sheila", "tree", "wow"**から選択できます
注意: この例では、yes,no,up,downの単語が選択されています
- ステップ3.
Runtime > Run all
に移動して、すべてのコードセルを実行します
- ステップ4. ポップアップするエラーメッセージに対してRun anywayをクリックします
注意: このプロセスは完了まで約2時間かかります
- ステップ5. すべてのコードセルが実行されると、左隅のfilesタブに移動し、modelsフォルダの下に新しいmodel.ccファイルが生成されていることがわかります
注意: 上記のmodel.ccファイルが表示されない場合は、ページを更新してください。
- ステップ6. ファイルを右クリックし、DownloadをクリックしてファイルをPCにダウンロードします
推論
これで、ダウンロードしたTensorFlow Liteモデルファイル (model.cc) を使用して、Seeed Studio XIAO nRF52840 Senseのマイクを使って異なる単語を認識します。
- ステップ 1. tflite-micro-arduino-examples ライブラリのライブラリパスに移動し(通常は Documents > Arduino > libraries > tflite-micro-arduino-examples の下)、examples > micro_speech にアクセスして micro_features_model.cpp を開きます
- ステップ 2.
const unsigned char g_model[] DATA_ALIGN_ATTRIBUTE = {
の下の値を model.cc ファイルの新しい値に置き換えます
- ステップ 3. model.cc の値に従って g_model_len を変更します。ここでは 26720 を取得しました
const int g_model_len = 26720;
- ステップ 4. micro_speech フォルダ内の micro_features_micro_model_settings.cpp を開き、トレーニングプロセスで定義したすべての単語を追加します。ここでは yes,no,up,down を使用しました
#include "micro_features_micro_model_settings.h"
const char* kCategoryLabels[kCategoryCount] = {
"silence",
"unknown",
"yes",
"no",
"up",
"down",
};
- ステップ 5. micro_speech フォルダ内の micro_features_micro_model_settings.h を開き、定義されたカテゴリ数に応じて constexpr int kCategoryCount を変更します。ここでは 6 つのカテゴリがあります
constexpr int kCategoryCount = 6;
-
Step 6. micro_speech フォルダ内の micro_speech.ino を開き、コードを Seeed Studio XIAO nRF52840 Sense にアップロードします
-
Step 7. シリアルモニターウィンドウ を開き、先ほど定義した単語を声に出して言います。認識後、シリアルモニターに話した正しい単語が出力されるのを確認できます。
技術サポートと製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!弊社製品でのご体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しています。