AIスタックチャンのウェイクワード登録/検出処理 (WakeWord.cpp) をSPRESENSEマイコンに移植しました。
ハードウェア
SPRESENSE拡張ボードのMIC Aチャンネルにエレクトレットコンデンサーマイクを接続。負荷抵抗 2.2kΩでバイアスします。詳細は下記ドキュメントを参照してください。

ソフトウェア
PC上での検証用のVisualStudioのプロジェクトと、SPRESENSE用のPlatformIOのプロジェクトを公開しました。ソースファイルは共通で条件コンパイルされるようになってます。FFTの計算には、PCではKiss FFTライブラリを、SPRESENSEではCMSIS-DSPライブラリを使用します。また、ESP32固有のライブラリである esp_ns (ノイズ抑制) や esp_vad (発話検出) は、簡易的な代替のものを自作しました。
PC上での検証
WindowsのVisualStudioでアルゴリズムの検証ができます。 WakeWord/pc_debug/WakeWord.slnx がソリューションファイルです。検証には WakeWord/pc_debug/WakeWord/ にあるWAVファイル test1.wav ~ test3.wav を使います。
SPRESENSEでの検証(1) WAVファイルを使用
WakeWord/ がPlatformIOのプロジェクトフォルダです。ビルドの設定は env:wave_file_debug か env:mic かを選択できます。env:wave_file_debug はWAVファイルを使った検証用です。PC上での検証と同等のことをSPRESENSE上で行います。WAVファイル test1.wav ~ test3.wav をmicroSDカードの直下にコピーします。また、microSDカードにはDSPコーデックも入れておきます。
SPRESENSE拡張ボードのスロットにmicroSDカードを挿し、USBシリアルポートをPCのターミナルソフトで開いて検証を行います。
SPRESENSEでの検証(2) マイクを使用
env:mic がマイクを使った検証用です。DSPコーデックの入ったmicroSDカードをSPRESENSE拡張ボードのスロットに挿し、USBシリアルポートをPCのターミナルソフトで開いて検証を行います。