最近はユーザに付加価値を提供するために製品のスマート化が進んでいます。 スマート・オブジェクトは、その使用方法を最適化するために環境を認識できる必要があります。 AIは、加速度センサやマイクロフォンなどの各種センサからのデータを解読して、人間にとって意味のあるデータにすることができます。 例えば、ユーザ環境に関する機器の動作を最適化できるように、周囲環境(屋内、屋外、車内)を識別する方法をニューラル・ネットワークに学習させました。 このAIモデルをSTM32Cube.AIで最適化した後、超低消費電力マイクロコントローラ上で実行すれば、どこにでもインテリジェンスを組み込むことができます。 このアプローチは、AIモデルを新たなデータで再学習させることで他の多くのユース・ケースや環境に容易に適用できます。
アプローチ
音響環境分類(ASC)の目標は、実際の環境を1つのデジタル・マイクロフォンでキャプチャした音響特性によって特徴付けられる3つの事前定義クラス(屋内、屋外、車内)のいずれかに分類することです。 このデモは、Bluetooth Low Energyを介して接続するスマートフォン・アプリが付属する小型ボード「Sensor Tile」上で動作します。
このサンプルを構築するために、FP-AI-SENSING1ファンクション・パックを使用し、
STEVAL-STLKT01V1ボード上で実行しました。 このASC構成は、オンボードMEMSマイクを使用して16kHz(16bit、1チャネル)のサンプリング・レートで音声をキャプチャします。 1ミリ秒間隔でDMA割込みと共に最新の16 PCM音声サンプルを受信します。 その後、これらのサンプルを50%が重複した1024サンプルからなるスライディング・ウィンドウで累積します。 特徴抽出のために、バッファを512サンプル(つまり32ms)間隔でASC前処理に入力します。 ASC前処理で音響特徴を抽出してログメル(30 x 32)スペクトログラムを生成します。
このステップは、計算効率とメモリ管理を最適化するために2つのルーチンに分かれています。
- 最初のパートでは、時間領域の入力信号から32のスペクトログラム列の1つを、FFTとフィルターバンクアプリケーション(30メルバンド)を使ってメルスケールに変換する。
- 2番目のパートでは、32列すべてが計算されたとき(つまり1024ミリ秒後)、メルスケーリングされたスペクトログラムに対数スケーリングが適用され、ASC畳み込みニューラルネットワークの入力特徴量が作成される。
(30 x 32)ログメル・スペクトログラムを1024ms間隔でASC畳込みニューラル・ネットワーク入力に送ると、出力としてラベル(屋内、屋外、車内)を分類できます。
センサ
データ
データフォーマット22時間53分の音声サンプル
結果
モデルST独自の量子化畳込みニューラル・ネットワーク
入力サイズ:30x32
複雑度 517 K MACC
メモリフットプリント: ウエイト用
31 KBフラッシュ
アクティベーション用
18 KBRAM
STM32L476 (Low Power) @ 80 MHzでの性能 使用例:1 分類/秒
プリ/ポスト処理:3.7 MHz
NN 処理:6 MHz
消費電力 (1.8 V)
混同行列