
動画:スマートサウンド分析エッジデバイスが模型モータ回転音を分析
こんにちは,HACARUS 東京R&Dセンター所属のエッジ・エバンジェリスト 田胡治之です.この連載では,半導体業界で長年知識や情報を得てきた私,田胡がこれまでと異なるAI業界に飛び込み,そこから感じる業界のニュースやトピックを独自の視点で紹介したいと思います.今回は,Silicon Labs社製 EFR32xG24 Dev Kit Board をエッジデバイスとして使い,模型モーター回転音の周波数分析にトライします.スマートサウンド分析エッジデバイスと呼びます.処理時間と電池寿命にフォーカスします.
1. 使用シーン
スマートサウンド分析エッジデバイスは,モータやロボットが発する音を周波数分析して更に正常範囲か異常かを検出し,IoTゲートウェイを介してクラウドに送ります.
デバイスはマイクを含んで小型(30.4mm x 51.0mm),コイン電池一個で動作し,配線工事不要です.既存設備のモーターやロボット等に,スマートサウンド分析エッジデバイスを貼り付けるイメージです(Figure 1).
マイクが拾った生のサウンドデータをクラウドに upload すると,データ転送速度16kB/s (サンプリング周波数8kHz,2バイト/サンプルの条件)が必要になります.これに対し,エッジデバイスでサウンドの周波数分析を行ってスペクトルデータを算出しクラウドに送れば,データ転送速度はわずか 320バイト/秒ですむ計算です.50倍の差があります.もちろん対象音の性質に依存し,音楽のような常時変動する音には使えませんが,モーター回転音のようなほぼ定常音であれば使えるケースもあると考えます.更に,スマートサウンド分析エッジデバイスが現在のスペクトルを正常音スペクトルと比較し,異常音発生時のみクラウドに通知すればデータ量は更に劇的に減り,クラウド処理の負担も下げられます.
Figure 1 スマートサウンド分析エッジデバイスの利用シーン
2. システム構成と本稿のスコープ
スマートサウンド分析エッジデバイスのシステム概要を Figure 2 に示します.測定一回あたりの処理期間(Figure 2 の Processing duration)とエッジデバイスが消費する積算電流値を実測します.積算電流値は電池容量と同じ単位なので電池寿命計算が容易です.サウンド分析部の積算電流値(IS)と Bluetooth 通信部の積算電流値(IBT)を独立して測定します.それらとユーザーが定める測定周期と合わせて電池寿命を見積ります.IoT ゲートウェイとの通信とクラウド処理は,本実験のスコープ外とします.
Figure 2 スマートサウンド分析エッジデバイスのシステム概要
正常音の学習時とテスト時の処理内容を Figure 3 に示します.本実験は,(1)「サウンドのキャプチャーと周波数分析」(Figure 3 の L1, T2)の処理期間と積算電流値測定と,(2) Bluetooh通信の積算電流値測定(T6)にフォーカスします.
Figure 3 エッジデバイスの処理
3. 使用したエッジデバイス
Silicon Labs社xG24-DK2601B EFR32xG24 Dev Kit [1](以下MCUボードとも呼ぶ)をエッジデバイスに使います.
MCUボード概略仕様は以下の通りです.
搭載MCUチップ:EFR32MG24B310F1536IM48 2.4GHzワイヤレスSoC [2]
32-bit ARM® Cortex®-M33 core with 最大動作周波数78 MHz,プログラムメモリ:1536 kB Flash、データメモリ:256 kB RAM、AI/ML ハードウエア・アクセラレーター,高度なセキュリティ(Secure Vault™).
Bluetooth最大送信出力+10 dBm、CR2032ホルダー搭載.CR2032コイン電池[13](容量225mAh)1個で動作します.External Battery Connector に外部電池を接続可能.例えば CR123A[14](容量1150mAh)を接続すれば,稼働時間をCR2032の約5倍に伸ばせる計算です.
搭載されているセンサー:
温度・相対湿度センサー(Si7021 RHT Sensor),慣性センサー(Intertial Sensor),ステレオマイクロフォン(Stereo microphones),圧力センサー(Pressure Sensor),周囲光センサー(Ambient light sensor),ホールセンサー(Hall-effect sensor),ユーザー LED とプッシュボタン(Figure4, 5)
MCUボード写真を Figure 4 に,搭載センサーのデモアプリ動画を[3],スクリーンショットを Figure 5 に示します.
左:Figure 4 EFR32xG24 Dev Kit 写真 右:Figure 5 搭載センサーのデモアプリ
4. 実験装置
Silicon Labs社xG24-DK2601B 開発キットのプログラム開発は,USB Micro-B コネクタからホストWindows PCに接続し,Windows PC にインストールされた Silicon Labs社Simplicity Studio [4](無償)を使って行うのが基本です.しかし本稿ではMCUボードの消費電流・消費電力を測定するため,同社製 BR4001A mother board を介して Windows PC に接続します.
音源として模型モーターを使い,電源との間に抵抗を挿入しモーター回転数を変化させます.模型モーターから数センチ離れたところにMCUボードをセットし,モーター音を拾います.(Figure 6)
Figure 6 実験装置
5. Audio Feature Generator
周波数分析の肝です.ボード上のマイクロフォンからの音をキャプチャし,周波数分析結果を出力する関数です [5].Audio Feature Library 内の処理ステップを Figure 7 に示します.最初にマイクロフォンから取得したサウンドにFFT(Fast Fourier Transform)処理を行い周波数スペクトラムを得ます.音の周波数[Hz]は音の高さに対応する物理量です.
ここで人の聴覚特性に近づける工夫をします.人間の聴覚には,周波数の低い音の周波数変化に対して敏感で,周波数の高い音の周波数変化に対しては鈍感であるという性質があります.これを模擬するため,FFT出力にメルフィルターバンク(Mel Filterbank)をかけます[7][8].これは Figure 7 右下に示すように,三角形の通過帯域を持つバンドパスフィルタ群で,低い周波数ほど通過帯域が狭く(三角形の底辺が短い),周波数が高くなるほど通過帯域が広くなる特性を持ちます.音声認識タスクでは,メルフィルターバンクが好成績が得られるため広く使われているようです.最後に振幅を対数圧縮し,Log-scaled Mel filter bank output が出力されます.メルスペクトラムとも呼ばれます.これは小さな音を大きくし,大きな音を小さくすることで音量ダイナミックレンジを広くするためと考えられます.
Silicon Labs は,Audio Feature Generator [5] と TensorFlow Lite for microcontrollers [6] を使った音声認識を行うデモプログラムを提供しています.例えば “Voice Control Light” [10]は,”ON” と ”OFF” の発語を認識しLEDを点滅させます.筆者も試しましたが良好に動きました.
メル尺度の身近な例として,ピアノ鍵盤の周波数[9]を Figure 8 に示します.隣り合う鍵盤の周波数の比率は1.509 で一定です.一方,周波数の差は一定ではなく,高い音ほど差が大きくなります.隣り合う鍵盤の周波数は等比級数になっており,人の耳には自然に聞こえる,ということでしょう.
左:Figure 7 Audio Feature Generator Flow 右:Figure 8 ピアノ鍵盤の周波数
6. 実験1 Audio Feature Generator
Audio Feature Generator のメルスペクトル出力を Windows PC のシリアル端末で受信し,グラフ描画したものが Figure 9 です.グラフ横軸がメルスペクトル成分,縦軸がスペクトラム強度です.Audio Feature Generator は連続動作していて,AFG Cycle 毎に出力を繰り返します.一回のAudio Feature Generator出力は32のスペクトル出力から構成されます.Figure 9 横軸はスペクトル出力の index値(0~31)で,100Hz から 4000Hz までの周波数成分に対応します.Figure 9は3回分の出力(AFG cycle)を含んでいます.縦軸はスペクトラム強度です.スペクトルを見ると,100Hz付近に最も強いモーター回転の基本音があり,高調波も含まれていることが読み取れます.
Figure 9 Audio Feature Generator のメルスペクトル出力
実験プログラムで Audio Feature Generator 関数を10回繰り返し呼んだ時の消費電流波形を, Figure 10 に示します.周波数スペクトルを平均化・正規化するため,10回程度の測定は必要と考えました.Audio Feature Generator 1回あたり 0.199s 秒かかり,10回の処理時間は 1.99s でした.時間軸を 10ms に速めた詳しい電流波形から求めた Audio Feature Generator 1回あたりの積算電流値は 0.294mA*s,Audio Feature Generator 繰り返し10回では 2.94mA*s です.これが IS (Figure 2) です.
Figure 10 Audio Feature Generator 関数を10回繰り返し呼んだ時の消費電流
7. 実験2 Bluetooth 通信
プログラム構造を簡単に説明します.組込みOSを使わない,いわゆる Bare metal 環境の C言語プログラム構造を,Figure 11 “Bluetoh SoC Empty program” structure に示します.”Bluetooth SoC Empty” というもっとも簡単なプログラムです.左上の main(void) では初期化(Line No. 2~3)後,システムプロセスとユーザープロセスを呼び,その後消費電力を下げるためスリープ状態に入れるループ(Line No. 4~8)を無限に繰り返します.イベントドリブンなプログラムです.ユーザープロセス(app_process_action() )では何もしません(つまり Empty ).実際のアプリプログラムでは,ここにスペクトル分析,振動測定,温度測定など,Bluetooth通信で送りたいものの測定プログラムが入ります.システムプロセスではタイマー割込み,外部割込みなどのイベントが定義されています.そのひとつに Bluetooth のアドバタイズ動作があります.これは MCUボード(BT用語でペリフェラル)が IoTゲートウェイ(BT用語でセントラル)に対して自分の存在を知らせて接続要求を行う発信動作です.アドバタイズ間隔(Advertise Interval)は,規格で 0.02s ~ 10.240s に定められています [11].例えばアドバタイズ間隔を 1s に設定するとタイマー割込みが 1s 毎に発生し Bluetooh stack event handler (Figure 11 中央)が呼ばれます.イベントメッセージ内容によって,(1) Bluetooth初期化とアドバタイズ開始,(2) 接続,(3)切断などから該当する一つの動作が選択実行されます.SoC Emptyプログラム動作確認のため,Silicon Labs ”EFR connect” [12] を使います.これはスマホのアプリで Bluetooth機器の検出と情報表示,接続,切断を行います.EFR connect は,Figure 2 IoT ゲートウェイの代わりです.EFR connect が “SoC Empty” と接続中のスクリーンショットを,Figure 11 右端に示します.Bluetooth 通信が正常に行われていることが確認できます.
Figure 11 ”Bluetooth SoC Empty” プログラムの構造と EFR connect 画面
次に Bluetooth 通信の積算電流値を測定します.アドバタイズ間隔を 1秒に設定した場合の消費電流を Figure 12 に示します.時間軸を 1.25ms に速めた詳しい電流波形から求めたアドバタイズ送信時の電流は幅約3.75ms,ピーク電流約15mA,平均電流 6.01mA です(Figure 12).アドバタイズ一回あたりの積算電流値は 0.00225mA*s です.これが IBT (Figure 2) です.アドバタイズをしていない期間の電流は約千分の一の約5uA に下がります.
Figure 12 Bluetooth 通信の消費電流(アドバタイズ間隔1秒に設定)
ここまででサウンド分析の積算電流値と Bluetooth 通信の積算電流値を測定できました.即ちサウンド分析一回(Audio Feature Generator 10回)の処理時間は1.99s,積算電流値は 2.94mA*s.Bluetooth通信アドバタイズ一回あたりの積算電流値は 0.00225mA*s です.サウンド分析の積算電流値が支配的です.これらと測定間隔,CR2032電池容量(225mAh)から電池寿命を見積ることができます(Figure 13).サウンド分析処理に1.99s かかるので,測定周期はそれより長くする必要があります.例えば測定周期1分では電池寿命は 162日,測定周期5分では電池寿命は691日(約1年11ヵ月)と見積れました.「コイン電池で1年以上動くスマートサウンド分析エッジデバイス」実現の見通しが得られた,と考えます.
Figure 13 スマートサウンド分析エッジデバイスの電池寿命見積り
8. まとめ
1.エッジデバイスでのサウンド取得,周波数分析,正常音/異常音の判別を目的に,スマートサウンド分析エッジデバイスを試作しました.Silion Labs社 EFR32xG24 Dev Kit を使い,マイクを含んで小型(30.4mm x 51.0mm),コイン電池一個で動作し,配線工事不要です.既存設備のモーターやロボット等に,スマートサウンド分析エッジデバイスを貼り付けて使うイメージです.クラウドへのデータ転送量の劇的削減とクラウドの処理負荷低減も実現できます.周波数分析には,音声認識で広く使われているメルスペクトラムを用いました.
2.サウンド分析の処理時間と積算電流値, Bluetooth 通信の積算電流値を測定しました.それらとユーザーが設定するサウンド測定周期から電池寿命を見積りました.測定周期を1分に設定した場合電池寿命は約162日,測定周期5分の場合約691日(1年11ヵ月)と見積もられました.コイン電池一個で1年以上稼働するスマートサウンド分析エッジデバイス実現の見通しが得られた,と考えます.
9. 参考文献
[1] xG24-DK2601B EFR32xG24 Dev Kit
https://www.silabs.com/development-tools/wireless/efr32xg24-dev-kit?tab=overview
[2] EFR32MG24B310F1536IM48
https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-socs/device.efr32mg24b310f1536im48?tab=specs
[3] Silicon Labs Thunderboard Sense 2 (SLTB004A) – App Demo | Symmetry Electronics
https://www.youtube.com/watch?v=doL8a6flXY4
Comment: It is a demo video for Thunderboard Sense 2, not for EFRxG24 Development Kit. The demo content, however, is almost the same between the two.
[4] Simplicity Studio Software
https://www.silabs.com/developers/simplicity-studio
[5] Audio Feature Generator
https://docs.silabs.com/gecko-platform/4.0/machine-learning/api/group-ml-audio-feature-generation
[6] TensorFlow Lite for Microcontrollers
https://docs.silabs.com/gecko-platform/latest/machine-learning/tensorflow/overview
[7] Understanding the Mel Spectrogram
https://medium.com/analytics-vidhya/understanding-the-mel-spectrogram-fca2afa2ce53
[8] Mel Filter Bank
https://siggigue.github.io/pyfilterbank/melbank.html
[9] Piano key frequencies
https://en.wikipedia.org/wiki/Piano_key_frequencies
[10] Sample Applications
https://docs.silabs.com/gecko-platform/4.0/machine-learning/tensorflow/sample-apps
[11] 『半導体業界の第一人者,AI業界を行く!』 Vol.15:Bluetooth マイコン触ってみました -Part2
https://hacarus.com/ja/ai-lab/20210928-bluetooth-microcomputer2/
[12] EFR Connect BLE Mobile App
https://www.silabs.com/developers/efr-connect-mobile-app
[13] CR2032 : Lithium Batteries
https://industrial.panasonic.com/ww/products/pt/lithium-batteries/models/CR2032
Nominal Capacity 225mAh, Diameter:20mm, Height 3.2mm
[14] CR123A : Lithium Batteries
https://industrial.panasonic.com/ww/products/pt/lithium-batteries/models/CR123A
Nominal Capacity 1550mAh, CR cylindrical(standard type), Diameter:17mm, Height:34.5mm