How eembc/audiomark works
AudioMark is an embedded audio keyword-spotting benchmark. Its documented workflow takes two microphone signals through beamforming/direction finding, echo cancellation and noise reduction, MFCC feature extraction, and DS-CNN keyword classification. The benchmark coordinator and individual DSP implementations are named in the build excerpt, but their source bodies were not sampled; subsystem links follow the documented workflow. The ARM model and Speex echo-canceller source are present in the tree. Grouping distinguishes the audio pipeline, DSP internals, inference, and platform port. Some documented implementation paths are absent from the supplied tree, so they are not represented as source nodes.
Main entry points: ee_audiomark.c Pipeline coordinator · ee_kws.c Keyword spotting · ee_aec_f32.c Echo cancellation · ee_anr_f32.c Noise reduction
Components 13
Audio pipeline
- Pipeline coordinator
src/ee_audiomark.c - Beamforming + DOA
src/ee_abf_f32.c - Echo cancellation
src/ee_aec_f32.c - Noise reduction
src/ee_anr_f32.c - MFCC features
src/ee_mfcc_f32.c
DSP internals
- Speex MDF
lib/speexdsp/libspeexdsp/mdf.c - Speex preprocessing
lib/speexdsp/libspeexdsp/preprocess.c
Keyword inference
- Keyword spotting
src/ee_kws.c - NN weights
src/ee_nn_tables.c - ARM model port
ports/arm/ds_cnn_model.cpp
Platform runtime
- Benchmark runner
main.c
Other components
- Microphones
- Keyword result
Connections 12
- Microphones → Pipeline coordinator: supplies audio
- Benchmark runner → Pipeline coordinator: runs benchmark
- Pipeline coordinator → Beamforming + DOA: processes channels
- Pipeline coordinator → Echo cancellation: cancels echo
- Pipeline coordinator → Noise reduction: reduces noise
- Pipeline coordinator → MFCC features: extracts features
- Pipeline coordinator → Keyword spotting: classifies features
- Echo cancellation → Speex MDF: uses MDF
- Noise reduction → Speex preprocessing: uses preprocessing
- Keyword spotting → NN weights: uses weights
- Keyword spotting → ARM model port: uses model port
- Keyword spotting → Keyword result: returns keyword