← All projectsGitHub
Task-specific AI accelerators

Does the MFCC front end cost more than the keyword-spotting network it feeds?

research/accel-frontend

An instrumented Q15 MFCC front end (512-point FFT, 40 mel bands, DCT) costs 7,532 multiplies per 20 ms frame against the 5,184-MAC accel-kws classifier per inference; under assumed 45 nm constants the front end is 8 to 150 times the classifier's power, and 16-bit FFT scaling decides its accuracy (synthetic frames, no Speech Commands)

6 tests

What it found

accel-kws claimed the microphone and MFCC front end, not the MAC array, would set the always-on budget but never counted the front end. This project writes a Q15 integer front end (pre-emphasis, Hamming window, 512-point real FFT as a 256-point complex radix-2 FFT, power, the 247 non-zero mel weights of the real filterbank, a table log, a 10-coefficient DCT) with a counter on every multiply, add and 16-bit word moved. One 20 ms frame takes 7,532 multiplies, 11,009 adds and 15,620 words moved, against 5,184 MACs for the 70-64-11 classifier per inference. Streaming (each frame computed once, 50 per second) the front end draws about 54 times the classifier's modelled power at the assumed constants (8 times counting arithmetic only, 23 to 146 times with memory energy a third to triple), and 211 times if all 49 frames are recomputed for each of 4 inferences per second. Decimating by 2 to halve the FFT saves 115,200 multiplies per second, so a filter costing more than 14.4 MACs per output sample loses. The integer path matches a float reference on a noisy tone (within 0.05 with 2 FFT shifts), but with the usual one right shift per stage and a −61 dBFS microphone floor the cepstral error is 0.19 of their spread at −20 dBFS and 0.68 at −50 dBFS; fewer shifts cut it to 0.07 and 0.41 (4 shifts) or 0.02 and 0.21 (2 shifts) but need 17 to 19-bit words at −10 dBFS. Stylised and preliminary: energy constants are typed from memory of Horowitz (2014) at 45 nm and were not re-checked; the fidelity test uses synthetic voiced frames, not Speech Commands (unreachable), so no accuracy impact is measured.

A figure from its own output

Figure produced by research/accel-frontend: fidelity
accel-frontend/experiments/fidelity.png, written by the project's own experiment code.

Paper, code and results

More in Task-specific AI accelerators

All 40 Task-specific AI accelerators projects →

Other research topics

Proper scoring & elicitation28Effort & peer prediction9Verification games & slashing19Detection & tolerances14Markets as routers13Prediction-market design9Paying contributors8Decentralised training systems23Digital twins & sim-to-real164LLM chip design loops40Robot manufacturing loops53Ambient AI assistant46Self-replicating manufacturing34Simulation-first design64Engineered clothing45Task-specific AI accelerators40Algorithmic chip-design loops42Open-source purpose-built robots44The software-engineering loop43Adversarial human imitation41Open-source residential construction41Autonomous multi-angle capture34Sensing, imaging and 3D31Energy supply and dense energy storage39Robot societies among people31Agentic co-design of low-cost robots27Laundry-hanging robots25Machine learning on qualitative data23Robots on the building site27Civilizations & group psychology1History & human sciences1

Produced with AI assistance (Claude). Results are from the code in this repository and are simulated or stylised unless the abstract says otherwise; nothing here implies affiliation with or endorsement by any lab, researcher or company cited. MIT licensed.