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